image of READY prompt

Wang2200.org

Listing of file='SAC103AA' on disk='vmedia/701-2003.wvd.zip'

# Sector 371, program filename = 'SAC103AA'
0010 REM    PROGRAM NAME = SAC103AA
0020 REM    SYSTEM NAME = BAS1A
0030 REM    PROGRAM FUNCTION = CUSTOMER INQUIRY/LIST
0040 REM    MODULE NAME = MAIN
0050 REM THIS PROGRAM IS A PART OF A GENERALIZED APPLICATION
0060 REM SYSTEM COPYRIGHT, WANG LABS., INC. 1975
0070 REM     DATE WRITTEN = 10/73
0080 REM     REVISION DATE = 5/74
0090 REM     REVISION DATE = MM/YY
0100 REM    CURRENT WANG LIBRARY # =
0110 REM    THIS PROGRAM GIVES AN INQUIRY/LIST OF A CUSTOMER RECORD
0120 REM    A. FILES USED = CUSTOMER MASTER FILE
0130 REM    B. FUNCTIONS PERFORMED = DISPLAYS AN INQUIRY/LIST,PRINTS OUT LIST
0140 REM
0150 REM FLOWCHART PAGE 1 BEGINS HERE
0160      DIM R$2,C$5,N$18,T(12),L(12)
0170      DIM C2$5,C3$5,C4$5,T5$
0180 REM C2$=CURRENT,C3$=LAST,C4$=ENDING
0190     SELECT PRINT 005
0200     PRINT HEX(03)
0210     GOTO 580
0220 REM GET CUSTOMER FROM FILE
0230 REM B=0 BLOCK COUNT CHECK TO SEE IF FILE IS OPEN
0240 REM
0250     IF B=0 THEN 290
0260     C3$=C$
0270     GOTO 340
0280 REM
0290     B=1
0300 REM OPEN FILE UTILITY-GOSUB'250
0310 REM
0320     GOSUB '250 (2,"SAC1F010",1)
0330 REM
0340     DATA LOAD DC #2,R$,C$,N$,S,T(),L()
0350 REM TEST FOR TYPE OF RECORD
0360     IF R$="A3" THEN 420
0370     B=B+1
0380     C3$=C$
0390     RETURN
0400 REM CLOSE FILE UTILITY
0410 REM
0420     GOSUB '251(2)
0430 REM TEST TO SEE IF A3 IS EOF OR EOR
0440     IF Q5$="F" THEN 510
0450 REM OPEN NEXT VOL.
0460     B=1
0470     GOTO 340
0480 REM EOF  ERROR MESSAGE DISPLAQ
0490 REM POSITION CURSOR UTILITY-GOSUB'248
0500 REM
0510     GOSUB '248(3,0,1)
0520     PRINT "FILE SAC1F010 IS MISSING NORMAL ENDING FORMAT, RECREATE FILE P
     ROPERLY."
0530     STOP "END OF PROGRAM"
0540 REM  PAGE 1 OF FLOWCHART - 1B1 = FLOWCHART REFERENCE
0550 REM INITIALIZE COUNTERS SET UP DEFAULT CONDITIONS.
0560 REM END CUST =^^^^^,NO. OF RECORDS TO BE LISTED =99E99
0570 REM
0580     C4$="^^^^^"
0590     R=9.9E99
0600     L1 = 60
0610     P =1
0620     T5,L5=0
0630 REM  TYPE OF LISTINGS
0640 REM
0650     GOSUB '243("ENTER 'A' - ALL,'T'-TOTALS,'R'-RANGE,'N'-NUMBER,'I'-INDIV
     IDUAL",1)
0660 REM CHECK FOR VALID CODE
0670     T5$=Q6$
0680     IF Q6$="A" THEN 1370
0690     IF Q6$="T" THEN 3570
0700     IF Q6$="N" THEN 790
0710     IF Q6$="R" THEN 1240
0720     IF Q6$="I" THEN 1370
0730 REM INVALID CODE
0740     GOSUB '248(3,0,1)
0750     PRINT "ERROR - RE-ENTER"
0760     GOTO 650
0770 REM INQUIRY - NO. OF CUSTOMERS OPTION
0780 REM
0790     GOSUB '245 ("NUMBER OF CUSTOMERS TO BE LISTED",8,0)
0800     IF Q9<=0 THEN 840
0810     R=INT(Q9)
0820     GOTO 890
0830 REM
0840     GOSUB '248(3,0,1)
0850     PRINT "NUMBER MUST BE GREATER THAN 0"
0860     GOTO 790
0870 REM INQUIRY - STARTING CUSTOMER ID
0880 REM
0890    GOSUB '243("STARTING CUSTOMER ID",5)
0900    C2$=Q6$
0910     GOTO 1370
0920 REM INDIVIDUAL OPTION
0930 REM INQUIRY - CUSTOMER ID
0940 REM
0950    GOSUB '243("ENTER CUSTOMER ID",5)
0960    IF Q6$="END" THEN 3280
0970 REM INVALID RESPONSES
0980    IF Q6$="     "THEN 950
0990    IF Q6$="^^^^^"THEN 950
1000 REM OUT OF SEQUENCE CHECK
1010   IF Q6$<C2$ THEN 1180
1020 REM ON FILE CHECK
1030     IF Q6$>=C3$ THEN 1120
1040     PRINT HEX(01)
1050     PRINT " "
1060     PRINT " "
1070     PRINT " "
1080     PRINT "CUSTOMER NOT ON FILE. NEXT CUSTOMER IS ";C3$;"YOU ENTERED:";C2
     $
