image of READY prompt

Wang2200.org

Listing of file='KFAM6003' on disk='vmedia/701-2049C.wvd.zip'

# Sector 405, program filename = 'KFAM6003'
0010 REM KFAM6003,VER.11/08/76
0060 COM Q6$64
0070 DIM X$64,N$8,K0$3,Y$1,Y1$30,X1$2,X2$5
   : DIM Q2$2,Q3$2,V5$1,V8$1,V0$2,V1$8,V2$2,V3$2,V6$1,T2$2,T4$3
   : DIM T5$30,T7$30,T2$(8)2,T(8),T8$1,Q9$2,Q0$(4)60,T3$(1)33
   : PRINT HEX(03)
0100 GOSUB '243("ENTER FILE NAME",8)
   : N$=Q6$
   : IF Q6$<>" "THEN 110
   : GOSUB '248(3,0,1)
   : PRINT "INVALID. RE-ENTER"
   : GOTO 100
0110 GOSUB '245("ENTER KEY FILE #",1,0)
   : K=Q9
   : IF Q9>0THEN 120
   : GOSUB '248(3,0,1)
   : PRINT "INVALID. RE-ENTER"
   : GOTO 110
0120 GOSUB '125("ENTER THE NO. OF THE KEY FILE DEVICE ADDRESS")
   : D1=X
   : ON D1-1GOTO 131,133,135,137,139,141
   : SELECT #1310
   : GOTO 200
0131 SELECT #1320
   : GOTO 200
0133 SELECT #1330
   : GOTO 200
0135 SELECT #1350
   : GOTO 200
0137 SELECT #1B10
   : GOTO 200
0139 SELECT #1B20
   : GOTO 200
