image of READY prompt

Wang2200.org

Listing of file='DISKDUMP' on disk='vmedia/701-2048D.wvd.zip'

# Sector 265, program filename = 'DISKDUMP'
0010 REM DISKDUMP,00-00(02/18/76),12003A - COPYRIGHT WANG LABS. INC., 1976
0050 DIM R$(8)32,T$(8)32,T1$32,T2$32,S$32,R$1,Q$64,P$8,Q6$(1)64
   : DIM R1$8,R2$1,R3$2,R9$8,R9$(16),I$(8)3
   : I$(1)="310"
   : I$(2)="320"
   : I$(3)="330"
   : I$(4)="350"
   : I$(5)="B10"
   : I$(6)="B20"
0130 I$(7)="B30"
   : I$(8)="360"
   : INIT(2E)T$(1)
   : INIT(40)T$(5),T$(6),T$(7),T$(8)
   : T$(2)=HEX(202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3
     F)
0180 T$(3)=HEX(404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5
     F)
   : T$(4)=HEX(606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7
     F)
   : GOTO 3070
0210 RETURN
0240 GOSUB 2330
   : SELECT PRINT 215(131)
   : M=M+10
   : GOSUB 2930
   : PRINT "  BYTES","RECORD -";O-1
   : FOR I=0TO 7
   : PRINTUSING 380,I*32,(I+1)*32-1;
0380 %### - ###
0400 FOR J=1TO 32STEP 4
   : HEXPRINT STR(R$(I+1),J,4);
   : PRINT " ";
   : NEXT J
   : $TRAN(R$()<I*32+1,32>,T$())
   : PRINT TAB(90);R$(I+1)
   : NEXT I
   : PRINT " "
   : GOTO 2760
0560 T1$=HEX(3000310132023303340435053606370738083909410A420B430C440D450E460F)
   : T2$=HEX(300031103220333034403550366037703880399041A042B043C044D045E046F0)
   : GOSUB 2330
   : SELECT PRINT 215(80)
   : M=M+20
   : GOSUB 2930
0670 PRINT "  BYTES","RECORD -";O-1
   : FOR I=0TO 3
   : MAT COPY R$()<I*64+1,64>TO Q6$()
   : $TRAN(Q6$(),T$())
   : PRINT TAB(14);Q6$(1)
   : MAT COPY R$()<I*64+1,64>TO Q6$()
   : $TRAN(Q6$(),T2$)F0R
   : PRINTUSING 380,I*64,(I+1)*64-1;
   : PRINT TAB(14);Q6$(1)
0850 MAT COPY R$()<I*64+1,64>TO Q6$()
   : $TRAN(Q6$(),T1$)0FR
   : PRINT TAB(14);Q6$(1)
   : PRINT " "
   : NEXT I
   : PRINT " "
   : GOTO 2760
0980 GOSUB 2330
   : SELECT PRINT 215(80)
   : IF INT(R)=2THEN 2760
   : IF INT(R)=1THEN 2760
   : IF R-INT(R)=.2THEN 1120
   : SELECT PRINT 005(64),CO 005(64)
   : PRINT "INVALID RECORD ENCOUNTERED"
   : GOTO 2620
1120 I=0
   : M=M+3
   : GOSUB 2930
   : PRINT HEX(0A),"PHYSICAL RECORD -";O-1
   : IF STR(R$(1),1,1)=HEX(80)THEN 1300
   : C=1
   : AND (STR(R$(1),1,1),0F)
   : IF STR(R$(1),1,1)<>HEX(01)THEN 1300
   : C=0
1300 PRINT "LOGICAL RECORD -";E
   : PRINT "PHYSICAL RECORD WITHIN LOGICAL RECORD -";VAL(STR(R$(1),2,1))
   : K=1
   : T=3
   : PRINT "  FIELD      TYPE     LENGTH   VALUE"
1390 M=M+1
   : GOSUB 2930
   : IF M<>3THEN 1470
   : PRINT "  FIELD      TYPE     LENGTH   VALUE"
1470 IF T<33THEN 1530
   : K=K+1
   : T=T-32
