home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
ANNMIDI
/
SENDDUMP.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
6KB
|
158 lines
;-------------------------------------------------------------------------
; SEND DUMP THROUGH APPLE MIDI DRIVER THROUGH ANNUNCIATOR 0
; POPULATE 6,7 WITH STARTING ADDRESS OF MAIN MEMORY DATA.
; POPULATE 8,9 WITH ENDING ADDRESS OF MAIN MEMORY DATA.
;-------------------------------------------------------------------------
ORG $0300
;
AN0OFF EQU $C058 ;APPLE ADDRESSES THAT CONTROL ANNUNCIATOR OUTPUTS
AN0ON EQU $C059
;
USERSTRT EQU $06
USEREND EQU $08
STRTADRS EQU $19
ENDADRS EQU $1B
DATAPTR EQU $0A
TEMPA EQU $00
TEMPX EQU $01
;---------------------------------------------------------------------------
INIT STA $C000 ;80STOREOFF
STA $C008 ;ALTZPOFF
STA $C003 ;READ AUX MEMORY
STA $C005 ;WRITE AUX MEMORY
LDA #$00
STA STRTADRS
LDA #$08
STA STRTADRS+1
LDA #$FF
STA ENDADRS
LDA #$BF
STA ENDADRS+1
JSR XMIT
STA $C002 ;READ MAIN MEMORY
STA $C004 ;WRITE MAIN MEMORY
LDA USERSTRT
STA STRTADRS
LDA USERSTRT+1
STA STRTADRS+1
LDA USEREND
STA ENDADRS
LDA USEREND+1
STA ENDADRS+1
JSR XMIT
RTS
;
XMIT LDA STRTADRS
STA DATAPTR
LDA STRTADRS+1
STA DATAPTR+1
LDY #$00 ;Y WILL BE AN INDEX INTO THE DATA AREA
XMITLOOP LDA (DATAPTR),Y ;GET A DATA BYTE
JSR XMITONE
INC DATAPTR
BNE CHKADRS
INC DATAPTR+1
CHKADRS LDA DATAPTR+1
CMP ENDADRS+1
BCC XMITLOOP
BNE OUT
LDA DATAPTR
CMP ENDADRS
BCC XMITLOOP
BEQ XMITLOOP
OUT RTS
;---------------------------------------------------------------------------
XMITONE STA TEMPA ;SAVE A AND X REGISTERS
STX TEMPX
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT7+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT6+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT5+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT4+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT3+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT2+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT1+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;
ASL A ;SHIFT BIT INTO CARRY
TAX ;SAVE CURRENT IMAGE OF DATA BYTE
LDA #$00 ;ZERO OUT ACCUMULATOR FOR ADD
ADC #>AN0OFF ;ADD CARRY TO ANNUNCIATOR ADDRESS
STA BIT0+1 ;MODIFY THE XMITBITS SUBROUTINE
TXA ;RESTORE ACCUMULATOR
;-----------------------------------------------------------------------
XMITBITS BIT AN0OFF ;4 CYCLES - TRANSMIT START BIT - ALWAYS LOW
JSR DELAY22 ;6+22
BIT0 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT1 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT2 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT3 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT4 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT5 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT6 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT7 BIT AN0OFF ;4
JSR DELAY22 ;6+22
BIT AN0ON ;4 ;TRANSMIT STOP BIT - ALWAYS HIGH
JSR DELAY22 ;6+22
LDX TEMPX
LDA TEMPA ;RESTORE X AND A
RTS
;-----------------------------------------------------------------------
DELAY22 NOP ;WAIT 22 CYCLES
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RTS
;