image of READY prompt

Wang2200.org

Listing of file='IDS2PF11' on disk='vmedia/701-2715B.wvd.zip'

# Sector 146, program filename = 'IDS2PF11'
1000 REM "IDS2PF11" - Release 2.1 - DISK SPACE ALLOCATION MODULE
1010 DIM D1$3
   : IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM"
   : GOSUB '32("IDS2sF11")
   : IF R3$(1)="IDS2PUSD"OR R3$(1)="IDS2PU09"OR R3$(1)="IDS2PC03"THEN F6$(11)=
     "N"
   : IF F6$(18)="R"THEN F6$(11)="N"
1050 IF F6$(53)="Y"AND STR(F4$,4,8)<>"IDS2PCST"THEN 1090
   : E$="IDS2fs"
   : A=(R0-#PART)/16+1
   : IF A>0THEN CONVERT ATO STR(E$,7,2),(##)
   : GOSUB '39(E$,2)
   : MAT REDIM E3$(9)83
   : IF A>0THEN DATA LOAD DA T#2,(A)E3$()
   : E0$()=STR(E3$(),45*#PART-17,45)
   : GOTO 1100
1090 LIMITS T#4,STR(F4$,4,8),A,J,J,J
   : DATA LOAD BA T#4,(A+2)STR(E3$(),,256)
   : E0$()=STR(E3$(),92,45)
1100 E$=E9$(1)OR ALL(20)
   : GOSUB '39(E$,5)
   : MAT REDIM E$(6)83
   : DATA LOAD DA T#P,(A)E$()
   : MAT REDIM E$(E8)1
   : STR(E$(),499)=" "
   : IF D1$<>" "THEN STR(E$(),105,3)=D1$
   : E6$=STR(E$(),10)
   : IF E6$<"2"OR E6$>"3"THEN AND (STR(E2$(3),5,1),FE)
   : E$=STR(E$(),82,8)OR ALL(20)
   : GOSUB '39(E$,5)
   : MAT REDIM E3$(24)83
   : DATA LOAD DA T#P,(A)E3$()
   : MAT REDIM E3$(249)8
1240 IF E6$>"4"AND STR(E$(),201,8)=" "THEN STR(E$(),201,16)=STR(E3$(),201)
   : IF E6$>"4"THEN CONVERT STR(E3$(),209,8)TO D4
   : ELSE D4=0
   : C0=0
   : IF E6$>"4"THEN C0=INT(VAL(STR(E3$(),417))/3)
   : GOSUB '37(2)
   : GOSUB '37(4)
   : GOSUB '37(1)
   : C1=Q
   : GOSUB '37(3)
   : C2=Q
   : IF C2>0THEN 1330
   : GOSUB '45(3,"1")
1320 C2=Q
1330 STR(F6$(),12,2)="NN"
   : GOSUB '37(5)
   : C3=Q
   : IF Q>0THEN 1420
1370 GOSUB '34(5)
   : C3=Q
   : IF Q>0THEN 1420
   : GOSUB '38(48," ")
   : GOTO 1370
1420 GOSUB '55(6,MAX(C3*1.05,D4))
   : C4=Q
   : IF C4=0THEN 1370
   : GOSUB '43(7)
   : C5=Q
   : GOSUB '43(8)
   : C6=Q
   : C5=C5-INT(Q/2)
   : GOSUB '43(9)
   : C6=MOD(C6,2)+Q
   : GOSUB '55(10,1+C5-INT(C6/4))
   : C5=Q
   : IF (C4*C5)/C2<13465600THEN 1560
   : CONVERT C2TO F9$,(#)
   : GOSUB '38(55,F9$)
   : GOTO 1370
1560 GOSUB '43(16)
   : C6=Q
   : IF C1<>4OR C5+C6<83THEN 1630
1590 GOSUB '38(52," ")
   : GOSUB '34(250)
   : IF Q<>31THEN 1590
1620 LOAD T#2,R3$(1)1000,
1630 GOSUB '55(19,0)
   : GOSUB '55(20,0)
   : IF C0>0OR C4>65536OR C2>1THEN GOSUB '55(20,3)
   : ELSE GOSUB '55(20,2)
   : IF C1=1OR C1=4THEN GOSUB '55(20,0)
   : IF C1=4THEN GOSUB '55(19,C5)
   : C6=C6+Q
   : GOSUB '55(17,C6)
   : IF C1<>4THEN Q=0
   : C7=MIN(C4,INT(1983/C6))
   : C8=ABS(INT(-C4/C7))
   : C9=MIN(C8,32,INT(240/C6),INT(LOG((C8+1)*(C6-Q+4))))
1740 C7=INT(1983/C6)*C9-C9
   : C8=ABS(INT(-C4/C7))
   : IF C8*(C7-INT(1983/C6))<C4THEN 1790
   : C9=C9-1
   : GOTO 1740
1790 C9=C9*8
   : GOSUB '55(21,C9)
   : GOSUB '55(25,C8)
   : J2=0
   : FOR I=249TO 1992STEP 249
   : IF C5*INT(I/C5)/I<=J2THEN 1870
   : J1=I/249
   : J2=C5*INT(I/C5)/I
1870 NEXT I
   : GOSUB '55(11,J1)
   : GOSUB '55(12,INT(J1*249/C5))
   : J2=Q
   : J3=ABS(INT(-ABS(INT(-C4/C8))/J2))
   : GOSUB '55(23,J3)
   : J4=C9
   : IF C1=2OR C1=3THEN J4=J4+J3*J1
   : GOSUB '55(24,J4)
   : J5=Q*C8+2*C2
   : GOSUB '55(26,J5)
   : C7=MIN(C7,J2*J3)
   : GOSUB '55(6,C7*C8)
   : STR(E$(),234,2)=BIN(C7,2)
2010 D1,D3=0
   : FOR I=1TO 8
2030 GOSUB 2580
   : IF I>C2THEN 2080
   : D2=J5
   : D1=D1+J6
   : D3=D3+J8
2080 NEXT I
   : GOSUB '55(59,D3)
   : GOSUB '55(60,D2)
   : GOSUB '55(61,D1)
   : IF D1<>D2OR D2>D3THEN 2310
   : Q=32
   : IF R3$(1)="IDS2PUI8"OR R3$(1)="IDS2PC03"OR R3$(1)="IDS2PU09"THEN 2150
   : IF R3$(1)<>"IDS2MF01"AND E$(10)>"4"THEN 2180
2150 GOSUB '38(58," ")
   : GOSUB '34(250)
   : IF Q=16THEN 2220
2180 IF Q=15THEN 1370
   : IF Q>0OR C1<2OR C1>3OR R3$(1)="IDS2PU09"THEN 2270
2200 GOSUB '34(3)
   : IF Q<1OR Q>8THEN 2240
   : IF Q>1THEN 2260
   : GOTO 1320
2220 IF C2>1THEN 2230
   : GOSUB '34(27)
   : GOSUB 3290
   : D1$=E$
   : IF D>=1THEN 1050
   : GOSUB '38(46," ")
   : GOTO 2220
2230 GOSUB '38(49," ")
   : GOTO 2150
2240 GOSUB '38(47," ")
   : GOTO 2200
2260 IF STR(E9$(1),,4)<>"IDS2"AND STR(E9$(1),,4)<>"ids2"THEN 1320
   : GOSUB '38(57," ")
   : GOTO 2200
2270 IF Q>0AND Q<=C2AND C2>1THEN 2350
   : IF Q=32THEN 3060
   : PRINT HEX(07);
   : GOTO 2150
2310 GOSUB '38(50," ")
   : GOSUB '34(250)
   : ON Q-14GOTO 1370,2220
   : IF Q<=C2AND C2>1THEN 2180
   : IF Q=31THEN 1620
   : IF Q=0THEN 2200
   : GOTO 1370
2340 IF Q>=32THEN 2310
2350 I=Q
2360 GOSUB '34(I*4+23)
   : GOSUB 2580
   : IF J9=0THEN 2360
2390 GOSUB '34(I*4+26)
   : ON C2GOTO 2030
   : IF Q<=J8THEN 2440
   : GOSUB '38(51," ")
   : GOTO 2390
2440 IF Q>=J7AND MOD(Q-J7,C8*J1)=0THEN 2010
   : F0$="Must be"
   : $PACK(F=HEX(1006))STR(F0$,LEN(F0$)+1)FROMJ7
   : STR(F0$,LEN(F0$)+1)=", or"
   : $PACK(F=HEX(1006))STR(F0$,LEN(F0$)+1)FROMJ7
   : STR(F0$,LEN(F0$)+2)="+ a mult. of"
   : $PACK(F=HEX(1006))STR(F0$,LEN(F0$)+1)FROMC8*J1
   : F0$=F0$&" (try"
2520 $PACK(F=HEX(1006))STR(F0$,LEN(F0$)+1)FROMMAX(J7,C8*J1*INT((Q-J7)/C8/J1)+J
     7)
   : F0$=F0$&" or"
   : $PACK(F=HEX(1006))STR(F0$,LEN(F0$)+1)FROMMAX(J7+C8*J1,C8*J1*(INT((Q-J7)/C
     8/J1)+1)+J7)
   : F0$=F0$&")"
   : GOSUB '35(F0$)
   : GOTO 2390
2580 J9=1
   : J6,J7,J8=0
   : IF I>C2THEN GOSUB '45(I*4+23," ")
   : GOSUB '37(I*4+23)
   : E8$=E$
   : IF E$<>" "THEN 2710
   : IF I<=C2THEN GOSUB '45(I*4+23,"???")
   : E8$=E$
   : GOSUB '45(I*4+24," ")
   : IF I>C2THEN GOSUB '45(I*4+25," ")
   : GOSUB '45(I*4+26," ")
   : J8=0
   : GOTO 2840
2710 IF POS("3BD"=E$)=0OR VER(E$,"X##")<3THEN 2980
   : GOSUB 3290
   : IF D=0THEN 3000
   : FOR D9=1TO C2
   : GOSUB '43(D9*4+23)
   : IF E$=E8$AND D9<>ITHEN 3040
   : NEXT D9
   : GOSUB '39(E9$(1),D)
   : J6=N
   : ON Q+3GOTO 2970,2970,2800,2970
   : GOSUB '55(I*4+24,M-A+1)
   : J8=Q
   : GOSUB '43(I*4+26)
   : IF E$=" "THEN GOSUB '55(I*4+26,J6)
   : GOTO 2840
2800 DATA LOAD BA T#P,(0)E4$()
   : GOSUB '55(I*4+24,VAL(STR(E4$(),5),2)-VAL(STR(E4$(),3),2))
   : J6=0
   : J8=Q
2840 IF I>1THEN 2870
   : IF C2=1THEN GOSUB '55(I*4+25,J5)
   : ELSE GOSUB '55(I*4+25,2+C8*C9)
   : GOTO 2890
2870 IF I>C2THEN 3020
   : GOSUB '55(I*4+25,2+C8*J1)
2890 J7=Q
   : GOSUB '43(I*4+26)
   : IF C2>1THEN IF J6=0AND Q<>0THEN J6=Q
   : IF J6=0AND C2=1THEN J6=J7
   : IF J6>J7AND C2=1THEN J6=J7
   : IF E8$="???"THEN GOSUB '55(I*4+26,0)
   : ELSE IF C2=1THEN GOSUB '55(I*4+26,MIN(J7,J8))
   : GOSUB '43(I*4+26)
   : J6=Q
   : RETURN
2970 F0$="File "&STR(E9$(1),,8)
   : IF Q<0THEN F0$=F0$&" is scratched on disk "&E8$
   : ELSE F0$=F0$&" is a program file on disk "&E8$
   : GOTO 3010
2980 IF E8$="???"THEN 3020
   : F0$=E8$&" is not a valid disk address"
   : GOTO 3010
3000 F0$="Disk "&E8$&" is not a currently selected peripheral device"
3010 GOSUB '35(F0$)
3020 J9=0
   : RETURN
3040 F0$="Disk "&E8$&" is selected for another volume"
   : GOTO 3010
3060 FOR I=1TO C2
   : ON IGOSUB 2580
   : X=I*4+23
   : GOSUB '43(X)
   : IF E$=" "THEN 3270
   : GOSUB 3290
   : IF D=0THEN 3270
   : GOSUB '43(X+3)
   : IF Q<2THEN 3270
   : LIMITS T#D,E9$(1),A,B,C,X
   : IF X=0THEN DATA SAVE DC OPEN T#D,(Q)E9$(1)
   : ELSE DATA LOAD DC OPEN T#D,E9$(1)
   : DSKIP #D,Q-2S
   : DATA SAVE DC #D,END
   : NEXT I
   : STR(E3$(),,498)=STR(E$(),,498)
   : IF C1>4THEN MAT REDIM E3$(6)83
   : ELSE MAT REDIM E3$(24)83
   : E$=E9$(1)OR ALL(20)
   : GOSUB '39(E$,5)
3240 DATA SAVE DA T#P,(A)E3$()
   : MAT REDIM E3$(249)8
   : LOAD T#2,"IDS2PF12"1000,
3270 GOSUB '38(59," ")
   : GOTO 1620
3290 MAT SEARCHE0$()<,45>,=STR(E$,,3)TO F9$STEP 3
   : D=INT((VAL(F9$,2)+2)/3)
   : RETURN
3699 ON ERRORE1$,E2$GOTO 3700
3700 DEFFN'31
   : E$="IDS2PF11"
   : IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000,
   : STOP "ERROR"