/* bbs.h... Needed to compile AELib & Mybbs */
/* Define our GLOBAL Names */
/* USED ONLY IN MENU.C line 567 so I dont show what I am working on to others */
#define STD_WHITE "[37m"
#define STD_CLEAR "[0m"
#define STDWCLR STD_CLEAR STD_WHITE

#define LCALLER_LOWLEVEL        250L
#define NL NULL
#define PROG_NAME "AmiExpress"              /* also used for our main msg port */
#define PROG_AUTHOR "Ronald T. Shaw"
#define PROG_AUTHOR1 "Joseph Hodge"
/* MsgPort Names */
//#define MAINPORT_NAME "SPZPORT"  /* main BBS port name the only link between programs */
#define PORT_NAME "AmiExpress_Node."        /* ths is only the prefix msgport name*/
#define JOECODE 1
#define JOEPROG 1
#include <exec/exec.h>
#include <dos/dosextens.h>
#include <workbench/workbench.h>
#include <dos/dos.h>
#include <exec/memory.h>
#include <clib/asl_protos.h>
#include <devices/serial.h>
#include <hardware/cia.h>
#include <clib/exec_protos.h>
#include <clib/dos_protos.h>
#include <clib/icon_protos.h>
#include <clib/alib_protos.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <ctype.h>
#include <time.h>
#include "sc:ae/code/acp3.00/semis.h"
#include "express.h"

#define SEROUT          SOUT
#define KEYIN           COUT
#define Chat_Reg   1
#define Chat_Give  2
#define Chat_GetIt 3
#define Chat_UnReg 4
#define Chat_Open  5
#define Chat_Close 6
#define Chat_QueryReg 7
#define Chat_QueryOpen 8
#define Chat_Clear 9
#ifdef MAIN_PROG
BOOL RTS_DEBUG = FALSE;
struct IntuitionBase *IntuitionBase = NL;
struct GfxBase *GfxBase = NL;
struct UtilityBase *UtilityBase = NL;
struct RexxSysBase *RexxSysBase =NL;
struct Screen *MYScreen = NL;
struct Window *MYwindow=NL, *StatusPane=NL, *Iconify=NL, *ZmodemStatsWin=NL;

struct IntuiMessage *IconifyMsg=NL, *ZSMsg=NL;
struct DrawInfo *drinfo = NL;
struct Image *closeimage = NL;


struct timerequest *TimerMsg=NL;

struct RexxMsg *SDReplyRexx = NL ,*SReplyRexx = NL;

struct Remember *RememberKey=NL;
struct StartOption *Sopt=NL;
struct Library *GadToolsBase=NL;
struct User User;
struct UserKeys User_keys;
struct User GHoozer;
struct UserKeys GHoozer2;
struct MailStat MailStat;
struct MailHeader MailHeader;
struct SinglePort *SingleNode=NL;
struct MultiPort *MasterNode=NL;
struct Library *AslBase=NULL;
struct ZModem ZModemInfo;
struct TempSysopInfo TSI;
 struct MsgPort *WriteSerPort=NULL;
 struct MsgPort *ReadSerPort=NULL;
 struct MsgPort *WriteConPort=NULL;
 struct MsgPort *ReadConPort=NULL;
 struct MsgPort *TimerPort=NULL;
 struct MsgPort *MyRexxPort=NULL;
 struct MsgPort *StatWritePort=NULL;
 struct MsgPort *ZmodemWritePort=NULL;
 struct IOStdReq *StatWriteReq=NULL;
 struct IOStdReq *ZmodemWriteReq=NULL;
 struct IOExtSer *WriteSerReq=NULL,*ReadSerReq=NULL;
 struct IOStdReq *WriteConReq=NULL,*ReadConReq=NULL;
 struct Commands *Cmds=NULL;
 UBYTE SOUT=0;
 UBYTE COUT=0;
FILE *CaptureFP =NL;

ULONG DosBase;                 /* this is so fucking cheap */
ULONG DiskFontBase;

UBYTE NodeWork[255];
ULONG *MemConf=NULL;
struct List *ConfDBList;
ULONG ProgFlag = 0L; /* used for my programs signals */

