image of READY prompt

Wang2200.org

Listing of file='KFAM4004' on disk='vmedia/701-2086B.wvd.zip'

# Sector 219, program filename = 'KFAM4004'
0010 REM KFAM4004,VER.03/02/76
0012 COM Q6$64
5270 DIM X$64,E$2,E1$4,A$(4)64
   : DIM Q2$2,Q3$2,V5$(4)1,V8$1,V1$8,V2$2,V3$2,V6$1,T2$2
   : DIM V2$(4)2,Q0$4,T8$(4)1,V4$(4)2
   : DIM U1$8,K1$8,X1$2
5420 PRINT HEX(03)
5430 GOSUB '243("ENTER USER FILE NAME (SSSSFJNN)",8)
   : U1$=Q6$
   : IF STR(U1$,5,1)="F"THEN 5490
   : GOSUB '50("FILE NAME MUST HAVE F IN POSITION 5")
   : GOTO 5430
5490 IF STR(U1$,6,1)<"0"THEN 5520
   : IF STR(U1$,6,1)>"9"THEN 5520
   : GOTO 5550
5520 GOSUB '50("FILE NAME MUST HAVE NUMBER IN POSITION 6")
   : GOTO 5430
5550 PRINT HEX(03)
   : GOSUB '125("ENTER THE NO. OF THE USER FILE DEVICE ADDRESS")
   : D1=Q9
   : GOSUB 7300
   : PRINT HEX(03)
   : GOSUB '125("ENTER THE NO. OF THE KEY FILE DEVICE ADDRESS")
   : D2=Q9
   : GOSUB 7670
   : PRINT HEX(03)
5782 GOSUB '245("ENTER NUMBER OF KEY FILE",1,0)
   : IF Q9>0THEN 5794
   : GOSUB '50("INVALID")
   : GOTO 5782
