Apple II User Manual
2585 F15D DE 74 A4 OP06 DEC IDIR,X ;DIRECTION <= $FF (-)
2586 F160
2587 F160 ;START OF NEW PRINT ROW
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
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
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
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
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)
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
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
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
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
2605 F186 1D 76 A4 ORA IOFFST,X ;+1 IF RIGHT CHR
2606 F189 AA TAX
2607 F18A 60 RTS
2607 F18A 60 RTS
2608 F18B
2609 F18B ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2609 F18B ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2610 F18B ;OUTPUT ACC TO TAPE BUFFER SUBROUTINE
2611 F18B ; & WHEN FULL OUTPUT BUFF TO TAPE.
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
2613 F18B ;OTHERWISE USE SAME BUFFER FOR INPUT
2614 F18B ;AND OUTPUT (MONIT BUFFER)
2615 F18B 20 9E EB TOBYTE JSR PHXY ;SAVE X
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
2617 F191 20 0F F2 JSR BKCK2 ;STORE IN BUFFER
2618 F194 E8 INX
2619 F195 8E 37 A4 STX TAPTR2 ;FOR NEXT
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
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
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
2625 F1A2 A9 23 LDA #'#' ;CHAR FOR BEGINNING
2626 F1A4 20 4A F2 JSR OUTTAP ;OF BLOCK
2627 F1A7 ;OUTPUT CHRS FROM ACTIVE BUFFER
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
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..
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
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
2635 F1B7 8D 00 A8 STA DRB
2636 F1BA 58 CLI ;ENABLE INTERRUPT
2637 F1BB A9 00 LDA #0
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
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
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
2643 F1CB 20 8B F1 JSR TOBYTE
2644 F1CE 20 AC EB TABY3 JSR PLXY
2645 F1D1 60 RTS
2645 F1D1 60 RTS
2646 F1D2