home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-11 | 2.1 KB | 117 lines | [04] ASCII Text (0x0000) |
- ; INLINE TIMER OBJECT
- ;
- TIMER CLV
- BVC CODEI
- ;
- ;------------GLOBAL EQUATES
- RECEIVER EQU $FA
- MSG EQU $FB
- MYOBJ EQU $FD
- MYADRS EQU $FE ;WILL POINT TO 'BASE' WHEN OBJECT INVOKED
- ;
- USRVECT EQU $0A ;APPLESOFT USR VECTOR - USED TO CALL OBJECTS
- ;
- ;------------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
- ;==========================================
- CODEI 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
- ;
- 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
- 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
- RTS
- ;
- CODEEX RTS
- ;
-