5794 K1$=U1$
   : STR(K1$,5,1)="K"
   : CONVERT Q9TO STR(K1$,6,1),(#)
   : ON ERRORE$,E1$GOTO 8030
   : LIMITS T#1,U1$,U1,U2,U3
   : LIMITS T#2,K1$,K1,K2,K3
   : DATA LOAD DC OPEN T#2,K1$
5890 DATA LOAD DC #2,Q2$,Q3$,V5$(),V8$,V1$,V2$,V3$,V6$,T2$,T0,T8$(),Q0$,V4$(),
     V2$()
   : IF Q0$<>" "THEN 8110
   : U6,U7=VAL(Q3$)*256+VAL(STR(Q3$,2))+1
   : K6,K7=VAL(V3$)*256+VAL(STR(V3$,2))+1
   : U4=VAL(Q2$)*256+VAL(STR(Q2$,2))+VAL(V6$)
5940 U5=U2-U1-1
   : K4=VAL(V2$)*256+VAL(STR(V2$,2))+1
   : IF Q2$<HEX(FF00)THEN 5960
   : PRINT "RUN KFAM2004 FIRST"
   : GOTO 8230
5960 K5=K2-K1-1
   : GOSUB '248(6,0,0)
   : PRINT TAB(10);"LENGTH   LOW LIMIT   HIGH LIMIT   NEW LENGTH"
   : PRINT "USER FILE  ";
   : PRINTUSING 6010,U6,U4,U5
6010 %#####       #####        #####
6020 PRINT "KEY FILE   ";
   : PRINTUSING 6010,K6,K4,K5
6060 GOSUB '243("DO YOU WISH TO REALLOCATE UF SPACE? (Y OR N)",1)
   : IF Q6$=" "THEN 6120
   : IF Q6$="Y"THEN 6120
   : IF Q6$="N"THEN 6210
   : GOSUB '50("ANSWER Y OR N")
   : GOTO 6060
6120 GOSUB '248(0,0,4)
6130 GOSUB '245("INPUT NEW UF SECTOR ALLOCATION",5,0)
   : U6=Q9
   : IF U6<U4THEN 6180
   : IF U6>U5THEN 6180
   : GOTO 6210
6180 GOSUB '50("INVALID - OUT OF BOUNDS")
   : GOTO 6130
6210 GOSUB '248(7,49,0)
   : PRINTUSING 6420,U6
   : GOSUB '248(0,0,4)
6250 GOSUB '243("DO YOU WISH TO REALLOCATE SPACE FOR KF? (Y OR N)",1)
   : IF Q6$=" "THEN 6310
   : IF Q6$="Y"THEN 6310
   : IF Q6$="N"THEN 6400
   : GOSUB '50("ANSWER Y OR N")
   : GOTO 6250
6310 GOSUB '248(0,0,4)
6320 GOSUB '245("ENTER NEW KF SECTOR ALLOCATION",5,0)
   : K6=Q9
   : IF K6<K4THEN 6370
   : IF K6>K5THEN 6370
   : GOTO 6400
6370 IF K4>K5THEN 6385
   : GOSUB '50("INVALID - OUT OF BOUNDS")
   : GOTO 6320
6385 GOSUB '248(0,0,4)
   : PRINT "COPY AND LENGTHEN KF FIRST"
   : GOTO 8230
6400 GOSUB '248(8,49,0)
   : PRINTUSING 6420,K6
6420 %#####
6450 IF U6=U7THEN 6620
   : U8=U1+U7
   : DATA LOAD BA T#1,(U8,X)A$()
   : DATA LOAD DC OPEN T#1,U1$
   : DSKIP #1,END
   : DATA SAVE DC $#1,U1$
   : IF U6>U7THEN 6540
   : Y=U7-U6+1
   : DBACKSPACE #1,YS
   : GOTO 6580
6540 Y=U6-U7-1
   : IF Y=0THEN 6580
   : DSKIP #1,YS
6580 DATA SAVE DC $#1,END
   : U8=U1+U6
   : DATA SAVE BA T$#1,(U8,U8)A$()
   : DATA SAVE DC CLOSE#1
   : GOSUB '51(U6-1)
   : Q3$=X1$
6620 IF K6=K7THEN 6790
   : DSKIP #2,END
   : DATA SAVE DC $#2,K1$
   : IF K6>K7THEN 6710
   : Y=K7-K6+1
   : DBACKSPACE #2,YS
   : GOTO 6750
6710 Y=K6-K7-1
   : IF Y=0THEN 6750
   : DSKIP #2,YS
6750 DATA SAVE DC $#2,END
   : DATA SAVE DC CLOSE#2
   : GOSUB '51(K6-1)
   : V3$=X1$
6790 DATA LOAD DC OPEN T#2,K1$
   : DATA SAVE DC $#2,Q2$,Q3$,V5$(),V8$,V1$,V2$,V3$,V6$,T2$,T0,T8$(),Q0$,V4$()
     ,V2$()
   : GOSUB '248(0,0,4)
6840 GOSUB '243("DO YOU WISH TO DO ANOTHER FILE? (Y OR N)",1)
   : IF Q6$=" "THEN 5420
   : IF Q6$="Y"THEN 5420
   : IF Q6$="N"THEN 6910
   : GOSUB '50("ANSWER Y OR N")
   : GOTO 6840
6910 GOSUB 8162
6915 COM CLEAR Q6$
   : LOAD DC T#0,"START065"
6950 DEFFN'50(Q6$)
   : PRINT HEX(010A0A0A)
   : PRINT Q6$
   : RETURN
7010 DEFFN'51(X)
   : Y=INT(X/256)
   : BIN(X1$)=Y
   : BIN(STR(X1$,2))=X-256*Y
   : RETURN
7100 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"
7160 GOSUB '245(X$,1,0)
   : X=Q9
   : IF X<1THEN 7220
   : IF X>7THEN 7220
   : GOSUB '248(5,0,5)
   : RETURN
7220 PRINT HEX(010A0A0A)
   : PRINT "INVALID DEVICE ADDRESS"
   : GOTO 7160
7300 IF M$="X"THEN 7490
   : ON D1GOTO 7320,7340,7360,7380,7400,7420,7440
7320 SELECT #1390
   : RETURN
7340 SELECT #13A0
   : RETURN
7360 SELECT #13B0
   : RETURN
7380 SELECT #13D0
   : RETURN
7400 SELECT #1B90
   : RETURN
7420 SELECT #1BA0
   : RETURN
7440 SELECT #1BB0
   : RETURN
7490 ON D1GOTO 7500,7520,7540,7560,7580,7600,7620
7500 SELECT #1310
   : RETURN
7520 SELECT #1320
   : RETURN
7540 SELECT #1330
   : RETURN
7560 SELECT #1350
   : RETURN
7580 SELECT #1B10
   : RETURN
7600 SELECT #1B20
   : RETURN
7620 SELECT #1B30
   : RETURN
7670 IF M$="X"THEN 7860
   : ON D2GOTO 7690,7710,7730,7750,7770,7790,7810
7690 SELECT #2390
   : RETURN
7710 SELECT #23A0
   : RETURN
7730 SELECT #23B0
   : RETURN
7750 SELECT #23D0
   : RETURN
7770 SELECT #2B90
   : RETURN
7790 SELECT #2BA0
   : RETURN
7810 SELECT #2BB0
   : RETURN
7860 ON D2GOTO 7870,7890,7910,7930,7950,7970,7990
7870 SELECT #2310
   : RETURN
7890 SELECT #2320
   : RETURN
7910 SELECT #2330
   : RETURN
7930 SELECT #2350
   : RETURN
7950 SELECT #2B10
   : RETURN
7970 SELECT #2B20
   : RETURN
7990 SELECT #2B30
   : RETURN
8030 GOSUB '248(0,0,4)
   : IF E$<>"80"THEN 8080
   : PRINT "FILE NOT FOUND"
   : GOTO 8230
8080 PRINTUSING 8090,E$,E1$
8090 %ERR ##  LINE ####
8100 GOTO 8230
8110 GOSUB '248(0,0,4)
   : PRINT "FILE BUSY"
   : GOTO 8230
8162 GOSUB 7860
   : $IF ON #2,8180
8180 GOSUB 7490
   : $IF ON #1,8200
8200 RETURN
8230 GOSUB 8162
   : STOP
   : GOTO 6915
8710 Q6=3
   : GOTO 9289
8975 DEFFN'242(W0,Q6$)
   : IF W0<=0THEN 9405
   : IF W0=1THEN 8990
   : STR(Q6$,2)=STR(Q6$,1,W0-1)
8990 PRINT Q6$;
   : RETURN
9010 DEFFN'243(Q6$,Q0)
   : GOSUB 9200
9022 SELECT CO 205
   : Q6$=" "
   : INPUT Q6$
   : IF Q0=0THEN 9231
   : IF LEN(Q6$)<=Q0THEN 9231
   : GOSUB 9150
9032 DEFFN'244(Q0)
   : GOSUB 9220
   : GOSUB 9210
   : GOTO 9022
9038 DEFFN'245(Q6$,Q2,Q3)
   : Q0=ABS(Q2)+Q3+1
   : GOSUB 9200
9044 GOSUB '242(ABS(Q2)+2,HEX(09))
   : PRINT "/"
   : GOSUB 9220
   : SELECT CO 205
   : Q9,W0=-1E-99
   : INPUT Q9
   : IF W0=Q9THEN 9058
   : IF Q9>=0THEN 9070
   : IF Q2<=0THEN 9070
9058 GOSUB 9150
9060 DEFFN'246(Q2,Q3)
   : Q0=ABS(Q2)+Q3+1
   : GOSUB 9220
   : GOSUB 9210
   : GOTO 9044
9070 IF ABS(Q9)>=10^ABS(Q2)THEN 9058
   : W0=ABS(Q9*10^Q3)
   : IF INT(W0)<>W0THEN 9058
   : GOTO 8710
9150 GOSUB 8710
   : PRINT "RE-ENTER"
   : RETURN
9200 GOSUB 9405
   : PRINT HEX(010A);STR(Q6$,1);
9210 GOSUB 9405
   : GOSUB '242(Q0+2,"-")
   : PRINT TAB(64)
9220 PRINT HEX(010A0A)
   : RETURN
9231 PRINT HEX(0A);TAB(64)
   : GOTO 9405
   : Q6=0
9289 Q7=0
   : Q8=1
9290 DEFFN'248(Q6,Q7,Q8)
   : GOSUB 9405
   : IF Q8<1THEN 9350
   : GOSUB 9350
   : SELECT PRINT 205
   : Q6$=" "
   : PRINT STR(Q6$,Q7+1)
   : IF Q8<2THEN 9350
   : FOR W0=2TO Q8
   : PRINT HEX(0A);STR(Q6$,1)
   : NEXT W0
9350 PRINT HEX(01)
   : GOSUB '242(Q7,HEX(09))
   : GOSUB '242(Q6,HEX(0A))
9405 SELECT PRINT 005(64),CO 005
   : RETURN