/* 
** Name    : AEDoor.h 
** Version : 1.3 
** Date    : 18 Apr 1993 
** Author  : CFi/Eclipse 
** (c) 1993 all rights reserved. Compile with SAS/C v6.x
*/ 
 
/*      Include Files                           */
#include	<proto/exec.h>
#include	<proto/dos.h>
#include	<exec/memory.h>
#include	<stdlib.h>
#include	<string.h>
#include	<clib/alib_stdio_protos.h>

/*      Definations of Commands                 */
#define JH_LI           0               /* Request string of information */
#define JH_REGISTER     1               /* Register a door with node */
#define JH_SHUTDOWN     2               /* Tell Node to shutdown Port */
#define JH_WRITE        3               /* Send a text string to User */
#define JH_SM           4               /* Send a text string to User+CR/LF */
#define JH_PM           5               /* Prompt User for a count of chars */
#define JH_HK           6               /* GetChar */
#define JH_SG           7               /* Display a text file to User */
#define JH_SF           8               /* Display a text file to User */
#define JH_EF           9               /* Edit own file */
#define JH_CO           10              /* Send text to console only */
#define JH_BBSNAME      11              /* Retrieve BBS-Name */
#define JH_SYSOP        12              /* Retrieve SYSOP-Name */
#define JH_FLAGFILE     13              /* Add file to list of tagged files */
#define JH_SHOWFLAGS    14              /* Obsolete, DO NOT USE */
#define JH_ExtHK        15              /* Reserved, DO NOT USE */
#define JH_SIGBIT       16              /* Reserved, DO NOT USE */
#define JH_FetchKey     17              /* Reserved, DO NOT USE */

#define DT_NAME         100             /* Retrieve/Change User-Name */
#define DT_PASSWORD     101             /* Retrieve/Change U-Password */
#define DT_LOCATION     102             /* Retrieve/Change U-Location */
#define DT_PHONENUMBER  103             /* Retrieve/Change U-Phonenumber */
#define DT_SLOTNUMBER   104             /* Retrieve/Change U-Slotnumber */
#define DT_ACCESSLEVEL  105             /* Retrieve/Change U-Acesslevel */
#define DT_RATIOTYPE    106             /* Retrieve/Change U-Ratiotype */
#define DT_RATIO        107             /* Retrieve/Change U-Ratio */
#define DT_COMPTYPE     108             /* Retrieve/Change U-Computertype */
#define DT_MESSAGESPOSTED       109     /* Retrieve/Change U-MsgPosted */
#define DT_UPLOADS      110             /* Retrieve/Change U-Uploads */
#define DT_DOWNLOADS    111             /* Retrieve/Change U-Downloads */
#define DT_TIMESCALLED  112             /* Retrieve/Change U-Calls */
#define DT_TIMELASTON   113             /* Retrieve/Change U-LastOn */
#define DT_TIMEUSED     114             /* Retrieve/Change U-TimeUsed */
#define DT_TIMELIMIT    115             /* Retrieve/Change U-TimeLimit */
#define DT_TIMETOTAL    116             /* Retrieve/Change U-TimeTotal */
#define DT_BYTESUPLOAD  117             /* Retrieve/Change U-BytesUploads */
#define DT_BYTESDOWNLOAD        118     /* Retrieve/Change U-BytesDownloads */
#define DT_DAILYBYTELIMIT       119     /* Retrieve/Change U-ByteLimit */
#define DT_DAILYBYTEDLD 120             /* Retrieve/Change U-ByteDownloaded */
#define DT_EXPERT       121             /* Retrieve/Change U-ExpertMode */
#define DT_LINELENGTH   122             /* Retrieve/Change U-LineLength */

#define ACTIVE_NODES    123             /* Retrive a str of (in)active nodes */
#define DT_DUMP         124             /* Dump U-Data to a file */
#define DT_TIMEOUT      125             /* Retrieve/Change Door TimeoutLimit */

