image of READY prompt

Wang2200.org

Listing of file='VCREATE' on disk='vmedia/731-8011A.wvd.zip'

# Sector 636, program filename = 'VCREATE'
0004 REM % (c) Copyright Wang Laboratories, Inc. 1986
0005 REM %"VCREATE" ** N. Odoi ** Rev. 1.00 * 12/10/86
0010 REM %Scrn
   : DIM T1$(416)1,R1,S0,T1(8),S4$80,T1$1
0020 REM %VDISKMAP
   : DIM F1$(50)12,F6$40,A9$3
0030 REM %E3$()=vol,E4$()=libe;E5$()=file;E6$(),E6=size;E8$()=errs;E1$=other c
     onfig file;E1=last VDISK
   : DIM E3$(33)8, E4$(33)8, E5$(33)8, E6$(33)5,E6,E8$(32)21,E1,E5$30
0040 REM %D1$(1)=cntlr add;D3$()=vol name,D4$()=libe name;D5$()=file name;D6$(
     )=platter size;D8$()=err msgs
   : DIM D1$(4)8,D3$(8)8, D4$(8)8, D5$(8)8, D6$(8)5,D8$(8)21
0050 REM % C=EXIT,P$=Search var, P9=Screen #,P9$='100 options,P8$=1st field,E9
     $=Err msg,E9=print line
   : DIM C,P$16,P9,P9$,P8$1,E9$80,E,V,E5,I,J,D
0080 REM $GIO regs,DMS
   : DIM A$16,V$32,V1$1,V2$1,V3$1,V4$2,V7$32,V8$,V8$(20),V9$2,V9$(16,10)
0100 REM % Start
   : GOTO 2000
0130 REM % ** DEFFN'45 - DMS\A0STATUS -V<0=err,response=F6$,len=V1
0132 DEFFN'45
   : V=1
   : REM construct command
   : F6$=ALL(00)
   : STR(A$,7,1)=HEX(52)
   : STR(A$,6,1) = BIN(#PART-1) AND HEX(0F) OR HEX(50)
   : $OPEN 138,#2,#3
   : ERRORV=-1
   : GOTO 139
0133 $GIO#2(4500)
   : ERRORV=-1
   : GOTO 139
0134 $BREAK
   : FOR D=1 TO 1200
   : $IF ON #2,135
   : NEXT D
   : V=-10
   : GOTO 139
0135 $IF ON #3,137
   : ERRORV=-1
   : GOTO 139
0136 $GIO#3(4550 405F)
   : $BREAK
   : FOR D=1 TO 1200
   : $IF ON #3,137
   : NEXT D
   : V=-10
   : GOTO 139
0137 $GIO #3 (4660 4270 8703 8704 1801 C340, A$)A$;STR(F6$,1,VAL(STR(A$,3,2),2
     ))
   : V1=VAL(STR(A$,3,2),2)
   : GOTO 139
0138 V=-20
0139 $CLOSE#2,#3
   : RETURN
0140 REM %** DEFFN'48 - SET\A0DEVICE\A0TABLE(comm addr) V<0=err
0142 DEFFN'48(A9$)
   : V=1
   : IF STR(A9$,1,1)<>"0" OR STR(A9$,2,1)="0" THEN 146
   : HEXPACK T1$ FROM STR(A9$,2,2)
   : IF MOD(VAL(T1$),4)>0 THEN 146
0143 REM /status addr
   : T1$=ADD HEX(01)
   : HEXUNPACK T1$ TO STR(A9$,2,2)
   : SELECT #1 <A9$>
   : ERRORGOTO 146
0144 REM /command addr
   : T1$=ADD HEX(01)
   : HEXUNPACK T1$ TO STR(A9$,2,2)
   : SELECT #2 <A9$>
   : ERRORGOTO 146
0145 REM /data addr
   : T1$ =ADD HEX(01)
   : HEXUNPACK T1$ TO STR(A9$,2,2)
   : SELECT #3 <A9$>
   : GOSUB '45
   : IF V<0 THEN RETURN
   : T$="D"
   : HEXUNPACK STR(F6$,4,1) TO STR(T$,2,2)
   : SELECT #4<T$>
   : RETURN
0146 V=-1
   : RETURN
0160 REM %** DEFFN'50 - READ\A0MAP
0180 DEFFN'50
   : V=1
   : DATA LOAD DC OPEN T"VDISKMAP"
   : ERRORE=ERR
   : V=0
   : RETURN
0190 MAT REDIM F1$(50)12
   : DATA LOAD DC F1$()
   : DATA SAVE DC CLOSE
   : RETURN
0340 REM %** DEFFN'65-LOAD\A0TO\A0SCRN-for VCREATE
0344 DEFFN'65(P9)
   : T= (P9*8)-7
   : J=1
   : FOR I=T TO T+7
   : D3$(J)=E3$(I)
   : D4$(J)=E4$(I)
   : D5$(J)=E5$(I)
   : D6$(J)=E6$(I)
   : D8$(J)=E8$(I)
0348 J=J+1
   : NEXT I
   : RETURN
0360 REM %** DEFFN'66 - LOAD\A0FROM\A0SCRN-for VCREATE
0364 DEFFN'66(P9)
   : T= (P9*8)-7
   : J=1
   : FOR I=T TO T+7
   : E3$(I)=D3$(J)
   : E4$(I)=D4$(J)
   : E5$(I)=D5$(J)
   : E6$(I)=D6$(J)
   : E8$(I)=D8$(J)
0368 J=J+1
   : NEXT I
   : RETURN
0430 REM %** DEFFN'72-VDISK\A0VAL-for VCREATE--V=1 if ok,<0 if not,=0 if all b
     lank
0435 DEFFN'72
   : V=1
   : FOR T=1 TO 8
   : IF D6$(T)=" " THEN 436
   : S4$=STR(D6$(T),POS(D6$(T)<>" "))
   : IF VER(STR(D6$(T),POS(D6$(T)<>" ")),"#####")<>LEN(S4$) THEN V=-2
0436 IF D5$(T)=" "OR D6$(T)=" "THEN V=-1
   : IF D3$(T)=" "AND D4$(T)=" "AND D5$(T)=" "AND D6$(T)=" "THEN V=0
   : IF V=1 THEN NEXT T
