home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
GRABSYSX.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
1KB
|
53 lines
; MIDI SYSEX READER
;
ORG $1000
;
CLV
BVC START
;
BUFSTART DFB $20 ;STARTING PAGE TO STORE THE SYSEX MESSAGE
BUFEND DFB $60 ;PAGE AFTER THE END OF THE SYSEX BUFFER
;
START LDA #$00
STA 6
LDA BUFSTART
STA 7
LDA #$13
STA $C0A8
LDA #$11
STA $C0A8
;
LDY #$00
WAITBYTE LDA $C000 ;EXIT UPON KEYPRESS
BMI DONE
WAITNEXT LDA $C0A8 ;WAIT FOR MIDI DATA
AND #$01
BEQ WAITBYTE
LDA $C0A9
CMP #$F0 ;IS IT A SYSEX
BEQ WAITMSG ;YES - GRAB THE MESSAGE
BNE WAITBYTE ;NO, KEEP WAITING
WAITMSG LDA $C0A8 ;WAIT FOR NEXT BYTE (MANUFACTURER ID)
AND #$01
BEQ WAITMSG
LDA $C0A9
CMP #$7D ;IS IT A RESEARCH SYSEX MESSAGE?
BNE WAITNEXT ;IF NOT, WAIT FOR NEXT SYSEX
WAITMSG2 LDA $C0A8
AND #$01
BEQ WAITMSG2
LDA $C0A9
CMP #$80 ;IS THE MESSAGE DONE?
BCS DONE ;YES - RETURN TO CALLER (SYSX TERMINATED BY >$80)
STA (6),Y ;STORE MESSAGE IN MEMORY
INY
BNE WAITMSG2
INC 7 ;IF MORE THAN 255 BYTES INCREMENT PAGE
LDA 7
CMP BUFEND ;BUT LIMIT AT END OF BUFFER
BNE WAITMSG2
DONE LDA #$00
STA (6),Y
RTS
;