#define BB_CONFNAME     126             /* Retrieve/Change Conference Name */
#define BB_CONFLOCAL    127             /* Retrieve/Change Conference Location */
#define BB_LOCAL        128             /* Retrieve The current BBS Location */
#define BB_STATUS       129             /* Retrieve The Offline/Online Status */
#define BB_COMMAND      130             /* Obsolete, DO NOT USE */
#define BB_MAINLINE     131             /* Retrieve argument on menuprompt */

#define NB_LOAD         132             /* Obsolete, DO NOT USE */
#define DT_USERLOAD     133             /* Obsolete, DO NOT USE */
#define BB_CONFIG       134             /* Obsolete, DO NOT USE */
#define CHG_USER        135             /* Obsolete, DO NOT USE */

#define RETURNCOMMAND   136             /* Execute Internal Comm, after door */
#define ZMODEMSEND      137             /* Send file to the User */
#define ZMODEMRECEIVE   138             /* Receive batch uploads */
#define SCREEN_ADRESS   139             /* Retrieve screen adress in HEX */
#define BB_TASKPRI      140             /* Retrieve Pri of node */
#define RAWSCREEN_ADRESS        141     /* Retrieve screen adress in DEC */
#define BB_CHATFLAG     142             /* Retrieve chat setting */

#define DT_STAMP_LASTON 143             /* Retrieve date-string U-LastOn */
#define DT_STAMP_CTIME  144             /* Retrieve time-string current */
#define DT_CURR_TIME    145             /* Retrieve time-string julian-date in SEC */
#define DT_CONFACCESS   146             /* Retrieve U-ConferenceAccess */

#define BB_PCONFLOCAL   147             /* Reserved, DO NOT USE */
#define BB_PCONFNAME    148             /* Reserved, DO NOT USE */
#define BB_NODEID       149             /* Retrieve Node number current node */
#define BB_CALLERSLOG   150             /* Add a line to the CallersLog */
#define BB_UDLOG        151             /* Add a line to the UdLog */
#define EXPRESS_VERSION 152             /* Retrieve version string */
#define SV_UNICONIFY    153             /* Reserved, DO NOT USE */
#define BB_CHATSET      162             /* Retrieve/Change the chat status */
#define ENVSTAT         163             /* Retrieve/Change env stat var */

#define GETKEY          500             /* Reserved, DO NOT USE */
#define RAWARROW        501             /* Reserved, DO NOT USE */
#define CHAIN           502             /* Reserved, DO NOT USE */
#define NODE_DEVICE     503             /* Retrieve node device name */
#define NODE_UNIT       504             /* Retrieve node unit number */
#define NODE_BAUD       505             /* Retrieve node init baudrate */
#define NODE_NUMBER     506             /* Obsolete, DO NOT USE */

#define JH_MCI          507             /* Send MCI text to express */
#define PRV_COMMAND     508             /* Execute internal /X command immed */
#define PRV_GROUP       509             /* Reserved, DO NOT USE */

#define BB_CONFNUM      510             /* Retrieve conference number curr. */
#define BB_DROPDTR      511             /* Drop carrier on a user */
#define BB_GETTASK      512             /* Finds curr. node task adress */

#define BB_REMOVEPORT   513             /* Obsolete, DO NOT USE */
#define BB_SOPT         514             /* Obsolete, DO NOT USE */

#define NODE_BAUDRATE   516             /* Retrieve U-Connect rate */
#define BB_LOGONTYPE    517             /* Retrieve the LOGONTYPE */

#define BB_SCRLEFT      518             /* Retrieve screen leftedge coord. */
#define BB_SCRTOP       519             /* Retrieve screen topedge  coord. */
#define BB_SCRWIDTH     520             /* Retrieve screen width */
#define BB_SCRHEIGHT    521             /* Retrieve screen height */

#define BB_PURGELINE    522             /* Abort serial input, request more */
#define BB_PURGELINESTART       523     /* Clear serial buffer, request more */
#define BB_PURGELINEEND 524             /* Clear serial buffer */

#define BB_NONSTOPTEXT  525             /* Change NONSTOP text scrolling */
#define BB_LINECOUNT    526             /* Retrieve/Change curr. lines viewed */

