home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / pdoseric.hdv / SOURCE / DANCNOTE.SRC.txt < prev    next >
Text File  |  2020-08-13  |  32KB  |  1,267 lines

  1. ; DANCNOTE.SC0 - NON-INTERRUPT DRIVEN
  2. ;
  3.          ORG $6000
  4. ;
  5.          JMP START
  6. ;
  7. GRPHMODE DFB $01   ; 01=USE GRAPHICS MODE,$00=USE TEXT MODE,$02=DOUBLE HIRES
  8. DISPMODE DFB $01
  9. MASKDRUM DFB $01
  10. USEINVRS DFB $00
  11. INBYTE   DFB $00
  12. PHASE    DFB $00
  13. LASTSTAT DFB $00
  14. XMITSTS  DFB $00
  15. XMITBYT1 DFB $00
  16. XMITBYT2 DFB $00
  17. XMITBYT3 DFB $00
  18. DBYTES   DFB $00
  19. MIDISLOT DFB $20
  20. ;
  21.          JMP INITDHR
  22.          JMP DONEDHR
  23. ;
  24. GETINST  EQU $00
  25. DATA1    EQU $01
  26. DATA2    EQU $02
  27. DATA3    EQU $03
  28. SYSX0    EQU $04
  29. DATA2B   EQU $05
  30. ;
  31. START    LDA   #$13
  32.          LDX   MIDISLOT
  33.          STA   $C088,X
  34.          LDA   #$11    
  35.          STA   $C088,X    
  36. WAITMIDI LDA   $C000
  37.          BMI   ADIOS
  38.          LDX   MIDISLOT
  39.          LDA   $C088,X       
  40.          AND   #$01       
  41.          BEQ   WAITMIDI
  42.          LDX   MIDISLOT    
  43.          LDA   $C089,X   
  44.          CMP   #$F0
  45.          BEQ   SKIPSYSX
  46.          BCS   WAITMIDI
  47. SYSXRET  STA   INBYTE 
  48.          JSR   PRCSBYTE   
  49.          LDA   $C000       
  50.          BPL   WAITMIDI
  51. ADIOS    LDA   $C010
  52.          RTS   
  53. ;
  54. SKIPSYSX LDX MIDISLOT
  55.          LDA $C088,X
  56.          AND #$01
  57.          BEQ SKIPSYSX
  58.          LDA $C089,X
  59.          BPL SKIPSYSX
  60.          BMI SYSXRET
  61. ;
  62. PRCSBYTE LDA PHASE
  63. PHINST   CMP #GETINST
  64.          BEQ PHINST0
  65.          JMP PHDATA3
  66. PHINST0  LDA INBYTE
  67.          BPL RUNNING
  68. ;
  69. ;         CMP #$F0
  70. ;         BCS CHKF0
  71. ;
  72.          STA LASTSTAT
  73.          STA XMITSTS
  74.          CMP #$E0
  75.          BCS TWOBYTES
  76.          CMP #$C0
  77.          BCC TWOBYTES
  78. ;
  79.          LDA #1
  80.          STA DBYTES
  81.          LDA #DATA1
  82.          STA PHASE
  83.          RTS
  84. ;
  85. TWOBYTES LDA #2
  86.          STA DBYTES
  87.          LDA #DATA2
  88.          STA PHASE
  89.          RTS
  90. ;
  91. ;CHKF0    BNE CHKF7
  92. ;         LDA #SYSX0
  93. ;         STA PHASE
  94. ;         RTS
  95. ;
  96. ;CHKF7    CMP #$F7
  97. ;         BNE INVAL
  98. ;         LDA #GETINST
  99. ;         STA PHASE
  100. ;         RTS
  101. ;
  102. ;INVAL    RTS
  103. ;
  104. RUNNING  LDA LASTSTAT
  105.          STA XMITSTS
  106.          LDA INBYTE
  107.          STA XMITBYT1
  108.          LDA #$FF
  109.          STA XMITBYT2
  110.          LDA DBYTES
  111.          CMP #1
  112.          BEQ SENDMSG
  113.          LDA #DATA3
  114.          STA PHASE
  115.          RTS
  116. ;
  117. PHDATA3  CMP #DATA3
  118.          BNE PHDATA2
  119.          LDA INBYTE
  120.          STA XMITBYT2
  121.          LDA #$FF
  122.          STA XMITBYT3
  123.          JMP SENDMSG
  124. ;
  125. PHDATA2  CMP #DATA2
  126.          BNE PHDATA1
  127.          LDA INBYTE
  128.          STA XMITBYT1
  129.          LDA #DATA2B
  130.          STA PHASE
  131.          RTS
  132. ;
  133. PHDATA1  CMP #DATA1
  134.          BNE PHDATA2B
  135.          LDA INBYTE
  136.          STA XMITBYT1
  137.          LDA #$FF
  138.          STA XMITBYT2
  139.          JMP SENDMSG
  140. ;
  141. PHDATA2B CMP #DATA2B
  142.          BNE PHSYSX
  143.          LDA INBYTE
  144.          STA XMITBYT2
  145.          LDA #$FF
  146.          STA XMITBYT3
  147.          JMP SENDMSG
  148. ;
  149. SENDMSG  LDA GRPHMODE
  150.          BNE DRAWGRPH
  151.          LDA XMITSTS
  152.          LDX XMITBYT1
  153.          LDY XMITBYT2
  154.          JSR MIDIPOKE
  155. SENDEXIT LDA #GETINST
  156.          STA PHASE
  157.          RTS
  158. ;
  159. PHSYSX   RTS
  160. ;
  161. DRAWGRPH CMP #$01
  162.          BNE DOUBLEHI
  163.          LDA XMITSTS
  164.          LDX XMITBYT1
  165.          LDY XMITBYT2
  166.          JSR MIDIGRPH
  167.          JMP SENDEXIT
  168. DOUBLEHI LDA XMITSTS
  169.          LDX XMITBYT1
  170.          LDY XMITBYT2
  171.          JSR DBLGRPH
  172.          JMP SENDEXIT
  173. ;
  174. ;--------
  175. ;MIDIPOKE - DISPLAYS NOTE ON/OFFS USING 1ST 16 LINES OF SCREEN 
  176. ;--------
  177. ; A = STATUS BYTE (9X OR 8X)
  178. ; X = 1ST DATA BYTE (NOTE NUMBER 00-7F)
  179. ; Y = 2ND DATA BYTE (VELOCITY 00-7F)
  180. ;--------
  181. MIDIPOKE STA STSBYTE         ;SAVE INPUT DATA
  182.          AND #$0F
  183.          STA MIDICHNL        ;EXTRACT CHANNEL
  184.          STX NOTENUM
  185.          STY VELOCITY
  186.          TXA                 ;CHECK IF NOTE IS IN RANGE OF DISPLAY
  187.          CMP #24
  188.          BCC MIDIEXIT
  189.          CMP #102
  190.          BCS MIDIEXIT
  191.          SEC                 ;SUBTRACT 24 TO GET OFFSET IN CHARACTER TABLE
  192.          SBC #24
  193.          STA XCOORD         
  194.          LDA STSBYTE
  195.          AND #$F0
  196.          CMP #$80
  197.          BEQ NOTEOFF         ;CHECK IF NOTE OFF
  198.          CMP #$90
  199.          BEQ NOTEON
  200. MIDIEXIT RTS
  201. NOTEON   LDA VELOCITY
  202.          BEQ NOTEOFF         ;IF 90 WITH VEL 0 IT IS A NOTEOFF
  203.          LDX XCOORD          ;NEED TO PRESERVE X UNTIL POKENOTE
  204.          LDA MASKDRUM        
  205.          BMI NOTDRUM         ;MASKDRUM FF=DISPLAY AS NORMAL NOTES
  206.          LDA MIDICHNL
  207.          CMP #$09            ;CHECK IF THIS IS A DRUM NOTE
  208.          BNE NOTDRUM         
  209.          LDA MASKDRUM
  210.          BEQ NOTEOFF         ;MASKDRUM 00=DON'T DISPLAY DRUM PART
  211.          LDA #'*'
  212.          STA DISPNOTE        ;MASKDRUM 01=PRINT * FOR DRUM PART
  213.          CLV
  214.          BVC POKENOTE
  215. NOTDRUM  LDA DISPMODE        ;CHECK IF UPPER CASE SHARP/LOWER CASE FLAT
  216.          BNE LCFMODE
  217.          LDA UCSNOTES,X
  218.          STA DISPNOTE
  219.          CLV
  220.          BVC POKENOTE
  221. LCFMODE  LDA LCFNOTES,X
  222.          STA DISPNOTE
  223. POKENOTE LDY MIDICHNL        ;VERTICAL COORD
  224.          LDA USEINVRS        ;PARM-WHETHER USER WANTS INVERSE DISPLAY
  225.          BNE INVERT
  226.          LDA DISPNOTE
  227.          JMP POKE80
  228. INVERT   LDA DISPNOTE
  229.          AND #$7F            ;INVERT ALL KEYS
  230.          JMP POKE80
  231. NOTEOFF  LDA #' '
  232.          STA DISPNOTE
  233.          LDX XCOORD
  234.          JMP POKENOTE
  235. ;
  236. DISPNOTE DFB $00
  237. STSBYTE  DFB $00
  238. MIDICHNL DFB $00
  239. NOTENUM  DFB $00
  240. VELOCITY DFB $00
  241. XCOORD   DFB $00
  242. ;
  243. ;                            UPPER CASE SHARPS: cCdDefFgGaAb
  244. ;
  245. UCSNOTES DFB $E3,$83,$E4,$84,$E5,$E6,$86,$E7,$87,$E1,$81,$E2
  246.          DFB $E3,$83,$E4,$84,$E5,$E6,$86,$E7,$87,$E1,$81,$E2
  247.          DFB $E3,$83,$E4,$84,$E5,$E6,$86,$E7,$87,$E1,$81,$E2
  248.          DFB $E3,$83,$E4,$84,$E5,$E6,$86,$E7,$87,$E1,$81,$E2
  249.          DFB $E3,$83,$E4,$84,$E5,$E6,$86,$E7,$87,$E1,$81,$E2
  250.          DFB $E3,$83,$E4,$84,$E5,$E6,$86,$E7,$87,$E1,$81,$E2
  251.          DFB $E3,$83,$E4,$84,$E5,$E6,$86,$E7,$87,$E1,$81,$E2
  252. ;
  253. ;                            LOWER CASE FLATS:  CdDeEFgGaAbB
  254. ;
  255. LCFNOTES DFB $83,$E4,$84,$E5,$85,$86,$E7,$87,$E1,$81,$E2,$82
  256.          DFB $83,$E4,$84,$E5,$85,$86,$E7,$87,$E1,$81,$E2,$82
  257.          DFB $83,$E4,$84,$E5,$85,$86,$E7,$87,$E1,$81,$E2,$82
  258.          DFB $83,$E4,$84,$E5,$85,$86,$E7,$87,$E1,$81,$E2,$82
  259.          DFB $83,$E4,$84,$E5,$85,$86,$E7,$87,$E1,$81,$E2,$82
  260.          DFB $83,$E4,$84,$E5,$85,$86,$E7,$87,$E1,$81,$E2,$82
  261.          DFB $83,$E4,$84,$E5,$85,$86,$E7,$87,$E1,$81,$E2,$82
  262. ;
  263.          CHN DANCNOTE.SC1
  264. ; DANCNOTE.SC1
  265. ;
  266. ;*** POKE80
  267. ;*** STORES ANY BYTE DIRECTLY ON 80 COLUMN SCREEN
  268. ;*** USING PROTOCOL DESCRIBED IN "INSIDE THE APPLE //E"
  269. ;--------
  270. ; POKE80 
  271. ;--------
  272. ; A = CHARACTER TO POKE ON SCREEN
  273. ; X = X COORDINATE (0-79)
  274. ; Y = Y COORDINATE (0-23)
  275. ;--------
  276. POKE80   CPX #80             ;VALIDATE X,Y COORDINATES
  277.          BCC POKE80A
  278.          CPY #24
  279.          BCC POKE80A
  280.          RTS
  281. POKE80A  PHP                 ;SAVE INTERRUPT STATUS
  282.          PHA                 ;SAVE USER'S DATA BYTE
  283.          STA SAVEA
  284.          STX SAVEX
  285.          STY SAVEY
  286.          SEI                 ;DISABLE INTERRUPTS
  287.          LDA $C018
  288.          STA STAT80ST        ;SAVE STATUS OF 80STORE AND PAGE2 FLAGS
  289.          LDA $C01C
  290.          STA STATPAG2
  291.          STA $C001           ;TURN 80STORE ON TO USE PAGE2 TO SWITCH MAIN->AUX
  292.          LDA $28
  293.          STA SAVEBASL        ;SAVE CURRENT SCREEN BASE ADDRESS 
  294.          LDA $29
  295.          STA SAVEBASH
  296.          TYA                 ;MULTIPLY Y BY 2 FOR LOOKUP IN BASE TABLE
  297.          ASL A
  298.          TAY
  299.          LDA BASTABLE,Y      ;GET LINE ADDRESS AND STORE IT IN ZP VECTOR
  300.          STA $28
  301.          INY
  302.          LDA BASTABLE,Y
  303.          STA $29
  304.          TXA                 ;DIVIDE X BY 2 TO GET OFFSET FROM LINE BASE
  305.          LSR A
  306.          TAY                 ;PUT IT IN Y FOR THE INDIRECT ADDRESSING LATER
  307.          BCC EVENCOL         ;CHECK CARRY TO DETERMINE IF X WAS ODD OR EVEN
  308.          STA $C054           ;ODD - TURN PAGE 2 OFF
  309.          BCS STORBYTE
  310. EVENCOL  STA $C055           ;EVEN - TURN PAGE 2 ON
  311. STORBYTE PLA
  312.          STA ($28),Y         ;POKE THE CHARACTER ON THE SCREEN
  313.          LDA STAT80ST        
  314.          BPL OFF80ST
  315.          STA $C001           ;80STOREON
  316.          BMI RSTRPAG2
  317. OFF80ST  STA $C000           ;80STOREOFF
  318. RSTRPAG2 LDA STATPAG2
  319.          BPL OFFPAG2
  320.          STA $C055           ;PAGE2ON
  321.          BMI RSTRBASE
  322. OFFPAG2  STA $C054           ;PAGE2OFF
  323. RSTRBASE LDA SAVEBASL        ;RESTORE ZP BASE VECTOR
  324.          STA $28
  325.          LDA SAVEBASH
  326.          STA $29
  327.          LDX SAVEX
  328.          LDY SAVEY
  329.          LDA SAVEA
  330.          PLP                 ;RESTORE INTERRUPT STATUS
  331.          RTS
  332. ;
  333. STAT80ST DFB $00
  334. STATPAG2 DFB $00
  335. SAVEBASL DFB $00
  336. SAVEBASH DFB $00
  337. SAVEA    DFB $00
  338. SAVEX    DFB $00
  339. SAVEY    DFB $00
  340. BASTABLE DFB $00,$04,$80,$04,$00,$05,$80,$05,$00,$06,$80,$06,$00,$07,$80,$07
  341.          DFB $28,$04,$A8,$04,$28,$05,$A8,$05,$28,$06,$A8,$06,$28,$07,$A8,$07
  342.          DFB $50,$04,$D0,$04,$50,$05,$D0,$05,$50,$06,$D0,$06,$50,$07,$D0,$07
  343. ;
  344.          CHN DANCNOTE.SC2
  345. ; DANCNOTE.SC2
  346. ;-------------------------
  347. ; MIDIGRPH ROUTINE
  348. ; A=STATUS BYTE (9X OR 8X)
  349. ; X=NOTE 
  350. ; Y=VELOCITY
  351. ;--------------------------
  352. ;
  353. HGRPTRL  EQU $EE
  354. HGRPTRH  EQU $EF
  355. ;
  356. MIDIGRPH CMP #$80
  357.          BCC DRAWEXIT
  358.          CMP #$90
  359.          BCC DRAWNOFF
  360.          CMP #$A0
  361.          BCC DRAWNON
  362.          CMP #$E0
  363.          BCC DRAWEXIT
  364.          CMP #$F0
  365.          BCC PITCHBND
  366. DRAWEXIT RTS
  367. ;
  368. DRAWNOFF LDY #$00
  369. DRAWNON  AND #$0F
  370.          ASL A
  371.          STA DRAWCHNL
  372.          STX DRAWNOTE
  373.          STY DRAWVEL
  374.          LDA #$80
  375.          SEC
  376.          SBC DRAWNOTE
  377.          TAX
  378.          LDA HGRLINEL,X
  379.          CLC
  380.          ADC DRAWCHNL
  381.          STA HGRPTRL 
  382.          LDA HGRLINEH,X
  383.          ADC #$00
  384.          STA HGRPTRH
  385.          LDY #$00
  386.          LDX DRAWVEL
  387.          LDA VELBYTEL,X
  388.          STA (HGRPTRL),Y
  389.          INY
  390.          LDA VELBYTER,X
  391.          STA (HGRPTRL),Y
  392.          RTS
  393. ;
  394. PITCHBND AND #$0F
  395.          ASL A
  396.          STA DRAWCHNL
  397.          STX DRAWNOTE
  398.          STY DRAWVEL
  399.          LDX #140
  400.          LDA HGRLINEL,X
  401.          CLC
  402.          ADC DRAWCHNL
  403.          STA HGRPTRL 
  404.          LDA HGRLINEH,X
  405.          ADC #$00
  406.          STA HGRPTRH
  407.          LDY #$00
  408.          LDX DRAWVEL
  409.          CPX #$40
  410.          BCC PBLEFT
  411.          BNE PBRIGHT
  412.          LDA #$00
  413.          STA (HGRPTRL),Y
  414.          INY
  415.          LDA #$00
  416.          STA (HGRPTRL),Y
  417.          RTS
  418. PBRIGHT  TXA
  419.          SEC
  420.          SBC #$40
  421.          ASL A
  422.          TAX
  423.          LDA #$00
  424.          STA (HGRPTRL),Y
  425.          INY
  426.          LDA VELBYTER,X
  427.          STA (HGRPTRL),Y
  428.          RTS
  429. PBLEFT   TXA
  430.          ASL A
  431.          TAX
  432.          LDA VELBYTER,X
  433.          EOR #$7F
  434.          STA (HGRPTRL),Y
  435.          INY
  436.          LDA #$00
  437.          STA (HGRPTRL),Y
  438.          RTS
  439. ;
  440. DRAWCHNL DFB $00
  441. DRAWNOTE DFB $00
  442. DRAWVEL  DFB $00
  443. ;
  444. VELBYTEL DFB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
  445.          DFB $41,$41,$41,$41,$41,$41,$41,$41,$41,$41
  446.          DFB $41,$41,$41,$41,$41,$41,$41,$41,$41,$41
  447.          DFB $61,$61,$61,$61,$61,$61,$61,$61,$61,$61
  448.          DFB $61,$61,$61,$61,$61,$61,$61,$61,$61,$61
  449.          DFB $71,$71,$71,$71,$71,$71,$71,$71,$71,$71
  450.          DFB $71,$71,$71,$71,$71,$71,$71,$71,$71,$71
  451.          DFB $79,$79,$79,$79,$79,$79,$79,$79,$79,$79
  452.          DFB $79,$79,$79,$79,$79,$79,$79,$79,$79,$79
  453.          DFB $7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D
  454.          DFB $7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D
  455.          DFB $7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F
  456.          DFB $7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F
  457. VELBYTER DFB $00,$01,$01,$01,$01,$01,$01,$01,$01,$01
  458.          DFB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
  459.          DFB $03,$03,$03,$03,$03,$03,$03,$03,$03,$03
  460.          DFB $03,$03,$03,$03,$03,$03,$03,$03,$03,$03
  461.          DFB $07,$07,$07,$07,$07,$07,$07,$07,$07,$07
  462.          DFB $07,$07,$07,$07,$07,$07,$07,$07,$07,$07
  463.          DFB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
  464.          DFB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F
  465.          DFB $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F
  466.          DFB $1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F
  467.          DFB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F
  468.          DFB $3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F,$3F
  469.          DFB $7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F
  470. ;
  471.          CHN DANCNOTE.SC3
  472. ; DANCNOTE.SC3 - DOUBLE HIRES
  473. ;-------------------------
  474. ; DBLGRPH ROUTINE
  475. ; A=STATUS BYTE (9X,8X,EX)
  476. ; X=NOTE 
  477. ; Y=VELOCITY
  478. ;--------------------------
  479. ;
  480. DBLGRPH  CMP #$80
  481.          BCC DBLEXIT
  482.          CMP #$90
  483.          BCC DBLNOFF
  484.          CMP #$A0
  485.          BCC DBLNON
  486.          CMP #$E0
  487.          BCC DBLEXIT
  488.          CMP #$F0
  489.          BCC DBLPBJMP
  490. DBLEXIT  RTS
  491. DBLPBJMP RTS
  492. ;DBLPBJMP JMP DBLPBEND
  493. ;
  494. DBLHPOS  DFB $00
  495. DBLVPOS  DFB $00
  496. DBLNCHR  DFB $00
  497. DOFFSET  DFB $00
  498. DBLCPOS  DFB $00
  499. ;
  500. DBLNOFF  LDY #$00
  501. DBLNON   AND #$0F
  502.          STA DBLCHNL
  503.          STX DBLNOTE
  504.          STY DBLVEL
  505.          LDA DBLNOTE
  506.          CMP #36
  507.          BCC DBLEXIT
  508.          CMP #96
  509.          BCS DBLEXIT
  510.          SEC
  511.          SBC #36
  512.          STA DOFFSET
  513.          ASL A
  514.          CLC
  515.          ADC DOFFSET
  516.          TAX
  517.          LDA DISPMODE
  518.          BEQ DBLUCS
  519.          LDA LCFPOS,X
  520.          STA DBLHPOS
  521.          INX
  522.          LDA LCFPOS,X
  523.          STA DBLVPOS
  524.          INX
  525.          LDA LCFPOS,X
  526.          STA DBLNCHR
  527.          LDA DBLVEL
  528.          BNE VELOK1
  529.          LDA DBLHPOS
  530.          ROR A
  531.          ROR A
  532.          ORA #$7F
  533.          STA DBLNCHR
  534. VELOK1   CLV
  535.          BVC DBL1
  536. DBLUCS   LDA UCSPOS,X
  537.          STA DBLHPOS
  538.          INX 
  539.          LDA UCSPOS,X
  540.          STA DBLVPOS
  541.          INX
  542.          LDA UCSPOS,X
  543.          STA DBLNCHR
  544.          LDA DBLVEL
  545.          BNE DBL1
  546.          LDA DBLHPOS
  547.          ROR A
  548.          ROR A
  549.          ORA #$7F
  550.          STA DBLNCHR
  551. DBL1     LDA DBLCHNL
  552.          ASL A
  553.          ASL A
  554.          CLC
  555.          ADC DBLCHNL
  556.          STA DBLCPOS
  557.          CLC
  558.          ADC DBLHPOS
  559.          STA DBLHPOS
  560.          TAX
  561.          LDY DBLVPOS
  562.          LDA DBLNCHR
  563.          CPX #79             ;DRAWCHAR
  564.          BCS DCHREX
  565.          CPY #188
  566.          BCS DCHREX
  567.          BCC DCONT
  568. DCHREX   RTS
  569. DCONT    STA DCHRA
  570.          STX DCHRX
  571.          STY DCHRY
  572.          LDA DHRXMAP,X       ;LOOK UP X COORDINATE TO GET OFFSET
  573.          PHA
  574.          AND #$7F
  575.          STA XOFFSET
  576.          PLA
  577.          BPL DCONT2
  578. ;
  579.          STA $C054
  580.          LDA XOFFSET
  581.          TAX
  582.          CLC
  583.          ADC LEFTADD,X
  584.          TAY
  585.          LDX DBLVEL
  586.          LDA VELBYTEL,X
  587.          AND #$FE
  588.          STA (HGRPTRL),Y
  589.          LDA XOFFSET
  590.          TAX
  591.          CLC
  592.          ADC RIGHTADD,X
  593.          TAY
  594.          LDX DBLVEL
  595.          LDA VELBYTER,X
  596.          STA (HGRPTRL),Y
  597.          STA $C055
  598.          CLV
  599.          BVC SETX1D
  600. ;
  601. DCONT2   STA $C055
  602.          LDA XOFFSET
  603.          TAX
  604.          CLC
  605.          ADC LEFTADD,X
  606.          TAY
  607.          LDX DBLVEL
  608.          LDA VELBYTEL,X
  609.          AND #$FE
  610.          STA (HGRPTRL),Y
  611.          LDA XOFFSET
  612.          TAX
  613.          CLC
  614.          ADC RIGHTADD,X
  615.          TAY
  616.          LDX DBLVEL
  617.          LDA VELBYTER,X
  618.          STA (HGRPTRL),Y
  619.          STA $C054
  620. ;
  621. SETX1D   LDA #$04
  622.          STA CHEIGHT
  623.          LDX DCHRA
  624.          LDA NOTEMAP,X
  625.          TAX       
  626. DCHRLOO  LDY DCHRY
  627.          LDA HGRLINEL,Y
  628.          STA HGRPTRL
  629.          LDA HGRLINEH,Y
  630.          STA HGRPTRH
  631.          LDA LETTERA,X 
  632.          LDY XOFFSET
  633.          STA (HGRPTRL),Y
  634.          INX
  635.          INC DCHRY
  636.          DEC CHEIGHT
  637.          LDA CHEIGHT
  638.          BNE DCHRLOO
  639. ;        
  640.          RTS
  641. ;
  642. LEFTADD  DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  643.          DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  644.          DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  645.          DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  646.          DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  647.          DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  648.          DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  649.          DFB $0,$0,$FF,$0,$0,$0,$FF,$0,$FF,$0
  650. ;
  651. RIGHTADD DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  652.          DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  653.          DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  654.          DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  655.          DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  656.          DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  657.          DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  658.          DFB $0,$01,$0,$01,$0,$0,$0,$01,$0,$0
  659. ;
  660. ;
  661. ;
  662. ;         LDX DBLCPOS
  663. ;         INX
  664. ;         INX
  665. ;         LDA DHRXMAP,X       ;LOOK UP X COORDINATE TO GET OFFSET
  666. ;         STA $C054
  667. ;         BPL SETX1B 
  668. ;         STA $C055
  669. ;SETX1B   AND #$7F
  670. ;         STA XOFFSET
  671. ;         TAY
  672. ;         LDX DBLVEL
  673. ;         LDA VELBYTEL,X
  674. ;         AND #$FE
  675. ;         STA (HGRPTRL),Y
  676. ;         INY
  677. ;         LDA VELBYTER,X
  678. ;         STA (HGRPTRL),Y
  679. ;         RTS
  680. ;
  681. ;         LDX DBLCPOS
  682. ;         INX
  683. ;         INX
  684. ;         INX
  685. ;         LDA DHRXMAP,X       ;LOOK UP X COORDINATE TO GET OFFSET
  686. ;         STA $C054
  687. ;         BPL SETX1C 
  688. ;         STA $C055
  689. ;SETX1C   AND #$7F
  690. ;         STA XOFFSET
  691. ;         TAY
  692. ;         LDX DBLVEL       
  693. ;         LDA VELBYTER,X
  694. ;         STA (HGRPTRL),Y
  695. ;         RTS
  696. ;
  697. ;DBLPBEND AND #$0F
  698. ;         ASL A
  699. ;         STA DBLCHNL
  700. ;         STX DBLNOTE
  701. ;         STY DBLVEL
  702. ;         LDX #191
  703. ;         LDA HGRLINEL,X
  704. ;         CLC
  705. ;         ADC DBLCHNL
  706. ;         STA HGRPTRL 
  707. ;         LDA HGRLINEH,X
  708. ;         ADC #$00
  709. ;         STA HGRPTRH
  710. ;         LDY #$00
  711. ;         LDX DBLVEL
  712. ;         CPX #$40
  713. ;         BCC DPBLEFT
  714. ;         BNE DPBRIGHT
  715. ;         LDA #$00
  716. ;         STA (HGRPTRL),Y
  717. ;         INY
  718. ;         LDA #$00
  719. ;         STA (HGRPTRL),Y
  720. ;         RTS
  721. ;DPBRIGHT TXA
  722. ;         SEC
  723. ;         SBC #$40
  724. ;         ASL A
  725. ;         TAX
  726. ;         LDA #$00
  727. ;         STA (HGRPTRL),Y
  728. ;         INY
  729. ;         LDA VELBYTER,X
  730. ;         STA (HGRPTRL),Y
  731. ;         RTS
  732. ;DPBLEFT  TXA
  733. ;         ASL A
  734. ;         TAX
  735. ;         LDA VELBYTER,X
  736. ;         EOR #$7F
  737. ;         STA (HGRPTRL),Y
  738. ;         INY
  739. ;         LDA #$00
  740. ;         STA (HGRPTRL),Y
  741. ;        RTS
  742. ;
  743. DBLCHNL  DFB $00
  744. DBLNOTE  DFB $00
  745. DBLVEL   DFB $00
  746. ;
  747.          CHN DANCNOTE.SC4
  748. ; DOUBLE HIRES ROUTINES - DRAW BOARD FOR DANCING NOTES
  749. ;
  750. ZPTR     EQU $EE
  751. ;
  752. INITDHR  STA $C050 ;TEXT OFF
  753.          STA $C057 ;HI RES ON
  754.          STA $C052 ;FULL SCREEN
  755.          STA $C00D ;80 COLUMNS ON
  756.          STA $C05E ;ANNUNCIATOR 3 ON
  757.          STA $C001 ;80 STORE ON - ALLOWS PAGE2 TO SWITCH MAIN/AUX
  758.          STA $C055 ;ACCESS AUX MEMORY
  759.          JSR CLEARSCR
  760.          STA $C054 ;ACCESS MAIN MEMORY
  761.          JSR CLEARSCR
  762.          JSR DRAWGRID
  763.          RTS
  764. ;
  765. DONEDHR  STA $C051 ;TEXT ON
  766.          STA $C056 ;HIRES OFF
  767.          STA $C00C ;80COL OFF
  768.          STA $C054 ;PAGE 1
  769.          STA $C05E ;TURN OFF AN3
  770.          RTS
  771. ;
  772. CLEARSCR LDA #$20
  773.          STA ZPTR+1
  774.          LDA #$00
  775.          STA ZPTR
  776. CLEARSC1 LDA #$00
  777.          LDY #$00
  778. CLEARSC2 STA (ZPTR),Y
  779.          INY
  780.          BNE CLEARSC2
  781.          INC ZPTR+1
  782.          LDA ZPTR+1
  783.          CMP #$40
  784.          BCC CLEARSC1
  785.          RTS
  786. ;
  787. DRAWGRID LDY #$00
  788.          JSR HORIZLN
  789.          LDY #177
  790.          JSR HORIZLN
  791.          JSR VERTLNS
  792.          JSR DRAWNUMS
  793. ;;;      JSR CHARTEST
  794.          RTS
  795. ;
  796. DRAWNUMS LDA #$00
  797.          STA NUMPTR
  798. NUMLOOP  LDA NUMPTR
  799.          TAX
  800.          LDA NUMDATA+1,X
  801.          TAY
  802.          LDA NUMDATA+2,X
  803.          PHA
  804.          LDA NUMDATA,X
  805.          TAX
  806.          PLA
  807.          JSR DRAWNUM
  808.          INC NUMPTR
  809.          INC NUMPTR
  810.          INC NUMPTR
  811.          LDA NUMPTR
  812.          CMP NUMCOUNT
  813.          BNE NUMLOOP
  814.          RTS
  815. ;
  816. ;CHARTEST LDA #$00
  817. ;         STA CHRPTR
  818. ;CHRLOOP  LDA CHRPTR
  819. ;         TAX
  820. ;         LDA UCSPOS+1,X
  821. ;         TAY
  822. ;         LDA UCSPOS+2,X
  823. ;         PHA
  824. ;         LDA UCSPOS,X
  825. ;         TAX
  826. ;         PLA
  827. ;         JSR DRAWCHAR
  828. ;         INC CHRPTR
  829. ;         INC CHRPTR
  830. ;         INC CHRPTR
  831. ;         LDA CHRPTR
  832. ;         CMP CHRCOUNT
  833. ;         BNE CHRLOOP
  834. ;         RTS
  835. ;
  836. ; DATA FOR ROW OF NUMBERS TO BE DRAWN ACROSS SCREEN
  837. ; EVERY 3 BYTES INDICATES XCOORD, YCOORD, AND CHARACTER
  838. ;
  839. NUMPTR   DFB 00
  840. NUMCOUNT DFB 69
  841. NUMDATA  DFB 2,179,1,7,179,2,12,179,3,17,179,4,22,179,5
  842.          DFB 27,179,6,32,179,7,37,179,8,42,179,9
  843.          DFB 46,179,1,47,179,0,51,179,1,52,179,1
  844.          DFB 56,179,1,57,179,2,61,179,1,62,179,3
  845.          DFB 66,179,1,67,179,4,71,179,1,72,179,5
  846.          DFB 76,179,1,77,179,6
  847. ;
  848. ;CHRPTR   DFB 00
  849. ;CHRCOUNT DFB 255
  850. UCSPOS   DFB 2,172,0,3,170,1,2,167,2,3,165,3
  851.          DFB 2,162,4,2,157,5,3,155,6,2,152,7
  852.          DFB 3,150,8,2,147,9,3,145,10,2,142,11
  853. ;
  854.          DFB 2,137,0,3,135,1,2,132,2,3,130,3
  855.          DFB 2,127,4,2,122,5,3,120,6,2,117,7
  856.          DFB 3,115,8,2,112,9,3,110,10,2,107,11
  857. ;
  858.          DFB 2,102,0,3,100,1,2,97,2,3,95,3
  859.          DFB 2,92,4,2,87,5,3,85,6,2,82,7
  860.          DFB 3,80,8,2,77,9,3,75,10,2,72,11
  861. ;
  862.          DFB 2,67,0,3,65,1,2,62,2,3,60,3
  863.          DFB 2,57,4,2,52,5,3,50,6,2,47,7
  864.          DFB 3,45,8,2,42,9,3,40,10,2,37,11
  865. ;
  866.          DFB 2,32,0,3,30,1,2,27,2,3,25,3
  867.          DFB 2,22,4,2,17,5,3,15,6,2,12,7
  868.          DFB 3,10,8,2,7,9,3,5,10,2,2,11
  869. ;
  870. LCFPOS   DFB 2,172,128,1,170,129,2,167,130,1,165,131
  871.          DFB 2,162,132,2,157,133,1,155,134,2,152,135
  872.          DFB 1,150,136,2,147,137,1,145,138,2,142,139
  873. ;
  874.          DFB 2,137,128,1,135,129,2,132,130,1,130,131
  875.          DFB 2,127,132,2,122,133,1,120,134,2,117,135
  876.          DFB 1,115,136,2,112,137,1,110,138,2,107,139
  877. ;
  878.          DFB 2,102,128,1,100,129,2,97,130,1,95,131
  879.          DFB 2,92,132,2,87,133,1,85,134,2,82,135
  880.          DFB 1,80,136,2,77,137,1,75,138,2,72,139
  881. ;
  882.          DFB 2,67,128,1,65,129,2,62,130,1,60,131
  883.          DFB 2,57,132,2,52,133,1,50,134,2,47,135
  884.          DFB 1,45,136,2,42,137,1,40,138,2,37,139
  885. ;
  886.          DFB 2,32,128,1,30,129,2,27,130,1,25,131
  887.          DFB 2,22,132,2,17,133,1,15,134,2,12,135
  888.          DFB 1,10,136,2,7,137,1,5,138,2,2,139
  889. ;
  890. ;
  891. ; HORIZLN - DRAWS HORIZ LINE ACROSS SCREEN. SET Y=VERTICAL COORDINATE
  892. ;
  893. HORIZLN  JSR SETY
  894.          STA $C055
  895.          JSR HORIZLN1
  896.          STA $C054
  897.          JSR HORIZLN1
  898.          RTS
  899. HORIZLN1 LDA #$7F
  900.          LDY #39
  901. HORIZLN2 STA (ZPTR),Y
  902.          DEY
  903.          BPL HORIZLN2
  904.          RTS
  905. ;
  906. ; VERTLNS - DRAW VERTICAL LINES FOR DANCING NOTE DISPLAY
  907. ;
  908. VERTLNS  LDY #176
  909.          STY VERTY
  910. VYLOOP   LDY VERTY
  911.          JSR SETY
  912.          LDX #79
  913.          JSR SETX
  914.          LDA #$40
  915.          LDY XOFFSET
  916.          STA (ZPTR),Y
  917.          LDX #75
  918. VXLOOP   JSR SETX
  919.          LDA #$01
  920.          LDY XOFFSET
  921.          STA (ZPTR),Y
  922.          DEX
  923.          DEX
  924.          DEX
  925.          DEX
  926.          DEX
  927.          BPL VXLOOP
  928.          DEC VERTY
  929.          LDA VERTY
  930.          BNE VYLOOP
  931.          RTS
  932. ;
  933. VERTY    DFB $00
  934. ;
  935. ; SETX - GIVEN X COORD OF A CHARACTER, SET APPROPRIATE MODE AND CALC OFFSET
  936. ;
  937. SETX     LDA DHRXMAP,X       ;LOOK UP X COORDINATE TO GET OFFSET
  938.          STA $C054
  939.          BPL SETX1 
  940.          STA $C055
  941. SETX1    AND #$7F
  942.          STA XOFFSET
  943.          RTS
  944. XOFFSET  DFB $00
  945. ;
  946. ; SETY - GIVEN Y COORD, SET BASE ADDRESS FOR POKING BYTES ON THAT LINE
  947. ;
  948. SETY     LDA HGRLINEL,Y
  949.          STA ZPTR
  950.          LDA HGRLINEH,Y
  951.          STA ZPTR+1
  952.          RTS
  953. ;
  954. ; DRAWNUM - DRAWS NUMBER. X=HORIZ PSN 0-79  Y=VERT COORD  A=NUMBER 0-9
  955. ;
  956. DRAWNUM  CMP #10
  957.          BCS DRAWNUMX
  958.          CPX #79
  959.          BCS DRAWNUMX
  960.          CPY #187
  961.          BCS DRAWNUMX
  962.          STA DNUMA
  963.          STX DNUMX
  964.          STY DNUMY
  965. ;
  966.          JSR SETX
  967. ;
  968.          LDA #$05
  969.          STA DHEIGHT
  970.          LDA DNUMA
  971.          ASL A
  972.          ASL A
  973.          CLC
  974.          ADC DNUMA
  975.          TAX
  976. DNUMLOOP LDY DNUMY
  977.          JSR SETY
  978.          LDA NUMBER0,X
  979.          LDY XOFFSET
  980.          STA (ZPTR),Y
  981.          INX
  982.          INC DNUMY
  983.          DEC DHEIGHT
  984.          LDA DHEIGHT
  985.          BNE DNUMLOOP
  986. DRAWNUMX RTS
  987. DNUMA    DFB $00
  988. DNUMX    DFB $00
  989. DNUMY    DFB $00
  990. DHEIGHT  DFB $00
  991. ;
  992. ; DRAWCHAR - X=HORIZ CHAR POSN (0-79) Y=VERT COORD
  993. ;            A=CHARACTER: 0=c 1=C 2=d 3=D 4=e 5=f 6=F 7=g 8=G 9=a 10=A 11=b
  994. ;                        12=c 13=C,etc, same for 24,36,48,etc.
  995. ;                       128=C   d   D   e   E   F   g   G   a   A    b    B
  996. ;                       140=C 141=d,etc, same for 152,etc.
  997. ;DRAWCHAR CPX #79
  998. ;         BCS DRAWCHRX
  999. ;         CPY #188
  1000. ;         BCS DRAWCHRX
  1001. ;         STA DCHRA
  1002. ;         STX DCHRX
  1003. ;         STY DCHRY
  1004. ;         LDA DHRXMAP,X       ;LOOK UP X COORDINATE TO GET OFFSET
  1005. ;         STA $C054
  1006. ;         BPL SETX1A 
  1007. ;         STA $C055
  1008. ;SETX1A   AND #$7F
  1009. ;         STA XOFFSET
  1010. ;         LDA #$04
  1011. ;         STA CHEIGHT
  1012. ;         LDX DCHRA
  1013. ;         LDA NOTEMAP,X
  1014. ;         TAX       
  1015. ;DCHRLOOP LDY DCHRY
  1016. ;         LDA HGRLINEL,Y
  1017. ;         STA ZPTR
  1018. ;         LDA HGRLINEH,Y
  1019. ;         STA ZPTR+1
  1020. ;         LDA LETTERA,X 
  1021. ;         LDY XOFFSET
  1022. ;         STA (ZPTR),Y
  1023. ;         INX
  1024. ;         INC DCHRY
  1025. ;         DEC CHEIGHT
  1026. ;         LDA CHEIGHT
  1027. ;         BNE DCHRLOOP
  1028. ;DRAWCHRX RTS
  1029. DCHRA    DFB $00
  1030. DCHRX    DFB $00
  1031. DCHRY    DFB $00
  1032. CHEIGHT  DFB $00
  1033. ;
  1034.          CHN CHARSET.SRC
  1035. ;
  1036. ; CHARSET.SRC - CHARACTER SET FOR DANCING NOTES
  1037. ;
  1038. NUMBER0  DFB $1C   ;0011100
  1039.          DFB $22   ;0100010
  1040.          DFB $22   ;0100010
  1041.          DFB $22   ;0100010
  1042.          DFB $1C   ;0011100
  1043. NUMBER1  DFB $08   ;0001000
  1044.          DFB $08   ;0001000
  1045.          DFB $08   ;0001000
  1046.          DFB $08   ;0001000
  1047.          DFB $08   ;0001000
  1048. NUMBER2  DFB $1E   ;0111100
  1049.          DFB $20   ;0000010
  1050.          DFB $1C   ;0011100
  1051.          DFB $02   ;0100000
  1052.          DFB $3E   ;0111110
  1053. NUMBER3  DFB $1E   ;0111100
  1054.          DFB $20   ;0000010
  1055.          DFB $1C   ;0011100
  1056.          DFB $20   ;0000010
  1057.          DFB $1E   ;0111100
  1058. NUMBER4  DFB $12   ;0100100
  1059.          DFB $12   ;0100100
  1060.          DFB $3E   ;0111110
  1061.          DFB $10   ;0000100
  1062.          DFB $10   ;0000100
  1063. NUMBER5  DFB $3E   ;0111110
  1064.          DFB $02   ;0100000
  1065.          DFB $1E   ;0111100
  1066.          DFB $20   ;0000010
  1067.          DFB $1E   ;0111100
  1068. NUMBER6  DFB $1C   ;0011100
  1069.          DFB $02   ;0100000
  1070.          DFB $1E   ;0111100
  1071.          DFB $22   ;0100010
  1072.          DFB $1C   ;0011100
  1073. NUMBER7  DFB $3E   ;0111110
  1074.          DFB $20   ;0000010
  1075.          DFB $10   ;0000100
  1076.          DFB $08   ;0001000
  1077.          DFB $04   ;0010000
  1078. NUMBER8  DFB $1C   ;0011100
  1079.          DFB $22   ;0100010
  1080.          DFB $1C   ;0011100
  1081.          DFB $22   ;0100010
  1082.          DFB $1C   ;0011100
  1083. NUMBER9  DFB $1C   ;0011100
  1084.          DFB $22   ;0100010
  1085.          DFB $3C   ;0011110
  1086.          DFB $20   ;0000010
  1087.          DFB $1C   ;0011100
  1088. ;
  1089. LETTERA  DFB $18   ;1001100
  1090.          DFB $24   ;1010010
  1091.          DFB $24   ;1010010
  1092.          DFB $58   ;1001101
  1093. ;
  1094. LETTERB  DFB $04   ;1010000
  1095.          DFB $34   ;1010110
  1096.          DFB $4C   ;1011001
  1097.          DFB $3C   ;1011110
  1098. ;
  1099. LETTERC  DFB $00   ;1000000
  1100.          DFB $78   ;1001111
  1101.          DFB $0C   ;1011000
  1102.          DFB $78   ;1001111
  1103. ;
  1104. LETTERD  DFB $40   ;1000001
  1105.          DFB $58   ;1001101
  1106.          DFB $64   ;1010011
  1107.          DFB $78   ;1001111
  1108. ;
  1109. LETTERE  DFB $38   ;1001110
  1110.          DFB $7C   ;1011111
  1111.          DFB $04   ;1010000
  1112.          DFB $38   ;1001110
  1113. ;
  1114. LETTERF  DFB $38   ;1001110
  1115.          DFB $04   ;1010000
  1116.          DFB $1C   ;1011100
  1117.          DFB $04   ;1010000
  1118. ;
  1119. LETTERG  DFB $38   ;1001110
  1120.          DFB $7C   ;1011111
  1121.          DFB $40   ;1000001
  1122.          DFB $3C   ;1011110
  1123. ;
  1124. CAPITALA DFB $3E   ;0111110
  1125.          DFB $22   ;0100010
  1126.          DFB $3E   ;0111110
  1127.          DFB $22   ;0100010
  1128. ;
  1129. CAPITALB DFB $3E   ;0111110
  1130.          DFB $1A   ;0101100
  1131.          DFB $26   ;0110010
  1132.          DFB $1E   ;0111100
  1133. ;
  1134. CAPITALC DFB $3E   ;0111110
  1135.          DFB $02   ;0100000
  1136.          DFB $02   ;0100000
  1137.          DFB $3E   ;0111110
  1138. ;
  1139. CAPITALD DFB $1E   ;0111100
  1140.          DFB $22   ;0100010
  1141.          DFB $22   ;0100010
  1142.          DFB $1E   ;0111100
  1143. ;
  1144. CAPITALE DFB $3E   ;0111110
  1145.          DFB $02   ;0100000
  1146.          DFB $0E   ;0111000
  1147.          DFB $3E   ;0111110
  1148. ;
  1149. CAPITALF DFB $3E   ;0111110
  1150.          DFB $02   ;0100000
  1151.          DFB $0E   ;0111000
  1152.          DFB $02   ;0100000
  1153. ;
  1154. CAPITALG DFB $3E   ;0111110
  1155.          DFB $02   ;0100000
  1156.          DFB $3A   ;0101110
  1157.          DFB $3E   ;0111110
  1158. ;
  1159. NOFF1    DFB $00
  1160.          DFB $00
  1161.          DFB $00
  1162.          DFB $00
  1163. ;
  1164. NOFF2    DFB $00
  1165.          DFB $00
  1166.          DFB $00
  1167.          DFB $00
  1168. ;
  1169. ; NOTEMAP TRANSLATES NOTE NUMBER INTO OFFSET FROM 'LETTERA'
  1170. ;
  1171. ;            A=CHARACTER: 0=c 1=C 2=d 3=D 4=e 5=f 6=F 7=g 8=G 9=a 10=A 11=b
  1172. ;                        12=c 13=C,etc, same for 24,36,48,etc.
  1173. ;                       128=C   d   D   e   E   F   g   G   a   A    b    B
  1174. ;                       140=C 141=d,etc, same for 152,etc.
  1175. ;
  1176. NOTEMAP  DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;UPPER CASE SHARPS 0-11
  1177.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;12-23
  1178.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;24-35
  1179.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;36-47
  1180.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;48-59
  1181.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;60-71
  1182.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;72-83
  1183.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;84-95
  1184.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;96-107
  1185.          DFB 8,36,12,40,16,20,48,24,52,0,28,4    ;108-119
  1186.          DFB 8,36,12,40,16,20,48,56              ;120-127 (127=NOTE OFF)
  1187. ;
  1188.          DFB 36,12,40,16,44,48,24,52,0,28,4,32   ;LOWER CASE FLATS 128-
  1189.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1190.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1191.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1192.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1193.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1194.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1195.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1196.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1197.          DFB 36,12,40,16,44,48,24,52,0,28,4,32
  1198.          DFB 36,12,40,16,44,48,24,60             ;255=NOTE OFF
  1199. ;
  1200.          CHN HGRMAP.SRC
  1201. ;
  1202. ; HIGH RES VERTICAL COORDINATE ADDRESSES
  1203. ;
  1204. HGRLINEH DFB $20,$24,$28,$2C,$30,$34,$38,$3C
  1205.          DFB $20,$24,$28,$2C,$30,$34,$38,$3C
  1206.          DFB $21,$25,$29,$2D,$31,$35,$39,$3D
  1207.          DFB $21,$25,$29,$2D,$31,$35,$39,$3D
  1208.          DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
  1209.          DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
  1210.          DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
  1211.          DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
  1212.          DFB $20,$24,$28,$2C,$30,$34,$38,$3C
  1213.          DFB $20,$24,$28,$2C,$30,$34,$38,$3C
  1214.          DFB $21,$25,$29,$2D,$31,$35,$39,$3D
  1215.          DFB $21,$25,$29,$2D,$31,$35,$39,$3D
  1216.          DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
  1217.          DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
  1218.          DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
  1219.          DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
  1220.          DFB $20,$24,$28,$2C,$30,$34,$38,$3C
  1221.          DFB $20,$24,$28,$2C,$30,$34,$38,$3C
  1222.          DFB $21,$25,$29,$2D,$31,$35,$39,$3D
  1223.          DFB $21,$25,$29,$2D,$31,$35,$39,$3D
  1224.          DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
  1225.          DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
  1226.          DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
  1227.          DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
  1228. HGRLINEL DFB $00,$00,$00,$00,$00,$00,$00,$00
  1229.          DFB $80,$80,$80,$80,$80,$80,$80,$80
  1230.          DFB $00,$00,$00,$00,$00,$00,$00,$00
  1231.          DFB $80,$80,$80,$80,$80,$80,$80,$80
  1232.          DFB $00,$00,$00,$00,$00,$00,$00,$00
  1233.          DFB $80,$80,$80,$80,$80,$80,$80,$80
  1234.          DFB $00,$00,$00,$00,$00,$00,$00,$00
  1235.          DFB $80,$80,$80,$80,$80,$80,$80,$80
  1236.          DFB $28,$28,$28,$28,$28,$28,$28,$28
  1237.          DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
  1238.          DFB $28,$28,$28,$28,$28,$28,$28,$28
  1239.          DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
  1240.          DFB $28,$28,$28,$28,$28,$28,$28,$28
  1241.          DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
  1242.          DFB $28,$28,$28,$28,$28,$28,$28,$28
  1243.          DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
  1244.          DFB $50,$50,$50,$50,$50,$50,$50,$50
  1245.          DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
  1246.          DFB $50,$50,$50,$50,$50,$50,$50,$50
  1247.          DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
  1248.          DFB $50,$50,$50,$50,$50,$50,$50,$50
  1249.          DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
  1250.          DFB $50,$50,$50,$50,$50,$50,$50,$50
  1251.          DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
  1252. ;
  1253. ; DOUBLE HIGH RES X COORDINATE MAP
  1254. ; DIVIDE X BY 7 AND LOOKUP BYTE
  1255. ; IF >=$80, USE AUX MEM, ELSE USE MAIN MEM
  1256. ; LOW 7 BITS = OFFSET TO ADD TO ADDRESS OF VERTICAL COORDINATE
  1257. ;
  1258. DHRXMAP  DFB $80,$00,$81,$01,$82,$02,$83,$03,$84,$04
  1259.          DFB $85,$05,$86,$06,$87,$07,$88,$08,$89,$09
  1260.          DFB $8A,$0A,$8B,$0B,$8C,$0C,$8D,$0D,$8E,$0E,$8F,$0F
  1261.          DFB $90,$10,$91,$11,$92,$12,$93,$13,$94,$14
  1262.          DFB $95,$15,$96,$16,$97,$17,$98,$18,$99,$19
  1263.          DFB $9A,$1A,$9B,$1B,$9C,$1C,$9D,$1D,$9E,$1E,$9F,$1F
  1264.          DFB $A0,$20,$A1,$21,$A2,$22,$A3,$23,$A4,$24
  1265.          DFB $A5,$25,$A6,$26,$A7,$27
  1266. ;
  1267.