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