home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d114 / vt100.lha / Vt100 / vt100.h < prev    next >
C/C++ Source or Header  |  1987-11-22  |  8KB  |  238 lines

  1. /*********************************************************************
  2.  *  a terminal program that has ascii and xmodem transfer capability
  3.  *
  4.  *    v2.7 870825 ACS - See README.
  5.  *    v2.6 870227 DBW - bug fixes for all the stuff in v2.5
  6.  *    v2.5 870214 DBW - more additions (see readme file)
  7.  *    v2.4 861214 DBW - lots of fixes/additions (see readme file)
  8.  *    v2.3 861101 DBW - minor bug fixes
  9.  *    v2.2 861012 DBW - more of the same
  10.  *    v2.1 860915 DBW - new features (see README)
  11.  *         860823 DBW - Integrated and rewrote lots of code
  12.  *    v2.0 860809 DBW    - Major release.. LOTS of changes
  13.  *    v1.1 860720 DBW    - Switches, 80 cols, colors, bug fixes
  14.  *    v1.0 860712 DBW    - First version released
  15.  *
  16.  *  use esc to abort xmodem transfer
  17.  *
  18.  *  written by Michael Mounier
  19.  *  new version by Dave Wecker 860621
  20.  ********************************************************************/
  21.  
  22. /********* major version (used for title of terminal window) *********/
  23. #define    VERSION    "VT100 (V2.7 ACS 870825) Terminal Window"
  24.  
  25. /*********** ########  define the compiler type here ######## ********/
  26. #define    LATTICE    0
  27. #define MANX    1
  28.  
  29. /*  compiler directives to fetch the necessary header files */
  30. #include <exec/types.h>
  31. #include <exec/exec.h>
  32. #include <intuition/intuition.h>
  33. #include <intuition/intuitionbase.h>
  34. #include <graphics/gfxbase.h>
  35. #include <graphics/gfx.h>
  36. #include <graphics/text.h>
  37. #include <graphics/regions.h>
  38. #include <graphics/copper.h>
  39. #include <graphics/gels.h>
  40. #include <devices/serial.h>
  41. #include <devices/keymap.h>
  42. #include <devices/inputevent.h>
  43. #include <devices/audio.h>
  44. #include <hardware/blit.h>
  45.  
  46.             /* for Lattice you may have to change these with: */
  47. #include <stdio.h>    /* #include <lattice/stdio.h> and */
  48. #include <ctype.h>    /* #include <lattice/ctype.h>     */
  49.  
  50. #include <libraries/dos.h>
  51. #include <libraries/dosextens.h>
  52. #include <devices/timer.h>
  53.  
  54. #if MANX
  55. #include <functions.h>
  56. #undef NULL
  57. #define   NULL   ((void *)0)
  58. #endif
  59.  
  60. #define INTUITION_REV 1L
  61. #define GRAPHICS_REV  1L
  62.  
  63. /* things for xmodem send and recieve */
  64. #define GOODREAD    0
  65. #define TIMEOUT        1
  66. #define USERABORT   2
  67. #define SECSIZ   0x80
  68. #define TTIME_SHORT 5        /* number of seconds for short timeout */
  69. #define TTIME_LONG  50         /* number of seconds for long  timeout */
  70. #define TTIME_KERMIT 10         /* number of seconds for KERMIT timeout*/
  71. #define BufSize  0x200       /* Text buffer for XMODEM */
  72. #define ERRORMAX 10          /* Max errors before abort */
  73. #define RETRYMAX 10          /* Maximum retrys before abort */
  74. #define SOH      1           /* Start of sector char */
  75. #define EOT      4           /* end of transmission char */
  76. #define ACK      6           /* acknowledge sector transmission */
  77. #define NAK      21          /* error in transmission detected */
  78.  
  79. #define FILEMAX 8    /* number of file menu items */
  80. #define COMMAX 3     /* number of communication sub menus */
  81. #define RSMAX 5      /* speed menu items */
  82. #define PARMAX 5     /* parity items */
  83. #define XFMAX 3      /* transfer mode items */
  84. #define SCRIPTMAX 2  /* script menu items */
  85. #define UTILMAX 9    /* utility menu */
  86. #define MAXMENU 4    /* total number of menu entries */
  87.  
  88. #define MAXGADSTR 80    /* Max size of prompts and inputs */
  89.  
  90. #define FSF_REVERSE 256    /* fake font style to flag INVERSVID mode */
  91.  
  92. /* things for script support */
  93.  
  94. #define GOTOLABEL   1
  95. #define    NEXTCOMMAND 0
  96. #define ONCOMMAND   2
  97.  
  98. #define    WAIT_TIMER  2
  99. #define WAIT_STRING 1
  100.  
  101. /* things for 'beep' support */
  102. #define BEEPSIZE    10L
  103. #define BEEPFREQ    1000L
  104. #define COLORCLOCK  3579545L
  105.  
  106. extern struct    MsgPort *CreatePort();
  107. extern char    *malloc(),*strcpy(),*fgets();
  108. extern long    ftell();
  109.  
  110. extern int    multi;            /* flags multi file transfers */
  111. extern int    server;
  112. extern char    bufr[BufSize];
  113. extern int    fd, timeout, ttime;
  114. extern long    bytes_xferred;
  115. extern char    MyDir[60];
  116. #ifdef BUGFIXES
  117. extern BPTR    StartLock;
  118. #else
  119. extern struct    FileLock *MyDirLock;
  120. extern struct    FileLock *StartLock;
  121. #endif
  122. extern struct    IntuitionBase *IntuitionBase;
  123. extern struct    GfxBase *GfxBase;
  124. extern struct    TextAttr myattr;
  125. extern struct    TextFont *myfont;
  126. extern struct    NewScreen NewScreen;
  127. extern struct    NewWindow NewWindow;
  128. extern struct    NewWindow NewReqWindow;
  129. extern struct    Screen *myscreen;
  130. extern struct    Window *mywindow;
  131. extern struct    Window *reqwindow;
  132. extern struct    ViewPort *myviewport;
  133. extern struct    RastPort *myrastport;
  134. extern struct    IntuiMessage *NewMessage;
  135. extern struct    Preferences  *Prefs;
  136. extern char    InpBuf[80],UndoBuf[80],Prompt[80];
  137. extern struct    StringInfo mystrinfo;
  138. extern struct    Gadget     mystrgad;
  139. extern struct    IntuiText  donetxt;
  140. extern struct    Gadget       mydonegad;
  141. extern struct    IntuiText  mystrtxt;
  142. extern struct    Requester  myrequest;
  143. extern int    numreqs;
  144. extern int    reqwinup;
  145. extern struct    MenuItem FileItem[FILEMAX];
  146. extern struct    IntuiText FileText[FILEMAX];
  147. extern struct    MenuItem CommItem[COMMAX];
  148. extern struct    IntuiText CommText[COMMAX];
  149. extern struct    MenuItem RSItem[RSMAX];
  150. extern struct    IntuiText RSText[RSMAX];
  151. extern struct    MenuItem ParItem[PARMAX];
  152. extern struct    IntuiText ParText[PARMAX];
  153. extern struct    MenuItem XFItem[XFMAX];
  154. extern struct    IntuiText XFText[XFMAX];
  155. extern struct    MenuItem ScriptItem[SCRIPTMAX];
  156. extern struct    IntuiText ScriptText[SCRIPTMAX];
  157. extern struct    MenuItem UtilItem[UTILMAX];
  158. extern struct    IntuiText UtilText[UTILMAX];
  159. extern struct    Menu menu[MAXMENU];
  160. extern struct    timerequest Timer, Script_Timer;
  161. extern struct    MsgPort *Timer_Port, *Script_Timer_Port;
  162. extern struct    IOExtSer *Read_Request;
  163. extern char    *rs_in;
  164. extern struct    IOExtSer *Write_Request;
  165. extern char    rs_out[2];
  166. extern int    x,y,curmode;
  167. extern int    MINX,MAXX,MINY,MAXY,top,bot,savx,savy;
  168. extern int    savmode,nlmode,alt,savalt,a[2],sa[2];
  169. extern int    inesc,inctrl,private,badseq,maxcol;
  170. extern struct    IOAudio Audio_Request;
  171. extern struct    MsgPort *Audio_Port;
  172. extern UBYTE    *BeepWave;
  173. extern UBYTE    Audio_AllocMap[4];
  174. extern int    p_baud,p_screen,p_interlace,p_depth,p_buffer,p_wbcolors;
  175. extern int    p_foreground,p_background,p_bold,p_cursor,p_lines,p_mode;
  176. extern int    p_parity,p_volume,p_wrap,p_echo,p_keyapp,p_curapp,p_bs_del;
  177. extern int    p_convert;
  178. extern char    p_keyscript;
  179. extern long    p_break;
  180. extern char    *p_f[10],*p_F[10];
  181. extern int    script_on;
  182. extern int    script_wait;
  183. extern int    doing_init;
  184.  
  185. /* vt100.c */
  186. extern int  do_send(),do_capture(),cleanup();
  187. extern void setserpar(), setserbaud(), setparams(), redoutil(), redocomm(),
  188.         handle_menupick();
  189.  
  190. /* init.c */
  191. extern void InitDevs(),InitFileItems(),InitCommItems(),
  192.      InitScriptItems(),InitUtilItems(),InitMenu();
  193. extern char *InitDefaults();
  194.  
  195. /* window.c */
  196. extern    void    swap_bs_del(),req(),emits(),emit(),emitbatch(),cursorflip();
  197. extern    int    toasc();
  198. extern void    ScrollInfoMsg(), InfoMsgNoScroll(), InfoMsg1Line(),
  199.         InfoMsg2Line();
  200.  
  201. /* xmodem.c */
  202. extern    void sendchar(),sendstring(),sendbreak(),multi_xfer(),
  203.     No_XON(),Do_XON();
  204. extern    int  readchar(),XMODEM_Read_File(),XMODEM_Send_File();
  205.  
  206. /* remote.c */
  207. extern    void doremote(),doindex(),doctrl(),doesc(),doerase();
  208.  
  209. /* kermit.c */
  210. extern    int    doksend(), dokreceive(), saybye();
  211. extern    void    encode(), decode(), rpar(), spar();
  212.  
  213. /* script.c */
  214. extern int    script_start(), chk_script(), exit_script(),
  215.         do_script_cmd();
  216. extern char    *next_wrd(), *tostring();
  217.  
  218.         /* init commands */
  219. extern void    cmd_bkg(), cmd_bold(), cmd_buf(), cmd_cursor(), cmd_depth(),
  220.         cmd_fore(), cmd_inter(), cmd_lines(), cmd_screen(),
  221.         cmd_volume(), cmd_wb(), cmd_null(),
  222.  
  223.         /* script commands */
  224.         cmd_as(), cmd_beep(), cmd_cap(), cmd_cd(), cmd_delay(),
  225.         cmd_goto(), cmd_goto(), cmd_kb(), cmd_kg(), cmd_kr(),
  226.         cmd_ks(), cmd_on(), cmd_sb(), cmd_send(), cmd_wait(),
  227.         cmd_xr(), cmd_xs(),
  228.  
  229.         /* init and script commands */
  230.         cmd_appcur(), cmd_baud(), cmd_bt(), cmd_conv(), cmd_echo(),
  231.         cmd_exit(), cmd_fnc(), cmd_key(), cmd_mode(), cmd_numkey(),
  232.         cmd_parity(), cmd_swap(), cmd_wrap();
  233.  
  234. /* expand.c */
  235. extern char **expand();
  236. extern int  set_dir(), free_expand();
  237.  
  238.