Waiting for caller ------------------ Exit program Recent Callers Stats Local Login Login Sequence -------------- Confirm Handshake - show baud, whatever Greeting Prompt Name/Number/Handle Password Welcome User info 'Hi' Status, Name ' you have ' Time Left ' minutes.' Message of the Day - Shortage on /u2 Stats of some kind - New Announcements Messages - new count Mail - notify / summary Bulletins Fingers Basically files of anykind that have a 'latest' stamp. Main Menu More ---- Prompt - More? (52%) - More (89%) [Y, N, L, N, R, X] : At the prompt Y, SP - Yes, Continue N, A, ^C - No, Abort, Cancel L - Restart, lowercase everything N - Continue nonstop R - Restart X - Restart Rot13 While listing ^C, A - stop if enabled ^S, P - Pause if enabled Sp - activate more prompt after eol While logged on --------------- Menu options... ^C Chat with or ^Y Yell at sysop (if flag set o/w sorry mesg) ^E Editor ^K Keyboard test ^L Logoff (verify) ^P Toggle Privacy (if enabled; message in either case) ^T Terminal change ^U Display users info ^? or any incorrect ^char, display list of controls ESC 0..9, F1-F10 Macro (if stacked commands active) Sysop View files Shell Escape From the local keyboard ----------------------- Toggle flags Privacy Chat Screen Dump to file Take modem off hook after this caller Rotate Display Logoff User Increase/Decrease Time Left Initiate Chat records current line and cursor postion on exit prints saved and and restores cursor positon Login - Parallel to user, user's menus show who is on watching Able to type into users environment (as the moon always does) Display Status Line Top - watch user Status - Real Name, Handle, Age, Calls, Posts, Time Left, Current Time Half Screen Top 50% - watch user Low 50% - User File Status line Privacy / Full screen - Top 50% - Current User Function, Stats, whatever Low 50% - User File Status Line Edit Current User - Half or full screen display; doesn't hinder user Chat ---- Most of the features of the editor. Autologout ---------- Warnings after every two minutes of inactivity. Logout after 6 or 8 minutes. Perhaps configurable. Curses ------ Goto(X,Y) - position cursor absolutely Move(X,Y) - position cursor relatively Esc[X;YH else multiple ^J^H^I^K Color(fg, bg) - change if user has color otherwise ignore Del_EOL - delete to end of line Esc[K else spaces and bs's Del_EOP - delete to end of page Mail ---- Menu List letters - Header Delete Reply, Reply w/include - Editor Forward Save, Read (from disk) - sysop Note to self - send letter to self Change/Rotate Status (New, Express, Hold, Delete) Edit (include) Send - invoke editor View Letter Traffic - list of active letters From To On Norman Rockwell The Slut Thr Jun 24 at 10:12pm Yank letter sent by you. Lists letters still undelivered, asks for number, moves that letter back into mail users mail box. Quit - kills letters marked delete, exits Sample ------ Dark Side of the Moon Mail Your Mailbox New : 2 Held : 1 # Status Sender Date Time Subject (maybe) -- ------- ----------- -------------- ------- --------------- 1 Holding Rockman Wed 29 Sept 88 04:13pm 2 New Gern Thr 30 Sept 88 06:12am 3 Delete Bergie Thr 30 Sept 88 08:09am 4 Express Booga Thr 30 Sept 88 12:02pm Described elsewhere ------------------- Mail Message Base Userinfo -------- Finger - call it something more user friendly By number, name, handle, search string List users - Show a subset of registered users Generic - precompiled after new user logout Brief - multi-column - Finger? Listed? Name, Days Since Login FL Name Days FN Name Days FN Name Days -- --------------- -- -- --------------- -- -- --------------- -- YN Norman Rockwell 10 YN Norman Rockwell 10 YN Norman Rockwell 10 Beefy - Fing? List? Handle, Firston, Laston, Days, Status, B-day FL Name First On Last On Days Status B-day -- --------------- --------- --------- ---- -------- ------ YN Norman Rockwell 05 Sep 88 08 Dec 88 62 Co-sysop Jan 04 Display 1 or more of any user file field Sysop only - password Address, Phone Number, Real name - if not unlisted Variable fields - toggle any field on/off Sysop only - password Unlisted - can't show real name, address, phone Variable sort - sort on any feild Your Info - User File, user definable fields Statistics - generated during cleanup. ---------- Callers in the last 24 hours, 1440 minutes Usage this week Day Usage Min Calls Ave min --- ----- --- ----- ------- Mon 16% 234 14 17 Tue 38% 543 23 24 Wed 47% 678 45 15 Thr . 283 23 . Fri . 824 12 . Sat . 184 43 . Sun . 275 98 . Dark Side of the Moon Statistics - 08 Dec 88 User Stats Caller Stats Posting Stats This Week ..... 34 This Week ..... 137 This Month ... 102 This Month .... 543 This Year .... 220 This Year ..... 6832 Total Users .. 235 Total Callers . 8312 of Users of Callers this Month 300 baud ... 45 .. 19% ......... 89 .. 23% 1200 baud .. 168 .. 71% ........ 325 .. 60% 2400 baud ... 22 ... 9% ........ 129 .. 24% 9600 buad .... 0 ... 0% .......... 0 ... 0% of users of Callers this month IBM Compat ... 22 Macitosh ..... 45 Apple // ..... 67 etc etc Amiga ......... 3 C64 ......... 126 Atari ST ..... 21 Arati 8bit ... 87 Other ......... 9 Usage - Weekly Ave 100 90 80 . 70 . . . . 60 . . . . . . .. . .. 50 . . .. . . . .. . 40 .. .. 30 20 10 ________________________________________________ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Comment to sysop - Non express mail to sysop - invoke editor ---------------- Recent Callers - Precompiled (long) -------------- 1200 Norman Rockwell's 245th 16 min 9:42pm Wed 04 Sep 88 300 Meat Head's 1st 23 min 12:04am Tue 03 Sep 88 Local Lord of the Moon's 1034th 4 min 10:16pm Mon 02 Sep 88 Last - grepped from recent callers ---- Search by user, name, number, handle, string Fortune / Quote --------------- Games ----- My department. I'm thinking about a multiplayer paranoia type game using a hack like display. Mmmmboy. Bulletins --------- Same as now but '*'s on new bulletins (since last call) list length Sysop - add bulletin Description, date, filename, length calculated Keyboard Test ------------- Characters typed are echod exactly. Allows for testing emulation. controls become ^, #27 becomes , delete , allows testing of function keys and cursor pad. End mode with ^C. Message Base ------------ Display 2: Idiocy and Mayhem AreaNum: AreaTitle (267 - 302) New: 290 [290] : (FirstMsg - LstMsg) New : NewMsg [CurMsg] : Menu Options Sysop commands Delete an area. Change area/sysop permissions Edit a message (too much power for area sysop?) Plus area sysop commands Area Sysop commands Un/Rot13 a message. Delete a message. LowCase a message. Add/Remove user to conference. Change a users area permissions (not self) Space - next message, Post after last message, Goto after posting A - change area, ? displays areas B - backward read, current to first (continously if set) C - create a new area, conference A new area gives access to everyone, remove users. A conference gives access to no one, add users. The area creator becomes sysop of that area and has the power to add and subtract users. D - de/activate area, toggle ignore E - edit a message users can edit their own message if none follow it F - forward read, current to last (continuously if set) G - goto next area with new messags H - help, meaty I - information on this area Name, Creator, Creation Date, Range J - junk this area - set new to last (catch up) K - kill message (users kill their own) L - list authors, dates, and lines of messages (range) M - reply in mail P - post a message Q - quit to main menu R - reply, including message replied to S - search for message containing a given string T - toggle pause between messages (or should we let more do the work?) U - upload file (ascii) - invoke editor, controls deactivated, all characters leagal, not even a backspace. End with control X's. ? - brief help, display options '+' or '=' or - next '-' or Bs or - prev - next area - prev area - first area - last area Range - #-# show # through # #- show # on to the last message -# show from current to # # show # - show from current to last Message Header [#290] Wed Dec 4, 12:44, 14 lines by The Analog Kid ^^^ ^^ ^^^^^^^^^^^^^^ highlighted? Function Current message should be new message when entering a new area Area Sysop - Rot13, del any message The Sysop - edit messages, move messages to other areas, files Editor - Line oriented, word processor style (always in overstrike for now?). 1. All visual characters leagal A. Ansi/IBM has extend graphics ( >127 ) B. to other types, extended characters are 1 of 2 1. converted to spaces 2. converted to similiar characters 2. Control and escape characters have special functions ^A col 1 ^B nondest bs ^C toggle centerline ^D del to eol ^E eol ^F nondest space ^G eggplant ^H dest bs ^I tab ^J insert lf ^K -- ^L ins pause, clrscr ^M crlf at eol ^N next line ^O -- ^P prev line ^Q -- ^R reverseline ^S signature ^T pageup ^U -- ^V page down ^W del word ^X del to col1 ^Y del line ^Z hold editor. Esc 1..9 or F1-F10 - macros Esc Esc or ^M^M - menu Del - delete char under cursor A note about ^L, this should insert a character that the display function will recognize as a good place for a more. Perhaps : imbed char, ^ VT100, VT52 - cursor pad compatable, ie: Esc[A is up 3. Esc and double return both move into menu driven options A. Search - move cursor to; Replace String B. Print (default - all) C. Hold (exit, doesn't affect data) D. Save - saves buffer in current area, if applicable. Exits Post Send E. Margins (autoindent - left; wordwrap column - right) F. Tab size (^I) G. Right Justify Toggle H. Cancel (clears editor and exits) I. Menu Help J. Control Char Chart (2 column, verbose) Ĵ($"! K. Delete L. Center Range M. Box Range N. Rot 13 4. Editor invoked either by posting message, sending news, etc or by control character at any prompt (^E). 5. Sysop functions Save to a file Read from a file after current line 6. Future versions A. Multiple buffers, equivilant of limited file saving B. Read text from other areas, ie give board and message number different from mail reply with include or post with include 7. Buffer save between logons, and during character drops, save at each exit. 8. Housekeeping - (external) erase buffers older than XX days/weeks 9. Cursor movement not limited to a line (ie ^H^F^B wrap to appropriate line), only top of file, eof. Files Executables ----------- Init - creats all necessary / assumed files and directories overall system validity check default perms, config, shitlist, newuserformat Config - modify configuration file (listed below) Startup - runs the BBS. bails and bitches if required files are missing loads memory resident files Pack - make arcs of directories in top directory makes arc of data in top directory makes arc of executables in top directory Unpack - creates directories if needed unarcs archives in appropriate directorys User Editor Cleanup - remove old mail, buffers, news, users trim logs, recent callers compact user list Data ---- UserList - All user info UserBrief - Name/Number/Password, UserList Entry (mem resident too) ShitList? - Bad user names SystemConfiguration Board Name Sysop Location ComPorts Min and Max Baud Handles Allowed y/n? MaxTime per call Log n on/off (3) Max Log sizes (3) Max RecentCallers Directory Names Mail, Message, Vote... StatusStrings (1..n) - no real weight, just a label 1 Sysop 2 Co-sysop 3 Trivia Master 4 Registerd User 5 Beer Meister 6 Twit 7 Greenie Color assignments Modem Init Strings SystemRecord First system startup Total Calls, Sysop Calls, Posts, Emails, Minutes, Users Latest Bulletin, Finger, User, Announcement, Message Default User File - New User Form Posts, Calls, Mails = 0 FirstOn, LastOn = Today Status = 7 (for instance) Prompt = "$L> " SystemPermissionsMasks Logfiles (.log) BadPassword Activity - LastComm (just tagged users) Logon/off - Last (also everytime BBS started aborted) Directories ----------- Buffers (uid.buf) - users editors on hold Fingers (uid.pln) - users description / diddies Mail (uid.ml) Messages (.msg) Bulletins (.bul) Trivia News/Announcements Vote Help Menu? Text NewUser Greeting (1..n) - random or retrieved like zippy quote Welcome (1..n) Goodbye (1..n) NextCaller RecentCallers SystemStats - Compiled daily RegisteredUsers - compiled after each new user Brief Long Global Variables ---------------- Flags Privacy active? Privacy enabled? No forces active false. ^C enabled (internally toggled) ^S enabled (intern) Take modem off after this user? (usually not) Screen Dump? Chat flag? Monitor logged in? Int Time Left/on Message Board Number Local Display Strings Current Function user is in - What for log file, local display, error tracing User Record UserBriefFile User shtuff ----------- The fields shouldn't be labeled handle, password, etc. Instead they should be String[1..n] Int[1..n] etc. This makes them easily redefinable and MUCH easier to write an editor for. A file of names attached to each one can be set up, just like a file giving names to each of the perms. This way someone editting a user can pick a field by #/whatever and you just prompt for the appropriate type and wallah. Some of these things will be user definable on line and the code should not be huge brute force type shit. User fields { 811/1024 bytes } Characters Sex [1] { 17 } Perms [16] (r, w, s, #) Voting, Trivia, Doors, FT, Games, Sysop... Strings Handle [15] { 675 } Password [10] Signature [20] Name [25] too long? Address [20] too short? City [15] State, Zip [13] Phone [12] Occupation [20] Prompt [25] - variables $L - Time Left $O - Time On $T - Current Time $F - Current Function ie "Dark Side [$T]->" (default) Macros [20char x 5, 80char x 5] Integers User ID (Dates) Not a record number; link to mail, buffers, etc) { 114 } BirthDate (days since Jan 1 1980 or something) Posts Calls Mails Mins MaxTime TimeOn Firston LastOn Expiration in days (0 = no exp) Computer Type TermType Ascii Ansi - assume extended IBM characters (next vt100) MessageBase [2x50 areas] Last # Read Permission - caps means ignore area is set r, R - read only w, W - write / post access s, s - sysop (able to delete, rot, lowcase msgs) Status - Number referencing a system const string Flags Finger/Plan? { 5 } BufferSaved? Unlisted? (name, phone...) ClearScreen in more? NewUser? (cleared manually by sysop or with external user editor - this might be covered using status or one of the perms) Eventually a login script, logout, file of games saves/records/points. When deleting a user, all mail, buffers, scripts, etc should also be wiped. Notes - heres some of my thoughts ----- I don't like questions. In a lot of places in genesis you press an option and it asks you ten things before it works. Like the [R]egistered users thing. YOu have to hit R, L, L before you get what you want. The new software should have options that are preset and can easily be toggled / changed, but always a go key only one level deep. Using the Registered users example. R should pull up a menu with all the sort and select information set with default values, and key to start listing with the current setups. -- The way genesis gets accounts is atrocious. For new users its full of ambiguous questions. For each field it fills, the screen should clear and a brief description of what the user should answer is given (not just a prompt) followed by a prompt. If a CR / blank entry is recieved a meaty help should pop up. For terminal selection ask the user what computer type and assume line feeds and screen width. Next if they have color, then if they are emulating a certain terminal type (again the brief description would ward off new users and a beefy help if they enter something incorrect or the user wants more info. -- Multiline --------- How is this going to be done? To make it multiline, there needs to be some fancy interrups or more realistically, make it event driven. This means there needs to be a separate record of global variables for each active port. Uh. Send - decides to where : local if local logon or watching what port etc (even if not multiline) to screen dump if active Send file - handles messages, bulletins, menus, everything Send string - handles emulation of terminals, color, etc. Send local - handles local emulation (color at least, portability? :-) Send char - drops characters into the io buffers. Someday ------- Mini-networking. Able to send mail to local BBS or remote systems. Not conferencing, just mail. If a letter could be transferred to the DMG, for instance, from there it might be able to hop on a fido net (since there is none here) or FUBAR and onto internet and on to the rest of the world. If only PC Persuit would come to town.