image of READY prompt

Wang2200.org

Listing of file='INVT110E' on disk='vmedia/701-2661A.wvd.zip'

# Sector 91, program filename = 'INVT110E'
0010 REM INVT110E, RELEASE 1-0, (06/15/79), THIS PROGRAM IS A COPYRIGHT PRODUC
     T OF WANG LABORATORIES., UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED,
     SALES PROJ/L.O.S. EXECUTION
0170 DIM B8$24,B9$24,D6(13),D8(13),E6(13),E8(13),E9$10,F9$1,P$(12)3,K5$(50)4
   : DIM D6$4,D6$(3)8,D7$6,D7$(39)15,K9$4
   : DIM C6$4,C6$(21)2,C7$(21)1,P7$(1)2
4000 GOSUB 6575
   : IF I6$="K"THEN 4250
   : DATA LOAD DC OPEN T#4,S$(4)
   : LIMITS T#1,S$(1),B6,E8,E8
   : DATA LOAD DC OPEN T#1,S$(1)
   : DATA LOAD DC #4,K5$()
   : IF END THEN B8=0
   : ELSE B8=1
   : GOSUB '90
   : IF B8=0THEN GOSUB '31
4070 IF B8<51THEN 4095
   : B8=1
   : DATA LOAD DC #4,K5$()
   : IF END THEN K5$()=ALL(FF)
4095 IF STR(K5$(B8),1,1)<>HEX(FF)THEN 4120
   : GOSUB 4555
   : GOSUB 4615
   : GOSUB '31
4120 B7=VAL(K5$(B8),2)-B6
   : IF B7=0THEN 4135
   : DSKIP #1,B7S
4135 GOSUB '78(1)
   : F8$=STR(M$(B6(1)),B6(2),B6(3))
   : DBACKSPACE #1,(B7+1)S
   : IF F9$="1"THEN 4180
   : F6$=F8$
   : GOSUB 4950
   : GOTO 4205
4180 IF F6$=F8$THEN 4205
   : GOSUB 4555
   : F6$=F8$
   : GOSUB 4950
4205 MAT D6=ZER
   : ON I6+1GOSUB 6270,5420
   : F9$="1"
   : B8=B8+1
   : GOTO 4070
4250 GOSUB '90
   : IF K6>3THEN 4350
   : ON K6GOTO 4350,4295
4270 GOSUB '100(" ",HEX(7F),Q0,0,"ENTER PRODUCT ID  (OR END)",2)
   : IF Q6$=HEX(1F)OR Q6$="END"OR Q6$="end"THEN 4505
   : GOSUB '96(2)
   : F6$=Q6$
4295 GOSUB '232(1,0,F6$)
   : IF K6=3THEN 4310
   : IF Q$="N"THEN 4445
4310 GOSUB '91
   : IF J0=0THEN 4390
   : PRINT AT(3,LEN(J$(J0))+1);"- PRODUCT ID ";F6$
   : IF J0=3THEN 4270
   : IF J0<>7THEN 6555
   : GOSUB '92
   : GOTO 4295
4350 GOSUB '235(1,0)
   : IF Q$=" "THEN 4390
   : GOSUB '91
   : PRINT AT(3,LEN(J$(J0))+1);"- INVENTORY FILE"
   : IF J0<>7THEN 6555
   : GOSUB '92
   : GOTO 4350
4390 GOSUB '78(1)
   : IF K6<4THEN 4420
   : F8$=STR(M$(B6(1)),B6(2),B6(3))
   : IF F8$<>F6$THEN 4445
4420 MAT D6=ZER
   : ON I6+1GOSUB 6270,5420
   : F9$="1"
   : IF K6=3THEN 4270
4445 GOSUB '237(1,0)
   : IF Q$=" "THEN 4495
   : IF Q$="E"THEN 4505
   : GOSUB '91
   : IF J0<>7THEN 4480
   : GOSUB '92
   : GOTO 4445
4480 PRINT AT(3,LEN(J$(J0))+1);"- INVENTORY FILE"
   : GOTO 6555
