home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / SOURCE / DHRNOTE.SC4.txt < prev    next >
Text File  |  2020-08-13  |  7KB  |  287 lines

  1. ; DOUBLE HIRES ROUTINES - DRAW BOARD FOR DANCING NOTES
  2. ;
  3. ZPTR     EQU $EE
  4. ;
  5. INITDHR  STA $C050 ;TEXT OFF
  6.          STA $C057 ;HI RES ON
  7.          STA $C052 ;FULL SCREEN
  8.          STA $C00D ;80 COLUMNS ON
  9.          STA $C05E ;ANNUNCIATOR 3 ON
  10.          STA $C001 ;80 STORE ON - ALLOWS PAGE2 TO SWITCH MAIN/AUX
  11.          STA $C055 ;ACCESS AUX MEMORY
  12.          JSR CLEARSCR
  13.          STA $C054 ;ACCESS MAIN MEMORY
  14.          JSR CLEARSCR
  15.          JSR DRAWGRID
  16.          RTS
  17. ;
  18. DONEDHR  STA $C051 ;TEXT ON
  19.          STA $C056 ;HIRES OFF
  20.          STA $C00C ;80COL OFF
  21.          STA $C054 ;PAGE 1
  22.          STA $C05E ;TURN OFF AN3
  23.          RTS
  24. ;
  25. CLEARSCR LDA #$20
  26.          STA ZPTR+1
  27.          LDA #$00
  28.          STA ZPTR
  29. CLEARSC1 LDA #$00
  30.          LDY #$00
  31. CLEARSC2 STA (ZPTR),Y
  32.          INY
  33.          BNE CLEARSC2
  34.          INC ZPTR+1
  35.          LDA ZPTR+1
  36.          CMP #$40
  37.          BCC CLEARSC1
  38.          RTS
  39. ;
  40. DRAWGRID LDY #$00
  41.          JSR HORIZLN
  42.          LDY #177
  43.          JSR HORIZLN
  44.          JSR VERTLNS
  45.          JSR DRAWNUMS
  46. ;;;      JSR CHARTEST
  47.          RTS
  48. ;
  49. DRAWNUMS LDA #$00
  50.          STA NUMPTR
  51. NUMLOOP  LDA NUMPTR
  52.          TAX
  53.          LDA NUMDATA+1,X
  54.          TAY
  55.          LDA NUMDATA+2,X
  56.          PHA
  57.          LDA NUMDATA,X
  58.          TAX
  59.          PLA
  60.          JSR DRAWNUM
  61.          INC NUMPTR
  62.          INC NUMPTR
  63.          INC NUMPTR
  64.          LDA NUMPTR
  65.          CMP NUMCOUNT
  66.          BNE NUMLOOP
  67.          RTS
  68. ;
  69. ;CHARTEST LDA #$00
  70. ;         STA CHRPTR
  71. ;CHRLOOP  LDA CHRPTR
  72. ;         TAX
  73. ;         LDA UCSPOS+1,X
  74. ;         TAY
  75. ;         LDA UCSPOS+2,X
  76. ;         PHA
  77. ;         LDA UCSPOS,X
  78. ;         TAX
  79. ;         PLA
  80. ;         JSR DRAWCHAR
  81. ;         INC CHRPTR
  82. ;         INC CHRPTR
  83. ;         INC CHRPTR
  84. ;         LDA CHRPTR
  85. ;         CMP CHRCOUNT
  86. ;         BNE CHRLOOP
  87. ;         RTS
  88. ;
  89. ; DATA FOR ROW OF NUMBERS TO BE DRAWN ACROSS SCREEN
  90. ; EVERY 3 BYTES INDICATES XCOORD, YCOORD, AND CHARACTER
  91. ;
  92. NUMPTR   DFB 00
  93. NUMCOUNT DFB 69
  94. NUMDATA  DFB 2,179,1,6,179,2,10,179,3,14,179,4,18,179,5
  95.          DFB 22,179,6,26,179,7,30,179,8,34,179,9
  96.          DFB 37,179,1,38,179,0,41,179,1,42,179,1
  97.          DFB 45,179,1,46,179,2,49,179,1,50,179,3
  98.          DFB 53,179,1,54,179,4,57,179,1,58,179,5
  99.          DFB 61,179,1,62,179,6
  100. ;
  101. ;CHRPTR   DFB 00
  102. ;CHRCOUNT DFB 255
  103. UCSPOS   DFB 2,172,0,3,170,1,2,167,2,3,165,3
  104.          DFB 2,162,4,2,157,5,3,155,6,2,152,7
  105.          DFB 3,150,8,2,147,9,3,145,10,2,142,11
  106. ;
  107.          DFB 2,137,0,3,135,1,2,132,2,3,130,3
  108.          DFB 2,127,4,2,122,5,3,120,6,2,117,7
  109.          DFB 3,115,8,2,112,9,3,110,10,2,107,11
  110. ;
  111.          DFB 2,102,0,3,100,1,2,97,2,3,95,3
  112.          DFB 2,92,4,2,87,5,3,85,6,2,82,7
  113.          DFB 3,80,8,2,77,9,3,75,10,2,72,11
  114. ;
  115.          DFB 2,67,0,3,65,1,2,62,2,3,60,3
  116.          DFB 2,57,4,2,52,5,3,50,6,2,47,7
  117.          DFB 3,45,8,2,42,9,3,40,10,2,37,11
  118. ;
  119.          DFB 2,32,0,3,30,1,2,27,2,3,25,3
  120.          DFB 2,22,4,2,17,5,3,15,6,2,12,7
  121.          DFB 3,10,8,2,7,9,3,5,10,2,2,11
  122. ;
  123. LCFPOS   DFB 2,172,128,1,170,129,2,167,130,1,165,131
  124.          DFB 2,162,132,2,157,133,1,155,134,2,152,135
  125.          DFB 1,150,136,2,147,137,1,145,138,2,142,139
  126. ;
  127.          DFB 2,137,128,1,135,129,2,132,130,1,130,131
  128.          DFB 2,127,132,2,122,133,1,120,134,2,117,135
  129.          DFB 1,115,136,2,112,137,1,110,138,2,107,139
  130. ;
  131.          DFB 2,102,128,1,100,129,2,97,130,1,95,131
  132.          DFB 2,92,132,2,87,133,1,85,134,2,82,135
  133.          DFB 1,80,136,2,77,137,1,75,138,2,72,139
  134. ;
  135.          DFB 2,67,128,1,65,129,2,62,130,1,60,131
  136.          DFB 2,57,132,2,52,133,1,50,134,2,47,135
  137.          DFB 1,45,136,2,42,137,1,40,138,2,37,139
  138. ;
  139.          DFB 2,32,128,1,30,129,2,27,130,1,25,131
  140.          DFB 2,22,132,2,17,133,1,15,134,2,12,135
  141.          DFB 1,10,136,2,7,137,1,5,138,2,2,139
  142. ;
  143. ;
  144. ; HORIZLN - DRAWS HORIZ LINE ACROSS SCREEN. SET Y=VERTICAL COORDINATE
  145. ;
  146. HORIZLN  JSR SETY
  147.          STA $C055
  148.          JSR HORIZLN1
  149.          STA $C054
  150.          JSR HORIZLN1
  151.          RTS
  152. HORIZLN1 LDA #$7F
  153.          LDY #39
  154. HORIZLN2 STA (ZPTR),Y
  155.          DEY
  156.          BPL HORIZLN2
  157.          RTS
  158. ;
  159. ; VERTLNS - DRAW VERTICAL LINES FOR DANCING NOTE DISPLAY
  160. ;
  161. VERTLNS  LDY #176
  162.          STY VERTY
  163. VYLOOP   LDY VERTY
  164.          JSR SETY
  165.          LDX #79
  166.          JSR SETX
  167.          LDA #$78
  168.          LDY XOFFSET
  169.          STA (ZPTR),Y
  170.          LDX #64
  171. VXLOOP   JSR SETX
  172.          LDA #$0F
  173.          LDY XOFFSET
  174.          STA (ZPTR),Y
  175.          DEX
  176.          DEX
  177.          DEX
  178.          DEX
  179.          BPL VXLOOP
  180.          DEC VERTY
  181.          LDA VERTY
  182.          BNE VYLOOP
  183.          RTS
  184. ;
  185. VERTY    DFB $00
  186. ;
  187. ; SETX - GIVEN X COORD OF A CHARACTER, SET APPROPRIATE MODE AND CALC OFFSET
  188. ;
  189. SETX     LDA DHRXMAP,X       ;LOOK UP X COORDINATE TO GET OFFSET
  190.          STA $C054
  191.          BPL SETX1 
  192.          STA $C055
  193. SETX1    AND #$7F
  194.          STA XOFFSET
  195.          RTS
  196. XOFFSET  DFB $00
  197. ;
  198. ; SETY - GIVEN Y COORD, SET BASE ADDRESS FOR POKING BYTES ON THAT LINE
  199. ;
  200. SETY     LDA HGRLINEL,Y
  201.          STA ZPTR
  202.          LDA HGRLINEH,Y
  203.          STA ZPTR+1
  204.          RTS
  205. ;
  206. ; DRAWNUM - DRAWS NUMBER. X=HORIZ PSN 0-79  Y=VERT COORD  A=NUMBER 0-9
  207. ;
  208. DRAWNUM  CMP #10
  209.          BCS DRAWNUMX
  210.          CPX #79
  211.          BCS DRAWNUMX
  212.          CPY #187
  213.          BCS DRAWNUMX
  214.          STA DNUMA
  215.          STX DNUMX
  216.          STY DNUMY
  217. ;
  218.          JSR SETX
  219. ;
  220.          LDA #$05
  221.          STA DHEIGHT
  222.          LDA DNUMA
  223.          ASL A
  224.          ASL A
  225.          CLC
  226.          ADC DNUMA
  227.          TAX
  228. DNUMLOOP LDY DNUMY
  229.          JSR SETY
  230.          LDA NUMBER0,X
  231.          LDY XOFFSET
  232.          STA (ZPTR),Y
  233.          INX
  234.          INC DNUMY
  235.          DEC DHEIGHT
  236.          LDA DHEIGHT
  237.          BNE DNUMLOOP
  238. DRAWNUMX RTS
  239. DNUMA    DFB $00
  240. DNUMX    DFB $00
  241. DNUMY    DFB $00
  242. DHEIGHT  DFB $00
  243. ;
  244. ; DRAWCHAR - X=HORIZ CHAR POSN (0-79) Y=VERT COORD
  245. ;            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
  246. ;                        12=c 13=C,etc, same for 24,36,48,etc.
  247. ;                       128=C   d   D   e   E   F   g   G   a   A    b    B
  248. ;                       140=C 141=d,etc, same for 152,etc.
  249. ;DRAWCHAR CPX #79
  250. ;         BCS DRAWCHRX
  251. ;         CPY #188
  252. ;         BCS DRAWCHRX
  253. ;         STA DCHRA
  254. ;         STX DCHRX
  255. ;         STY DCHRY
  256. ;         LDA DHRXMAP,X       ;LOOK UP X COORDINATE TO GET OFFSET
  257. ;         STA $C054
  258. ;         BPL SETX1A 
  259. ;         STA $C055
  260. ;SETX1A   AND #$7F
  261. ;         STA XOFFSET
  262. ;         LDA #$04
  263. ;         STA CHEIGHT
  264. ;         LDX DCHRA
  265. ;         LDA NOTEMAP,X
  266. ;         TAX       
  267. ;DCHRLOOP LDY DCHRY
  268. ;         LDA HGRLINEL,Y
  269. ;         STA ZPTR
  270. ;         LDA HGRLINEH,Y
  271. ;         STA ZPTR+1
  272. ;         LDA LETTERA,X 
  273. ;         LDY XOFFSET
  274. ;         STA (ZPTR),Y
  275. ;         INX
  276. ;         INC DCHRY
  277. ;         DEC CHEIGHT
  278. ;         LDA CHEIGHT
  279. ;         BNE DCHRLOOP
  280. ;DRAWCHRX RTS
  281. DCHRA    DFB $00
  282. DCHRX    DFB $00
  283. DCHRY    DFB $00
  284. CHEIGHT  DFB $00
  285. ;
  286.          CHN CHARSET.SRC
  287.