Apple ii Battery Charger User Manual


 
2461 F0B2 A9 06 LDA #PRTIME/256 ;START T2 FOR 1.7 MSEC
2462 F0B4 8D 09 A8 STA T2H
2463 F0B7 20 E3 F0 JSR IPSU ;SET NEXT PATTERN WHILE WAITING
2464 F0BA 20 1B EC JSR DE2 ;WAIT TILL TIME OUT
2465 F0BD A9 00 LDA #0 ;THERMAL ELEM OFF
2466 F0BF 8D 01 A8 STA DRAH
2467 F0C2 AD 00 A8 LDA DRB ;BUT DONT CHANGE TAPE CONTROLS
2468 F0C5 29 FC AND #$FC
2469 F0C7 8D 00 A8 STA DRB
2470 F0CA 60 RTS
2471 F0CB
2472 F0CB ; SUBROUTINE PINT -- INIT VARS FOR PRINTER
2473 F0CB A9 FF PINT LDA #$FF
2474 F0CD 8D 74 A4 STA IDIR ;DIRECTION <= -
2475 F0D0 A9 05 LDA #5
2476 F0D2 8D 75 A4 STA ICOL ;COLUMN <= LEFTMOST +1
2477 F0D5 A9 01 LDA #1
2478 F0D7 8D 76 A4 STA IOFFST ;OFFSET <= LEFT CHARACTER
2479 F0DA 8D 7C A4 STA IMASK
2480 F0DD A9 00 LDA #0
2481 F0DF 8D 77 A4 STA IDOT ;DOT COUNTER <= 0
2482 F0E2 60 RTS
2483 F0E3
2484 F0E3 ;THE VARIABLES FOR THE PRINTER ARE AS FOLLOWS:
2485 F0E3 ;
2486 F0E3 ;IDIR DIRECT HEAD IS CURRENTLY MOVING (0=+, $FF=-)
2487 F0E3 ;ICOL CLMN TO BE PRNTED NEXT (LEFTMOST=0,RIGHTMOST=4)
2488 F0E3 ;IOFFST OFFSET N PRINT BUFF (0=LEFT CHR, 1=RIGHT CHR)
2489 F0E3 ;IDOT COUNT OF NUMBER OF DOTS PRINTED THUS FAR
2490 F0E3 ;IOUTL SOLENOID PATTERN (8 CHRS ON RIGHT)
2491 F0E3 ;IOUTU SOLENOID PATTERN (2 CHRS ON LEFT)
2492 F0E3 ;IBITL 1 BIT MSK USED IN SETTING NEXT SOLENOID VALUE
2493 F0E3 ;IBITU UPPER PART OF MASK
2494 F0E3 ;IBUFM START OF PRINT BUFFER (LEFTMOST CHR FIRST)
2495 F0E3 ;IMASK MASK FOR CURRENT ROW BEING PRINTED
2496 F0E3 ;JUMP ADDRESS OF TABLE FOR CURRENT COLUMN
2497 F0E3 ;
2498 F0E3 ; THE DOT PATTERNS FOR THE CHRS ARE STORED SO THAT...
2499 F0E3 ;EACH BYTE CONTAINS THE DOTS FOR ONE COLUMN OF ONE...
2500 F0E3 ;CHR. SINCE EACH COLUMN CONTAINS SEVEN DOTS ,
2501 F0E3 ;THIS MEANS THAT ONE BIT PER BYTE IS UNUSED.
2502 F0E3 ; THE PATTERNS ARE ORGANIZED INTO 5 TABLES OF 64...
2503 F0E3 ;BYTES WHERE EACH TABLE CONTAINS ALL THE DOT...
2504 F0E3 ;PATTERNS FOR A PARTICULAR COLUMN. THE BYTES IN EACH...
2505 F0E3 ;TABLE ARE ORDERED ACCORDING TO THE CHR CODE OF...
2506 F0E3 ;THE CHR BEING REFERENCED. THE CHR CODE CAN...
2507 F0E3 ;THUS BE USED TO DIRECTLY INDEX INTO THE TABLE.
2508 F0E3
2509 F0E3 ;SUBROUTINE IPSU -- SET UP OUTPUT PATTERN FOR PRINTER
2510 F0E3 ; THIS ROUTINE IS CALLED IN ORDER TO
2511 F0E3 ;SET UP THE NEXT GROUP OF SOLENOIDS TO
2512 F0E3 ;BE OUTPUT TO THE PRINTER.
2513 F0E3 ; ON ENTRY THE CONTENTS OF ALL REGISTERS
2514 F0E3 ;ARE ARBITRARY
2515 F0E3 ; ON EXIT THE CONTENTS OF A,X,Y ARE UNDEFINED
2516 F0E3 A2 00 IPSU LDX #0 ;X POINTS TO VAR BLOCK FOR PRNTR
2517 F0E5 20 21 F1 JSR INCP ;ADVANCE PTRS TO NXT DOT POSITION
2518 F0E8 ;X NOW CONTAINS INDEX INTO PRINT BUFFER
2519 F0E8 BD 60 A4 IPS1 LDA IBUFM,X ;LOAD NEXT CHAR FROM BUFFER
2520 F0EB 29 3F AND #$3F
2521 F0ED A8 TAY
2522 F0EE A9 7D LDA #JUMP ;A<= DOT PATTERN FOR CHAR & COL