home *** CD-ROM | disk | FTP | other *** search
- This document contains any important information that I deem important
- for you to read. Please give it a look over.
-
-
- 0) Updating to version 1.02.
-
- *************** Urgent: FROM101.EXE and FROM1012.EXE ******************
-
- Before running any version after 1.01 if you haven't run any version
- subsequent to it, you MUST run the program FROM101.EXE (or
- for OS/2 users FROM1012.EXE) in your Simplex directory. This will
- convert your CONFIG.BBS, USERLIST.BBS and all your menu files to using
- the new format! The old ones will be names CONFIG.BAK, USERLIST.BAK,
- and each menu file will also have a .BAK.
-
- Once you have run the new version, and everything is successful, you
- can delete the .BAK files.
-
- The new version of Simplex now implements 16 user flags (A through P).
- These can be used to restrict access to certain menu items. There are
- two new menu options which allow you to turn on or off user flags.
-
- ***********************************************************************
-
-
- 1) Crashes and/or Bugs
-
- Please report any strange crashes or bugs back to me at any of the
- addresses indicated below. OS/2 users especially. If you get an error
- screen from OS/2 with a register dump, PLEASE copy down the numbers
- next to CS: and IP: in the dump and give them to me. That will greatly
- assist me in locating the problem!!
-
-
- 2) Contacting Chris Laforet Software
-
- You may send me mail through any of the following:
-
- Programmer's Oasis BBS, USA .... 919/226-6984
- Programmer's Oasis 2 BBS, USA .. 919/226-7136
- Fidonet Email .................. Chris Laforet @ 1:151/401 or 1:151/402
- Compuserve Email ............... User ID: 76120,110
- US Mail ........................ Chris Laforet Software
- 511-D Poplar St
- Graham, NC 27253
-
- These I check occassionally:
-
- BIX Email....................... User ID: Laforet
- GEnie Email .................... User ID: XTX74591
-
-
- 3) Fidonet users can access a Simplex echo
-
- Users who wish to hook into the private Simplex echo can send me
- Fidonet mail at 1:151/401 or 1:151/402 and request it. What we will do
- is set up a passworded session for the mailers and you will have to
- poll for mail once or twice a week. The tag name off the echo is
- SIMPLEX. In your message, send me your node information, the password
- you wish the mailers to use (<= 8 letters, case is significant) and
- I'll set it up for you.
-
-
- 4) Help files
-
- The help files in help.zip are the .asc and .ans formats needed by
- Simplex. The .src files are the source files in SANSI-compilable
- format in case you wish to change the help files.
-
-
- 5) DOS Overlay version of Simplex
-
- DOS users can get a copy of SIMPLEXO.EXE from any of the following
- locations. It saves about 200K of memory over the regular SIMPLEX.EXE
- while running. If you run door games, it might be better to use this.
- It is not included with the distribution ZIP because it would make it
- too large. Simplexo.exe can be downloaded from the Simplex file area on
- any of the following BBSes:
-
- Programmer's Oasis BBS, USA .... 919/226-6984 HST,2400,1200,300 N,8,1
- Programmer's Oasis 2 BBS, USA .. 919/226-7136 HST,2400,1200,300 N,8,1
- Stardate 1990 BBS, USA ......... 919/376-8432 HST,2400,1200,300 N,8,1
-
-
- 6) Developing Utilities for Simplex
-
- You are encouraged to develop external utilities for Simplex. Please
- feel free to ship them over to the Simplex areas on any of those BBSes.
- The data structures for Simplex are in this doc and are BYTE aligned
- (-Zp1 in MSC). If you need extra information, contact Chris Laforet at
- any of the above addresses and we'll see what we can do!
-
-
- 7) Data information and structures for Simplex v 1.00
-
-
- ***** Remember that structures are BYTE-ALIGNED!!! *****
-
-
- /* these macros access the user_flags bit-mapped options */
-
- #define USER_CLS 0x1 /* send cls codes */
- #define USER_MORE 0x2 /* use more? paging */
- #define USER_ANSI 0x4 /* use ansi */
- #define USER_EDITOR 0x8 /* use full screen editor */
- #define USER_EXPERT 0x10 /* expert (abbreviated) menus */
- #define USER_FILEATTACH 0x20 /* allow user to fileattach in netmail areas? */
- #define USER_DELETED 0x8000 /* user is deleted pending purge */
-
-
- /* these macros access the menu type options */
-
- #define MENU_SHOW 0x0 /* show menu line only */
- #define MENU_CALL 0x1 /* call next menu */
- #define MENU_GOTO 0x2 /* goto next menu - no return */
- #define MENU_RET 0x3 /* return to previous menu */
-
- #define MENU_ENTER 0x10 /* enter a message */
- #define MENU_READ 0x11 /* read a message */
- #define MENU_SCAN 0x12 /* scan messages */
- #define MENU_QSCAN 0x13 /* quickscan messages */
- #define MENU_USERLIST 0x14 /* search/display users list */
- #define MENU_NETSEARCH 0x15 /* search for netmail address */
- #define MENU_FREQ 0x16 /* generate File Request to netmail node */
-
- #define MENU_LIST 0x20 /* list file.bbs listing */
- #define MENU_UPLOAD 0x21 /* upload files to area */
- #define MENU_DOWNLOAD 0x22 /* download files from area */
- #define MENU_RAW 0x23 /* raw directory list in area */
- #define MENU_CONTENTS 0x24 /* view archive contents */
- #define MENU_NEW 0x25 /* show new files on system */
- #define MENU_SRCHNAME 0x26 /* search for file name on system */
- #define MENU_SRCHKEY 0x27 /* search for keyword on system */
- #define MENU_KILL 0x28 /* kill/delete file in area */
- #define MENU_READFILE 0x29 /* read a textfile in file area */
- #define MENU_DOWNLOAD_FILE 0x2a /* download 1 file from area */
- #define MENU_MOVEFILES 0x2b /* move files to another area */
-
- #define MENU_SHOWFILE 0x30 /* show an ansi/ascii file */
- #define MENU_SHOWHOT 0x31 /* show an ansi/ascii file with active keys */
- #define MENU_SHOWWAIT 0x32 /* show an ansi/ascii file with wait for Enter */
- #define MENU_QUESTION 0x33 /* show a questionaire file */
-
- #define MENU_CITY 0x40 /* change users city/state */
- #define MENU_PASSWORD 0x41 /* change users password */
- #define MENU_CLS 0x42 /* toggle users cls state */
- #define MENU_MORE 0x43 /* toggle users more state */
- #define MENU_SCREENLEN 0x44 /* change users screen len */
- #define MENU_ANSI 0x45 /* toggle ansi on/off */
- #define MENU_EDITOR 0x46 /* toggle between line and full editor */
- #define MENU_EXPERT 0x47 /* toggle between novice and expert mode */
- #define MENU_HOMEPHONE 0x48 /* change home phone number */
- #define MENU_DATAPHONE 0x49 /* change data phone number */
-
- #define MENU_ADENTER 0x50 /* enter an advertisement */
- #define MENU_ADREAD 0x51 /* read advertisements */
- #define MENU_ADSCAN 0x52 /* scan advertisments */
-
- #define MENU_NEWPRIV 0x60 /* set a new privilege */
- #define MENU_UPTIME 0x61 /* raise the time of the user x minutes */
- #define MENU_DOWNTIME 0x62 /* drop the time of the user x minutes */
-
- #define MENU_RUN 0xf0 /* run a program from BBS */
- #define MENU_EXIT 0xf1 /* exit BBS with errorlevel */
- #define MENU_VERS 0xf2 /* show BBS version info */
- #define MENU_USAGE 0xf3 /* show users time usage and dl/ul info */
- #define MENU_YELL 0xf4 /* yell for sysop */
- #define MENU_CLOCK 0xf5 /* show clock for time synchronizing */
- #define MENU_CHECKMAIL 0xf6 /* check for mail addressed to user */
- #define MENU_USERUPGRADE 0xf7 /* sysop's user-upgrade option */
- #define MENU_LOGOFF 0xff /* hangup and log off */
-
- #define M_SIGNATURE 0xa442 /* proves file is actual menu file */
-
-
- /* these macros are for message board flags */
-
- #define MSG_LOCAL_FILEATTACH 0x0
- #define MSG_LOCAL 0x1
- #define MSG_ECHO 0x2
- #define MSG_NET 0x4
- #define MSG_PRIVATE 0x8 /* messages are private */
- #define MSG_PUBLIC 0x10 /* messages are public */
- #define MSG_ALIAS 0x20 /* aliases are allowed */
-
-
- /* these macros are for message header flags */
-
- #define MSGH_DELETED 0x1
- #define MSGH_PRIVATE 0x2
- #define MSGH_RECEIVED 0x4
- #define MSGH_NET_UNSENT 0x8 /* is unsent Netmail message */
- #define MSGH_NET 0x10 /* is Netmail */
- #define MSGH_ECHO_UNSENT 0x20 /* is unsent Echomail message */
- #define MSGH_ECHO 0x40 /* is echomail */
- #define MSGH_LOCAL_FILEATTACH 0x80 /* is local fileattach */
-
- #define NET_KILLSENT 0x100 /* kill/sent netmail */
- #define NET_SENT 0x200 /* netmail sent */
- #define NET_FILEATTACH 0x400 /* file(s) attached */
- #define NET_CRASH 0x800 /* crashmail */
- #define NET_RECEIPT_REQ 0x1000 /* receipt requested */
- #define NET_AUDIT_REQ 0x2000 /* audit request */
- #define NET_RECEIPT 0x4000 /* return receipt */
-
-
- /* these macros are for advertisement board header flags */
-
- #define ADH_DELETED 0x1
- #define ADH_REPLIES 0x2
-
-
- /* color macros */
-
- #define BLACK 0
- #define BLUE 1
- #define GREEN 2
- #define CYAN 3
- #define RED 4
- #define MAGENTA 5
- #define BROWN 6
- #define WHITE 7
- #define BRIGHT 8
- #define BLINK 0x80
- #define ON_BLACK 0x0
- #define ON_BLUE 0x10
- #define ON_GREEN 0x20
- #define ON_CYAN 0x30
- #define ON_RED 0x40
- #define ON_MAGENTA 0x50
- #define ON_BROWN 0x60
- #define ON_WHITE 0x70
-
- /* Values for flags in Version 6 nodelist */
-
- #define NL_HUB 0x1
- #define NL_HOST 0x2
- #define NL_REGION 0x4
- #define NL_ZONE 0x8
- #define NL_CM 0x10
-
-
- /* these macros are for user flags */
-
- #define UF_A 0x1
- #define UF_B 0x2
- #define UF_C 0x4
- #define UF_D 0x8
- #define UF_E 0x10
- #define UF_F 0x20
- #define UF_G 0x40
- #define UF_H 0x80
- #define UF_I 0x100
- #define UF_J 0x200
- #define UF_K 0x400
- #define UF_L 0x800
- #define UF_M 0x1000
- #define UF_N 0x2000
- #define UF_O 0x4000
- #define UF_P 0x8000
-
-
-
- struct user
- {
- char user_name[41];
- char user_password[16];
- char user_city[31];
- char user_home[15]; /* users home number */
- char user_data[15]; /* users data/business number */
- unsigned char user_priv; /* users privilege level */
- int user_uflags; /* version 1.02 added 16 flags */
- char user_screenlen; /* length of users screen in lines */
- int user_credit; /* credit in cents for fidomail */
- int user_flags; /* bit mapped flags for options */
-
- int user_firstdate; /* first date user called */
- int user_lastdate; /* last date called */
- int user_lasttime; /* last time called */
- int user_calls; /* number of calls to the BBS */
- int user_timeused; /* amount of time used for the day (minutes) */
-
- int user_upload; /* number of uploads */
- long user_uploadbytes; /* number of bytes uploaded */
- int user_dnload; /* number of downloads */
- long user_dnloadbytes; /* number of bytes downloaded */
-
- char user_reserved[4]; /* reserved for later use */
- };
-
-
- struct prompt
- {
- int prompt_sig; /* signiture for valid menu file 0xa442 */
- char prompt_color;
- char prompt_hilite;
- char prompt_string[56]; /* string to show */
- };
-
-
- struct menu
- {
- int menu_number; /* line number */
- unsigned char menu_type; /* type of choice */
- char menu_key; /* key to initiate choice */
- unsigned char menu_priv; /* user priv to see/use choice */
- int menu_flags; /* version 1.02 added 16 flags */
- char menu_auto; /* automatic execution if true */
- char menu_color; /* color of choice */
- char menu_hilite; /* color of hilight */
- char menu_expert; /* if true show when expert mode is on */
- char menu_line[71]; /* line to show on screen */
- char menu_data[71]; /* data line for menu option */
- char menu_deleted;
- };
-
-
- struct cfg
- {
- int cfg_baud; /* maximum baud rate */
- int cfg_port; /* port number */
- char cfg_init[61]; /* modem initialization string */
- char cfg_resp[21]; /* normal modem response string */
- char cfg_resp3[21]; /* 300 baud response */
- char cfg_resp12[21]; /* 1200 baud response */
- char cfg_resp24[21]; /* 2400 baud response */
- char cfg_resp48[21]; /* 4800 baud response */
- char cfg_resp96[21]; /* 9600 baud response */
- char cfg_resp192[21]; /* 19200 baud response */
- char cfg_ring[21]; /* ring response */
- char cfg_answer[21]; /* answer string */
- char cfg_hangup[21]; /* hangup string */
- char cfg_busy[21]; /* offhook string */
- int cfg_flags; /* flags for setup */
-
- int cfg_minbaud; /* minimum connect rate allowd on BBS */
- int cfg_ansibaud; /* minimum baud for ansi */
- int cfg_dlstart; /* start time for downloads */
- int cfg_dlstop; /* stop time for downloads */
-
- int cfg_zone;
- int cfg_net;
- int cfg_node;
- int cfg_akazone[5];
- int cfg_akanet[5];
- int cfg_akanode[5];
-
- char cfg_sysopname[41]; /* sysop's name */
- char cfg_bbsname[61]; /* BBS name */
- char cfg_origin[66]; /* origin line */
- char cfg_menupath[61]; /* path to menu files */
- char cfg_screenpath[61]; /* path to screen files */
- char cfg_nodepath[61]; /* path to nodelist */
- char cfg_fapath[61]; /* path to local fileattaches */
-
- char cfg_netpath[61]; /* path for net messages */
- char cfg_inboundpath[61]; /* path for inbound message pkts */
- char cfg_outboundpath[61]; /* path for outbound message pkts */
- char cfg_packetpath[61]; /* path for unpacking message pkts */
- char cfg_badmsgpath[61]; /* path for placing bad messages */
- char cfg_unarc[61]; /* command for unarcing ARCed files */
- char cfg_unzip[61]; /* command for unarcing ZIPped files */
- char cfg_unzoo[61]; /* command for unarcing ZOOed files */
- char cfg_unlzh[61]; /* command for unarcing LZHed files */
- char cfg_arc[61]; /* command for arcing ARCed files */
- char cfg_zip[61]; /* command for arcing ZIPped files */
- char cfg_zoo[61]; /* command for arcing ZOOed files */
- char cfg_lzh[61]; /* command for arcing LZHed files */
-
- unsigned char cfg_newpriv; /* priv level of new user */
- int user_newflags; /* version 1.02 added 16 flags */
- int cfg_newcredit; /* credit level of new user */
- int cfg_newtime; /* logon time in mins for newuser */
- char cfg_askhome; /* ask for home phone */
- char cfg_askdata; /* ask for data phone */
-
- char cfg_ansi; /* use ansi on local console */
- char cfg_direct; /* use direct screen writes? */
- char cfg_snow; /* use snow checking on screen writes */
- char cfg_pwdtries; /* number of attempts to get password */
- char cfg_inactive; /* time before hanging up for inactivity */
- char cfg_yells; /* number of yells per session */
- char cfg_yelltime; /* number of seconds for yell bell */
- int cfg_yellstart; /* start time for yell-bell */
- int cfg_yellstop; /* stop time for yell-bell */
- };
-
-
- struct msg
- {
- int msg_number; /* message board number */
- char msg_areaname[41]; /* message area name */
- char msg_flags; /* message area flags */
- unsigned char msg_readpriv;
- unsigned char msg_writepriv;
- unsigned char msg_sysoppriv;
- char msg_origin[66]; /* special origin line for this if echomail area */
- char msg_deleted; /* true if deleted */
- };
-
-
- struct file
- {
- int file_number; /* file board number */
- char file_areaname[41]; /* file area name */
- char file_pathname[61]; /* path to file area */
- char file_descname[61]; /* if set, this is the path to files.bbs */
- unsigned char file_priv; /* priv level to search this area */
- char file_deleted; /* true if deleted */
- };
-
-
- struct evt
- {
- char evt_enabled; /* true if enabled */
- char evt_forced; /* true if forced event */
- char evt_days; /* 0-S-M-T-W-T-F-S */
- unsigned int evt_time; /* encoded time to run */
- char evt_errorlevel;
- char evt_title[21]; /* optional name for event */
- char evt_deleted; /* true if deleted */
- };
-
-
- struct msgh /* systemwide message number is ((offset/sizeof(struct msgh)) + 1) -- 0 is invalid systemwide message */
- {
- int msgh_area; /* area number of message */
- int msgh_number; /* message number int that area! */
- char msgh_to[41]; /* addressee of message */
- char msgh_from[41];
- char msgh_subject[71];
- int msgh_date;
- int msgh_time;
- int msgh_flags; /* net and message flags */
- int msgh_szone;
- int msgh_snet;
- int msgh_snode;
- int msgh_dzone;
- int msgh_dnet;
- int msgh_dnode;
- int msgh_cost;
- int msgh_prev; /* previous message link - systemwide message number */
- int msgh_next; /* next message link - systemwide message number */
- long msgh_offset; /* start offset of message */
- long msgh_length; /* message length in bytes */
- };
-
-
- struct mdata
- {
- int mdata_msgs; /* total number of messages */
- int mdata_del; /* total number of deleted messages */
- };
-
-
- struct mc /* message counts by area */
- {
- int mc_area;
- int mc_msgs;
- };
-
-
- struct mlink
- {
- int mlink_area;
- int mlink_number; /* number of the message in that area! */
- int mlink_flags; /* a copy of the message flags */
- int mlink_cksum; /* a checksum on the uppercased TO: person's name */
- };
-
-
- struct adh /* header for advertisements */
- {
- char adh_from[41];
- char adh_subject[71];
- int adh_date;
- int adh_time;
- int adh_killdate;
- int adh_flags; /* ad flags */
- long adh_prev; /* previous ad header */
- long adh_next; /* next ad header */
- long adh_length; /* ad length in bytes */
- };
-
-
- struct m
- {
- char m_name[10]; /* menu's name */
- struct prompt m_prompt;
- struct menu **m_lines;
- int m_maxlines; /* number of allocated menu lines */
- int m_curlines; /* number of menu lines */
- };
-
-
- struct ui /* User-info structure */
- {
- char ui_name[41]; /* user's name */
- int ui_date; /* date user logged in */
- int ui_time; /* time user logged in */
- int ui_baud; /* baud rate user logged in at */
- int ui_online; /* time user spent online in minutes */
- int ui_msgread; /* number of messages user read */
- int ui_msgposted; /* number of messages user posted */
- int ui_upload; /* number of uploads */
- long ui_uploadbytes; /* number of bytes uploaded */
- int ui_dnload; /* number of downloads */
- long ui_dnloadbytes; /* number of bytes downloaded */
- };
-
-
- struct nl /* version 6 nodelist entry */
- {
- int nl_net;
- int nl_node;
- int nl_cost;
- char nl_bbsname[34];
- char nl_phone[40];
- char nl_city[30];
- char nl_pwd[8];
- int nl_realcost;
- int nl_hub;
- char nl_baud;
- char nl_modemtype;
- int nl_flags;
- int nl_waste;
- };
-
-
- struct nlix /* version 6 nodelist index */
- {
- int nlix_node;
- int nlix_net;
- };
-
-
-