0437 IF V<>0 THEN RETURN
   : IF T=8 THEN 438
   : IF STR(D6$(),(T*5)+1)<>" "OR STR(D3$(),(T*8)+1)<>" "OR STR(D4$(),(T*8)+1)
     <>" "OR STR(D5$(),(T*8)+1)<>" "THEN V=-1
   : RETURN
0438 IF P9=4 THEN RETURN
   : T1=P9*8
   : IF STR(E6$(),(T1*5)+1)<>" "OR STR(E3$(),(T1*8)+1)<>" "OR STR(E4$(),(T1*8)
     +1)<>" "OR STR(E5$(),(T1*8)+1)<>" "THEN V=-1
   : RETURN
0460 REM %** DEFFN'74-FIND\A0ATTACHED/DETACHED-"A"=Att,"D"=Det.V=index,if err
     <0
0465 DEFFN'74(F$)
   : V=-2
   : FOR I=1 TO 50
   : IF STR(F1$(I),1,3)="ZZZ" THEN 468
   : GOSUB '48(STR(F1$(I),1,3))
   : IF V<0 THEN 469
   : IF F$="A" THEN 466
   : IF STR(F6$,,1)<>HEX(00)THEN 469
   : ELSE V=I
   : IF V>0 THEN RETURN
0466 IF STR(F6$,,1)=HEX(00) OR STR(F6$,3,1)=HEX(00)THEN 469
   : V=I
   : RETURN
0468 I=50
0469 NEXT I
   : V=-5
   : RETURN
0470 REM %** DEFFN'75-SQUEEZE
0471 DEFFN'75(S4$)
   : MAT REDIM T1$(416)1
   : E=LEN(S4$)
   : FOR I=1 TO E
   : T=POS(STR(S4$,,LEN(S4$))=" ")
   : IF T=0 THEN I=E
   : ELSE GOSUB 473
   : NEXT I
   : RETURN
0473 T1$()=STR(S4$,T+1)
   : IF T>1 THEN S4$=STR(S4$,1,T-1)&T1$()
   : ELSE S4$=T1$()
   : RETURN
0500 REM %** DEFFN'90 - DISK\A0ERR
0515 DEFFN'90(D)
   : RESTORE LINE 4010,D-79
   : READ E9$
   : GOSUB '128(E9$,99,1,20)
   : RETURN
