Listing of file='IDS2PI05' on disk='vmedia/701-2717B.wvd.zip'
# Sector 652, program filename = 'IDS2PI05'
1000 REM "IDS2PI05" - "START" PROGRAM SPECIFICATION (PART 3 - BUFFER SIZES)
1010 IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM"
: GOSUB '63(" ","Computing minimum buffer sizes - Please stand by"," ")
: F1=0
: J5=1750
: C4=256
: E3=256
: F2=0
: F3=0
: DIM J1(7),J2(7),F8$(7)2,F9$(7)2,C1$(7)8
: J5,C4,E3=0
: FOR I=1TO 60
: F5$=STR(E$(),243+I*8)OR ALL(20)
: IF F5$=" "THEN 2000
: F1=F1+1
1045 PRINT AT(4,2,50);
: FOR J=6TO 21
: PRINT AT(J,2,50);
: NEXT J
: GOSUB '39(F5$,5)
: IF A=0THEN 1095
: MAT REDIM F$(6)83
: DATA LOAD DA T#P,(A)F$()
: MAT REDIM F$(E9)1
: STR(F$(),267,8)=STR(F$(),2,8)
: FOR J=1TO 17
: F5$=STR(F$(),J*8+259)OR ALL(20)
: IF F5$=" "THEN 1500
: GOSUB '39(F5$,5)
: IF A=0THEN 1095
: MAT REDIM E3$(6)83
: DATA LOAD DA T#P,(A)E3$()
: MAT REDIM E3$(249)8
1080 GOSUB '45(J*4+59,STR(E3$(),2,8))
: GOSUB '45(J*4+60,STR(E3$(),22,32))
: GOSUB '45(J*4+61,STR(E$(),I*17+713+J,1))
: IF E$<>"N"OR J>1THEN 1100
: J=17
: GOTO 1500
1095 F0$="Control file "&F5$&" is not on Device #5; FN '31 to Cancel"
: GOSUB '35(F0$)
: GOSUB '34(250)
: IF Q<>31THEN 1095
: LOAD T#2,"IDS2MI01"1000,
1100 F2=F2+1
: F3=F3+VAL(STR(E3$(),404))
: UNPACK(####)STR(E3$(),405)TO Q
: IF Q>C4THEN C4=Q
: IF J>1THEN 1140
: MAT MOVE J1()TO C1$()
: MAT SORTC1$()TO F8$(),F9$()
: MAT MOVE J1(),F9$(1)TO J2(1)
: MAT J1=J2
: IF Q>J1(1)THEN J1(1)=Q
: Q=0
: FOR K=1TO 7
: Q=Q+J1(K)
: NEXT K
1140 IF Q>J5THEN J5=Q
: IF E$="S"THEN GOSUB '55(J*4+62,(VAL(STR(E3$(),435),2)+1)*(VAL(STR(E3$(),4
16))+VAL(STR(E3$(),417))+4))
: ELSE Q=0
: E3=MAX(E3,Q)
1500 NEXT J
2000 NEXT I
: GOSUB '55(1,F1)
: GOSUB '55(2,F2)
: CONVERT F3TO STR(E$(),247,4),(####)
: GOSUB '32("IDS2sI01")
: GOSUB '36
: GOSUB '43(37)
: J5=MAX(J5,Q)
: GOSUB '55(37,MAX(J5,1750))
: GOSUB '43(39)
: C4=MAX(C4,Q)
: GOSUB '55(39,MAX(C4,256))
: GOSUB '43(41)
: E3=MAX(E3,Q)
: GOSUB '55(41,MAX(E3,256))
2043 GOSUB '63("EXECUTE= Accept,"," EDIT= Modify, FN '0 = Edit Files, '16-'18=
Buffers,'31= Cancel"," ")
: F6$(11)="Y"
: GOSUB '34(250)
: IF Q=33THEN LOAD T#2,"IDS2PI03"1000,
: IF Q=0THEN LOAD T#2,"IDS2PI04"1000,
: IF Q=32THEN 2100
: IF Q>15AND Q<19THEN 3000
: PRINT HEX(07);
: GOTO 2043
2100 GOSUB '43(2)
: IF E$=" "THEN Q=-1
: GOSUB '55(2,Q+1)
: GOSUB '45(3,R4$)
: GOSUB '45(5,STR(R2$,,2))
: GOSUB '45(6,STR(R2$,3,2))
: GOSUB '45(7,STR(R2$,5,2))
: LOAD T#2,"IDS2PI06"1000,
3000 F=Q*2+5
: GOSUB '34(F)
: ON F-36GOTO 3010,,3020,,3030
: PRINT HEX(07)
: GOTO 2043
3010 J1=MAX(J5,1750)
: IF Q<1750THEN 3015
: IF J5>1750AND Q<J5THEN 3012
: IF Q>1749AND Q<10000THEN 2043
: GOSUB '35("Work buffer must be 1750 - 9999 bytes long")
: GOSUB '55(F,J1)
: GOTO 2043
3012 GOSUB '63("It may be danger","ous to decrease buffer size, EXEC to decrea
se, FN '31 to CANCEL","!")
: F6$(11)="N"
3013 GOSUB '34(250)
: IF Q=32THEN 2043
: IF Q<>31THEN 3013
: GOSUB '55(37,J1)
: GOTO 2043
3015 GOSUB '35("You cannot decrease buffer size to below computed value")
: GOSUB '55(F,J1)
: GOTO 2043
3020 J1=MAX(C4,256)
: IF Q<J1THEN 3015
: J2=Q
: GOSUB '43(F-1)
: IF J1>=QTHEN 2043
: GOSUB '35("Buffer is too small - Please re-enter")
: GOSUB '55(F,J1)
: GOTO 2043
3030 J1=MAX(E3,256)
: IF Q<J1THEN 3015
: J2=Q
: GOSUB '43(F-1)
: IF J1>=QTHEN 2043
: GOSUB '35("Buffer is too small - Please re-enter")
: GOSUB '55(F,J1)
: GOTO 2043
3699 ON ERRORE1$,E2$GOTO 3700
3700 DEFFN'31
: E$="IDS2PI05"
: IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000,
: STOP "ERROR"