image of READY prompt

Wang2200.org

Listing of file='IDS2PS07' on disk='vmedia/701-2716B.wvd.zip'

# Sector 702, program filename = 'IDS2PS07'
1000 REM "IDS2PS07" - Release 2.1 - SCREEN MASK FIELD EDITOR - ELT - 101981
1010 IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM"
   : STR(F6$(),11,4)="NNNN"
   : Y=R
   : X=C
   : GOTO 1040
1030 PRINT HEX(07);
1040 GOSUB '63("Touch the FN key"," corresponding to the desired operation or
     EXECUTE to accept"," ")
1050 GOSUB '34(250)
   : IF Y<23OR Q=5OR Q=1OR Q=16THEN 1060
   : IF Q<20OR Q=28THEN 1030
   : IF Q>32THEN 1030
1060 IF Q=32THEN 2050
   : IF Q=34THEN 2000
   : ON Q+1GOTO 1090,1170,1240,1250,1260,1270,1280,1290,1300,1320,1350,1360,13
     80,1390,1400,1410,1470,,,,,,,,2030,2020,2010,,,,,2040
   : GOTO 1030
1090 GOSUB '34(1)
1095 F1=Q
   : IF Q=0THEN 1100
   : IF Q<8AND STR(E$(),Q*8+70,8)<>" "THEN 1100
   : GOSUB '38(60," ")
   : GOTO 1090
1100 IF Q>0THEN GOSUB '43(Q+24)
   : ELSE E$=" "
   : GOSUB '45(32,E$)
   : IF E$=" "THEN 1040
1110 F6$(13)="Y"
   : GOSUB '34(2)
   : F6$(13)="N"
   : IF F=1THEN 1095
   : GOSUB 2080
   : MAT SEARCHE3$(),=STR(E$,,8)TO F9$
   : IF F9$=HEX(0000)THEN 1115
   : GOSUB '43(34)
   : IF INT(VAL(F9$,2)/8)+1=QTHEN 1115
   : GOSUB '38(32," ")
   : GOTO 1165
1115 F6$(13)="N"
   : IF F=1THEN 1100
   : MAT REDIM F$(27)83,E3$(24)83
   : DATA SAVE DA T#3,(E4+8)F$()
   : DATA SAVE DA T#3,(E4+17)E3$()
   : GOSUB '43(1)
   : GOSUB '43(Q+24)
   : OR (E$,20)
   : GOSUB '39(E$,5)
   : MAT REDIM F$(6)83
   : DATA LOAD DA T#P,(A)F$()
   : E$=STR(F$(),82,8)OR ALL(20)
   : GOSUB '39(E$,5)
   : MAT REDIM F$(24)83
   : DATA LOAD DA T#P,(A)F$(),E3$()
1120 GOSUB '43(2)
   : MAT SEARCHE3$(),=STR(E$,1,8)TO F9$STEP 8
   : IF F9$>HEX(0000)THEN 1130
   : GOSUB '38(34,E$)
   : GOSUB 1160
   : GOTO 1110
1130 F2=INT(VAL(F9$,2)/8)+1
   : GOSUB '55(5,VAL(STR(F$(),495+F2*6)))
   : I=Q
   : GOSUB '55(6,F1(F1)-1+INT(VAL(STR(F$(),493+F2*6),2)/16))
   : GOSUB '55(7,INT(MOD(VAL(STR(F$(),494+F2*6)),16)/2))
   : IF MOD(VAL(STR(F$(),494+F2*6)),2)=1THEN GOSUB '45(8,"Y")
   : ELSE GOSUB '45(8,"N")
1150 IF INT(MOD(VAL(STR(F$(),498+F2*6)),16)/8)=1THEN GOSUB '45(9,"Y")
   : ELSE GOSUB '45(9,"N")
   : GOSUB '55(10,MOD(VAL(STR(F$(),498+F2*6)),8))
   : GOSUB 1160
   : GOTO 1040
1160 MAT REDIM F$(27)83
   : DATA LOAD DA T#3,(E4+8)F$(),E3$()
   : MAT REDIM F$(E9)1,E3$(249)8
   : RETURN
1165 GOSUB '45(2," ")
1170 GOSUB '43(1)
   : IF E$=" "THEN 1090
   : F1=Q
   : IF Q>0THEN 1100
   : GOSUB '34(2)
   : GOSUB 2080
   : IF VAL(E$(135))=0THEN 1040
   : MAT SEARCHE3$(),=STR(E$,,8)TO F9$STEP 8
   : IF F9$=HEX(0000)THEN 1224
   : GOSUB '43(34)
   : IF INT(VAL(F9$,2)/8)+1=QTHEN 1224
   : GOSUB '38(32," ")
   : GOTO 1165
