HELLOS

10  Y=BRK(0)
20  REM ** FILES USED IN THIS PROGRAM ARE AS FOLLOWS **
30  REM ** BIL01F.A001 -- CRZYFL.A001 -- FREEFL.A001 **
40  REM ** LOGFL.A001  -- NEWS1.A000  -- AUTOBL.A001 **
50  REM ** LOGMON.A000 **
60  FILES *,*,*,*,*,*,*
70  REM *** ENTER PORT # AND CHECK ACCOUNT # ****
80  ENTER #P
90  Y=BRK(0)
100  A=M=C=U=1
110  IF SYS(3)=1 THEN 530
120  DIM A[14]
130  DIM A$[80],B$[80],C$[80],D$[80],E$[80],F$[80],G$[80],H$[80],J$[80]
140  DIM J1$[10],K1$[80],T$[80],T1$[80],U$[80],U1$[80],V1$[80]
150  DIM N$[25],Q$[2]
160  SYSTEM A$,"TIM"
170  Y=BRK(0)
180  IF SYS(3)=1 THEN 530
190  IF  ERROR  THEN 530
200  ASSIGN "LOGMON.A000",1,R1, NR 
210  IF R1#0 THEN 200
220  PRINT #1,1;A$[1,4];P
230  ASSIGN *,1
240  IF A$[1,4]="A000" THEN 360
250  IF SYS(3)=1 THEN 530
260  IF A$[1,4]#"B200" THEN 550
270  ASSIGN "BBS10F.A100",1,R1,'25, NR 
280  PRINT #1,1;A,M,C,U; END 
290  Y=BRK(0)
300  IF SYS(3)=1 THEN 530
310  CHAIN K,"$BBS1"
320  IF K=0 THEN 560
330  PRINT "BBS DOWN, CALL BACK LATER PLEASE."'7
340  GOTO 530
350  REM **** CHECK A000'S PASSWORD ****
360  PRINT "Pswd :";
370  SYSTEM X,"ECH-OFF"
380  ENTER 10,X,B$
390  IF X=-256 THEN 500
400  PRINT 
410  SYSTEM X,"ECH-ON"
420  IF B$="SYSMGR" THEN 450
430  GOTO 470
440  PRINT LIN(5)
450  GOTO 600
460  GOTO 670
470  PRINT "INVALID... SESSION TERMINATED"
480  SYSTEM X,"MES-SECURITY VIOLATION"
490  GOTO 530
500  PRINT 
510  PRINT "TIMED OUT... SESSION ABOARTED"
520  SYSTEM X,"MES-SECURITY VIOLATION"
530  SYSTEM X,"BYE"
540  GOTO 530
550  REM **** CHECK FOR HOBBY SHARE ****
560  IF A$[1,2]="B1" THEN 1270
570  REM **** CHECK FOR FREE ACCOUNT B000 ****
580  GOSUB 2470
590  REM *** PASSWORD FOR A1XX ACCOUNTS ***
600  IF A$[1,2]="B0" THEN 740
610  IF A$[1,4]="A000" THEN 680
620  PRINT "Password ";
630  SYSTEM X,"ECH-OFF"
640  ENTER 255,R6,B$
650  PRINT 
660  IF B$#"12966" THEN 530
670  REM*** CHECK FOR MAIL ***
680  GOSUB 2760
690  PRINT LIN(2);TAB(32);"CRISIS COMPUTER"
700  PRINT TAB(35);"ACCT #";A$[1,4]
710  SYSTEM X,"ECH-ON"
720  PRINT 
730  PRINT TAB(10);T1$
740  PRINT 
750  IF A$[1,2] <> "B0" THEN 1620
760  REM **** CHECK FOR VALAD B000 USER PASSWORD ****
770  F=0
780  PRINT 
790  PRINT "WAIT ..."
800  PRINT 
810  ASSIGN "FREEFL.A001",1,R, RR 
820  IF R=6 THEN 810
830  ASSIGN "LOGFL.A001",2,Y, RR 
840  IF Y=6 THEN 830
850  ASSIGN "CRZYFL.A001",3,R2, RR 
860  IF R2=6 THEN 850
870  FOR K=1 TO 32767
880  IF TYP(3)=3 THEN 910
890  READ #3,K
900  NEXT K
910  Y=BRK(0)
920  READ #2,1
930  FOR I=1 TO 2000
940  IF  END #2 THEN 970
950  READ #2;F$
960  NEXT I
970  IF F>2 THEN 1140
980  F=F+1
990  PRINT "TYPE YOUR NAME PLEASE ";
1000  ENTER 255,X,E$
1010  PRINT 
1020  READ #1,1
1030  D1=0
1040  FOR M=1 TO 200
1050  IF TYP(1)=3 AND D1=1 THEN 1210
1060  IF  END #1 THEN 1110
1070  READ #1;D$,J$
1080  REM *** SEE IF PASSWORD AGREES WITH FREEFL IN A001 ****
1090  IF D$=E$ THEN 1240
1100  NEXT M
1110  IF F>1 THEN 1140
1120  PRINT "Try again..."
1130  GOTO 910
1140  PRINT "NAME NOT CURRENT"'7
1150  IF E$="" THEN 1170
1160  GOTO 1190
1170  E$="< CARRAGE RETURN >"
1180  REM **** PRINT UNKNOWN PASSWORD IN CRZYFL IN A001 ****
1190  PRINT #3;E$
1200  GOTO 1230
1210  PRINT "DEMONSTRATION TIME ELAPSED."'7
1220  GOTO 2440
1230  SYSTEM X,"BYE"
1240  CONVERT J$ TO J0
1250  IF TIM(2)>J0+1 THEN 1210
1260  GOTO 1550
1270  REM **** CHECK BIL01F IN A001 TO SEE IF CUSTOMER IS CURRENT ****
1280  D1=1
1290  DIM A1$[72],B1$[72]
1300  ASSIGN "BIL01F.A001",4,R7, RR 
1310  IF R7=6 THEN 1300
1320  READ #4,1
1330  SYSTEM A$,"TIM"
1340  IF  END #4 THEN 1530
1350  READ #4;A1$,B1$
1360  IF A$[1,4]=A1$[1,4] THEN 1380
1370  GOTO 1340
1380  CONVERT B1$ TO Q,1230
1390  Z=TIM(2)-Q
1400  IF Z>15 THEN 1500
1410  IF Z>7 THEN 1440
1420  IF Z>1 THEN 1470
1430  GOTO 1530
1440  PRINT "         *** YOUR ACCOUNT IS PAST DUE";Z-4;"DAYS. ***"'7
1450  SYSTEM X,"PAU-5"
1460  GOTO 1530
1470  PRINT "BILLS MAILED";Z;"DAYS A GO."
1480  SYSTEM X,"PAU-5"
1490  GOTO 1530
1500  PRINT "Your account has been suspended call  CRISIS TIMESHARE"
1510  SYSTEM X,"BYE"
1520  GOTO 1040
1530  B1=BRK(0)
1540  GOSUB 2470
1550  GOSUB 2760
1560  PRINT LIN(2);TAB(30);"CRISIS TIMESHARE"
1570  PRINT TAB(33);"ACCT # ";A$[1,4]
1580  PRINT TAB(10);T1$
1590  IF A$[1,4]="B000" THEN 1600
1600  PRINT 
1610  REM **** ADD NOTES ETC TO HELLO STATEMENT FROM $NEWS1 ****
1620  ASSIGN "$NEWS1",4,R
1630  IF R=6 THEN 1620
1640  READ #4;J1$
1650  FOR I=1 TO 10
1660  READ #4;K1$
1670  IF K1$="++" THEN 1700
1680  PRINT K1$
1690  NEXT I
1700  PRINT TAB(34);"EXE-$NEWS"
1710  ASSIGN *,4
1720  PRINT TAB(30);"UPDATED ";J1$
1730  GOTO 1790
1740  PRINT 
1750  PRINT 
1760  PRINT 
1770  PRINT "READY"'7
1780  STOP 
1790  REM **** CALENDAR STARTS HERE ****
1800  DATA 0,31,60,91,121,152,182,213,244,274,305,335,366,999
1810  DATA 0,31,59,90,120,151,181,212,243,273,304,334,365,999
1820  LET S=TIM(0)
1830  LET H=TIM(1)
1840  LET D=TIM(2)
1850  LET Y=TIM(3)
1860  LET N$="0123456789000000000000000"
1870  LET D$="  -  -     :   AM  PORT #  "
1880  ENTER #P
1890  LET Q=P
1900  GOSUB 2380
1910  LET D$[26,27]=Q$
1920  LET Q=H
1930  IF (H*100+S)<1201 THEN 1970
1940  LET D$[16,17]="PM"
1950  IF H<13 THEN 1970
1960  LET Q=H-12
1970  GOSUB 2380
1980  LET D$[10,11]=Q$
1990  LET Q=S
2000  GOSUB 2380
2010  LET D$[13,14]=Q$
2020  IF Y/4=INT(Y/4) THEN 2360
2030  RESTORE 1810
2040  MAT  READ A
2050  FOR I=1 TO 14
2060  IF D>A[I] THEN 2350
2070  IF I<14 THEN 2110
2080  LET D=D-A[13]
2090  LET Y=Y+1
2100  GOTO 1880
2110  LET Q=I-1
2120  GOSUB 2380
2130  LET D$[1,2]=Q$
2140  LET Q=D-A[I-1]
2150  GOSUB 2380
2160  LET D$[4,5]=Q$
2170  LET Q=Y
2180  GOSUB 2380
2190  LET D$[7,8]=Q$
2200  PRINT TAB(27);D$
2210  REM *** STUFF ACCOUNT & TIME IN REPFL1.A001 ***
2220  ASSIGN "REPFL1.A001",7,R, RR 
2230  IF R=6 THEN 2220
2240  IF  END #7 THEN 2290
2250  IF TYP(7)=3 THEN 2280
2260  READ #7;U1$
2270  GOTO 2250
2280  PRINT #7;A$[1,5];D$
2290  IF A$[1,2]="B0" THEN 2310
2300  GOTO 2340
2310  PRINT #2;E$,D$
2320  ASSIGN *,2
2330  ASSIGN *,1
2340  GOTO 1740
2350  NEXT I
2360  RESTORE 1800
2370  GOTO 2040
2380  REM NUMBER-TO-STRING
2390  LET N=INT(Q/10)
2400  LET Q$[1,1]=N$[N+1,N+1]
2410  LET N=Q-N*10
2420  LET Q$[2,2]=N$[N+1,N+1]
2430  RETURN 
2440  PRINT #2;E$;" **** NO TIME LEFT ****"
2450  PRINT #2; END 
2460  SYSTEM X,"BYE"
2470  REM **** AUTO BILLING STARTS HERE ****
2480  RETURN 
2490  REM *** NOT WORKING YET ***
2500  DIM L1$[80],M1$[80]
2510  ASSIGN *,1
2520  PRINT "LOGGING ..."
2530  ASSIGN "AUTOBL.A001",1,R6, RR 
2540  IF R6=6 THEN 2530
2550  READ #1,1
2560  SYSTEM L1$,"TIM"
2570  REM ** L1$(1,4) = ACCOUNT #  -- L1$(35,38) = ACCRUED TIME **
2580  REM *** VERIFY ACCOUNT ****
2590  FOR T=1 TO 1000
2600  IF  END #1 THEN 2670
2610  READ #1;M1$
2620  J1=REC(1)
2630  REM **** FIND ACCOUNT # ****
2640  IF M1$[1,4]=L1$[1,4] THEN 2660
2650  NEXT T
2660  REM *** STUFF DATA INTO RECORD J1 ***
2670  PRINT #1,J1;L1$[1,4],L1$[35,38]
2680  REM
2690  REM
2700  REM
2710  REM
2720  REM
2730  REM
2740  ASSIGN *,1
2750  RETURN 
2760  REM *** MAIL CHECK FILE ***
2770  PRINT "WAIT..."
2780  PRINT 
2790  SYSTEM U$[1,4],"TIM"
2800  GOSUB 2960
2810  IF  END #5 THEN 2920
2820  X=0
2830  X=X+1
2840  READ #5,X
2850  IF TYP(5)=3 THEN 2830
2860  READ #5;T$
2870  IF T$#U$ THEN 2830
2880  ASSIGN *,5
2890  REM *** INIT T1$ ***
2900  T1$="               < You have mail... EXE-$MAILBX >"
2910  GOTO 2950
2920  ASSIGN *,5
2930  REM *** INIT T1$ ***
2940  T1$="                     [ No mail today ]"
2950  REM
2960  ASSIGN "MBX01F.A100",5,R, RR 
2970  IF R=6 THEN 2960
2980  RETURN 
2990  REM*** CHECK FOR BREAK KEY ***
3000  Y=BRK(0)
3010  IF SYS(3)=1 THEN 530
3020  RETURN 
3030  END 
