1 REM Last update: 08/21/83 10 CLS:CLEAR 210:DEFINT A,B,C,D,P,V,X,Y,Z:DIM A(1040),B(100):DR=1:C=-1 20 PRINT"Micro Adventure Screen Editor" 30 PRINT"(C) Copyright 1983 Anthony Wood" 35 LINEINPUT"Enter old screen filename or ==--> ";F$ 40 CLS:FOR Y=1 TO 5:PRINTSTRING$(192,128);:NEXT:PRINTSTRING$(63,128);:POKE 16383,128 45 IF F$<>"" THEN GOSUB 500 46 X=0:Y=0 50 Z=POINT(X,Y) 55 SET(X,Y):I$=INKEY$:RESET(X,Y):IF I$="" THEN 55 56 IF C=1 THEN 60 :ELSE IF Z=-1 THEN SET(X,Y) 60 IF DR=1 AND C=1THEN SET (X,Y) 70 IF I$="[" AND Y>0 THEN Y=Y-1 80 IF I$=" " AND Y<47 THEN Y=Y+1 90 IF I$=CHR$(9) ANDX<127THEN X=X+1 100 IF I$=CHR$(8) AND X>0 THEN X=X-1 105 IF I$="."THEN180 106 IF I$=","THEN190 110 IF I$="D" OR I$="d" THEN DR=1:C=1 115 IF I$="E" OR I$="e" THEN DR=-1:C=1 120 IF I$="C" OR I$="c" THEN C=-1 125 IF I$="S" OR I$="s" THEN 200 130 IF I$<>"T" AND I$<>"t" THEN 50 140 P=15360+INT(Y/3)*64+INT(X/2) 145 Z=PEEK(P):POKE P,191 150 I$=INKEY$:IF I$="" THEN 150 155 IF P=>16383 THEN I$=CHR$(31) 160 IF I$=CHR$(31) THEN POKE P,Z:C=-1:GOTO 50 165 X=X+2:IF X>127 THEN X=X-127:Y=Y+3:IF Y>47 THEN Y=47 170 POKE P,ASC(I$):P=P+1:Z=PEEK(P):POKE P,191:GOTO 150 180 ST=15360+INT(Y/3)*64:FORM=ST+63TOSTSTEP-1:POKEM+1,PEEK(M):NEXT:POKEST,128:GOTO50 190 ST=15360+INT(Y/3)*64:FORM=STTOST+63:POKEM,PEEK(M+1):NEXT:POKEST+64,128:GOTO50 200 RESET (X,Y) 210 Z=15360 220 V=PEEK(Z) 230 IF V=128 THEN IF Z=15360+1023 THEN 400 :ELSE Z=Z+1:GOTO 220 235 B(K)=Z:K=K+1:Q1=Q 240 V=PEEK(Z):A(Q)=V:Q=Q+1:Z=Z+1:IF Z>15360+1019 THEN 250 :ELSE IF PEEK(Z)=128 AND PEEK(Z+1)=128 AND PEEK(Z+2)=128 THEN 300 :ELSE 240 250 IF Z=15360+1024 THEN 350 :ELSE IF PEEK(Z)=128 THEN 300 :ELSE 240 300 B(K)=Q-Q1:K=K+1:GOTO 220 350 B(K)=Q-Q1 400 CLS:LINEINPUT"ENTER FILE NAME TO SAVE ==--> ";F$ 410 "O",1,F$:Y=0:X=0 420 PRINT#1,B(Y);",";B(Y+1):Y=Y+2 430 FOR Z=1 TO B(Y-1):PRINT#1,A(X):X=X+1:NEXT:IF B(Y)=0 AND B(Y+1)=0 THEN 440 :ELSE 420 440 PRINT#1,B(Y):PRINT#1,B(Y+1)::END 500 "I",1,F$ 510 INPUT #1,P,L:IF P=0 THEN :RETURN 520 FOR Y=0 TO L-1:INPUT #1,V:POKE Y+P,V:NEXT:GOTO 510