home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-11 | 2.0 KB | 115 lines | [04] ASCII Text (0x0000) |
- ; MULTI.SC3
- ;
- ; INLINE TIMER OBJECT (FASTTIME.SRC)
- ;
- TIMER CMP #'I'
- BNE CODED
- ;
- LDA #>PULSE
- STA ALLOCADR
- LDA #<PULSE
- STA ALLOCADR+1
- ;
- LDA #INTRUPT
- STA RECEIVER
- LDA #>ALLOCMSG
- STA MSG
- LDA #<ALLOCMSG
- STA MSG+1
- JSR USRVECT
- ;
- RTS
- ;
- ;------------OBJECTS REFERENCED
- INTRUPT EQU 17 ;MIDI INTERFACE CONTROLLER
- ;
- ;==========================================
- ; INTERNAL DATA MAINTAINED BY OBJECT:
- ;
- SLOT DFB $20
- ;
- COUNTERL DFB $00
- COUNTERH DFB $00
- USERFLAG DFB $00
- ;
- USERDURL DFB $00
- USERDURH DFB $00
- ;
- ALLOCMSG ASC 'A'
- ALLOCADR DW $0000
- INTNUMBR DFB $00
- ;
- ;==========================================
- ; METHODS:
- ; (TO INVOKE: LDA #METHOD JSR TIMER)
- ; 'I' = INITIALIZE HOOK TO INTERRUPT
- ; 'D' <HI=X><LO=Y> = SET DURATION AND ZERO FLAG
- ; 'P' = PULSE FROM INTERRUPT
- ; 'R' <FLAG> = READ FLAG & SEE IF REACHED DURATION YET
- ; 'Z' = ZERO COUNTER
- ;==========================================
- CODED CMP #'D'
- BNE CODER
- STX USERDURH
- STY USERDURL
- LDA #$00
- STA USERFLAG
- RTS
- ;
- PULSE CLD
- ;
- LDX SLOT
- LDA #1
- STA $C080,X
- ;
- LDA COUNTERL
- CLC
- ADC #$01
- STA COUNTERL
- LDA COUNTERH
- ADC #$00
- STA COUNTERH
- ;
- LDA USERFLAG
- BNE PDONE
- ;
- LDA COUNTERH
- CMP USERDURH
- BCC PDONE
- LDA COUNTERL
- CMP USERDURL
- BCC PDONE
- ;
- LDA #$01
- STA USERFLAG
- LDA #$00
- STA COUNTERL
- STA COUNTERH
- ;
- PDONE LDX SLOT
- LDA #0
- STA $C080,X
- CLC
- RTS
- ;
- CODER CMP #'R'
- BNE CODEZ
- LDA USERFLAG
- RTS
- ;
- CODEZ CMP #'Z'
- BNE CODEEX
- LDA #$00
- STA COUNTERL
- STA COUNTERH
- CODEEX RTS
- ;
- ;
- ;
- EOF DFB $FF ;EOF MARKER
- ;
- ;ADJUST ORIGIN BELOW DEPENDING ON LENGTH OF CODE
- ;
- ORG START+$800
- MLIBUFR DS $400
-