//ULONG *ptr1, *ptr2, cksum;
ULONG cksum;
ULONG TimerSig, DoorSig, SerCharSig, ConCharSig, IconifySig, RexxSig,SysopStatus;

long  NumOfZMsgs=0L, Time_holder=0L, GL1=0L, Startup_Time=0L;
long  Time_connect=0L, Time_menu_entry=0L, Time_system=0L, Time_remaining=0L, Time_limit=0L;
long  TTEFF=0L,TTCPS=0L,TTTM=0L,TMPBT=0L,TBT=0L,DTBT=0L,BytesADL=0L,Last_Msg_Read_Conf,
      Last_New_Read_Conf,Time_Last_On=0L;

UWORD Sysopdl;
int   Boards_Are_Active,LogON=0,zresume,NumSkipd=0,QuickFlag,AnsiColor;
int   ChatFlag=0,FreeDFlag=0,gnsflag=0,HistorySelect=0;
int   Bulletins_Are_Active, MaxDirs=0,ChatSerFlag=0,ChatConFlag=0;
int   Whence_The_Logon=0,SySChat=0,PagedFlag=0;
int   Online_Baud=0, Online_BaudR=0, Online_NFiles=0,BitPlanes=0,DONF=0;
int   IO_Flags[7], NewUserFlagsAR[7], CHATF=0,ComputerEntries=0;
int   Chat_Stat=0, CN=1, ValidUser=0, GIFP1=0, GIFP2=0, GI1=0, GI2=0;
int   newacs[100];
int QuietNode=0;
char  RecFileNames[1024], DateStr[30], Conference_Location[100], Upload_Location[100],
      MsgBase_Location[100];
      Conference_Name[100], *ComputerTypes[255], MAINMENU_Li[255];
char  Command[6][40];  
char  flaglist[2048], GR[6], rfinal[3072], NodeStr[255];
char  ConnectString[50], ReservedName[40], titlebar[150], ititlebar[250],ptitlebar[250];
char TrapConnect[200];
char UserDataLoc[200];
char UserKeyLoc[200];
char Screen_Location[100];
UBYTE GSTR1[1024], GSTR2[1024], GSTR3[1024], ShutDownFlag, NewSinceFlag;
UBYTE NODENUMBER=0,*HistoryBuf =NL,NumHistItems=0,WhichHist=0;
//UBYTE SEROUT = 0;
UBYTE serverin[20];
BYTE  NOFKeys=0,OnlineEdit=0,FreeDownloads=0,ICON=0,AWAITLOGON=0,ICONATS=0,CNOZOOM=0,
      ZWindow=0,EXECBATCH=0,DStatBar=0,BeenUDd=0,DeBuG=0;
//BYTE KEYIN
BOOL TrueReset=0;

UBYTE WORKB[1024];


