image of READY prompt

Wang2200.org

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"