Category : Assembly Language Source Code
Archive   : TASMSWAN.ZIP
Filename : SLOWMO.ASM

 
Output of file : SLOWMO.ASM contained in archive : TASMSWAN.ZIP
%TITLE "Slow Motion interrupt generator"

IDEAL
DOSSEG
MODEL small
STACK 256

;----- Equates
delay EQU 0010h
cr EQU 13
lf EQU 10
BIOSData EQU 040h
LowTimer EQU 006Ch
PIC8259 EQU 0020h
EOI EQU 0020h

DATASEG

exitCode db 0
string db 'This is a test of the timer',cr,lf
db ' Slow-Mo interrupt handler',cr,lf,0
timerSeg dw ?
timerOfs dw ?


CODESEG

;---------- from STRIO.obj & KEYBOARD.obj
EXTRN StrWrite:proc, KeyWaiting:proc


Start:
mov ax,@data
mov ds,ax
mov es,ax
mov [word cs:difference],delay
push es
mov ax, 351Ch
int 21h
mov [timerSeg],es
mov [timerOfs],bx
pop es
push ds
mov ax,251Ch
push cs
pop ds
mov dx, offset SlowMo
int 21h
pop ds
mov di, offset string
@@10:
call StrWrite
call KeyWaiting
jz @@10
push ds
mov ax,251Ch
mov dx,[timerOfs]
mov ds,[timerSeg]
int 21h
pop ds
Exit:
mov ah,04Ch
mov al,[exitCode]
int 21h

%NEWPAGE
;------------------------------------------------------------------------
; SlowMo - Slow motion timer Interrupt Service Routine (ISR)
;------------------------------------------------------------------------
; Input: none
; Output: none (waits for time difference)
; Registers: none
;------------------------------------------------------------------------
inProgress db 0
difference dw 0

PROC SlowMo
cmp [byte cs:inProgress],0
jne @@99
inc [byte cs:inProgress]
sti
push ax
push ds
push dx
mov al,EOI
out PIC8259,al
mov ax,BIOSData
mov ds,ax
mov ax, [word LowTimer]
@@10:
mov dx, [word LowTimer]
sub dx,ax
cmp dx, [cs:difference]
jb @@10
cli
dec [byte cs:inProgress]
pop dx
pop ds
pop ax
@@99:
iret
ENDP SlowMo

END Start


  3 Responses to “Category : Assembly Language Source Code
Archive   : TASMSWAN.ZIP
Filename : SLOWMO.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/