Listing of file='3741090A' on disk='vmedia/3741_util.wvd.zip'
# Sector 179, program filename = '3741090A' 0010 REM 3741090A,02.00(12/1/78),THIS PROGRAM IS A PRODUCT OF WANG LABS. INC. 3000 % THIS MUST BE STATEMENT 3000 3010 %SECTOR #### (##/##) RECORD #### 3020 % ########################## ####################### 3030 DIM Q$(2)64,Q6$64,Q7$1,Q5$64,Q6$64 : DIM Y$(1,128)1,Y$1,X9$(8)32,X$17 : GOSUB '188 : INIT(20)X9$(1) : X9$(2)=HEX(202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E 3F) : FOR I=3TO 8 3110 X9$(I)=X9$(I-1) : ADD(X9$(I),X9$(1)) : NEXT I : INIT("?")X9$(1),X9$(5) 3170 DEFFN'15 : PRINT HEX(030A0A0A) : PRINT TAB(20);" DISK I/O FUNCTIONS" : PRINT : PRINT "---------------------------------------------------------------" : PRINTUSING 3020,"FN KEY DESCRIPTION","FN KEY DESCRIPTION" 3230 PRINT "---------------------------------------------------------------" : PRINTUSING 3020," 01 - READ"," 08 - WRITE END" : PRINTUSING 3020," 02 - WRITE"," 09 - OPEN (OLD)" 3260 PRINTUSING 3020," 03 - BACKSPACE"," 10 - OPEN (NEW)" : PRINTUSING 3020," 04 - SKIP"," 11 - CLOSE" : PRINTUSING 3020," 05 - SKIP TO 'EOD'"," 12 - DELETE RECORD" 3290 PRINTUSING 3020," 06 - SKIP TO ADDRESS"," 13 - DELETE FILE" : PRINTUSING 3020," 07 - REREAD"," 14 - SET LABLE CODES" : PRINTUSING 3020," 15 - RETURN TO MENU"," 31 - LOAD 'START'" 3320 PRINT HEX(01);"PRESS DESIRED FUNCTION KEY"; 3330 A$=" " : KEYIN A$,3330,3360 : GOTO 3330 3360 IF A$=HEX(1F)THEN 4980 : IF A$<HEX(01)THEN 3330 : IF A$>HEX(0E)THEN 3330 : ON VAL(A$)GOSUB 3730,3840,4180,4230,4280,4320,4370,4420,4460,4530,3690,47 00,4740,4780 : IF Q$=" "THEN 3170 : PRINT HEX(07) : GOSUB '248(1,0,3) : PRINT "ERROR - "; : HEXPRINT STR(Q$,1,1); : PRINT " - "; 3480 ON VAL(Q$)GOTO 3510,3530,3550,3570,3590,3610,3630,3650 : PRINT "CATALOG END ERROR" : GOTO 3660 3510 PRINT "END OF FILE" : GOTO 3660 3530 PRINT "RECORD LENGTH GREATER THAN 128" : GOTO 3660 3550 PRINT "FILE FULL" : GOTO 3660 3570 PRINT "FILE ALREADY CATALOGED" : GOTO 3660 3590 PRINT "FILE NOT FOUND" : GOTO 3660 3610 PRINT "CATALOG FULL" : GOTO 3660 3630 PRINT "NO FILE OPEN" : GOTO 3660 3650 PRINT "DELETED RECORD" 3660 GOSUB '254 : GOTO 3170 3690 PRINT HEX(03);,"CLOSE ";X$ : GOSUB '188 : RETURN 3730 PRINT HEX(03);,"READ" : GOSUB '181 : IF Q$<>" "THEN 3820 : $TRAN(Z$(),X9$()) 3770 PRINT HEX(010A0A0A0A) : PRINTUSING 3010,Z0-1,INT((Z0-2)/26),Z0-1-INT((Z0-2)/26)*26,Z0-Z1 : MAT PRINT Z$ : IF Q$<>" "THEN 3820 : GOSUB '254 3820 RETURN 3840 PRINT HEX(03);,"WRITE" : GOSUB 253 : IF Q$<>" "THEN 4160 : PRINT HEX(010A0A0A0A) : PRINTUSING 3010,Z0,INT((Z0-1)/26),Z0-INT((Z0-1)/26)*26,Z0-Z1+1 : PRINT HEX(0A);"ENTER DATA-KEY (EXEC) TO TERMINATE INPUT" : INIT(20)Y$() : GOTO 3980 3920 KEYIN Y$,3940,3920 : GOTO 3920 3940 IF Y$=HEX(0D)THEN 4140 : IF Y$<>HEX(08)THEN 4010 : X=X-2 : IF X>-1THEN 3990 3980 X=0 3990 Y$(1,X+1)=" " : GOTO 4040 4010 IF Y$<HEX(20)THEN 3920 : IF Y$>HEX(7F)THEN 3920 : Y$(1,X)=Y$ 4040 PRINT : PRINT HEX(010A0A0A0A0A0A0A0A0A) : $GIO/005(A200400D400A,A$)Y$()<1,64> : $GIO/005(A200400D400A,A$)Y$()<65,64> : PRINT HEX(0A0A);"COLUMN";X+1 : PRINT TAB(X-INT(X/64)*64);HEX(0C0C0C0C); : IF X>63THEN 4120 : PRINT HEX(0C); 4120 X=X+1 : IF X<=YTHEN 3920 4140 MAT COPY Y$()<1,Y>TO Z$() : GOSUB '182 4160 RETURN 4180 PRINT HEX(03);,"BACKSPACE" : GOSUB '200("0","1924",4,0,"ENTER THE NUMBER OF SECTORS TO BACKSPACE.",1) : GOSUB '183(Q9) : RETURN 4230 PRINT HEX(03);,"SKIP" : GOSUB '200("0","1924",4,0,"ENTER THE NUMBER OF SECTORS TO SKIP.",1) : GOSUB '184(Q9) : RETURN 4280 PRINT HEX(03);,"SKIP TO 'EOD'" : GOSUB '190 : RETURN 4320 PRINT HEX(03);,"SKIP TO ADDRESS" : GOSUB '200("27","1950",4,0,"ENTER THE ADDRESS TO SKIP TO.",1) : GOSUB '191(Q9) : RETURN 4370 PRINT HEX(03);,"REREAD" : GOSUB '180 : IF Q$=" "THEN 3770 : RETURN 4420 PRINT HEX(03);,"WRITE END" : GOSUB '185 : RETURN 4460 PRINT HEX(03);,"OPEN (OLD)" : GOSUB '200(" "," ",17,0,"ENTER THE NAME OF THE FILE TO OPEN.",2) : GOSUB '186(Q6$) : IF Q$<>" "THEN 4510 : Y=Z5 4510 RETURN 4530 PRINT HEX(03);,"OPEN (NEW)" : GOSUB '200(" "," ",17,0,"ENTER THE NAME OF THE FILE TO BE CREATED.",2) : X$=Q6$ : GOSUB '248(6,24,0) : PRINT "FILE NAME = ";X$ 4580 GOSUB '200("1","128",3,0,"ENTER THE RECORD LENGTH.",1) : Y=Q9 : GOSUB '248(7,20,0) : PRINT "RECORD LENGTH =";Y : GOSUB '200("2","1924",4,0,"ENTER THE NUMBER OF SECTORS TO ALLOCATE.",1) : X1=Q9 4640 GOSUB '248(8,16,0) : PRINT "NUMBER OF SECTORS =";X1 : GOSUB '248(1,0,3) : GOSUB '187(X$,X1,Y) : RETURN 4700 PRINT HEX(03);,"DELETE A RECORD" : GOSUB '192 : RETURN 4740 PRINT HEX(03);,"DELETE A FILE" : GOSUB '193 : RETURN 4780 PRINT HEX(03);,"SET LABLE CODES" : GOSUB '200(" "," ",1,0,"ENTER BYPASS CODE (' ',B)",2) : X1$=Q6$ : GOSUB '248(6,27,0) : PRINT "BYPASS CODE = ";X1$ : GOSUB '200(" "," ",1,0,"ENTER PROTECT CODE (' ',P)",2) 4840 X2$=Q6$ : GOSUB '248(7,26,0) : PRINT "PROTECT CODE = ";X2$ : GOSUB '200(" "," ",1,0,"ENTER MULTI-VOLUME CODE (' ',C,L)",2) : X3$=Q6$ : GOSUB '248(8,21,0) : PRINT "MULTI-VOLUME CODE = ";X3$ : GOSUB '248(1,0,3) 4920 GOSUB '194(X1$,X2$,X3$) : IF Q$<>" "THEN 4950 : Z0=Z1 4950 RETURN 4980 DEFFN'31 : PRINT HEX(03);"SYSTEM NOW LOADING - 'START'" : LOAD DC T#1,"3741010A" 5020 DEFFN'200(Q$(1),Q$(2),Q3,Q4,Q6$,Q5) : Q6=Q9 : SELECT PRINT 005 : IF Q6$=" "THEN 5030 : PRINT HEX(010A);Q6$;TAB(80) 5030 INIT(20)Q5$,Q6$ : Q7=61 : IF Q3+Q4=0THEN 5040 : Q7=Q3+Q4+2*SGN(2-Q5) : INIT("-")STR(Q5$,1,Q7-SGN(2-Q5)) : BIN(STR(Q5$,Q3+SGN(2-Q5),1))=45+2*SGN(2-Q5) 5040 PRINT HEX(0D010A0A);TAB(80) : PRINT HEX(010A0A);"? ";Q5$ : PRINT HEX(010A0A0909); : Q8=0 : KEYIN Q7$,5050,5050 5050 KEYIN Q7$,5100,5060 : GOTO 5050 5060 IF Q7$=HEX(0F)THEN 5080 : IF Q7$<>HEX(1F)THEN 5050 : RETURN CLEAR : GOSUB '31 5080 RETURN CLEAR 5090 GOSUB '15 5100 IF Q7$=HEX(08)THEN 5110 : IF Q7$=HEX(E5)THEN 5030 : IF Q7$=HEX(0D)THEN 5120 : IF Q7$<HEX(20)THEN 5050 : IF Q7$>HEX(7F)THEN 5050 : Q8=Q8+1 : IF Q8>Q7THEN 5190 : STR(Q6$,Q8,1)=Q7$ : PRINT Q7$; : GOTO 5050 5110 SELECT PRINT 005 : Q8=Q8-SGN(Q8) : STR(Q6$,Q8+1)=" " : IF Q8=0THEN 5040 : PRINT HEX(08);STR(Q5$,Q8,1);HEX(08); : GOTO 5050 5120 Q8=Q8+1-SGN(Q8) : ON Q5GOTO 5130,5210 : IF Q6$=" "THEN 5150 5130 IF Q8<>NUM(STR(Q6$,1,Q8))THEN 5190 : CONVERT Q6$TO Q9 : IF Q3+Q4=0THEN 5210 : IF ABS(Q9)>=10^ABS(Q3)THEN 5190 : IF INT(Q9*10^Q4)<>Q9*10^Q4THEN 5190 : GOTO 5210 5140 CONVERT Q$(1)TO Q7 : CONVERT Q$(2)TO Q8 : IF Q7>Q9THEN 5160 : IF Q9>Q8THEN 5160 5150 PRINT HEX(0D0A);TAB(80) : RETURN 5160 PRINT HEX(0D010A0A0A07);"RE-ENTER",Q7;"<= ENTRY <=";Q8;TAB(80) 5170 Q9=Q6 : GOTO 5030 5180 IF Q$(1)>Q6$THEN 5190 : IF Q6$<=Q$(2)THEN 5150 5190 GOSUB 5200 : GOTO 5170 5200 DEFFN'255 : PRINT HEX(0D010A0A0A07);"RE-ENTER";TAB(80) : RETURN 5210 IF Q$(1)<>Q$(2)THEN 5220 : IF Q$(1)=" "THEN 5150 5220 ON Q5+1GOTO 5140,5140,5180 5230 DEFFN'242(W0,Q6$) : SELECT PRINT 005 : IF W0<=0THEN 5240 : INIT(Q6$)Q6$ : PRINT STR(Q6$,1,W0-INT((W0-1)/63)*63); : W0=W0-(W0-INT((W0-1)/63)*63) : GOTO 5230 5240 RETURN 5250 DEFFN'254 : SELECT PRINT 005 : PRINT HEX(010A0A);TAB(80);HEX(010A0A) : Q6$=" " 5260 KEYIN Q6$,5260,5260 : INPUT "KEY RETURN(EXEC) TO RESUME ",Q6$ : PRINT HEX(010A);TAB(80),TAB(80),TAB(80) : RETURN 5270 DEFFN'248(Q6,Q7,Q8) : SELECT PRINT 005 : IF Q8=0THEN 5290 : IF ABS(Q8)<>9E99THEN 5280 : PRINT HEX(03) : GOTO 5290 5280 GOSUB 5290 : SELECT PRINT 205 : PRINT TAB(72-8*SGN(Q8)-Q7) : IF ABS(Q8)<2THEN 5290 : FOR W0=2TO ABS(Q8) : PRINT HEX(0A);TAB(72-8*SGN(Q8)) : NEXT W0 5290 PRINT HEX(01) : GOSUB '242(Q7,HEX(09)) : GOSUB '242(Q6,HEX(0A)) : SELECT PRINT 005 : RETURN 5300 DEFFN'0" GOTO 3520";HEX(0D)