home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol163 / gnmenu.bas < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  4.1 KB  |  138 lines

  1.         REM GNMENU.BAS    * PROGRAM                              *
  2.         REM               *
  3.         REM 02 09 82      * J.BUTLER
  4.  
  5. %CHAIN 1000,10000,100,2000
  6.  
  7.         REM COMMONS GO HERE
  8.         COMMON CLEAR$,NAME$,LINE$,DEMO$,CRSR$,FOCUS$,HIGH$,LOW$,PASSWORD$, \
  9.            DATE$,EOL$,CLRFORE$,ROWOFF,COLOFF,SCRPARA,CONT
  10.  
  11.         REM DIMENSIONS GO HERE
  12.         DIM MONTHS$(12),MASK$(10)
  13.  
  14.         MONTHS$(1)="JANUARY":MONTHS$(2)="FEBRUARY":MONTHS$(3)="MARCH"
  15.         MONTHS$(4)="APRIL":MONTHS$(5)="MAY":MONTHS$(6)="JUNE"
  16.         MONTHS$(7)="JULY":MONTHS$(8)="AUGUST":MONTHS$(9)="SEPTEMBER"
  17.         MONTHS$(10)="OCTOBER":MONTHS$(11)="NOVEMBER":MONTHS$(12)="DECEMBER"
  18.  
  19.         BLANK$="                              ":SCNO$="":ERR=1
  20.  
  21.         IF END #1 THEN 9992
  22.         OPEN "SCREEN.FIL" RECL 18 AS 1
  23.         IF END #2 THEN 9992
  24.         OPEN "COMPANY.DA" RECL 160 AS 2
  25.         REV$="1.0"
  26.  
  27.         REM  ** GET SCREEN PARAMETERS FROM SCREEN.FIL **
  28.         READ #1,1;A$,B$,C$
  29.         CLEAR$=CHR$(VAL(A$))+CHR$(VAL(B$))
  30.         READ #1,2;A$,B$,C$
  31.         CRSR$=CHR$(VAL(A$))+CHR$(VAL(B$))
  32.         READ #1,3;A$,B$,C$
  33.         EOS$=CHR$(VAL(A$))+CHR$(VAL(B$))
  34.         READ #1,4;A$,B$,C$
  35.         EOL$=CHR$(VAL(A$))+CHR$(VAL(B$))
  36.         READ #1,5;A$,B$,C$
  37.         CLRFORE$=CHR$(VAL(A$))+CHR$(VAL(B$))
  38.         READ #1,6;A$,B$,C$
  39.         CLRBACK$=CHR$(VAL(A$))+CHR$(VAL(B$))
  40.         READ #1,7;A$,B$,C$
  41.         HIGH$=CHR$(VAL(A$))+CHR$(VAL(B$))+CHR$(VAL(C$))
  42.         READ #1,8;A$,B$,C$
  43.         LOW$=CHR$(VAL(A$))+CHR$(VAL(B$))+CHR$(VAL(C$))
  44.         READ #1,9;A$,B$,C$
  45.         HOME$=CHR$(VAL(A$))+CHR$(VAL(B$))
  46.         READ #1,13;A$,B$,C$
  47.         ROWOFF=VAL(A$):COLOFF=VAL(B$):SCRPARA=VAL(C$)
  48.         CLOSE 1
  49.  
  50.         REM MASK INITIALIZATION GOES HERE
  51.  
  52.         REM PASSWORD ROUTINE GOES HERE
  53.  
  54. 5       REM PASSWORD INPUT ROUTINE
  55.  
  56. 7       GOTO 11
  57.  
  58. 8       REM VERTICAL CURSOR POSITIONING ROUTINE
  59.         FOR ZZ=1 TO VV:PRINT:NEXT ZZ:RETURN
  60.  
  61. 9       REM DATE FORMATTING ROUTINE
  62.         DATE$=MID$(P$,1,2)+"-"+MID$(P$,3,2)+"-"+MID$(P$,5,2)
  63.         RETURN
  64.  
  65. 10      REM CURSOR ADDRESS
  66.         IF SCRPARA=1 THEN \
  67.            PRINT CRSR$;CHR$(ROW+ROWOFF);CHR$(COLUMN+COLOFF);:RETURN
  68.         PRINT CRSR$;CHR$(COLUMN+COLOFF);CHR$(ROW+ROWOFF);:RETURN
  69.  
  70. 11      REM GET DATE HERE
  71.         READ #2,1;A2$,B2$,C2$,D2$,E2$,F2$,G2$,H2$,I2$,J2$
  72.         IF VAL(G2$)=0 THEN GOSUB 15:GOTO 93
  73.         P$=G2$:GOSUB 9:G2$=DATE$:GOTO 150
  74.  
  75. 15      REM COMPANY INFO HERE
  76.         LINE$="":COMPANY$=B2$:CONO$=I2$:ORG$=J2$
  77.         FOR X=1 TO LEN(COMPANY$):LINE$=LINE$+"*":NEXT X:RETURN
  78.  
  79. 93      REM  ** GET DATE AND ID AND TIME FROM OPERATOR **
  80.         PRINT CLEAR$:VV=8:GOSUB 8
  81.         PRINT TAB(20);"WHAT IS THE DATE (MMDDYY) : ";:INPUT "";LINE P$
  82.         L=LEN(P$):GOSUB 9:G2$=DATE$
  83.         IF L=6 AND ABS((18-VAL(MID$(P$,1,2)))-(18-VAL(MID$(ORG$,1,2))))=6 \
  84.         THEN GOSUB 2900:GOTO 95
  85.         IF L=6 AND ABS((18-VAL(MID$(P$,1,2)))-(18-VAL(MID$(ORG$,1,2))))<>6  \
  86.         THEN NOGO$="X":GOTO 95
  87.         GOTO 93
  88.  
  89. 95      REM ** IF SIX MONTHS HAVE PASSED THEN PRINT MESSAGE **
  90.         PRINT CLEAR$:VV=8:GOSUB 8
  91.         IF NOGO$="X" THEN GOSUB 4000
  92.         GOTO 150
  93.  
  94. 101     CHAIN ""
  95. 102     CHAIN ""
  96.  
  97. 150     PRINT CLEAR$
  98.         PRINT TAB(40-LEN(COMPANY$)/2);COMPANY$
  99.         PRINT TAB (62);"DATE:";DATE$
  100.         PRINT TAB(31);"MENU":PRINT
  101.         PRINT TAB (18);"1. "
  102.         PRINT TAB (18);"2. "
  103.         FOR X=1 TO 6:PRINT:NEXT X
  104.         PRINT TAB(20);"TYPE THE NUMBER OF YOUR REQUEST : ";:INPUT "";LINE INP$
  105.         PRINT CLEAR$
  106.         IF INP$="" THEN 1000
  107.         Y=VAL(INP$)
  108.         IF Y<1 OR Y>2 THEN 150
  109.         ON Y GOTO 101,102
  110.  
  111. 1000    READ #2,1;A2$,B2$,C2$,D2$,E2$,F2$,G2$,H2$,I2$,J2$
  112.         PRINT #2,1;"",B2$,C2$,D2$,E2$,F2$,"",H2$,I2$,J2$
  113.         CLOSE 2:GOTO 9999
  114.  
  115. 1500    REM FILE I/O HERE
  116.  
  117. 1503    RETURN
  118.   
  119. 2503    RETURN
  120.  
  121. 2900    PRINT CLEAR$:VV=7:GOSUB 8
  122.         RETURN
  123.  
  124. 4000    REM  ** ENTRY SCREEN **
  125.         RETURN
  126.  
  127. 9990    CLOSE 2:PRINT LOW$;CLEAR$:STOP 
  128.  
  129. 9992    FOR X=1 TO 24:PRINT:NEXT X
  130.         PRINT TAB(20);"ACCESS NOT PERMITTED! SEE YOUR SYSTEM SUPERVISOR..";ERR;
  131.         Y%=CONCHAR%
  132.         IF Y%=5EH THEN 9999
  133.         GOTO 9992
  134.  
  135. 9999    PRINT LOW$;CLEAR$
  136.         STOP
  137.  
  138.