10 INPUT"DISK DRIVE";DD:REM GET DISK DRIVE 15 INPUT"NAME";NA$:REM GET FILENAME 20 NA$=LEFT$(NA$,16)+",P,W" 30 OPEN1,DD,7,NA$:REM OPEN FILE 40 READDA:IFDA<>-1THENPRINT#1,CHR$(DA);:GOTO40 50 CLOSE1 500 DATA 66,3 505 REM ADDRESS OF ROUTINE ($0342) 1120 DATA 173,2,221 1125 REM $0342 LDA $DD02 ; SAVE DDRA 1130 DATA 141,64,3 1135 REM $0345 STA $0340 ; AT $0340 1140 DATA 173,3,221 1145 REM $0348 LDA $DD03 ; SAVE DDRB 1150 DATA 141,65,3 1155 REM $034B STA #0341 ; AT $0341 1160 DATA 173,60,3 1165 REM $034E LDA $033C ; LOW BYTE 1170 DATA 133,167 1175 REM $0351 STA $A7 ; TO $A7 1180 DATA 173,61,3 1185 REM $0353 LDA $033D ; HIGH BYTE 1190 DATA 133,168 1195 REM $0356 STA $A8 ; TO $A8 1200 DATA 120 1205 REM $0358 SEI ; SUPPRESS IRQ 1210 DATA 173,2,221 1215 REM $0359 LDA $DD02 ; LOAD DDRA 1220 DATA 9,4 1225 REM $035C ORA #$04 ; SET BIT 2 1230 DATA 141,2,221 1235 REM $035E STA $DD02 ; STORE DDRA 1240 DATA 169,255 1245 REM $0361 LDA #$FF ; SET ALL BITS 1250 DATA 141,3,221 1255 REM $0363 STA $DD03 ; IN DDRB 1260 DATA 160,0 1265 REM $0366 LDY #$00 ; RESET Y REG 1270 DATA 174,63,3 1275 REM $0368 LDX $033F ; LENGTH HIGH 1276 REM ; INTO X 1280 DATA 240,33 1285 REM $036B BEQ $038E ; BRANCH IF 0 1290 DATA 173,13,221 1295 REM $036D LDA $DD0D ; LOAD ICR 1300 DATA 41,16 1305 REM $0370 AND #$10 ; CHECK BIT 4 1310 DATA 240,249 1315 REM $0372 BEQ $036D ; LOOP IF 1316 REM ; NOT SET 1320 DATA 177,167 1325 REM $0374 LDA ($A7),Y; LOAD DATA 1330 DATA 141,1,221 1335 REM $0376 STA $DD01 ; SHOVE INTO 1336 REM ; PRB 1340 DATA 173,0,221 1345 REM $0379 LDA $DD00 ; LOAD PRA 1350 DATA 41,251 1355 REM $037C AND #$FB ; CLEAR BIT 2 1360 DATA 141,0,221 1365 REM $037E STA $DD00 ; IN PRA 1370 DATA 9,4 1375 REM $0381 ORA #$04 ; SET BIT 2 1380 DATA 141,0,221 1385 REM $0383 STA $DD00 ; IN PRA 1390 DATA 200 1395 REM $0386 INY ; INCREASE 1396 REM ; Y REG 1400 DATA 208,228 1405 REM $0387 BNE $036D ; LOOP IF NOT 1406 REM ; FULL PAGE 1410 DATA 230,168 1415 REM $0389 INC $A8 ; INCREASE 1416 REM ; PAGE IN $A8 1420 DATA 202 1425 REM $038B DEX ; DECREASE 1426 REM ; PAGE COUNT 1430 DATA 208,223 1435 REM $038C BNE $036D ; LOOP IF NOT 1436 REM ; 0 1440 DATA 174,62,3 1445 REM $038E LDX $033E ; LENGTH LOW 1446 REM ; IN X REG 1450 DATA 240,29 1455 REM $0391 BEQ $031E ; END IF 0 1460 DATA 173,13,221 1465 REM $0393 LDA $DD0D ; LOAD ICR 1470 DATA 41,16 1475 REM $0396 AND #$10 ; CHECK BIT 4 1480 DATA 240,249 1485 REM $0398 BEQ $08A8 ; LOOP IF 1486 REM ; NOT SET 1490 DATA 177,167 1495 REM $039A LDA ($A7),Y; LOAD DATA 1500 DATA 141,1,221 1505 REM $039C STA $DD01 ; SHOVE INTO 1506 REM ; PRB 1510 DATA 173,0,221 1515 REM $039F LDA $DD00 ; LOAD PRA 1520 DATA 41,251 1525 REM $03A2 AND #$FB ; CLEAR BIT 2 1530 DATA 141,0,221 1535 REM $03A4 STA $DD00 ; IN PRA 1540 DATA 9,4 1545 REM $03A7 ORA #$04 ; SET BIT 2 1550 DATA 141,0,221 1555 REM $03A9 STA $DD00 ; IN PRA 1560 DATA 200 1565 REM $03AC INY ; INCREASE 1566 REM ; Y REG 1570 DATA 202 1575 REM $03AD DEX ; DECREASE 1576 REM ; COUNTER 1580 DATA 208,227 1585 REM $03AE BNE $0391 ; LOOP IF 1586 REM ; NOT 0 1590 DATA 173,64,3 1595 REM $03B0 LDA $0340 ; RETRIEVE 1600 DATA 141,2,221 1605 REM $03B3 STA $DD02 ; DDRA 1610 DATA 173,65,3 1615 REM $03B6 LDA $0341 ; RETRIEVE 1620 DATA 141,3,221 1625 REM $03B9 STA $DD03 ; DDRB 1630 DATA 88 1635 REM $03BC CLI ; ALLOW IRQ 1640 DATA 96 1645 REM $03BD RTS ; END 30000 DATA -1