home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
OBJSRC
/
FASTTIME.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
2KB
|
117 lines
; 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
;