1090    GOTO 950
1100 REM CHECK IF YOU WANT TO LIST CURRENT
1110 REM
1120    IF Q6$=C3$ THEN 2270
1130 REM SET STARTING, CURRENT, AND END CUST. EQUAL
1140    C2$,C4$=Q6$
1150    GOTO 1940
1160 REM ERROR-CUSTOMER ID OUT OF SEQUENCE
1170 REM
1180     GOSUB '248 (3,0,1)
1190     PRINT "CUSTOMER OUT OF SEQUENCE"
1200     GOTO 950
1210 REM RANGE OPTION
1220 REM INQUIRY - STARTING CUSTOMER ID
1230 REM
1240    GOSUB '243("STARTING CUSTOMER ID",5)
1250    C2$ = Q6$
1260 REM INQUIRY - ENDING CUSTOMER ID
1270 REM
1280   GOSUB '243("ENDING CUSTOMER ID",5)
1290   IF Q6$="     " THEN 1370
1300   C4$=Q6$
1310   IF C2$<C4$ THEN 1370
1320   GOSUB '248(3,0,1)
1330   PRINT "RANGE IS NOT SEQUENTIAL"
1340   GOTO 1240
1350 REM INQUIRY - HARD COPY
1360 REM
1370     GOSUB '243("HARD COPY (Y OR N)",1)
1380     IF Q6$ = "Y" THEN 1450
1390     IF Q6$= "N" THEN 1480
1400     GOSUB '248 (3,0,1)
1410     PRINT "ERROR, ENTER 'Y' OR 'N'"
1420     GOTO 1370
1430 REM INQUIRY - TYPEWRITER OR LINE PRINTER
1440 REM
1450   H2 = 1
1460 REM INQUIRY - SCREEN DISPLAY
1470 REM
1480     GOSUB '243 ("SCREEN DISPLAY (Y OR N)",1)
1490     IF Q6$="Y" THEN 1620
1500     IF Q6$= "N" THEN 1560
1510     GOSUB '248 (3,0,1)
1520     PRINT "ERROR, ENTER 'Y' OR 'N'"
1530     GOTO 1480
1540 REM MUST HAVE EITHER SCREEN OR HARD COPY OUTPUT - 1J2
1550 REM
1560     IF H2 = 1 THEN 1870
1570     GOSUB '248 (3,0,1)
1580     PRINT "ERROR, MUST CHOOSE METHOD OF OUTPUT"
1590     GOTO 1370
1600 REM SET SCREEN INDICATOR
1610 REM
1620    D1=1
1630 REM PAUSE IS USED FOR ALL, RANGE,AND NUMBER OPTION
1640 REM
1650    IF T5$="A" THEN 1720
1660    IF T5$="N" THEN 1720
1670    IF T5$="R" THEN 1720
1680    M = 2
1690    GOTO 1870
1700 REM PAUSE OPTIONS
1710 REM
1720    GOSUB '243("AUTO OR MANUAL (A OR M)",1)
1730    IF Q6$ = "A" THEN 1800
1740    IF Q6$="M" THEN 1870
1750    GOSUB '248(3,0,1)
1760    PRINT "ERROR, ENTER'A'OR 'M'"
1770    GOTO 1720
1780 REM AUTOMATIC PAUSE
1790 REM
1800    M=1
1810 REM
1820    GOSUB '245("ENTER PAUSE TIME (IN SECONDS)",2,0)
1830     IF Q9 <0 THEN 1820
1840     D=Q9
1850 REM CHECK IF TOTAL OPTION IS REQUESTED
1860 REM
1870     IF T5$="T" THEN 3620
1880 REM CHECK IF INDIVIDUAL OPTION IS REQUESTED
1890 REM
1900     IF T5$="I" THEN 950
1910 REM SEARCH CUSTOMER ID OR CURRENT ID
1920 REM CHECK IF CURRENT EQUALS LAST
1930 REM
1940     IF C2$=C3$ THEN 2100
1950 REM CHECK IF CURRENT IS GREATER THAN LAST
1960 REM
1970     IF C2$>C3$ THEN 2170
1980 REM ERROR- CUSTOMER NOT ON FILE
1990 REM
2000   GOSUB '248(3,0,1)
2010     IF T5$<>"I" THEN 2130
2020    PRINT "CUSTOMER NOT ON FILE. NEXT CUSTOMER IS ";C3$;" YOU ENTERED:";C2
     $
