home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
500-599
/
ff589.lza
/
Term
/
TermSrc.lha
/
termGlobal.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-12-01
|
36KB
|
1,262 lines
/* $Revision Header * Header built automatically - do not edit! *************
*
* (C) Copyright 1991 by Olaf 'Olsen' Barthel & MXM
*
* Name .....: TermGlobal.h
* Created ..: Monday 21-Jan-91 20:12
* Revision .: 0
*
* Date Author Comment
* ========= ======== ====================
* 21-Jan-91 Olsen Created this file!
*
* $Revision Header ********************************************************/
#include "xproto.h"
#include "shared.h"
/* Menu item codes. */
enum { MEN_OPEN=1,MEN_SAVE,MEN_SAVEAS,MEN_PRINTSCREEN,MEN_ICONIFY,MEN_ABOUT,MEN_QUIT,
MEN_SETCONSOLE,MEN_DOSCOMMAND,MEN_REXXCOMMAND,MEN_EDIT,MEN_PASTE,MEN_PACKET,
MEN_CLEARBUFFER,MEN_DISPLAYBUFFER,MEN_CLOSEBUFFER,MEN_LOADBUFFER,MEN_SAVEBUFFER,MEN_CAPTUREDISK,MEN_CAPTUREPRINTER,
MEN_UPLOADTEXT,MEN_DOWNLOADTEXT,MEN_SEND,MEN_RECEIVE,MEN_UPLOAD,MEN_DOWNLOAD,MEN_XFERPROTOCOL,MEN_SELECTXFER,
MEN_PHONEBOOK,MEN_DIAL,MEN_REDIAL,MEN_PLAY,MEN_SENDBREAK,MEN_HANGUP,MEN_RELEASE,
MEN_RESETSTYLES,MEN_CLEARSCREEN,MEN_RESETTERMINAL,MEN_SAVEILBM,MEN_SAVEASCII,
MEN_SERIAL,MEN_MODEM,MEN_TRANSFER,MEN_FASTMACROS,MEN_MACROS,MEN_SCREEN,MEN_TERMINAL,MEN_STARTUP,MEN_EMULATION,MEN_PATH,MEN_HOTKEYS,MEN_SPEECH };
/* Serial settings. */
enum { PARITY_NONE,PARITY_EVEN,PARITY_ODD,PARITY_MARK,PARITY_SPACE };
enum { HANDSHAKING_XONXOFF,HANDSHAKING_RTSCTS,HANDSHAKING_NONE };
enum { DUPLEX_FULL,DUPLEX_HALF };
/* Terminal settings. */
enum { CR_IGNORE,CR_ASCR,CR_ASCRLF };
enum { LF_IGNORE,LF_ASLF,LF_ASLFCR };
enum { EMULATION_ANSIVT100,EMULATION_ATOMIC,EMULATION_TTY,EMULATION_EXTERNAL };
enum { COLOUR_AMIGA,COLOUR_EIGHT,COLOUR_SIXTEEN,COLOUR_MONO };
/* Protocol types. */
enum { PROTOCOL_XMODEM,PROTOCOL_XMODEMCRC,PROTOCOL_YMODEM,PROTOCOL_ZMODEM };
/* Font types. */
enum { FONT_TOPAZ,FONT_IBM };
/* Status types. */
enum { STATUS_READY,STATUS_HOLDING,STATUS_DIALING,STATUS_UPLOAD,
STATUS_DOWNLOAD,STATUS_BREAKING,STATUS_HANGUP };
/* Font scales. */
enum { SCALE_NORMAL,SCALE_HALF };
enum { SCALE_ATTR_NORMAL,SCALE_ATTR_TOP2X,SCALE_ATTR_BOT2X,SCALE_ATTR_2X };
/* Transfer types. */
enum { TRANSFER_BINARY,TRANSFER_TEXT,TRANSFER_ASCII };
/* Upload panel actions. */
enum { UPLOAD_TEXT=1,UPLOAD_BINARY,UPLOAD_IGNORE,UPLOAD_ABORT };
/* Miscellaneous emulation setup errors. */
enum { EM_LOADFAILED=1,EM_NOPORT,EM_NOPROC,EM_TIMEOUT,EM_VERSION,
EM_DATA,EM_RESOURCES,EM_CONSOLE };
/* These signal masks will make life a bit easier. */
#define SIG_WINDOW (1 << Window -> UserPort -> mp_SigBit)
#define SIG_REXX (1 << TermRexxPort -> mp_SigBit)
#define SIG_SERIAL (1 << ReadPort -> mp_SigBit)
#define SIG_PACKET (1 << PacketWindow -> UserPort -> mp_SigBit)
#define SIG_TIMER (1 << TimeRequest -> tr_node . io_Message . mn_ReplyPort -> mp_SigBit)
#define SIG_AUDIO (1 << AudioBlock -> ioa_Request . io_Message . mn_ReplyPort -> mp_SigBit)
/* Most simple one line macro to return NULL if `Gadget' happens
* to be NULL as well.
*/
#define BailOut() if(!Gadget) return(NULL)
/* Size of the serial read buffer. Changing this value means having
* to recompile Serial.c, termMain.c and termRexx.c
*/
#define SERBUFF_SIZE 16384
/* Special character treatment. */
struct SpecialKey
{
UBYTE Key;
VOID (*Routine)();
};
/* Cursor backup data. */
struct CursorData
{
BYTE Charset;
BYTE Attributes;
BYTE UseRegion;
BYTE RegionSet;
WORD Top,Bottom;
WORD CursorX,CursorY;
};
/* Global data link. */
struct TermPort
{
struct MsgPort ExecNode;
struct Window *TopWindow;
struct SignalSemaphore OpenSemaphore;
LONG ID,OpenCount,HoldIt;
LONG Reserved[5];
};
/* A dial list entry. */
struct PhoneNode
{
struct Node VanillaNode;
ULONG Number;
struct PhoneEntry *Entry;
};
/* A Fast! macro list entry. */
struct MacroNode
{
struct MacroNode *mn_Succ; /* Modeled after the default Node. */
struct MacroNode *mn_Pred;
WORD mn_Pad; /* Included only for Node compatibility. */
UBYTE *mn_Macro; /* = ln_Name, title */
UBYTE *mn_Code; /* The execution code. */
};
/* Speech preferences. */
struct SpeechConfig
{
WORD Rate;
WORD Pitch;
LONG Frequency;
BYTE Sex;
BYTE Volume;
BYTE Enabled;
BYTE Pad;
};
/* Macro Preferences. */
struct MacroKeys
{
UBYTE Keys[4][10][256];
};
/* term configuration. */
struct Configuration
{
/* Serial Preferences. */
ULONG BaudRate;
BYTE BitsPerChar;
BYTE Parity;
BYTE StopBits;
BYTE Handshaking;
BYTE Duplex;
BYTE HighSpeed;
ULONG BreakLength;
UBYTE SerialDevice[40];
LONG UnitNumber;
/* Modem Preferences. */
UBYTE ModemInit[80];
UBYTE ModemExit[80];
UBYTE ModemHangup[80];
UBYTE DialPrefix[80];
LONG RedialDelay;
LONG DialRetries;
LONG DialTimeout;
BYTE ConnectAutoCapture;
BYTE ConnectAutoBaud;
BYTE LogActions;
UBYTE NoCarrier[16];
UBYTE Connect[16];
UBYTE Voice[16];
UBYTE Ring[16];
UBYTE Busy[16];
/* Transfer Preferences. */
UBYTE Protocol[40];
/* Startup macro. */
UBYTE StartupMacro[256];
/* Macro Preferences. */
UBYTE MacroFile[256];
/* Screen Preferences. */
ULONG DisplayMode;
UWORD Colours[16];
BYTE MakeScreenPublic;
BYTE ShanghaiWindows;
/* Terminal Preferences. */
BYTE CaptureFilter;
BYTE DestructiveBackspace;
BYTE AudibleBell;
BYTE VisibleBell;
BYTE EightyColumns;
BYTE DisableBlinking;
BYTE SendCR;
BYTE SendLF;
BYTE ColourMode;
BYTE Emulation;
BYTE Font;
/* Emulation control. */
BYTE CursorApp;
BYTE FontScale;
BYTE JumpScroll;
BYTE AutoWrap;
BYTE CursorWrap;
BYTE NewLine;
BYTE InsertChar;
BYTE NumApp;
/* Path Preferences. */
UBYTE DefaultStorage[256];
UBYTE TextUploadPath[256];
UBYTE TextDownloadPath[256];
UBYTE ASCIIUploadPath[256];
UBYTE ASCIIDownloadPath[256];
UBYTE BinaryUploadPath[256];
UBYTE BinaryDownloadPath[256];
UBYTE CapturePath[256];
UBYTE LogFile[256];
UBYTE Editor[256];
UBYTE BeepSound[256];
/* Extension in version 1.9b */
BYTE SwapBSDelete;
BYTE StripBit8;
/* Some more extensions... */
BYTE RasterEnabled;
UBYTE EmulationName[256];
};
/* term hotkey configuration. */
struct Hotkeys
{
UBYTE termScreenToFront[256];
UBYTE BufferScreenToFront[256];
UBYTE SkipDialEntry[256];
BYTE CommodityPriority;
BYTE HotkeysEnabled;
ULONG Reserved[25];
};
/* A phonebook entry. */
struct PhoneEntry
{
UBYTE Name[30];
UBYTE Number[40];
UBYTE Password[40];
LONG PayPerUnit[2];
LONG SecPerUnit[2];
LONG TimeOfDay[2];
struct Configuration Config;
};
/* Number of buffers to be used for buffered I/O. */
#define BUFFER_NUMBER 2
/* Auxiliary structure for buffered file I/O. */
struct Buffer
{
struct Message Message; /* Vanilla message header. */
BYTE Read; /* Last access has read data. */
BYTE Written; /* Last access has written data. */
LONG Action; /* Action to perform. */
LONG ActionData[2]; /* Seek and the like. */
LONG Result; /* Return value. */
BPTR FileHandle; /* Dos filehandle. */
UBYTE *Data; /* Data buffer. */
LONG BufLength; /* Length of data buffer. */
LONG BufPosition; /* Read/write pointer into buffer. */
LONG ReadBufFull; /* How many bytes are still to be read from the buffer? */
LONG WriteBufFull; /* How many bytes are still to be written to the buffer?*/
LONG RealPosition; /* Real position in file. */
LONG Cached; /* How many bytes in pre-load cache. */
UBYTE *DataBuffer[BUFFER_NUMBER]; /* The data buffers. */
LONG DataLength[BUFFER_NUMBER]; /* The lengths of the data buffers. */
WORD DataCount; /* Which buffer to use. */
BYTE WriteAccess; /* TRUE if a write file handle. */
BYTE LastActionFailed; /* TRUE if last action failed -> abort actions. */
struct Process *Child;
struct Process *Caller; /* Synchronization. */
BYTE Fresh; /* TRUE if no read/write access has taken place yet. */
};
/* Global data flow <-> term interface. */
struct FlowInfo
{
BYTE Changed;
BYTE NoCarrier;
BYTE ZModemUpload;
BYTE Connect;
BYTE Voice;
BYTE Ring;
BYTE Busy;
};
/* A scan sequence, somewhat similar to the FlowInfo
* structure.
*/
struct ScanNode
{
struct MinNode Node;
UBYTE *Sequence; /* Character sequence to be matched. */
LONG Count; /* Number of characters matched. */
};
/* xpr serial bits. */
#define ST_PARTYON (1 << 0)
#define ST_PARTYODD (1 << 1)
#define ST_7WIRE (1 << 2)
#define ST_QBREAK (1 << 3)
#define ST_RADBOOGIE (1 << 4)
#define ST_SHARED (1 << 5)
#define ST_EOFMODE (1 << 6)
#define ST_XDISABLED (1 << 7)
#define ST_PARTYMARKON (1 << 8)
#define ST_PARTYMARK (1 << 9)
#define ST_2BITS (1 << 10)
#define ST_READ7 (1 << 11)
#define ST_WRITE7 (1 << 12)
/* Miscellaneous definitions. */
#define SPECIALKEYS 12
#define MILLION 1000000
#define ATTR_UNDERLINE 1
#define ATTR_HIGHLIGHT 2
#define ATTR_BLINK 4
#define ATTR_INVERSE 8
/* Status macro (is character printable?). */
#define IsPrintable(c) (ValidTab[(c)])
#define IsControl(c) (((c) > 127 && (c) < 160) ? TRUE : FALSE)
/* Some macros which used to be in clib/macros.h. */
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define ABS(x) (((x) < 0) ? (-(x)) : (x))
/* Print a certain string. */
#define Print(s) Text(RPort,(s),strlen(s))
/* Set the stopwatch pointer. */
#define SetWait(Window) SetPointer((Window),&Stopwatch[0],16,16,-6,0)
/* Audio channels. */
#define LEFT0F 1
#define RIGHT0F 2
#define RIGHT1F 4
#define LEFT1F 8
/* Program revision and the approriate info structure. */
struct TermInfo
{
UWORD Version;
UWORD Revision;
};
extern LONG TermVersion,TermRevision;
extern UBYTE TermName[],TermDate[];
/* Buffer.c */
LONG __stdargs BPrintf(struct Buffer *Buffer,UBYTE *Format,...);
BYTE __regargs BufferClose(struct Buffer *Buffer);
struct Buffer * __regargs BufferOpen(UBYTE *Name,UBYTE *AccessMode);
LONG __regargs BufferRead(struct Buffer *Buffer,UBYTE *Destination,LONG Size);
LONG __regargs BufferWrite(struct Buffer *Buffer,UBYTE *Source,LONG Size);
BYTE __regargs BufferSeek(struct Buffer *Buffer,LONG Offset,LONG Origin);
/* Beep.c */
BYTE CreateBeep(VOID);
VOID DeleteBeep(VOID);
VOID Beep(VOID);
BYTE OpenSound(UBYTE *Name);
/* Console.c */
VOID __regargs CaptureToFile(APTR Buffer,LONG Size);
VOID __regargs Capture(APTR Buffer,LONG Size);
BYTE HandleCursor(UBYTE Char);
VOID DoBackspace(VOID);
VOID RealBeep(VOID);
VOID DoSomeBeep(VOID);
VOID DoLF(VOID);
VOID DoIgnore(VOID);
VOID DoShiftIn(VOID);
VOID DoShiftOut(VOID);
VOID DoCR_LF(VOID);
VOID DoFF(VOID);
VOID DoLF_FF_VT(VOID);
VOID DoCR(VOID);
VOID DoTab(VOID);
VOID SpillTheBeans(UBYTE *Buffer,LONG Size);
VOID ConWrite(APTR Buffer,LONG Size);
VOID ConProcess(UBYTE *String,LONG Size);
VOID __stdargs ConWrites(UBYTE *String,...);
UBYTE KeyConvert(struct IntuiMessage *Massage,UBYTE *Buffer);
/* DialPanel.c */
VOID DialPanel(VOID);
/* FastMacros.c */
VOID RefreshFastWindow(WORD Height);
VOID CloseFastWindow(VOID);
BYTE OpenFastWindow(VOID);
struct MacroNode * NewFastMacro(UBYTE *Macro,UBYTE *Code);
VOID RemFastMacro(struct MacroNode *Node);
struct MacroNode * GetFastMacro(LONG Offset);
VOID ClearFastMacroList(struct List *List);
LONG GetFastMacroOffset(struct MacroNode *MacroNode);
VOID __regargs MoveList(struct List *From,struct List *To);
BYTE SaveFastMacros(UBYTE *Name);
BYTE LoadFastMacros(UBYTE *Name);
/* FastMacroPanel.c */
VOID FastMacroPanel(VOID);
/* Identify.c */
VOID Identify(UBYTE *Name);
/* Packet.c */
VOID ClearPacketHistory(VOID);
VOID PacketKey(struct Hook *Hook,struct SGWork *Work,ULONG *Msg);
BYTE HandlePacket(VOID);
VOID AddPacketHistory(UBYTE *Buffer);
VOID DeletePacketWindow(VOID);
BYTE CreatePacketWindow(VOID);
/* ParseCode.c */
VOID DoCancel(VOID);
VOID CSIFake(VOID);
BYTE ParseCode(UBYTE c);
/* ParseRoutines.c */
VOID ClearCursor(VOID);
VOID DrawCursor(VOID);
VOID SetCursor(VOID);
VOID ClipBlitCursor(UBYTE DoClip,UBYTE DoMove);
VOID BackupRender(VOID);
VOID ShiftChar(LONG Size);
VOID ScrollRegion(WORD Direction);
VOID DownLine(VOID);
VOID ResetCursor(VOID);
UBYTE * Ignore(VOID);
UBYTE * CursorScrollDown(VOID);
UBYTE * CursorScrollUp(VOID);
UBYTE * NextLine(VOID);
UBYTE * SaveCursor(VOID);
UBYTE * FontStuff(UBYTE *);
UBYTE * LoadCursor(VOID);
UBYTE * ScaleFont(UBYTE *);
UBYTE * SetTab(VOID);
UBYTE * RequestTerminal(UBYTE *Buffer);
UBYTE * Reset(VOID);
UBYTE * RequestInformation(UBYTE *Buffer);
UBYTE * SetSomething(UBYTE *Buffer);
UBYTE * NumericAppMode(UBYTE *Buffer);
UBYTE * MoveCursor(UBYTE *Buffer);
UBYTE * EraseLine(UBYTE *Buffer);
UBYTE * EraseScreen(UBYTE *Buffer);
UBYTE * EraseCharacters(UBYTE *Buffer);
UBYTE * InsertLine(UBYTE *Buffer);
UBYTE * ClearLine(UBYTE *Buffer);
UBYTE * SetTabs(UBYTE *Buffer);
UBYTE * SetPosition(UBYTE *Buffer);
UBYTE * SetAttributes(UBYTE *Buffer);
UBYTE * SetRegion(UBYTE *Buffer);
/* SaveILBM. */
LONG SaveRPort(struct RastPort *RPort,struct ViewPort *VPort,LONG LeftEdge,LONG TopEdge,LONG Width,LONG Height,LONG ParentWidth,LONG ParentHeight,LONG Cookie,STRPTR Name);
/* Scale.c */
VOID DeleteScale(VOID);
BYTE CreateScale(VOID);
VOID PrintScaled(UBYTE *Buffer,LONG Size,UBYTE Scale);
/* Serial.c */
VOID XOn(VOID);
VOID SerialCommand(UBYTE *String);
VOID SerWrite(APTR Buffer,LONG Size);
VOID SetFlags(struct IOExtSer *SomeRequest);
VOID SetParameters(VOID);
VOID FlushSerial(VOID);
VOID ClearSerial(VOID);
VOID DeleteSerial(VOID);
BYTE CreateSerial(VOID);
/* SpeechPanel.c */
VOID SpeechPanel(VOID);
/* StringHook.c */
ULONG __saveds __asm HookEntry(register __a0 struct Hook *HookPtr,register __a2 APTR Object,register __a1 APTR Messsage);
VOID InitHook(struct Hook *Hook,APTR HookCode);
VOID __saveds ClipServer(VOID);
VOID CommandKey(struct Hook *Hook,struct SGWork *Work,ULONG *Msg);
/* termAux.c */
struct Node * GetListNode(LONG Offset,struct List *List);
struct ConUnit * GetConUnit(struct MsgPort *);
VOID AddDownloadObject(UBYTE *Line);
VOID ClearDownloadObjects(VOID);
struct ScanNode * SequenceFilter(UBYTE Char);
VOID AddSequenceObject(UBYTE *Sequence);
VOID ClearSequenceObjects(VOID);
VOID __stdargs LogAction(UBYTE *String,...);
VOID FlushMsg(struct Window *Window);
BYTE GetString(UBYTE *Prompt,UBYTE *Buffer);
VOID WakeUp(struct Window *Window);
VOID SendAmigaDOSCommand(UBYTE *Name);
VOID __saveds RexxBackgroundServer(VOID);
VOID SendARexxCommand(UBYTE *Name);
LONG ahtoi(UBYTE *String);
VOID BlockWindows(VOID);
VOID ReleaseWindows(VOID);
BYTE LineRead(BPTR File,UBYTE *Buffer,LONG MaxChars);
VOID FlowInit(VOID);
VOID FlowFilter(UBYTE Char);
BYTE LoadMacros(UBYTE *Name,struct MacroKeys *Keys);
struct MenuItem * FindThisItem(ULONG MenuID);
LONG GetFileSize(UBYTE *Name);
struct FileRequester * GetFile(UBYTE *Title,UBYTE *Directory,UBYTE *Name,UBYTE *Buffer,UBYTE *Pattern,BYTE SaveFlag,BYTE MultiSelect,BYTE DirsOnly,UBYTE *OKText);
WORD __stdargs MyEasyRequest(struct Window *Window,UBYTE *Text,UBYTE *Gadgets,...);
VOID __saveds StatusServer(VOID);
VOID CloseWindowSafely(struct Window *Window);
VOID WaitTime(LONG Secs,LONG Micros);
UBYTE * GetEnvDOS(UBYTE *Name,UBYTE *Buffer);
BYTE SetEnvDOS(UBYTE *Name,UBYTE *Value);
VOID BumpWindow(struct Window *SomeWindow);
VOID BumpDefault(VOID);
BYTE WriteIFFData(UBYTE *Name,APTR Data,LONG Size,ULONG Type);
BYTE ReadIFFData(UBYTE *Name,APTR Data,LONG Size,ULONG Type);
VOID PushWindow(struct Window *Window);
VOID PopWindow(VOID);
/* termBuffer.c */
VOID __saveds BufferServer(VOID);
VOID AddLine(UBYTE *Line,LONG Size);
VOID ClearBuffer(VOID);
VOID StoreBuffer(APTR Buffer,LONG Size);
/* termClip.c */
BYTE SaveClip(APTR Buffer,LONG Size);
LONG LoadClip(APTR Buffer,LONG Size);
/* termInfo.c */
VOID ShowInfo(BYTE Ticks);
/* termInit.c */
VOID ConfigSetup(VOID);
BYTE DeleteDisplay(VOID);
UBYTE * CreateDisplay(BYTE FirstSetup);
VOID CloseAll(VOID);
UBYTE * OpenAll(VOID);
/* termHotkeys. */
VOID ShutdownCx(VOID);
BYTE SetupCx(VOID);
/* termMain.c */
LONG __saveds main(VOID);
VOID HandleInput(VOID);
BYTE HandleWindow(VOID);
BYTE HandleSerial(VOID);
VOID HandleMenu(ULONG Code);
/* termPhone.c */
VOID SetPrefToDefaults(struct Configuration *Config,UBYTE *PathBuffer);
struct List * CreatePhoneList(VOID);
VOID DeletePhoneList(struct List *PhoneList);
VOID SortPhoneEntries(VOID);
VOID RemPhoneEntry(LONG Num);
BYTE NewPhoneEntry(VOID);
struct PhoneEntry ** CreatePhonebook(LONG Size,LONG *AllocSize,BYTE CreateEntries);
VOID DeletePhonebook(struct PhoneEntry **,LONG Size,BYTE FreeEntries);
BYTE SavePhonebook(UBYTE *Name);
BYTE LoadPhonebook(UBYTE *Name);
/* TerminalPanel.c */
VOID TerminalPanel(struct Configuration *Config);
/* SerialPanel.c */
BYTE SerialPanel(struct Configuration *Config);
/* ScreenPanel.c */
BYTE ScreenPanel(struct Configuration *Config);
/* PhonePanel.c */
BYTE PhonePanel(VOID);
/* ModemPanel.c */
BYTE ModemPanel(struct Configuration *Config);
/* MacroPanel.c */
VOID MacroPanel(struct MacroKeys *MacroKeys);
/* termRaster.c */
VOID RasterMarkArea(WORD Column,WORD Line,WORD Length);
VOID RasterClip(BYTE SingleChar,BYTE Xerox);
VOID DeleteRaster(VOID);
BYTE CreateRaster(VOID);
VOID RasterEraseScreen(BYTE Mode);
VOID RasterEraseLine(BYTE Mode);
VOID RasterEraseCharacters(WORD Chars);
VOID RasterClearLine(WORD Lines);
VOID RasterInsertLine(WORD Lines);
VOID RasterScrollRegion(WORD Direction,WORD RasterTop,WORD RasterBottom,WORD RasterLines);
VOID RasterShiftChar(WORD Size);
VOID RasterPutString(UBYTE *String,WORD Length);
/* termRexx.c */
BYTE SendRexxCommand(struct RexxHost *HostPort,STRPTR CommandString,STRPTR FileExtension,STRPTR HostName);
VOID FreeRexxCommand(struct RexxMsg *RexxMessage);
VOID ReplyRexxCommand(struct RexxMsg *RexxMessage,LONG Primary,LONG Secondary,STRPTR Result);
STRPTR GetToken(STRPTR String,LONG *StartChar,STRPTR AuxBuff,LONG MaxLength);
UBYTE * QueryBaud(VOID);
UBYTE * QueryDataBits(VOID);
UBYTE * QueryParity(VOID);
UBYTE * QueryStopBits(VOID);
UBYTE * QueryHandshaking(VOID);
UBYTE * QueryDuplex(VOID);
UBYTE * QueryHighspeed(VOID);
UBYTE * QueryBreakLength(VOID);
UBYTE * QuerySerialDevice(VOID);
UBYTE * QueryUnitNumber(VOID);
UBYTE * QueryModemInit(VOID);
UBYTE * QueryModemExit(VOID);
UBYTE * QueryDialPrefix(VOID);
UBYTE * QueryRedialDelay(VOID);
UBYTE * QueryDialRetries(VOID);
UBYTE * QueryDialTimeout(VOID);
UBYTE * QueryConnectAutoBaud(VOID);
UBYTE * QueryNoCarrier(VOID);
UBYTE * QueryConnect(VOID);
UBYTE * QueryError(VOID);
UBYTE * QueryVoice(VOID);
UBYTE * QueryRing(VOID);
UBYTE * QueryBusy(VOID);
UBYTE * QueryOkay(VOID);
UBYTE * QueryProtocol(VOID);
UBYTE * QueryProtocolOptions(VOID);
UBYTE * QueryMacroFile(VOID);
UBYTE * QueryDisplay(VOID);
UBYTE * QueryPublicScreen(VOID);
UBYTE * QueryShanghai(VOID);
UBYTE * QueryCaptureFilter(VOID);
UBYTE * QueryDSBackSpace(VOID);
UBYTE * QueryAudBell(VOID);
UBYTE * QueryVisBell(VOID);
UBYTE * QueryEightyColumns(VOID);
UBYTE * QuerySendCR(VOID);
UBYTE * QuerySendLF(VOID);
UBYTE * QueryColourMode(VOID);
UBYTE * QueryEmulation(VOID);
UBYTE * QueryFont(VOID);
UBYTE * QueryStatus(VOID);
UBYTE * QuerySerial(VOID);
UBYTE * QueryStartup(VOID);
UBYTE * QueryRequesters(VOID);
UBYTE * QueryTimeout(VOID);
UBYTE * QueryLine(VOID);
UBYTE * QueryLines(VOID);
UBYTE * QueryColumns(VOID);
UBYTE * QueryCursor(VOID);
UBYTE * QueryModemHangup(VOID);
UBYTE * QueryAutoCapture(VOID);
UBYTE * QueryLogActions(VOID);
UBYTE * QueryBlinking(VOID);
UBYTE * QueryCursorMode(VOID);
UBYTE * QueryFontScale(VOID);
UBYTE * QueryJumpScroll(VOID);
UBYTE * QueryCharacterWrap(VOID);
UBYTE * QueryCursorWrap(VOID);
UBYTE * QueryNewLine(VOID);
UBYTE * QueryInsert(VOID);
UBYTE * QueryNumeric(VOID);
UBYTE * QueryDefaultStore(VOID);
UBYTE * QueryTUploadPath(VOID);
UBYTE * QueryTDownloadPath(VOID);
UBYTE * QueryAUploadPath(VOID);
UBYTE * QueryADownloadPath(VOID);
UBYTE * QueryBUploadPath(VOID);
UBYTE * QueryBDownloadPath(VOID);
UBYTE * QueryCapturePath(VOID);
UBYTE * QueryLogFile(VOID);
UBYTE * QueryEditor(VOID);
UBYTE * QueryBeepSound(VOID);
UBYTE * QueryCaptureState(VOID);
UBYTE * QueryDownloads(VOID);
UBYTE * QueryScreenAddress(VOID);
UBYTE * QuerySpeechFile(VOID);
UBYTE * QuerySpeechRate(VOID);
UBYTE * QuerySpeechPitch(VOID);
UBYTE * QuerySpeechFrequency(VOID);
UBYTE * QuerySpeechVolume(VOID);
UBYTE * QuerySpeechSex(VOID);
UBYTE * QuerySpeech(VOID);
VOID RexxSetBaud(UBYTE *String);
VOID RexxSetDataBits(UBYTE *String);
VOID RexxSetParity(UBYTE *String);
VOID RexxSetStopBits(UBYTE *String);
VOID RexxSetHandshaking(UBYTE *String);
VOID RexxSetDuplex(UBYTE *String);
VOID RexxSetHighSpeed(UBYTE *String);
VOID RexxSetBreakLength(UBYTE *String);
VOID RexxSetSerialDevice(UBYTE *String);
VOID RexxSetUnitNumber(UBYTE *String);
VOID RexxSetModemInit(UBYTE *String);
VOID RexxSetModemExit(UBYTE *String);
VOID RexxSetDialPrefix(UBYTE *String);
VOID RexxSetRedialDelay(UBYTE *String);
VOID RexxSetDialRetries(UBYTE *String);
VOID RexxSetDialTimeout(UBYTE *String);
VOID RexxSetConnectAutoBaud(UBYTE *String);
VOID RexxSetNoCarrier(UBYTE *String);
VOID RexxSetConnect(UBYTE *String);
VOID RexxSetError(UBYTE *String);
VOID RexxSetVoice(UBYTE *String);
VOID RexxSetRing(UBYTE *String);
VOID RexxSetBusy(UBYTE *String);
VOID RexxSetOkay(UBYTE *String);
VOID RexxSetScreenMode(UBYTE *String);
VOID RexxSetFilter(UBYTE *String);
VOID RexxSetBackspace(UBYTE *String);
VOID RexxSetCR(UBYTE *String);
VOID RexxSetLF(UBYTE *String);
VOID RexxSet80Columns(UBYTE *String);
VOID RexxSetColourMode(UBYTE *String);
VOID RexxSetEmulation(UBYTE *String);
VOID RexxSetStartup(UBYTE *String);
VOID RexxSetFont(UBYTE *String);
VOID RexxSetProtocol(UBYTE *String);
VOID RexxSetProtocolOptions(UBYTE *String);
VOID RexxSetMacro(UBYTE *String);
VOID RexxSetColour(UBYTE *String);
VOID RexxSetScreen(UBYTE *String);
VOID RexxSetBell(UBYTE *String);
VOID RexxSetMacroFile(UBYTE *String);
VOID RexxSetRequesters(UBYTE *String);
VOID RexxSetTimeout(UBYTE *String);
VOID RexxSetSerial(UBYTE *String);
VOID RexxSetModemHangup(UBYTE *String);
VOID RexxSetAutoCapture(UBYTE *String);
VOID RexxSetLogActions(UBYTE *String);
VOID RexxSetBlinking(UBYTE *String);
VOID RexxSetCursorMode(UBYTE *String);
VOID RexxSetFontScale(UBYTE *String);
VOID RexxSetJumpScroll(UBYTE *String);
VOID RexxSetCharacterWrap(UBYTE *String);
VOID RexxSetCursorWrap(UBYTE *String);
VOID RexxSetNewLine(UBYTE *String);
VOID RexxSetInsert(UBYTE *String);
VOID RexxSetNumeric(UBYTE *String);
VOID RexxSetDefaultStore(UBYTE *String);
VOID RexxSetTUploadPath(UBYTE *String);
VOID RexxSetTDownloadPath(UBYTE *String);
VOID RexxSetAUploadPath(UBYTE *String);
VOID RexxSetADownloadPath(UBYTE *String);
VOID RexxSetBUploadPath(UBYTE *String);
VOID RexxSetBDownloadPath(UBYTE *String);
VOID RexxSetCapturePath(UBYTE *String);
VOID RexxSetLogFile(UBYTE *String);
VOID RexxSetEditor(UBYTE *String);
VOID RexxSetSpeechRate(UBYTE *String);
VOID RexxSetSpeechPitch(UBYTE *String);
VOID RexxSetSpeechFrequency(UBYTE *String);
VOID RexxSetSpeechVolume(UBYTE *String);
VOID RexxSetSpeechSex(UBYTE *String);
VOID RexxSetSpeech(UBYTE *String);
UBYTE * RexxBreak(VOID);
UBYTE * RexxTUpload(UBYTE *String);
UBYTE * RexxTDownload(UBYTE *String);
UBYTE * RexxBDownload(UBYTE *String);
UBYTE * RexxBUpload(UBYTE *String);
UBYTE * RexxWrite(UBYTE *String);
UBYTE * RexxResetStyles(VOID);
UBYTE * RexxClearScreen(VOID);
UBYTE * RexxSaveILBM(UBYTE *String);
UBYTE * RexxHangUp(VOID);
UBYTE * RexxGetString(UBYTE *String);
UBYTE * RexxCommand(UBYTE *String);
UBYTE * RexxMessage(UBYTE *String);
UBYTE * RexxPutClip(UBYTE *String);
UBYTE * RexxGetClip(VOID);
UBYTE * RexxDelay(UBYTE *String);
UBYTE * RexxDial(UBYTE *String);
UBYTE * RexxInput(UBYTE *String);
UBYTE * RexxPrinter(UBYTE *String);
UBYTE * RexxMacros(UBYTE *String);
UBYTE * RexxSpeech(UBYTE *String);
UBYTE * RexxConfig(UBYTE *String);
UBYTE * RexxPhone(UBYTE *String);
UBYTE * RexxCapture(UBYTE *String);
UBYTE * RexxBuffer(UBYTE *String);
UBYTE * RexxFirstDownload(VOID);
UBYTE * RexxNextDownload(VOID);
UBYTE * RexxLastDownload(VOID);
UBYTE * RexxWaitString(UBYTE *String);
UBYTE * RexxToneDial(UBYTE *String);
UBYTE * RexxSimpleRequest(UBYTE *String);
UBYTE * RexxTwoGadRequest(UBYTE *String);
UBYTE * RexxFileRequest(UBYTE *String);
UBYTE * RexxSpeak(UBYTE *String);
VOID QuietExit(VOID);
VOID Rexx2Front(VOID);
VOID Term2Front(VOID);
VOID Display2Front(VOID);
VOID CloseDisplay(VOID);
BYTE RexxASyncCommand(struct RexxMsg *RexxMsg,UBYTE *Arg1,UBYTE *Arg2);
VOID RexxSyncCommand(struct RexxMsg *RexxMsg,UBYTE *Arg1,UBYTE *Arg2);
VOID __saveds RexxServer(VOID);
VOID HandleRexx(VOID);
/* termSpeech. */
VOID DeleteSpeech(VOID);
BYTE CreateSpeech(VOID);
VOID Say(UBYTE *String,...);
VOID SpeechSetup(VOID);
/* termSub.c */
BYTE OpenSubWindow(VOID);
VOID CloseSubWindow(VOID);
VOID AddSubEntry(LONG Entry);
VOID RemSub(struct PhoneNode *SubNode);
BYTE RemSubEntry(VOID);
VOID FreeSubList(VOID);
BYTE HandleSubWindow(struct Window *PanelWindow);
/* termTransfer.c */
VOID StartXprReceive(BYTE Type);
BYTE StartXprSend(BYTE Type);
BYTE ASCIISetup(VOID);
VOID ASCIIShutdown(VOID);
/* termXEM.c */
VOID DeleteEmulator(BYTE UnloadIt);
BYTE CreateEmulator(UBYTE *Name,BYTE ForceNew);
/* termXpr.c */
LONG __saveds __asm xpr_fopen(register __a0 UBYTE *FileName,register __a1 UBYTE *AccessMode);
LONG __saveds __asm xpr_fclose(register __a0 struct Buffer *File);
LONG __saveds __asm xpr_fread(register __a0 APTR Buffer,register __d0 LONG Size,register __d1 LONG Count,register __a1 struct Buffer *File);
LONG __saveds __asm xpr_fwrite(register __a0 APTR Buffer,register __d0 LONG Size,register __d1 LONG Count,register __a1 struct Buffer *File);
ULONG __saveds __asm xpr_sread(register __a0 UBYTE *Buffer,register __d0 ULONG Size,register __d1 LONG Timeout);
LONG __saveds __asm xpr_swrite(register __a0 UBYTE *Buffer,register __d0 LONG Size);
LONG __saveds xpr_sflush(VOID);
LONG __saveds __asm xpr_update(register __a0 struct XPR_UPDATE *UpdateInfo);
LONG __saveds xpr_chkabort(VOID);
LONG __saveds __asm xpr_gets(register __a0 UBYTE *Prompt,register __a1 UBYTE *Buffer);
LONG __saveds __asm xpr_setserial(register __d0 LONG Status);
LONG __saveds __asm xpr_ffirst(register __a0 UBYTE *Buffer,register __a1 UBYTE *Pattern);
LONG __saveds __asm xpr_fnext(register __d0 LONG OldState,register __a0 UBYTE *Buffer,register __a1 UBYTE *Pattern);
LONG __saveds __asm xpr_finfo(register __a0 UBYTE *FileName,register __d0 LONG InfoType);
LONG __saveds __asm xpr_fseek(register __a0 struct Buffer *File,register __d0 LONG Offset,register __d1 LONG Origin);
ULONG __saveds __asm xpr_options(register __d0 LONG NumOpts,register __a0 struct xpr_option **Opts);
LONG __saveds __asm xpr_unlink(register __a0 UBYTE *FileName);
LONG __saveds xpr_squery(VOID);
LONG __saveds __asm xpr_getptr(register __d0 LONG InfoType);
LONG __saveds __asm xpr_stealopts(register __a0 UBYTE *Prompt,register __a1 UBYTE *Buffer);
struct Gadget * CreateAllGetsGadgets(BYTE LoadGadget,UBYTE *String,UBYTE *Prompt,LONG *WindowWidth,struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge,struct Screen *Screen);
BYTE ProtocolSetup(VOID);
VOID SaveProtocolOpts(VOID);
BYTE SelectProtocol(UBYTE *Name,struct Window *ParentWindow);
/* ToneDial.c */
VOID DeleteTone(VOID);
BYTE ToneDial(UBYTE *Number);
/* TransferPanel.c */
VOID __stdargs TransferInfo(WORD X,WORD Y,BYTE *String,...);
VOID __stdargs ShowString(struct Gadget *Gadget,UBYTE *String,...);
VOID GhostStats(struct Gadget *Gadget);
VOID ShowStats(struct Gadget *Gadget,LONG Value,LONG Max);
BYTE TransferPanel(UBYTE *Title);
VOID DeleteTransferPanel(VOID);
/* UploadPanel.c */
BYTE UploadPanel(VOID);
/* Format.asm/Res.asm */
VOID __stdargs Printf(UBYTE *,...);
VOID __stdargs SPrintf(APTR,UBYTE *,...);
VOID __stdargs VSPrintf(APTR,UBYTE *,va_list);
LONG __stdargs FPrintf(BPTR,UBYTE *,...);
struct MsgPort * __stdargs Res(UBYTE *,LONG,APTR,LONG,LONG);
/* termData.c */
extern struct ExecBase *SysBase;
extern struct DosLibrary *DOSBase;
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
extern struct Library *GadToolsBase;
extern struct Library *DiskfontBase;
extern struct Library *UtilityBase;
extern struct Device *TimerBase;
extern struct Library *AslBase;
extern struct RxsLib *RexxSysBase;
extern struct Library *IFFParseBase;
extern struct Library *CxBase;
extern struct Library *LayersBase;
extern struct Library *IconBase;
extern struct Library *WorkbenchBase;
extern struct Library *KeymapBase;
extern struct timerequest *TimeRequest;
extern struct IOStdReq *ConsoleRequest;
extern struct Device *ConsoleDevice;
extern struct Screen *Screen;
extern struct Window *Window;
extern struct Window *StatusWindow;
extern APTR OldWindowPtr;
extern struct ViewPort *VPort;
extern struct RastPort *RPort;
extern struct TextFont *Topaz,*IBM,*GFX,*CurrentFont;
extern APTR VisualInfo;
extern UWORD ANSIPens[NUMDRIPENS + 1];
extern UWORD EGAPens[NUMDRIPENS + 1];
extern UWORD AtomicColours[16];
extern UWORD EGAColours[16];
extern UWORD ANSIColours[16];
extern UWORD DefaultColours[16];
extern UWORD BlinkColours[16];
extern UWORD StandardColours[16];
extern struct Process *ThisProcess;
extern struct Process *RexxProcess;
extern struct MsgPort *TermRexxPort;
extern struct Task *StatusTask;
extern struct Process *BufferProcess;
extern struct WBStartup *WBenchMsg;
extern BPTR RemoteCurrentDir;
extern struct InputEvent *FakeInputEvent;
extern struct IOExtSer *ReadRequest;
extern struct IOExtSer *WriteRequest;
extern struct MsgPort *ReadPort;
extern APTR ReadBuffer;
extern struct Hotkeys Hotkeys;
extern struct NewBroker NewTermBroker;
extern struct TextAttr DefaultFont;
extern struct TextAttr IBMFont;
extern struct TextAttr GFXFont;
extern UBYTE AnyChannel[4];
extern UBYTE __chip SineWave[8];
extern struct IOAudio *AudioBlock;
extern UWORD __chip Stopwatch[(2 + 16) * 2];
extern BYTE ValidTab[256];
extern UBYTE IBMConversion[256];
extern struct SpecialKey SpecialKeys[SPECIALKEYS];
extern UBYTE SpecialMap[256];
extern UBYTE SharedBuffer[512];
extern struct NewMenu TermMenu[];
extern struct Menu *Menu;
extern struct TermPort *TermPort;
extern struct Configuration Config;
extern struct Configuration PrivateConfig;
extern struct SpeechConfig SpeechConfig;
extern BYTE Status;
extern BYTE Online;
extern UWORD PublicModes;
extern UBYTE LastConfig[256];
extern UBYTE DefaultPubScreen[MAXPUBSCREENNAME];
extern ULONG ModeID[16];
extern struct Buffer *FileCapture;
extern BPTR PrinterCapture;
extern UBYTE CaptureName[256];
extern UBYTE **BufferLines;
extern LONG Lines;
extern struct SignalSemaphore *BufferSemaphore;
extern LONG MaxLines;
extern LONG BufferSpace;
extern BYTE BufferClosed;
extern struct PhoneEntry **Phonebook;
extern LONG PhoneSize;
extern LONG NumPhoneEntries;
extern UBYTE LastPhone[256];
extern UBYTE LastKeys[256];
extern UBYTE LastMacros[256];
extern UBYTE LastSpeech[256];
extern struct MacroKeys *MacroKeys;
extern UWORD LastLine,LastColumn;
extern BYTE Charset,Attributes,FgPen,BgPen;
extern WORD CursorX,CursorY,Top,Bottom;
extern BYTE UseRegion,RegionSet,InSequence,Quiet;
extern BYTE TabStops[1024];
extern struct CursorData CursorBackup;
extern BYTE ResetDisplay,Escape;
extern UBYTE *AttentionBuffers[7],AttentionCount[7],FlowCount;
extern BYTE BaudPending,FullCheck;
extern UBYTE BaudBuffer[20],BaudCount;
extern struct FlowInfo FlowInfo;
extern LONG FileCount,FileCountMax;
extern struct WBArg *FileArg;
extern BYTE MultipleFiles,FileMatch,BinaryTransfer;
extern struct AnchorPath *FileAnchor;
extern LONG TransferBits;
extern struct Window *TransferWindow;
extern struct Menu *TransferMenu;
extern struct Gadget *TransferGadgetArray[5];
extern UBYTE *DownloadPath;
extern BYTE Uploading;
extern struct Library *XProtocolBase;
extern struct XPR_IO *XprIO;
extern UBYTE ProtocolOptsBuffer[256];
extern BYTE NewLibrary,NewOptions,DidTransfer;
extern UBYTE LastXprLibrary[60];
extern BYTE UsesZModem;
extern LONG CurrentPay;
extern LONG PayPerUnit[2];
extern LONG SecPerUnit[2];
extern LONG TimeOfDay[2];
extern WORD PreferredTime;
extern UBYTE Password[40];
extern UBYTE WindowName[256];
extern BYTE WeAreBlocking;
extern struct List *SubList;
extern LONG SubItemNum;
extern struct Window *SubWindow;
extern LONG SubListNum;
extern BYTE SendStartup;
extern BYTE ReleaseSerial;
extern BYTE ResetSerial;
extern BYTE BatchMode;
extern UBYTE LastDownload[256];
extern UBYTE LastUpload[256];
extern struct Hook CommandHook;
extern BYTE DontActivate;
extern UBYTE CommandWorkBuffer[256];
extern struct StringExtend CommandExtend;
extern struct Window *CommandWindow;
extern struct Gadget *CommandGadget;
extern struct Gadget *ActiveGadget;
extern struct Process *ClipProcess;
extern struct MsgPort *ClipPort;
extern struct Window *PacketWindow;
extern struct Gadget *PacketGadgetArray[1];
extern struct Menu *PacketMenu;
extern struct Gadget *PacketGadgetList;
extern struct List PacketHistoryList;
extern struct NewMenu GetsMenu[];
extern BYTE Initializing,LoadColours;
extern UBYTE *Raster,*RasterAttr;
extern WORD RasterWidth,RasterHeight;
extern struct SignalSemaphore *DownloadSemaphore;
extern struct List DownloadList;
extern LONG DownloadLineCount;
extern struct Node *DownloadNode;
extern struct List SequenceList;
extern LONG SequenceCount;
extern ULONG VersionProps[2];
extern BYTE ExitQuietly;
extern struct Window *RexxWindow;
extern struct Window *TopWindow;
extern struct Window *WindowStack[5];
extern WORD WindowStackPtr;
extern LONG TermID;
extern UBYTE TermIDString[];
extern struct List FastMacroList;
extern LONG FastMacroCount;
extern UBYTE LastFastMacros[256];
extern struct Window *FastWindow;
extern struct Gadget *FastGadget;
extern struct List DoubleBufferList;
extern struct SignalSemaphore DoubleBufferSemaphore;
extern struct confuncs *Console;
extern ULONG ExtSigs;
extern UBYTE *OptionTitle;
extern BYTE NewEmulatorPlease;
extern BYTE EmulationSetupError;
extern UBYTE *EmulationErrorStrings[8];