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

  1. 1 '    signon subsystem -- bye command 
  2. 2 MODNAME$="BYECMD"    'NOTE: FINISH.BAS updates users's record
  3. 4 VERSION$="1.4 {10/14/82}"    'not in 1.0
  4. 7 '    by dick lieber
  5. 13 '
  6. 28 '
  7. 49 PWDFILE$="pwds"    'subsystem configuration file
  8. 50 COMMENTFILE$="COMMENTS"
  9. 56 LASTCALRFILE$="LASTCALR"
  10. 80 '
  11. 81 '    function definition
  12. 82 '
  13. 83 '    add deliminators to time or date
  14. 84 DEF FNADDSEP$(DS$,DELIM$)=
  15.  
  16.     LEFT$(DS$,2)+DELIM$+MID$(DS$,3,2)+DELIM$+RIGHT$(DS$,2)
  17. 85 '    remove date or time deliminators
  18. 86 DEF FNKILLSEP$(DS$)=LEFT$(DS$,2)+MID$(DS$,4,2)+RIGHT$(DS$,2)
  19. 88 DEF FNHOURS$(TIME)=STR$(INT(TIME/60))+":"+
  20.  
  21.     RIGHT$("00"+MID$(STR$(TIME-(INT(TIME/60)*60)),2),2)
  22. 90 DEF FNEROR$(SERRNUMB$)="System Error ("+SERRNUMB$+")."
  23. 94 '    constants:
  24. 96 CRLF$=CHR$(&HD)+CHR$(&HA)
  25. 97 BSTRING$=CHR$(8)+" "+CHR$(8)
  26. 98 DEFDRIVE$="A:"
  27. 99 DIM ACLARRAY%(5,11)
  28. 100 DIM FLAGS%(14)
  29. 103 '
  30. 106 '
  31. 109 '
  32. 112 ON ERROR GOTO 1000
  33. 115 GOTO 10000    ' main program begins after sub routines
  34. 118 '
  35. 121 ' routines used by signon
  36. 124 '
  37. 300 '
  38. 302 '    set user number
  39. 304 '
  40. 306 USERMD=TESTADDRESS+9
  41. 312 CALL USERMD(SETUSERNUMBER%)
  42. 345 RETURN
  43. 400 %include 400500.SSB
  44. 700 '
  45. 710 '    get string into ANSWER$ then CRLF
  46. 720 '
  47. 730 GOSUB 500: PRINT: RETURN
  48. 800 %include 800.SSB
  49. 1000 '
  50. 1004 '    Error handler
  51. 1008 '
  52. 1010 IF ERR=53 THEN NOFILE%=1: RESUME NEXT
  53. 1012 A$="Error Trap":CR%=2: GOSUB 400
  54. 1020 PRINT "ERR = ";ERR, "ERL = ";ERL
  55. 1028 END
  56. 1100 %include 1100.SSB
  57. 1600 %include 1600.SSB
  58. 1900 '
  59. 1905 '    get date into sdate$ (sdate$ looks nice to print)
  60. 1910 '
  61. 1915 SDATE$=LEFT$(LDATE$,2)+"/"+MID$(LDATE$,3,2)+"/"+RIGHT$(LDATE$,2)
  62. 1920 RETURN
  63. 2100 %include 2100.SSB
  64. 3300 %include 3300.SSB
  65. 8000 %include 8000.SSB
  66. 9000 '
  67. 9005 '    get lastcal info
  68. 9010 '1.1
  69. 9012 SETUSERNUMBER%=0: GOSUB 300
  70. 9013 NOFILE%=0
  71. 9015 OPEN "I", #1, DEFDRIVE$+LASTCALRFILE$
  72. 9017 IF NOFILE%<>0 THEN
  73.  
  74.     A$=FNEROR$("E-2"):
  75.  
  76.     CR%=2: GOSUB 400:
  77.  
  78.     CLOSE #1:
  79.  
  80.     COMMENT$=A$: GOSUB 8000:
  81.  
  82.     RETURN
  83. 9025 INPUT #1, FRNAME$, LNAME$, ACLVL%, LDATE$, LTIME$
  84. 9035 CLOSE #1
  85. 9045 RETURN
  86. 9100 %include 9100.SSB
  87. 10000 '
  88. 10010 '    main program
  89. 10020 '1.4    #
  90. 10030 GOSUB 1100
  91. 10050 IF NOFILE%<>0 THEN SETUSERNUMBER%=0: GOSUB 300: GOTO 10000
  92. 10055 NOTATION$="exiting"
  93. 10060 GOSUB 9000    'get user
  94. 10070 IF NOCLOCK%=0 THEN GETDAY%=1: GOSUB 1600
  95. 10080 A$= CRLF$+FNADDSEP$(TIME$,":")
  96.  
  97.     +" "+DAY$+" "+FNADDSEP$(DATE$,"/"):
  98.  
  99.     CR%=2: GOSUB 400
  100. 10085 PRINT
  101. 10087 STIME$=TIME$
  102. 10100 IF NOCLOCK%=0 THEN GOSUB 9100:
  103.  
  104.       A$=FRNAME$+" "+LNAME$+" was on the system for"+FNHOURS$(ELAPMINUTES)+" (hr:mn).":
  105.  
  106.     GOSUB 400
  107. 10240 NOCTLK%=1: DRIVE$=DEFDRIVE$: FIL$=EXITFILE$: GOSUB 800
  108. 10245 ASKFORCOM%=1: GOSUB 2100
  109. 10250 A$=CRLF$+"Goodbye..."+CRLF$: GOSUB 400
  110. 10300 SETUSERNUMBER%=0: GOSUB 300
  111. 10450 POKE 4,0        'tell ccp (just in case)
  112. 10453 OUT MODEMPORT%,DISCONNECT%
  113. 10460 for i%=1 to 20
  114. 10470     PRINT "Waiting for disconnect..............................."
  115. 10480 next i%
  116. 10485 PRINT "10085 FINISHFILE$=";finishfile$
  117. 10490 FIL$= DEFDRIVE$+FINISHFILE$
  118. 10500 comment$="Couldn't find "+FIL$+".COM"
  119. 10550 PRINT COMMENT$
  120. 10600 GOSUB 8000
  121. 20000 END
  122.