Apple II Manual De Usuario

Descargar
Página de 257
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