10 REM" ”<,,,,,,,,,,,,,,,,,,,,,,,,,l 20 REM"”5ƒTTEXT„ œ†26-Jan-84” œj 21 REM"”5ƒTTEXT„ œ†26-Jan-84” œj 30 REM" ”5ƒCTR-D(0,2) CHANGE DRIVE”j 40 REM" ”5 ƒFrank Cox” j 50 REM" ”5 ‚ Mailbox 252516647 ”j 60 REM" ”-,,,,,,,,,,,,,,,,,,,,,,,,,. 70 *fx200 1 80 MODE7 90 HIMEM=&7800 100 DIM cli 25,char$(30) 110 ON ERROR GOTO1330 120 PROCinit 130 PROCintro 140 PROChelp 150 160 170 REPEAT 180 PROCpos 190 PROCget_char 200 PROCcheck_edge 210 IF G=7 AND GMODE=TRUE THEN GMODE=FALSE:VDU23;10,114,0;0;0;23;11,19,0;0;0;:ELSE IF G=7:GMODE=TRUE:VDU23;10,104,0;0;0;23;11,11,0;0;0; 220 IF G=128 PROCload 230 IF G=144 PROCsave 240 IF G=23 G=0:PROCdeleteline 250 IF G=26 G=0:PROCinsertline 260 IF G=1 G=0:PROCdeletechar 270 IF G=19 G=0:PROCinsertchar 275 IF G=4 THEN PROCdrive 280 IF G=6 PROCfile 290 IF HELP=1 PROChelp 300 IF G=12 PROCcls 310 IF GMODE THEN PROCgmode 320 IF G>7 AND G<12 OR G=13 OR G>127 VDU G 330 IF VPOS=23 THEN VDU8 340 UNTIL 0 350 360 370 DEF PROCget_char 380 *fx21 0 390 G=GET 400 IF INKEY(-42) G=10 410 IF INKEY(-58) G=11 420 IF INKEY(-26) G=8 430 IF INKEY(-122) G=9 440 IF G=139 G=0:HELP=1 450 IF G=35 G=223 460 IF G=95 G=224 470 IF G=96 G=163 480 IF G<128 AND G>31 THEN G=G+128 490 ENDPROC 500 510 520 DEF PROCinit 530 *fx4 1 540 *KEY0|!|K 550 *KEY1|!|L 560 *KEY2|!|M 570 *KEY3|!|X 580 *KEY4|!|Y 590 *KEY5|!|Z 600 *KEY6|!|\ 610 *KEY7|!|] 620 *KEY8|!|^ 630 *KEY9|!|_ 640 FOR J%=0 TO 30:READ char$(J%):NEXT 650 DATA alpha red,alpha green,alpha yellow,alpha blue,alpha magenta,alpha cyan,alpha white,flash,steady 660 DATA "","",normal height,double height,"","","",graphic red,graphic green,graphic yellow,graphic blue,graphic magenta,graphic cyan,graphic white 670 DATA conceal display,contiguous graphics,seperated graphics,"",black background,new background,hold graphics,release graphics 680 HELP=0:GMODE=0 690 ENDPROC 700 710 720 DEF PROCcheck_edge 730 IF G=11 AND VPOS=0 THEN G=0 740 IF G=10 AND VPOS=22 THEN G=0 750 IF G=8 AND VPOS=0 AND POS=0 THEN G=0 760 IF G=9 AND VPOS=22 AND POS=39 THEN G=0 770 ENDPROC 780 790 800 DEF PROCload 810 *fx200 0 0 820 VDU28,0,24,39,23 830 PRINT" ‚ or ESCAPE to cancel";:VDU13,11 840 INPUT"LOAD Filename ?ƒ"N$ 850 $cli="LOAD "+N$+" 7C00" 860 X%=cli MOD 256 870 Y%=cli DIV 256 880 CALL&FFF7 890 CLS 900 VDU26 910 G=0 920 *fx200 1 0 930 ENDPROC 940 950 960 DEF PROCsave 970 *fx200 0 0 980 VDU28,0,24,39,23 990 PRINT" ‚or ESCAPE to cancel";:VDU13,11 1000 INPUT"SAVE Filename ?ƒ"N$ 1010 $cli="SAVE "+N$+" 7C00 +398" 1020 X%=cli MOD 256 1030 Y%=cli DIV 256 1040 CALL&FFF7 1050 CLS 1060 VDU26 1070 G=0 1080 *fx200 1 0 1090 ENDPROC 1100 1110 1120 DEF PROCpos 1130 X=POS:Y=VPOS 1140 A%=135:Q%=USR&FFF4 1150 W%=(Q% AND &FF00)/256 1160 VDU28,0,24,39,23 1170 CLS 1180 IF NOT GMODE PRINT"Cursor position";CHR$134;X;"/";Y; 1190 IF GMODE PRINT"Cursor";CHR$134;X;"/";Y;TAB(13);"„‡G MODE œ"; 1200 PRINTTAB(25);"‡f0 œ= help" 1210 PRINT"Char.is";CHR$134;W%;" (&";~W%;")";CHR$135;TAB(18);"=";CHR$131; 1220 code$=CHR$ W% 1230 IF W%=160 OR W%=32 code$="space" 1240 IF W%=255 code$=CHR$255+" " 1250 IF W%>128 AND W%<160 code$=char$(W%-129) 1260 PRINTcode$; 1270 VDU26 1280 PRINTTAB(X,Y); 1290 ENDPROC 1300 1310 1320 REM Error routine 1330 *fx200 0 1340 VDU28,0,24,39,23:CLS 1350 REPORT 1360 IF ERR<>17 PRINT'" Press ESCAPE to continue";:REPEATUNTIL0 1370 *fx200 1 1380 VDU26:GOTO170 1390 1400 1410 DEF PROChelp 1420 X=POS:Y=VPOS 1430 FOR I%=&7C00 TO &7F98 STEP4 1440 !(I%-&400)=!I% 1450 NEXT 1460 PROCscript 1470 FOR I%=&7C00 TO &7F98 STEP4 1480 !I%=!(I%-&400) 1490 NEXT 1500 HELP=0 1510 VDU26 1520 PRINTTAB(X,Y); 1530 ENDPROC 1540 1550 1560 1570 DEF PROCgmode 1580 IF G=241 OR G=209 VDU W% OR 160 EOR 1:VDU8 1590 IF G=247 OR G=215 VDU W% OR 160 EOR 2:VDU8 1600 IF G=225 OR G=193 VDU W% OR 160 EOR 4:VDU8 1610 IF G=243 OR G=211 VDU W% OR 160 EOR 8:VDU8 1620 IF G=250 OR G=218 VDU W% OR 160 EOR 16:VDU8 1630 IF G=248 OR G=216 VDU W% OR 160 EOR 64:VDU8 1640 IF G>7 AND G<12 OR G=13 OR G>127 AND G<160 VDU G 1650 G=0:ENDPROC 1660 DEF PROCscript 1670 CLS 1680 PRINT"‘ šššššššššššššššššššššššššššššššššššš" 1690 PRINTCHR$141;"  „‡TELETEXT SCREEN EDITOR   œ" 1700 PRINTCHR$141;"  „‡TELETEXT SCREEN EDITOR   œ" 1710 PRINT"‘ ````````````````````````````````````" 1720 PRINT" f0ƒcalls this help page" 1730 PRINT" shift f0ƒLOAD a screen from tape/disk" 1740 PRINT" ctrl f0ƒSAVE a screen to tape or disk" 1750 PRINT"”¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬" 1760 PRINT"f1ƒnormal height ‡f8ƒhold graphics" 1770 PRINT"f2ƒdouble height ‡f9ƒrelease graphics" 1780 PRINT"f3ƒconceal" 1790 PRINT"f4ƒcontiguous graphics" 1800 PRINT"f5ƒseperated graphics”謬¬¬¬¬¬¬¬¬¬¬¬¬¬¬" 1810 PRINT"f6ƒblack background ”ź‡shift f8ƒflash" 1820 PRINT"f7ƒnew background ”ź‡shift f9ƒsteady" 1830 PRINT"”¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬®¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬" 1840 PRINT" shift f1 f2 f3 f4 f5 f6 f7ƒalpha" 1850 PRINT"       ž‘’’’’’“’’”’’•’’–’’—’’’ " 1860 PRINT" control f1 f2 f3 f4 f5 f6 f7ƒgraphics" 1870 PRINT"”¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬" 1880 PRINT"  arrow keysƒmove cursor around screen" 1890 PRINT"”¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬" 1900 PRINT" DELETE keyƒgives‡’ƒalpha &—’ƒgraphics" 1910 PRINT'" ‚PressˆSPACE‰to continue"; 1920 *fx21 0 1930 REPEAT UNTIL GET=32 1940 CLS 1950 PRINT"„ ";CHR$141;"‡TELETEXT SCREEN EDITOR œ"; 1960 PRINT"„ ";CHR$141;"‡TELETEXT SCREEN EDITOR œ"; 1970 PRINT"ƒctrl W †delete line"'" Line cursor is on is deleted. Rest of"'" page moves up." 1980 PRINT"”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 1990 PRINT"ƒctrl Z †insert line"'" Lines from cursor position to bottom"'" of screen move down creating a blank"'" line. Bottom line is lost." 2000 PRINT"”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 2010 PRINT"ƒctrl A† delete character"'" Character at cursor is deleted. Rest"'" of line moves left to close gap." 2020 PRINT"”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 2030 PRINT"ƒctrl S †insert character"'" Line is moved to the right from cursor"'" position to end of line creating a"'" space. Last character on line is lost." 2040 PRINT"”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 2050 PRINT"ƒctrl L †clear screen" 2060 PRINT"”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 2070 PRINT"ƒctrl F †catalogue drive " 2080 PRINT"”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 2090 PRINT"” ƒpressˆSPACE‰to continue” ’žœ’’’"; 2100 REPEAT UNTIL GET=32 2110 CLS 2120 PRINT"‘ šššššššššššššššššššššššššššššššššššš" 2130 PRINTCHR$141;"  „‡TELETEXT SCREEN EDITOR   œ" 2140 PRINTCHR$141;"  „‡TELETEXT SCREEN EDITOR   œ" 2150 PRINT"‘ ````````````````````````````````````" 2160 PRINT" ćōņģ Ēƒenters or exits„‡Ē ĶĻÄŃ œ" 2170 PRINT'" ‚Note the layout of the†Q W" 2180 PRINT"† A S" 2190 PRINT"† Z X‚keys." 2200 PRINT'"‚ When in†G MODE‚these six keys are used"; 2210 PRINT"‚to set or clear the corresponding pixel"; 2220 PRINT"‚of the character at the current cursor" 2230 PRINT"‚position.(Provided of course that there"; 2240 PRINT"‚is a graphic code earlier on the line)."; 2250 PRINT"‚ This saves having to keep looking up" 2260 PRINT"‚which character gives the desired pixel"; 2270 PRINT"‚pattern." 2280 PRINT"‚ Although when in†G MODE‚most of the","‚keyboard is disabled, the cursor keys,","‚function keys and control codes still","‚work as previously described." 2290 PRINT''" ƒPressˆSPACE‰to continue"; 2300 *fx21 0 2310 REPEAT UNTIL GET=32 2320 ENDPROC 2330 2340 2350 DEF PROCintro 2360 PRINTCHR$141;" ‡ TELETEXT SCREEN EDITOR œ" 2370 PRINTCHR$141;" ‡ TELETEXT SCREEN EDITOR œ" 2380 PRINT"† This program is designed to simplify","†the creation of teletext graphics ","†screens. Completed screens can be saved";"†to tape or disk and later reloaded or","†used in your own programs." 2390 PRINT" †Frames saved by the Micronet software","†can be loaded and examined or modified." 2400 PRINT"‚ The program assumes a basic knowledge","‚of what effect the various teletext","‚control codes have on the display." 2410 PRINT'"ƒ The bottom line of the screen shows ","ƒthe character at the current cursor","ƒposition. This is particularly useful " 2420 PRINT"ƒfor finding the position of non ","ƒprinting control codes amongst dense","ƒgraphics." 2430 PRINT'"† It is suggested that a function key ","†strip is made up from the information","†on the next page." 2440 PRINT" PressˆSPACE‰to continue"; 2450 REPEATUNTIL GET=32 2460 CLS 2470 ENDPROC 2480 2490 2500 DEF PROCinsertline 2510 cpos=VPOS*40+&7C00 2520 FOR I%=&7F48 TO cpos STEP-40 2530 FOR J%=I% TO I%+39 STEP4 2540 !(J%+40)=!J% 2550 NEXT:NEXT 2560 FOR I%=cpos TO cpos+39:?I%=160:NEXT 2570 ENDPROC 2580 2590 2600 DEF PROCdeleteline 2610 cpos=VPOS*40+&7C00 2620 FOR I%=cpos TO &7F48 STEP40 2630 FOR J%=I% TO I%+39 STEP4 2640 !J%=!(J%+40) 2650 NEXT:NEXT 2660 FORI%=&7F70 TO &7F97:?I%=160:NEXT 2670 ENDPROC 2680 2690 2700 DEF PROCinsertchar 2710 cpos=VPOS*40+&7C00 2720 ppos=cpos+POS 2730 FOR I%=cpos+39 TO ppos STEP-1 2740 ?I%=?(I%-1) 2750 NEXT 2760 ?ppos=160 2770 ENDPROC 2780 2790 2800 DEF PROCdeletechar 2810 cpos=VPOS*40+&7C00 2820 ppos=cpos+POS 2830 FOR I%=ppos TO cpos+38 2840 ?I%=?(I%+1) 2850 NEXT 2860 ?(cpos+39)=160 2870 ENDPROC 2880 2890 2900 DEF PROCcls 2910 X=POS:Y=VPOS 2920 VDU28,0,24,39,23 2930 CLS 2940 PRINT'" ƒCLEAR SCREEN †are you sure? (Y/N) "; 2950 G$=GET$ 2960 IF G$="Y" OR G$="y" THEN VDU26:CLS:ELSE VDU26:PRINTTAB(X,Y); 2970 ENDPROC 2980 2990 3000 DEF PROCfile 3030 CLS 3040 *. 3060 G=GET 3070 CLS 3120 ENDPROC 3130 : 3140 DEF PROCdrive 3150 REPEAT:G$=GET$:UNTILINSTR("02",G$) 3160 OSCLI("DRIVE "+G$) 3170 ENDPROC