Check this page regularly for development updates.
Last Update: 2023-12-01 @ 21:09 UTC
vic-bbs.com:6502
Store user input into buffer, respect Delete key.
Streamlined detection of carrier drop, as well as added 5 minute idle timeout. Also added character filtering so that only allowed characters are permitted. Added an exception that F1 to F8 keys can be pressed locallly but not remotely.
BOOT: - close all devices, reset channels [DONE] - move MEMTOP down 2 blocks [DONE] - open RS-232 channel [DONE] - toss a null [DONE] - open command channel [DONE] - set up screen colors and case [DONE] - reset any instance variables (USERID, SECLEV, TEMP, REC, FLAGS, BUFFER) [DONE] - open resource file [DONE] - display banner [DONE] WAIT: - display waiting message [DONE] - monitor RS-232 ($9110 - #$08 = call) [DONE] - go to LOGON when call received [DONE] - watch function keys as well [DONE] - F1 means exit [DONE] LOGON: - prompt to press RETURN [DONE] - filter for ONLY a RETURN key [DONE] - wait until RETURN is pressed [DONE] - display welcome1.seq [DONE] - prompt for user ID [DONE] - prompt for password - check access - if granted, display welcome2.seq, goto MAIN - if denied, loop - if seclev=0, display banned.seq and log off - if NEW, goto NEWUSER - if unvalidated (seclev=1), display wait.seq and log off NEWUSER: - display newuser.seq - application process - handle - password - real name - from? (these aren't kept in user log - sent via private msg) - email address - computer type - security level (1) - log user off MAIN: - display command prompt - B: BULLETINS (2) - M: MESSAGES (2) - F: FILES (2) - I: INFO (display info.seq) (2) - H: HELP (display help.seq) (2) - U: USERLOG (2) - C: CHAT (2) - O: LOGOFF (1) - V: VALIDATE users (6) [EXTERNAL?] - R: RESOURCES editor (6) [EXTERNAL?] - E: EDIT any seq file (6) [EXTERNAL?] - P: PURGE messages (6) [EXTERNAL?] - check idle time - log off if limit reached LOGOFF: - hangup routine [DONE] - FLUSHBUFFER [DONE] - restart to BOOT [DONE] END: - hangup routine [DONE] - close all channels [DONE] - FLUSHBUFFER [DONE] - set screen back to normal [DONE] - return from subroutine [DONE] BULLETINS: - display bulletins.seq - prompt for bulletin - display appropriate bulletin seq file - back to prompt until exit - return to MAIN MESSAGES: - R: READ (prompt for #, or N for NEW) - R: REPLY (goto POST with prepopulated SUBJECT?) - A: AGAIN (repeat message) - Q: QUIT - P: POST message - private/public? - if private, to whom? - SUBJECT? - DATE? (rely on user!) - MESSAGE EDITOR (yikes!) - no word wrap - write to "MSG.TMP" until: - /s = send (rename MSG.TMP to be M####) - /a = abort (scratch MSG.TMP) - S: SCAN messages (list message #, from, subject) FILES: - for now, just show files.seq explaining they are on the way USERLIST: - use OPENREL to show user list - handle, from CHAT: - F3 to turn on CHAT, F3 to turn it back off and return user to main menu [DONE] SUBROUTINES: ------------ CARRIERDETECT - checks 37136 for bit 4 - raises bit 1 of FLAGS if online [DONE] also if bit 5 is raised (LOCAL MODE), carrier always ON [DONE] ERRORCHECK - checks for file errors during get/put - returns FLAGS in AC [DONE] ERRORFILE - special error check when openning files - returns FLAGS in AC [DONE] FILTER - filter out unwanted characters [DONE] - use flags to toggle on/off? [DONE] GETCHAR - get one character from user (AC) [DONE] - respect idle time out/carrier drop [DONE] - mode: all chars or specific char(s) [DONE] GETLINE - get chars from user until chr$(13) or line limit [DONE] - respect idle time out/carrier drop [DONE] - max len? [DONE] - mode: all chars or specific char(s) [DONE] - respect delete? [IN PROGRESS] - stored in BUFFER [IN PROGRESS] GETREC - get record # (AC) of current REL file open -> put in BUFFER [DONE] LOGON - display welcome1 and get user logged in LOWERFLAG - set specified bits in XR as OFF in FLAGS variable [DONE] MAIN - main routine OPENREL - open relative file 2,8,2 (filename is in BUFFER except for RES - hard coded) [DONE] OPENSEQ - open sequential file 3,8,3 (filaname is in BUFFER) [DONE] PAUSE - use space to pause/resume - respect idle time out/carrier drop PRINT - print one char (AC) to user [DONE] PRINTLINE - print line to chr$(13) to user from BUFFER [DONE] RAISEFLAG - set specified bits in XR as ON in FLAGS variable [DONE] READERROR - copies error channel message into BUFFER [DONE] RVSON/OFF - set reverse either on or off [DONE] SHOWFILE - show seq file (filename in BUFFER) [DONE] - OPENSEQ [DONE] - PRINT [DONE] - CLOSE [DONE] - monitor for space key - pause/resume WAIT - wait for 1 second [DONE]
Check out my page on VICE...