image of READY prompt

Wang2200.org

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

# Sector 456, program filename = 'KFAM8003'
0010 REM KFAM8003,VER.02/20/76
0200 DIM I$(32)8,X1$2,Z$8,H$2,X$64
   : DIM M1$(12)20,Q6$64,N1$8,A$38,A1$(12)38,A2$(38)3
   : DIM G$(4)64,G$2,L$2,F$1,Y$1,A2$2,P$(4)64,J$(1)2,C2$(1)1
   : PRINT HEX(030A0A0A0A)
   : PRINT "BUILD SUBROUTINE MODULE"
0585 LIMITS T#0,"KFAM0003",U,X,Y
   : C2$(1)=HEX(FD)
   : M1$(1)="230 OPEN"
   : M1$(2)="OPEN FOR FINDNEW"
   : M1$(3)="231 DELETE"
   : M1$(4)="232 FINDOLD"
   : M1$(5)="233 FINDNEW"
   : M1$(6)="234 FINDNEW(HERE)"
0670 M1$(7)="235 FINDFIRST"
   : M1$(8)="236 FINDLAST"
   : M1$(9)="237 FINDNEXT"
   : M1$(10)="239 CLOSE"
   : M1$(11)="MULTIPLE FILES"
   : M1$(12)="RECOVERY OPTION"
0740 A1$(1)="11210000100011000000000000121000001010"
   : A1$(2)="00400000000000000000000000000000000010"
   : A1$(3)="10001101010100100000000001000000011010"
0770 A1$(4)="10000101010100110000000000000000011010"
   : A1$(5)="10401111010110100000011010000000101010"
   : A1$(6)="10401111010110100000011110000000101010"
0800 A1$(7)="10000101010100101111000000000000011110"
   : A1$(8)="10000101010100100010100000000000011010"
   : A1$(9)="10000101010100100111000000000000011110"
0830 A1$(10)="10000000000011000000000000000121001010"
   : A1$(11)="00000000101211000000000000000000001010"
   : A1$(12)="00400000000000000000000000040040000000"
   : A2$(1)=HEX(020001)
0880 A2$(2)=HEX(020509)
   : A2$(3)=HEX(023501)
   : A2$(4)=HEX(024002)
   : A2$(5)=HEX(051003)
   : A2$(6)=HEX(054503)
   : A2$(7)=HEX(057003)
   : A2$(8)=HEX(064515)
   : A2$(9)=HEX(083003)
   : A2$(10)=HEX(092002)
   : A2$(11)=HEX(093504)
0980 A2$(12)=HEX(098801)
   : A2$(13)=HEX(101505)
   : A2$(14)=HEX(104505)
   : A2$(15)=HEX(107005)
   : A2$(16)=HEX(112005)
   : A2$(17)=HEX(117503)
   : A2$(18)=HEX(121510)
   : A2$(19)=HEX(132505)
   : A2$(20)=HEX(136512)
   : A2$(21)=HEX(148002)
1140 A2$(22)=HEX(154507)
   : A2$(23)=HEX(164008)
   : A2$(24)=HEX(177005)
   : A2$(25)=HEX(183050)
   : A2$(26)=HEX(242015)
   : A2$(27)=HEX(262007)
   : A2$(28)=HEX(271502)
   : A2$(29)=HEX(271815)
   : A2$(30)=HEX(287504)
   : A2$(31)=HEX(291405)
1240 A2$(32)=HEX(293503)
   : A2$(33)=HEX(298001)
   : A2$(34)=HEX(300002)
   : A2$(35)=HEX(303502)
   : A2$(36)=HEX(306002)
   : A2$(37)=HEX(307201)
   : A2$(38)=HEX(999900)
   : GOSUB '243("ENTER NAME OF PROGRAM TO BE GENERATED",8)
1410 N1$=Q6$
   : GOSUB '125("ENTER THE NO. OF THE OUTPUT PROGRAM DEVICE")
   : D2=X