0141 SELECT #1B30
0200 PRINT HEX(03)
   : STR(N$,5,1)="K"
   : CONVERT KTO STR(N$,6,1),(#)
   : LIMITS T#1,N$,A,F,U
   : S9=A
   : DATA LOAD DA T#1,(S9,S9)Q2$,Q3$,V5$,V8$,V0$,V1$,V2$,V3$,V6$,T2$,T0,T1,T2,
     V8,T4$,T5$,T7$,T2$(),T(),T8$
0240 SELECT PRINT 215(132)
0250 PRINT HEX(0E);"KEY FILE ";N$
   : PRINT HEX(0A0A)
   : PRINT "KDR FIELD";TAB(30);"VALUE     HEX       VARIABLE"
   : PRINT HEX(0A)
   : PRINT "LAST DATA SECTOR";TAB(30);
   : GOSUB '50(Q2$,2)
   : PRINT "Q2$2"
   : PRINT "DATA SECTOR LIMIT";TAB(30);
   : GOSUB '50(Q3$,2)
0340 PRINT "Q3$2"
   : PRINT "LAST DATA RECORD, REC #";TAB(30);
   : GOSUB '50(V5$,1)
   : PRINT "V5$1"
   : PRINT "RECORDS PER BLOCK";TAB(30);
   : GOSUB '50(V8$,1)
   : PRINT "V8$1"
   : PRINT "KEY FILE, STARTING SECTOR";TAB(30);
   : GOSUB '50(V0$,2)
   : PRINT "V0$2"
0440 PRINT "TYPE OF BLOCKING";TAB(34);STR(V1$,1,1);TAB(50);"STR(V1$,1,1)"
   : PRINT "RECORD LENGTH";TAB(30);
   : GOSUB '50(STR(V1$,2,1),1)
   : PRINT "STR(V1$,2,1)"
   : PRINT "STARTING POSITION OF KEY";TAB(30);
   : GOSUB '50(STR(V1$,3,2),2)
0500 PRINT "STR(V1$,3,2)"
   : PRINT "KEY LENGTH";TAB(30);
   : GOSUB '50(STR(V1$,5,1),1)
   : T4=X
   : T5=T4+3
   : PRINT "STR(V1$,5,1)"
   : PRINT "NUMBER OF ENTRIES IN KIR";TAB(30);
   : GOSUB '50(STR(V1$,6,1),1)
   : PRINT "STR(V1$,6,1)"
   : V6=X
0540 PRINT "KEY FILE, LAST SECTOR USED";TAB(30);
   : GOSUB '50(V2$,2)
   : L=A+X
   : PRINT "V2$2"
   : PRINT "KEY FILE, LAST SECTOR AVAIL.";TAB(30);
   : GOSUB '50(V3$,2)
   : PRINT "V3$2"
   : PRINT "SECTORS PER LOGICAL RECORD";TAB(30);
   : GOSUB '50(V6$,1)
0630 PRINT "V6$1"
   : PRINT "HIGHEST LEVEL INDEX SECTOR";TAB(30);
   : GOSUB '50(T2$,2)
   : PRINT "T2$2"
   : PRINT "NUMBER OF INDEX LEVELS";TAB(30);
   : PRINTUSING 990,T0;
   : PRINT TAB(50);"T0"
   : PRINT "CURRENT KEY FILE #";TAB(30);
   : PRINTUSING 990,T1;
   : PRINT TAB(50);"T1"
0730 PRINT "CURRENT DATA FILE #";TAB(30);
   : PRINTUSING 990,T2;
   : PRINT TAB(50);"T2"
   : PRINT "BIAS FOR SPLITTING KIR";TAB(33);
   : PRINTUSING 780,V8;
0780 %##.##
0790 PRINT TAB(50);"V8"
   : PRINT "LAST KEY ADDED";TAB(36-INT(T4/2));T5$;TAB(49);" T5$30"
   : PRINT "LAST RECORD ACCESSED ---"
   : PRINT TAB(5);"KEY";TAB(36-INT(T4/2));T7$;TAB(49);" T7$30"
   : PRINT TAB(5);"SECTOR";TAB(30);
   : GOSUB '50(STR(T4$,1,2),2)
0840 PRINT "STR(T4$,1,2)"
   : PRINT TAB(5);"REC #";TAB(30);
   : GOSUB '50(STR(T4$,3,1),1)
   : PRINT "STR(T4$,3,1)"
   : X2$=" "
   : IF T8$<>" "THEN 878
   : X2$="BLANK"
   : GOTO 880
0878 STR(X2$,5,1)=T8$
0880 PRINT "COMPLETION CODE";TAB(30);X2$;TAB(40);
   : HEXPRINT T8$;
   : PRINT TAB(50);"T8$"
   : PRINT HEX(0A)
   : PRINT "L A S T    P A T H   . . . . . . . . . . . . . . . . . ."
   : PRINT HEX(0A)
   : PRINT "LEVEL ";
   : FOR X=1TO T0
   : PRINTUSING 980,X;
   : NEXT X
   : PRINT TAB(48);"  T3"
0980 %  #####
0990 %#####
1000 PRINT "KIE # ";
   : FOR X=1TO T0
   : Y=((T(X)-1)/T5)+1
   : PRINTUSING 980,Y;
   : NEXT X
   : PRINT TAB(48);"  T(T3)"
   : PRINT "SECTOR";
   : FOR X=1TO T0
   : Y=VAL(T2$(X))*256+VAL(STR(T2$(X),2))
   : PRINTUSING 980,Y;
   : NEXT X
   : PRINT TAB(48);"  T2$(T3)2"
   : PRINT "HEX";
   : FOR X=1TO T0
   : PRINT TAB(2+7*X);
1140 HEXPRINT T2$(X);
   : NEXT X
   : PRINT " "
   : PRINT HEX(0C)
   : PRINT HEX(0E);"KEY INDEX SECTORS"
   : S2=12
   : IF T4<12THEN 1210
   : S2=T4
1210 PRINT HEX(0A0A)
   : DATA LOAD DA T#1,(S9,S9)Q9$,Q0$()
   : GOSUB '51(Q9$)
   : PRINT "SECTOR ";
   : PRINTUSING 990,X;
   : PRINT TAB(16);"HEX(";
   : HEXPRINT Q9$;
   : PRINT ")"
   : PRINT " #  HEX KEY";TAB(4+2*S2);"POINTER   (    KEY";TAB(13+3*S2);") SECT
     OR  REC#"
   : T=1
   : FOR Z=1TO V6
1305 MAT COPY Q0$()<T,T5>TO T3$()
   : GOSUB '51(STR(T3$(1),T4+1,2))
   : Y=VAL(STR(T3$(1),T5,1))
   : Y1$=STR(T3$(1),1,T4)
   : FOR Z1=1TO T4
   : Y$=STR(Y1$,Z1,1)
   : IF Y$<HEX(20)THEN 1375
   : IF Y$>HEX(7A)THEN 1375
   : GOTO 1380
1375 STR(Y1$,Z1,1)="-"
1380 NEXT Z1
1390 %##
1400 PRINTUSING 1390,Z;
   : PRINT "  ";
   : HEXPRINT STR(T3$(1),1,T4);
   : PRINT TAB(5+2*S2);
   : HEXPRINT STR(T3$(1),T4+1,3);
   : PRINT "   ";STR(Y1$,1,T4);TAB(16+3*S2);
   : PRINTUSING 990,X;Y
   : T=T+T5
   : NEXT Z
   : IF S9<=LTHEN 1210
   : PRINT HEX(0C)
   : SELECT PRINT 005(64)
   : COM CLEAR Q6$
   : LOAD DC T#0,"START050"
1620 DEFFN'50(X1$,C)
   : IF C=1THEN 1660
   : GOSUB '51(X1$)
   : GOTO 1670
1660 X=VAL(X1$)
1670 PRINTUSING 990,X;
   : PRINT TAB(40);
   : HEXPRINT STR(X1$,1,C);
   : PRINT TAB(50);
   : RETURN
1740 DEFFN'51(X1$)
   : X=VAL(X1$)*256+VAL(STR(X1$,2))
   : RETURN
2040 DEFFN'125(X$)
   : GOSUB '248(5,0,5)
   : PRINT ,"1.  310     5.  B10"
   : PRINT ,"2.  320     6.  B20"
   : PRINT ,"3.  330     7.  B30"
   : PRINT ,"4.  350"
2100 GOSUB '245(X$,1,0)
   : X=Q9
   : IF X<1THEN 2160
   : IF X>7THEN 2160
   : GOSUB '248(5,0,5)
   : RETURN
2160 PRINT HEX(010A0A0A)
   : PRINT "INVALID DEVICE ADDRESS"
   : GOTO 2100
8795 DEFFN'242(W0,Q6$)
   : IF W0<=0THEN 9105
   : IF W0=1THEN 8815
   : STR(Q6$,2)=STR(Q6$,1,W0-1)
8815 PRINT Q6$;
   : RETURN
8825 DEFFN'243(Q6$,Q0)
   : GOSUB 8990
8835 SELECT CO 205
   : Q6$=" "
   : INPUT Q6$
   : IF Q0=0THEN 9010
   : IF LEN(Q6$)<=Q0THEN 9010
   : GOSUB 8985
8865 DEFFN'244(Q0)
   : GOSUB 9000
   : GOSUB 8995
   : GOTO 8835
8885 DEFFN'245(Q6$,Q2,Q3)
   : Q0=ABS(Q2)+Q3+1
   : GOSUB 8990
8900 GOSUB '242(ABS(Q2)+2,HEX(09))
   : PRINT "/"
   : GOSUB 9000
   : SELECT CO 205
   : Q9,W0=-1E-99
   : INPUT Q9
   : IF W0=Q9THEN 8935
   : IF Q9>=0THEN 8965
   : IF Q2<=0THEN 8965
8935 GOSUB 8985
8940 DEFFN'246(Q2,Q3)
   : Q0=ABS(Q2)+Q3+1
   : GOSUB 9000
   : GOSUB 8995
   : GOTO 8900
8965 IF ABS(Q9)>=10^ABS(Q2)THEN 8935
   : W0=ABS(Q9*10^Q3)
   : IF INT(W0)<>W0THEN 8935
   : GOSUB '248(3,0,1)
   : RETURN
8985 GOSUB '248(3,0,1)
   : PRINT "RE-ENTER"
   : RETURN
8990 SELECT PRINT 005(64),CO 005
   : PRINT HEX(010A);STR(Q6$,1);
8995 SELECT PRINT 005(64),CO 005
   : GOSUB '242(Q0+2,"-")
   : PRINT TAB(64)
9000 PRINT HEX(010A0A)
   : RETURN
9010 PRINT HEX(0A);TAB(64)
   : SELECT PRINT 005(64),CO 005
   : RETURN
9035 DEFFN'248(Q6,Q7,Q8)
   : GOSUB 9105
   : IF Q8<1THEN 9090
   : GOSUB 9090
   : SELECT PRINT 205
   : Q6$=" "
   : PRINT STR(Q6$,Q7+1)
   : IF Q8<2THEN 9090
   : FOR W0=2TO Q8
   : PRINT HEX(0A);STR(Q6$,1)
   : NEXT W0
9090 PRINT HEX(01)
   : GOSUB '242(Q7,HEX(09))
   : GOSUB '242(Q6,HEX(0A))
9105 SELECT PRINT 005(64),CO 005
   : RETURN