2030     GOTO 950
2040 REM NUMBER OF RANGE OPTION
2050 REM
2060     C2$=C3$
2070     GOTO 2270
2080 REM GET NEXT RECORD
2090 REM
2100     GOSUB 250
2110 REM SET CURRENT EQUAL TO LAST
2120 REM
2130     C2$ = C3$
2140     GOTO 2210
2150 REM NEXT RECORD
2160 REM
2170     GOSUB 250
2180 REM CHECK IF CURRENT EQUALS LAST
2190    IF C2$<>C3$ THEN 1970
2200 REM
2210    IF R$="A2" THEN 3710
2220 REM CHECK FOR RANGE OPTION
2230 REM
2240     IF C2$>C4$ THEN 3280
2250 REM DISPLAY RECORD ACCORDING TO PARAMETER CHOSEN
2260 REM
2270     IF D1=0 THEN 2470
2280     SELECT PRINT 005
2290     PRINT HEX(03)
2300     GOSUB '248 (4,0,1)
2310     PRINT "CUSTOMER ID ";C$
2320     PRINT " (NAME) CUSTOMER NAME ";N$
2330     PRINT " (SLSM) SALESMAN NO.  ";S
2340     PRINT " (TYMS) THIS YEAR MONTHLY SALES  ";"(LYMS) LAST YEAR MONTHLY S
     ALES"
2350     PRINT "MO THIS YR SLS  MO  THIS YR SLS MO  LAST YR SLS  MO LAST YR SL
     S"
2360 REM DISPLAY THIS YEARS MONTHLY SALES
2370     FOR X = 1 TO 6
2380     Y=0
2390     Y= 6 + X
2400     PRINTUSING 2420,X;T(X);Y;T(Y);X;L(X);Y;L(Y)
2410 REM
2420 %##-#,###,###.## ##-#,###,###.## ##-#,###,###.## ##-#,###,###.##
2430 REM
2440       NEXT X
2450 REM HARD COPY PRINT OUT - 2C3
2460 REM
2470     IF H2=0 THEN 3080
2480 REM
2490     SELECT PRINT 215(150)
2500     IF L1<60 THEN 2890
2510     IF P=1 THEN 2610
2520     P1 = P1 + 1
2530 REM
2540     SELECT PRINT 215(150)
2550 REM
2560     PRINT HEX(0C)
2570     L1 = 0
2580     GOTO 2680
2590 REM
2600 REM
2610     L1,P=0
2620     P1 = P1 + 1
2630     GOSUB '248(0,0,3)
2640     PRINT "MOUNT NEW PAPER IN PRINTER"
2650     GOSUB '254
2660     GOSUB '248(0,0,3)
2670 REM
2680    SELECT PRINT 215(150)
2690 REM CUSTOMER PRINTTOUT
2700 REM
2710    IF L1<>0 THEN 2890
2720 REM
2730     PRINT " "
2740     PRINT " "
2750     PRINT TAB(58);"COMPANY NAME";TAB(110);"DATE";TAB(122);"PAGE"
2760      PRINT TAB(54);"CUSTOMER SALES ANALYSIS";TAB(108);Q1$;TAB(123);P1
2770     L1 = L1 + 4
2780     IF T5$="T" THEN 3850
2790     PRINT " "
2800     PRINT TAB(11);"CUST ID";TAB(21);"CUSTOMER NAME";TAB(42);"SLSM NO"
2810     PRINT "LAST YR   JAN       FEB       MAR       APR       MAY       JU
     N       JUL       AUG       SEP       OCT       NOV       DEC"
