home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / comms / comprgs / term232.lha / Source_Code / termSource / termGlobal.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-22  |  51.8 KB  |  1,848 lines

  1. /*
  2. **    $Id: termGlobal.h,v 1.16 92/08/18 16:12:19 olsen Sta Locker: olsen $
  3. **    $Revision: 1.16 $
  4. **    $Date: 92/08/18 16:12:19 $
  5. **
  6. **    Global data definitions and function forward declarations
  7. **
  8. **    Copyright ⌐ 1990-1992 by Olaf `Olsen' Barthel & MXM
  9. **        All Rights Reserved
  10. */
  11.  
  12. #include "xproto.h"
  13. #include "xem.h"
  14.  
  15.     /* Jump table entry. */
  16.  
  17. typedef BYTE (* __regargs JUMP)(UBYTE Char);
  18.  
  19.     /* Menu item codes. */
  20.  
  21. enum    {    MEN_SAVE_AS_PICTURE=1,MEN_SAVE_AS_TEXT,MEN_PRINT_SCREEN,MEN_PRINT_CLIP,MEN_CAPTURE_TO_FILE,
  22.         MEN_CAPTURE_TO_PRINTER,MEN_ICONIFY,MEN_ABOUT,MEN_QUIT,
  23.  
  24.         MEN_PASTE,
  25.  
  26.         MEN_EXECUTE_DOS_COMMAND,MEN_EXECUTE_REXX_COMMAND,MEN_SET_CONSOLE,
  27.  
  28.         MEN_PHONEBOOK,MEN_REDIAL,MEN_DIAL_NUMBER,MEN_PLAY_NUMBER,MEN_SEND_BREAK,
  29.         MEN_HANG_UP,MEN_FLUSH_BUFFER,MEN_RELEASE_DEVICE,
  30.  
  31.         MEN_UPLOAD_ASCII,MEN_DOWNLOAD_ASCII,MEN_UPLOAD_TEXT,MEN_DOWNLOAD_TEXT,MEN_EDIT_AND_UPLOAD_TEXT,
  32.         MEN_UPLOAD_BINARY,MEN_DOWNLOAD_BINARY,
  33.  
  34.         MEN_CLEAR_BUFFER,MEN_DISPLAY_BUFFER,MEN_CLOSE_BUFFER,MEN_FREEZE_BUFFER,MEN_OPEN_BUFFER,
  35.         MEN_SAVE_BUFFER_AS,
  36.  
  37.         MEN_CLEAR_SCREEN,MEN_RESET_FONT,MEN_RESET_STYLES,MEN_RESET_TERMINAL,MEN_SET_EMULATION,
  38.  
  39.         MEN_SERIAL,MEN_MODEM,MEN_SCREEN,MEN_TERMINAL,MEN_COMMANDS,
  40.         MEN_MISC,MEN_PATH,MEN_TRANSFER_PROTOCOL,MEN_TRANSFER,MEN_MACROS,
  41.         MEN_FAST_MACROS,MEN_HOTKEYS,MEN_SPEECH,MEN_OPEN_SETTINGS,MEN_SAVE_SETTINGS,
  42.         MEN_SAVE_SETTINGS_AS,
  43.  
  44.         MEN_STATUS_WINDOW,MEN_REVIEW_WINDOW,MEN_PACKET_WINDOW,MEN_FAST_MACROS_WINDOW };
  45.  
  46.  
  47.     /* Serial settings. */
  48.  
  49. enum    {    PARITY_NONE,PARITY_EVEN,PARITY_ODD,PARITY_MARK,PARITY_SPACE };
  50. enum    {    HANDSHAKING_NONE,HANDSHAKING_RTSCTS,HANDSHAKING_RTSCTS_DSR };
  51. enum    {    DUPLEX_FULL,DUPLEX_HALF };
  52. enum    {    FLOW_NONE,FLOW_XON_XOFF };
  53.  
  54.     /* Terminal settings. */
  55.  
  56. enum    {    CR_IGNORE,CR_ASCR,CR_ASCRLF };
  57. enum    {    LF_IGNORE,LF_ASLF,LF_ASLFCR };
  58. enum    {    EMULATION_ANSIVT100,EMULATION_ATOMIC,EMULATION_TTY,EMULATION_EXTERNAL };
  59. enum    {    COLOUR_AMIGA,COLOUR_EIGHT,COLOUR_SIXTEEN,COLOUR_MONO };
  60.  
  61.     /* Protocol types. */
  62.  
  63. enum    {    PROTOCOL_XMODEM,PROTOCOL_XMODEMCRC,PROTOCOL_YMODEM,PROTOCOL_ZMODEM };
  64.  
  65.     /* Font types. */
  66.  
  67. enum    {    FONT_TOPAZ,FONT_IBM };
  68.  
  69.     /* Status types. */
  70.  
  71. enum    {    STATUS_READY,STATUS_HOLDING,STATUS_DIALING,STATUS_UPLOAD,
  72.         STATUS_DOWNLOAD,STATUS_BREAKING,STATUS_HANGUP };
  73.  
  74.     /* Status line modes. */
  75.  
  76. enum    {    STATUSLINE_DISABLED,STATUSLINE_STANDARD,STATUSLINE_COMPRESSED };
  77.  
  78.     /* Font scales. */
  79.  
  80. enum    {    SCALE_NORMAL,SCALE_HALF };
  81. enum    {    SCALE_ATTR_NORMAL,SCALE_ATTR_TOP2X,SCALE_ATTR_BOT2X,SCALE_ATTR_2X };
  82.  
  83.     /* Character tables. */
  84.  
  85. enum    {    TABLE_ASCII,TABLE_GFX };
  86.  
  87.     /* Transfer types. */
  88.  
  89. enum    {    TRANSFER_BINARY,TRANSFER_TEXT,TRANSFER_ASCII };
  90.  
  91.     /* Upload panel actions. */
  92.  
  93. enum    {    UPLOAD_TEXT=1,UPLOAD_BINARY,UPLOAD_IGNORE,UPLOAD_ABORT };
  94.  
  95.     /* Alert types. */
  96.  
  97. enum    {    ALERT_NONE,ALERT_BEEP,ALERT_SCREEN,ALERT_BEEP_SCREEN };
  98.  
  99.     /* Clipboard read errors. */
  100.  
  101. enum    {    CLIPERR_NONE,CLIPERR_NOTEXT,CLIPERR_IFF,CLIPERR_OPEN,CLIPERR_MEM };
  102.  
  103.     /* What to print. */
  104.  
  105. enum    {    PRINT_SCREEN,PRINT_CLIP };
  106.  
  107.     /* Transfer window boxes and gadgets. */
  108.  
  109. enum    {    BOX_TRANSFER_1,BOX_TRANSFER_2,BOX_TRANSFER_3,
  110.         BOX_TRANSFER_LEFT1,BOX_TRANSFER_RIGHT1,
  111.         BOX_TRANSFER_LEFT2,BOX_TRANSFER_RIGHT2 };
  112.  
  113. enum    {    GAD_TRANSFER_ERROR_LIST,
  114.         GAD_TRANSFER_PERCENT,GAD_TRANSFER_TIME,
  115.         GAD_TRANSFER_ABORT,GAD_TRANSFER_SKIP };
  116.  
  117.     /* Day of week flags. */
  118.  
  119. #define DAY_MONDAY    (1 << 0)
  120. #define DAY_TUESDAY    (1 << 1)
  121. #define DAY_WEDNESDAY    (1 << 2)
  122. #define DAY_THURSDAY    (1 << 3)
  123. #define DAY_FRIDAY    (1 << 4)
  124. #define DAY_SATURDAY    (1 << 5)
  125. #define DAY_SUNDAY    (1 << 6)
  126.  
  127.     /* These signal masks will make life a bit easier. */
  128.  
  129. #define SIG_WINDOW    (1 << Window -> UserPort -> mp_SigBit)
  130. #define SIG_REXX    (1 << TermRexxPort -> mp_SigBit)
  131. #define SIG_SERIAL    (1 << ReadPort -> mp_SigBit)
  132. #define SIG_PACKET    (1 << PacketWindow -> UserPort -> mp_SigBit)
  133. #define SIG_TIMER    (1 << TimePort -> mp_SigBit)
  134. #define SIG_AUDIO    (1 << AudioBlock -> ioa_Request . io_Message . mn_ReplyPort -> mp_SigBit)
  135. #define SIG_REVIEW    ((1 << ReviewPort -> mp_SigBit) | (1 << ReviewWindow -> UserPort -> mp_SigBit))
  136. #define SIG_CLIP    (1 << ClipBit)
  137. #define SIG_CHECK    (1 << CheckBit)
  138.  
  139.     /* Some support macros for gadtools objects. */
  140.  
  141. #define GT_CHECKED(G)    ((((struct Gadget *)(G)) -> Flags & GFLG_SELECTED) ? TRUE : FALSE)
  142. #define GT_DISABLED(G)    ((((struct Gadget *)(G)) -> Flags & GFLG_DISABLED) ? TRUE : FALSE)
  143. #define GT_STRING(G)    (((struct StringInfo *)(((struct Gadget *)(G)) -> SpecialInfo)) -> Buffer)
  144. #define GT_INTEGER(G)    (((struct StringInfo *)(((struct Gadget *)(G)) -> SpecialInfo)) -> LongInt)
  145.  
  146.     /* Definitions to access the line signal setting functions supported by
  147.      * some IO serial boards (namely the ASDG board).
  148.      */
  149.  
  150. #define SIOCMD_SETCTRLLINES    (CMD_NONSTD + 7)
  151. #define SIOB_RTSB        0
  152. #define SIOB_DTRB        1
  153. #define SIOB_RTSF        (1 << SIOB_RTSB)
  154. #define SIOB_DTRF        (1 << SIOB_DTRB)
  155.  
  156.     /* Kludge: this bit indicates that the shared serial access is enabled. */
  157.  
  158. #define SERIAL_SHARED        2
  159.  
  160.     /* YAK (Yet Another Kludge): this bit indicates that a somewhat simpler
  161.      * and faster screen layout is to be used.
  162.      */
  163.  
  164. #define TERMINAL_FASTER        2
  165.  
  166.     /* Turn time of day into `compressed' format. */
  167.  
  168. #define DT_GET_TIME(Hour,Minute) ((Minute) / 10 + (Hour) * 6)
  169.  
  170.     /* Vector offsets for the TimeDate structure. */
  171.  
  172. enum    { DT_FIRST_UNIT,DT_NEXT_UNIT };
  173.  
  174.     /* A handy and short alias. */
  175.  
  176. #define TICK            (CHECKIT|MENUTOGGLE)
  177.  
  178.     /* User interface definitions. */
  179.  
  180. #define SZLV_Display    1        /* Listview includes display */
  181. #define SZLV_String    2        /* Listview includes string */
  182.  
  183. #define SZ_Adjust    TAG_USER+1    /* Adjust object */
  184. #define SZ_AutoWidth    TAG_USER+2    /* Use default width? */
  185. #define SZ_AlignExtra    TAG_USER+3    /* Add extra space to top edge */
  186. #define SZ_NewColumn    TAG_USER+4    /* Start new column */
  187. #define SZ_Lines    TAG_USER+5    /* Number of lines in object */
  188. #define SZ_Chars    TAG_USER+6    /* Number of chars (width) in object */
  189. #define SZ_AlignLeft    TAG_USER+7    /* Align to left border */
  190. #define SZ_AlignRight    TAG_USER+8    /* Align to right border */
  191. #define SZ_AlignCentre    TAG_USER+9    /* Centre it */
  192. #define SZ_AlignBottom    TAG_USER+10    /* Align to window bottom */
  193. #define SZ_GroupCount    TAG_USER+11    /* Create a group with N objects */
  194. #define SZ_GroupNext    TAG_USER+12    /* Skip to next position */
  195. #define SZ_SetLeft    TAG_USER+13    /* Place left to current object, don't touch the left edge position, though. */
  196. #define SZ_SetBelow    TAG_USER+14    /* Place below current object, don't touch the top edge position, though. */
  197. #define SZ_UseLeft    TAG_USER+15    /* Use this coordinate as left edge. */
  198. #define SZ_UseTop    TAG_USER+16    /* Use this coordinate as top edge. */
  199. #define SZ_UseWidth    TAG_USER+17    /* Use this gadget width. */
  200. #define SZ_UseHeight    TAG_USER+18    /* Use this gadget height. */
  201. #define SZ_FullWidth    TAG_USER+19    /* Use full window width for gadget. */
  202. #define SZ_FullHeight    TAG_USER+20    /* Use full window height for gadget. */
  203.  
  204.     /* Special character treatment. */
  205.  
  206. struct SpecialKey
  207. {
  208.     UBYTE    Key;
  209.     BYTE    (* Routine)(VOID);
  210. };
  211.  
  212.     /* Cursor backup data. */
  213.  
  214. struct CursorData
  215. {
  216.     struct TextFont        *CurrentFont;
  217.     WORD             CursorX,
  218.                  CursorY;
  219.     BYTE             Charset;
  220.     BYTE             CharMode[2];
  221.     BYTE             Attributes;
  222.     BYTE             FgPen,
  223.                  BgPen;
  224.     UBYTE             Style;
  225. };
  226.  
  227.     /* Global data link. */
  228.  
  229. struct TermPort
  230. {
  231.     struct MsgPort         ExecNode;
  232.  
  233.     struct Window        *TopWindow;
  234.  
  235.     struct SignalSemaphore     OpenSemaphore;
  236.  
  237.     LONG             ID,OpenCount,HoldIt;
  238.     LONG             Reserved[5];
  239. };
  240.  
  241.     /* Support for optimized scrolling routines. */
  242.  
  243. struct ScrollLineInfo
  244. {
  245.     UBYTE             Left,Right,
  246.                  ColourMask,
  247.                  Width;
  248. };
  249.  
  250.     /* A dial list entry. */
  251.  
  252. struct PhoneNode
  253. {
  254.     struct Node         VanillaNode;
  255.  
  256.     UBYTE             LocalName[50];
  257.  
  258.     struct PhoneEntry    *Entry;
  259. };
  260.  
  261.     /* A Fast! macro list entry. */
  262.  
  263. struct MacroNode
  264. {
  265.     struct MacroNode    *mn_Succ;    /* Modeled after the default Node. */
  266.     struct MacroNode    *mn_Pred;
  267.  
  268.     WORD             mn_Pad;    /* Included only for Node compatibility. */
  269.  
  270.     UBYTE            *mn_Macro;    /* = ln_Name, title */
  271.     UBYTE            *mn_Code;    /* The execution code. */
  272. };
  273.  
  274.     /* Speech preferences. */
  275.  
  276. struct SpeechConfig
  277. {
  278.     WORD            Rate,
  279.                 Pitch;
  280.     LONG            Frequency;
  281.     BYTE            Sex,
  282.                 Volume,
  283.                 Enabled,
  284.                 Pad;
  285. };
  286.  
  287.     /* Macro Preferences. */
  288.  
  289. struct MacroKeys
  290. {
  291.     UBYTE            Keys[4][10][256];
  292. };
  293.  
  294.     /* term configuration. */
  295.  
  296. struct Configuration
  297. {
  298.     /* Serial Preferences. */
  299.  
  300.     ULONG            BaudRate;
  301.     BYTE            BitsPerChar;
  302.     BYTE            Parity;
  303.     BYTE            StopBits;
  304.     BYTE            Handshaking;
  305.     BYTE            Duplex;
  306.     BYTE            HighSpeed;
  307.     ULONG            BreakLength;
  308.     UBYTE            SerialDevice[40];
  309.     LONG            UnitNumber;
  310.  
  311.     /* Modem Preferences. */
  312.  
  313.     UBYTE            ModemInit[80];
  314.     UBYTE             ModemExit[80];
  315.     UBYTE             ModemHangup[80];
  316.     UBYTE            DialPrefix[80];
  317.     LONG            RedialDelay;
  318.     LONG            DialRetries;
  319.     LONG            DialTimeout;
  320.     BYTE            ConnectAutoCapture;
  321.     BYTE            ConnectAutoBaud;
  322.     BYTE            LogActions;
  323.     UBYTE            NoCarrier[16];
  324.     UBYTE            Connect[16];
  325.     UBYTE            Voice[16];
  326.     UBYTE            Ring[16];
  327.     UBYTE            Busy[16];
  328.  
  329.     /* Transfer Preferences. */
  330.  
  331.     UBYTE            Protocol[40];
  332.  
  333.     /* Startup macro. */
  334.  
  335.     UBYTE            StartupMacro[256];
  336.  
  337.     /* Macro Preferences. */
  338.  
  339.     UBYTE            MacroFile[256];
  340.  
  341.     /* Screen Preferences. */
  342.  
  343.     ULONG            DisplayMode;
  344.     UWORD            Colours[16];
  345.     BYTE            MakeScreenPublic;
  346.     BYTE            ShanghaiWindows;
  347.  
  348.     /* Terminal Preferences. */
  349.  
  350.     BYTE            CaptureFilter;
  351.     BYTE            DestructiveBackspace;
  352.     BYTE            AudibleBell;
  353.     BYTE            VisibleBell;
  354.     BYTE            EightyColumns;
  355.     BYTE            DisableBlinking;
  356.     BYTE            SendCR;
  357.     BYTE            SendLF;
  358.     BYTE            ColourMode;
  359.     BYTE            Emulation;
  360.     BYTE            Font;
  361.  
  362.     /* Emulation control. */
  363.  
  364.     BYTE            CursorApp;
  365.     BYTE            FontScale;
  366.     BYTE            JumpScroll;
  367.     BYTE            AutoWrap;
  368.     BYTE            CursorWrap;
  369.     BYTE            NewLine;
  370.     BYTE            InsertChar;
  371.     BYTE            NumApp;
  372.  
  373.     /* Path Preferences. */
  374.  
  375.     UBYTE            DefaultStorage[256];
  376.  
  377.     UBYTE            TextUploadPath[256];
  378.     UBYTE            TextDownloadPath[256];
  379.  
  380.     UBYTE            ASCIIUploadPath[256];
  381.     UBYTE            ASCIIDownloadPath[256];
  382.  
  383.     UBYTE            BinaryUploadPath[256];
  384.     UBYTE            BinaryDownloadPath[256];
  385.  
  386.     UBYTE            CapturePath[256];
  387.     UBYTE            LogFile[256];
  388.     UBYTE            Editor[256];
  389.     UBYTE            BeepSound[256];
  390.  
  391.     /* Extension in version 1.9b */
  392.  
  393.     BYTE            SwapBSDelete;
  394.     BYTE            StripBit8;
  395.  
  396.     /* Some more extensions... */
  397.  
  398.     BYTE            RasterEnabled;
  399.  
  400.     UBYTE            EmulationName[256];
  401.  
  402.     /* Up-/Download Macros. */
  403.  
  404.     UBYTE            UploadMacro[256];
  405.     UBYTE            DownloadMacro[256];
  406.  
  407.     /* Default fast! macro file. */
  408.  
  409.     UBYTE            FastMacroFile[256];
  410.  
  411.     /* Program priority. */
  412.  
  413.     BYTE            Priority;
  414.  
  415.     /* Override transfer path. */
  416.  
  417.     BYTE            OverridePath;
  418.  
  419.     /* Backup config between switching to phone entries. */
  420.  
  421.     BYTE            BackupConfig;
  422.  
  423.     /* ZModem auto upload panel enabled? */
  424.  
  425.     BYTE            AutoUpload;
  426.  
  427.     /* No dialtone string. */
  428.  
  429.     UBYTE            NoDialTone[16];
  430.  
  431.     /* Check carrier upon `CARRIER LOST' message. */
  432.  
  433.     BYTE            CheckCarrier;
  434.  
  435.     /* Display the screen title bar? */
  436.  
  437.     BYTE            TitleBar;
  438.  
  439.     /* Display the status lines? */
  440.  
  441.     BYTE            StatusLine;
  442.  
  443.     /* Drop the DTR signal on hangup? */
  444.  
  445.     BYTE            DropDTR;
  446.  
  447.     /* Custom keymap file name. */
  448.  
  449.     UBYTE            KeyMapName[40];
  450.  
  451.     /* Serial buffer size. */
  452.  
  453.     LONG            SerBuffSize;
  454.  
  455.     /* Maximum log book buffer size. */
  456.  
  457.     LONG            MaxLogBuffSize;
  458.  
  459.     /* Is the buffering enabled? */
  460.  
  461.     BYTE            BufferEnabled;
  462.  
  463.     /* Receive CR/LF as... */
  464.  
  465.     BYTE            ReceiveCR;
  466.     BYTE            ReceiveLF;
  467.  
  468.     /* Set `archived' bit on uploaded files. */
  469.  
  470.     BYTE            SetArchivedBit;
  471.  
  472.     /* Open the fast! macro panel on startup? */
  473.  
  474.     BYTE            OpenFastMacroPanel;
  475.  
  476.     /* Pass xON/xOFF through to modem? */
  477.  
  478.     BYTE            PassThrough;
  479.  
  480.     /* Use system DisplayBeep()? */
  481.  
  482.     BYTE            SystemBeep;
  483.  
  484.     /* Alert (Wakeup) type. */
  485.  
  486.     BYTE            Alert;
  487.  
  488.     /* Answerback message. */
  489.  
  490.     UBYTE            AnswerBack[41];
  491.  
  492.     /* Clipboard unit number. */
  493.  
  494.     BYTE            ClipboardUnit;
  495.  
  496.     /* Font settings. */
  497.  
  498.     UBYTE            FontName[32];
  499.     WORD            FontHeight;
  500.  
  501.     UBYTE            TextFontName[32];
  502.     WORD            TextFontHeight;
  503.  
  504.     /* Hard- and software-handshaking. */
  505.  
  506.     BYTE            HandshakingProtocol;
  507.     BYTE            xONxOFF;
  508.  
  509.     /* Logoff macro. */
  510.  
  511.     UBYTE            LogoffMacro[256];
  512.  
  513.     /* Are the terminal printer commands enabled? */
  514.  
  515.     BYTE            PrinterEnabled;
  516.  
  517.     /* Are we to create an NComm-compatible logfile? */
  518.  
  519.     BYTE            NCommLog;
  520.  
  521.     BYTE            Pad;
  522.  
  523.     /* Dialing string suffix. */
  524.  
  525.     UBYTE            DialSuffix[80];
  526.  
  527.     /* Clipboard paste line delay. */
  528.  
  529.     WORD            LineDelay,
  530.                 CharDelay;
  531. };
  532.  
  533.     /* term hotkey configuration. */
  534.  
  535. struct HotkeysOld
  536. {
  537.     UBYTE            termScreenToFront[256];
  538.     UBYTE            BufferScreenToFront[256];
  539.     UBYTE            SkipDialEntry[256];
  540.     BYTE            CommodityPriority;
  541.     BYTE            HotkeysEnabled;
  542.  
  543.     ULONG            Reserved[25];
  544. };
  545.  
  546. struct Hotkeys
  547. {
  548.     UBYTE            termScreenToFront[256];
  549.     UBYTE            BufferScreenToFront[256];
  550.     UBYTE            SkipDialEntry[256];
  551.     BYTE            CommodityPriority;
  552.     BYTE            HotkeysEnabled;
  553.  
  554.     ULONG            Reserved[25];
  555.  
  556.     UBYTE            AbortARexx[256];
  557. };
  558.  
  559.     /* Time/date structure. */
  560.  
  561. struct TimeDate
  562. {
  563.     LONG             Count;        /* Table size. */
  564.     WORD             PayPerUnit[2],    /* Pay for each unit. */
  565.                  SecPerUnit[2];    /* Number of seconds each unit lasts. */
  566.     UBYTE             Time,        /* The time associated with this entry. */
  567.                  Pad;
  568. };
  569.  
  570. struct TimeDateNode
  571. {
  572.     struct Node         VanillaNode;    /* Default node entry. */
  573.     UBYTE             Buffer[30];    /* Name buffer. */
  574.  
  575.     UBYTE             Comment[22];    /* Comment for this entry. */
  576.  
  577.     BYTE             Month,        /* Month of year or -1 -> Day = bitmapped days of week. */
  578.                  Day;        /* Day of month or -1 -> standard settings. */
  579.  
  580.     struct TimeDate        *Table;        /* Table of time/date entries. */
  581. };
  582.  
  583. struct TimeNode
  584. {
  585.     struct Node         VanillaNode;    /* Default node entry. */
  586.     UBYTE             Name[6];    /* Name string. */
  587.     UBYTE             Time;        /* The time for this entry. */
  588. };
  589.  
  590.     /* A phonebook entry. */
  591.  
  592. struct PhoneEntry
  593. {
  594.     struct PhoneNode    *Node;
  595.  
  596.     struct MinList         TimeDateList;
  597.  
  598.     LONG             Count;
  599.  
  600.     UBYTE             Name[30];
  601.     UBYTE             Number[40];
  602.     UBYTE             Password[20];
  603.     UBYTE             UserName[20];
  604.  
  605.     LONG             PayPerUnit[2];
  606.     LONG             SecPerUnit[2];
  607.     LONG             TimeOfDay[2];
  608.  
  609.     struct Configuration     Config;
  610. };
  611.  
  612.     /* A text box for several lines of text. */
  613.  
  614. struct TextBox
  615. {
  616.     struct TextBox        *NextBox;        /* Next box in chain. */
  617.  
  618.     LONG             Left,Top,        /* Position and size. */
  619.                  Width,Height;
  620.  
  621.     LONG             LineWidth,        /* Line width in pixels. */
  622.                  LineHeight;        /* Line height in pixels. */
  623.  
  624.     LONG             NumChars,        /* Number of chars per line. */
  625.                  NumLines;        /* Number of lines. */
  626.  
  627.     STRPTR            *Title,            /* Line titles. */
  628.                 *Text;            /* Line texts. */
  629. };
  630.  
  631.     /* Block marker structure. */
  632.  
  633. struct BlockMarker
  634. {
  635.         /* The object to manipulate. */
  636.  
  637.     APTR            Object;
  638.  
  639.         /* Selection and unselection routines. */
  640.  
  641.     VOID         (* Select)(struct BlockMarker *Marker,WORD Left,WORD Top,WORD Width,WORD Height);
  642.     VOID         (* Unselect)(struct BlockMarker *Marker,WORD Left,WORD Top,WORD Width,WORD Height);
  643.  
  644.         /* Origin anchor point. */
  645.  
  646.     WORD            OriginX,
  647.                 OriginY;
  648.  
  649.         /* First and last selected line. */
  650.  
  651.     WORD            FirstLine,
  652.                 LastLine;
  653.  
  654.         /* First and last selected column. */
  655.  
  656.     WORD            FirstColumn,
  657.                 LastColumn;
  658.  
  659.         /* Top of display window, lines in the buffer and size of
  660.          * the display window.
  661.          */
  662.  
  663.     WORD            Top,
  664.                 Lines,
  665.                 Width,
  666.                 Height;
  667.  
  668.         /* Last mouse position. */
  669.  
  670.     WORD            LastX,
  671.                 LastY;
  672.  
  673.         /* Single character dimensions. */
  674.  
  675.     WORD            TextFontWidth,
  676.                 TextFontHeight;
  677. };
  678.  
  679.     /* Global data flow <-> term interface. */
  680.  
  681. struct FlowInfo
  682. {
  683.     BYTE            Changed;
  684.  
  685.     BYTE            NoCarrier;
  686.     BYTE            ZModemUpload;
  687.  
  688.     BYTE            Connect;
  689.     BYTE            Voice;
  690.     BYTE            Ring;
  691.     BYTE            Busy;
  692.  
  693.     BYTE            NoDialTone;
  694. };
  695.  
  696.     /* A scan sequence, somewhat similar to the FlowInfo
  697.      * structure.
  698.      */
  699.  
  700. struct ScanNode
  701. {
  702.     struct MinNode         Node;
  703.  
  704.     UBYTE            *Sequence;    /* Character sequence to be matched. */
  705.     LONG             Count;        /* Number of characters matched. */
  706. };
  707.  
  708.     /* Number of buffers to be used for buffered I/O. */
  709.  
  710. #define BUFFER_NUMBER 2
  711.  
  712.     /* Auxiliary structure for buffered file I/O. */
  713.  
  714. struct Buffer
  715. {
  716.     struct Message             Message;            /* Vanilla message header. */
  717.  
  718.     BYTE                 Read;                /* Last access has read data. */
  719.     BYTE                 Written;            /* Last access has written data. */
  720.  
  721.     LONG                 Action;            /* Action to perform. */
  722.     LONG                 ActionData[2];            /* Seek and the like. */
  723.     LONG                 Result;            /* Return value. */
  724.  
  725.     BPTR                 FileHandle;            /* Dos filehandle. */
  726.  
  727.     UBYTE                *Data;                /* Data buffer. */
  728.     LONG                 BufLength;            /* Length of data buffer. */
  729.  
  730.     LONG                 BufPosition;            /* Read/write pointer into buffer. */
  731.  
  732.     LONG                 ReadBufFull;            /* How many bytes are still to be read from the buffer? */
  733.     LONG                 WriteBufFull;            /* How many bytes are still to be written to the buffer?*/
  734.  
  735.     LONG                 RealPosition;            /* Real position in file. */
  736.     LONG                 Cached;            /* How many bytes in pre-load cache. */
  737.  
  738.     UBYTE                *DataBuffer[BUFFER_NUMBER];    /* The data buffers. */
  739.     LONG                 DataLength[BUFFER_NUMBER];    /* The lengths of the data buffers. */
  740.     WORD                 DataCount;            /* Which buffer to use. */
  741.     BYTE                 WriteAccess;            /* TRUE if a write file handle. */
  742.     BYTE                 LastActionFailed;        /* TRUE if last action failed -> abort actions. */
  743.  
  744.     struct Process            *Child;
  745.     struct Process            *Caller;            /* Synchronization. */
  746.  
  747.     BPTR                 DirLock;
  748.     struct InfoData __aligned     InfoData;
  749.  
  750.     BYTE                 Fresh;                /* TRUE if no read/write access has taken place yet. */
  751.     BYTE                 Used;                /* Did any access take place at all? */
  752. };
  753.  
  754.     /* xpr serial bits. */
  755.  
  756. #define ST_PARTYON    (1 << 0)
  757. #define ST_PARTYODD    (1 << 1)
  758. #define ST_7WIRE    (1 << 2)
  759. #define ST_QBREAK    (1 << 3)
  760. #define ST_RADBOOGIE    (1 << 4)
  761. #define ST_SHARED    (1 << 5)
  762. #define ST_EOFMODE    (1 << 6)
  763. #define ST_XDISABLED    (1 << 7)
  764. #define ST_PARTYMARKON    (1 << 8)
  765. #define ST_PARTYMARK    (1 << 9)
  766. #define ST_2BITS    (1 << 10)
  767. #define ST_READ7    (1 << 11)
  768. #define ST_WRITE7    (1 << 12)
  769.  
  770.     /* Miscellaneous definitions. */
  771.  
  772. #define MILLION        1000000
  773.  
  774. #define    ATTR_UNDERLINE    1
  775. #define    ATTR_HIGHLIGHT    2
  776. #define ATTR_BLINK    4
  777. #define    ATTR_INVERSE    8
  778.  
  779.     /* Status macro (is character printable?). */
  780.  
  781. #define IsPrintable(c)    (ValidTab[c])
  782. #define IsBlank(c)    ((c) > 127 && (c) < 160)
  783.  
  784.     /* Set the stopwatch pointer. */
  785.  
  786. #define SetWait(Window)        SetPointer(Window,Stopwatch,16,16,-6,0)
  787. #define SetMarker(Window)    SetPointer(Window,MarkerData,15,15,-8,-7)
  788.  
  789.     /* Audio channels. */
  790.  
  791. #define LEFT0F  1
  792. #define RIGHT0F  2
  793. #define RIGHT1F  4
  794. #define LEFT1F  8
  795.  
  796.     /* Program revision and the approriate info structure. */
  797.  
  798. struct TermInfo
  799. {
  800.     UWORD    Version;
  801.     UWORD    Revision;
  802. };
  803.  
  804. extern LONG    TermVersion,
  805.         TermRevision;
  806.  
  807. extern UBYTE    TermName[],
  808.         TermDate[];
  809.  
  810.     /* CommandPanel.c */
  811.  
  812. VOID                CommandPanel(struct Configuration *Config);
  813.  
  814.     /* CopyPanel.c */
  815.  
  816. VOID                CopyPanel(struct Configuration *MyConfig);
  817.  
  818.     /* DatePanel.c */
  819.  
  820. BYTE                DatePanel(struct TimeDateNode *Node);
  821.  
  822.     /* DayPanel.c */
  823.  
  824. BYTE                DayPanel(struct TimeDateNode *Node);
  825.  
  826.     /* DialPanel.c */
  827.  
  828. BYTE                DialPanel(VOID);
  829.  
  830.     /* FastMacroPanel.c */
  831.  
  832. VOID                FastMacroPanel(VOID);
  833.  
  834.     /* ImportPanel.c */
  835.  
  836. VOID                ImportPanel(struct PhoneEntry *Entry,struct List *PhoneList);
  837.  
  838.     /* MacroPanel.c */
  839.  
  840. VOID                MacroPanel(struct MacroKeys *MacroKeys);
  841.  
  842.     /* ModemPanel.c */
  843.  
  844. BYTE                ModemPanel(struct Configuration *Config);
  845.  
  846.     /* PathPanel.c */
  847.  
  848. BYTE                PathPanel(struct Configuration *Config);
  849.  
  850.     /* PasswordUserPanel.c */
  851.  
  852. VOID                PasswordUserPanel(struct PhoneEntry *Entry);
  853.  
  854.     /* PhonePanel.c */
  855.  
  856. BYTE                PhonePanel(VOID);
  857.  
  858.     /* RatePanel.c */
  859.  
  860. VOID                RatePanel(struct List *PhoneList,struct PhoneEntry *Entry);
  861.  
  862.     /* SerialPanel.c */
  863.  
  864. BYTE                SerialPanel(struct Configuration *Config);
  865.  
  866.     /* ScreenPanel.c */
  867.  
  868. BYTE __regargs            ModeOkay(ULONG ID);
  869. BYTE                ScreenPanel(struct Configuration *Config);
  870.  
  871.     /* SpeechPanel.c */
  872.  
  873. VOID                SpeechPanel(VOID);
  874.  
  875.     /* TerminalPanel.c */
  876.  
  877. VOID                TerminalPanel(struct Configuration *Config);
  878.  
  879.     /* TimePanel.c */
  880.  
  881. BYTE                TimePanel(UBYTE *StartTime);
  882.  
  883.     /* TransferPanel.c */
  884.  
  885. VOID __stdargs            TransferInfo(WORD X,WORD Y,BYTE *String,...);
  886. VOID __stdargs            ShowString(struct Gadget *Gadget,UBYTE *String,...);
  887. VOID                GhostStats(struct Gadget *Gadget);
  888. VOID                ShowStats(struct Gadget *Gadget,LONG Value,LONG Max);
  889. VOID __stdargs            AddTransferInfo(UBYTE *Message,...);
  890. VOID                RefreshTransferWindow(VOID);
  891. BYTE                TransferPanel(UBYTE *Title);
  892. VOID                DeleteTransferPanel(VOID);
  893.  
  894.     /* UploadPanel.c */
  895.  
  896. BYTE                UploadPanel(VOID);
  897.  
  898.     /* Format.asm */
  899.  
  900. VOID __stdargs            SPrintf(APTR,UBYTE *,...);
  901. VOID __stdargs            VSPrintf(APTR,UBYTE *,va_list);
  902.  
  903.     /* termAux.c */
  904.  
  905. VOID                SetDialMenu(BYTE Mode);
  906. VOID                SetTransferMenu(BYTE Mode);
  907. BYTE                PickFont(struct Window *Window,STRPTR Name,WORD *Height,BYTE MonoSpaced);
  908. UBYTE * __regargs        ExtractString(UBYTE *String,UBYTE *Destination,BYTE ReturnEnd);
  909. VOID __regargs            DeleteInterleavedBitMap(struct BitMap *SomeBitMap);
  910. struct BitMap * __regargs    CreateInterleavedBitMap(LONG Width,LONG Height,WORD Depth);
  911. struct Node *            GetListNode(LONG Offset,struct List *List);
  912. struct ConUnit *        GetConUnit(struct MsgPort *);
  913. VOID                AddDownloadObject(UBYTE *Line);
  914. VOID                ClearDownloadObjects(VOID);
  915. struct ScanNode *        SequenceFilter(UBYTE Char);
  916. VOID                AddSequenceObject(UBYTE *Sequence);
  917. VOID                ClearSequenceObjects(VOID);
  918. VOID __stdargs            LogAction(UBYTE *String,...);
  919. VOID                FlushMsg(struct Window *Window);
  920. BYTE                GetString(UBYTE *Prompt,UBYTE *Buffer);
  921. VOID __regargs            WakeUp(struct Window *Window);
  922. VOID                SendAmigaDOSCommand(UBYTE *Name);
  923. VOID __saveds            RexxBackgroundServer(VOID);
  924. VOID                SendARexxCommand(UBYTE *Name);
  925. LONG                ahtoi(UBYTE *String);
  926. VOID __regargs            BlockWindow(struct Window *Window);
  927. VOID __regargs            ReleaseWindow(struct Window *Window);
  928. VOID                BlockWindows(VOID);
  929. VOID                ReleaseWindows(VOID);
  930. LONG                LineRead(BPTR File,UBYTE *Buffer,LONG MaxChars);
  931. VOID                FlowInit(VOID);
  932. VOID                FlowFilter(UBYTE Char);
  933. BYTE                LoadMacros(UBYTE *Name,struct MacroKeys *Keys);
  934. struct MenuItem *        FindThisItem(ULONG MenuID);
  935. LONG                GetFileSize(UBYTE *Name);
  936. struct FileRequester *        GetFile(UBYTE *Title,UBYTE *Directory,UBYTE *Name,UBYTE *Buffer,UBYTE *Pattern,BYTE SaveFlag,BYTE MultiSelect,BYTE DirsOnly,UBYTE *OKText);
  937. VOID                PrintSomething(BYTE Source);
  938. WORD __stdargs            MyEasyRequest(struct Window *Window,UBYTE *Text,UBYTE *Gadgets,...);
  939. VOID                SelectTime(struct PhoneEntry *SomeEntry);
  940. VOID __saveds            StatusServer(VOID);
  941. VOID                CloseWindowSafely(struct Window *Window);
  942. VOID                WaitTime(LONG Secs,LONG Micros);
  943. UBYTE *                GetEnvDOS(UBYTE *Name,UBYTE *Buffer);
  944. BYTE                SetEnvDOS(UBYTE *Name,UBYTE *Value);
  945. VOID                BumpWindow(struct Window *SomeWindow);
  946. VOID                BumpDefault(VOID);
  947. BYTE                WriteIFFData(UBYTE *Name,APTR Data,LONG Size,ULONG Type);
  948. BYTE                ReadIFFData(UBYTE *Name,APTR Data,LONG Size,ULONG Type);
  949. VOID                PushWindow(struct Window *Window);
  950. VOID                PopWindow(VOID);
  951.  
  952.     /* termBeep.c */
  953.  
  954. BYTE                CreateBeep(VOID);
  955. VOID                DeleteBeep(VOID);
  956. VOID                ClearAudio(VOID);
  957. VOID                Beep(VOID);
  958. BYTE                OpenSound(UBYTE *Name);
  959.  
  960.     /* termBuffer.c */
  961.  
  962. BYTE                LaunchBuffer(VOID);
  963. VOID __saveds            BufferServer(VOID);
  964. VOID                AddLine(UBYTE *Line,LONG Size);
  965. VOID                ClearBuffer(VOID);
  966. VOID                StoreBuffer(APTR Buffer,LONG Size);
  967.  
  968.     /* termCall.c */
  969.  
  970. VOID                MakeCall(STRPTR Name,STRPTR Number);
  971. VOID                StopCall(BYTE Finish);
  972.  
  973.     /* termClip.c */
  974.  
  975. VOID __saveds            ClipServer(VOID);
  976. BYTE                OpenClip(VOID);
  977. VOID                CloseClip(VOID);
  978. WORD                GetClip(STRPTR Buffer,WORD Len,BYTE Filter);
  979. BYTE                SaveClip(APTR Buffer,LONG Size);
  980. LONG                LoadClip(APTR Buffer,LONG Size);
  981.  
  982.     /* termConsole.c */
  983.  
  984. VOID __regargs            CaptureToFile(APTR Buffer,LONG Size);
  985. VOID __regargs            Capture(APTR Buffer,LONG Size);
  986. VOID                ClosePrinterCapture(BYTE Force);
  987. BYTE                OpenPrinterCapture(BYTE Controller);
  988. VOID                PrintRegion(WORD Top,WORD Bottom);
  989. BYTE __regargs            HandleCursor(UBYTE Char);
  990. BYTE                DoBackspace(VOID);
  991. BYTE                DoBeep(VOID);
  992. BYTE                DoLF(VOID);
  993. BYTE                DoShiftIn(VOID);
  994. BYTE                DoShiftOut(VOID);
  995. BYTE                DoCR_LF(VOID);
  996. BYTE                DoFF(VOID);
  997. BYTE                DoLF_FF_VT(VOID);
  998. BYTE                DoCR(VOID);
  999. BYTE                DoTab(VOID);
  1000. BYTE                DoEnq(VOID);
  1001. BYTE                DoxON(VOID);
  1002. BYTE                DoEsc(VOID);
  1003. BYTE                DoCsi(VOID);
  1004. BYTE __regargs            DoNewEsc(UBYTE Char);
  1005. BYTE __regargs            DoNewCsi(UBYTE Char);
  1006. VOID __regargs            GfxText(struct RastPort *RPort,STRPTR Buffer,LONG Length);
  1007. VOID __stdargs            ConWrites(UBYTE *String,...);
  1008. VOID __regargs            ConProcess(register UBYTE *String,register LONG Size);
  1009. UBYTE __regargs            KeyConvert(struct IntuiMessage *Massage,UBYTE *Buffer,LONG *Len);
  1010.  
  1011.     /* termCrypt.c */
  1012.  
  1013. UBYTE *                Encrypt(UBYTE *Source,WORD SourceLen,UBYTE *Destination,UBYTE *Key,WORD KeyLen,BYTE Prefill);
  1014. UBYTE *                Decrypt(UBYTE *Source,WORD SourceLen,UBYTE *Destination,UBYTE *Key,WORD KeyLen,BYTE Prefill);
  1015. BYTE                CryptPanel(UBYTE *Buffer);
  1016.  
  1017.     /* termEmulation.c */
  1018.  
  1019. BYTE                DoCancel(VOID);
  1020. VOID                CSIFake(VOID);
  1021. BYTE __regargs            ParseCode(UBYTE c);
  1022. VOID                ClearCursor(VOID);
  1023. VOID                DrawCursor(VOID);
  1024. VOID                SetCursor(VOID);
  1025. VOID __regargs            ClipBlitCursor(UBYTE DoClip,UBYTE DoMove); 
  1026. VOID                BackupRender(VOID);
  1027. VOID __regargs            ShiftChar(LONG Size);
  1028. VOID                DownLine(VOID);
  1029. VOID                ResetCursor(VOID);
  1030. UBYTE *                Ignore(VOID);
  1031. UBYTE * __regargs        ScrollUp(UBYTE *Buffer);
  1032. UBYTE * __regargs        ScrollDown(UBYTE *Buffer);
  1033. UBYTE *                CursorScrollDown(VOID);
  1034. UBYTE *                CursorScrollUp(VOID);
  1035. UBYTE *                NextLine(VOID);
  1036. UBYTE *                SaveCursor(VOID);
  1037. UBYTE * __regargs        FontStuff(UBYTE *);
  1038. UBYTE *                LoadCursor(VOID);
  1039. UBYTE * __regargs        ScaleFont(UBYTE *);
  1040. UBYTE *                AlignmentTest(VOID);
  1041. UBYTE *                SetTab(VOID);
  1042. UBYTE * __regargs        RequestTerminal(UBYTE *Buffer);
  1043. UBYTE *                Reset(VOID);
  1044. UBYTE * __regargs        RequestInformation(UBYTE *Buffer);
  1045. UBYTE * __regargs        SetSomething(UBYTE *Buffer);
  1046. UBYTE * __regargs        PrinterController(UBYTE *Buffer);
  1047. UBYTE * __regargs        NumericAppMode(UBYTE *Buffer);
  1048. UBYTE * __regargs        MoveCursor(UBYTE *Buffer);
  1049. UBYTE * __regargs        EraseLine(UBYTE *Buffer);
  1050. UBYTE * __regargs        EraseScreen(UBYTE *Buffer);
  1051. UBYTE * __regargs        EraseCharacters(UBYTE *Buffer);
  1052. UBYTE * __regargs        InsertCharacters(UBYTE *Buffer);
  1053. UBYTE * __regargs        InsertLine(UBYTE *Buffer);
  1054. UBYTE * __regargs        ClearLine(UBYTE *Buffer);
  1055. UBYTE * __regargs        SetTabs(UBYTE *Buffer);
  1056. UBYTE * __regargs        SetAbsolutePosition(UBYTE *Buffer);
  1057. UBYTE * __regargs        SetAttributes(UBYTE *Buffer);
  1058. UBYTE * __regargs        SetRegion(UBYTE *Buffer);
  1059. VOID                ResetCursor(VOID);
  1060.  
  1061.     /* termFastMacros.c */
  1062.  
  1063. VOID                RefreshFastWindow(WORD Height);
  1064. VOID                CloseFastWindow(VOID);
  1065. BYTE                OpenFastWindow(VOID);
  1066. struct MacroNode *        NewFastMacro(UBYTE *Macro,UBYTE *Code);
  1067. VOID                RemFastMacro(struct MacroNode *Node);
  1068. struct MacroNode *        GetFastMacro(LONG Offset);
  1069. VOID                ClearFastMacroList(struct List *List);
  1070. LONG                GetFastMacroOffset(struct MacroNode *MacroNode);
  1071. VOID __regargs            MoveList(struct List *From,struct List *To);
  1072. BYTE                SaveFastMacros(UBYTE *Name);
  1073. BYTE                LoadFastMacros(UBYTE *Name);
  1074.  
  1075.     /* termFileBuffer.c */
  1076.  
  1077. LONG __stdargs            BPrintf(struct Buffer *Buffer,UBYTE *Format,...);
  1078.  
  1079. BYTE __regargs            BufferClose(struct Buffer *Buffer);
  1080. struct Buffer * __regargs    BufferOpen(UBYTE *Name,UBYTE *AccessMode);
  1081. LONG __regargs            BufferRead(struct Buffer *Buffer,UBYTE *Destination,LONG Size);
  1082. LONG __regargs            BufferWrite(struct Buffer *Buffer,UBYTE *Source,LONG Size);
  1083. BYTE __regargs            BufferSeek(struct Buffer *Buffer,LONG Offset,LONG Origin);
  1084.  
  1085.     /* termGadTools.c */
  1086.  
  1087. LONG                SZ_ResetMaxWidth(VOID);
  1088. VOID __regargs            SZ_UpdateMaxWidth(UBYTE Type,STRPTR Title,LONG Chars,STRPTR *Choices);
  1089. LONG                SZ_GetWindowWidth(VOID);
  1090. LONG                SZ_GetWindowHeight(VOID);
  1091. LONG                SZ_GetLeftEdge(VOID);
  1092. LONG                SZ_GetTopEdge(VOID);
  1093. VOID __regargs            SZ_SetTopEdge(LONG Top);
  1094. VOID __regargs            SZ_SetLeftEdge(LONG Left);
  1095. VOID __regargs            SZ_SetAbsoluteTop(LONG Top);
  1096. VOID __regargs            SZ_SetAbsoluteLeft(LONG Left);
  1097. VOID __regargs            SZ_SetWidth(LONG Width);
  1098. VOID __regargs            SZ_GetDimension(LONG *Width,LONG *Height);
  1099. LONG __regargs            SZ_TextWidth(STRPTR String);
  1100. VOID __regargs            SZ_AddLeftOffset(LONG Offset);
  1101. LONG __stdargs            SZ_LeftOffsetN(LONG DataArray,...);
  1102. LONG __regargs            SZ_LeftOffsetDelta(LONG From,LONG To);
  1103. VOID                SZ_SizeCleanup();
  1104. BYTE __regargs            SZ_SizeSetup(struct Screen *Screen,struct TextAttr *TextAttr,BYTE Title);
  1105. LONG __regargs            SZ_Height(UBYTE Type,LONG Lines,BYTE Display);
  1106. LONG __regargs            SZ_Width(UBYTE Type,STRPTR Title,LONG Chars,STRPTR *Choices);
  1107.  
  1108. VOID __regargs            SZ_FreeBox(struct TextBox *Box);
  1109. VOID __regargs            SZ_FreeBoxes(struct TextBox *FirstBox);
  1110. LONG __regargs            SZ_BoxWidth(LONG Chars);
  1111. LONG __regargs            SZ_BoxHeight(LONG Lines);
  1112. struct TextBox * __stdargs    SZ_CreateTextBox(struct TextBox **FirstBox,...);
  1113. VOID __stdargs            SZ_SetBoxTitles(struct TextBox *Box,STRPTR Array,...);
  1114. VOID __stdargs            SZ_PrintLine(struct RastPort *RPort,struct TextBox *Box,LONG Line,STRPTR String,...);
  1115. VOID __regargs            SZ_DrawBox(struct RastPort *RPort,struct TextBox *Box);
  1116. VOID __regargs            SZ_DrawBoxes(struct RastPort *RPort,struct TextBox *FirstBox);
  1117.  
  1118. VOID                KeySelect(struct Gadget **GadgetList,WORD Last,UBYTE Key,struct Window *Window,struct Gadget **Gadget,ULONG *Class,ULONG *Code);
  1119.  
  1120.     /* termIdentify.c */
  1121.  
  1122. VOID                Identify(UBYTE *Name);
  1123.  
  1124.     /* termInfo.c */
  1125.  
  1126. BYTE                ShowInfo(BYTE Ticks);
  1127.  
  1128.     /* termInit.c */
  1129.  
  1130. BYTE                DisplayReset(VOID);
  1131. struct Process *        SegmentSplit(STRPTR Name,BYTE Pri,LONG StackSize,APTR Function);
  1132. struct KeyMap *            LoadKeyMap(STRPTR Name);
  1133. VOID                ConfigSetup(VOID);
  1134. BYTE                DeleteDisplay(VOID);
  1135. UBYTE *                CreateDisplay(BYTE FirstSetup);
  1136. VOID                CloseAll(VOID);
  1137. UBYTE *                OpenAll(STRPTR ConfigPath);
  1138.  
  1139.     /* termHotkeys. */
  1140.  
  1141. VOID                ShutdownCx(VOID);
  1142. BYTE                SetupCx(VOID);
  1143. BYTE                LoadHotkeys(STRPTR Filename,struct Hotkeys *Keys);
  1144.  
  1145.     /* termLocale.c */
  1146.  
  1147. VOID __regargs            LocaleOpen(STRPTR CatalogName,STRPTR BuiltIn,LONG Version);
  1148. VOID                LocaleClose(VOID);
  1149. VOID                LanguageCheck(VOID);
  1150. WORD __regargs            GadToolsStrlen(STRPTR String);
  1151. WORD __regargs            GadToolsLongestString(WORD From,WORD To);
  1152. STRPTR __regargs        LocaleSeconds(WORD Seconds);
  1153. STRPTR __regargs        SmallCurrency(VOID);
  1154. STRPTR __regargs        CreateSum(LONG Quantity,BYTE UseCurrency);
  1155. VOID __regargs            LocalizeString(STRPTR *Strings,WORD From,WORD To);
  1156. VOID __regargs            LocalizeMenu(struct NewMenu *Menu,WORD From);
  1157. STRPTR __regargs        LocaleString(LONG ID);
  1158.  
  1159.     /* termMain.c */
  1160.  
  1161. LONG __saveds            main(VOID);
  1162. VOID __saveds            HandleInput(VOID);
  1163. BYTE                HandleWindow(VOID);
  1164. BYTE                HandleSerial(VOID);
  1165. VOID                HandleCode(ULONG Code,ULONG Qualifier,struct MenuItem *MenuItem);
  1166. VOID                HandleMenu(ULONG Code,ULONG Qualifier);
  1167.  
  1168.     /* termMarker.c */
  1169.  
  1170. VOID                BM_Draw(struct BlockMarker *Marker,VOID (*Select)(APTR Object,WORD Left,WORD Top,WORD Width,WORD Height));
  1171. VOID                BM_ClearMark(struct BlockMarker *Marker);
  1172. struct BlockMarker *        BM_SetMark(APTR Object,APTR Select,APTR Unselect,WORD Width,WORD Height,WORD Top,WORD Lines,WORD X,WORD Y,WORD TextFontWidth,WORD TextFontHeight);
  1173. VOID                BM_ExtendMark(struct BlockMarker *Marker,WORD X,WORD Y,WORD Delta);
  1174. VOID                BM_WindowUpdate(struct BlockMarker *Marker,WORD TopDelta,WORD X);
  1175.  
  1176. VOID                ToggleSelect(struct BlockMarker *Marker,WORD Left,WORD Top,WORD Width,WORD Height);
  1177. VOID __regargs            WriteTrimmedString(struct IFFHandle *Handle,STRPTR String,WORD Len);
  1178. WORD __regargs            TrimLength(STRPTR String,WORD Len);
  1179. VOID                MarkClip(BYTE SingleChar,BYTE Xerox);
  1180.  
  1181.     /* termPacket.c */
  1182.  
  1183. VOID                ClearPacketHistory(VOID);
  1184. VOID __saveds __asm        PacketKey(register __a0 struct Hook *Hook,register __a1 ULONG *Msg,register __a2 struct SGWork *Work);
  1185. BYTE                HandlePacket(VOID);
  1186. VOID                AddPacketHistory(UBYTE *Buffer);
  1187. VOID                DeletePacketWindow(BYTE WindowOnly);
  1188. BYTE                CreatePacketWindow();
  1189.  
  1190.     /* termPhone.c */
  1191.  
  1192. VOID                RemoveDialEntry(LONG Entry);
  1193. VOID                RemoveDialNode(struct PhoneNode *Node);
  1194. VOID                SortToList(struct PhoneNode *PhoneNode);
  1195. VOID                FreeDialList(VOID);
  1196. VOID                SetPrefToDefaults(struct Configuration *Config,UBYTE *PathBuffer);
  1197. VOID                UpdatePrefs(struct Configuration *Config);
  1198. struct List *            CreatePhoneList(VOID);
  1199. VOID                DeletePhoneList(struct List *PhoneList);
  1200. VOID                SortPhoneEntries(VOID);
  1201. VOID                SortTimeTable(struct TimeDateNode *Node);
  1202. VOID __regargs            FreeTimeDateNode(struct TimeDateNode *Node);
  1203. VOID                FreeTimeDateList(struct List *List);
  1204. VOID                CopyTimeDateList(struct List *From,struct List *To,BYTE SkipFirst);
  1205. VOID                AdaptTimeDateNode(struct TimeDateNode *Node);
  1206. struct TimeDateNode *        CreateTimeDateNode(BYTE Month,BYTE Day,UBYTE *Comment,LONG Count);
  1207. struct List *            BuildTimeList(struct TimeDateNode *Node);
  1208. BYTE                ResizeTimeDateNode(struct TimeDateNode *Node,LONG Count,UBYTE Time);
  1209. BYTE                DeleteTimeDateNode(struct TimeDateNode *Node,LONG Index);
  1210. VOID                RemPhoneEntry(LONG Num);
  1211. BYTE                NewPhoneEntry(VOID);
  1212. struct PhoneEntry **        CreatePhonebook(LONG Size,LONG *AllocSize,BYTE CreateEntries);
  1213. VOID                DeletePhonebook(struct PhoneEntry **,LONG Size,BYTE FreeEntries);
  1214. BYTE                SavePhonebook(UBYTE *Name);
  1215. BYTE                LoadPhonebook(UBYTE *Name);
  1216.  
  1217.     /* termRaster.c */
  1218.  
  1219. VOID                DeleteRaster(VOID);
  1220. BYTE                CreateRaster(VOID);
  1221. VOID __regargs            RasterEraseScreen(BYTE Mode);
  1222. VOID __regargs            RasterEraseLine(BYTE Mode);
  1223. VOID __regargs            RasterEraseCharacters(WORD Chars);
  1224. VOID __regargs            RasterClearLine(WORD Lines,WORD Top);
  1225. VOID __regargs            RasterInsertLine(WORD Lines,WORD Top);
  1226. VOID __regargs            RasterScrollRegion(WORD Direction,WORD RasterTop,WORD RasterBottom,WORD RasterLines);
  1227. VOID __regargs            RasterShiftChar(WORD Size);
  1228. VOID __regargs            RasterPutString(UBYTE *String,WORD Length);
  1229.  
  1230.     /* termReview.c */
  1231.  
  1232. VOID                DeleteReview(VOID);
  1233. BYTE                CreateReview(VOID);
  1234. VOID                UpdateReview(BYTE Force);
  1235. BYTE                HandleReview(VOID);
  1236.  
  1237.     /* termRexx.c */
  1238.  
  1239. BYTE                SendRexxCommand(struct RexxHost *HostPort,STRPTR CommandString,STRPTR FileExtension,STRPTR HostName);
  1240. VOID                FreeRexxCommand(struct RexxMsg *RexxMessage);
  1241. VOID                ReplyRexxCommand(struct RexxMsg *RexxMessage,LONG Primary,LONG Secondary,STRPTR Result);
  1242. STRPTR                GetToken(STRPTR String,LONG *StartChar,STRPTR AuxBuff,LONG MaxLength);
  1243.  
  1244. STRPTR                 QueryBaud(VOID);
  1245. STRPTR                 QueryDataBits(VOID);
  1246. STRPTR                 QueryParity(VOID);
  1247. STRPTR                 QueryStopBits(VOID);
  1248. STRPTR                 QueryHandshaking(VOID);
  1249. STRPTR                 QueryDuplex(VOID);
  1250. STRPTR                 QueryHighspeed(VOID);
  1251. STRPTR                 QueryBreakLength(VOID);
  1252. STRPTR                 QuerySerialDevice(VOID);
  1253. STRPTR                 QueryUnitNumber(VOID);
  1254. STRPTR                 QueryModemInit(VOID);
  1255. STRPTR                 QueryModemExit(VOID);
  1256. STRPTR                 QueryDialPrefix(VOID);
  1257. STRPTR                 QueryRedialDelay(VOID);
  1258. STRPTR                 QueryDialRetries(VOID);
  1259. STRPTR                 QueryDialTimeout(VOID);
  1260. STRPTR                 QueryConnectAutoBaud(VOID);
  1261. STRPTR                 QueryNoCarrier(VOID);
  1262. STRPTR                 QueryConnect(VOID);
  1263. STRPTR                 QueryError(VOID);
  1264. STRPTR                 QueryVoice(VOID);
  1265. STRPTR                 QueryRing(VOID);
  1266. STRPTR                 QueryBusy(VOID);
  1267. STRPTR                 QueryOkay(VOID);
  1268. STRPTR                 QueryProtocol(VOID);
  1269. STRPTR                 QueryProtocolOptions(VOID);
  1270. STRPTR                 QueryMacroFile(VOID);
  1271. STRPTR                 QueryDisplay(VOID);
  1272. STRPTR                 QueryPublicScreen(VOID);
  1273. STRPTR                 QueryShanghai(VOID);
  1274. STRPTR                 QueryCaptureFilter(VOID);
  1275. STRPTR                 QueryDSBackSpace(VOID);
  1276. STRPTR                 QueryAudBell(VOID);
  1277. STRPTR                 QueryVisBell(VOID);
  1278. STRPTR                 QueryEightyColumns(VOID);
  1279. STRPTR                 QuerySendCR(VOID);
  1280. STRPTR                 QuerySendLF(VOID);
  1281. STRPTR                 QueryColourMode(VOID);
  1282. STRPTR                 QueryEmulation(VOID);
  1283. STRPTR                 QueryFont(VOID);
  1284. STRPTR                 QueryStatus(VOID);
  1285. STRPTR                 QuerySerial(VOID);
  1286. STRPTR                 QueryStartup(VOID);
  1287. STRPTR                 QueryRequesters(VOID);
  1288. STRPTR                 QueryTimeout(VOID);
  1289. STRPTR                 QueryLine(VOID);
  1290. STRPTR                 QueryLines(VOID);
  1291. STRPTR                 QueryColumns(VOID);
  1292. STRPTR                 QueryCursor(VOID);
  1293. STRPTR                 QueryModemHangup(VOID);
  1294. STRPTR                 QueryAutoCapture(VOID);
  1295. STRPTR                 QueryLogActions(VOID);
  1296. STRPTR                 QueryBlinking(VOID);
  1297. STRPTR                 QueryCursorMode(VOID);
  1298. STRPTR                 QueryFontScale(VOID);
  1299. STRPTR                 QueryJumpScroll(VOID);
  1300. STRPTR                 QueryCharacterWrap(VOID);
  1301. STRPTR                 QueryCursorWrap(VOID);
  1302. STRPTR                 QueryNewLine(VOID);
  1303. STRPTR                 QueryInsert(VOID);
  1304. STRPTR                 QueryNumeric(VOID);
  1305. STRPTR                 QueryDefaultStore(VOID);
  1306. STRPTR                 QueryTUploadPath(VOID);
  1307. STRPTR                 QueryTDownloadPath(VOID);
  1308. STRPTR                 QueryAUploadPath(VOID);
  1309. STRPTR                 QueryADownloadPath(VOID);
  1310. STRPTR                 QueryBUploadPath(VOID);
  1311. STRPTR                 QueryBDownloadPath(VOID);
  1312. STRPTR                 QueryCapturePath(VOID);
  1313. STRPTR                 QueryLogFile(VOID);
  1314. STRPTR                 QueryEditor(VOID);
  1315. STRPTR                 QueryBeepSound(VOID);
  1316. STRPTR                 QueryCaptureState(VOID);
  1317. STRPTR                 QueryDownloads(VOID);
  1318. STRPTR                 QueryScreenAddress(VOID);
  1319. STRPTR                 QuerySpeechFile(VOID);
  1320. STRPTR                 QuerySpeechRate(VOID);
  1321. STRPTR                 QuerySpeechPitch(VOID);
  1322. STRPTR                 QuerySpeechFrequency(VOID);
  1323. STRPTR                 QuerySpeechVolume(VOID);
  1324. STRPTR                 QuerySpeechSex(VOID);
  1325. STRPTR                 QuerySpeech(VOID);
  1326.  
  1327. VOID                RexxSetBaud(STRPTR String);
  1328. VOID                RexxSetDataBits(STRPTR String);
  1329. VOID                RexxSetParity(STRPTR String);
  1330. VOID                RexxSetStopBits(STRPTR String);
  1331. VOID                RexxSetHandshaking(STRPTR String);
  1332. VOID                RexxSetDuplex(STRPTR String);
  1333. VOID                RexxSetHighSpeed(STRPTR String);
  1334. VOID                RexxSetBreakLength(STRPTR String);
  1335. VOID                RexxSetSerialDevice(STRPTR String);
  1336. VOID                RexxSetUnitNumber(STRPTR String);
  1337. VOID                RexxSetModemInit(STRPTR String);
  1338. VOID                RexxSetModemExit(STRPTR String);
  1339. VOID                RexxSetDialPrefix(STRPTR String);
  1340. VOID                RexxSetRedialDelay(STRPTR String);
  1341. VOID                RexxSetDialRetries(STRPTR String);
  1342. VOID                RexxSetDialTimeout(STRPTR String);
  1343. VOID                RexxSetConnectAutoBaud(STRPTR String);
  1344. VOID                RexxSetNoCarrier(STRPTR String);
  1345. VOID                RexxSetConnect(STRPTR String);
  1346. VOID                RexxSetError(STRPTR String);
  1347. VOID                RexxSetVoice(STRPTR String);
  1348. VOID                RexxSetRing(STRPTR String);
  1349. VOID                RexxSetBusy(STRPTR String);
  1350. VOID                RexxSetOkay(STRPTR String);
  1351. VOID                RexxSetScreenMode(STRPTR String);
  1352. VOID                RexxSetFilter(STRPTR String);
  1353. VOID                RexxSetBackspace(STRPTR String);
  1354. VOID                RexxSetCR(STRPTR String);
  1355. VOID                RexxSetLF(STRPTR String);
  1356. VOID                RexxSet80Columns(STRPTR String);
  1357. VOID                RexxSetColourMode(STRPTR String);
  1358. VOID                RexxSetEmulation(STRPTR String);
  1359. VOID                RexxSetStartup(STRPTR String);
  1360. VOID                RexxSetFont(STRPTR String);
  1361. VOID                RexxSetProtocol(STRPTR String);
  1362. VOID                RexxSetProtocolOptions(STRPTR String);
  1363. VOID                RexxSetMacro(STRPTR String);
  1364. VOID                RexxSetColour(STRPTR String);
  1365. VOID                RexxSetScreen(STRPTR String);
  1366. VOID                RexxSetBell(STRPTR String);
  1367. VOID                RexxSetMacroFile(STRPTR String);
  1368. VOID                RexxSetRequesters(STRPTR String);
  1369. VOID                RexxSetTimeout(STRPTR String);
  1370. VOID                RexxSetSerial(STRPTR String);
  1371. VOID                RexxSetModemHangup(STRPTR String);
  1372. VOID                RexxSetAutoCapture(STRPTR String);
  1373. VOID                RexxSetLogActions(STRPTR String);
  1374. VOID                RexxSetBlinking(STRPTR String);
  1375. VOID                RexxSetCursorMode(STRPTR String);
  1376. VOID                RexxSetFontScale(STRPTR String);
  1377. VOID                RexxSetJumpScroll(STRPTR String);
  1378. VOID                RexxSetCharacterWrap(STRPTR String);
  1379. VOID                RexxSetCursorWrap(STRPTR String);
  1380. VOID                RexxSetNewLine(STRPTR String);
  1381. VOID                RexxSetInsert(STRPTR String);
  1382. VOID                RexxSetNumeric(STRPTR String);
  1383. VOID                RexxSetDefaultStore(STRPTR String);
  1384. VOID                RexxSetTUploadPath(STRPTR String);
  1385. VOID                RexxSetTDownloadPath(STRPTR String);
  1386. VOID                RexxSetAUploadPath(STRPTR String);
  1387. VOID                RexxSetADownloadPath(STRPTR String);
  1388. VOID                RexxSetBUploadPath(STRPTR String);
  1389. VOID                RexxSetBDownloadPath(STRPTR String);
  1390. VOID                RexxSetCapturePath(STRPTR String);
  1391. VOID                RexxSetLogFile(STRPTR String);
  1392. VOID                RexxSetEditor(STRPTR String);
  1393. VOID                RexxSetSpeechRate(STRPTR String);
  1394. VOID                RexxSetSpeechPitch(STRPTR String);
  1395. VOID                RexxSetSpeechFrequency(STRPTR String);
  1396. VOID                RexxSetSpeechVolume(STRPTR String);
  1397. VOID                RexxSetSpeechSex(STRPTR String);
  1398. VOID                RexxSetSpeech(STRPTR String);
  1399.  
  1400. STRPTR                 RexxBreak(VOID);
  1401. STRPTR                 RexxTUpload(STRPTR String);
  1402. STRPTR                 RexxTDownload(STRPTR String);
  1403. STRPTR                 RexxBDownload(STRPTR String);
  1404. STRPTR                 RexxBUpload(STRPTR String);
  1405. STRPTR                 RexxWrite(STRPTR String,STRPTR String2);
  1406. STRPTR                 RexxResetStyles(VOID);
  1407. STRPTR                 RexxClearScreen(VOID);
  1408. STRPTR                 RexxSaveILBM(STRPTR String);
  1409. STRPTR                 RexxHangUp(VOID);
  1410. STRPTR                 RexxGetString(STRPTR String);
  1411. STRPTR                 RexxCommand(STRPTR String,STRPTR String2);
  1412. STRPTR                 RexxMessage(STRPTR String,STRPTR String2);
  1413. STRPTR                 RexxPutClip(STRPTR String,STRPTR String2);
  1414. STRPTR                 RexxGetClip(VOID);
  1415. STRPTR                 RexxDelay(STRPTR String);
  1416. STRPTR                 RexxDial(STRPTR String);
  1417. STRPTR                 RexxInput(STRPTR String);
  1418. STRPTR                 RexxPrinter(STRPTR String);
  1419. STRPTR                 RexxMacros(STRPTR String);
  1420. STRPTR                 RexxSpeech(STRPTR String);
  1421. STRPTR                 RexxConfig(STRPTR String);
  1422. STRPTR                 RexxPhone(STRPTR String);
  1423. STRPTR                 RexxCapture(STRPTR String);
  1424. STRPTR                 RexxBuffer(STRPTR String);
  1425. STRPTR                 RexxFirstDownload(VOID);
  1426. STRPTR                 RexxNextDownload(VOID);
  1427. STRPTR                 RexxLastDownload(VOID);
  1428. STRPTR                 RexxWaitString(STRPTR String);
  1429. STRPTR                 RexxToneDial(STRPTR String);
  1430. STRPTR                 RexxSimpleRequest(STRPTR String,STRPTR String2);
  1431. STRPTR                 RexxTwoGadRequest(STRPTR String,STRPTR String2);
  1432. STRPTR                 RexxFileRequest(STRPTR String,STRPTR String2);
  1433. STRPTR                 RexxSpeak(STRPTR String,STRPTR String2);
  1434.  
  1435. VOID                QuietExit(VOID);
  1436. VOID                TermExit(VOID);
  1437. VOID                Rexx2Front(VOID);
  1438. VOID                Term2Front(VOID);
  1439. VOID                Display2Front(VOID);
  1440. VOID                CloseDisplay(VOID);
  1441.  
  1442. BYTE                RexxASyncCommand(struct RexxMsg *RexxMsg,STRPTR Arg1,STRPTR Arg2);
  1443. VOID                RexxSyncCommand(struct RexxMsg *RexxMsg,STRPTR Arg1,STRPTR Arg2);
  1444.  
  1445. VOID __saveds            RexxServer(VOID);
  1446. VOID                HandleRexx(VOID);
  1447.  
  1448.     /* termSaveILBM. */
  1449.  
  1450. LONG                SaveRPort(struct RastPort *RPort,struct ViewPort *VPort,LONG LeftEdge,LONG TopEdge,LONG Width,LONG Height,LONG ParentWidth,LONG ParentHeight,LONG Cookie,STRPTR Name);
  1451.  
  1452.     /* termScale.c */
  1453.  
  1454. VOID                DeleteScale(VOID);
  1455. BYTE                CreateScale(VOID);
  1456. VOID __regargs            PrintScaled(UBYTE *Buffer,LONG Size,UBYTE Scale);
  1457.  
  1458.     /* termScroll.c */
  1459.  
  1460. VOID __regargs            ScrollLineRectFill(struct RastPort *RPort,WORD MinX,WORD MinY,WORD MaxX,WORD MaxY);
  1461. VOID __regargs            ScrollLineRaster(struct RastPort *RPort,WORD DeltaX,WORD DeltaY,WORD MinX,WORD MinY,WORD MaxX,WORD MaxY);
  1462.  
  1463. VOID __regargs            ScrollLineEraseScreen(BYTE Mode);
  1464. VOID __regargs            ScrollLineEraseLine(BYTE Mode);
  1465. VOID __regargs            ScrollLineEraseCharacters(WORD Chars);
  1466. VOID __regargs            ScrollLineShiftChar(WORD Size);
  1467. VOID __regargs            ScrollLinePutString(WORD Length);
  1468.  
  1469.     /* termSerial.c */
  1470.  
  1471. VOID                XOn(VOID);
  1472. VOID __regargs            SetFlags(struct IOExtSer *SomeRequest);
  1473. VOID __regargs            GetFlags(struct Configuration *Config,struct IOExtSer *SomeRequest);
  1474. VOID __regargs            SerialCommand(UBYTE *String);
  1475. VOID __regargs            SerWrite(APTR Buffer,LONG Size);
  1476. VOID                ClearSerial(VOID);
  1477. BYTE                DropDTR(VOID);
  1478. STRPTR                GetSerialError(LONG Error,BYTE *Reset);
  1479. VOID                DeleteSerial(VOID);
  1480. UBYTE *                CreateSerial(VOID);
  1481.  
  1482.     /* termSpeech. */
  1483.  
  1484. VOID                DeleteSpeech(VOID);
  1485. BYTE                CreateSpeech(VOID);
  1486. VOID                Say(UBYTE *String,...);
  1487. VOID                SpeechSetup(VOID);
  1488.  
  1489.     /* termStatus.c */
  1490.  
  1491. VOID                RefreshInfoWindow(VOID);
  1492. VOID                CloseInfoWindow(VOID);
  1493. VOID                OpenInfoWindow(VOID);
  1494.  
  1495.     /* termStringHook.c */
  1496.  
  1497. VOID __saveds __asm        CommandKey(register __a0 struct Hook *Hook,register __a1 ULONG *Msg,register __a2 struct SGWork *Work);
  1498.  
  1499.     /* termToneDial.c */
  1500.  
  1501. VOID                DeleteTone(VOID);
  1502. BYTE                ToneDial(UBYTE *Number);
  1503.  
  1504.     /* termTransfer.c */
  1505.  
  1506. VOID                SendTextFile(UBYTE *TheFile);
  1507. VOID                StartXprReceive(BYTE Type);
  1508. BYTE                StartXprSend(BYTE Type);
  1509. BYTE                ASCIISetup(VOID);
  1510. VOID                ASCIIShutdown(VOID);
  1511.  
  1512.     /* termXEM.c */
  1513.  
  1514. BYTE                SetEmulatorOptions(BYTE Mode);
  1515. VOID                CloseEmulator(VOID);
  1516. BYTE                OpenEmulator(UBYTE *Name);
  1517. VOID                SetupXEM_MacroKeys(struct MacroKeys *Keys);
  1518.  
  1519.     /* termXPR.c */
  1520.  
  1521. LONG __saveds __asm        xpr_fopen(register __a0 UBYTE *FileName,register __a1 UBYTE *AccessMode);
  1522. LONG __saveds __asm        xpr_fclose(register __a0 struct Buffer *File);
  1523. LONG __saveds __asm        xpr_fread(register __a0 APTR Buffer,register __d0 LONG Size,register __d1 LONG Count,register __a1 struct Buffer *File);
  1524. LONG __saveds __asm        xpr_fwrite(register __a0 APTR Buffer,register __d0 LONG Size,register __d1 LONG Count,register __a1 struct Buffer *File);
  1525. ULONG __saveds __asm        xpr_sread(register __a0 UBYTE *Buffer,register __d0 ULONG Size,register __d1 LONG Timeout);
  1526. LONG __saveds __asm        xpr_swrite(register __a0 UBYTE *Buffer,register __d0 LONG Size);
  1527. LONG __saveds            xpr_sflush(VOID);
  1528. LONG __saveds __asm        xpr_update(register __a0 struct XPR_UPDATE *UpdateInfo);
  1529. LONG __saveds            xpr_chkabort(VOID);
  1530. LONG __saveds __asm        xpr_gets(register __a0 UBYTE *Prompt,register __a1 UBYTE *Buffer);
  1531. LONG __saveds __asm        xpr_setserial(register __d0 LONG Status);
  1532. LONG __saveds __asm        xpr_ffirst(register __a0 UBYTE *Buffer,register __a1 UBYTE *Pattern);
  1533. LONG __saveds __asm        xpr_fnext(register __d0 LONG OldState,register __a0 UBYTE *Buffer,register __a1 UBYTE *Pattern);
  1534. LONG __saveds __asm        xpr_finfo(register __a0 UBYTE *FileName,register __d0 LONG InfoType);
  1535. LONG __saveds __asm        xpr_fseek(register __a0 struct Buffer *File,register __d0 LONG Offset,register __d1 LONG Origin);
  1536. ULONG __saveds __asm        xpr_options(register __d0 LONG NumOpts,register __a0 struct xpr_option **Opts);
  1537. LONG __saveds __asm        xpr_unlink(register __a0 UBYTE *FileName);
  1538. LONG __saveds            xpr_squery(VOID);
  1539. LONG __saveds __asm        xpr_getptr(register __d0 LONG InfoType);
  1540. LONG __saveds __asm        xpr_stealopts(register __a0 UBYTE *Prompt,register __a1 UBYTE *Buffer);
  1541.  
  1542. struct Gadget *            CreateAllGetsGadgets(BYTE LoadGadget,UBYTE *String,UBYTE *Prompt,struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge,struct Screen *Screen);
  1543.  
  1544. BYTE                ProtocolSetup(VOID);
  1545. VOID                SaveProtocolOpts(VOID);
  1546. BYTE                SelectProtocol(UBYTE *Name,struct Window *ParentWindow);
  1547.  
  1548.     /* termData.c */
  1549.  
  1550. extern struct ExecBase        *SysBase;
  1551. extern struct DosLibrary    *DOSBase;
  1552.  
  1553. extern struct IntuitionBase    *IntuitionBase;
  1554. extern struct GfxBase        *GfxBase;
  1555. extern struct Library        *GadToolsBase;
  1556. extern struct Library        *DiskfontBase;
  1557. extern struct Library        *UtilityBase;
  1558. extern struct Device        *TimerBase;
  1559. extern struct Library        *AslBase;
  1560. extern struct RxsLib        *RexxSysBase;
  1561. extern struct Library        *IFFParseBase;
  1562. extern struct Library        *CxBase;
  1563. extern struct Library        *LayersBase;
  1564. extern struct Library        *IconBase;
  1565. extern struct Library        *WorkbenchBase;
  1566. extern struct Library        *XEmulatorBase;
  1567.  
  1568. extern struct timerequest    *TimeRequest;
  1569. extern struct MsgPort        *TimePort;
  1570.  
  1571. extern struct IOStdReq        *ConsoleRequest;
  1572. extern struct Device        *ConsoleDevice;
  1573. extern struct KeyMap        *KeyMap;
  1574. extern BPTR             KeySegment;
  1575.  
  1576. extern struct Screen        *Screen;
  1577. extern struct Window        *Window;
  1578. extern struct Window        *StatusWindow;
  1579. extern UWORD             StatusOffset;
  1580. extern APTR             OldWindowPtr;
  1581. extern struct BitMap        *InterleavedBitMap;
  1582. extern struct Requester        *RequesterList;
  1583.  
  1584. extern struct ViewPort        *VPort;
  1585. extern struct RastPort        *RPort;
  1586. extern struct TextFont        *Topaz,*GFX,*CurrentFont,*UserTextFont;
  1587. extern WORD             UserFontHeight,UserFontWidth,UserFontBase;
  1588. extern struct TextAttr         UserFont;
  1589. extern struct TextFont        *TextFont;
  1590. extern WORD             TextFontHeight,TextFontWidth,TextFontBase;
  1591. extern struct TextAttr         TextAttr;
  1592. extern UBYTE             TextFontName[40],UserFontName[40];
  1593. extern APTR             VisualInfo;
  1594.  
  1595. extern UWORD             StandardPens[];
  1596. extern UWORD             ANSIPens[];
  1597. extern UWORD             EGAPens[];
  1598. extern UWORD             AtomicColours[16];
  1599. extern UWORD             EGAColours[16];
  1600. extern UWORD             ANSIColours[16];
  1601. extern UWORD             DefaultColours[16];
  1602. extern UWORD             BlinkColours[16];
  1603. extern UWORD             StandardColours[16];
  1604.  
  1605. extern struct Process        *ThisProcess;
  1606. extern struct Process        *RexxProcess,
  1607.                 *RexxBackgroundProcess;
  1608. extern struct MsgPort        *TermRexxPort;
  1609. extern struct Process        *StatusProcess;
  1610. extern struct Process        *BufferProcess;
  1611. extern struct WBStartup        *WBenchMsg;
  1612. extern BYTE             ClipBit,
  1613.                  CheckBit;
  1614.  
  1615. extern struct InputEvent    *FakeInputEvent;
  1616.  
  1617. extern struct IOExtSer        *ReadRequest;
  1618. extern struct IOExtSer        *WriteRequest;
  1619. extern struct MsgPort        *ReadPort;
  1620. extern APTR             ReadBuffer,
  1621.                  HostReadBuffer;
  1622. extern UBYTE            *SerialMessage;
  1623.  
  1624. extern struct Hotkeys         Hotkeys;
  1625. extern struct NewBroker         NewTermBroker;
  1626.  
  1627. extern struct TextAttr         DefaultFont;
  1628. extern struct TextAttr         GFXFont;
  1629.  
  1630. extern UBYTE             AnyChannel[4];
  1631.  
  1632. extern UBYTE __chip         SineWave[8];
  1633.  
  1634. extern struct IOAudio        *AudioBlock;
  1635.  
  1636. extern UWORD __chip         Stopwatch[(1 + 16 + 1) * 2];
  1637. extern UWORD __chip         MarkerData[(1 + 15 + 1) * 2];
  1638.  
  1639. extern BYTE             ValidTab[256];
  1640. extern UBYTE             IBMConversion[256];
  1641. extern BYTE             GfxTable[256];
  1642.  
  1643. extern struct SpecialKey     SpecialKeys[13];
  1644. extern JUMP            *SpecialTable;
  1645.  
  1646. extern BYTE             AbortMap[256];
  1647. extern JUMP            *AbortTable;
  1648.  
  1649. extern UBYTE             SharedBuffer[512];
  1650.  
  1651. extern struct NewMenu         TermMenu[];
  1652. extern struct Menu        *Menu;
  1653.  
  1654. extern struct TermPort        *TermPort;
  1655.  
  1656. extern struct Configuration     Config;
  1657. extern struct Configuration     PrivateConfig;
  1658. extern struct SpeechConfig     SpeechConfig;
  1659. extern BYTE             English;
  1660. extern BYTE             Status;
  1661. extern BYTE             Online,WasOnline;
  1662. extern struct Configuration    *BackupConfig;
  1663. extern UWORD             PublicModes;
  1664.  
  1665. extern UBYTE             LastConfig[256];
  1666. extern UBYTE             DefaultPubScreen[MAXPUBSCREENNAME];
  1667.  
  1668. extern ULONG             ModeID[16];
  1669.  
  1670. extern struct Buffer        *FileCapture;
  1671. extern BPTR             PrinterCapture;
  1672. extern UBYTE             CaptureName[256];
  1673. extern BYTE             StandardPrinterCapture,
  1674.                  ControllerActive;
  1675.  
  1676. extern UBYTE            **BufferLines;
  1677. extern LONG             Lines;
  1678. extern struct SignalSemaphore    *BufferSemaphore;
  1679. extern LONG             MaxLines;
  1680. extern LONG             BufferSpace;
  1681. extern BYTE             BufferClosed;
  1682. extern BYTE             BufferFrozen;
  1683.  
  1684. extern struct PhoneEntry    **Phonebook;
  1685. extern LONG             PhoneSize;
  1686. extern LONG             NumPhoneEntries;
  1687. extern UBYTE             PhonePassword[256];
  1688. extern BYTE             PhonePasswordUsed;
  1689.  
  1690. extern UBYTE             LastPhone[256];
  1691. extern UBYTE             LastKeys[256];
  1692. extern UBYTE             LastMacros[256];
  1693. extern UBYTE             LastSpeech[256];
  1694.  
  1695. extern struct MacroKeys        *MacroKeys;
  1696.  
  1697. extern UBYTE            *StripBuffer;
  1698.  
  1699. extern UWORD             LastLine,LastColumn,LastPixel;
  1700. extern BYTE             Charset,Attributes,FgPen,BgPen;
  1701. extern WORD             CursorX,CursorY,Top,Bottom;
  1702. extern BYTE             UseRegion,RegionSet,InSequence,Quiet,Blocking;
  1703. extern BYTE             TabStops[1024];
  1704. extern BYTE             CharMode[2];
  1705.  
  1706. extern BYTE             ResetDisplay,DisplayReopened;
  1707.  
  1708. extern UBYTE            *AttentionBuffers[8],AttentionCount[8],FlowCount;
  1709. extern BYTE             BaudPending,FullCheck;
  1710. extern UBYTE             BaudBuffer[80],BaudCount;
  1711.  
  1712. extern struct FlowInfo         FlowInfo;
  1713.  
  1714. extern LONG             FileCount,FileCountMax;
  1715. extern struct WBArg        *FileArg;
  1716. extern BYTE             MultipleFiles,FileMatch,BinaryTransfer;
  1717. extern struct AnchorPath    *FileAnchor;
  1718. extern LONG             TransferBits;
  1719.  
  1720. extern struct Window        *TransferWindow;
  1721. extern struct Menu        *TransferMenu;
  1722. extern struct Gadget        *TransferGadgetArray[GAD_TRANSFER_SKIP + 1];
  1723. extern struct List         TransferInfoList;
  1724. extern struct TextBox        *TransferBoxArray[BOX_TRANSFER_RIGHT2 + 1],
  1725.                 *TransferBoxList;
  1726.  
  1727. extern UBYTE            *DownloadPath;
  1728. extern BYTE             Uploading;
  1729. extern BYTE             DidTransfer;
  1730.  
  1731. extern struct Library        *XProtocolBase;
  1732. extern struct XPR_IO        *XprIO;
  1733.  
  1734. extern UBYTE             ProtocolOptsBuffer[256];
  1735. extern BYTE             NewLibrary,NewOptions;
  1736. extern UBYTE             LastXprLibrary[256];
  1737. extern UBYTE             ConvNumber[30],ConvNumber10[30];
  1738. extern BYTE             UsesZModem,SendAbort,TransferAborted;
  1739.  
  1740. extern UBYTE             ZModemCancel[20];
  1741.  
  1742. extern LONG             CurrentPay;
  1743. extern LONG             PayPerUnit[2];
  1744. extern LONG             SecPerUnit[2];
  1745. extern LONG             WhichUnit;
  1746. extern UBYTE             Password[20];
  1747. extern UBYTE             UserName[20];
  1748. extern struct PhoneEntry    *ChosenEntry;
  1749. extern BYTE             ChosenInUse;
  1750.  
  1751. extern UBYTE             WindowName[256];
  1752.  
  1753. extern BYTE             WeAreBlocking;
  1754.  
  1755. extern struct List        *DialList;
  1756.  
  1757. extern BYTE             SendStartup;
  1758.  
  1759. extern BYTE             ReleaseSerial;
  1760. extern BYTE             ResetSerial;
  1761. extern BYTE             BatchMode;
  1762. extern BYTE             SerialSet;
  1763. extern BYTE             MainTerminated;
  1764.  
  1765. extern UBYTE             LastDownload[256];
  1766. extern UBYTE             LastUpload[256];
  1767.  
  1768. extern struct Hook         CommandHook;
  1769. extern BYTE             DontActivate;
  1770. extern UBYTE             CommandWorkBuffer[256];
  1771. extern struct StringExtend     CommandExtend;
  1772. extern struct Window        *CommandWindow;
  1773. extern struct Gadget        *CommandGadget;
  1774. extern struct Gadget        *ActiveGadget;
  1775.  
  1776. extern struct Process        *ClipProcess;
  1777. extern struct MsgPort        *ClipPort;
  1778. extern BYTE             ClipInput,ClipXerox;
  1779.  
  1780. extern struct Window        *PacketWindow;
  1781. extern struct Gadget        *PacketGadgetArray[2];
  1782. extern struct Menu        *PacketMenu;
  1783. extern struct Gadget        *PacketGadgetList;
  1784. extern struct List         PacketHistoryList;
  1785.  
  1786. extern struct NewMenu         GetsMenu[];
  1787.  
  1788. extern BYTE             Initializing,LoadColours;
  1789.  
  1790. extern UBYTE            *Raster,*RasterAttr;
  1791. extern WORD             RasterWidth,RasterHeight;
  1792. extern BYTE             Marking;
  1793.  
  1794. extern struct SignalSemaphore    *DownloadSemaphore;
  1795. extern struct List         DownloadList;
  1796. extern LONG             DownloadLineCount;
  1797. extern struct Node        *DownloadNode;
  1798.  
  1799. extern struct List         SequenceList;
  1800. extern LONG             SequenceCount;
  1801.  
  1802. extern ULONG             VersionProps[2];
  1803.  
  1804. extern BYTE             ExitQuietly;
  1805.  
  1806. extern struct Window        *RexxWindow;
  1807.  
  1808. extern struct Window        *TopWindow;
  1809. extern struct Window        *WindowStack[5];
  1810. extern WORD             WindowStackPtr;
  1811.  
  1812. extern LONG             TermID;
  1813. extern UBYTE             TermIDString[];
  1814.  
  1815. extern struct List         FastMacroList;
  1816. extern LONG             FastMacroCount;
  1817. extern UBYTE             LastFastMacros[256];
  1818. extern struct Window        *FastWindow;
  1819. extern struct Gadget        *FastGadget;
  1820.  
  1821. extern struct List         DoubleBufferList;
  1822. extern struct SignalSemaphore     DoubleBufferSemaphore;
  1823.  
  1824. extern struct XEM_IO        *XEM_IO;
  1825. extern ULONG             XEM_Signal;
  1826. extern struct XEmulatorHostData     XEM_HostData;
  1827. extern UBYTE            *OptionTitle;
  1828. extern struct List         XEM_MacroList;
  1829. extern struct XEmulatorMacroKey    *XEM_MacroKeys;
  1830. extern UBYTE             EmulationName[40];
  1831.  
  1832. extern struct List         EmptyList;
  1833.  
  1834. extern UBYTE             ScrollLineFirst,ScrollLineLast,
  1835.                  ScrollLineCount;
  1836. extern struct ScrollLineInfo    *ScrollLines;
  1837.  
  1838. extern struct MsgPort        *ReviewPort;
  1839. extern struct Window        *ReviewWindow;
  1840.  
  1841. extern ULONG             BytesIn,
  1842.                  BytesOut;
  1843. extern struct DateStamp         SessionStart;
  1844. extern struct Window        *InfoWindow;
  1845.  
  1846. extern LONG             InterWidth,
  1847.                  InterHeight;
  1848.