image of READY prompt

Wang2200.org

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$"