1224 MAT SEARCH"BLANKFLDCPU ID #STATION#TERMINALPARTIT'NOPERATORUSERCLASNEWTRA
     N#NEXTSEQ#",=STR(E$,,8)TO F9$STEP 8
   : IF F9$>HEX(0000)OR VER(E$,"@TSTFLD#")=8OR E$="@SYSBUF0"THEN 1230
   : IF E$>"FILE # 0"AND E$<"FILE # 8"THEN 1230
   : GOTO 1040
1230 GOSUB '38(33," ")
   : GOTO 1165
1240 GOSUB '34(3)
   : IF Q>0AND Q<24THEN 1040
   : GOSUB '35("Row must be from 1 to 23")
   : GOTO 1240
1250 GOSUB '34(4)
   : J0=Q
   : GOSUB '43(5)
   : IF J0>0AND J0+Q<82THEN 1040
   : GOSUB '38(61,"Column")
   : GOTO 1250
1260 IF F1>0THEN 1030
   : GOSUB '34(5)
   : J0=Q
   : GOSUB '43(4)
   : IF J0>0AND Q+J0<82THEN 1040
   : GOSUB '43(11)
   : A=Q
   : GOSUB '43(12)
   : IF A=0AND Q=0AND J0<256AND J0>0THEN 1040
   : IF A=0AND Q=0THEN GOSUB '35("Length must be from 1 to 255")
   : ELSE GOSUB '38(61,"Length")
   : GOTO 1260
1270 IF F1>0THEN 1030
   : GOSUB '34(6)
   : IF Q<4096THEN 1040
   : GOSUB '35("Position must be less than 4096")
   : GOTO 1270
1280 IF F1>0THEN 1030
   : GOSUB '34(7)
   : IF Q<10THEN 1040
   : GOSUB '38(38,"9")
   : GOTO 1280
1290 IF F1>0THEN 1030
   : GOSUB '71(8)
   : IF E$="N"THEN GOSUB '45(9,E$)
   : GOTO 1040
1300 IF F1>0THEN 1030
   : GOSUB '43(8)
   : IF E$="N"THEN 1310
   : GOSUB '43(7)
   : IF Q>3THEN 1310
   : GOSUB '71(9)
   : GOTO 1040
1310 GOSUB '35("Zero fill only applies to right justified numeric fields")
   : GOTO 1050
1320 IF F1>0THEN 1030
   : GOSUB '43(7)
   : IF Q>3OR Q<2THEN 1330
   : A=MOD(Q,2)
   : GOSUB '43(5)
   : IF A+Q<3THEN 1330
   : GOSUB '34(10)
   : IF Q>7THEN 1340
   : J0=Q
   : GOSUB '43(5)
   : A=Q
   : GOSUB '43(7)
   : Q=MOD(Q,2)
   : IF J0=0OR J0<A-QTHEN 1040
   : GOSUB '38(39," ")
   : GOTO 1320
1330 GOSUB '35("Decimals do not apply to field type or length is too small")
   : GOTO 1050
1340 GOSUB '38(40," ")
   : GOTO 1320
1350 GOSUB '43(5)
   : IF Q>80THEN 1370
   : GOSUB '34(11)
   : IF Q<4THEN 1040
   : GOSUB '35("Display option must be one of those listed (0-3)")
   : GOTO 1350
1360 GOSUB '43(5)
   : IF Q>80THEN 1370
   : GOSUB '71(12)
   : IF E$="N"THEN GOSUB '45(15,"N")
   : IF E$="N"THEN GOSUB '45(16,"N")
   : GOTO 1040
1370 GOSUB '45(11,"0")
   : GOSUB '45(12,"N")
   : GOSUB '35("Fields longer than 80 bytes are not keyable nor displayable")
   : GOTO 1050
1380 GOSUB '71(13)
   : GOTO 1040
1390 GOSUB '71(14)
   : GOTO 1040
1400 GOSUB '43(12)
   : IF E$="Y"THEN GOSUB '71(15)
   : ELSE PRINT HEX(07);
   : GOTO 1040
1410 GOSUB '43(12)
   : IF E$="Y"THEN GOSUB '71(16)
   : ELSE PRINT HEX(07);
   : GOTO 1040
