Category : Files from Magazines
Archive   : DDJ8705.ZIP
Filename : GARVLST.LST

Output of file : GARVLST.LST contained in archive : DDJ8705.ZIP
þ2«înnListing 1
; TIMER_ISR is an example of a MIDI interrupt service routine with a semaphore
; This partial listing will help to model a timer int. based on semaphores
dseg segment para public 'dseg'
t_sem dw 0 ; make sure this value always starts at zero
dseg ends

cseg segment para public 'cseg'
assume cs:cseg, ds:dseg

public int_vector
int_vector proc far
push si ; save all registers
push di
push ax
push bx
push cx
push dx
push ds
push es
mov di,dseg ; set up for access to data seg in this module
mov ds,di
again: ; loop point for retries if more ints hit
mov si,[t_sem] ; 'sample' the semaphore before increment !
inc [t_sem]
mov al,20h ; this will acknowledge interrupts on IBM PC
out 20h,al
call reset_timer_ff ; toggle flip-flop hooked to the timer chip
; Interrupts are now re-enabled
or si,si ; Check the 'sampled' semaphore
je i_loop ; If semaphore was zero, execute tmr routine
; Skip the main timer routine if this is a nested int - check for ovfl
cmp si,200 ; Too many interrupts stacked-up? (overflow?)
jc skip ; If not, exit directly.
; Interrupts have overflowed -- stop and check timer values
call emergency_stop ; semaphore overflow! timers are set too fast
jmp skip
; Execute the main timer routine - then check for stacked interrupts
call timer_routine ; run main timer chain
dec [t_sem] ; if sem dec's to zero, no ints are nested
jnz i_loop ; if ints ARE nested, loop back to catch up
pop es
pop ds
pop dx
pop cx
pop bx
pop ax
pop di
pop si ; restore registers and return
int_vector endp

cseg ends

; E€îw:€ÂT`€ÆÂ&.œ€Word Rescue…P @6ÿýØ

  3 Responses to “Category : Files from Magazines
Archive   : DDJ8705.ZIP
Filename : GARVLST.LST

  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: