Listing of file='CIOVDSS' on disk='vmedia/731-0110A.wvd.zip'
# Sector 190, program filename = 'CIOVDSS' 0010 REM CIOVDSS, 10/05/81, OPEN DISK SAVE/SEARCH METHOD (VP/MVP), COPYRIGHT W ANG LABS, 1981 0100 GOTO 9900 : ON AGOTO 105,3220 0105 COM Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z9$(16),Z,Z$(60)4,Z3$3 3220 DATA SAVE DC #2,END : GOSUB '227(2,X$,0) : X2=X2+1 : IF X2>99THEN 100 : CONVERT X2TO STR(X$,7,2),(##) : GOSUB '228(2,X$,10) : GOSUB '80 : RETURN 4500 DEFFN'80 : PRINT D$(3) : B$(3)="1" : IF X2>99THEN 4620 : IF X0=0THEN 4590 : B$(3)="0" : PRINT "RECEIVE FILE ";X$;" OPENED" : RETURN 4590 PRINT "RECEIVE DISK FILE NOT OPENED" : RETURN 4620 PRINT "ENTER NEW FILE NAME FOR RECEIVE DISK" : RETURN 6000 DEFFN'83 : PRINT HEX(0D010A0A0A); : FOR A=1TO 4 : PRINT TAB(63) : NEXT A : PRINT HEX(0D010A);"'0=CONTROL '1=OPEN RECEIVE FILE '2=ERAS E FILE";HEX(0D); 6035 KEYIN B$,6035,6045 : GOTO 6035 6045 ON VAL(B$)+1GOTO 100,6190,6355 : GOTO 6035 6075 GOSUB 7200 6090 PRINT HEX(010A);TAB(63);HEX(0D);"'0=CONTROL";HEX(0D0A0A);TAB(64) : PRINT HEX(0C0D); : IF X0>0THEN 6075 : A=0 6095 Z$()="310 320 330 340 350 360 370 B10 B20 B30 B40 B50 B60 B70 D10 D11 D12 D13 D14 D15 D20 D21 D22 D23 D24 D25 D30 D31 D32 D33 D34 D35 D50 D51 D52 D53 D54 D55 D60 D61 D62 D63 D64 D65 D70 D71 D72 D73 D74 D75" 6120 GOSUB '200(Z3$,Z$()) : IF X4=0THEN 6130 : PRINT AT(5,0);TAB(63) : PRINT AT(5,0);"Reenter --"; : ON X4GOSUB 6160,6165,6170 : GOTO 6120 6130 PRINT D$(2);TAB(63) : PRINT TAB(63) : PRINT TAB(63) : RETURN 6150 X4=1 : RETURN 6160 PRINT "device address not in table" : RETURN 6165 PRINT "device already $OPEN'd" : RETURN 6170 PRINT "device is unavailable" : RETURN 6180 DEFFN'200(Z3$,Z$()) 6185 X4=0 : PRINT D$(2);TAB(63) : PRINT D$(2);"ENTER RECEIVE DISK ADDRESS"; : LINPUT ?-Z3$ : IF Z3$=" "THEN 6185 : MAT SEARCHZ$(),=STR(Z3$,1,3)TO X7$STEP 4 : IF VAL(X7$,2)=0THEN 6150 : SELECT #2<Z3$> : $OPEN 6188,#2 : $CLOSE#2 : Z$=" " : HEXPACKZ$FROMSTR(Z3$,2,1) : Z1$=" " : GOSUB '120(Z$,Z1$) : IF Z1$<>"unavailable"THEN RETURN : X4=3 : RETURN 6188 X4=2 : RETURN 6190 GOSUB 6090 : PRINT AT(5,0);TAB(63) : PRINT TAB(63) : W2=0 : GOSUB '128(2,10) : IF W2>0THEN 6190 : PRINT AT(2,0);X6;" Sectors available";" on disk ";Z3$ 6215 PRINT D$(2);TAB(63);HEX(0D) : INPUT "ENTER 1- TO 6-CHARACTER FILE NAME",X$ : PRINT HEX(0C0D);TAB(63);HEX(0D0A);TAB(63);HEX(0D); : IF X$=" "THEN 6240 : IF LEN(X$)<=6THEN 6250 6240 PRINT "REENTER";HEX(0D0C); : GOTO 6215 6250 PRINT "SEARCHING CATALOGUE"; : W2=0 : GOSUB '129(2,X$) : IF W2>0THEN 6190 : IF B$=HEX(00)THEN 6290 : PRINT HEX(0D);TAB(63);HEX(0D);"ROOT ";X$;" ALREADY CATALOGUED. ";HEX(0D0C ); : GOTO 6215 6290 X2=1 : CONVERT X2TO STR(X$,7,2),(##) : W2=0 : GOSUB '228(2,X$,10) : IF W2>0THEN 6190 : IF B$="1"THEN 6350 : X0=1 : GOTO 3160 6350 RETURN 6355 ON X0GOTO 6360 : X$=" " : GOSUB 6090 6360 PRINT HEX(010A);TAB(63);HEX(0D);"'0=CONTROL";HEX(0D0A0A); : PRINT HEX(0D);TAB(63);HEX(0D);"ERASE File ";X$; : IF X$<>" "THEN 6400 : LINPUT ?-X$ 6400 GOSUB 7200 : IF W2<>0THEN 6190 : RETURN 6500 DEFFN'229(Z9,STR(A$,1,8)) : DATA LOAD BA T#Z9,(0,Z3)Z9$() : ERRORW2=ERR : GOSUB 6970 : RETURN 6510 Z4=VAL(STR(Z9$(1),2,1)) : STR(A$,9,8)=STR(A$,1,8) : XOR (STR(A$,10,7),STR(A$,9,8)) : B$=STR(A$,16,1) : STR(A$,18,2)=HEX(0000) : ADDC(STR(A$,18,2),B$) : ADDC(STR(A$,18,2),B$) : ADDC(STR(A$,18,2),B$) : ADD(STR(A$,18,1),STR(A$,19,1)) : Z3=VAL(STR(A$,18,2)) : Z3=Z3-INT(Z3/Z4)*Z4 : Z5=Z3 6620 DATA LOAD BA T#Z9,(Z3,Z8)Z9$() : Z6=0 : FOR Z7=1TO 16 : IF Z3<>0THEN 6680 : IF Z7<>1THEN 6680 : Z7=2 6680 B$=STR(Z9$(Z7),1,1) : IF B$=HEX(00)THEN 6740 : IF B$=HEX(10)THEN 6720 : IF B$<>HEX(11)THEN 6750 6720 IF STR(Z9$(Z7),9,8)<>STR(A$,1,8)THEN 6750 : Z6=Z7 6740 Z7=16 6750 NEXT Z7 : IF B$=HEX(00)THEN 6840 : IF Z6<>0THEN 6840 : B$=HEX(00) : Z3=Z3-1 : IF Z3=Z5THEN 6840 : IF Z3>=0THEN 6620 : Z3=Z4-1 : GOTO 6620 6840 RETURN 6844 DEFFN'128(Z9,Z1) : DATA LOAD BA T#Z9,(0,Z3)Z9$() : ERRORW2=ERR : GOSUB 6970 : RETURN 6845 Z2=VAL(STR(Z9$(),3),2) : Z3=VAL(STR(Z9$(),5),2) : B$="0" : X6=Z3-Z2 : IF X6>Z1+2THEN 100 : B$="1" : RETURN 6850 DEFFN'228(Z9,X$,Z1) : W2=0 : GOSUB '128(Z9,Z1) : IF W2>0THEN 100 : IF B$="1"THEN 100 : IF X5=0THEN 6880 : IF X5>X6THEN 6880 : X6=X5 6880 DATA SAVE DC OPEN T#Z9,(X6),X$ : ERRORW2=ERR : GOSUB 6970 6881 RETURN 6910 DEFFN'227(Z9,X$,Z1) : LIMITS T#Z9,X$,Z2,Z3,Z0 : Z2,Z4=Z2+Z1+Z0-1 : DATA LOAD BA T#Z9,(Z3,Z3)Z9$() : DATA SAVE BA T#Z9,(Z4,Z3)Z9$() : GOSUB '229(Z9,X$) : Z4=Z2 : BIN(STR(Z9$(Z6),5,1))=INT(Z4/256) 6950 BIN(STR(Z9$(Z6),6,1))=Z4-INT(Z4/256)*256 : DATA SAVE BA T#Z9,(Z3,Z3)Z9$() : DATA LOAD BA T#Z9,(0,Z3)Z9$() : BIN(STR(Z9$(1),3,1))=INT((Z4+1)/256) : BIN(STR(Z9$(1),4,1))=Z4+1-INT((Z4+1)/256)*256 : DATA SAVE BA T#Z9,(0,Z3)Z9$() : RETURN 6970 PRINT D$(3);TAB(63) : IF W2=95THEN 6980 : IF W2<>98THEN 6990 : PRINT D$(3);"I98 (illegal sector address or platter not mounted)" : RETURN 6980 PRINT D$(3);"I95 (device error - in PROTECT?)" : RETURN 6990 PRINT D$(3);"Disk error = ";W2 : RETURN 7000 DEFFN'129(Z9,X$) : Z=0 : Z1,Z2=2 : DATA LOAD BA T#Z9,(Z,Z)Z9$() : ERRORW2=ERR : GOSUB 6970 : RETURN 7010 Z4=VAL(STR(Z9$(1),2,1)) 7060 IF Z9$(Z1)=HEX(00000000000000000000000000000000)THEN 7100 : IF STR(Z9$(Z1),9,6)=STR(X$,1,6)THEN 7160 7080 Z1=Z1+1 : IF Z1<17THEN 7060 7100 Z1=1 : IF Z=Z4THEN 7140 : DATA LOAD BA T#Z9,(Z,Z)Z9$() : GOTO 7060 7140 B$=HEX(00) : RETURN 7160 B$=STR(Z9$(Z1),1,1) : IF B$=HEX(21)THEN 7080 : RETURN 7200 PRINT HEX(0C0A0D);"SEARCHING FOR FILE ";X$;HEX(0D); : W2=0 : GOSUB '229(2,X$) : IF W2<>0THEN 100 : IF B$>HEX(00)THEN 7210 : PRINT TAB(63);HEX(0D);"FILE NOT CATALOGUED" : GOTO 7300 7210 PRINT TAB(63);HEX(0D);"ERASING FILE ";X$ : LIMITS T#Z9,X$,A,B,A : STR(Z9$(Z6),1,1)=HEX(21) : INIT(00)STR(Z9$(Z6),9,8) : DATA SAVE BA T#Z9,(Z3,Z8)Z9$() : STR(A$,18,2)=STR(Z9$(Z6),3,2) : DATA LOAD BA T#Z9,(0,Z8)Z9$() : IF VAL(STR(Z9$(),3),2)<>B+1THEN 7290 : STR(Z9$(1),3,2)=STR(A$,18,2) : DATA SAVE BA T#Z9,(0,Z8)Z9$() 7290 PRINT TAB(63);HEX(0D);"FILE ";X$;" ERASED" 7300 X0=0 : X$=" " : RETURN 7310 DEFFN'120(Z$,Z1$) : $GIO(731002000301122270A040008600,Z$) : ERRORW2=ERR : Z1$="unavailable" : RETURN 7320 IF STR(Z$,8,1)=HEX(00)THEN RETURN : Z1$="unavailable" : RETURN