Listing of file='TESTREL1' on disk='vmedia/731-8012A.wvd.zip'
# Sector 965, program filename = 'TESTREL1' 0010 REM TESTREL1 24 OCT. 1990 0011 REM % (c) Copyright Wang Laboratories, Inc. 1986 0020 REM PROGRAM NAME - TEST RELATIVE FILE FUNCTIONALITY 0030 REM DATE OF FIRST CODE - 25 JUNE 1986 0040 REM DATEOF LATEST UPDATE - 10 SEPT 86 0050 REM RAM/INCLUDED TEST OPEN MODES/24 OCT., '90 0060 REM 0070 REM 0080 REM 0090 REM 0100 REM % DEBUG FLAG 0110 DIM N$32,T$1,M$1,A$40,A1$8,D$1,N1$32,Z$62 0120 REM DEBUG FLAG : D$="Y" 0130 REM % VARIABLE DIMENSION STATEMENTS 0140 DIM V$32,V1$1,V2$1,V3$1,V4$2,V5$2,V6$6 0150 DIM V7$32,V8$,V8$(50),V9$2,V9$(16,16) 0160 REM % TEST PARAMETERS 0170 REM TEST FILE NAME : N$,N1$="///FRANK/OMTLIB/TESTREL1" 0180 REM TEST FILE SIZE : A = 100 0190 REM TEST RECORD SIZE : A1 = 352 : A2=A1-18 : A3=A1-3 0210 REM TEST RECORD VARIABLE : DIM S$(22),S1$(22) : STR(S$(),A2,16),STR(S1$(),A2,16)="THIS IS RECORD ####" 0220 REM % GET CONTROLLER ADDRESS 0230 PRINT HEX(03);TAB(26);"TEST RELATIVE FILE FUNCTIONALITY" 0240 DIM T$1,T1$1,A0$3 : A0$="07C" 0250 PRINT AT(3,0,240);"Enter the Communication Address of the desired 2258 Co ntroller" 0260 LINPUT -A0$ 0270 IF VER(A0$,"HHH")<>3THEN 250 : HEXPACKT$FROMSTR(A0$,2,2) : T1$=T$ 0280 T$=T1$ : T$=OR HEX(03) : HEXUNPACKT$TO STR(A0$,2,2) : SELECT #3<A0$> 0290 REM % CREATE RELATIVE FILE 0300 PRINT AT(3,0,240);"CREATE A RELATIVE FILE OF";A;"RECORDS." 0310 T$="R" 0320 M$="E" 0330 O$="O" 0340 A$="RFAN" 0345 REM NUMBER OF RECORDS 0350 STR(A$,5,2)=HEX(0000) : STR(A$,7,2)=BIN(A,2) 0355 REM RECORD SIZE 0360 STR(A$,9,2)=HEX(0000) : STR(A$,11,2)=BIN(A1,2) 0365 REM BLOCK ALLOCATION 0370 STR(A$,13,4)=HEX(00000000) 0375 REM BLOCK SIZE 0380 STR(A$,17,4)=HEX(00000000) 0385 REM RETENTION PERIOD 0390 STR(A$,21,6)=ALL(" ") 0395 REM WP PROLOQUE 0400 STR(A$,27,1)=" " 0405 REM PRIMARY KEY POSITION, KEY LENGTH, # ALTERNATE KEYS 0410 STR(A$,28,2),STR(A$,30,2),STR(A$,32,2)=HEX(0000) 0415 REM TAKE CREATE AREA Y/N 0420 STR(A$,34,1)=" " 0425 REM PRINT FORM #, PRINT CLASS, DEVICE #, # COPIES, HOLD RELEASE, DISPOS 0430 STR(A$,35,6)=ALL(HEX(00)) 0440 REM ALTERNATE KEY PARAMETERS 0450 A1$=ALL(" ") 0460 GOSUB '200(N$,T$,M$,O$,A$,A1$) 0470 IF V0$<>HEX(FF)THEN STOP "ERROR IN CREATE" 0480 IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN SMB HEADER" 0490 REM % WRITE RECORDS TO NEW FILE 0500 PRINT "WRITE RECORDS TO RELATIVE FILE" 0510 FOR I=1TO A : IF D$="Y" THEN PRINT "WRITING RECORD:";I 0520 CONVERT I TO STR(S$(),A3,4), (####) 0530 GOSUB '118(V9$,V7$,1,S$()) : IF V0$<>HEX(FF)THEN STOP "ERROR IN RELATIVE WRITE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN RELATIVE WRITE SMB HEADER" 0540 NEXT I 0550 REM % CLOSE FILE AFTER FILE CREATED : PRINT "CLOSING NEW FILE" 0560 PRINT "CLOSE FILE" 0570 GOSUB '102(V9$,V7$) : IF V0$<>HEX(FF)THEN STOP "ERROR IN CLOSE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN CLOSE SMB HEADER" 0580 REM % RE-OPEN FILE FOR READ & REWRITE TEST 0590 PRINT "RE-OPEN FILE FOR READ & REWRITE" 0600 GOSUB '101(N$,T$,"X") : IF V0$<>HEX(FF)THEN STOP "ERROR IN OPEN" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN OPEN SMB" 0610 REM % READ ORIGINAL DATA : PRINT "READ AND REWRITE RECORDS" 0620 FOR I=1TO A : IF D$="Y" THEN PRINT "READ RECORD:";I 0630 GOSUB '117(V9$,V7$,"H",I,0) : IF V0$<>HEX(FF)THEN STOP "ERROR IN READ" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN READ SMB" 0640 REM VERIFY DATA : CONVERT I TO STR(S1$(),A3,4), (####) : S$()=STR(V9$(),9,VAL(STR(V9$(),7,2),2)) : IF S$()<>S1$() THEN STOP "ERROR ON READ - INVALID DATA" 0650 REM % REWRITE DATA BUMPING RECORD # BY 500 0655 IF D$="Y" THEN PRINT "RE-WRITE RECORD:";I 0660 CONVERT 500+I TO STR(S$(),A3,4), (####) 0670 GOSUB '119(V9$,V7$,I,A1,S$()) : IF V0$<>HEX(FF)THEN STOP "ERROR IN RELATIVE RE-WRITE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN RELATIVE RE-WRITE SMB HEADER" 0680 NEXT I 0690 REM % CLOSE FILE AFTER READ REWRITE TEST 0700 PRINT "CLOSE FILE" 0710 GOSUB '102(V9$,V7$) : IF V0$<>HEX(FF)THEN STOP "ERROR IN CLOSE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN CLOSE SMB HEADER" 0720 REM % REOPEN FILE TO VERIFY REWRITE OPERATION 0730 PRINT "RE-OPEN FILE TO VERIFY REWRITE" 0740 GOSUB '101(N$,T$,"X") : IF V0$<>HEX(FF)THEN STOP "ERROR IN OPEN" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN OPEN SMB" 0750 REM % READ DATA WRITTEN BY REWRITE : PRINT "VERIFY REWRITE DATA" 0760 FOR I=1TO A : IF D$="Y" THEN PRINT "READ RECORD:";I 0770 GOSUB '117(V9$,V7$,"H",I,1) : IF V0$<>HEX(FF)THEN STOP "ERROR IN READ" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN READ SMB" 0780 CONVERT 500+I TO STR(S1$(),A3,4),(####) : S$()=STR(V9$(),9,VAL(STR(V9$(),7,2),2)) : IF S$()<>S1$() THEN STOP "ERROR ON READ - INVALID DATA" 0790 REM REWRITE DATA 0800 CONVERT I TO STR(S$(),A3,4), (####) 0810 GOSUB '119(V9$,V7$,I,A1,S$()) : IF V0$<>HEX(FF)THEN STOP "ERROR IN RELATIVE RE-WRITE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN RELATIVE RE-WRITE SMB HEADER" 0820 NEXT I 0830 REM % CLOSE FILE AFTER VERIFING REWRITE OPERATION : PRINT "CLOSE FILE" 0840 GOSUB '102(V9$,V7$) : IF V0$<>HEX(FF)THEN STOP "ERROR IN CLOSE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN CLOSE SMB HEADER" 0850 REM % RANDOM READ RELATIVE TEST 0860 PRINT "RE-OPEN FILE FOR RANDOM READ RELATIVE TEST" 0870 GOSUB '101(N$,T$,"R") : IF V0$<>HEX(FF)THEN STOP "ERROR IN OPEN" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN OPEN SMB" 0880 REM % READ A RECORDS RANDOMLY 0890 FOR I = 1 TO A : J=INT(A*RND(1))+1 : IF D$="Y" THEN PRINT "READ RECORD NO:";J 0900 GOSUB '117(V9$,V7$,"H",J,1) : IF V0$<>HEX(FF)THEN STOP "ERROR IN READ" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN READ SMB" 0910 REM VERIFY DATA : CONVERT J TO STR(S1$(),A3,4), (####) : S$()=STR(V9$(),9,VAL(STR(V9$(),7,2),2)) : IF S$()<>S1$() THEN STOP "ERROR ON READ - INVALID DATA" 0920 NEXT I 0930 REM % CLOSE FILE : PRINT "CLOSE FILE FOR READ RELATIVE TEST" 0940 GOSUB '102(V9$,V7$) : IF V0$<>HEX(FF)THEN STOP "ERROR IN CLOSE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN CLOSE SMB HEADER" 0950 REM % REOPEN FILE FOR DELETE TEST 0960 GOSUB '101(N$,T$,"X") : IF V0$<>HEX(FF)THEN STOP "ERROR IN OPEN" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN OPEN SMB" 0970 REM % DELETE ALL EVEN RECORDS 0980 FOR I=2TO A STEP 2 : IF D$="Y" THEN PRINT "DELETE RECORD:";I 0990 GOSUB '120(V9$,V7$,I) : IF V0$<>HEX(FF)THEN STOP "ERROR IN DELETE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN DELETE SMB" 1000 NEXT I 1010 REM % READ ALL RECORDS AND VERIFY DELETED RECORD 1020 PRINT "READ AND VERIFY DELETED RECORDS" 1030 REM READ ALL RECORDS SHOULD GET ERROR ON EVEN : FOR I = 1 TO A : PRINT "READ RECORD:";I 1040 GOSUB '117(V9$,V7$,"H",I,1) : REM CHECK FOR EOF : IF STR(V7$,8,2)=HEX(0019) THEN 1100 : IF I/2=INT(I/2) THEN 1080 1050 REM % ODD RECORD : IF V0$<>HEX(FF)THEN STOP "ERROR IN READ" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN READ SMB" 1060 CONVERT I TO STR(S1$(),A3,4),(####) : S$()=STR(V9$(),9,VAL(STR(V9$(),7,2),2)) : IF S$()<>S1$() THEN STOP "ERROR ON READ - INVALID DATA" 1070 GOTO 1090 1080 REM EVEN RECORD NOT FOUND? : IF STR(V7$,6,1)=HEX(00) OR STR(V7$,8,2)<>HEX(0017) THEN STOP "UNEXPECTED ERROR ON READ OF EVEN RECORD" 1090 NEXT I 1100 PRINT "CLOSE FILE" 1110 GOSUB '102(V9$,V7$) : IF V0$<>HEX(FF)THEN STOP "ERROR IN CLOSE" : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN CLOSE SMB HEADER" 1120 REM % TEST OPEN MODES : PRINT "TEST OPEN MODES - READONLY" : DIM F$(2)2,F1$(2)32 : T$="R" : GOSUB '101(N$,T$,"R") : IF V0$<>HEX(FF) THEN STOP "ERROR IN OPEN - READONLY"# : IF STR(V7$,6,1)<>HEX(00) THEN STOP "SMB ERROR IN OPEN - READONLY"# 1130 REM WRITE SHOULD FAIL : F$(1)=V9$ : F1$(1)=V7$ : S$()="THIS WRITE SHOULD FAIL" : GOSUB '118(V9$,V7$,1,S$()) : IF STR(V7$,8,2)<>HEX(002B) THEN STOP "OPEN READONLY - WRITE SUCCEEDS!"# 1140 REM READ AND REWRITE. REWRITE SHOULD FAIL : GOSUB '117(V9$,V7$,"H",1,1) : IF V0$<>HEX(FF) THEN STOP "OPEN READONLY - READ FAILS"# : IF STR(V7$,6,1)<>HEX(00) THEN STOP "SMB ERROR IN READ -READONLY"# 1150 GOSUB '119(V9$,V7$,1,A1,V9$()) : IF STR(V7$,8,2)<>HEX(0024) THEN STOP "OPEN READONLY - REWRITE SUCCEEDS!"# 1160 REM OPEN IN SHARED SHOULD FAIL : GOSUB '101(N$,T$,"S") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN SHARED MODE - READONLY! "# 1170 REM OPEN IN EXCLUSIVE SHOULD FAIL : GOSUB '101(N$,T$,"X") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN EXCLUSIVE MODE - READON LY!"# 1180 REM OPEN IN EXTENDED SHOULD FAIL : GOSUB '101(N$,T$,"E") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN EXTENDED MODE - READONL Y!"# 1190 REM CLOSE THE FILE : GOSUB '102(F$(1),F1$(1)) : IF V0$<>HEX(FF) THEN STOP "ERROR IN CLOSE - READONLY"# 1200 REM % TEST OPEN MODES - SHARED SHOULD FAIL : PRINT "TEST OPEN MODES - SHARED" : GOSUB '101(N$,T$,"S") : IF STR(V7$,8,2)<>HEX(000B) THEN STOP "CAN OPEN IN RELATIVE FILE IN SHARED MODE!"# 1210 REM % TEST OPEN MODES : PRINT "TEST OPEN MODES - EXCLUSIVE" : GOSUB '101(N$,T$,"X") : IF V0$<>HEX(FF) THEN STOP "ERROR IN OPEN - EXCLUSIVE"# : IF STR(V7$,6,1)<>HEX(00) THEN STOP "SMB ERROR IN OPEN - EXCLUSIVE"# 1220 REM OPEN IN SHARED SHOULD FAIL : F$(1)=V9$ : F1$(1)=V7$ : GOSUB '101(N$,T$,"S") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN SHARED MODE - EXCLUSIVE "# 1230 REM OPEN IN EXTENDED SHOULD FAIL : GOSUB '101(N$,T$,"E") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN EXTENDED MODE - EXCLUSI VE"# 1240 REM OPEN IN READONLY SHOULD FAIL : GOSUB '101(N$,T$,"R") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN READONLY MODE - EXCLUSI VE"# 1250 REM CLOSE THE FILE : GOSUB '102(F$(1),F1$(1)) : IF V0$<>HEX(FF) THEN STOP "ERROR IN CLOSE - EXCLUSIVE"# : IF STR(V7$,6,1)<>HEX(00) THEN STOP "SMB ERROR IN CLOSE - EXCLUSIVE"# 1260 REM % TEST OPEN MODES : PRINT "TEST OPEN MODES - EXTENDED" : GOSUB '101(N$,T$,"E") : IF V0$<>HEX(FF) THEN STOP "ERROR IN OPEN - EXTENDED"# : IF STR(V7$,6,1)<>HEX(00) THEN STOP "SMB ERROR IN OPEN - EXTENDED"# 1270 REM OPEN IN SHARED SHOULD FAIL : F$(1)=V9$ : F1$(1)=V7$ : GOSUB '101(N$,T$,"S") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN SHARED MODE - EXTENDED" # 1280 REM OPEN IN EXCLUSIVE SHOULD FAIL : GOSUB '101(N$,T$,"X") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN EXCLUSIVE MODE - EXTEND ED"# 1290 REM OPEN IN READONLY SHOULD FAIL : GOSUB '101(N$,T$,"R") : IF STR(V7$,8,2)<>HEX(0015) THEN STOP "CAN OPEN IN READONLY MODE - EXTENDE D"# 1300 REM CLOSE THE FILE : GOSUB '102(F$(1),F1$(1)) : IF V0$<>HEX(FF) THEN STOP "ERROR IN CLOSE - EXTENDED"# : IF STR(V7$,6,1)<>HEX(00) THEN STOP "SMB ERROR IN CLOSE - EXTENDED"# 1350 REM % TEST FILE RENAME : STR(N1$,24,1)="9" : PRINT "RENAME FILE FROM ";N$;" TO ";N1$ : GOSUB '202 (N$,N1$) : IF V0$<>HEX(FF)THEN STOP "ERROR IN RENAME"# : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN RENAME SMB HEADER"# 1360 REM % TEST GET FILE ATTRIBUTES ON RENAMED FILE : PRINT "TEST GET FILE ATTRIBUTES OF RENAMED FILE" 1370 GOSUB '203(N1$) : IF V0$<>HEX(FF)THEN STOP "ERROR IN GET ATTRIBUTES"# : IF STR(V7$,6,1)<>HEX(00)THEN STOP "ERROR IN GET ATTRIBUTES SMB HEADER"# 1380 Z$=STR(V9$(),7,40) 1390 IF STR(Z$,1,4)<>"RFNA" THEN 1420 : IF STR(Z$,5,2)<>HEX(0000) THEN 1420 : IF VAL(STR(Z$,7,2),2)<>INT(A/2) THEN 1420 1400 IF STR(Z$,9,2)<>HEX(0000) THEN 1420 : IF VAL(STR(Z$,11,2),2)<>A1 THEN 1420 1410 GOTO 1430 1420 STOP "ERROR IN GET FILE ATTRIBUTE DATA"# 1430 REM % DELETE FILE : PRINT "DELETE FILE - ";N1$ 1440 GOSUB '201 (N1$) : IF V0$<>HEX(FF) THEN STOP "ERROR IN DELETE" 1450 IF STR(V7$,6,1)<>HEX(00) THEN STOP "ERROR IN DELETE SMB HEADER" 1460 END 2248 DEFFN'101(V$,V1$,V2$) 2252 V7$=ALL(HEX(00)) : STR(V7$,,5)=HEX(FF)&"SMB"&HEX(FF) : STR(V7$,7,1)=HEX(01) : STR(V7$,23,2)=HEX(FFFF) 2254 V8$()=ALL(" ") : STR(V8$(),1,3)=HEX(030202) 2256 IF STR(V$,1,2)<>"//"THEN 2278 2258 V1=POS(" IRCBS"=V1$) : IF V1<11OR V1>15THEN 2278 : V2=2^V1 : STR(V8$(),4,2)=BIN(V2,2) 2260 V1=POS(" SXER"=V2$) : IF V1<12OR V1>15THEN 2278 : V2=2^V1 : STR(V8$(),6,2)=BIN(V2,2) 2262 STR(V8$(),8,2)=BIN(8+LEN(V$),2) 2264 STR(V8$(),10,1)=HEX(04) : STR(V8$(),11,LEN(V$)+1)=V$&HEX(00) 2266 V1=12+LEN(V$) : STR(V8$(),V1,7)=HEX(04)&"FILE"&HEX(0000) 2268 GOSUB '199 : IF V0$=HEX(5A)THEN 2278 2270 V7$=STR(V9$(),,32) : IF STR(V7$,6,1)<>HEX(00)THEN 2278 2272 V9$=STR(V9$(),34,2) 2274 V1=VAL(STR(V8$,3,2),2)-35 : STR(V9$(),,V1)=STR(V9$(),36,V1) : STR(V9$(),V1+1)=ALL(" ") 2276 V0$=HEX(FF) : RETURN 2278 V0$=HEX(00) : RETURN 2306 DEFFN'199 2308 STR(V8$,7,1)=HEX(53) 2310 STR(V8$,6,1)=BIN(#PART-1)AND HEX(0F)OR HEX(50) 2314 $OPEN #3 : $GIO#3(466042708701,V8$) : IF STR(V8$,1,1)<>HEX(80)THEN 2336 2318 V1=LEN(V8$())+34 : STR(V8$,6,2)=BIN(V1,2) : $GIO#3(40E3426042701800A0001801A00040008701,V8$)V7$;STR(V8$(),,V1) 2320 IF STR(V8$,1,1)<>HEX(80)THEN 2336 2322 V9$()=ALL(" ") : $GIO#3(870387041801C340,V8$)V8$;STR(V9$(),1,VAL(STR(V8$,3,2),2)) 2324 $GIO#3(4000,V8$) 2328 V0$=HEX(FF) 2332 $CLOSE#3 : RETURN 2336 V0$=HEX(5A) : GOTO 2332 2384 DEFFN'102(V9$,V7$) 2388 STR(V7$,6,4)=HEX(00020000) 2390 V8$()=ALL(" ") : STR(V8$(),1,5)=HEX(02)&V9$&HEX(0000) 2392 STR(V8$(),6,6)=HEX(000301000000) 2394 GOSUB '199 : IF V0$<>HEX(FF)THEN 2402 2396 V7$=STR(V9$(),,32) : IF STR(V7$,6,1)<>HEX(00)THEN 2404 2398 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 2400 V0$=HEX(FF) 2402 RETURN 2404 V0$=HEX(00) : RETURN 3188 DEFFN'200(V$,V1$,V2$,V3$,STR(V9$(),1,40),STR(V9$(),41)) 3192 V7$=ALL(HEX(00)) : STR(V7$,,5)=HEX(FF)&"SMB"&HEX(FF) : STR(V7$,7,1)=HEX(23) : STR(V7$,23,2)=HEX(FFFF) 3194 V8$()=ALL(" ") : STR(V8$(),1,3)=HEX(040000) 3196 IF STR(V$,1,2)<>"//"THEN 3230 3198 IF V3$<>"T"AND V3$<>"C"AND V3$<>"O"THEN 3230 : IF V3$="C"THEN STR(V8$(),4,2)=HEX(0000) : IF V3$="O"THEN STR(V8$(),4,2)=HEX(0001) : IF V3$="T"THEN STR(V8$(),4,2)=HEX(0002) 3200 V1=POS(" IRCBS"=V1$) : IF V1<11OR V1>15THEN 3230 : V2=2^V1 : STR(V8$(),6,2)=BIN(V2,2) 3202 V1=POS(" SXER"=V2$) : IF V1<12OR V1>15THEN 3230 : V2=2^V1 : STR(V8$(),8,2)=BIN(V2,2) 3204 V1=LEN(V$) : V2=(V1+2)+6+43 : V3=VAL(STR(V9$(),32,2),2)*8 : IF V1$="I"THEN V2=V2+V3+3 : STR(V8$(),10,2)=BIN(V2,2) 3206 STR(V8$(),12,1)=HEX(04) : STR(V8$(),13,LEN(V$)+1)=V$&HEX(00) 3208 V1=14+LEN(V$) : STR(V8$(),V1,6)=HEX(04)&"FILE"&HEX(00) 3210 V1=V1+6 : STR(V8$(),V1,43)=HEX(01)&BIN(40,2)&STR(V9$(),1,40) : V1=V1+43 : IF V1$<>"I"THEN 3214 3212 STR(V8$(),V1,V3+3)=HEX(01)&BIN(V3,2)&STR(V9$(),41,V3) : V1=V1+V3+3 3214 STR(V8$(),V1,1)=HEX(00) 3216 GOSUB '199 : IF V0$<>HEX(FF)THEN 3230 3218 V7$=STR(V9$(),,32) : IF STR(V7$,6,1)<>HEX(00)THEN 3228 3220 IF V3$="O"THEN V9$=STR(V9$(),34,2) 3222 IF V3$="O"THEN V2=35 : ELSE V2=33 3224 V1=VAL(STR(V8$,3,2),2)-V2 : STR(V9$(),,V1)=STR(V9$(),V2+1,V1) : STR(V9$(),V1+1)=ALL(" ") 3226 V0$=HEX(FF) : RETURN 3228 V0$=HEX(A5) : RETURN 3230 V0$=HEX(00) : RETURN 3292 DEFFN'201(V$) 3296 V7$=ALL(HEX(00)) : STR(V7$,,5)=HEX(FF)&"SMB"&HEX(FF) : STR(V7$,7,1)=HEX(17) : STR(V7$,23,2)=HEX(FFFF) 3298 IF STR(V$,1,2)<>"//"THEN 3316 3300 STR(V8$(),1,3)=HEX(010000) 3302 V1=LEN(V$) : STR(V8$(),4,2)=BIN(2+V1,2) 3304 STR(V8$(),6,V1+2)=HEX(04)&V$&HEX(00) 3306 V1=V1+8 : STR(V8$(),V1,1)=HEX(00) 3308 GOSUB '199 : IF V0$<>HEX(FF)THEN 3318 3310 V7$=STR(V9$(),,32) : IF STR(V7$,6,1)<>HEX(00)THEN 3316 3312 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 3314 V0$=HEX(FF) : RETURN 3316 V0$=HEX(00) 3318 RETURN 3384 DEFFN'202(V$,V9$()) 3388 V7$=ALL(HEX(00)) : STR(V7$,,5)=HEX(FF)&"SMB"&HEX(FF) : STR(V7$,7,1)=HEX(2A) : STR(V7$,23,2)=HEX(FFFF) 3390 STR(V8$(),1,3)=HEX(010000) 3392 IF STR(V$,1,2)<>"//"OR STR(V9$(),1,2)<>"//"THEN 3410 3394 V1=LEN(V$) : V2=LEN(V9$()) : STR(V8$(),4,2)=BIN(4+V1+V2,2) 3396 STR(V8$(),6,2+V1)=HEX(04)&V$&HEX(00) 3398 STR(V8$(),8+V1,V2+2)=HEX(04)&STR(V9$(),1,V2)&HEX(00) 3400 V1=10+V1+V2 : STR(V8$(),V1,1)=HEX(00) 3402 GOSUB '199 : IF V0$<>HEX(FF)THEN 3412 3404 V7$=STR(V9$(),,32) : IF STR(V7$,6,1)<>HEX(00)THEN 3410 3406 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 3408 V0$=HEX(FF) : RETURN 3410 V0$=HEX(00) 3412 RETURN 3528 DEFFN'203(V$) 3532 V7$=ALL(HEX(00)) : STR(V7$,,5)=HEX(FF)&"SMB"&HEX(FF) : STR(V7$,7,1)=HEX(1A) : STR(V7$,23,2)=HEX(FFFF) 3534 V8$()=ALL(" ") : STR(V8$(),1,5)=HEX(0200000000) 3536 IF STR(V$,1,2)<>"//"THEN 3552 3538 V1=LEN(V$) : V2=(V1+2)+6 : STR(V8$(),6,2)=BIN(V2,2) 3540 STR(V8$(),8,V1+2)=HEX(04)&V$&HEX(00) 3542 V1=V1+10 : STR(V8$(),V1,7)=HEX(04)&"FILE"&HEX(0000) 3544 GOSUB '199 : IF V0$<>HEX(FF)THEN 3554 3546 V7$=STR(V9$(),,32) : IF STR(V7$,6,1)<>HEX(00)THEN 3552 3548 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 3550 V0$=HEX(FF) : RETURN 3552 V0$=HEX(A5) : RETURN 3554 V0$=HEX(00) : RETURN 6082 DEFFN'117(V9$,V7$,V3$,V0,V7) 6084 STR(V7$,6,4)=HEX(00060000) 6086 STR(V8$())=HEX(06)&V9$ 6088 IF V3$<>" "THEN 6090 : STR(V8$(),4,2),STR(V8$(),10,2)=HEX(0000) : GOTO 6092 6090 STR(V8$(),4,2)="HH" : STR(V8$(),10,2)=HEX(0000) 6092 IF V0>=(2^32)THEN 6110 : V1=INT(V0/(2^16)) : STR(V8$(),6,2)=BIN(V1,2) : STR(V8$(),8,2)=BIN(V0-(V1*2^16),2) 6094 STR(V8$(),12,2)=BIN(V7,2) 6096 STR(V8$(),14,3)=HEX(000000) 6098 GOSUB '199 : IF V0$<>HEX(FF)THEN 6106 6100 V7$=STR(V9$(),1,32) : IF STR(V7$,6,1)<>HEX(00)THEN 6108 6102 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),1,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 6104 V0$=HEX(FF) 6106 RETURN 6108 V0$=HEX(A5) : RETURN 6110 V0$=HEX(00) : RETURN 6172 DEFFN'118(V9$,V7$,V7,V9$()) 6174 STR(V7$,6,4)=HEX(000F0000) 6176 STR(V8$())=HEX(02)&V9$ 6178 STR(V8$(),4,2)=BIN(V7,2) 6182 V1=LEN(V9$()) : STR(V8$(),6,V1+8)=BIN(V1+3,2)&HEX(01)&BIN(V1,2)&STR(V9$(),1,V1)&HEX(00) 6184 GOSUB '199 : IF V0$<>HEX(FF)THEN 6192 6186 V7$=STR(V9$(),1,32) : IF STR(V7$,6,1)<>HEX(00)THEN 6194 6188 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),1,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 6190 V0$=HEX(FF) 6192 RETURN 6194 V0$=HEX(00) 6256 DEFFN'119(V9$,V7$,V0,V1,V9$()) 6258 STR(V7$,6,4)=HEX(00140000) 6260 STR(V8$())=HEX(03)&V9$ 6264 IF V0>=(2^32)THEN 6278 : V2=INT(V0/(2^16)) : STR(V8$(),4,2)=BIN(V2,2) : STR(V8$(),6,2)=BIN(V0-(V2*2^16),2) 6266 STR(V8$(),8,V1+6)=BIN(V1+3,2)&HEX(01)&BIN(V1,2)&STR(V9$(),1,V1)&HEX(00) 6268 GOSUB '199 : IF V0$<>HEX(FF)THEN 6276 6270 V7$=STR(V9$(),1,32) : IF STR(V7$,6,1)<>HEX(00)THEN 6278 6272 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),1,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 6274 V0$=HEX(FF) 6276 RETURN 6278 V0$=HEX(00) : RETURN 6330 DEFFN'120(V9$,V7$,V0) 6332 STR(V7$,6,4)=HEX(00180000) 6334 STR(V8$())=HEX(03)&V9$ 6338 IF V0>=(2^32)THEN 6352 : V1=INT(V0/(2^16)) : STR(V8$(),4,2)=BIN(V1,2) : STR(V8$(),6,2)=BIN(V0-(V1*2^16),2) 6340 STR(V8$(),8,3)=HEX(000000) 6342 GOSUB '199 : IF V0$<>HEX(FF)THEN 6350 6344 V7$=STR(V9$(),1,32) : IF STR(V7$,6,1)<>HEX(00)THEN 6352 6346 V1=VAL(STR(V8$,3,2),2)-32 : STR(V9$(),1,V1)=STR(V9$(),33,V1) : STR(V9$(),V1+1)=ALL(" ") 6348 V0$=HEX(FF) 6350 RETURN 6352 V0$=HEX(5A) : RETURN 9990 DEFFN'31"N$=";HEX(22);"TESTREL1";HEX(22);": SCRATCH T N$: SAVE T () N$"