1530 I=I+1
   : IF STR(R$(K),T,1)<>HEX(FD)THEN 1750
   : PRINT "BYTES USED -";B
   : M=M+1
   : B=0
   : IF C<>0THEN 2760
   : PRINT "LOGICAL RECORD LENGTH -";L
   : M=M+1
   : L=0
   : E=E+1
   : GOTO 2760
1750 PRINT TAB(4);I;
   : IF STR(R$(K),T,1)<HEX(80)THEN 2060
   : PRINT TAB(14);"ALPHA";
   : J=VAL(STR(R$(K),T,1))-127
   : PRINT TAB(25);J-1;
   : L=L+J
   : B=B+J
   : PRINT TAB(30);
   : MAT COPY R$()<(K-1)*32+T+1,J-1>TO Q6$()
   : $TRAN(Q6$(),T$())
   : PRINT STR(Q6$(1),1,J-1)
   : T=T+J
1990 IF T<=32THEN 1390
   : T=T-32
   : K=K+1
   : GOTO 1390
2060 PRINT TAB(13);"NUMERIC      8";
   : L=L+9
   : B=B+9
   : PRINT TAB(30);
   : Q6$(1)=HEX(8100080000000000000000FD)
   : MAT COPY R$()<(K-1)*32+T+1,8>TO Q6$()<4,8>
   : T=T+9
   : IF T<=32THEN 2260
   : T=T-32
   : K=K+1
2260 $UNPACKQ6$()TO Q2
   : PRINT Q2
   : GOTO 1390
2330 DATA LOAD BA T#1,(O,O)R$()
   : F=F+1
   : R$=HEX(E0)
   : AND (R$,STR(R$(1),1,1))
   : R=.1
   : R2$="P"
   : IF R$<HEX(80)THEN 2450
   : R=.2
   : R2$="D"
2450 AND (R$,70)
   : R=R+VAL(R$)/32
   : IF INT(R)<>1THEN 2490
   : IF R2$<>"P"THEN 2800
2490 IF A>=FTHEN 2330
   : IF F<=F2+1THEN 210
   : GOSUB '248(0,0,4)
   : PRINT "UPPER LIMIT REACHED"
   : GOTO 2620
2570 S$=" "
   : KEYIN S$,2590,2590
2590 IF STR(S$,1,1)="H"THEN 2620
   : IF INT(R)=1THEN 2620
2610 ON ZGOTO 240,560,980
2620 SELECT PRINT 005(64),CO 005
   : PRINT HEX(010A),"PROCESSING INTERRUPT  KEY 1-CONTINUE  2-MODIFY  3-REUSE
      4-END"
2640 KEYIN R$,2660,2870
   : GOTO 2640
2660 GOSUB '248(0,0,4)
   : IF R$="1"THEN 2570
   : IF R$="2"THEN 3920
   : IF R$="3"THEN 3070
   : IF R$<>"4"THEN 2620
   : SELECT PRINT 005(64),CO 005
   : GOTO 2870
2760 IF INT(R)<>1THEN 2570
   : IF R2$="D"THEN 2800
   : R2$="D"
   : GOTO 2800
2800 SELECT PRINT 005(64),CO 005
   : PRINT HEX(01)," END OF FILE"
   : GOTO 2620
2860 DEFFN'15
2870 SELECT PRINT 005(64),CO 005
   : PRINT HEX(03)
   : LOAD DC T#0,"START040"
2930 IF M<55THEN 210
   : M=3
   : PRINT HEX(0D0C)
   : PRINT T$,,P$,,"PAGE";P1
   : P1=P1+1
   : RETURN
3020 M=100
   : F=0
   : E,P1=1
   : GOTO 2610
3070 SELECT PRINT 005(64),CO 005(64)
   : PRINT HEX(03)
   : P$=Q1$
   : GOSUB '248(4,10,1)
   : PRINT "DATE - ";P$
   : GOSUB '248(11,15,0)
   : PRINT "****  ADDRESS  TABLE  ****"
   : PRINT TAB(15);"1 - 310",TAB(34);"5 - B10"
   : PRINT TAB(15);"2 - 320",TAB(34);"6 - B20"