4495 IF K6<>2THEN 4390
   : IF T7$<=F7$THEN 4390
4505 GOSUB 4555
   : GOSUB '31
4530 % ##########
4535 DEFFNL(Z)=ROUND((100*E6(Z)/(E6(Z)+E6(1+Z)),2)
4540 DEFFNR(Z)=ROUND((Z,0)
4555 MAT E6=D8
   : MAT E8=E8+D8
   : MAT D8=ZER
   : B8$="TOTALS"
   : B9$=" "
   : IF I6=0THEN 4630
   : IF I6$="K"THEN 4630
   : B8$=F6$
   : STR(B8$,LEN(B8$)+2)="TOTALS"
   : GOTO 4630
4615 B8$="GRAND TOTALS"
   : B9$=" "
   : MAT E6=E8
4630 GOSUB '90
   : PRINT HEX(0A)
   : L=L+1
   : IF F9$="1"THEN 4675
4650 PRINT "   NO PRODUCTS IN GROUP"
   : L=L+1
   : RETURN
4675 IF I6=1THEN 4755
   : I4=E6(1)
   : FOR I3=1TO 12
   : IF E6(I3)<=I4THEN 4700
   : I4=E6(I3)
4700 NEXT I3
   : IF I4<99999999THEN 4755
   : I4=INT(LOG(I4+1)/LOG(10))-7
   : B9$="SCALED BY 1"
   : INIT(30)Q6$
   : STR(B9$,12)=STR(Q6$,1,I4)
   : MAT E6=(10^(-I4))*E6
4755 GOSUB '90
   : IF I6=0THEN 4825
   : IF A6$="S"THEN 4780
   : PRINT TAB(5);B8$;TAB(19);B9$;TAB(I2-1);
   : GOTO 4790
4780 PRINT B8$;TAB(I2-1);
4790 I3,I4=0
   : IF E6(1)+E6(2)>0THEN I3=FNL(1)
   : IF E6(3)+E6(4)>0THEN I4=FNL(3)
   : PRINTUSING "-#####,###,### -#####,###,###  -###.##  -#####,###,### -#####
     ,###,###  -###.##",E6(1),E6(2),I3,FNR(E6(3)),FNR(E6(4)),I4
   : L=L+1
   : RETURN
4825 PRINT B8$;TAB(12);
   : Q9,I4=0
   : FOR I3=1TO 13
   : IF I3=I2THEN 4880
   : I4=I4+1
   : E8=E6(I4)
   : Q9=Q9+E8
   : E6(I4)=Q9
   : PRINTUSING " ########",FNR(E8);
   : GOTO 4885
4880 PRINTUSING 4530,FNR(E6(13)+Q9);
4885 NEXT I3
   : PRINT
   : PRINT "  ";B9$;
   : FOR I3=3TO 12STEP 3
   : PRINT TAB(1+I3*9+5.5*(SGN(I3-I2+.5)+1));
   : PRINTUSING 4530,FNR(E6(I3));
   : NEXT I3
   : PRINT
   : L=L+2
   : RETURN
4950 IF A6$="S"AND I6=1THEN RETURN
   : GOSUB '90
   : PRINT HEX(0A);TAB(5*(1-K6));"*** ";B6$;" ";F8$;" ***"
   : PRINT HEX(0A)
   : L=L+3
   : RETURN
4995 MAT D8=D8+D6
   : IF A6$="D"THEN 5010
   : RETURN
5010 B8$=F1$
   : B9$=F2$
   : MAT E6=D6
   : GOSUB 4755
   : RETURN
5045 DEFFN'90
   : SELECT PRINT 005(80)
   : Q6$=" "
   : KEYIN Q6$,5070,5070
5070 IF Q6$="P"THEN GOSUB '254
   : IF Q6$=HEX(1F)THEN GOSUB '31
   : SELECT PRINT <I0$>(132)
   : IF L<=L0-3THEN RETURN
   : P1=P1+1
   : PRINT HEX(0D0C0A0E);TAB(3);N2$
   : IF I6=0THEN 5130
   : PRINT TAB(55);"LEVEL OF SERVICE REPORT";
   : GOTO 5150
5130 Q6$="DOLLARS"
   : IF A9$="Y"THEN 5145
   : Q6$="UNITS"
5145 PRINT "FIGURES IN ";Q6$;TAB(55);"SALES PROJECTION REPORT";
5150 PRINT TAB(109);Q1$;"    PAGE";P1
   : L=3
   : IF P1>1THEN 5240
   : PRINT HEX(0A);"DATA GROUPING: ";B6$;"  ";
   : IF (K6-1)*(K6-3)=0THEN 5205
   : IF F6$=" "THEN PRINT "BEGINNING";
   : ELSE PRINT F6$;
   : IF F7$=F6$THEN 5205
   : Q6$=F7$
   : IF POS(STR(F7$,1,B6(3))<>7F)=0THEN Q6$="END"
   : PRINT " TO ";Q6$;
5205 PRINT
   : L=L+2
   : IF I6$="K"THEN 5240
   : IF B8>0THEN 5240
   : PRINT HEX(0A)
   : GOSUB 4650
   : RETURN
5240 IF I6=0THEN 5300
   : PRINT HEX(0A);TAB(I2+3);"YEAR TO DATE UNIT SALES:   LEVEL OF         YEAR
      TO DATE $ SALES:  LEVEL OF"
   : IF A6$="S"THEN 5265
   : PRINT TAB(5);"PRODUCT ID    DESCRIPTION";
5265 PRINT TAB(I2+9);"MADE           LOST   SERVICE           MADE           L
     OST   SERVICE"
   : PRINT HEX(0A)
   : L=L+4
   : RETURN
5300 I4=1+SGN(I5-1)*(13-I5)
   : Q6$=STR(Q1$,7,2)
   : IF K5+I5=2THEN 5330
   : CONVERT STR(Q1$,7,2)TO I3
   : CONVERT I3+1TO Q6$,(##)
5330 IF A6$="S"THEN 5340
   : PRINT HEX(0A);"PRODUCT ID";
5340 PRINT TAB(I4*9+8+5.5*(SGN(I4-I2+.5)+1));"19";Q6$
   : PRINT "DESCRIPTION ";
   : FOR I3=1TO 13
   : IF I3<>I2THEN 5370
   : PRINT "      TOTAL";
5370 IF I3=13THEN 5380
   : PRINT "      ";P$(I3);
5380 NEXT I3
   : PRINT
   : PRINT "  QUARTERLY CUMULATIVE TOTALS"
   : PRINT HEX(0A)
   : L=L+5
   : RETURN
5420 D6(1)=H+H2
   : D6(2)=D3(1)+D3(2)
   : D6(3)=H1+H4
   : IF D6(1)*D6(3)<=0THEN 5460
   : I4=D6(3)/D6(1)
   : GOTO 5470
5460 IF H(1)>0THEN I4=H(1)
   : ELSE I4=0
5470 D6(4)=I4*D6(2)
   : FOR I3=1TO 4
   : D6(I3)=ROUND((D6(I3),0)
   : NEXT I3
   : GOSUB 4995
   : RETURN
5495 DEFFN'173
   : B$=" "
   : IF K9=0THEN 5760
   : IF INT(-C5)=-1THEN 5530
   : B$="A"
5530 GOSUB 6085
   : INIT(00)D6$(),D7$()
   : CONVERT STR(K9$,1,2)TO F7
   : D8,F9=F7
   : D6=D
   : IF D>0THEN 5590
   : D6,D7,D9=0
   : B$="D"
   : RETURN
5590 D7=D1
   : E7=D*D7
   : IF A4$="F"THEN 5610
   : D7,E7=0
5610 IF I9=0THEN 5630
   : GOSUB 5815
5630 A6=B(F7)*D6*(1+D7*.5)
   : A7=A6+C8*D6*SQR(B(F7))
   : A8=A7-F6
   : IF A8>0THEN 5660
   : A8=0
5660 F6=F6+A8-A6
   : $PACK(F=D7$)D7$(F9-D8+1)FROMA6,A7,A8
   : IF D7>0THEN 5695
   : D6=D6*(1+D7)
   : GOTO 5700
5695 D6=D6+E7
5700 IF F7<>P2THEN 5725
   : GOSUB 5775
   : $PACK(F=D6$)D6$(-INT(-F9/P))FROMD6,D9
5725 F7=F7+1
   : F9=F9+1
   : IF F7<=PTHEN 5745
   : F7=1
5745 IF F9<D8+K9THEN 5630
   : GOSUB 5775
5760 RETURN
5775 D9=0
   : IF F8=0THEN 5790
   : D9=(D6-F8)/F8
5790 F8=D6
   : RETURN
5815 IF K9>1THEN 5845
   : IF B(F7)=0THEN 6055
   : D7=2*(I9/(D*B(F7))-1)
   : GOTO 6040
5845 D7,E7,A7,A8=0
   : FOR A6=D8TO D8+K9-1
   : D9=A6-INT((A6-1)/P)*P
   : A7=A7+B(D9)
   : A8=A8+B(D9)*(A6-D8)
   : NEXT A6
   : IF A7*D>I9THEN 5940
   : IF A8=0THEN 6055
   : D7=(-A7*.5-A8+SQR(A7*A7*.25+A8*A8-A7*A8+2*A8*I9/D))/A8
   : E7=D*D7
   : RETURN
5940 IF I9<=D*.5*B(F7)THEN 6055
5955 A7=B(D8)
   : A8=0
   : A9=1
   : FOR A6=D8+1TO D8+K9-1
   : D9=A6-P*INT((A6-1)/P)
   : A8=A8+B(D9)*A9*(A6-D8)
   : A9=A9*(1+D7)
   : A7=A7+B(D9)*A9
   : NEXT A6
   : A8=D*((1+.5*D7)*A8+.5*A7)
   : IF A8=0THEN 6055
   : A7=(D*(1+.5*D7)*A7-I9)/A8
   : D7=D7-A7
   : IF ABS(A7)>=.001THEN 5955
6040 IF D7<=-1THEN 6055
   : RETURN
6055 D7=D1
   : B$="C"
   : RETURN
6085 IF D0*D=0THEN 6145
   : C8=C5
   : IF INT(-C8)=-1THEN 6105
   : C8=.95
6105 C8=D/D0*(1-C8)
   : IF C8>=.5THEN 6145
   : PACK(.####)C6$FROMC8
   : MAT SEARCHC6$(),>STR(C6$,1,2)TO P7$()STEP 2
   : C9=.5*VAL(STR(P7$(1),2))+.5
   : IF C9>1THEN 6160
6145 C8=0
   : RETURN
6160 UNPACK(.####)C6$(C9-1)TO D6
   : UNPACK(.####)C6$(C9)TO D8
   : UNPACK(#.#)C7$(C9-1)TO D7
   : UNPACK(#.#)C7$(C9)TO D9
   : C8=((D9-D7)/(D8-D6)*(C8-D6)+D7)*(D0/D)
   : RETURN
6205 DEFFN'172
   : A4$="F"
   : C5=.95
   : D1=0
   : I9=0
   : P=12
   : P2=I8
   : D6$=HEX(51055303)
   : D7$=HEX(510551055105)
   : RETURN
6270 IF E9$=G1$THEN 6355
   : GOSUB '232(2,0,G1$)
   : IF Q$=" "THEN 6340
   : IF Q$="N"THEN 6315
   : GOSUB '91
   : PRINT AT(3,LEN(J$(J0))+1);"- PROFILE ID ";G1$
   : IF J0<>7THEN 6555
   : GOSUB '92
   : GOTO 6270
6315 GOSUB '90
   : L=L+1
   : PRINT F1$;"  PROFILE ";G1$;" NOT FOUND"
   : RETURN
6340 GOSUB '79(8)
   : E9$=G1$
6355 Q9=1
   : IF I1$="L"THEN 6380
   : Q9=2
   : IF I1$="M"THEN 6380
   : Q9=3
6380 A4$=STR(D4$(),Q9,1)
   : D0,F8=0
   : GOSUB '173
   : FOR I3=I7TO I7+11
   : $UNPACK(F=D7$)D7$(I3)TO D6(I3-I7+1)
   : NEXT I3
   : IF K2=0THEN 6465
   : FOR I3=K1TO K1+K2-1
   : $UNPACK(F=D7$)D7$(I3)TO I4
   : D6(13)=D6(13)+I4
   : NEXT I3
6465 Q9=H2
   : IF A9$="N"THEN 6530
   : IF H+H2<10THEN 6500
   : I4=(H1+H4)/(H+H2)
   : GOTO 6510
6500 IF H(1)>0THEN I4=H(1)
   : ELSE I4=0
6510 MAT D6=(I4)*D6
   : Q9=H4
6530 D6(13)=D6(13)+Q9*K3
   : FOR I3=1TO 13
   : D6(I3)=ROUND((D6(I3),0)
   : NEXT I3
   : GOSUB 4995
   : RETURN
6555 PRINT AT(1,0,80);"PROGRAM WILL BE TERMINATED"
   : GOSUB '254
6575 SELECT @PARTS0$
   : SELECT PRINT 005(80),LIST 005,CO 005
   : IF I6=0THEN Q6$="SALES PROJECTION REPORT"
   : ELSE Q6$="LEVEL OF SERVICE REPORT"
   : PRINT HEX(03);AT(0,40-.5*LEN(Q6$));Q6$
   : GOSUB '93(" ")
   : IF I0$=" "THEN GOSUB '31
   : IF K6<>3THEN PRINT AT(10,33,0);"PRINTING REPORT"
   : F9$="0"
   : P1=0
   : L=L0+5
   : MAT D8=ZER
   : MAT E8=ZER
   : I2=48
   : IF A6$="D"THEN 6660
   : I2=22
6660 IF I6=1THEN RETURN
   : Q6$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
   : MAT REDIM P$(1)36
   : P$(1)=STR(Q6$,I5*3-2)
   : IF I5=1THEN 6695
   : STR(P$(1),40-I5*3)=Q6$
6695 MAT REDIM P$(12)3
   : GOSUB '172
   : STR(K9$,1,2)=STR(Q1$,1,2)
   : CONVERT STR(K9$,1,2)TO K5
   : I7=1+I5-K5-6*(SGN(I5-K5+.5)-1)
   : K9=I7+11
   : K1,K3=1
   : K2=I7-1
   : I2=2+I8-I5-6*(SGN(I8-I5+.5)-1)
   : IF I2<13THEN 6785
   : K2,K3=0
   : RETURN
6785 IF I7=1THEN RETURN
   : FOR I3=K5TO K5+I7-1
   : IF I3-12*INT((I3-1)/12)<>I8THEN 6815
   : K1=I3-K5+2
   : K2=I7-K1
   : K3=0
6815 NEXT I3
   : RETURN
6835 DEFFN'31
   : SELECT PRINT 005(80)
   : PRINT HEX(030A);TAB(20);"** TERMINATING PROGRAM **"
   : Q=2
   : LOAD T"KFAMOPEN"10,6835BEG 6865
6865 LOAD T"COMCLEAR"10,199BEG 6870
6870 SELECT @PARTS0$
   : IF I6$="S"THEN 6895
   : GOSUB '239(1)
   : GOTO 6905
6895 GOSUB '219(S$(1),1,S2," ",0)
   : GOSUB '219(S$(4),4,S2," ",0)
6905 IF I6=0THEN GOSUB '239(2)
   : COM CLEAR I
   : LOAD TM$
7140 DEFFN'29"Q$=";HEX(22);"INVT110E";HEX(22);":SCRATCHTQ$:SAVET$()Q$";HEX(0D)