1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        REG:   COLLEGE REGISTRATION DEMO
4  REM
5  REM        36282 REV  A  PART 6 OF 10   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
8  M9=17
9  FILES STUDNT,COURSE,WORK,STUDNT,COURSE
10  REM ACTUAL REGESTRATION 
20  DIM A$[12],B$[20],C$[20],D$[1],E$[12],F$[1]
30  DIM G$[30],H$[8],I$[30]
35  DIM J$[10],K$[2],L$[2],M$[2],N$[10],O$[2]
36  DIM P$[20],Q$[20],R$[20],S$[12],T$[2],U$[2]
40  PRINT "RESPOND WITH ANSWER OR END"
50  PRINT 
60  PRINT 
61  PRINT 
62  PRINT "STUDENT # ?";
70  INPUT A$
75  IF A$="END" THEN 8510
80  X$=A$
90  GOSUB 9000
100  IF X#0 THEN 500
110  X$="  "
120  GOSUB 9000
130  IF X=0 THEN 8600
140  PRINT "LAST NAME?";
150  INPUT B$
160  PRINT "FIRST NAME?";
170  INPUT C$
180  PRINT "MIDDLE INITIAL?";
190  INPUT D$
200  PRINT "PHONE?";
210  INPUT E$
220  PRINT "SEX?";
230  INPUT F$
240  PRINT "CITY?";
250  INPUT G$
260  PRINT "STATE?";
265  INPUT H$
270  PRINT "STREET ADDRESS?";
280  INPUT I$
300  PRINT #1;A$,B$,C$,D$,E$,F$,G$,H$,I$, END 
500  REM NAME,ADD ,ETC ARE NOW STORED AWAY
502  REM A$=STUD #  &  X=SECTOR 
510  READ #1,X+2
520  READ #1;N1
530  PRINT #3,1; END 
540  C1=0
550  IF N1=0 THEN 800
560  FOR I=1 TO N1
570  READ #1;Z$,K$,L$,M$,N2
580  GOSUB 9200
590  IF Z=0 THEN 8500
600  READ #2;Z$,N3,N4
610  IF N2#N3 THEN 8500
620  IF N4=0 THEN 8500
630  J=Z+1
640  FOR K=1 TO N4
650  READ #2,J;O$,P$,Q$
660  IF K$=O$ THEN 700
670  J=J+2
680  NEXT K
690  GOTO 8500
700  C1=C1+N2
710  PRINT #3;Z$,Q$, END 
720  NEXT I
800  PRINT 
801  PRINT "COURSE-SECTION"
802  INPUT G$
805  IF G$="END" THEN 7000
820  FOR I=1 TO 13
830  IF G$[I,I]="-" THEN 900
840  NEXT I
850  PRINT "ERROR"
860  GOTO 800
900  J$=G$[1,I-1]
910  K$=G$[I+1]
920  Z$=J$
930  GOSUB 9200
940  REM Z$=COURSE  K$=SECTION  Z=SECTOR
950  IF Z=0 THEN 8000
960  IF  END #3 THEN 1010
970  READ #3,1
980  READ #3;N$,Q$
990  IF N$=Z$ THEN 8100
1000  GOTO 980
1010  READ #2;N$,N3,N4
1020  IF C1+N3>M9 THEN 8200
1030  K1=Z+1
1040  IF N4=0 THEN 8200
1050  FOR I=1 TO N4
1060  READ #2,K1
1070  READ #2;O$,P$,Q$,R$,N5,N6
1080  IF O$=K$ THEN 1130
1090  K1=K1+2
1100  NEXT I
1110  GOTO 8000
1120  REM 
1130  IF N5=N6 THEN 8300
1140  IF  END #3 THEN 1250
1150  READ #3,1
1160  READ #3;N$,B$
1170  IF LEN(B$)=0 THEN 8500
1180  FOR I=1 TO LEN(B$) STEP 2
1190  FOR J=1 TO LEN(Q$) STEP 2
1200  IF Q$[J,J+1]=B$[I,I+1] THEN 8400
1210  NEXT J
1220  NEXT I
1230  GOTO 1160
1240  REM ALL OK NOW TO REG IN COURSE 
1250  PRINT #3;Z$,Q$, END 
1260  N6=N6+1
1270  C1=C1+N3
1280  READ #5,K1
1290  PRINT #5;O$,P$,Q$,R$,N5,N6
1300  IF N6-1=0 THEN 1350
1310  FOR I=1 TO N6-1
1320  READ #2;S$,T$,U$
1330  PRINT #5;S$,T$,U$
1340  NEXT I
1350  PRINT #5;A$,"  ","  ", END 
1351  READ #5,1
1352  READ #2,1
1400  IF  END #1 THEN 1500
1410  READ #1,X+2;N1
1420  N1=N1+1
1430  PRINT #4,X+2;N1
1440  IF N1-1=0 THEN 1500
1450  FOR I=1 TO N1-1
1460  READ #1;J$,K$,L$,M$,N2
1470  PRINT #4;J$,K$,L$,M$,N2
1480  NEXT I
1500  PRINT #4;Z$,O$,"  ","  ",N3, END 
1501  READ #4,1
1502  READ #1,1
1600  PRINT "CREDITS ENTERED SOFAR= ";C1
1610  GOTO 800
7000  READ #1,X;A$,B$,C$,D$
7010  PRINT 
7011  PRINT 
7012  PRINT 
7020  PRINT A$;"  ";B$;"  ";C$;" ";D$
7030  PRINT 
7040  READ #1,X+2;N1
7050  IF N1=0 THEN 7170
7052  PRINT "COURSE";TAB(13);"SEC";TAB(18);"CRDS";TAB(24);
7053  PRINT "INSTRUCTOR";TAB(47);"TIME"
7054  PRINT 
7060  C1=0
7070  FOR I=1 TO N1
7080  READ #1;Z$,K$,L$,M$,N2
7090  GOSUB 9200
7100  IF Z=0 THEN 8500
7110  READ #2;N$,N3,N4
7112  K4=Z+1
7114  FOR J=1 TO N4
7115  READ #2,K4;O$,P$,Q$,R$
7116  IF O$=K$ THEN 7130
7117  K4=K4+2
7118  NEXT J
7130  PRINT N$;TAB(13);O$;TAB(18);N3;TAB(24);R$;TAB(47);P$
7140  C1=C1+N3
7150  NEXT I
7160  PRINT 
7170  PRINT "TOTAL CREDITS= ";C1
7171  PRINT 
7172  PRINT 
7180  GOTO 60
8000  PRINT "COURSE OR SECTION NON EXISTENT"
8010  GOTO 800
8100  PRINT "ALREADY HAVE ";Z$
8110  GOTO 800
8200  IF C1=M9 THEN 8230
8210  PRINT "TOO MANY CREDITS"
8220  GOTO 800
8230  PRINT "AT MAX CREDITS NOW"
8240  GOTO 7000
8300  PRINT "SECTION FULL"
8310  REM COULD PRINT AVAILABLE 
8320  GOTO 800
8400  PRINT "TIME CONFLICT WITH ";N$
8410  GOTO 800
8500  PRINT "TROUBLE"
8510  STOP 
8600  PRINT "NO ROOM FOR STUDENT"
8610  STOP 
9000  REM GET STUDENT OR COURSE FILE. 
9030  DIM W$[20],X$[12],Y$[20],Z$[10]
9031  IF  END #1 THEN 9038
9032  X1=1
9033  FOR X2=1 TO 32
9034  READ #1,X1;W$
9035  IF W$=X$ THEN 9040
9036  X1=X1+4
9037  NEXT X2
9038  X=0
9039  RETURN 
9040  READ #1,X1
9045  X=X1
9046  RETURN 
9200  IF  END #2 THEN 9207
9201  X1=1
9202  FOR X2=1 TO 9
9203  READ #2,X1;W$
9204  IF W$=Z$ THEN 9209
9205  X1=X1+13
9206  NEXT X2
9207  Z=0
9208  RETURN 
9209  READ #2,X1
9210  Z=X1
9211  RETURN 
9212  END 