int MCIViewSafe=TRUE;
int TakeCredits=0;
int System_Calls=0;
BOOL TrapDoor=FALSE;
BOOL mcimail=FALSE;
int ServerCmd=0;
BOOL GETCLIP=FALSE;
int RawArrow=0;
BOOL MCIDoor=FALSE;
struct ansi
{
  int ansicode;
  char buf[80];
};
struct ansi strip,stripr;
struct Process *mytask=NL;
#else
struct ansi
{
  int ansicode;
  char buf[20];
} ;
extern int transfering;
extern struct Process *mytask;
extern struct ansi strip,stripr;
extern BOOL RTS_DEBUG;
extern struct Library *IconBase;
extern BOOL TrapDoor;
extern UBYTE WORKB[1024];
extern int RawArrow;
extern BOOL GETCLIP;
extern BOOL MCIDoor;
extern struct Library *GadToolsBase;
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
extern struct UtilityBase *UtilityBase;
extern struct RexxSysBase *RexxSysBase;
extern struct DrawInfo *drinfo;
extern struct Image *closeimage;
extern struct MsgPort *WriteSerPort;
extern struct MsgPort *ReadSerPort;
extern struct MsgPort *WriteConPort;
extern struct MsgPort *ReadConPort;
extern struct MsgPort *TimerPort;
extern struct MsgPort *MyRexxPort;
extern struct MsgPort *StatWritePort;
extern struct MsgPort *ZmodemWritePort;
extern struct IOStdReq *StatWriteReq;
extern struct IOStdReq *ZmodemWriteReq;
extern struct IOExtSer *WriteSerReq,*ReadSerReq;
extern struct IOStdReq *WriteConReq,*ReadConReq;
extern struct Commands *Cmds;
extern UBYTE SOUT;
extern UBYTE COUT;
extern struct Remember *RememberKey;
extern struct Gadget MG;
extern int QuietNode;
extern struct Screen *MYScreen;
extern struct StartOption *Sopt;
extern struct NewScreen MYNewScreen;
extern struct NewWindow MYNewWindow, PaneStatus, CloseIt, ZmodemStats;
extern struct NewWindow OpenIt;
extern struct Window *MYwindow, *StatusPane, *Iconify, *ZmodemStatsWin;
extern struct SinglePort *SingleNode;
extern struct MultiPort *MasterNode;
//extern struct IOExtSer *WriteSerReq, *ReadSerReq;
//extern struct IOStdReq *WriteConReq, *ReadConReq, *StatWriteReq, *ZmodemWriteReq;
extern struct timerequest *TimerMsg;
//extern struct MsgPort *WriteSerPort, *ReadSerPort, *TimerPort;
//extern struct MsgPort *WriteConPort, *ReadConPort, *StatWritePort, *ZmodemWritePort;
//extern struct MsgPort *MyRexxPort;
extern struct Library *AslBase;
//extern struct Commands *Cmds;
extern struct User User;
extern struct UserKeys User_keys;
extern struct MailHeader MailHeader;
extern struct MailStat MailStat;
extern ULONG *MemConf;
extern struct ZModem ZModemInfo;

extern FILE  *CaptureFP;

extern ULONG ProgFlag;                      /* used for my programs signals */
extern ULONG TimerSig, DoorSig, SerCharSig, ConCharSig, IconifySig,RexxSig;

extern long  Time_connect, Time_menu_entry, Time_system, Time_remaining, Time_limit;
extern long  Time_holder, Startup_Time;
extern long  BytesADL,TTEFF,TTCPS,TTTM,TMPBT,TBT,DTBT;
extern long  Last_Msg_Read_Conf,
             Last_New_Read_Conf,Time_Last_On;
extern char Screen_Location[100];

extern int   GIFP1, GIFP2, GI1, GI2;
extern int   Bulletins_Are_Active, Whence_The_Logon,IO_Flags[], GI1;
extern int   Boards_Are_Active, BitPlanes, GIFP1, GIFP2;
extern int   ComputerEntries, gnsflag, MaxDirs, DirScan, StartDir, LineCount;
extern int   Online_Baud, Online_BaudR, Online_NFiles, DONF;
extern int   AnsiColor,CN, FreeDFlag, LogON,zresume,NumSkipd,QuickFlag;
extern int   PagedFlag,SySChat;
extern int   IO_Flags[7], NewUserFlagsAR[7], CHATF,ComputerEntries;
extern int   ChatFlag,HistorySelect;
extern int newacs[100];
extern int MCIViewSafe;
extern int System_Calls;
extern BOOL mcimail;
extern UWORD Sysopdl;

extern UBYTE GSTR1[1024], GSTR2[1024], GSTR3[1024];
extern UBYTE *HistoryBuf;
//extern UBYTE SEROUT;
extern UBYTE serverin[20];

extern BYTE  NOFKeys,OnlineEdit,FreeDownloads,ICON,AWAITLOGON,ICONATS,CNOZOOM,
      ZWindow,EXECBATCH,DStatBar,BeenUDd,DeBuG,DStatBar;
//extern BYTE KEYIN
extern char  titlebar[150], NodeStr[255], *ComputerTypes[255], flaglist[2048];
extern char  GR[6], rfinal[3072], Command[6][40];
extern char  ConnectString[50],RecFileNames[1024];
extern char  Conference_Location[],MsgBase_Location[],Upload_Location[], DateStr[30];
extern char  Conference_Name[100], MAINMENU_Li[255];
extern char TrapConnect[];
extern char UserDataLoc[];
extern char UserKeyLoc[];
extern int ServerCmd;
#endif


#include "myinfo.h"
#include "bbs.protos"