1440 GOSUB '248(5,0,10)
   : PRINT "MODULES INCLUDED --"
   : INIT(30)A$
   : C=5
   : D=0
   : FOR N=1TO 12
1500 Q6$=M1$(N)
   : E=LEN(Q6$)+2
   : STR(Q6$,E)="?  (Y OR N)"
   : GOSUB '243(Q6$,1)
   : IF Q6$="Y"THEN 1600
   : IF Q6$="N"THEN 1680
   : PRINT HEX(010A0A0A)
   : PRINT "RE-ENTER"
   : GOTO 1500
1600 C=C+1
   : IF C<15THEN 1640
   : C=6
   : D=30
1640 GOSUB '248(C,D,0)
   : PRINT M1$(N)
   : OR (A$,A1$(N))
1680 NEXT N
   : FOR N=1TO 38
   : IF STR(A$,N,1)<"6"THEN 1688
   : STR(A$,N,1)="1"
1688 NEXT N
1690 GOSUB '243("OK TO PROCEED? (Y OR N)",1)
   : IF Q6$="Y"THEN 1770
   : IF Q6$="N"THEN 1440
   : PRINT HEX(010A0A0A)
   : PRINT "RE-ENTER"
   : GOTO 1690
1770 GOSUB '248(0,0,5)
   : PRINT HEX(0A0A0A0A)
   : PRINT "PHASE 2 -- BUILDING PROGRAM ";N1$
   : B=0
   : FOR N=1TO 38
   : IF STR(A$,N,1)<>"1"THEN 1840
   : UNPACK(##)STR(A2$(N),3,1)TO X
   : B=B+X
1840 NEXT N
   : B=INT(B/10)+4
   : GOSUB 5820
   : GOSUB '39(N1$,2,B)
   : G$(1)=HEX(40)
   : STR(G$(1),2,8)=N1$
   : STR(G$(1),10,1)=HEX(FD)
   : DATA SAVE BA T$#2,(G$,G$)G$()
   : G$(1)=HEX(00FF0010A2)
   : STR(G$(1),6)=N1$
   : G=LEN(G$(1))+1
   : STR(G$(1),G)=HEX(0D0000)
   : G=G+3
2020 U=U+1
   : N=1
   : F$="0"
   : A2$=HEX(0200)
   : Y$=HEX(0D)
2080 DATA LOAD BA T#0,(U,U)P$()
   : P=2
2100 Q=256-P
   : MAT COPY P$()<P+1,2>TO J$()
2130 IF J$(1)<A2$THEN 2210
   : F$=STR(A$,N,1)
   : N=N+1
   : A2$=A2$(N)
   : GOTO 2130
2210 MAT SEARCHP$()<P+1,Q>,=Y$TO J$()
   : Y=VAL(STR(J$(1),2))+3
   : IF F$<>"1"THEN 2360
   : IF G+Y<256THEN 2330
   : MAT COPY C2$()TO G$()<G,1>
   : IF G$>=L$THEN 2590
   : DATA SAVE BA T$#2,(G$,G$)G$()
   : G=2
2330 MAT COPY P$()<P,Y>TO G$()<G,Y>
   : G=G+Y
2360 P=P+Y
   : MAT COPY P$()<P,1>TO J$()
   : IF J$(1)=HEX(FF)THEN 2100
   : IF J$(1)=HEX(FD)THEN 2080
   : STR(G$(1),1,1)=HEX(20)
   : IF J$(1)=HEX(FE)THEN 2430
   : GOSUB '101("INVALID DELIMITER")
2430 MAT COPY J$()TO G$()<G,1>
   : IF G$>=L$THEN 2590
   : DATA SAVE BA T$#2,(G$,G$)G$()
   : LIMITS T#2,N1$,A,E,X
   : X1$=G$
   : GOSUB '41
   : Z=X-A+1
   : GOSUB '43(Z)
   : G$(1)=HEX(202020FD)
   : STR(G$(1),2,2)=X1$
   : DATA SAVE BA T$#2,(E,X)G$()
   : LOAD DC T#0,"START050"
2500 DEFFN'101(X$)
   : GOSUB '248(0,0,4)
   : PRINT X$
   : STOP
2590 GOSUB '101("OUTPUT PROGRAM SPACE EXCEEDED")
5060 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"
5120 GOSUB '245(X$,1,0)
   : X=Q9
   : IF X<1THEN 5180
   : IF X>7THEN 5180
   : GOSUB '248(5,0,5)
   : RETURN
5180 PRINT HEX(010A0A0A)
   : PRINT "INVALID DEVICE ADDRESS"
   : GOTO 5120
5820 ON D2GOTO 5830,5850,5870,5890,5910,5930,5950
5830 SELECT #2310
   : RETURN
5850 SELECT #2320
   : RETURN
5870 SELECT #2330
   : RETURN
5890 SELECT #2350
   : RETURN
5910 SELECT #2B10
   : RETURN
5930 SELECT #2B20
   : RETURN
5950 SELECT #2B30
   : RETURN
6040 DEFFN'40(N1$,Z)
   : DATA LOAD BA T#Z,(0,X)I$()
   : X1$=STR(I$(1),1,2)
   : GOSUB '41
   : S9=X
   : X1$=STR(I$(1),3,2)
   : GOSUB '41
   : Y=X
   : X1$=STR(I$(1),5,2)
   : GOSUB '41
   : A=X-Y
   : Z$=N1$
   : XOR (STR(Z$,2),Z$)
   : Y$=STR(Z$,8,1)
   : H$=HEX(0000)
   : ADDC(H$,Y$)
   : ADDC(H$,Y$)
6230 ADDC(H$,Y$)
   : ADD(STR(H$,1,1),STR(H$,2,1))
   : H=VAL(H$)
   : H=H-INT(H/S9)*S9
   : DATA LOAD BA T#Z,(H,X)I$()
   : GOSUB '42
   : IF X>0THEN 6390
   : IF Y=0THEN 6390
   : H=0
6330 DATA LOAD BA T#Z,(H,X)I$()
   : GOSUB '42
   : IF X>0THEN 6390
   : H=H+1
   : IF H<S9THEN 6330
6390 RETURN
6420 DEFFN'41
   : AND (STR(X1$,1,1),7F)
   : X=VAL(X1$)*256+VAL(STR(X1$,2))
   : RETURN
6480 DEFFN'42
   : Y=0
   : X=2
   : IF H>0THEN 6530
   : X=4
6530 IF STR(I$(X-1),1,1)=HEX(10)THEN 6570
   : IF STR(I$(X-1),1,1)=HEX(11)THEN 6570
   : IF STR(I$(X-1),1,1)=HEX(00)THEN 6620
   : GOTO 6580
6570 IF I$(X)=N1$THEN 6640
6580 X=X+2
   : IF X<34THEN 6530
   : Y=1
6620 X=0
6640 RETURN
6720 DEFFN'39(N1$,Z,B)
   : GOSUB '40(N1$,Z)
   : IF X=0THEN 6900
6760 STR(I$(X-1),2,1)=HEX(80)
   : DATA SAVE BA T$#Z,(H,X)I$()
   : LIMITS T#Z,N1$,A,E,G
   : GOSUB '43(A)
   : G$=X1$
   : GOSUB '43(E)
   : L$=X1$
   : RETURN
6900 IF B>ATHEN 7000
   : DATA SAVE DC OPEN T$#Z,B,N1$
   : GOSUB '40(N1$,Z)
   : IF X>0THEN 6760
   : GOSUB '101("SYSTEM ERROR")
7000 GOSUB '101("NO ROOM ON DISK FOR OUTPUT PROGRAM")
7070 DEFFN'43(X)
   : Y=INT(X/256)
   : X=X-256*Y
   : BIN(X1$)=Y
   : BIN(STR(X1$,2))=X
   : RETURN
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