Check this page regularly for development updates.


Last Update: 2023-12-01 @ 21:09 UTC

Internet Address:

Current Work Item:

Store user input into buffer, respect Delete key.

Recently Completed:

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.


Program Plan:

- 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]
- 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]
- 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
- 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
- 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
- hangup routine [DONE]
- restart to BOOT [DONE]
- hangup routine [DONE]
- close all channels [DONE]
- set screen back to normal [DONE]
- return from subroutine [DONE]
- display bulletins.seq
- prompt for bulletin
- display appropriate bulletin seq file
- back to prompt until exit
- return to MAIN
- 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)
- for now, just show files.seq explaining they are on the way
- use OPENREL to show user list - handle, from
- F3 to turn on CHAT, F3 to turn it back off and return user to main menu [DONE]

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]
- monitor for space key - pause/resume
WAIT - wait for 1 second [DONE]              

Check out my page on VICE...