2820      PRINT "THIS YR"
2830     L1 = L1 + 5
2840      GOTO 2890
2850 REM
2860      SELECT PRINT 215(150)
2870 REM PRINT DETAIL LINE
2880 REM
2890     PRINT " "
2900     PRINTUSING 2920,C$,N$,S
2910 REM
2920 %            #####    ##################   #####
2930     PRINT TAB(3);
2940     FOR X=1 TO 12
2950       PRINTUSING 2970,L(X);
2960 REM
2970 %-######.##
2980 REM
2990          NEXT X
3000      PRINT " "
3005      PRINT TAB(3);
3010     FOR Y=1 TO 12
3020       PRINTUSING 2970,T(Y);
3030          NEXT Y
3040   PRINT " "
3050     L1=L1+4
3060 REM PAUSE ONLY FOR ALL, NUMBER, AND RANGE OPTIONS
3070 REM
3080     IF M = 2 THEN 3210
3090     IF D1 = 0 THEN 3210
3100     IF M<>0 THEN 3170
3110 REM MANUAL PAUSE
3120 REM
3130   GOSUB '254
3140   GOTO 3210
3150 REM AUTOMATIC PAUSE
3160 REM
3170     FOR I9= 1 TO D*200
3180           NEXT I9
3190 REM INCREASE NO. OF CUSTOMERS LISTED
3200 REM
3210     IF T5$="T" THEN 3750
3220     R1=R1+1
3230     IF R1=R THEN 3280
3240     IF C2$<C4$ THEN 1940
3250     IF T5$ ="I" THEN 950
3260 REM CLOSE CUSTOMER MASTER FILE - 2J3
3270 REM
3280 % DUMMY
3300 REM
3310      IF H2=1 THEN 3410
3320      IF D1=0 THEN 3410
3330 REM
3340     SELECT PRINT 005
3350     PRINT HEX(03)
3360     GOSUB '248(7,0,1)
3370     PRINT "TOTAL NUMBER OF CUSTOMERS LISTED = ";R1
3380     PRINT "END OF REPORT"
3390     GOTO 3520
3400 REM
3410     IF H2=0 THEN 3520
3420     SELECT PRINT 215(150)
3430 REM
3440 REM
3450     PRINT " "
3460 REM
3470     PRINT "TOTAL NUMBER OF CUSTOMERS LISTED = ";R1
3480     PRINT "END OF REPORT"
3490     IF D1 = 1 THEN 3340
3500 REM END OF PROGRAM
3510 REM
3520     SELECT PRINT 005
3530     PRINT HEX(01)
3540     STOP "END OF PROGRAM"
3550 REM TOTAL OPTION - 2D4
3560 REM
3570     GOSUB '245("NO. OF VOLS. IN CUSTOMER FILE",3,0)
3580    IF Q9 <=0 THEN 3570
3590     R2=Q9
3600     GOTO 1370
3610 REM
3620     GOSUB '250 (2,"SAC1F010",R2)
3630 REM
3640     B=1
3650 REM
3660     GOSUB 250
3670     IF R$="A2" THEN 3710
3680     GOTO 3660
3690 REM SPECIAL TOTAL FIGURES FOR T & A OPTIONS
3700 REM
3710     IF T5$="A" THEN 3750
3720     IF T5$ <> "T" THEN 3280
3730     GOTO 2470
3740 REM
3750    IF H2=0 THEN 4100
3760      SELECT PRINT 215(150)
3770 REM
3780     IF L1<36 THEN 3920
3790 REM
3800     FOR I = 1 TO 66-L1
3810        PRINT " "
3820        NEXT I
3830     L1=0
3840 REM
3850      IF T5$ <>"A" THEN 3920
3860      P1=P1+1
3870      PRINT " "
3880      PRINT " "
3890      PRINT TAB(58);"COMPANY NAME";TAB(110);"DATE";TAB(125);"PAGE"
3900      PRINT TAB(54);"CUSTOMER SALES ANALYSIS";TAB(108);Q1$;TAB(126);P1
3910 REM
3920    FOR C = 1 TO 5
3930        PRINT " "
3940       NEXT C
3950     PRINT TAB(54);"THIS YR SALES";TAB(71);"LAST YR SALES"
3960     PRINT " "
3970 REM
3980     PRINT " "
3990     PRINT TAB(39);"TOTAL SALES";
4000     PRINTUSING 4020,T(1);L(1)
4010 REM
4020 %   -##,###,###.##   -##,###,###.##
4030 REM
4040      PRINT " "
4050      PRINT "TOTAL NUMBER OF CUSTOMERS ON FILE = ";S
4060     PRINT " "
4070     PRINT "END OF REPORT"
4100   IF D1<>1 THEN 4170
4110     SELECT PRINT 005(64)
4120     PRINT HEX(03)
4130     GOSUB '248(7,0,1)
4140     PRINT "TOTAL NUMBER OF CUSTOMERS ON FILE =";S
4150     PRINT "END OF REPORT"
4160 REM
4170     GOTO 3520
4180 REM $