10 REM"† 20 REM"†„ Typewriter Listing 1 30 REM"† „Mike Rawlings 40 REM"† „For BBCB / B+ / Electron 50 REM"†„ 6-7-1986 60 REM"† 70 REM"ƒ 80 REM"ƒ Printer specific codes 90 REM"ƒmarked withˆREM‰statements 100 REM"ƒ 110 REM"„ 120 REM"„‡ Codes are correct for 130 REM"„‡Epson DX-100 / Brother HR15 140 REM"„ 150 : 160 ON ERROR PROCerror 170 *TV 255 180 MODE7:IFHIMEM=&6000 computer$="ELK":ELSEcomputer$="BBC" 190 MODE 0 200 *FX 18 210 *FX 202,48 220 *FX 212,0 230 *FX 213,205 240 *FX 4,1 250 IFcomputer$="ELK" OSCLI"FX 226,144":ELSE*FX 219,9 260 : 270 B%=&70:C%=&900:D%=&947:E%=&99E:F%=&E00:G%=&C00:H%=&C47:J%=&C65:K%=&C87:L%=&CA9:M%=&6C7:Q%=78:R%=&2400:N%=&CCB:IF PAGE>&800 GOTO 290 280 D%=&24C:E%=&2A3:Q%=350:R%=&7400:N%=&389:J%=&301:K%=&323:L%=&345:M%=&367 290 ENVELOPE 1,3,1,-1,1,1,1,1,126,-60,-12,-1,126,126:ENVELOPE 2,0,0,0,0,0,0,0,50,-20,-20,-20,126,1 300 READ data:IF data=-1 GOTO 320 310 VDU data:GOTO300 320 PROCassemble 330 VDU 28,0,31,79,29:COLOUR 128:CLS:COLOUR 1 340 IFcomputer$="BBC" PRINT SPC(3)"|CTRL f0|CTRL f1|CTRL f2|CTRL f3|CTRL f4|":ELSEPRINTSPC(3)"|FUNC A |FUNC B |FUNC C |FUNC D |FUNC E |" 350 PRINT SPC(3)"| CLEAR | STAND | TAB | TAB |DEFINE |" 360 PRINT SPC(3)"| TAB | TAB | ON | OFF |f - KEY|"; 370 IFcomputer$="BBC" $J%=STRING$(10,CHR$(32))+"PRESS ESCAPE":ELSE$J%="CTRL I |"+STRING$(6,CHR$(32))+"PRESS ESCAPE" 380 IFcomputer$="BBC" $K%=STRING$(14,CHR$(32))+"TO":ELSE$K%=" TAB |"+STRING$(10,CHR$(32))+"TO" 390 IFcomputer$="BBC" $L%=STRING$(10,CHR$(32))+"CLEAR SCREEN":ELSE$L%=" |"+STRING$(6,CHR$(32))+"CLEAR SCREEN" 400 $M%="WORD ?"+STRING$(24,CHR$(32))+CHR$(124)+STRING$(24,CHR$(8)) 410 $N%="KEY NUMBER ? " 420 X%=H% MOD 256:Y%=H% DIV 256 430 VDU 28,5,27,76,4 440 COLOUR 0:COLOUR 129 450 : 460 REM"ƒˆSet pitch 10 œ 470 VDU 2,1,27,1,31,1,11,3 480 REM"ƒˆSet pitch 10 œ 490 : 500 PAGE=R%:CHAIN "TYPIST2" 520 DATA 23,224,63,63,3,3,3,3,3,3 530 DATA 23,225,252,252,192,192,192,192,192,192 540 DATA 23,226,3,3,3,3,3,3,0,0 550 DATA 23,227,192,192,192,192,192,192,0,0 560 DATA 23,228,3,3,3,3,63,63,0,0 570 DATA 23,229,192,192,192,192,252,252,0,0 580 DATA 23,230,60,60,60,60,60,30,15,7 590 DATA 23,231,60,60,60,60,60,120,240,224 600 DATA 23,232,63,63,60,60,60,60,63,63 610 DATA 23,233,240,248,124,60,60,124,248,240 620 DATA 23,234,60,60,60,60,60,60,0,0 630 DATA 23,235,240,120,60,60,60,60,0,0 640 DATA 23,236,252,252,0,0,0,0,240,240 650 DATA 23,237,60,60,60,60,63,63,0,0 660 DATA 23,238,0,0,0,0,252,252,0,0 670 DATA 23,239,60,60,60,60,60,60,60,61 680 DATA 23,240,15,15,15,15,207,207,207,239 690 DATA 23,241,63,63,63,62,60,60,0,0 700 DATA 23,242,255,255,63,31,15,15,0,0 710 DATA 23,255,0,0,60,102,102,60,0,0 720 DATA 31,26,1 730 DATA 224,225,32,230,231,32,232 740 DATA 233,32,232,236,32,239,240,32 750 DATA 232,233,32,224,225,32,224 760 DATA 225,32,232,236,32,232,233 770 DATA 31,26,2 780 DATA 226,227,32,226,227,32,234,32 790 DATA 32,237,238,32,241,242,32,234 800 DATA 235,32,228,229,32,226,227,32 810 DATA 237,238,32,234,235 820 DATA 19,0,7,0,0,0 830 DATA 19,1,4,0,0,0 840 DATA 28,3,27,76,4 850 DATA 23,0,10,96,0,0,0,0,0,0 860 DATA 17,129,12,18,0,0 870 DATA -1 880 : 890 DEF PROCerror:MODE 7 900 *FX 4,0 910 *FX 202,32 920 *FX 212,144 930 *FX 213,101 940 PRINT '':REPORT:PRINT " at line ";ERL:END 950 : 960 DEF PROCassemble 970 P%=B% 980 [OPT 0 990 LDX #(H% MOD 256) 1000 STX &8B 1010 LDX #(H% DIV 256) 1020 STX &8C 1030 LDX #32 1040 STX &8E 1050 LDX #127 1060 STX &8F 1070 LDA #0 1080 TAY 1090 LDX #&8B 1100 JSR &FFF1 1110 RTS 1120 ] 1130 FOR pass=0 TO 2 STEP 2 1140 P%=D% 1150 [OPT pass 1160 LDA #2 1170 JSR &FFEE 1180 LDY &8D 1190 .loop 1200 LDA #1 1210 JSR &FFEE 1220 LDA C%,Y 1230 PHA 1240 JSR &FFEE 1250 CMP #95 1260 BNE skip1 1270 LDA (&8B),Y 1280 CMP #127 1290 BPL skip2 1300 .skip1 1310 PLA 1320 PHA 1330 CMP #32 1340 BEQ skip2 1350 CMP #95 1360 BNE skip3 1370 LDA (&8B),Y 1380 CLC 1390 ADC #128 1400 JMP skip5 1410 .skip3 1420 LDA (&8B),Y 1430 CMP #128 1440 BMI skip4 1450 PLA 1460 PHA 1470 CLC 1480 ADC #128 1490 JMP skip5 1500 .skip4 1510 PLA 1520 PHA 1530 .skip5 1540 STA (&8B),Y 1550 .skip2 1560 PLA 1570 INY 1580 CPY &8E 1590 BNE loop 1600 LDA #13 1610 JSR &FFEE 1620 LDA #3 1630 JSR &FFEE 1640 LDA #10 1650 JSR &FFEE 1660 RTS 1670 ]:NEXT 1680 FOR pass=0 TO 2 STEP 2 1690 P%=E% 1700 [OPT pass 1710 LDA #5 1720 JSR &FFEE 1730 JSR sub 1740 .loop1 1750 LDA (&8B),Y 1760 CMP #128 1770 BMI skip1 1780 SEC 1790 SBC #128 1800 STA C%,Y 1810 LDA #95 1820 JSR &FFEE 1830 JMP skip2 1840 .skip1 1850 STA C%,Y 1860 LDA #9 1870 JSR &FFEE 1880 .skip2 1890 INY 1900 CPY #70 1910 BNE loop1 1920 JSR sub 1930 .loop2 1940 LDA C%,Y 1950 JSR &FFEE 1960 INY 1970 CPY #70 1980 BNE loop2 1990 LDA #4 2000 JSR &FFEE 2010 RTS 2020 .sub 2030 LDA #25 2040 JSR &FFEE 2050 LDA #4 2060 JSR &FFEE 2070 LDA #80 2080 JSR &FFEE 2090 LDA #0 2100 JSR &FFEE 2110 LDA &8D 2120 JSR &FFEE 2130 LDA &8E 2140 JSR &FFEE 2150 LDY #0 2160 RTS 2170 ]:NEXT 2180 ENDPROC