Apple II User Manual

Page of 257
F820: C8        119           INY              ; NO, INC INDEX (X-COORD)
F821: 20 0E F8  120           JSR   PLOT1      ;PLOT NEXT SQUARE
F824: 90 F6     121           BCC   HLINE1     ;ALWAYS TAKEN
F826: 69 01     122  VLINEZ   ADC   #$01       ;NEXT Y-COORD
F828: 48        123  VLINE    PHA              ; SAVE ON STACK
F829: 20 00 F8  124           JSR   PLOT       ; PLOT SQUARE
F82C: 68        125           PLA
F82D: C5 2D     126           CMP   V2         ;DONE?
F82F: 90 F5     127           BCC   VLINEZ     ; NO, LOOP
F831: 60        128  RTS1     RTS
F832: A0 2F     129  CLRSCR   LDY   #$2F       ;MAX Y, FULL SCRN CLR
F834: D0 02     130           BNE   CLRSC2     ;ALWAYS TAKEN
F836: A0 27     131  CLRTOP   LDY   #$27       ;MAX Y, TOP SCREEN CLR
F838: 84 2D     132  CLRSC2   STY   V2         ;STORE AS BOTTOM COORD
                133                            ; FOR VLINE CALLS
F83A: A0 27     134           LDY   #$27       ;RIGHTMOST X-COORD (COLUMN)
F83C: A9 00     135  CLRSC3   LDA   #$00       ;TOP COORD FOR VLINE CALLS
F83E: 85 30     136           STA   COLOR      ;CLEAR COLOR (BLACK)
F840: 20 28 F8  137           JSR   VLINE      ;DRAW VLINE
F843: 88        138           DEY              ;NEXT LEFTMOST X-COORD
F844: 10 F6     139           BPL   CLRSC3     ;LOOP UNTIL DONE
F846: 60        140           RTS
F847: 48        141  GBASCALC PHA              ;FOR INPUT 000DEFGH
F848: 4A        142           LSR
F849: 29 03     143           AND   #$03
F84B: 09 04     144           ORA   #$04       ;  GENERATE GBASH=000001FG
F84D: 85 27     145           STA   GBASH
F84F: 68        146           PLA              ;  AND GBASL=HDEDE000
F850: 29 18     147           AND   #$18
F852: 90 02     148           BCC   GBCALC
F854: 69 7F     149           ADC   #$7F
F856: 85 26     150  GBCALC   STA   GBASL
F858: 0A        151           ASL
F859: 0A        152           ASL
F85A: 05 26     153           ORA   GBASL
F85C: 85 26     154           STA   GBASL
F85E: 60        155           RTS
F85F: A5 30     156  NXTCOL   LDA   COLOR      ;INCREMENT COLOR BY 3
F861: 18        157           CLC
F862: 69 03     158           ADC   #$03
F864: 29 0F     159  SETCOL   AND   #$0F       ;SETS COLOR=17*A MOD 16
F866: 85 30     160           STA   COLOR
F868: 0A        161           ASL              ;BOTH HALF BYTES OF COLOR EQUAL
F869: 0A        162           ASL
F86A: 0A        163           ASL
F86B: 0A        164           ASL
F86C: 05 30     165           ORA   COLOR
F86E: 85 30     166           STA   COLOR
F870: 60        167           RTS
F871: 4A        168  SCRN     LSR              ;READ SCREEN Y-COORD/2
F872: 08        169           PHP              ;SAVE LSB (CARRY)
F873: 20 47 F8  170           JSR   GBASCALC   ;CALC BASE ADDRESS
F876: B1 26     171           LDA   (GBASL),Y  ;GET BYTE
F878: 28        172           PLP              ;RESTORE LSB FROM CARRY
F879: 90 04     173  SCRN2    BCC   RTMSKZ     ;IF EVEN, USE LO H
F87B: 4A        174           LSR
F87C: 4A        175           LSR
F87D: 4A        176           LSR              ;SHIFT HIGH HALF BYTE DOWN
F87E: 4A        177           LSR
F87F: 29 0F     178  RTMSKZ   AND   #$0F       ;MASK 4-BITS
F881: 60        179           RTS
F882: A6 3A     180  INSDS1   LDX   PCL        ;PRINT PCL,H