#define DT_LANGUAGE     527             /* Retrieve/Change curr. langauge */
#define DT_QUICKFLAG    528             /* Change QUICKTEXT flag */
#define DT_GOODFILE     529             /* Set results of tested uploadfile */

#define DT_ADDBIT       1000            /* Reserved, DO NOT USE */
#define DT_REMBIT       1001            /* Reserved, DO NOT USE */
#define DT_QUERYBIT     1002            /* Reserved, DO NOT USE */

#define SET_DT          0               /* JHMessage->Data = SET_DT */
#define GET_DT          1               /* JHMessage->Data = GET_DT */

/*      AEDoorPort MessagePort Structure        */
struct  JHMessage
{
        struct          Message Msg;    /* Message structure */
        UBYTE           String[200];    /* Info Buffer */
        LONG            Data;           /* Read/Write & result indicator */
        LONG            Command;        /* Command sent from Door */
        LONG            NodeID;         /* Reserved */
        LONG            LineNum;        /* Reserved */
        ULONG           signal;         /* Reserved */
        struct  Process *task;          /* Reserved */
};

/*      AEUserData Structure USER.DATA          */
struct  AEUserData
{
        UBYTE           UserName[31];   /* Name         [30 NULL term. string] */
        UBYTE           UserPass[9];    /* Password     [08 NULL term. string] */
        UBYTE           UserLoc[30];    /* Location     [29 NULL term. string] */
        UBYTE           UserPhon[13];   /* Phone Number [12 NULL term. string] */
        UBYTE           Even1;          /* Make Even */
        UWORD           UserSlot;       /* Slot Number,  0 if inactive*/
        UWORD           UserSecL;       /* Security Level */
        UWORD           UserRType;      /* Ratio Type */
        UWORD           UserRatio;      /* Ratio */
        UWORD           UserCompType;   /* Computer Type */
        UWORD           UserMsgP;       /* Messages Posted */
        ULONG           UserMsgLWrite;  /* Date Last wrote Message [JULIAN] */
        ULONG           UserMsgHigh[9]; /* Message high in Confx */
        UBYTE           UserConfA[10];  /* Conf. Access [09 NULL term. string] */
        UWORD           UserUpLoads;    /* Uploads */
        UWORD           UserDownLoads;  /* Downloads */
        UWORD           UserAutoRejoin; /* Confx Auto Rejoin */
        UWORD           UserCalls;      /* Calls to the System */
        ULONG           UserTimeLast;   /* Date Last on            [JULIAN] */
        ULONG           UserTimeUsed;   /* Time Used    [Today] */
        ULONG           UserTimeLim;    /* Time Limit   [Call] */
        ULONG           UserTimeTot;    /* Time Total   [Daily] */
        LONG            UserDownByte;   /* Downloaded Bytes */
        LONG            UserUpByte;     /* Uploaded Bytes */
        ULONG           UserByteLim;    /* Byte Limit   [Daily] */
        UBYTE           Filler1[4];     /* Filler */
        UBYTE           UserExMode;     /* Export Mode  [X/N] */
        UBYTE           Even2;          /* Make Even */
        ULONG           UserMsgRead[9]; /* Message read in Confx */
        UBYTE           Filler2[4];     /* Filler */
        UBYTE           User5A;         /* \x5A */
        UBYTE           UserUUCP;       /* UUCP Number */
        UBYTE           UserNumLines;   /* Number of Lines */
        UBYTE           UserNew;        /* NewUser      [01 == New] */
};

/*      AEUserKeys Structure USER.KEYS          */
struct  AEUserKeys
{
       	UBYTE           UserName[31];   /* Name */
        UBYTE           Even1;          /* Make Even */
        UBYTE           Filler1[2];     /* Filler */
        UWORD           UserSlot;       /* Slot Number */
        UBYTE           Filler2[2];     /* Filler */
        UWORD           UserUpCps;      /* Uploading   CPS-Rate */
        UWORD           UserDownCps;    /* Downloading CPS-Rate */
        UWORD           UserClsScr;     /* Clear Screen Codes */
        UBYTE           Filler3[12];    /* Filler */
};
