10 REM Mode 0 Portrait Dump (Light) 20 REM after W.Trevelyan 30 REM by M.Bobrowski 5'94 40 : 45 MODE0 50 x=&70:z=&72:pix=&74:count=&75 60 octet=&76:y=&7E:flag=&80 70 osword=&FFF1:oswrch=&FFEE:osbyte=&FFF4 80 FOR pass=0 TO 2 STEP 2 90 P%=&900 100 [OPT pass 110 LDA #26:JSR oswrch 120 LDA #3:LDX #10:JSR osbyte \ output to printer 130 .begin 140 LDA #252:STA y 150 LDA #3:STA y+1 \ Y=1020 160 .newline 170 LDA #0:STA x:STA x+1 \ X=0 180 .bit 190 JSR esc 200 LDA #90:JSR oswrch 210 LDA #128:JSR oswrch 220 LDA #7:JSR oswrch \ 1920 dots per line 230 .start 240 LDA #4:STA count 250 LDA y:STA z:LDA y+1:STA z+1 260 .readpix 270 LDX #&70:LDY #0:LDA #9 280 JSR osword \ logical colour returned in &74 290 LDA pix:AND #7:TAY \ logical colour used as index to pattern 300 .byte 310 LDX #0 320 LDA pattern,Y 330 .loop1 340 LSR A:ROL octet,X 350 LSR A:ROL octet,X \ 2 bits transferred from pattern to each byte in turn 360 INX:CPX #3 370 BNE loop1 380 .loop2 390 DEC count 400 BEQ print 410 SEC:LDA z:SBC #4:STA z 420 BCS carryset:DEC z+1 430 .carryset 440 JMP readpix 450 .print 460 LDX #0 470 .loop3 480 LDA octet,X:JSR oswrch 490 INX:CPX #3:BNE loop3 500 \ increase X 510 CLC:LDA x:ADC #2:STA x 520 LDA x+1:ADC #0:STA x+1 530 CMP #5 \ end of line? (X=1280) 540 BNE start 550 JSR spacing 560 \ go down 4 pixels 570 SEC:LDA y:SBC #16:STA y 580 LDA y+1:SBC #0:STA y+1 590 BCC end \ finish when Y=0 600 JMP newline \ otherwise continue 610 .end 620 LDA #7:JSR oswrch \ beep 630 JSR esc 640 LDA #64:JSR oswrch \ return printer to default setting 650 LDA #3:LDX #0:JMP osbyte \ output to screen 660 .esc 670 LDA #27:JMP oswrch 680 .spacing 690 JSR esc 700 LDA #51:JSR oswrch 710 LDA #24:JSR oswrch 720 LDA #13:JMP oswrch 730 .pattern 740 EQUD &FFFFFF00:EQUD &FFFFFF00 750 ] 760 NEXT pass 770 PRINT'"To save code press COPY ";:REPEAT UNTIL INKEY-106:PRINT 780 OSCLI"SA.SDump0L 900 "+STR$~P% 790 END