Listing of file='START' on disk='vmedia/letter_editor.wvd.zip'
# Sector 23, program filename = 'START'
0010 REM ***** START - REVISED 1540 08/18/76 ***** COPYRIGHT WANG LABS, 1976
0020 COM W,F$8,U,T$(200)1,F,F0,Z$1
: COM J
: DIM Q$64,Q1$64,Q2$64,B1$2,B2$2,B$(80)1,A$2,N$(16),G$(1)10,E$(1)2
: COM CLEAR J
: INIT(00)A$
: W=64
: PRINT HEX(03),,"S Y S T E M S T A R T U P"
: PRINT HEX(0A0A0A);"SINGLE = 1 COMPUTER USING 1 DISK UNIT."
0062 PRINT "MULTIPLE = 2 OR MORE COMPUTERS USING 1 DISK UNIT."
: GOSUB '32("ENTER NO. OF USERS: 'SINGLE' OR 'MULTIPLE'.",8)
0064 J=1
: IF Q$="SINGLE"THEN 146
: IF Q$="single"THEN 146
: J=2
: IF Q$="MULTIPLE"THEN 146
: IF Q$="multiple"THEN 146
: GOSUB '34("INVALID REPLY.")
: GOTO 64
0069 PRINT HEX(03),,"S Y S T E M S T A R T U P"
: PRINT HEX(0A0A0A);"REPLY DEVICE"
: PRINT "----- ------"
: PRINT " 1 310"
: PRINT " 2 B10"
: PRINT " 3 350"
: PRINT " 4 320"
: PRINT " 5 B20"
: PRINT " 6 360"
: RETURN
0146 GOSUB 69
: GOSUB '32("ON WHAT DEVICE ARE THE PROGRAMS LOCATED?",1)
0160 ON VAL(Q$)-48GOTO 190,200,210,220,230,240
: GOSUB '34("REPLAY MUST BE AN INTEGER 1 - 6.")
: GOTO 160
0190 SELECT #1310,#6310
: ON JGOTO 260
: SELECT #6390
: GOTO 260
0200 SELECT #1B10,#6B10
: ON JGOTO 260
: SELECT #6B90
: GOTO 260
0210 SELECT #1350,#6350
: ON JGOTO 260
: SELECT #63D0
: GOTO 260
0220 SELECT #1320,#6320
: ON JGOTO 260
: SELECT #63A0
: GOTO 260
0230 SELECT #1B20,#6B20
: ON JGOTO 260
: SELECT #6BA0
: GOTO 260
0240 SELECT #1360,#6360
: ON JGOTO 260
: SELECT #63E0
0260 GOSUB '32("ON WHAT DEVICE IS THE TEXT LOCATED?",1)
0270 ON VAL(Q$)-48GOTO 300,310,320,330,340,350
: GOSUB '34("REPLY MUST BE AN INTEGER 1 - 6.")
: GOTO 270
0300 SELECT #2310,#4310
: ON JGOTO 370
: SELECT #4390
: GOTO 370
0310 SELECT #2B10,#4B10
: ON JGOTO 370
: SELECT #4B90
: GOTO 370
0320 SELECT #2350,#4350
: ON JGOTO 370
: SELECT #43D0
: GOTO 370
0330 SELECT #2320,#4320
: ON JGOTO 370
: SELECT #43A0
: GOTO 370
0340 SELECT #2B20,#4B20
: ON JGOTO 370
: SELECT #4BA0
: GOTO 370
0350 SELECT #2360,#4360
: ON JGOTO 370
: SELECT #43E0
0370 PRINT HEX(03),,"S Y S T E M S T A R T U P"
: GOSUB '32("WILL THERE BE AN OUTPUT TEXT FILE (FOR COPYING)? (Y/N)",1)
0380 IF Q$="Y"THEN 430
: IF Q$="y"THEN 430
: IF Q$="N"THEN 540
: IF Q$="n"THEN 540
: GOSUB '34("INVALID REPLY.")
: GOTO 380
0430 GOSUB 69
: GOSUB '32("ON WHAT DEVICE IS THE OUTPUT TEXT FILE LOCATED?",1)
0440 ON VAL(Q$)-48GOTO 470,480,490,500,510,520
: GOSUB '34("REPLY MUST BE AN INTEGER 1 - 6.")
: GOTO 440
0470 SELECT #3310,#5310
: ON JGOTO 540
: SELECT #5390
: GOTO 540
0480 SELECT #3B10,#5B10
: ON JGOTO 540
: SELECT #5B90
: GOTO 540
0490 SELECT #3350,#5350
: ON JGOTO 540
: SELECT #53D0
: GOTO 540
0500 SELECT #3320,#5320
: ON JGOTO 540
: SELECT #53A0
: GOTO 540
0510 SELECT #3B20,#5B20
: ON JGOTO 540
: SELECT #5BA0
: GOTO 540
0520 SELECT #3360,#5360
: ON JGOTO 540
: SELECT #53E0
0540 PRINT HEX(03),,"S Y S T E M S T A R T U P"
: GOSUB '32("ENTER THE TERMINAL NUMBER (1 - 4).",1)
0560 IF Q$<"1"THEN 570
: IF Q$<"5"THEN 590
0570 GOSUB '34("INVALID TERMINAL NUMBER.")
: GOTO 560
0590 CONVERT Q$TO I
: INIT(00)Q2$
: LIMITS T#6,"ACTIVE",U1,U2,U2
: DATA LOAD BA T#6,(U1,A)N$()
: IF N$(I)=STR(Q2$,1,16)THEN 670
: DATA LOAD BA T#1,(U1,A)N$()
: GOSUB '34("THE TERMINAL SPECIFIED IS ALREADY ACTIVE.")
: GOTO 560
0665 DEFFN'15
0670 N$(I)=" "
: BIN(Z$)=I
: DATA SAVE BA T#1,(U1,A)N$()
: GOSUB '32("ENTER CRT SIZE. (64 OR 80 COLUMNS)",2)
0730 IF NUM(Q$)=64THEN 760
0740 GOSUB '34("INVALID NUMBER.")
: GOTO 730
0760 CONVERT Q$TO W
: IF W=64THEN 780
: IF W=80THEN 780
: GOTO 740
0770 DEFFN'15
0780 LOAD DC T#1,"HLDA010A"
0810 DEFFN'32(Q1$,N)
: GOSUB 1220
0830 PRINT HEX(010A);Q1$
: INIT(2D)Q$
: $GIO/005(40204020A000402F400D,I0$)Q$<1,N>
: Q$=" "
: D=1
: PRINT "? ";
0910 KEYIN D$,920,910
: GOTO 910
0920 IF D$=HEX(0D)THEN 1090
: IF D$=HEX(08)THEN 1040
: IF D$=HEX(A1)THEN 1010
: IF D>NTHEN 910
: IF D$=HEX(84)THEN 1110
: STR(Q$,D,1)=D$
0980 PRINT D$;
: D=D+1
: GOTO 910
1010 PRINT HEX(0D0909);
: D=1
: GOTO 910
1040 IF D=1THEN 910
: D=D-1
: STR(Q$,D,1)=" "
: PRINT HEX(082008);
: GOTO 910
1090 PRINT HEX(0D0A)
: RETURN
1110 OR (STR(Q$,D,1),80)
: D$=STR(Q$,D,1)
: GOTO 980
1160 DEFFN'34(Q2$)
: GOSUB 1220
: PRINT HEX(010A0A0A);Q2$
: GOTO 830
1220 PRINT HEX(010A);
: GOSUB 1250
: GOSUB 1250
1250 $GIO/005(400DA000400A,I$)B$()<1,W>
: RETURN
1290 GOSUB '32("PLEASE MOUNT DISK AND ENTER VOLUME NAME.",8)
1300 IF Q$=" "THEN 1460
: IF F$="STOP"THEN 1520
: IF F$="stop"THEN 1520
: F$=Q$
: GOSUB 1550
: IF I>0THEN 1370
: GOSUB '34("VOL. NAME DOES NOT EXIST OR IS SCRATCHED.")
: GOTO 1300
1370 GOSUB 1720
: IF U>0THEN 1410
: GOSUB '34("THIS VOL. IS ALREADY IN USE.")
: GOTO 1300
1410 DATA LOAD BA T#2,(U,B1$)N$()
: MAT COPY N$()TO T$()
: F=VAL(STR(N$(13),9))
: F0=VAL(STR(N$(13),10))
1450 RETURN
1460 IF F$<>" "THEN 1450
: GOSUB '34("A VOL. NAME MUST BE ENTERED.")
: GOTO 1300
1510 DEFFN'15
1520 LOAD DC T#1,"MENU"
1550 B1$,B2$=A$
: DATA LOAD BA T#2,(B1$,B1$)N$()
: I=0
: STR(B2$,2)=STR(N$(1),2)
1590 D=9
1600 MAT SEARCHN$()<D,257-D>,=STR(Q$,1,8)TO E$()STEP 16
: IF E$(1)>A$THEN 1650
: IF B1$>=B2$THEN 1680
: DATA LOAD BA T#2,(B1$,B1$)N$()
: GOTO 1590
1650 D=D+VAL(STR(E$(1),2))-8
: I=(D+15)/16
: IF STR(N$(I),1,1)<>HEX(10)THEN 1600
1680 RETURN
1710 I=9
: GOTO 1730
1720 I=1
1730 LIMITS T#1,"ACTIVE",U1,U2,U2
: U=0
: DATA LOAD BA T#6,(U,B1$)N$()
: MAT SEARCHN$()<1,32>,=STR(F$,1,8)TO E$()STEP 8
: IF E$(1)=A$THEN 1790
: IF INT(VAL(STR(E$(1),2))/16)+1<>VAL(Z$)THEN 1820
1790 STR(N$(VAL(Z$)),I,8)=F$
: DATA SAVE BA T#1,(U,B1$)N$()
: LIMITS T#2,U,U1,U2
1820 RETURN
1850 T2=1
: FOR I=1TO 4
: DATA LOAD BA T#2,(U+I,B1$)N$()
: MAT SEARCHN$()<1,250>,=STR(Q$,1,5)TO E$()STEP 5
: IF E$(1)=A$THEN 1920
: S2=50*(I-1)+(VAL(STR(E$(1),2))+4)/5
: RETURN
1920 NEXT I
: S2=0
: RETURN
1970 GOSUB '32("ENTER NAME OF LETTER OR DOCUMENT",5)
: GOSUB 1850
: GOSUB 1220
: IF S2>0THEN 2250
: PRINT HEX(010A);M$;" WAS NOT ON DISK. IT IS NOW BEING ADDED."
: IF F>0THEN 2030
: STOP "DISK FULL."
2030 S2=F
: F=VAL(T$(F))
: T$(S2)=HEX(00)
: INIT(20)N$()
: E$(1)=HEX(0F)
: MAT COPY E$()TO N$()<3*W+1,1>
: A=5*S2+1+U
: FOR I=1TO 5
: DATA SAVE BA T#2,(A,A)N$()
: MAT COPY E$()TO N$()<1,1>
: NEXT I
: N=INT((S2-1)/50)
: DATA LOAD BA T#2,(N+U+1,A)N$()
: G$(1)=Q$
: MAT COPY G$()TO N$()<5*(S2-50*N)-4,5>
: DATA SAVE BA T#2,(A-1,A)N$()
: MAT COPY T$()TO N$()<1,200>
2220 BIN(STR(N$(13),9))=F
: BIN(STR(N$(13),10))=F0
: DATA SAVE BA T#2,(0,A)N$()
2250 RETURN