0520 REM %** DEFFN'91 - OPEN\A0ERR(errclass,errcode)
0525 DEFFN'91(V1$,V4$)
   : P$,V6$=" "
   : CONVERT VAL(V1$) TO P$,(##)
   : CONVERT VAL(V4$,2) TO V6$,(####)
   : IF VAL(V1$)<>9THEN 530
   : IF VAL(V4$,2)=15 THEN E9$="Volume not mounted"
   : IF VAL(V4$,2)=20 THEN E9$="File already exists"
   : IF VAL(V4$,2)=21 THEN E9$="File possession conflict"
   : IF VAL(V4$,2)=32 THEN E9$="Disk problems"
0527 IF VAL(V4$,2)=40 THEN E9$="Device in use"
   : IF VAL(V4$,2)=41 THEN E9$="Device detached"
   : IF VAL(V4$,2)=42 THEN E9$="Access denied"
   : IF VAL(V4$,2)=96 THEN E9$="Severe DMS errors"
   : IF VAL(V4$,2)=99 THEN E9$="Non-specific file system error"
   : RETURN
0530 E9$="2200SRV err: "&STR(P$,POS(P$<>"0"),2)& "/ "&STR(V6$,POS(V6$<>"0"))
   : RETURN
0900 REM /Changes-1001,1004,1005,1008,1160-1166,Renumed 1162-1181 to 1300
0901 REM /1001
   : S4=1
   : S3=33
   : S2=0
   : S1=0
   : T0$=" "
0903 REM /1004
   : T9=0
   : FOR T4=1TO 34
0905 REM /1005 &1008
   : ON T4GOSUB 1012,1017,1022,1027,1032,1037,1042,1047,1052,1057,1062,1067,10
     72,1077,1082,1087,1092,1097,1102,1107,1112,1117,1122,1127,1132,1137,1142,
     1147,1152,1157,1160,1162,1164,1166
0910 REM /1160
   : MAT REDIM T1$(001)008
   : GOSUB '126(15,1,8,1,1,001,1,1,D3$(8),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(8)=T1$()
   : RETURN
0912 REM /1162
   : MAT REDIM T1$(001)008
   : GOSUB '126(15,11,8,1,1,001,1,1,D4$(8),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(8)=T1$()
   : RETURN
0914 REM /1164
   : MAT REDIM T1$(001)008
   : GOSUB '126(15,21,8,1,1,001,1,1,D5$(8),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(8)=T1$()
   : RETURN
0916 REM /1166
   : MAT REDIM T1$(001)005
   : GOSUB '126(15,43,5,1,1,001,1,1,D6$(8),S0$,"X",1,T9,".....6",1)
   : IF R1>0 THEN D6$(8)=T1$()
   : RETURN
1000 DEFFN'100(S9$,S0$)
   : REM CREATEV  (VER 7.00)
1001 S4=1
   : S3=33
   : S2=0
   : S1=0
   : T0$=" "
1002 IF POS(S9$=F2)>0 THEN T0$=STR(S9$,POS(S9$=F2)+1,4)
1003 IF POS(S9$=F6)>0 THEN GOTO 1007
   : RESTORE LINE 1300
   : GOSUB '129
1004 T9=0
   : FOR T4=1TO 34
1005 ON T4GOSUB 1012,1017,1022,1027,1032,1037,1042,1047,1052,1057,1062,1067,10
     72,1077,1082,1087,1092,1097,1102,1107,1112,1117,1122,1127,1132,1137,1142,
     1147,1152,1157,1160,1162,1164,1166
1006 NEXT T4
1007 T9=-1
   : IF POS(S9$=F9)>0 THEN T3=VAL(STR(S9$,POS(S9$=F9)+1))
   : ELSE T3=S4
1008 ON T3GOSUB 1012,1017,1022,1027,1032,1042,1047,1052,1057,1062,1067,1072,10
     77,1082,1087,1092,1097,1102,1107,1112,1117,1122,1127,1132,1137,1142,1147,
     1152,1157,1160,1162,1164,1166
1009 ON R1GOTO ,,,,1010,1011
   : RETURN
1010 IF POS(S9$=F5)>0 AND T3=S3THEN RETURN
   : T3=MOD(T3+1,S3+1)
   : IF T3=0 THEN T3=S4
   : GOTO 1008
1011 T3=MOD(T3-1,S3+1)
   : IF T3<S4 THEN GOTO 1011
   : GOTO 1008
1012 MAT REDIM T1$(1)3
   : GOSUB '126(4,52,3,1,1,1,1,1,D1$(1),S0$,"X",1,T9,".....6",1)
   : IF R1<=0 OR T9=0 THEN RETURN
   : D1$(1)=T1$()
   : IF VER(T1$(),"HHH")<>3 THEN 1013
   : GOSUB '48(D1$(1))
   : IF V<1 THEN 1014
   : IF STR(F6$,,1)>HEX(00) THEN 1015
   : E9$="Controller not attached"
   : GOTO 1016
1013 E9$="Invalid characters in field"
   : GOTO 1016
1014 IF V=-1 THEN E9$="Illegal communications address"
   : IF V=-10 THEN E9$="Controller not responding"
   : IF V=-20 THEN E9$="Controller is being accessed by another partition"
   : GOTO 1016
1015 IF STR(F6$,3,1)<>HEX(00)THEN RETURN
   : E9$="2200SRV malfunction: Please detach and re-attach this controller"
   : GOTO 1016
1016 GOSUB '128(E9$,99,0,20)
   : T0$=HEX(18000150)
   : GOTO 1012
1017 MAT REDIM T1$(1)6
   : GOSUB '126(8,1,6,1,1,1,1,1,D3$(1),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(1)=T1$()
   : RETURN
1022 MAT REDIM T1$(1)8
   : GOSUB '126(8,11,8,1,1,1,1,1,D4$(1),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(1)=T1$()
   : RETURN
1027 MAT REDIM T1$(1)8
   : GOSUB '126(8,21,8,1,1,1,1,1,D5$(1),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(1)=T1$()
   : RETURN
1032 MAT REDIM T1$(1)5
   : GOSUB '126(8,43,5,1,1,1,1,1,D6$(1),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(1)=T1$()
   : RETURN
1037 MAT REDIM T1$(8)21
   : GOSUB '127(8,60,21,8,1,8,1,1,D8$()," ")
   : RETURN
1042 MAT REDIM T1$(1)6
   : GOSUB '126(9,1,6,1,1,1,1,1,D3$(2),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(2)=T1$()
   : RETURN
1047 MAT REDIM T1$(1)8
   : GOSUB '126(9,11,8,1,1,1,1,1,D4$(2),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(2)=T1$()
   : RETURN
1052 MAT REDIM T1$(1)8
   : GOSUB '126(9,21,8,1,1,1,1,1,D5$(2),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(2)=T1$()
   : RETURN
1057 MAT REDIM T1$(1)5
   : GOSUB '126(9,43,5,1,1,1,1,1,D6$(2),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(2)=T1$()
   : RETURN
1062 MAT REDIM T1$(1)6
   : GOSUB '126(10,1,6,1,1,1,1,1,D3$(3),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(3)=T1$()
   : RETURN
1067 MAT REDIM T1$(1)8
   : GOSUB '126(10,11,8,1,1,1,1,1,D4$(3),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(3)=T1$()
   : RETURN
1072 MAT REDIM T1$(1)8
   : GOSUB '126(10,21,8,1,1,1,1,1,D5$(3),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(3)=T1$()
   : RETURN
1077 MAT REDIM T1$(1)5
   : GOSUB '126(10,43,5,1,1,1,1,1,D6$(3),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(3)=T1$()
   : RETURN
1082 MAT REDIM T1$(1)6
   : GOSUB '126(11,1,6,1,1,1,1,1,D3$(4),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(4)=T1$()
   : RETURN
1087 MAT REDIM T1$(1)8
   : GOSUB '126(11,11,8,1,1,1,1,1,D4$(4),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(4)=T1$()
   : RETURN
1092 MAT REDIM T1$(1)8
   : GOSUB '126(11,21,8,1,1,1,1,1,D5$(4),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(4)=T1$()
   : RETURN
1097 MAT REDIM T1$(1)5
   : GOSUB '126(11,43,5,1,1,1,1,1,D6$(4),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(4)=T1$()
   : RETURN
1102 MAT REDIM T1$(1)6
   : GOSUB '126(12,1,6,1,1,1,1,1,D3$(5),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(5)=T1$()
   : RETURN
1107 MAT REDIM T1$(1)8
   : GOSUB '126(12,11,8,1,1,1,1,1,D4$(5),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(5)=T1$()
   : RETURN
1112 MAT REDIM T1$(1)8
   : GOSUB '126(12,21,8,1,1,1,1,1,D5$(5),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(5)=T1$()
   : RETURN
1117 MAT REDIM T1$(1)5
   : GOSUB '126(12,43,5,1,1,1,1,1,D6$(5),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(5)=T1$()
   : RETURN
1122 MAT REDIM T1$(1)6
   : GOSUB '126(13,1,6,1,1,1,1,1,D3$(6),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(6)=T1$()
   : RETURN
1127 MAT REDIM T1$(1)8
   : GOSUB '126(13,11,8,1,1,1,1,1,D4$(6),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(6)=T1$()
   : RETURN
1132 MAT REDIM T1$(1)8
   : GOSUB '126(13,21,8,1,1,1,1,1,D5$(6),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(6)=T1$()
   : RETURN
1137 MAT REDIM T1$(1)5
   : GOSUB '126(13,43,5,1,1,1,1,1,D6$(6),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(6)=T1$()
   : RETURN
1142 MAT REDIM T1$(1)6
   : GOSUB '126(14,1,6,1,1,1,1,1,D3$(7),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(7)=T1$()
   : RETURN
1147 MAT REDIM T1$(1)8
   : GOSUB '126(14,11,8,1,1,1,1,1,D4$(7),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(7)=T1$()
   : RETURN
1152 MAT REDIM T1$(1)8
   : GOSUB '126(14,21,8,1,1,1,1,1,D5$(7),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(7)=T1$()
   : RETURN
1157 MAT REDIM T1$(1)5
   : GOSUB '126(14,43,5,1,1,1,1,1,D6$(7),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(7)=T1$()
   : RETURN
1160 MAT REDIM T1$(1)6
   : GOSUB '126(15,1,6,1,1,1,1,1,D3$(8),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D3$(8)=T1$()
   : RETURN
1162 MAT REDIM T1$(1)8
   : GOSUB '126(15,11,8,1,1,1,1,1,D4$(8),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D4$(8)=T1$()
   : RETURN
1164 MAT REDIM T1$(1)8
   : GOSUB '126(15,21,8,1,1,1,1,1,D5$(8),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D5$(8)=T1$()
   : RETURN
1166 MAT REDIM T1$(1)5
   : GOSUB '126(15,43,5,1,1,1,1,1,D6$(8),S0$,"X",1,T9," ",1)
   : IF R1>0 THEN D6$(8)=T1$()
   : RETURN
1300 DATA 1,22,0,"*****"
1310 DATA 1,30,0,"C R E A T E  V D I S K"
1320 DATA 1,55,0,"*****"
1330 DATA 2,34,0,"Revision 2.0 "
1340 DATA 4,22,0,"Enter communications address:"
1350 DATA 6,01,0,"-- VDISK Name on VS System --"
1360 DATA 6,43,0,"Platter"
1370 DATA 7,01,0,"Volume"
1380 DATA 7,11,0,"Library"
1390 DATA 7,21,0,"File Name"
1400 DATA 7,43,0,"Size (sectors)"
1405 DATA 19,54,0,"SF24 - Delete entry"
1410 DATA 20,45,0,"PREV SCRN/SF2 - Previous screen"
1420 DATA 21,45,0,"NEXT SCRN/SF3 - Next screen"
1430 DATA 22,50,0,"EXEC/RUN - Create VDISK file(s)"
1440 DATA 23,47,0,"CANCEL/EDIT - Exit"
1450 DATA 8,43,99,HEX(000D)
1460 DATA 8,21,99,HEX(0009)
1470 DATA 8,1,99,HEX(0006)
1480 DATA 8,11,99,HEX(0007)
1490 DATA 0,0,0," "
1500 REM VSACESS0 12 JUNE 86
1517 DEFFN'199
1518 STR(V8$,7,1)=HEX(53)
1519 STR(V8$,6,1)=BIN(#PART-1)AND HEX(0F)OR HEX(50)
1520 $OPEN #3
   : $GIO#3(466042708701,V8$)
   : IF STR(V8$,1,1)<>HEX(80)THEN 1527
1521 V1=LEN(V8$())+34
   : STR(V8$,6,2)=BIN(V1,2)
   : $GIO#3(40E3426042701800A0001801A00040008701,V8$)V7$;STR(V8$(),,V1)
1522 IF STR(V8$,1,1)<>HEX(80)THEN 1527
1523 V9$()=ALL(" ")
   : $GIO#3(870387041801C340,V8$)V8$;STR(V9$(),1,VAL(STR(V8$,3,2),2))
1524 $GIO#3(4000,V8$)
1525 $CLOSE#3
1526 V0$=HEX(FF)
   : RETURN
1527 V0$=HEX(5A)
   : RETURN
1528 DEFFN'102(V9$,V7$)
1529 STR(V7$,6,4)=HEX(00020000)
1530 V8$()=ALL(" ")
   : STR(V8$(),1,5)=HEX(02)&V9$&HEX(0000)
1531 STR(V8$(),6,6)=HEX(000301000000)
1532 GOSUB '199
   : IF V0$<>HEX(FF)THEN 1536
1533 V7$=STR(V9$(),,32)
1534 V1=VAL(STR(V8$,3,2),2)-32
   : STR(V9$(),,V1)=STR(V9$(),33,V1)
   : STR(V9$(),V1+1)=ALL(" ")
1535 V0$=HEX(FF)
1536 RETURN
1600 REM VSACESS1 30 JUNE 86
1601 DEFFN'104(V9$,V7$,V9$())
1602 STR(V7$,6,4)=HEX(00110000)
1603 STR(V8$())=HEX(02)&V9$
1604 V1=LEN(V9$())
   : STR(V8$(),4,V1+8)=HEX(0001)&BIN(V1+3,2)&HEX(01)&BIN(V1,2)&STR(V9$(),1,V1)
     &HEX(00)
1605 GOSUB '199
   : IF V0$<>HEX(FF)THEN 1609
1606 V7$=STR(V9$(),1,32)
1607 V1=VAL(STR(V8$,3,2),2)-32
   : STR(V9$(),1,V1)=STR(V9$(),33,V1)
   : STR(V9$(),V1+1)=ALL(" ")
1608 V0$=HEX(FF)
1609 RETURN
1700 REM VSACESS9 21 JULY 86
1701 DEFFN'200(V$,V1$,V2$,V3$,STR(V9$(),1,40),STR(V9$(),41,8))
1702 V7$=ALL(HEX(00))
   : STR(V7$,,5)=HEX(FF)&"SMB"&HEX(FF)
   : STR(V7$,7,1)=HEX(23)
   : STR(V7$,23,2)=HEX(FFFF)
1703 V8$()=ALL(" ")
   : STR(V8$(),1,3)=HEX(040000)
1704 IF V3$=" "THEN STR(V8$(),4,2)=HEX(0001)
   : IF V3$="T"THEN STR(V8$(),4,2)=HEX(0002)
1705 V1=POS("          IRCBS"=V1$)
   : IF V1<11OR V1>15THEN 1720
   : V2=2^V1
   : STR(V8$(),6,2)=BIN(V2,2)
1706 V1=POS("           SXER"=V2$)
   : IF V1<12OR V1>15THEN 1720
   : V2=2^V1
   : STR(V8$(),8,2)=BIN(V2,2)
1707 V1=LEN(V$)
   : V2=(V1+2)+6+43
   : IF V1$="I"THEN V2=V2+11
   : STR(V8$(),10,2)=BIN(V2,2)
1708 STR(V8$(),12,1)=HEX(04)
   : STR(V8$(),13,LEN(V$)+1)=V$&HEX(00)
1709 V1=14+LEN(V$)
   : STR(V8$(),V1,6)=HEX(04)&"FILE"&HEX(00)
1710 V1=V1+6
   : STR(V8$(),V1,43)=HEX(01)&BIN(40,2)&STR(V9$(),1,40)
   : IF V1$<>"I"THEN 1713
1711 V1=V1+43
   : STR(V8$(),V1,11)=HEX(010008)&STR(V9$(),63,8)
1712 STR(V8$(),V1+11,1)=HEX(00)
1713 GOSUB '199
   : IF V0$=HEX(5A)THEN 1720
1714 V7$=STR(V9$(),,32)
   : IF STR(V7$,6,1)<>HEX(00)THEN 1719
1715 IF V3$=" "THEN V9$=STR(V9$(),34,2)
1716 IF V3$=" "THEN V2=35
   : ELSE V2=33
1717 V1=VAL(STR(V8$,3,2),2)-V2
   : STR(V9$(),,V1)=STR(V9$(),V2+1,V1)
   : STR(V9$(),V1+1)=ALL(" ")
1718 V0$=HEX(FF)
   : RETURN
1719 V0$=HEX(A5)
   : RETURN
1720 V0$=HEX(00)
   : RETURN
2000 REM % Main
   : E9=99
   : GOSUB '50
   : IF V=1 THEN 2005
   : IF E=82 THEN E9$="VDISKMAP not found"
   : ELSE GOSUB '90(E)
   : C=1
   : E9=23
   : GOTO 2300
2005 GOSUB '74("A")
   : IF V<1 THEN D1$(1)=" "
   : ELSE D1$(1)=STR(F1$(V),1,3)
   : PRINT HEX(03)
   : C=0
   : P9$=HEX(F218000150)
   : P9=1
   : D8$()=" "
2010 REM %REPEAT
   : GOSUB '100(P9$,HEX(504E756418))
2090 ON R1+2 GOTO 2105,2105,2120,2200,2215,2230,,,,,,,2110,,,2115
2105 REM %exit
   : IF D5$()=" " AND D6$()=" " AND E5$()=" " AND E6$()=" " THEN 2108
   : GOSUB '128("Press EXEC/RUN to exit, CANCEL/EDIT to continue",24,0,20)
2106 KEYIN T$,,2107
   : IF STR(T$,1,1)=HEX(82) OR STR(T$,1,1)=HEX(A1) THEN 2108
   : GOTO 2106
2107 IF STR(T$,1,1)<>HEX(50) AND STR(T$,1,1)<>HEX(F0) THEN 2106
   : P9$=HEX(F218000140F6F9)&BIN(T3)
   : GOTO 2300
2108 E9$="Create VDISKs Utility cancelled"
   : C=1
   : E9=23
   : GOTO 2300
2110 REM %case-up
   : IF T3>5 THEN P8=T3-4
   : ELSE P8=T3
   : P8$=BIN(P8)
   : P9$=HEX(F218000140F6F9)&P8$
   : GOTO 2300
2115 REM %case-down
   : IF T3<=29 AND T3<>1 THEN P8=T3+4
   : ELSE P8=T3
   : P8$=BIN(P8)
   : P9$=HEX(F218000140F6F9)&P8$
   : GOTO 2300
2120 REM %case-exec
   : GOSUB '72
   : IF V=-1 THEN 2133
   : IF V=-2 THEN 2132
   : GOSUB '66(P9)
   : IF E6$(1)=" " THEN 2131
   : E1=LEN(E6$())/5
   : IF FIX(E1)<>E1 THEN E1=FIX(E1)+1
   : GOTO 2135
2131 E9$="No valid VDISK entries"
   : GOTO 2134
2132 E9$="Invalid number"
   : T3=((T-1)*4)+5
   : GOTO 2134
2133 E9$="Please delete or correct entry before continuing"
   : T3=((T-1)*4)+2
2134 P9$=HEX(F218000140F6F9)&BIN(T3)
   : GOTO 2300
2135 GOSUB '128("Press EXEC/RUN to create VDISKs, CANCEL/EDIT to return to scr
     een",24,0,20)
2136 KEYIN T$,,2137
   : IF STR(T$,1,1)=HEX(82) OR STR(T$,1,1)=HEX(A1) THEN 2140
   : GOTO 2136
2137 IF STR(T$,1,1)<>HEX(50) AND STR(T$,1,1)<>HEX(F0) THEN 2136
   : E9$="No VDISKs created"
   : P9$=HEX(F218000140F6F9)&BIN(T3)
   : GOTO 2300
2140 REM /each VDISK
   : E8$()=" "
   : FOR E5=1 TO E1
   : E5$="///"&E3$(E5)&"/"&E4$(E5)&"/"&E5$(E5)
   : GOSUB '75(E5$)
   : IF S4$="/////" THEN 2187
   : E5$=S4$
   : E9$= "Creating VDISK "&E5$
   : PRINT AT(23,0,80);
   : GOSUB '128(E9$,24,0,20)
2143 CONVERT E6$(E5) TO E6
   : V9$()=ALL(HEX(00))
   : STR(V9$(),,12)="CFAN"&HEX(0000)&BIN(E6,2)&HEX(00000100)
   : STR(V9$(),27,1)=" "
   : STR(V9$(),34,1)="N"
2153 GOSUB '200(E5$,"C","E"," ",STR(V9$(),1,40)," ")
   : IF STR(V7$,6,1)=HEX(00)AND V0$=HEX(FF)THEN 2156
   : IF V0$=HEX(FF)THEN E9$="Could not create"
   : ELSE GOSUB '91(STR(V7$,6,1),STR(V7$,8,2))
   : E8$(E5)=E9$
   : E9$=" "
   : GOTO 2187
2156 FOR D=1TO E6
   : CONVERT D TO A$,(#####)
   : E9$= "Initializing VDISK "&E5$&" at sector "&STR(A$,POS(A$<>"0"))
   : GOSUB '128(E9$,24,0,20)
2158 V9$()=" "
   : STR(V9$(),,256)=ALL(HEX(00))
   : GOSUB '104(V9$,V7$,V9$())
   : IF V0$=HEX(FF) AND STR(V7$,6,1)=HEX(00) THEN 2161
   : IF V0$=HEX(FF) THEN E9$="Could not initialize"
   : ELSE GOSUB '91(STR(V7$,6,1),STR(V7$,8,2))
   : E8$(E5)=E9$
   : D=E6
   : NEXT D
   : GOTO 2187
2161 NEXT D
2164 GOSUB '102(V9$,V7$)
   : IF V0$=HEX(FF)AND STR(V7$,6,1)=HEX(00) THEN 2187
   : IF V0$=HEX(FF) THEN E9$= "Could not close"
   : ELSE GOSUB '91(STR(V7$,6,1),STR(V7$,8,2))
   : E8$(E5)=E9$
2187 IF E8$(E5)=" "THEN E8$(E5)="Successful"
   : NEXT E5
2190 C=0
   : E9$="Task completed"
   : E9=24
   : P9$=HEX(F218000140)
   : GOSUB '65(P9)
   : GOTO 2300
2200 REM %Prev
   : IF P9<=1 THEN 2205
   : GOSUB '72
   : IF V=-1 THEN 2133
   : IF V=-2 THEN 2132
   : GOSUB '66(P9)
   : P9=P9-1
   : GOSUB '65(P9)
   : P9$=HEX(F218000140F902)
   : GOTO 2300
2205 REM /Err
   : E9$="No previous screen"
   : GOTO 2219
2215 REM %Next
   : IF P9=4 THEN 2217
   : GOSUB '72
   : IF V=-1 THEN 2133
   : IF V=-2 THEN 2132
   : IF V=0THEN 2217
   : GOSUB '66(P9)
   : P9=P9+1
   : GOSUB '65(P9)
   : P9$=HEX(F218000140F902)
   : GOTO 2300
2217 REM /Err
   : E9$="No next screen"
2219 P9$=HEX(F218000140F6F9)&BIN(T3)
   : GOTO 2300
2230 REM %'24
   : IF S0<>24 THEN 2300
   : IF T3<2 THEN 2250
   : GOSUB '66(P9)
   : E8=(FIX((T3-2)/4)+1)+((P9-1)*8)
   : IF E8=32 THEN 2245
2240 STR(E3$(),((E8-1)*8)+1)=STR(E3$(),(E8*8)+1)
   : STR(E4$(),((E8-1)*8)+1)=STR(E4$(),(E8*8)+1)
   : STR(E5$(),((E8-1)*8)+1)=STR(E5$(),(E8*8)+1)
   : STR(E6$(),((E8-1)*5)+1)=STR(E6$(),(E8*5)+1)
   : STR(E8$(),((E8-1)*21)+1)=STR(E8$(),(E8*21)+1)
2245 E3$(32),E4$(32),E5$(32),E8$(32)=" "
   : GOSUB '65(P9)
   : PRINT AT(23,0,80)
   : P9$=HEX(F218000140F9)&BIN(T3)
   : GOTO 2300
2250 REM /err
   : P9$=HEX(F218000140F6F9)&BIN(T3)
2300 REM %UNTIL exit
   : PRINT AT(23,0,80);
   : IF E9$<>" " THEN GOSUB '128(E9$,E9,0,20)
   : E9$=" "
   : IF C=0 THEN 2010
3015 REM %Exit
   : PRINT AT(23,00,80);
   : GOSUB '128("Loading VS Services Menu",24,0,20)
   : LOAD T"@VSMENU"
3800 REM SE.SUBS, REL. 7.00, (08/23/82)
3801 DIM T1(8),T2(2),S1$,S2$124,S3$1,S4$80,T1$1,T2$80,T3$1,T4$3,T$(10)1
3802 DEFFN'126(T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1$(),S0$,S2$,T
     2,T9,T$(),S9)
   : S3$=S2$
   : I=20
   : GOSUB 3864
   : T2,T5=MIN(MAX(1,T2),T1(6))
   : $TRAN(T$(),HEX(202E))R
   : T$(5)="5"
   : R1=1
   : IF S9>1THEN 3806
   : IF T9<0THEN 3803
   : T$(5)="5"
   : T3$=S2$
   : GOSUB 3831
   : S2$=T3$
   : IF T9=0THEN 3805
   : T2=T5
3803 GOSUB 3835
   : GOSUB '130(T0,T1,T1(3),S3$,T1$(T2),S0$," ",T$(),T0$)
   : T1$(T2)=S4$
   : IF T$(10)=" "THEN 3804
   : GOSUB '125
   : IF R1=-2THEN 3803
3804 IF R1<5OR R1=11OR R1=14THEN 3805
   : IF R1=5THEN T2=T2+1
   : IF R1=6THEN T2=T2-1
   : IF T2>=1AND T2<=T1(6)THEN 3803
3805 RETURN
3806 S8$=S0$
   : SELECT PRINT 205(80)
   : PRINT HEX(0202020F);
   : $TRAN(S2$,HEX(8520))R
   : T2=T2-1
3808 T2=MAX(1,MOD(T2+1,T1(6)))
   : IF STR(T1$(T2),,1)=HEX(00)THEN 3808
3810 IF T9<0THEN 3814
   : T5=T2
   : FOR T2=1TO T1(6)
   : IF S9=2THEN 3811
   : T4$=STR(S2$,T2,1)&HEX(0F09)
   : GOTO 3812
3811 IF T2=T5THEN T4$=HEX(8B0E09)
   : ELSE T4$=HEX(900F09)
3812 GOSUB 3835
   : GOSUB 3824
   : NEXT T2
   : T2=T5
   : IF T9=0THEN 3825
3814 IF S9=3THEN S8$=S8$&"DI"
   : GOSUB 3835
   : PRINT HEX(06);AT(T0-1,T1-1);
   : T8=1
   : GOSUB 3839
   : IF S9=2AND R1>08AND R1<15THEN 3825
   : IF R1<7THEN 3825
   : IF S9=2THEN 3818
   : IF POS(HEX(8B85)=STR(S2$,T2,1))=0THEN 3819
   : ON R1-8GOTO 3815,3816
   : GOTO 3819
3815 STR(S2$,T2,1)=HEX(85)
   : GOTO 3817
3816 STR(S2$,T2,1)=HEX(8B)
3817 T4$=STR(S2$,T2,1)&HEX(0F09)
   : GOSUB 3824
   : I=1
   : GOTO 3822
3818 T4$=HEX(900F09)
   : GOSUB 3824
3819 ON POS(HEX(2008)=T1$)GOTO 3820,3821
   : GOSUB 3826
   : GOTO 3823
3820 I=1
   : GOTO 3822
3821 I=-1
3822 T2=T2+I
   : T2=MOD(T2,T1(6))
   : IF T2=0THEN T2=T1(6)
   : IF T1$(T2)=" "OR STR(T1$(T2),,1)=HEX(00)THEN 3822
3823 IF S9=3THEN T4$=STR(S2$,T2,1)&HEX(0F09)
   : ELSE T4$=HEX(8B0E09)
   : GOSUB 3835
   : GOSUB 3824
   : GOTO 3814
3824 PRINT HEX(06);AT(T0-1,T1-1);
   : IF T1$(T2)>" "THEN PRINT HEX(0E);T4$;STR(T1$(T2));
   : ELSE IF STR(T1$(T2),,1)>HEX(00)THEN PRINT TAB(T1-1+2);STR(T1$(T2));
   : RETURN
3825 $TRAN(S2$,HEX(2085))R
   : T0=T2
   : PRINT HEX(0F0202000F);
   : IF S2=2THEN RETURN
   : MAT REDIM T1$(T1(6))1
   : T1$()=S2$
   : SELECT PRINT 005(80)
   : RETURN
3826 T1$=OR HEX(20)
   : S=-1
   : IF T2=T1(6)THEN 3827
   : FOR I=T2+1TO T1(6)
   : T3$=STR(T1$(I),1,1)OR HEX(20)
   : IF T3$<>T1$THEN NEXT I
   : ELSE S=I
3827 IF T2=1OR S>0THEN 3828
   : FOR I=1TO T2-1
   : T3$=STR(T1$(I),1,1)OR HEX(20)
   : IF T3$<>T1$THEN NEXT I
   : ELSE S=I
3828 IF S>-1THEN T2=S
   : RETURN
3830 DEFFN'127(T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1$(),T$())
   : $TRAN(T$(),HEX(202E))R
3831 SELECT PRINT 405(80)
   : IF T$(7)=" "THEN PRINT HEX(020402000E06);
   : ELSE PRINT HEX(0F06)
   : FOR T2=1TO T1(6)
   : GOSUB 3835
   : S2$=T1$(T2)
   : IF T$(3)=" "OR S2$=" "THEN 3832
   : STR(S2$,,LEN(S2$))=ALL(8B)
3832 IF T$(5)>" "THEN $TRAN(S2$,HEX(8520))R
   : PRINT AT(T0-1,T1-1);
   : IF STR(S2$,,1)>HEX(00)THEN PRINT STR(S2$,,T1(3));
   : NEXT T2
   : SELECT PRINT 005(80)
   : RETURN
3835 IF T$(4)>" "THEN T0=INT((T2-1)/T1(8))*T1(7)+T1(1)
   : ELSE T0=MOD((T2-1),T1(4))*T1(7)+T1(1)
   : IF T$(4)>" "THEN T1=MOD((T2-1),T1(8))*T1(5)+T1(2)
   : ELSE T1=INT((T2-1)/T1(4))*T1(5)+T1(2)
   : T0=T0+T2(1)
   : T1=T1+T2(2)
   : RETURN
3836 IF T0$<>" "THEN GOSUB 3860
   : IF T>0THEN GOSUB 3862
   : RETURN
3838 T=1
   : PRINT HEX(06070E);AT(23,0,40);" Invalid key ignored";AT(T0-1,T1-2+T8);
3839 R1=99
   : IF T$(9)=" "THEN PRINT HEX(02050F);
   : KEYIN T1$,,3845
   : GOSUB 3836
   : IF T1$>HEX(82)THEN 3838
   : IF T$(9)=" "THEN 3841
   : IF POS(HEX(8182)=T1$)=0OR POS(S8$=T1$)=0THEN 3838
3841 IF T1$>HEX(82)THEN 3838
   : ON POS(HEX(81820D)=T1$)GOTO 3847,3843,3849
   : RETURN
3843 R1=1
   : RETURN
3845 GOSUB 3836
   : IF T1$>HEX(1F)THEN 3846
   : IF POS(S8$=T1$)=0THEN 3846
   : R1=4
   : S0=VAL(T1$)
   : RETURN
3846 ON POS(HEX(F01F50)=T1$)GOTO 3847,3847,3848
   : IF T$(9)=" "THEN ON POS(HEX(7E7F)=T1$)GOTO 3849,3850
   : GOTO 3851
3847 R1=0
   : RETURN
3848 R1=-1
   : RETURN
3849 R1=5
   : RETURN
3850 R1=6
   : RETURN
3851 T1$=AND HEX(0F)
   : IF POS(HEX(0203050608090A0C0D)=T1$)>0THEN 3852
   : GOTO 3838
3852 $TRAN(T1$,HEX(0B060E05))R
   : R1=VAL(T1$)
   : T2$="*PN****EDIuewd**"
   : IF POS(S8$=STR(T2$,R1,1))>0THEN RETURN
   : GOTO 3838
3853 ON POS(HEX(2008)=T1$)GOTO 3854,3855
   : GOTO 3856
3854 IF T$(4)>" "THEN R1=12
   : ELSE R1=14
   : GOTO 3856
3855 IF T$(4)>" "THEN R1=13
   : ELSE R1=11
3856 I=T1(6)
   : IF T$(4)=" "THEN 3857
   : IF R1=14THEN T2=MOD(T2+T1(8),I)
   : IF R1=11THEN T2=MOD(T2-T1(8),I)
   : GOTO 3858
3857 IF R1=14THEN T2=MOD(T2+1,I)
   : IF R1=11THEN T2=MOD(T2-1,I)
3858 IF T2=0THEN T2=T1(6)
   : IF T2>T1(6)THEN 3853
   : RETURN
3860 FOR I=1TO VAL(STR(T0$,3))
   : PRINT HEX(06);AT(VAL(STR(T0$,1))-2+I+T2(1),VAL(STR(T0$,2))+T2(2),VAL(STR(
     T0$,4)));
   : NEXT I
   : T0$=" "
   : GOSUB 3898
   : RETURN
3862 PRINT HEX(06);AT(23,0,40);
   : T=0
   : GOSUB 3898
   : RETURN
3864 S1$=HEX(0204)&BIN(I/10)&BIN(MOD(I,10))&HEX(0E)
   : PRINT STR(S1$,,5);
   : RETURN
3866 DEFFN'128(S2$,T0,T1,I)
   : SELECT PRINT 005(80)
   : IF T0=99THEN PRINT HEX(07);
   : IF T1=99THEN T1=40-(LEN(S2$)/2)
   : T0=MIN(24,T0)
   : T1=MAX(1,T1)
   : GOSUB 3864
   : I=1
   : STR(S2$,LEN(S2$)+1,1)=HEX(AF)
   : S=POS(S2$=HEX(AF))
3867 PRINT HEX(06);AT(T0-1,T1-1);STR(S2$,I,S-1);
   : I=I+S
   : S=POS(STR(S2$,I)=HEX(AF))
   : T0=T0+1
   : IF S>0THEN 3867
   : PRINT HEX(020402000F06);
   : RETURN
3869 DEFFN'129
   : SELECT PRINT 205(80)
3870 READ T0,T1,I,S4$
   : ERRORR1=-2
   : RETURN
3871 IF T0=0THEN RETURN
   : T0=T0+T2(1)
   : T1=T1+T2(2)
   : IF I=99THEN 3872
   : IF I=0THEN PRINT HEX(0F);
   : ELSE GOSUB 3864
   : PRINT HEX(06);AT(T0-1,T1-1);STR(S4$,,LEN(S4$));
   : GOTO 3870
3872 PRINT HEX(06);AT(T0-1,T1-1);BOX(VAL(S4$),VAL(STR(S4$,2)))
   : GOTO 3870
3874 DEFFN'130(T0,T1,T5,S2$,S4$,S8$,T2$,T$(),T0$)
   : SELECT PRINT 405(80)
   : PRINT HEX(0202000F020402000E);
   : $TRAN(T$(),HEX(202E))R
   : IF T2$>" "THEN PRINT HEX(060F);AT(T0-1,T1-2-LEN(T2$));T2$;HEX(0E);
   : S2$=ALL(S2$)
   : T6=POS("H#X"=S2$)
   : PRINT HEX(0202020F);
   : T8=1
   : IF T$(9)>" "THEN 3876
   : GOSUB 3897
   : IF S8$<>" "THEN S8$=S8$&"IDEew"
   : ELSE S8$="IDEew"
3876 GOSUB 3839
   : IF T$(9)>" "THEN 3905
   : IF R1<7THEN 3899
   : IF R1=11OR R1=14THEN 3899
   : ON R1-7GOTO 3880,3884,3882,3876,3886,3890,3876
   : IF T1$=HEX(08)THEN 3890
   : IF T8<=T5THEN 3878
   : PRINT HEX(07);
   : GOTO 3876
3878 STR(S4$,T8,1)=T1$
   : $TRAN(T1$,HEX(8020))R
   : IF T$(3)=" "THEN PRINT HEX(0E);T1$;
   : ELSE PRINT HEX(0E8B);
   : GOTO 3887
3880 IF T5<T8THEN 3876
   : STR(S4$,T8)=" "
   : GOSUB 3897
   : GOTO 3876
3882 IF T5<T8THEN 3876
   : MAT COPY -S4$<T8,T5-T8>TO -S4$<T8+1,T5-T8>
   : STR(S4$,T8,1)=" "
   : GOSUB 3897
   : GOTO 3876
3884 IF T5<T8THEN 3876
   : MAT COPY S4$<T8+1,T5-T8>TO S4$<T8,T5-T8>
   : STR(S4$,T5,1)=" "
   : GOSUB 3897
   : GOTO 3876
3886 IF T8<T5+1THEN PRINT HEX(09);
3887 IF T8<>T5THEN 3888
   : IF T$(1)=" "THEN 3888
   : R1=5
   : GOTO 3899
3888 T8=MIN(T5+1,T8+1)
   : GOTO 3876
3890 IF T8>1THEN 3891
   : IF T$(2)=" "THEN 3876
   : R1=6
   : GOTO 3899
3891 PRINT HEX(08);
   : T8=T8-1
   : IF T1$<>HEX(08)THEN 3876
   : STR(S4$,T8,1)=" "
   : PRINT HEX(8508);
   : GOTO 3876
3892 PRINT HEX(06070E);AT(23,0,50);T2$;
   : T=1
   : GOSUB 3898
   : GOTO 3876
3893 T2$=" Invalid key ignored"
   : GOTO 3892
3894 T2$=" Information required, please enter"
   : GOTO 3892
3895 T2$=" Invalid characters in field"
   : GOTO 3892
3897 PRINT HEX(06);AT(T0-1,T1-1);
   : T2$=S4$
   : IF T$(3)>" "AND T2$>" "THEN STR(T2$,,LEN(T2$))=ALL(8B)
   : $TRAN(T2$,HEX(8520))R
   : PRINT STR(T2$,,T5);
3898 PRINT HEX(06);AT(T0-1,T1-2+T8);
   : RETURN
3899 IF T$(7)=" "OR T$(3)>" "THEN 3900
   : PRINT HEX(0F);
   : GOSUB 3897
3900 $TRAN(S4$,HEX(20802085))R
   : IF R1<1THEN 3902
   : IF S4$=" "AND T$(6)>" "THEN 3894
3902 ON T6GOTO 3904,3903,3905
   : GOTO 3904
3903 IF NUM(S4$)<T5THEN 3895
   : GOTO 3905
3904 IF S4$>" "AND VER(STR(S4$,,T5),S2$)<T5THEN GOTO 3895
3905 SELECT PRINT 005(80)
   : PRINT HEX(0F0202000F);
   : RETURN
3906 %  S$="SE.SUBS ": SCRATCH TS$: SAVE <S>T()S$3800,3999: PRINT HEX(0E);S$;H
     EX(0F);" updated"
4010 REM / Disk error messages
4020 DATA "D80  File not open"
4022 DATA "D81  File full"
4024 DATA "D82  File not in catalog"
4026 DATA "D83  File already cataloged"
4028 DATA "D84  File not scratched"
4030 DATA "D85  Index full"
4032 DATA "D86  Catalog end error"
4034 DATA "D87  No end-of-file"
4036 DATA "D88  Wrong record type"
4038 DATA "D89  Sector address beyond end-of-file"
4040 DATA "I90  Disk hardware error"
4042 DATA "I91  Disk hardware error"
4044 DATA "I92  Timeout error"
4046 DATA "I93  Format error"
4048 DATA "I94  Format key engaged"
4050 DATA "I95  Device error"
4052 DATA "I96  Data error"
4054 DATA "I97  Longitudinal redundancy check error"
4056 DATA "I98  Illegal sector address or platter not mounted"
4058 DATA "I99  Read-after-write error"
9999 DEFFN '31  "SCRATCH T";HEX(22);"VCREATE";HEX(22);": SAVE T()";HEX(22);"VC
     REATE";HEX(22)