Apple ii Battery Charger User Manual


 
2585 F15D DE 74 A4 OP06 DEC IDIR,X ;DIRECTION <= $FF (-)
2586 F160
2587 F160 ;START OF NEW PRINT ROW
2588 F160 1E 7C A4 NEWROW ASL IMASK,X ;UPDATE ROW MASK FOR DOT PATTERNS
2589 F163 ;START OF NEW PRINT COLUMN
2590 F163 A9 00 NEWCOL LDA #0 ;CLEAR OUTPUT PATTERN
2591 F165 9D 78 A4 STA IOUTL,X ;PATTERN FOR 8 RIGHT CHRS
2592 F168 9D 79 A4 STA IOUTU,X ;PATTERN FOR 2 LEFT SOLEN
2593 F16B 9D 7B A4 STA IBITU,X ;OUTPUT MSK FOR LEFTMOST SOLEN
2594 F16E A9 01 LDA #1
2595 F170 9D 7A A4 STA IBITL,X ;OUTPUT MSK FOR RIGHTMOST SOLEN
2596 F173 ;GET ADDRESS OF DOT PATTERN TABLE FOR NEXT COLUMN
2597 F173 BD 75 A4 LDA ICOL,X ;GET COLUMN NUMBER (0-4)
2598 F176 0A ASL A ;*2 ,INDEX INTO TBL OF TBL ADDRS
2599 F177 A8 TAY
2600 F178 B9 D7 F2 LDA MTBL,Y ;LSB OF ADDR OF TABLE
2601 F17B 9D 7D A4 STA JUMP,X ;PTR TO TBL WITH DOT PATTERNS
2602 F17E B9 D8 F2 LDA MTBL+1,Y ;MSB OF TABLE ADDRESS
2603 F181 9D 7E A4 STA JUMP+1,X
2604 F184 A9 12 LDA #18 ;COMPUTE INDEX INTO PRNTR BUFFER
2605 F186 1D 76 A4 ORA IOFFST,X ;+1 IF RIGHT CHR
2606 F189 AA TAX
2607 F18A 60 RTS
2608 F18B
2609 F18B ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2610 F18B ;OUTPUT ACC TO TAPE BUFFER SUBROUTINE
2611 F18B ; & WHEN FULL OUTPUT BUFF TO TAPE.
2612 F18B ; IF INFLG=OUTFLG= T USE TWO BUFFERS
2613 F18B ;OTHERWISE USE SAME BUFFER FOR INPUT
2614 F18B ;AND OUTPUT (MONIT BUFFER)
2615 F18B 20 9E EB TOBYTE JSR PHXY ;SAVE X
2616 F18E AE 37 A4 LDX TAPTR2 ;TAPE BUFFER POINTER FOR OUTPUT
2617 F191 20 0F F2 JSR BKCK2 ;STORE IN BUFFER
2618 F194 E8 INX
2619 F195 8E 37 A4 STX TAPTR2 ;FOR NEXT
2620 F198 E0 50 CPX #80 ;BUFFER FULL?
2621 F19A D0 32 BNE TABY3 ;NO , GO BACK
2622 F19C ;OUTPUT A BLOCK FROM BUFFER TO TAPE
2623 F19C 20 E7 F1 JSR BKCKSM ;COMPUT BLOCK CHECKSUM
2624 F19F 20 1D F2 JSR TAOSET ;SET TAPE FOR OUTPUT
2625 F1A2 A9 23 LDA #'#' ;CHAR FOR BEGINNING
2626 F1A4 20 4A F2 JSR OUTTAP ;OF BLOCK
2627 F1A7 ;OUTPUT CHRS FROM ACTIVE BUFFER
2628 F1A7 20 D2 F1 TABY2 JSR CKBUFF ;LOAD CHR FROM ACTIVE BUFFER
2629 F1AA 20 4A F2 JSR OUTTAP ; FROM BUFFER
2630 F1AD E8 INX
2631 F1AE E0 53 CPX #83 ;2 BLOCK CKSUM CHR + 1 EXTRA CHR..
2632 F1B0 D0 F5 BNE TABY2 ;OTHERWISE ERROR
2633 F1B2 AD 00 A8 LDA DRB
2634 F1B5 29 CF AND #$CF ;TURN TAPES OFF PB5,PB4
2635 F1B7 8D 00 A8 STA DRB
2636 F1BA 58 CLI ;ENABLE INTERRUPT
2637 F1BB A9 00 LDA #0
2638 F1BD 8D 37 A4 STA TAPTR2 ;CLR TAPE BUFF PTR
2639 F1C0 A9 00 LDA #T1I ;RESET FREE RUNNING TO 1 SHOT
2640 F1C2 8D 0B A8 STA ACR
2641 F1C5 20 9A FF JSR PAT22 ;ADD 1 TO BLK COUNT & OUTPUT
2642 F1C8 AD 68 01 LDA BLKO ;PUT BLK CNT IN FIRST LOC (TABUFF)
2643 F1CB 20 8B F1 JSR TOBYTE
2644 F1CE 20 AC EB TABY3 JSR PLXY
2645 F1D1 60 RTS
2646 F1D2