Apple ii Battery Charger User Manual


 
F8F5: A9 00 243 PRMN1 LDA #$00
F8F7: A0 05 244 LDY #$05
F8F9: 06 2D 245 PRMN2 ASL RMNEM ;SHIFT 5 BITS OF
F8FB: 26 2C 246 ROL LMNEM ; CHARACTER INTO A
F8FD: 2A 247 ROL ; (CLEARS CARRY)
F8FE: 88 248 DEY
F8FF: D0 F8 249 BNE PRMN2
F901: 69 BF 250 ADC #$BF ;ADD "?" OFFSET
F903: 20 ED FD 251 JSR COUT ;OUTPUT A CHAR OF MNEM
F906: CA 252 DEX
F907: D0 EC 253 BNE PRMN1
F909: 20 48 F9 254 JSR PRBLNK ;OUTPUT 3 BLANKS
F90C: A4 2F 255 LDY LENGTH
F90E: A2 06 256 LDX #$06 ;CNT FOR 6 FORMAT BITS
F910: E0 03 257 PRADR1 CPX #$03
F912: F0 1C 258 BEQ PRADR5 ;IF X=3 THEN ADDR.
F914: 06 2E 259 PRADR2 ASL FORMAT
F916: 90 0E 260 BCC PRADR3
F918: BD B3 F9 261 LDA CHAR1-1,X
F91B: 20 ED FD 262 JSR COUT
F91E: BD B9 F9 263 LDA CHAR2-1,X
F921: F0 03 264 BEQ PRADR3
F923: 20 ED FD 265 JSR COUT
F926: CA 266 PRADR3 DEX
F927: D0 E7 267 BNE PRADR1
F929: 60 268 RTS
F92A: 88 269 PRADR4 DEY
F92B: 30 E7 270 BMI PRADR2
F92D: 20 DA FD 271 JSR PRBYTE
F930: A5 2E 272 PRADR5 LDA FORMAT
F932: C9 E8 273 CMP #$E8 ;HANDLE REL ADR MODE
F934: B1 3A 274 LDA (PCL),Y ;SPECIAL (PRINT TARGET,
F936: 90 F2 275 BCC PRADR4 ; NOT OFFSET)
F938: 20 56 F9 276 RELADR JSR PCADJ3
F93B: AA 277 TAX ;PCL,PCH+OFFSET+1 TO A,Y
F93C: E8 278 INX
F93D: D0 01 279 BNE PRNTYX ;+1 TO Y,X
F93F: C8 280 INY
F940: 98 281 PRNTYX TYA
F941: 20 DA FD 282 PRNTAX JSR PRBYTE ;OUTPUT TARGET ADR
F944: 8A 283 PRNTX TXA ; OF BRANCH AND RETURN
F945: 4C DA FD 284 JMP PRBYTE
F948: A2 03 285 PRBLNK LDX #$03 ;BLANK COUNT
F94A: A9 A0 286 PRBL2 LDA #$A0 ;LOAD A SPACE
F94C: 20 ED FD 287 PRBL3 JSR COUT ;OUTPUT A BLANK
F94F: CA 288 DEX
F950: D0 F8 289 BNE PRBL2 ;LOOP UNTIL COUNT=0
F952: 60 290 RTS
F953: 38 291 PCADJ SEC ;0=1-BYTE, 1=2-BYTE
F954: A5 2F 292 PCADJ2 LDA LENGTH ; 2=3-BYTE
F956: A4 3B 293 PCADJ3 LDY PCH
F958: AA 294 TAX ;TEST DISPLACEMENT SIGN
F959: 10 01 295 BPL PCADJ4 ; (FOR REL BRANCH)
F95B: 88 296 DEY ;EXTEND NEG BY DEC PCH
F95C: 65 3A 297 PCADJ4 ADC PCL
F95E: 90 01 298 BCC RTS2 ;PCL+LENGTH(OR DISPL)+1 TO A
F960: C8 299 INY ; CARRY INTO Y (PCH)
F961: 60 300 RTS2 RTS
301 * FMT1 BYTES: XXXXXXY0 INSTRS
302 * IF Y=0 THEN LEFT HALF BYTE
303 * IF Y=1 THEN RIGHT HALF BYTE
304 * (X=INDEX)