Listing of file='IDS2PR03' on disk='vmedia/701-2716B.wvd.zip'
# Sector 61, program filename = 'IDS2PR03'
1000 REM "IDS2PR03" - Release 2.1 - REPORT GENERATOR LINE FORMAT EDITOR
1010 IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM"
: COM F5,C2,F6
: IF E0$<>"IDS2sR02"THEN GOSUB '32("IDS2sR02")
: IF F5>0THEN 1310
: GOTO 1071
1055 DEFFNA(P)=(F4-F5)*166+88+P
: DEFFNR(R)=F4-F5+4
: DEFFNC(C)=C1-C2+15
1060 I=INT((VAL(E$((F4-F5+1)*166-78+Z))+95)/128)
: RETURN
1065 I=(F4-F5+1)*166-78+Z
: RETURN
1071 F5=MAX(1,F4-11)
: C2=1
: IF C1>65THEN C2=47
: IF C1>111THEN C2=94
: GOTO 1300
1100 DEFFN'71(X,Y)
: DATA LOAD BA T#3,(E4+33+X)E4$()
: STR(E$(),Y*166-85,166)=E4$()
: RETURN
1120 DEFFN'77(X,Y)
: E4$()=STR(E$(),Y*166-85,166)
: DATA SAVE BA T#3,(E4+33+X)E4$()
: IF STR(E4$(),3)<>" "THEN F6=MAX(F6,X)
: RETURN
1140 E4$()=STR(E$(),Y*166-85,166)
: PRINT HEX(060202000F);AT(Y+3,0);STR(E4$(),1,2);" ";STR(E4$(),5,1);" ";STR
(E4$(),6,1);" ";STR(E4$(),7,2);" ";STR(E4$(),3,1);" ";STR(E4$(),4,1)
: PRINT AT(Y+3,15);STR(E4$(),8+C2,65);
: RETURN
1220 PRINT HEX(060F);AT(3,53);
: PRINTUSING 1225,F5,F5+11,C2,C2+64;
: PRINT AT(16,12);
: PRINTUSING 1226,C2
: IF C2=1THEN PRINT AT(16,46);" "
: IF C2=47THEN PRINT AT(16,46);"80^ "
: IF C2=94THEN PRINT AT(16,46);" 132^"
: PRINT AT(16,76);
: PRINTUSING 1226,C2+64
: FOR Y=1TO 12
: GOSUB 1140
: NEXT Y
: RETURN
1225 %## to ##, columns ## to ###
1226 %###^
1300 FOR Y=1TO 12
: GOSUB '71(F5+Y-1,Y)
: NEXT Y
1310 GOSUB 1220
: GOSUB '63("'0=Define/edit f","ield, '16=Edit print control specs, EXECUT
E=accept "," ")
1320 PRINT HEX(060F);AT(02,66);
: PRINTUSING 1330,F4,C1;
: PRINT AT(F4-F5+4,C1-C2+15);HEX(05);
1330 %##, column ###
1340 PRINT HEX(05);
: D2=MIN(99,MAX(D2,F6,F4,1))
: KEYIN E6$,,1900
: IF E6$=HEX(0D)THEN 1710
: IF E6$=HEX(82)THEN 2410
: IF E6$=HEX(08)THEN 1780
: Z=C1
: GOSUB 1060
: IF E6$>HEX(1F)AND E6$<HEX(80)AND I<2THEN 1400
1390 PRINT HEX(07);
: GOTO 1340
1400 PRINT E6$;
: E$((F4-F5)*166+88+C1)=E6$
1420 C1=C1+1
: IF C1<66AND C2=1THEN 1320
: IF C2=47AND C1<112THEN 1320
: IF C2=94AND C1<159THEN 1320
: IF C1<159THEN 1470
: PRINT HEX(0708);
: C1=C1-1
: GOTO 1320
1470 IF C2=47THEN C2=94
: IF C2=1THEN C2=47
: GOTO 1310
1710 F4=F4+1
: IF F4<100THEN 1730
: F4=F4-1
: GOTO 1390
1730 IF E6$=HEX(0D)THEN C1=1
: IF F4-F5<12THEN 1820
: GOSUB '77(F5,1)
: STR(E$(),81)=STR(E$(),247)
: GOSUB '71(F5+12,12)
: F5=F5+1
: IF E6$=HEX(0D)THEN C2=1
: GOTO 1310
1750 IF F4=1THEN 1390
: F4=F4-1
: IF F4>=F5THEN 1320
: GOSUB '77(F5+11,12)
: MAT COPY -E$()<81,1826>TO -E$()<247,1826>
: GOSUB '71(F5-1,1)
: F5=F5-1
: GOTO 1310
1780 Z=C1-1
: GOSUB 1060
: IF C1=1OR I=2THEN 1390
: PRINT HEX(082008);
: E$((F4-F5)*166+88+C1-1)=" "
1800 C1=MAX(1,C1-1)
: IF C1>=C2THEN 1320
1820 IF C2=94AND C1>111THEN 1320
: IF C2=47AND C1>65THEN 1320
: IF C2=1THEN 1320
: C2=1
: IF C1>65THEN C2=47
: IF C1>111THEN C2=94
: GOTO 1310
1900 $TRAN(E6$,HEX(21F0))R
: ON VAL(E6$)+1GOTO 1910,1390,1390,1390,1390,1710,1750,1390,1390,2030,1970,
1930,1420,1950,1940,1390,1920,,,,,2110,2150
: ON VAL(E6$)-68GOTO 1710,1750,,,2030,1970,,1420,1950
: GOTO 1390
1910 Z=C1
: GOSUB 1060
: ON IGOTO 1390
: FOR I=0TO 11
: GOSUB '77(F5+I,I+1)
: NEXT I
: LOAD T#2,"IDS2PR07"1000,
1920 S=F5
: LOAD T#2,"IDS2PR06"1000,
1930 C1=MIN(C1+4,158)
: GOTO 1420
1940 C1=MAX(1,C1-4)
1950 IF C1=1THEN PRINT HEX(07);
: GOTO 1800
1970 IF C1=158THEN 1390
: Z=C1
: GOSUB 1060
: J=I
: Z=C1-1
: GOSUB 1060
: IF J=2AND I=2THEN 1390
: Z=C1
: GOSUB 1065
: J=I
: Z=C1+1
: GOSUB 1065
: MAT COPY -E$()<J,158-C1>TO -E$()<I,158-C1>
: Z=C1
: GOSUB 1065
: E$(I)=" "
: GOSUB '72(1)
: GOTO 1320
2030 Z=C1
: GOSUB 1060
: IF C1=158OR I=2THEN 1390
: Z=C1
: GOSUB 1065
: J=I
: Z=C1+1
: GOSUB 1065
: STR(E$(),J,159-C1)=STR(E$(),I,158-C1)&" "
: GOSUB '72(255)
: GOTO 1320
2110 IF F4-F5=11OR C1=158THEN 1390
: Z=C1
: GOSUB 1060
: IF I=2THEN 1390
: IF STR(E$(),(F4-F5+2)*166-85+C1+7,159-C1)<>" "THEN 1390
: STR(E$(),(F4-F5+2)*166-85+C1+7,159-C1)=STR(E$(),(F4-F5+1)*166-85+C1+7,159
-C1)
: STR(E$(),(F4-F5+1)*166-85+C1+7,159-C1)=" "
2140 Y=F4-F5+1
: GOSUB '77(F4,Y)
: GOSUB 1140
: Y=F4-F5+2
: GOSUB '77(F4+1,Y)
: GOSUB 1140
: X=1
: GOSUB 2310
: F4=F4+1
: GOTO 1320
2150 IF F4=F5OR C1=158THEN 1390
: Z=C1
: GOSUB 1060
: IF I=2THEN 1390
: IF STR(E$(),(F4-F5)*166-85+C1+7,159-C1)<>" "THEN 1390
: STR(E$(),(F4-F5)*166-85+C1+7,159-C1)=STR(E$(),(F4-F5+1)*166-85+C1+7,159-C
1)
: STR(E$(),(F4-F5+1)*166-85+C1+7,159-C1)=" "
: Y=F4-F5+1
: GOSUB '77(F4,Y)
: GOSUB 1140
: Y=F4-F5
: GOSUB '77(F4-1,Y)
: GOSUB 1140
2185 X=255
: GOSUB 2310
: F4=F4-1
: GOTO 1320
2210 DEFFN'72(X)
: MAT REDIM E4$(128)2
: E6$=BIN(F4)
: MAT SEARCHF$()<8,>,=E6$TO E4$()STEP 9
: E6$=BIN(X)
: X=0
2220 X=X+1
: IF E4$(X)=HEX(0000)THEN 2230
: Q=4+VAL(E4$(X),2)
: IF VAL(F$(Q))>=C1THEN ADD(F$(Q),E6$)
: GOTO 2220
2230 MAT REDIM E4$(16)16
: Y=F4-F5+1
: MAT REDIM F$(27)83
: DATA SAVE DA T#3,(E4+8)F$()
: MAT REDIM F$(E9)1
: GOTO 1140
2310 MAT REDIM E4$(128)2
: E6$=BIN(F4)
: MAT SEARCHF$()<8,>,=E6$TO E4$()STEP 9
: E6$=BIN(X)
: X=0
2320 X=X+1
: IF E4$(X)=HEX(0000)THEN 2230
: Q=4+VAL(E4$(X),2)
: IF VAL(F$(Q))>=C1THEN ADD(F$(Q+3),E6$)
: GOTO 2320
2330 MAT REDIM E4$(16)16
: MAT REDIM F$(27)83
: DATA SAVE DA T#3,(E4+8)F$()
: MAT REDIM F$(E9)1
: RETURN
2400 STOP #
2410 FOR I=0TO 11
: GOSUB '77(F5+I,I+1)
: NEXT I
: PRINT AT(23,0,80);" Checking line formats"
: F4,F5=1
: FOR I=1TO 12
: GOSUB '71(I,I)
: NEXT I
: GOSUB 1220
: LOAD T#2,"IDS2PR08"1000,
2600 STOP #
: ON ERRORE1$,E2$GOTO 3700
3700 DEFFN'31
: E$="IDS2PR03"
: IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000,
: STOP "ERROR"