home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
ANNMIDI
/
GRABDUMP.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
3KB
|
117 lines
; MIDI BULK DUMP READER - POPULATES AUX MEM 800-BFFF, THEN MAIN 800-95FF
; USER PRESSES ANY KEY TO STOP RECORDING.
; UPON EXIT, $09 CONTAINS RETURN CODE:
; $01 = AUX ONLY. 6,7 POINT TO TERMINATION BYTE ($FF)
; $02 = AUX + MAIN. 6,7 POINT TO TERMINATION BYTE ($FF)
; $FF = BOTH AUX AND MAIN FILLED UP BEFORE USER PRESSED KEY.
;
ORG $300
;
CLV
BVC START
JMP MOVE1
JMP MOVE2
;
AUXSTART DFB $08
AUXEND DFB $C0
BUFSTART DFB $08 ;STARTING PAGE TO STORE THE SYSEX MESSAGE
BUFEND DFB $96 ;PAGE AFTER THE END OF THE SYSEX BUFFER
;
START LDA #$13
STA $C0A8
LDA #$11
STA $C0A8
STA $C000 ;80STOREOFF
STA $C008 ;ALTZPOFF
STA $C002 ;READ MAIN MEMORY
STA $C005 ;WRITE AUX MEMORY
;
LDA #$00
STA 6
LDA AUXSTART
STA 7
LDA AUXEND
STA 8
JSR FILLMEM
;
STA $C004 ;WRITE MAIN MEMORY
;
LDA 9
BNE FILLMAIN
LDA #1
STA 9
RTS
;
FILLMAIN LDA #$00
STA 6
LDA BUFSTART
STA 7
LDA BUFEND
STA 8
JSR FILLMEM
;
LDA 9
BNE FULL
LDA #2
STA 9
RTS
;
FULL LDA #$FF
STA 9
RTS
;
FILLMEM LDY #$00
WAITBYTE LDA $C000 ;EXIT UPON KEYPRESS
BMI KEYPRESS
LDA $C0A8 ;WAIT FOR MIDI DATA
AND #$01
BEQ WAITBYTE
LDA $C0A9
CMP #$F8 ;SKIP REAL TIME MESSAGES
BCS WAITBYTE
STA (6),Y ;STORE MESSAGE IN MEMORY
INY
BNE WAITBYTE
INC 7 ;IF MORE THAN 255 BYTES INCREMENT PAGE
LDA 7
CMP 8 ;BUT LIMIT AT END OF BUFFER
BNE WAITBYTE
LDA #1
STA 9
RTS
KEYPRESS LDA #$FF ;TERMINATOR MARKER
STA (6),Y
STY 6
LDA #0
STA 9
RTS
;
MOVE1 LDA #$00 ; MOVE AUX 800-63FF TO MAIN 800-63FF
STA $3C
STA $42
LDA #$08
STA $3D
STA $43
LDA #$FF
STA $3E
LDA #$63
STA $3F
CLC
JMP $C311
;
MOVE2 LDA #$00 ;MOVE AUX $6400-$BFFF TO MAIN $800-$63FF
STA $3C
LDA #$64
STA $3D
LDA #$FF
STA $3E
LDA #$BF
STA $3F
LDA #$00
STA $42
LDA #$08
STA $43
CLC
JMP $C311
;