Listing of file='KFAM817U' on disk='vmedia/701-2427C.wvd.zip'
# Sector 796, program filename = 'KFAM817U'
0010 REM KFAM817U, RELEASE 5-1, (11/07/79) - COPYRIGHT WANG LABS. INC.
0120 %THIS MUST BE LINE 120
0130 DIM X1$2,Z$8,X$64
: DIM M1$(22)25,A$20,A1$(18)20,A2$(41)3,A3$(3)11
: DIM G$(4)64,G$2,L$2,F$1,Y$1,A2$2,L2$2
: LOAD T"ISS.254S"10,0BEG 560
0560 IF F9$=" "THEN 620
0580 PRINT AT(1,0,S0);"MOUNT OUTPUT FILE PLATTER AT THE INDICATED ADDRESS"
: GOSUB '254
: DATA LOAD BA T#2,(0)R9$()
: ERRORGOTO 580
0620 M1$(1)="230 OPEN"
: M1$(2)="231 DELETE"
: M1$(3)="232 FINDOLD"
: M1$(4)="233 FINDNEW"
: M1$(5)="234 FINDNEW(HERE)"
: M1$(6)="235 FINDFIRST"
: M1$(7)="236 FINDLAST"
: M1$(8)="237 FINDNEXT"
: M1$(9)="212 FINDPREVIOUS"
: M1$(10)="238 RELEASE"
: M1$(11)="239 CLOSE"
0730 M1$(12)="CLOSE WITH RECOVERY INFO"
: M1$(13)="213 RE-OPEN"
: M1$(14)="214 WRITE RECOVERY INFO"
: M1$(15)="217 MUX OPEN"
: M1$(16)="MUX OPEN NEW"
: M1$(17)="218 MUX END"
: M1$(18)="219 MUX CLOSE"
: M1$(19)=" "
: M1$(20)="CANCEL"
: M1$(21)="PROCESS"
0830 M1$(22)="RETURN TO MENU"
: A1$(01)=HEX(1234567890123456789012345678901234567890)
: A1$(01)=HEX(7700000000007000000000007700000070770777)
: A1$(02)=HEX(7700000000007077000007070000000000000007)
: A1$(03)=HEX(7770000700007000000000000000000000000007)
0890 A1$(04)=HEX(7700000000007777770777700000000000000007)
: A1$(05)=HEX(7700000000007777777077700000000000000007)
: A1$(06)=HEX(7707077770007000000000000000000000000007)
: A1$(07)=HEX(7700007707007000000000000000000000000007)
0930 A1$(08)=HEX(7700777770007000000000000000000000000007)
: A1$(09)=HEX(7700007700707000000000000000000000000007)
: A1$(10)=HEX(7700000000077000000000000000000000000007)
: A1$(11)=HEX(7700000000007000000000000007070000077777)
0970 A1$(12)=HEX(7700000000007000000000000007777000077777)
: A1$(13)=HEX(7700000000007000000000000770000070770077)
: A1$(14)=HEX(7700000000007000000000000000007700077077)
: A1$(15)=HEX(7000000000000000000000000000000070770070)
1010 A1$(16)=HEX(7000000000000000000000000000000077770070)
: A1$(17)=HEX(7000000000000000000000000000000000077070)
: A1$(18)=HEX(7000000000000000000000000000000000070770)
: A2$(1)=HEX(002022)
: A2$(2)=HEX(060977)
: A2$(3)=HEX(098405)
: A2$(4)=HEX(101402)
: A2$(5)=HEX(103204)
: A2$(6)=HEX(105907)
1100 A2$(7)=HEX(110502)
: A2$(8)=HEX(111602)
: A2$(9)=HEX(113112)
: A2$(10)=HEX(120604)
: A2$(11)=HEX(123924)
: A2$(12)=HEX(141002)
: A2$(13)=HEX(143102)
: A2$(14)=HEX(144307)
: A2$(15)=HEX(147303)
: A2$(16)=HEX(148003)
: A2$(17)=HEX(149009)
: A2$(18)=HEX(152407)
: A2$(19)=HEX(162606)
: A2$(20)=HEX(166207)
1240 A2$(21)=HEX(168630)
: A2$(22)=HEX(191607)
: A2$(23)=HEX(194407)
: A2$(24)=HEX(198617)
: A2$(25)=HEX(209140)
: A2$(26)=HEX(229803)
: A2$(27)=HEX(234608)
: A2$(28)=HEX(238407)
: A2$(29)=HEX(240901)
: A2$(30)=HEX(241505)
: A2$(31)=HEX(244512)
: A2$(32)=HEX(248803)
: A2$(33)=HEX(250405)
: A2$(34)=HEX(252208)
1380 A2$(35)=HEX(255619)
: A2$(36)=HEX(262604)
: A2$(37)=HEX(264610)
: A2$(38)=HEX(269007)
: A2$(39)=HEX(272402)
: A2$(40)=HEX(289008)
: A2$(41)=HEX(999900)
: A3$(1)="SINGLE BANK"
: A3$(2)=" MUX"
: A3$(3)="MULTIPLE BANK"
: IF I$="SINGLE BANK"THEN F1=1
: IF I$="MUX"THEN F1=2
: IF I$="MULTIPLE BANK"THEN F1=3
1530 Z$="KFAM0007"
: CONVERT F1TO STR(Z$,6,1),(#)
: LIMITS T#0,Z$,I,X,Y
1560 INIT(00)A$
: PRINT HEX(030A)
: PRINT " -- KEY THE DESIRED SPECIAL FUNCTIONS --"
: PRINT
: FOR X=1TO 11
: CONVERT XTO X1$,(##)
: CONVERT X+11+9*INT(X/9)TO G$,(##)
: IF X=8THEN G$=" "
: PRINTUSING 1660,X1$,M1$(X),G$,M1$(X+11)
: NEXT X
1660 % ## ######################### ## #########################
1670 PRINT
: PRINT "MODULE ";F1$;TAB(20);I$;" VERSION";
: INIT(FF)X$
: INIT(01)STR(X$,2,18)
: STR(X$,30,3)=ALL(01)
1740 PRINT HEX(01)
1750 KEYIN Y$,,1780
: GOTO 1750
1780 Y=VAL(Y$)
: IF VAL(STR(X$,Y+1))>1THEN 1740
: ON Y-28GOTO 1560,1880,2770
: OR (A$,A1$(Y))
: D=32*INT(Y/12)
: C=Y-11*INT(Y/12)+2
: PRINT AT(C,D);"*"
: GOTO 1740
1880 PRINT AT(1,0,S0);"PHASE 2 -- BUILDING MODULE ";F1$
: B=0
: FOR N=1TO 40
: GOSUB '77(N)
: IF F<7THEN 1960
: UNPACK(##)STR(A2$(N),3,1)TO X
: B=B+X
1960 NEXT N
: B=INT(B/10)+6
: $OPEN #2
: GOSUB 2960
: G$()=HEX(40)&STR(F1$)&HEX(FD)
: DATA SAVE BA T$#2,(G$,G$)G$()
: G$()=HEX(00FF0010A2)&F1$&HEX(0D0000)
: G=LEN(G$())+1
: I=I+1
: N,F=0
: Y$=HEX(0D)
: A2$=HEX(0000)
: L2$=HEX(0020)
2150 DATA LOAD BA T#0,(I,I)R9$()
: P=2
2180 Q=256-P
: IF STR(R9$(),P+1,2)<L2$THEN 2400
: N=N+1
: A2$=L2$
: L2$=A2$(N+1)
: GOSUB '77(N)
: GOTO 2400
2290 IF G+Y<256THEN RETURN
: STR(G$(),G,1)=HEX(FD)
: IF G$>=L$THEN 2810
: DATA SAVE BA T$#2,(G$,G$)G$()
: G=2
: RETURN
2400 Y=POS(STR(R9$(),P+1,Q)=0D)+3
: IF F<7THEN 2480
: GOSUB 2290
: STR(G$(),G,Y)=STR(R9$(),P,Y)
: G=G+Y
2480 P=P+Y
: ON POS(HEX(FDFEFF)=STR(R9$(),P))GOTO 2150,2530,2180
: GOSUB '101("INVALID DELIMITER")
2530 STR(G$(1),1,1)=HEX(20)
: STR(G$(),G,1)=HEX(FE)
: IF G$>=L$THEN 2820
: DATA SAVE BA T$#2,(G$,G$)G$()
: LIMITS T#2,F1$,A,E,X
: Z=VAL(G$,2)-A+1
: G$()=HEX(20)&BIN(Z,2)&HEX(FD)
: DATA SAVE BA T$#2,(E)G$()
2640 $CLOSE#2
: COM CLEAR Z9$
: LOAD T"KFAM007M"
2690 DEFFN'101(X$)
: PRINT AT(0,0,4*S0)
: PRINT X$
: GOSUB '254
: $CLOSE#2
: RETURN CLEAR
2770 DEFFN'31
: GOTO 2640
2810 RETURN CLEAR
2820 GOSUB '101("OUTPUT PROGRAM SPACE EXCEEDED")
2860 DEFFN'77(X)
: HEXUNPACKSTR(A$,(X+1)*.5,1)TO X1$
: F=VAL(STR(X1$,2-MOD(X,2)))-48
: RETURN
2960 DATA LOAD BA T#2,(0)G$()
: $GIO#2,(70A04000870B,X$)
: GOSUB '41(STR(G$(),1))
: Z=X
: GOSUB '41(STR(G$(),3))
: Y=X
: GOSUB '41(STR(G$(),5))
: Y=X-Y
3060 LIMITS T#2,F1$,A,E,G,X
: IF X<>0THEN 3130
: IF B>YTHEN 3330
: DATA SAVE DC OPEN T$#2,B,F1$
: GOTO 3060
3130 G$=BIN(A,2)
: L$=BIN(E,2)
: IF X=1THEN RETURN
: X=0
: Y=17
3210 DATA LOAD BA T#2,(X,X)G$()
3230 ON POS(HEX(001011)=STR(G$(),Y))GOTO 3280,3250,3250
: GOTO 3260
3250 IF STR(G$(),Y+8,8)=F1$THEN 3370
3260 Y=Y+16
: IF Y<256THEN 3230
3280 Y=1
: IF X<ZTHEN 3210
: RETURN CLEAR
3310 GOSUB '101("SYSTEM ERROR")
3330 RETURN CLEAR
3340 GOSUB '101("NO ROOM ON DISK FOR OUTPUT PROGRAM")
3370 STR(G$(),Y,2)=HEX(1080)
: X=X-1
: DATA SAVE BA T$#2,(X)G$()
: RETURN
3430 DEFFN'41(X1$)
: IF STR(X$,11,1)<>HEX(D0)THEN X1$=AND HEX(7FFF)
: X=VAL(X1$,2)
: RETURN