1470 GOSUB '43(5)
   : IF Q=0THEN 2050
   : LIMITS T#2,"IDS2fs00",A,B,C,D
   : IF D<2THEN 1480
   : MAT REDIM E$(24)83,F$(27)83,E2$(27)83,E3$(24)83
   : DATA SAVE DA T#3,(E4+25)E$()
   : DATA SAVE DA T#3,(E4+33)F$()
   : DATA SAVE DA T#3,(E4+42)E2$()
   : DATA SAVE DA T#3,(E4+51)E3$()
   : MAT REDIM E$(E8)1,F$(E9)1,E2$(250)9,E3$(249)8
   : LOAD T#2,"IDS2PS18"1000,
1480 GOSUB '35("System edit file has not been allocated -- cannot access edits
     ")
   : GOTO 1040
2000 R=Y
   : C=X
   : LOAD T#2,"IDS2PS17"1000,
2010 GOSUB '43(5)
   : IF Q=0THEN 2050
   : GOSUB '43(34)
   : IF E3$(Q)<>" "THEN 2068
   : LOAD T#2,"IDS2PS16"1000,
2020 LOAD T#2,"IDS2PS15"1000,
2030 GOSUB '43(5)
   : IF Q=0THEN 2050
   : MAT REDIM E$(24)83,F$(27)83,E2$(27)83,E3$(24)83
   : DATA SAVE DA T#3,(E4+25)E$()
   : DATA SAVE DA T#3,(E4+33)F$()
   : DATA SAVE DA T#3,(E4+42)E2$()
   : DATA SAVE DA T#3,(E4+51)E3$()
   : MAT REDIM E$(E8)1,F$(E9)1,E2$(250)9,E3$(249)8
   : LOAD T#2,"IDS2PS98"1000,
2040 GOSUB '43(3)
   : Y=Q-1
   : GOSUB '43(4)
   : C=Q-1
   : R=Y
   : STR(E$(),1,69)=STR(E2$(),401)
   : E2$()=F$()
   : LOAD T#2,"IDS2PS03"1000,
2050 GOSUB '43(5)
   : I=Q
   : GOSUB '43(3)
   : Y=Q-1
   : GOSUB '43(4)
   : C=Q-1
   : R=Y
   : IF I>0AND I<81AND C+I<=81THEN 2055
   : IF I>0THEN 2052
   : GOSUB '35("Field length cannot be zero")
   : GOTO 1050
2052 IF STR(E$(),32,2)="0N"THEN LOAD T#2,"IDS2PS08"1000,
   : GOSUB '35("Column plus length must be less than 80")
   : GOTO 1050
2055 IF STR(E$(),32,2)="0N"THEN LOAD T#2,"IDS2PS08"1000,
   : L=I
   : N=INT((LEN(E3$())-1)/8)+1
   : CONVERT STR(E$(),58,3)TO J
   : MAT REDIM F$(250)9
   : FOR K=1TO N
   : IF K=JTHEN 2060
   : IF INT(VAL(STR(F$(K),4))*.125)<>RTHEN 2060
   : IF INT(VAL(STR(F$(K),5))*.5)+VAL(F$(K))<=COR C+L<=INT(VAL(STR(F$(K),5))*.
     5)THEN 2060
2058 MAT REDIM F$(E9)1
   : GOSUB '35("Field will overwrite an existing field, EXEC to change")
   : F6$(11)="N"
   : GOSUB '34(250)
   : IF Q=32THEN 1040
   : GOTO 2058
2060 NEXT K
   : MAT REDIM F$(E9)1
   : LOAD T#2,"IDS2PS08"1000,
2068 GOSUB '35("Field already exists - Delete before attempting to insert")
   : GOTO 1050
2070 DEFFN'71(F)
   : GOSUB '43(F)
   : IF E$<>"Y"THEN GOSUB '45(F,"Y")
   : ELSE GOSUB '45(F,"N")
   : RETURN
2080 IF VAL(STR(C3$,25))>0AND STR(E$(),9,8)<>STR(C3$,9,8)THEN STR(C3$,,16)=AND
      ALL(7F)
   : ELSE STR(C3$,,16)=OR ALL(80)
   : STR(F0$,,8)=STR(E$(),9,8)XOR STR(C3$,9,8)AND ALL(7F)
   : IF VAL(STR(C3$,25))=0AND STR(E$(),52,3)<>"  0"AND POS(STR(F0$,,8)<>HEX(00
     ))=0THEN CONVERT STR(E$(),52,3)TO I
   : ELSE GOTO 2100
   : STR(C3$,25)=BIN(I)
2100 RETURN
3699 ON ERRORE1$,E2$GOTO 3700
3700 DEFFN'31
   : E$="IDS2PS07"
   : IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000,
   : STOP "ERROR"