Listing of file='IDS2PS04' on disk='vmedia/701-2716B.wvd.zip'
# Sector 653, program filename = 'IDS2PS04' 1000 REM "IDS2PS04" - SCREEN MASK TEXT EDITOR MODULE 1005 IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM" : DIM J$(2)16 : F6$(11)="N" : GOTO 1050 1015 DEFFNZ(P)=R*80+C+153 : DEFFNY(X)=MAX(1,80*Y+X+1) 1020 R,C=0 : GOTO 1050 1040 PRINT HEX(07); 1050 PRINT HEX(06);AT(23,0); : PRINTUSING " ## ##",R+1,C+1; : PRINT AT(R,C);HEX(05); : KEYIN E6$,,1280 : IF R=23AND C<79THEN 1040 : IF R=23AND E6$<>HEX(82)THEN 1040 : IF E6$=HEX(0D)THEN 1170 : IF E6$=HEX(82)THEN 1870 : IF E6$=HEX(08)THEN 1220 : IF F$(R*80+C+1)<>HEX(00)THEN 1040 : IF E6$<HEX(20)OR E6$>HEX(7F)THEN 1040 1130 E$(R*80+C+153)=E6$ : $TRAN(E6$,HEX(80202009))R : PRINT E6$; : C=C+1 : IF C<80THEN 1050 1170 IF R=23THEN 1040 : C=0 1180 IF R=23THEN 1040 : R=R+1 : IF R<23THEN 1050 : IF R=23AND C=79THEN 1050 : R=22 : GOTO 1040 1220 IF C=0THEN 1040 : IF F$(R*80+C)<>HEX(00)THEN 1040 : C=C-1 : E$(R*80+C+153)=" " : PRINT HEX(088008); : GOTO 1050 1263 IF R=23THEN 1040 : IF POS(STR(F$(),R*80+1,80)>00)>0THEN 1040 : B=C : C=0 : X=POS(STR(E$(),R*80+C+153,80)>20)-1 : IF X<0THEN 1265 : Y=POS(-STR(E$(),R*80+C+153,80)>20)-X : IF Y>78THEN 1264 1264 E$=STR(E$(),R*80+C+153+X,Y) : STR(E$(),R*80+C+153,80)=" " : STR(E$(),R*80+C+153+INT((80-Y)/2),Y)=E$ : GOSUB '72(R,0) : C=B : GOTO 1050 1265 C=B : GOTO 1040 1280 S=1 : $TRAN(E6$,HEX(0545064609490A4A0C4C0D4D19591A5A))R : ON VAL(E6$)+1GOTO 1810,,1263,,1300,1180,1340,1020,1380,1420,1450,1490,151 0,1580,1560,1040,1780,,,,,1630,1710,,,1425,1432,,,,,1885 : ON VAL(E6$)-125GOTO 1282,1284 : GOTO 1040 1282 IF R>22THEN 1040 : IF F$(R*80+C+1)>HEX(00)THEN 1040 : E6$=HEX(09) : GOTO 1130 1284 IF R>22THEN 1040 : STR(E$(),R*80+C+153,80-C)=ALL(09) : GOTO 1390 1300 R=22 : C=79 : GOTO 1050 1340 IF R=0THEN 1040 : R=R-1 : GOTO 1050 1380 STR(E$(),R*80+C+153,80-C)=" " 1390 GOSUB '72(R,C) : GOTO 1050 1420 IF C=79THEN 1040 : STR(E$(),R*80+C+153,80-C)=STR(E$(),R*80+C+153+1,79-C) : GOTO 1390 1425 Y=R : X=C : IF F$(MAX(1,80*Y+X+1))<>HEX(00)OR C=79THEN 1040 : STR(F$(),MAX(1,80*Y+X+1),80-X)=STR(F$(),MAX(1,80*Y+X+1)+1,79-X)&HEX(00) : GOSUB 1682 : GOTO 1420 1432 Y=R : X=C : IF F$(MAX(1,80*Y+X))<>HEX(00)AND F$(MAX(1,80*Y+X+1))<>HEX(00)OR F$(R*80+8 0)<>HEX(00)THEN 1040 : MAT COPY -F$()<MAX(1,80*Y+X+1),79-C>TO -F$()<MAX(1,80*Y+X+1)+1,79-C> : F$(MAX(1,80*Y+X+1))=HEX(00) : GOSUB 1682 1450 IF R=23THEN 1040 : MAT COPY -E$()<R*80+C+153,79-C>TO -E$()<R*80+C+153+1,79-C> : E$(R*80+C+153)=" " : GOTO 1390 1490 C=C+4 1510 C=C+1 : IF C>79THEN PRINT HEX(07); : C=MIN(C,79) : GOTO 1050 1560 IF R=23THEN 1040 : C=C-4 1580 IF R=23THEN 1040 : C=C-1 : IF C<0THEN PRINT HEX(07); : C=MAX(C,0) : GOTO 1050 1630 A=1 : IF R=22THEN 1040 1635 X,B=C : Y=R : IF STR(E$(),R*80+C+153+80*A,80-C)<>" "OR POS(STR(F$(),R*80+C+153+80*A-152 ,80-C)>00)>0THEN 1040 : IF F$(MAX(1,80*Y+X+1))<>HEX(00)THEN C,X=POS(STR(F$(),80*R+1)=F$(MAX(1,80* Y+X+1)))-1 : IF F$(MAX(1,80*Y+X+1)+80*A)=HEX(00)THEN 1640 : C=B : GOTO 1040 1640 STR(E$(),R*80+C+153+80*A,80-C)=STR(E$(),R*80+C+153) : STR(F$(),R*80+C+153+80*A-152,80-C)=STR(F$(),R*80+C+1) : STR(E$(),R*80+C+153,80-C)=ALL(20) : STR(F$(),R*80+C+1,80-C)=ALL(00) : GOSUB '72(R,C) : R=R+A : GOSUB '72(R,C) : X=C : C=B : GOSUB 1682 : GOTO 1050 1682 IF X>79OR POS(STR(F$(),MAX(1,80*Y+X+1),80-X)>00)=0THEN RETURN : X=X-1+POS(STR(F$(),MAX(1,80*Y+X+1))>00) : STR(E2$(VAL(F$(MAX(1,80*Y+X+1)))),4,1)=STR(E2$(VAL(F$(MAX(1,80*Y+X+1)))), 4,1)AND HEX(07)OR BIN(R*8) : STR(E2$(VAL(F$(MAX(1,80*Y+X+1)))),5,1)=STR(E2$(VAL(F$(MAX(1,80*Y+X+1)))), 5,1)AND HEX(01)OR BIN(X*2) 1688 IF MOD(VAL(STR(E2$(VAL(F$(MAX(1,80*Y+X+1)))),5)),1)=0AND STR(E2$(VAL(F$(M AX(1,80*Y+X+1)))),7,1)<HEX(40)THEN X=X+1 : ELSE X=X+VAL(E2$(VAL(F$(MAX(1,80*Y+X+1))))) : GOTO 1682 1710 A=-1 : IF R=0THEN 1040 : GOTO 1635 1780 IF N=249OR R=23THEN 1040 : LOAD DC T#2,"IDS2PS05"1000, 1810 IF R<23THEN IF E$(R*80+C+153)>" "THEN 1040 : MAT REDIM E$(24)83 : DATA SAVE DA T#3,(E4)E$() : MAT REDIM E$(E8)1 : LOAD T#2,"IDS2PS06"1000, 1820 STOP # : GOSUB '71 : DATA SAVE DA T#D1,(E3,X)E$() : DATA SAVE DA T#D1,(X,X)E2$() : DATA SAVE DA T#D1,(X,X)E3$() 1870 GOSUB 2010 : S=2 1885 PRINT HEX(0202000F); : STR(F6$(),11,4)="YYYY" : E9$(7)=" " : COM CLEAR E3 : IF E6$=HEX(1F)THEN LOAD T#2,R3$(1)1000, : LOAD T#2,"IDS2PS40"1000, 2000 DEFFN'71 : MAT REDIM E$(24)83,E2$(27)83,E3$(24)83 : RETURN 2010 MAT REDIM E$(E8)1,E2$(249)9,E3$(249)8 : RETURN 2030 DEFFN'72(Y,X) : E$=STR(E$(),Y*80+X+153,80-X) : $TRAN(E$,HEX(80202009))R : PRINT HEX(06);AT(Y,X);STR(E$,1,80-X);AT(Y,X); 2040 IF X>=80THEN RETURN : IF POS(STR(F$(),MAX(1,80*Y+X+1),80-X)>00)=0THEN RETURN : E$=ALL(8B) : X=X-1+POS(STR(F$(),MAX(1,80*Y+X+1))>00) : J1=VAL(F$(MAX(1,80*Y+X+1))) : J2=VAL(E2$(J1)) : IF STR(E2$(J1),7,1)<HEX(40)AND MOD(VAL(STR(E2$(J1),5)),2)=0THEN J2=1 : IF STR(E2$(J1),7,1)<HEX(40)AND MOD(VAL(STR(E2$(J1),5)),2)=0THEN E$=HEX(9B ) : PRINT AT(Y,INT(VAL(STR(E2$(J1),5))*.5));STR(E$,1,J2) 2075 X=INT(VAL(STR(E2$(VAL(F$(MAX(1,80*Y+X+1)))),5))*.5)+J2 : GOTO 2040 3699 ON ERRORE1$,E2$GOTO 3700 3700 DEFFN'31 : E$="IDS2PS04" : IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000, : STOP "ERROR"