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