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

  1.         REM GNSCREEN.BAS * PROGRAM
  2.         REM              *
  3.         REM 11 23 82     * J.BUTLER
  4.         REM SYSTEM CONTROL PROGRAM NUMBER :
  5.         REM FILES UNDER 'DBFM' CONTROL    :
  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 ADD HARD SCREEN FUNCTIONS HERE IF NECESSARY
  12.  
  13.         REM DIMENSIONS GO HERE
  14.         DIM MONTHS$(12),MASK$(10)
  15.  
  16.         MONTHS$(1)="JANUARY":MONTHS$(2)="FEBRUARY":MONTHS$(3)="MARCH"
  17.         MONTHS$(4)="APRIL":MONTHS$(5)="MAY":MONTHS$(6)="JUNE"
  18.         MONTHS$(7)="JULY":MONTHS$(8)="AUGUST":MONTHS$(9)="SEPTEMBER"
  19.         MONTHS$(10)="OCTOBER":MONTHS$(11)="NOVEMBER":MONTHS$(12)="DECEMBER"
  20.  
  21.         BLANK$="                             ":SCNO$="":ERR=5
  22.  
  23. 7       REM OPEN PARTICULAR FILE HERE
  24.  
  25.         GOTO 11
  26.  
  27. 8       REM VERTICAL CURSOR POSITIONING ROUTINE
  28.         FOR ZZ=1 TO VV:PRINT:NEXT ZZ:RETURN
  29.  
  30. 9       REM DATE FORMATTING ROUTINE
  31.         DATE$=MID$(P$,1,2)+"-"+MID$(P$,3,2)+"-"+MID$(P$,5,2)
  32.         RETURN
  33.  
  34. 10      REM CURSOR ADDRESS
  35.         IF SCRPARA=1 THEN \
  36.         PRINT CRSR$;CHR$(ROW+ROWOFF);CHR$(COLUMN+COLOFF);:RETURN
  37.         PRINT CRSR$;CHR$(COLUMN+COLOFF);CHR$(ROW+ROWOFF);:RETURN
  38.  
  39. 15      REM SCREEN GENERATION HERE
  40.         PRINT CLEAR$
  41.         PRINT TAB(40-LEN(COMPANY$)/2);COMPANY$
  42.         PRINT TAB(40-LEN(COMPANY$)/2);LINE$:PRINT TAB(62);"DATE:";DATE$
  43.  
  44.     REM PUT YOUR SCREEN HERE
  45.  
  46.         IF SECOND=1 THEN SECOND=0:RETURN
  47.  
  48. 20      PRINT HIGH$;CLRFORE$;:HOLD$=STR$(REC1) 
  49.         IF CHANGE$="C" THEN HOLD$=STR$(REC1-1)
  50.         COLUMN=13:ROW=3:GOSUB 10:INPUT "";LINE RECORD$
  51.         IF RECORD$="STOP" OR RECORD$="END" THEN 9990
  52.         REC1=VAL(RECORD$)
  53.         IF RECORD$="" THEN REC1=VAL(HOLD$)+1
  54.  
  55. 25      PRINT CLRFORE$
  56.         COLUMN=13:ROW=3:GOSUB 10:PRINT REC1
  57.         GOSUB 1000:GOSUB 60
  58.  
  59. 30      PRINT LOW$;:COLUMN=11:ROW=22:GOSUB 10
  60.         PRINT "IS THIS DATA CORRECT <Y/N> :";:INPUT "";LINE DATA$
  61.         GOSUB 10:PRINT EOL$;
  62.         IF DATA$="" OR LEFT$(DATA$,1)="Y" THEN 15
  63.         
  64. 40      REM ERROR CHECKING STATEMENT HERE
  65.         RECUR$="":COLUMN=11:ROW=22:GOSUB 10
  66.         PRINT EOL$;"'S'TOP, 'D'ELETE, 'R'ECUR @, FIELD #  :";
  67.         INPUT "";LINE CHANGE$
  68.         IF LEFT$(CHANGE$,1)="S" THEN GOSUB 2001:GOTO 9990
  69.         IF CHANGE$="" THEN GOSUB 2001:SECOND=1:GOSUB 15:GOTO 20
  70.         IF CHANGE$="D" THEN 8900
  71.         IF MID$(CHANGE$,1,1)="R" THEN RECUR$="R" \
  72.            :CHANGE$=MID$(CHANGE$,2,LEN(CHANGE$)-1)
  73.         IF VAL(CHANGE$)=0 THEN 15
  74.  
  75.     REM CHANGE THE NEXT NUMBER AS TO HOW MANY FIELDS ON SCREEN
  76.  
  77.         NUM=2
  78.  
  79. 50      IF VAL(CHANGE$)<29 OR VAL(CHANGE$)>NUM THEN 40
  80.  
  81.     REM ADD TO THE ROUTINE AS TO HOW MANY FIELDS ON SCREEN
  82.  
  83.         ON VAL(CHANGE$) GOSUB 7010,7020,.....................
  84.  
  85.         GOSUB 2001
  86.         IF RECUR$="R" AND VAL(CHANGE$)<=NUM THEN \
  87.         CHANGE$=STR$(VAL(CHANGE$)+1):GOTO 50
  88.         SECOND=1:GOSUB 15:GOTO 25
  89.  
  90. 60      REM SCREEN PRINT HERE
  91.         COLUMN=70:ROW=3:GOSUB 10:P$=G2$:GOSUB 9:PRINT DATE$
  92.  
  93.     REM PUT YOUR ROW, COLUMN, AND PARTICULAR FIELDS TO DISPLAY, HERE
  94.  
  95.         RETURN
  96.  
  97. 1000    IF END #1 THEN 6000
  98.  
  99. 1001    REM CHANGE THIS AS TO HOW MANY FIELDS THERE ARE IN THE FILE 
  100.         READ #1,REC1;A1$
  101.         RETURN
  102.  
  103. 2001    REM CHANGE THIS AS TO HOW MANY FIELDS THERE ARE IN THE FILE
  104.         PRINT #1,REC1;A1$
  105.         RETURN
  106.  
  107. 6000    COLUMN=2:ROW=22:GOSUB 10
  108.         PRINT EOL$;"RECORD #";REC1; \
  109.         " HAS NOT BEEN ESTABLISHED FOR ";DATAFIL$;CHR$(7);
  110.          FOR X=1 TO 500:NEXT X
  111.         GOSUB 10:PRINT EOL$;:GOTO 15
  112.  
  113. 7010    REM SCREEN INPUT FUNCTIONS HERE
  114.         SPC%=13:COLUMN=32:ROW=5:GOSUB 10:INPUT "";LINE A1$
  115.         IF LEN(A1$)>SPC%-1 THEN PRINT CHR$(7):GOTO 7010
  116.         RETURN
  117.  
  118.    REM  ADD MORE STATEMENTS IF NECESSARY, FOR SCREEN INPUT, HERE
  119.  
  120. 8900    REM DELETE RECORD FUNCTION HERE
  121.  
  122.      REM CHANGE THIS ACCORDING TO HOW MANY FIELDS THERE ARE IN THE FILE
  123.  
  124.         PRINT #1,REC1;""
  125.         GOTO 15
  126.  
  127. 9990    CLOSE 1
  128.         PRINT LOW$;CLEAR$:STOP
  129.  
  130. 9992    FOR X=1 TO 24:PRINT:NEXT X
  131.         PRINT TAB(20);"ACCESS NOT PERMITTED! SEE YOUR SYSTEM SUPERVISOR..";ERR;
  132.         Y%=CONCHAR%
  133.         IF Y%=5EH THEN 9999
  134.         GOTO 9992
  135.  
  136. 9999    PRINT LOW$;CLEAR$
  137.         STOP
  138.  
  139.