Apple ii Battery Charger User Manual


 
2523 F0F0 20 58 EB JSR LDAY
2524 F0F3 2C 7C A4 BIT IMASK ;SEE IF DOT IS SET
2525 F0F6 F0 16 BEQ IPS2 ;NO SO GO ON TO NEXT CHAR
2526 F0F8 AD 7A A4 LDA IBITL ;DOT ON SO SET THE CURR SOLENOID
2527 F0FB F0 08 BEQ IPS3 ;LSB OF SOL MASK IS 0 , DO MSB
2528 F0FD 0D 78 A4 ORA IOUTL ;SET THE SOLENOID IN THE PATTERN
2529 F100 8D 78 A4 STA IOUTL
2530 F103 D0 09 BNE IPS2 ;BRANCH ALWAYS
2531 F105 AD 7B A4 IPS3 LDA IBITU ;SOLENOID IS ONE OF THE 2 MSD
2532 F108 0D 79 A4 ORA IOUTU ;SET THE BIT IN THE PATTERN
2533 F10B 8D 79 A4 STA IOUTU
2534 F10E 0E 7A A4 IPS2 ASL IBITL ;SHIFT MSK TO NXT CHR POSITION
2535 F111 2E 7B A4 ROL IBITU
2536 F114 CA DEX ;DECR PTR INTO BUFFER
2537 F115 CA DEX
2538 F116 10 D0 BPL IPS1 ;NOT END YET
2539 F118 ;SOLENOID PATTERN IS SET UP IN IOUTU,IOUTL
2540 F118 AD 79 A4 LDA IOUTU ;LEFTMOST 2
2541 F11B 29 03 AND #$03 ;DISABLE FOR SEGMENTS
2542 F11D 8D 79 A4 STA IOUTU
2543 F120 60 RTS
2544 F121
2545 F121 ; SUBROUTINE INCP
2546 F121 ;THIS SUBROUTINE IS USED TO UPDATE THE PRINTER VARIABLES
2547 F121 ;TO POINT TO THE NEXT DOT POSITION TO BE PRINTED
2548 F121 ;X REG IS USED TO POINT TO THE VARIABLE BLOCK OF
2549 F121 ;BEING UPDATED
2550 F121 ;ON EXIT X CONTAINS THE POINTER TO THE LAST CHARACTER IN
2551 F121 ;THE PRINT BUFFER
2552 F121 ;CONTENTS OF A,Y ON EXIT ARE ARBITRARY
2553 F121 BD 74 A4 INCP LDA IDIR,X ;EXAMINE DIRECTION(+ OR -)
2554 F124 10 1E BPL OP03 ;DIRECTION = +
2555 F126 ;*DIRECTION = -
2556 F126 BD 75 A4 LDA ICOL,X ;SEE WHAT THE COLUMN IS
2557 F129 F0 05 BEQ OP04 ;COLUMN = 0 SO END OF DIGIT
2558 F12B ;**COLUMN # 0 SO JUST DECREMENT COLUMN
2559 F12B DE 75 A4 DEC ICOL,X
2560 F12E 10 33 BPL NEWCOL ;BRANCH ALWAYS
2561 F130 ;**COLUMN = 0 SO SEE IF EVEN OR ODD DIGIT
2562 F130 BD 76 A4 OP04 LDA IOFFST,X
2563 F133 F0 0A BEQ OP07 ;OFFSET = 0 SO DIRECTION CHANGE
2564 F135 ;***OFFSET = 1 SO MOVE TO RIGHT DIGIT
2565 F135 DE 76 A4 DEC IOFFST,X ;OFFSET <= 0 (LEFT CHARACTER)
2566 F138 A9 04 LDA #4 ;COLUMN <= 4
2567 F13A 9D 75 A4 STA ICOL,X
2568 F13D 10 24 BPL NEWCOL ;BRANCH ALWAYS
2569 F13F ;***OFFSET = 0 SO CHANGE DIRECTION TO +
2570 F13F FE 74 A4 OP07 INC IDIR,X ;DIRECTION <= $00 (+)
2571 F142 10 1C BPL NEWROW ;BRANCH ALWAYS
2572 F144 ;*DIRECTION = +
2573 F144 BD 75 A4 OP03 LDA ICOL,X ;SEE IF LAST COLUMN IN DIGIT
2574 F147 C9 04 CMP #4
2575 F149 F0 05 BEQ OP05 ;COLUMN = 4 SO GO TO NEXT DIGIT
2576 F14B FE 75 A4 INC ICOL,X ;JUST INCR COLUMN-NOT END OF DIGIT
2577 F14E 10 13 BPL NEWCOL ;BRANCH ALWAYS
2578 F150 ;**AT COLUMN 4 -- SEE IF LEFT OR RIGHT DIGIT
2579 F150 BD 76 A4 OP05 LDA IOFFST,X
2580 F153 D0 08 BNE OP06 ;OFFSET # 0 SO RIGHT DIGIT
2581 F155 9D 75 A4 STA ICOL,X ;COLUMN <= 0
2582 F158 FE 76 A4 INC IOFFST,X ;OFFSET <= 1 (RIGHT CHARACTER)
2583 F15B 10 06 BPL NEWCOL ;BRANCH ALWAYS
2584 F15D ;***OFFSET = 1 SO DIRECTION CHANGE