3190 PRINT TAB(15);"3 - 330",TAB(34);"7 - B30"
   : PRINT TAB(15);"4 - 350",TAB(34);"8 - 360";HEX(01)
   : GOSUB '245("ENTER DISK UNIT NUMBER, SEE TABLE BELOW",1,0,1,6)
   : ON Q-1GOTO 3290,3320,3350,3380,3410,3440,3470
   : SELECT #1310
   : GOTO 3490
3290 SELECT #1320
   : GOTO 3490
3320 SELECT #1330
   : GOTO 3490
3350 SELECT #1350
   : GOTO 3490
3380 SELECT #1B10
   : GOTO 3490
3410 SELECT #1B20
   : GOTO 3490
3440 SELECT #1B30
   : GOTO 3490
3470 SELECT #1360
3490 GOSUB '248(11,0,5)
   : GOSUB '248(7,10,1)
   : PRINT "INPUT DISK DEVICE ADDRESS - UNIT ";I$(Q)
   : GOSUB '248(1,0,3)
   : PRINT "MOUNT DISK - UNIT ";I$(Q)
   : GOSUB 4320
3580 GOSUB '243("ENTER THE NAME OF THE FILE TO BE DUMPED",8)
   : T$=Q$
   : GOSUB '248(6,10,1)
   : PRINT "FILE - ";T$
   : GOSUB '229(1,T$)
   : IF R6=0THEN 3710
   : IF R2$<>HEX(11)THEN 3740
3710 GOSUB 4820
   : GOTO 3580
3740 LIMITS T#1,T$,O,T,T
   : P5=O
   : GOSUB '248(8,10,1)
   : PRINT "OUTPUT DEVICE - HIGH SPEED PRINTER"
   : GOSUB '248(1,0,3)
3820 PRINT "READY PRINTER"
   : GOSUB 4320
   : SELECT PRINT 215
   : PRINT HEX(00);
   : $IF ON /215,3920
   : GOSUB '248(1,0,3)
   : PRINT HEX(0A0A),"PRINTER IS NOT READY"
   : GOSUB '248(1,0,2)
   : GOTO 3820
3920 GOSUB '248(1,0,3)
   : GOSUB '243("DUMP PHYSICAL RECORDS WITHIN FILE (FFFF*LLLL OR ALL)",9)
   : A=0
   : O=P5
   : F2=9E99
   : S$=Q$
   : IF STR(Q$,1,3)="ALL"THEN 4050
   : I=POS(Q$="*")
   : CONVERT STR(Q$,1,I-1)TO A
   : CONVERT STR(Q$,I+1,POS(Q$=" ")-1)TO F2
4050 GOSUB '248(9,10,1)
   : PRINT "PHYSICAL RECORDS WITHIN FILE TO BE DUMPED - ";S$
   : GOSUB '248(11,15,0)
   : PRINT "****  DUMPS  AVAILABLE  ****"
   : PRINT ,"1 - HORIZONTAL"
   : PRINT ,"2 - VERTICAL"
4120 PRINT ,"3 - DATA FILE STRUCTURE"
   : GOSUB '245("ENTER TYPE OF DUMP, SEE TABLE BELOW",1,0,1,3)
   : Z=Q
   : GOSUB '248(5,10,1)
   : ON Q-1GOTO 4210,4230
   : PRINT "DUMP - HORIZONTAL"
   : GOTO 4240
4210 PRINT "DUMP - VERTICAL"
   : GOTO 4240
4230 PRINT "DUMP - DATA FILE STRUCTURE"
4240 GOSUB '248(11,0,4)
4250 GOSUB '243("PARAMETERS OKAY? (Y OR N)",1)
   : IF Q$="Y"THEN 4300
   : IF Q$="N"THEN 3070
   : GOSUB 4820
   : GOTO 4250
4300 GOSUB '248(0,0,4)
   : GOTO 3020
4320 INPUT "KEY RETURN(EXEC) TO RESUME",Q$
   : RETURN
4380 DEFFN'242(W,Q$)
   : IF W<=0THEN 5130
   : IF W=1THEN 4420
   : STR(Q$,2)=STR(Q$,1,W-1)
