Listing of file='3741010A' on disk='vmedia/3741_util.wvd.zip'
# Sector 29, program filename = '3741010A'
0010 REM 3741010A,02.00(12/1/78),THIS PROGRAM IS A PRODUCT OF WANG LABS. INC.
0030 COM Q$(2)64,Q6$64,Q7$1,Q5$64
: COM R1$8,R2$1,R9$8,R9$(16)
: COM X9$(8)32
: DIM L9$(3)3
0105 DEFFN'15
: SELECT #1310,#5310,#6B10
: L9$(1)="310"
: L9$(2)="310"
: L9$(3)="B10"
: INIT(20)X9$(1)
: X9$(2)=HEX(202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E
3F)
: FOR I=3TO 8
: X9$(I)=X9$(I-1)
0260 ADD(X9$(I),X9$(1))
: NEXT I
: INIT("?")X9$(1),X9$(5),STR(X9$(4),32,1),STR(X9$(8),32,1)
0310 PRINT HEX(030A0A0A0A0A)
: PRINT ,"(1) PROGRAM LOADING ADDRESS = ";L9$(1)
: PRINT ,"(2) 2200 TC FILES ADDRESS = ";L9$(2)
: PRINT ,"(3) 3741 FILES ADDRESS = ";L9$(3)
0370 GOSUB '200("0","3",1,0,"ENTER THE NUMBER OF THE ITEM TO CHANGE. (0=END)",
1)
: IF Q9=0THEN 1320
: ON Q9GOSUB 470,670,870
: GOSUB '248(0,0,4)
: GOTO 370
0430 PRINT HEX(010A0A0A07);"RE-ENTER"
: GOTO 370
0470 PRINT HEX(010A);"KEY THE NUMBER OF THE DESIRED PROGGRAM LOADING ADDRESS."
;TAB(80)
: GOSUB 1070
: L9$(1)=A$
: GOSUB '248(5,46,0)
: PRINT A$
: ON IGOTO 530,550,570,590,610,630
0530 SELECT #1310
: RETURN
0550 SELECT #1320
: RETURN
0570 SELECT #1350
: RETURN
0590 SELECT #1B10
: RETURN
0610 SELECT #1B20
: RETURN
0630 SELECT #1360
: RETURN
0670 PRINT HEX(010A);"KEY THE NUMBER OF THE DESIRED 2200 TC FILES ADDRESS.";TA
B(80)
: GOSUB 1070
: L9$(2)=A$
: GOSUB '248(6,46,0)
: PRINT A$
: ON IGOTO 730,750,770,790,810,830
0730 SELECT #5310
: RETURN
0750 SELECT #5320
: RETURN
0770 SELECT #5350
: RETURN
0790 SELECT #5B10
: RETURN
0810 SELECT #5B20
: RETURN
0830 SELECT #5360
: RETURN
0870 PRINT HEX(010A);"KEY THE NUMBER OF THE DESIRED 3741 FILES ADDRESS.";TAB(8
0)
: GOSUB 1070
: L9$(3)=A$
: GOSUB '248(7,46,0)
: PRINT A$
: ON IGOTO 930,950,970,990,1010,1030
0930 SELECT #6310
: RETURN
0950 SELECT #6320
: RETURN
0970 SELECT #6350
: RETURN
0990 SELECT #6B10
: RETURN
1010 SELECT #6B20
: RETURN
1030 SELECT #6360
: RETURN
1070 PRINT HEX(010A0A0A0A0A0A0A0A0A0A)
: PRINT "---------------------------------------------------------------"
: PRINT TAB(24);"1. 310 4. B10"
: PRINT TAB(24);"2. 320 5. B20"
: PRINT TAB(24);"3. 350 6. 360"
1120 GOSUB '200("1","6",1,0," ",1)
: I=Q9
: GOSUB '248(10,0,4)
: ON IGOTO 1180,1200,1220,1240,1260,1280
1180 A$="310"
: RETURN
1200 A$="320"
: RETURN
1220 A$="350"
: RETURN
1240 A$="B10"
: RETURN
1260 A$="B20"
: RETURN
1280 A$="360"
: RETURN
1320 IF L9$(1)=L9$(3)THEN 1340
: IF L9$(2)<>L9$(3)THEN 1360
1340 PRINT HEX(07)
: GOTO 310
1360 PRINT HEX(03);"SYSTEM NOW LOADING - 3741 ACCESS SUBROUTINES"
: LOAD DC T#1,"3741000A"10,2990
1400 DEFFN'31
1410 GOSUB '229(0,"START")
: IF R=1THEN 1460
: PRINT HEX(030A);"MOUNT SYSTEM DISK."
: GOSUB '254
: GOTO 1410
1460 COM CLEAR
: PRINT HEX(03);"SYSTEM NOW LOADING - 'START'"
: LOAD DC T#0,"START"
3000 PRINT HEX(03);"SYSTEM NOW LOADING - SYSTEM MENU"
: LOAD DC T#1,"3741020A"3000,6990
7010 DEFFN'50(N$)
7030 $GIO/215(020803001222400040004000,R$)
: IF STR(R$,8,1)=HEX(00)THEN 7100
: GOSUB '248(1,0,1)
: PRINT "SELECT PRINTER"
: GOSUB '254
: GOTO 7030
7100 SELECT PRINT 215
: PRINT N$
: SELECT PRINT 005
: RETURN
7140 DEFFN'200(Q$(1),Q$(2),Q3,Q4,Q6$,Q5)
: Q6=Q9
: SELECT PRINT 005
: IF Q6$=" "THEN 7150
: PRINT HEX(010A);Q6$;TAB(80)
7150 INIT(20)Q5$,Q6$
: Q7=61
: IF Q3+Q4=0THEN 7160
: Q7=Q3+Q4+2*SGN(2-Q5)
: INIT("-")STR(Q5$,1,Q7-SGN(2-Q5))
: BIN(STR(Q5$,Q3+SGN(2-Q5),1))=45+2*SGN(2-Q5)
7160 PRINT HEX(0D010A0A);TAB(80)
: PRINT HEX(010A0A);"? ";Q5$
: PRINT HEX(010A0A0909);
: Q8=0
: KEYIN Q7$,7170,7170
7170 KEYIN Q7$,7200,7180
: GOTO 7170
7180 IF Q7$=HEX(0F)THEN 7190
: IF Q7$<>HEX(1F)THEN 7170
: GOSUB '31
: GOTO 7170
7190 GOSUB '15
: GOTO 7170
7200 IF Q7$=HEX(08)THEN 7210
: IF Q7$=HEX(E5)THEN 7150
: IF Q7$=HEX(0D)THEN 7220
: IF Q7$<HEX(20)THEN 7170
: IF Q7$>HEX(7F)THEN 7170
: Q8=Q8+1
: IF Q8>Q7THEN 7290
: STR(Q6$,Q8,1)=Q7$
: PRINT Q7$;
: GOTO 7170
7210 SELECT PRINT 005
: Q8=Q8-SGN(Q8)
: STR(Q6$,Q8+1)=" "
: IF Q8=0THEN 7160
: PRINT HEX(08);STR(Q5$,Q8,1);HEX(08);
: GOTO 7170
7220 Q8=Q8+1-SGN(Q8)
: ON Q5GOTO 7230,7310
: IF Q6$=" "THEN 7250
7230 IF Q8<>NUM(STR(Q6$,1,Q8))THEN 7290
: CONVERT Q6$TO Q9
: IF Q3+Q4=0THEN 7310
: IF ABS(Q9)>=10^ABS(Q3)THEN 7290
: IF INT(Q9*10^Q4)<>Q9*10^Q4THEN 7290
: GOTO 7310
7240 CONVERT Q$(1)TO Q7
: CONVERT Q$(2)TO Q8
: IF Q7>Q9THEN 7260
: IF Q9>Q8THEN 7260
7250 PRINT HEX(0D0A);TAB(80)
: RETURN
7260 PRINT HEX(0D010A0A0A07);"RE-ENTER",Q7;"<= ENTRY <=";Q8;TAB(80)
7270 Q9=Q6
: GOTO 7150
7280 IF Q$(1)>Q6$THEN 7290
: IF Q6$<=Q$(2)THEN 7250
7290 GOSUB 7300
: GOTO 7270
7300 DEFFN'255
: PRINT HEX(0D010A0A0A07);"RE-ENTER";TAB(80)
: RETURN
7310 IF Q$(1)<>Q$(2)THEN 7320
: IF Q$(1)=" "THEN 7250
7320 ON Q5+1GOTO 7240,7240,7280
7330 DEFFN'242(W0,Q6$)
: SELECT PRINT 005
: IF W0<=0THEN 7340
: INIT(Q6$)Q6$
: PRINT STR(Q6$,1,W0-INT((W0-1)/63)*63);
: W0=W0-(W0-INT((W0-1)/63)*63)
: GOTO 7330
7340 RETURN
7350 DEFFN'254
: SELECT PRINT 005
: PRINT HEX(010A0A);TAB(80);HEX(010A0A)
: Q6$=" "
7360 KEYIN Q6$,7360,7360
: INPUT "KEY RETURN(EXEC) TO RESUME ",Q6$
: PRINT HEX(010A);TAB(80),TAB(80),TAB(80)
: RETURN
7370 DEFFN'248(Q6,Q7,Q8)
: SELECT PRINT 005
: IF Q8=0THEN 7390
: IF ABS(Q8)<>9E99THEN 7380
: PRINT HEX(03)
: GOTO 7390
7380 GOSUB 7390
: SELECT PRINT 205
: PRINT TAB(72-8*SGN(Q8)-Q7)
: IF ABS(Q8)<2THEN 7390
: FOR W0=2TO ABS(Q8)
: PRINT HEX(0A);TAB(72-8*SGN(Q8))
: NEXT W0
7390 PRINT HEX(01)
: GOSUB '242(Q7,HEX(09))
: GOSUB '242(Q6,HEX(0A))
: SELECT PRINT 005
: RETURN
7400 DEFFN'229(R9,R9$)
: DATA LOAD BA T#R9,(0,R3)R9$()
: R4=VAL(STR(R9$(1),2))
: R1$=R9$
: XOR (STR(R1$,2),R1$)
: R=3*VAL(STR(R1$,8))
: R=INT(R/256)+R-INT(R/256)*256
: R3,R5=R-INT(R/R4)*R4
7410 DATA LOAD BA T#R9,(R3,R)R9$()
: R,R6=0
: FOR R7=2-SGN(R3)TO 16
: R2$=STR(R9$(R7),1,1)
: IF R2$=HEX(00)THEN 7420
: IF R2$=HEX(21)THEN 7430
: IF STR(R9$(R7),9)<>R9$THEN 7430
: R=SGN(16.5-VAL(R2$))*(2-SGN(VAL(STR(R9$(R7),2,1))))
: R6=R7
7420 RETURN
7430 NEXT R7
: R2$=HEX(00)
: R3=R3-1
: IF R3>=0THEN 7435
: R3=R4-1
7435 IF R3=R5THEN 7420
: GOTO 7410
7440 DEFFN'228(R9,R9$,R1)
: GOSUB '229(R9,R9$)
: ON VAL(R2$)-15GOTO 7510,7520
: R2$="0"
: DATA LOAD BA T#R9,(0,R3)R9$()
: AND (STR(R9$(1),3,1),7F)
: AND (STR(R9$(1),5,1),7F)
7450 R3=256*VAL(STR(R9$(1),5))+VAL(STR(R9$(1),6))-256*VAL(STR(R9$(1),3))-VAL(S
TR(R9$(1),4))
: IF R3<ABS(R1)+2THEN 7500
: IF R1>=0THEN 7460
: R3=ABS(R1)
7460 DATA SAVE DC OPEN T#R9,(R3),R9$
: RETURN
7470 DEFFN'227(R9,R9$,R1)
: GOSUB '229(R9,R9$)
: IF R2$=HEX(00)THEN 7520
: LIMITS T#R9,R9$,R2,R3,R0
: R2=R2+R1+R0-1
: IF R2>=R3THEN 7500
: DATA LOAD BA T#R9,(0,R4)R9$()
: AND (STR(R9$(1),3,1),7F)
: R4=256*VAL(STR(R9$(1),3))+VAL(STR(R9$(1),4))
7480 IF R4-1<>R3THEN 7490
: BIN(STR(R9$(1),3,1))=INT((R2+1)/256)
: BIN(STR(R9$(1),4,1))=R2+1-INT((R2+1)/256)*256
: DATA SAVE BA T#R9,(0,R)R9$()
7490 DATA LOAD BA T#R9,(R3,R3)R9$()
: DATA SAVE BA T#R9,(R2,R3)R9$()
: GOSUB '229(R9,R9$)
: BIN(STR(R9$(R6),5,1))=INT(R2/256)
: BIN(STR(R9$(R6),6,1))=R2-INT(R2/256)*256
: DATA SAVE BA T#R9,(R3,R3)R9$()
: R2$="0"
: RETURN
7500 R2$="1"
: RETURN
7510 R2$="2"
: RETURN
7520 R2$="3"
: RETURN
7530 DEFFN'226(R9,R9$)
: GOSUB '229(R9,R9$)
: IF R6<>0THEN 7540
: R3=0
: GOTO 7580
7540 R6=R6+1
: IF R6>16THEN 7570
: R5=0
: FOR R7=R6TO 16
: R2$=R9$(R7)
: IF R2$=HEX(00)THEN 7550
: IF R2$=HEX(21)THEN 7560
: R9$=STR(R9$(R7),9)
: R5=1
: R6=R7
7550 R7=16
7560 NEXT R7
: IF R5=1THEN 7600
7570 R3=R3+1
: IF R3>=R4THEN 7590
7580 DATA LOAD BA T#R9,(R3,R)R9$()
: R6=1-SGN(R3)
: GOTO 7540
7590 INIT(00)R9$
7600 GOSUB '229(R9,R9$)
: RETURN