1000REM Editor 1010LETflg=0:LETcopy=0:LETcopx=0:LETcop=0:LETa$="":LETb$="" 1030PRINTOVER1;CHR$143;CHR$8; 1040GOSUB1150:REM Wait for a keypress 1041IFcop=0THENLETcopx=33-PEEK23688:LETcopy=24-PEEK23689 1050IFq$<" "THENGOTO1100 :REM Deal with control codes 1060IFq$>CHR$127THENGOSUB1200 :REM Convert symbols 1070POKE23692,255:POKE16415,255:PRINTq$;:GOSUB1120:PRINTb$;:IFflg=4THENPRINT" "; 1075GOSUB1130 1076IFPEEK16415<>255THENFORz=1TO32:PRINTCHR$8;:NEXTz 1080LETa$=a$+q$ 1090GOTO1030 1091: 1092: 1093PRINTb$;" ":LETa$=CHR$27:RETURN 1095PRINTb$;" ":LETa$=a$+b$:RETURN 1100LETflg=0:GOSUB1100+50*CODEq$ 1110GOTO1030+10*flg:REM Loop back to a point specified by flg 1119: 1120REM Save cursor positions 1121LETp1=PEEK23684:LETp2=PEEK23685:LETp3=PEEK23688:LETp4=PEEK23689:RETURN 1129: 1130REM Restore cursor positions 1131POKE23684,p1:POKE23685,p2:POKE23688,p3:POKE23689,p4:RETURN 1140: 1150REM Wait for a keypress 1155IFcop=1THENGOSUB1120:PRINTATcopy,copx;OVER1;INK8;PAPER8;BRIGHT8;FLASH1;" ";:GOSUB1130 1160PAUSE50 1170LETq$=INKEY$:IFq$=""THENGOTO1170 1175IFcop=1THENGOSUB1120:PRINTATcopy,copx;OVER1;INK8;PAPER8;BRIGHT8;FLASH0;" ";:GOSUB1130 1180RETURN 1195: 1199REM Convert symbols 1200IFq$=CHR$226THENLETq$="~":RETURN 1201IFq$=CHR$195THENLETq$="|":RETURN 1202IFq$=CHR$205THENLETq$="\":RETURN 1203IFq$=CHR$204THENLETq$="{":RETURN 1204IFq$=CHR$203THENLETq$="}":RETURN 1205IFq$=CHR$198THENLETq$="[":RETURN 1206IFq$=CHR$197THENLETq$="]":RETURN 1207IFq$=CHR$172THENLETq$=CHR$127:RETURN 1208IFq$<>CHR$199THENGOTO1220 1209PRINTOVER1;CHR$128;CHR$8; 1210LETq$="":LETflg=4:FORz=1TOLENa$:PRINTCHR$8;:NEXTz:LETb$=a$+b$:LETa$="":RETURN 1220IFq$<>CHR$200THENGOTO1250 1221LETq$="":PRINTOVER1;CHR$128;CHR$8; 1230LETflg=4:FORz=1TOLENb$:PRINTOVER1;" ";:NEXTz 1240LETa$=a$+b$:LETb$="":RETURN 1250LETq$="":IFa$=""THENRETURN 1255PRINTOVER1;CHR$143;CHR$8;:FORz=1TOLENa$ 1260PRINTCHR$8;:GOSUB1120:PRINTb$;" ";:GOSUB1130 1265NEXTz:LETa$="" 1290RETURN 1295: 1300REM Shift-3 - Forwards delete 1301IFb$=""THENBEEP.1,0:LETflg=1:RETURN 1310LETb$=b$(2TO):PRINTOVER1;CHR$128;CHR$8; 1320LETq$="":LETflg=4:RETURN 1340: 1350REM Shift-4 - Back one 1351IFa$=""THENLETflg=1:RETURN 1360PRINTOVER1;CHR$143;CHR$8;CHR$8; 1370LETb$=a$(LENa$)+b$:LETa$=a$(TOLENa$-1) 1380RETURN 1390: 1400REM Shift-2 - Caps lock 1410LETcaps=INT(PEEK23658/8):LETcaps=1-(caps-2*INT(caps/2)):LETflg=1:POKE23658,8*caps 1420RETURN 1440: 1450REM Shift-1 - Edit 1451LETq$=SCREEN$(copy,copx) 1460LETcop1=cop:GOSUB1550:LETcop=cop1:LETflg=1.1:RETURN 1470: 1490LETflg=1:LETcop=1:RETURN 1495: 1500REM Shift-5 - Left 1501LETcopx=copx-1:IFcopx>-1THENGOTO1490 1510LETcopx=31:GOTO1650 1540: 1550REM Shift-8 - Right 1551LETcopx=copx+1:IFcopx<32THENGOTO1490 1560LETcopx=0:REM Continue in to... 1570: 1600REM Shift-6 - Down 1601LETcopy=copy+1:IFcopy>21THENLETcopy=0 1610GOTO1490 1640: 1650REM Shift-6 - Up 1651LETcopy=copy-1:IFcopy<0THENLETcopy=21 1660GOTO1490 1690: 1700REM Shift-0 - Delete 1701IFa$=""THENBEEP.1,0:LETflg=1:RETURN 1710PRINTCHR$8;" ";CHR$8;CHR$8;:LETa$=a$(TOLENa$-1) 1720LETflg=4:LETq$="":RETURN 1740: 1750REM Enter - Exit routine 1751LETflg=6.5:RETURN 1790: 1800REM Shift-Shift - Escape 1810LETflg=6.3:RETURN 1840: 1850REM Shift-9 - Forward one 1851IFb$=""THENLETflg=1:RETURN 1860LETa$=a$+b$(1):LETb$=b$(2TO) 1870PRINTOVER1;CHR$143; 1880RETURN