image of READY prompt

Wang2200.org

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