4420 PRINT Q$;
   : RETURN
4440 DEFFN'243(Q$,G)
   : GOSUB 4850
4460 SELECT CO 205
   : Q$=" "
   : KEYIN Q$,4490,4490
4490 INPUT Q$
   : IF Q$=" "THEN 4530
   : IF G=0THEN 4920
   : IF LEN(Q$)<=GTHEN 4920
4530 GOSUB 4820
   : GOSUB 4900
   : GOSUB 4870
   : GOTO 4460
4570 DEFFN'245(Q$,U,V,W1,W2)
   : G=ABS(U)+V+1
   : GOSUB 4850
4600 GOSUB '242(ABS(U)+2,HEX(09))
   : PRINT "/"
   : GOSUB 4900
   : SELECT CO 205
   : Q,W=-1E-99
   : KEYIN Q$,4660,4660
4660 INPUT Q
   : IF W=QTHEN 4720
   : IF W1>QTHEN 4720
   : IF W2<QTHEN 4720
   : IF Q>=0THEN 4770
   : IF U<=0THEN 4770
4720 GOSUB 4820
   : G=ABS(U)+V+1
   : GOSUB 4900
   : GOSUB 4870
   : GOTO 4600
4770 IF ABS(Q)>=10^ABS(U)THEN 4720
   : W=ABS(Q*10^V)
   : IF INT(W)<>WTHEN 4720
4800 D=3
   : GOTO 4970
4820 GOSUB 4800
   : PRINT "RE-ENTER"
   : RETURN
4850 GOSUB 5130
   : PRINT HEX(010A);STR(Q$,1);
4870 GOSUB 5130
   : GOSUB '242(G+2,"-")
   : PRINT TAB(64)
4900 PRINT HEX(010A0A)
   : RETURN
4920 PRINT HEX(0A);TAB(64)
   : GOTO 5130
4960 D=0
4970 X=0
   : Y=1
4990 DEFFN'248(D,X,Y)
   : GOSUB 5130
   : IF Y<1THEN 5100
   : GOSUB 5100
   : SELECT PRINT 205
   : Q$=" "
   : PRINT STR(Q$,X+1)
   : IF Y<2THEN 5100
   : FOR W=2TO Y
   : PRINT HEX(0A);STR(Q$,1)
   : NEXT W
5100 PRINT HEX(01)
   : PRINT TAB(X);
   : GOSUB '242(D,HEX(0A))
5130 SELECT PRINT 005(64),CO 005
   : RETURN
5170 DEFFN'229(R9,R9$)
   : DATA LOAD BA T#R9,(0,R3)R9$()
   : AND (STR(R9$(1),2,1),7F)
   : R4=VAL(STR(R9$(1),2,1))
   : R1$=R9$
   : XOR (STR(R1$,2),R1$)
   : R2$=STR(R1$,8,1)
   : R3$=HEX(0000)
   : ADDC(R3$,R2$)
   : ADDC(R3$,R2$)
   : ADDC(R3$,R2$)
5360 ADD(STR(R3$,1,1),STR(R3$,2,1))
   : R3=VAL(R3$)
   : R3=R3-INT(R3/R4)*R4
   : R5=R3
5440 DATA LOAD BA T#R9,(R3,R)R9$()
   : R6=0
   : FOR R7=1TO 16
   : IF R3<>0THEN 5560
   : IF R7<>1THEN 5560
   : R7=2
5560 R2$=STR(R9$(R7),1,1)
   : IF R2$=HEX(00)THEN 5680
   : IF R2$=HEX(10)THEN 5640
   : IF R2$<>HEX(11)THEN 5700
5640 IF STR(R9$(R7),9,8)<>R9$THEN 5700
   : R6=R7
5680 R7=16
5700 NEXT R7
   : IF R2$=HEX(00)THEN 5840
   : IF R6<>0THEN 5840
   : R3=R3-1
   : IF R3=R5THEN 5840
   : IF R3>=0THEN 5440
   : R3=R4-1
   : GOTO 5440
5840 RETURN