X/* Official Micro-Systems Software Structures */ X X#define NUM_TERM 10 /* Number of computer types */ X#define NUM_SECT 16 /* Number of section names */ X X#define CAT_LEN 15 /* File catalogue name lengths */ X#define DESC_LEN 40 /* File catalogue desc length */ X#define FNAME_LEN 12 /* File name lengths */ X#define FPATH_LEN 30 /* File name path lengths */ X#define NAME_LEN 24 /* User name length */ X#define PASS_LEN 10 /* User password length */ X#define SECT_LEN 20 /* Section name lengths */ X#define TERM_LEN 15 /* Computer name lengths */ X X/* UDHEAD.DAT record structure */ X X/* Note some new additions to this structure, for internal tracking */ X Xtypedef struct { X BYTE type; X int local:1; /* True if local upload */ X int bin:1; /* True if binary file */ X int valid:1; /* True if valid NEW */ X int online:1; /* True if file online NEW */ X int dirnum:5; /* Real dir num of file NEW */ X int :7; /* Reserved CHANGED */ X char cat_name[CAT_LEN]; /* Catalog filename (key1) */ X UWORD date; /* Upload date serial */ X BYTE dir; /* Dir number (key2 - seg1) */ X BYTE section; /* Section number (key2 - seg2) */ X UWORD accesses; /* Number of accesses */ X LONG length; /* File length */ X char disk_name[FNAME_LEN+1]; /* Disk filename */ X char owner[NAME_LEN+1]; /* Owner's name */ X char desc[DESC_LEN+1]; /* Description text */ X} UDHEAD; X X#define UDSIZE sizeof(UDHEAD) X X X/* Terminal parameters */ X Xtypedef struct { X int linefeed: 1; X int :31; X BYTE nuls; X BYTE protocol; X BYTE align; X BYTE page[2]; X BYTE cls[4]; X BYTE bs[3]; X char name[TERM_LEN+1]; X} TRMNL; X X X/* CFGINFO.DAT record structure */ X Xtypedef struct { X int dir0_ok: 1; /* Directory 0 downloads */ X int by_call: 1; /* Time limit per call */ X short max_msg; /* Maximum messages in system */ X short max_user; /* Maximum users in system */ X short max_log; /* Maximum call log */ X short max_ud; /* Maximum U/D files */ X short reward; /* Upload reward */ X short sleeptime; /* sleep timeout (adjusted) */ X long dummy; /* Reserved */ X BYTE log_p1; /* Log privilege low */ X BYTE log_p2; /* Log privilege high */ X BYTE hi_men; /* Highest menu set */ X BYTE log_type; /* Login method */ X short limit[2]; /* Guest/member time limits */ X short priv[2]; /* Guest/member privileges */ X UWORD rd_acc[2]; /* Guest/member read access */ X UWORD wr_acc[2]; /* Guest/member write access */ X UWORD up_acc[2]; /* Guest/member upload access */ X UWORD dn_acc[2]; /* Guest/member download access */ X BYTE sav_sec[2]; /* Guest/member save section */ X BYTE sec_flg[NUM_SECT]; /* Section flags */ X char sec_name[NUM_SECT] [SECT_LEN+1]; /* Section names */ X char ud_alt[NUM_SECT] [FPATH_LEN+1]; /* Alternate UD paths */ X char syspass[PASS_LEN+1]; /* Sysop password */ X BYTE menu[2]; /* Guest/Member menu sets */ X BYTE align; X long dummy2; X long dummy3; X TRMNL trmnl[NUM_TERM]; /* Terminal parameters */