home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / ANNMIDI / SENDDUMP.SRC.txt < prev    next >
Text File  |  2020-08-13  |  6KB  |  158 lines

  1. ;-------------------------------------------------------------------------
  2. ; SEND DUMP THROUGH APPLE MIDI DRIVER THROUGH ANNUNCIATOR 0
  3. ; POPULATE 6,7 WITH STARTING ADDRESS OF MAIN MEMORY DATA.
  4. ; POPULATE 8,9 WITH ENDING ADDRESS OF MAIN MEMORY DATA.
  5. ;-------------------------------------------------------------------------
  6.          ORG $0300
  7. ;
  8. AN0OFF   EQU $C058           ;APPLE ADDRESSES THAT CONTROL ANNUNCIATOR OUTPUTS
  9. AN0ON    EQU $C059
  10. ;
  11. USERSTRT EQU $06
  12. USEREND  EQU $08
  13. STRTADRS EQU $19
  14. ENDADRS  EQU $1B             
  15. DATAPTR  EQU $0A
  16. TEMPA    EQU $00
  17. TEMPX    EQU $01
  18. ;---------------------------------------------------------------------------
  19. INIT     STA $C000 ;80STOREOFF
  20.          STA $C008 ;ALTZPOFF
  21.          STA $C003 ;READ AUX MEMORY
  22.          STA $C005 ;WRITE AUX MEMORY
  23.          LDA #$00
  24.          STA STRTADRS
  25.          LDA #$08
  26.          STA STRTADRS+1
  27.          LDA #$FF
  28.          STA ENDADRS
  29.          LDA #$BF
  30.          STA ENDADRS+1
  31.          JSR XMIT
  32.          STA $C002 ;READ MAIN MEMORY
  33.          STA $C004 ;WRITE MAIN MEMORY
  34.          LDA USERSTRT
  35.          STA STRTADRS
  36.          LDA USERSTRT+1
  37.          STA STRTADRS+1
  38.          LDA USEREND
  39.          STA ENDADRS
  40.          LDA USEREND+1
  41.          STA ENDADRS+1
  42.          JSR XMIT
  43.          RTS
  44. ;
  45. XMIT     LDA STRTADRS
  46.          STA DATAPTR
  47.          LDA STRTADRS+1
  48.          STA DATAPTR+1
  49.          LDY #$00            ;Y WILL BE AN INDEX INTO THE DATA AREA
  50. XMITLOOP LDA (DATAPTR),Y     ;GET A DATA BYTE
  51.          JSR XMITONE
  52.          INC DATAPTR
  53.          BNE CHKADRS
  54.          INC DATAPTR+1
  55. CHKADRS  LDA DATAPTR+1
  56.          CMP ENDADRS+1
  57.          BCC XMITLOOP
  58.          BNE OUT
  59.          LDA DATAPTR
  60.          CMP ENDADRS
  61.          BCC XMITLOOP
  62.          BEQ XMITLOOP
  63. OUT      RTS
  64. ;---------------------------------------------------------------------------
  65. XMITONE  STA TEMPA           ;SAVE A AND X REGISTERS
  66.          STX TEMPX
  67. ;
  68.          ASL A               ;SHIFT BIT INTO CARRY
  69.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  70.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  71.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  72.          STA BIT7+1          ;MODIFY THE XMITBITS SUBROUTINE
  73.          TXA                 ;RESTORE ACCUMULATOR
  74. ;
  75.          ASL A               ;SHIFT BIT INTO CARRY
  76.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  77.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  78.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  79.          STA BIT6+1          ;MODIFY THE XMITBITS SUBROUTINE
  80.          TXA                 ;RESTORE ACCUMULATOR
  81. ;
  82.          ASL A               ;SHIFT BIT INTO CARRY
  83.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  84.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  85.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  86.          STA BIT5+1          ;MODIFY THE XMITBITS SUBROUTINE
  87.          TXA                 ;RESTORE ACCUMULATOR
  88. ;
  89.          ASL A               ;SHIFT BIT INTO CARRY
  90.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  91.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  92.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  93.          STA BIT4+1          ;MODIFY THE XMITBITS SUBROUTINE
  94.          TXA                 ;RESTORE ACCUMULATOR
  95. ;
  96.          ASL A               ;SHIFT BIT INTO CARRY
  97.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  98.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  99.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  100.          STA BIT3+1          ;MODIFY THE XMITBITS SUBROUTINE
  101.          TXA                 ;RESTORE ACCUMULATOR
  102. ;
  103.          ASL A               ;SHIFT BIT INTO CARRY
  104.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  105.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  106.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  107.          STA BIT2+1          ;MODIFY THE XMITBITS SUBROUTINE
  108.          TXA                 ;RESTORE ACCUMULATOR
  109. ;
  110.          ASL A               ;SHIFT BIT INTO CARRY
  111.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  112.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  113.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  114.          STA BIT1+1          ;MODIFY THE XMITBITS SUBROUTINE
  115.          TXA                 ;RESTORE ACCUMULATOR
  116. ;
  117.          ASL A               ;SHIFT BIT INTO CARRY
  118.          TAX                 ;SAVE CURRENT IMAGE OF DATA BYTE
  119.          LDA #$00            ;ZERO OUT ACCUMULATOR FOR ADD
  120.          ADC #>AN0OFF        ;ADD CARRY TO ANNUNCIATOR ADDRESS
  121.          STA BIT0+1          ;MODIFY THE XMITBITS SUBROUTINE
  122.          TXA                 ;RESTORE ACCUMULATOR
  123. ;-----------------------------------------------------------------------
  124. XMITBITS BIT AN0OFF          ;4 CYCLES - TRANSMIT START BIT - ALWAYS LOW
  125.          JSR DELAY22         ;6+22
  126. BIT0     BIT AN0OFF          ;4
  127.          JSR DELAY22         ;6+22
  128. BIT1     BIT AN0OFF          ;4
  129.          JSR DELAY22         ;6+22
  130. BIT2     BIT AN0OFF          ;4
  131.          JSR DELAY22         ;6+22
  132. BIT3     BIT AN0OFF          ;4
  133.          JSR DELAY22         ;6+22
  134. BIT4     BIT AN0OFF          ;4
  135.          JSR DELAY22         ;6+22
  136. BIT5     BIT AN0OFF          ;4
  137.          JSR DELAY22         ;6+22
  138. BIT6     BIT AN0OFF          ;4
  139.          JSR DELAY22         ;6+22
  140. BIT7     BIT AN0OFF          ;4
  141.          JSR DELAY22         ;6+22
  142.          BIT AN0ON           ;4        ;TRANSMIT STOP BIT - ALWAYS HIGH
  143.          JSR DELAY22         ;6+22
  144.          LDX TEMPX
  145.          LDA TEMPA           ;RESTORE X AND A
  146.          RTS
  147. ;-----------------------------------------------------------------------
  148. DELAY22  NOP       ;WAIT 22 CYCLES
  149.          NOP
  150.          NOP
  151.          NOP
  152.          NOP
  153.          NOP
  154.          NOP
  155.          NOP
  156.          RTS
  157. ;
  158.