home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
300-399
/
ff330.lzh
/
Vt100
/
Src.lzh
/
Src
/
vt100.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-03-01
|
12KB
|
353 lines
#define HRCSID "$RCSfile: vt100.h,v $ $Revision: 1.4 $"
/*********************************************************************
* a terminal program that has ascii and xmodem transfer capability
* :ts=8
*
* $Log: vt100.h,v $
* Revision 1.4 90/02/12 20:23:52 acs
* 1) Update date stamp in VERSION for the release of 2.9A.
* 2) define HRCSID instead of declaring it static char.
*
* Revision 1.3 89/12/19 20:39:14 acs
* Updated version and date stamp.
*
* Revision 1.2 89/11/06 20:58:52 acs
* 1) Support for new STRIP command and menu option.
* 2) New window title (date change).
* 3) Add RCS id and change log.
*
* v2.9 ACS - See change summary.
* v2.8a 880331 ACS - Update title to 2.8A.
* v2.7 870825 ACS - See README.
* v2.6 870227 DBW - bug fixes for all the stuff in v2.5
* v2.5 870214 DBW - more additions (see readme file)
* v2.4 861214 DBW - lots of fixes/additions (see readme file)
* v2.3 861101 DBW - minor bug fixes
* v2.2 861012 DBW - more of the same
* v2.1 860915 DBW - new features (see README)
* 860823 DBW - Integrated and rewrote lots of code
* v2.0 860809 DBW - Major release.. LOTS of changes
* v1.1 860720 DBW - Switches, 80 cols, colors, bug fixes
* v1.0 860712 DBW - First version released
*
* use esc to abort xmodem transfer
*
* written by Michael Mounier
* new version by Dave Wecker 860621
********************************************************************/
/********* major version (used for title of terminal window) *********/
#define VERSION "VT100 (V2.9A ACS 900212) Terminal Window"
/*********** ######## define the compiler type here ######## ********/
#define LATTICE 0
#define MANX 1
/* compiler directives to fetch the necessary header files */
#include <exec/types.h>
#include <exec/exec.h>
#include <intuition/intuition.h>
#include <intuition/intuitionbase.h>
#include <graphics/gfxbase.h>
#include <graphics/gfx.h>
#include <graphics/text.h>
#include <graphics/regions.h>
#include <graphics/copper.h>
#include <graphics/gels.h>
#include <devices/serial.h>
#include <devices/keymap.h>
#include <devices/inputevent.h>
#include <devices/audio.h>
#include <hardware/blit.h>
/* for Lattice you may have to change these with: */
#include <stdio.h> /* #include <lattice/stdio.h> and */
#include <ctype.h> /* #include <lattice/ctype.h> */
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <devices/timer.h>
#if LATTICE
#include <stdlib.h>
#include <string.h>
#include <proto/exec.h>
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <proto/dos.h>
#include <proto/timer.h>
#endif
#if AREXX
#include <rexx/rxslib.h>
#include <rexx/storage.h>
#endif /* AREXX */
#if MANX
#include <functions.h>
#undef NULL
#define NULL ((void *)0)
#endif /* MANX */
#define INTUITION_REV 1L
#define GRAPHICS_REV 1L
/* things for xmodem send and recieve */
#define GOODREAD 0
#define TIMEOUT 1
#define USERABORT 2
#define SECSIZ 0x80
#define TTIME_SHORT 5 /* number of seconds for short timeout */
#define TTIME_LONG 50 /* number of seconds for long timeout */
#define TTIME_KERMIT 10 /* number of seconds for KERMIT timeout*/
#define MAXLONGPKS 1000 /* Maximum long msgpkt size */
#define BufSize 0x1080 /* Text buffer for XMODEM */
#define ERRORMAX 10 /* Max errors before abort */
#define RETRYMAX 10 /* Maximum retrys before abort */
#define SOH 1 /* Start of sector char */
#define EOT 4 /* end of transmission char */
#define ACK 6 /* acknowledge sector transmission */
#define NAK 21 /* error in transmission detected */
#define FILEMAX 6 /* number of file menu items */
#define MODEMAX 4 /* number of mode menu items */
#define EXTMAX 10 /* number of external xfer pgms allowed */
#define COMMAX 4 /* number of communication sub menus */
#define RSMAX 5 /* speed menu items */
#define PARMAX 7 /* parity items */
#define XFMAX 4 /* transfer mode items */
#define SCRIPTMAX 3 /* script menu items */
#define UTILMAX 12 /* utility menu */
#define MAXMENU 4 /* total number of menu entries */
#define MAXGADSTR 80 /* Max size of prompts and inputs */
#define FSF_REVERSE 256 /* fake font style to flag INVERSVID mode */
#define FONTNAMESIZE 40
#define FONTSUFFIX ".font"
#define MAXFONTVARLEN 34 /* 40 minus sizeof(".font") */
extern char myfontname[];
#define SERNAMESIZE 80
extern char mysername[];
/* Structure to hold the external xfer program names and command strings */
struct ExternalXfer {
char *dispname; /* Display name - shown on menu */
char *downname; /* downcased name for cmd_short() */
char *send; /* Command string to use for send */
char *receive; /* Command string to use for receive */
char cmdkey; /* Command key equivalent */
};
extern struct ExternalXfer *(ExtXfer[EXTMAX]); /* Defined in vt100.c */
extern int NumExts; /* Number of ExtXfers */
/* things for script support */
#define GOTOLABEL 1
#define NEXTCOMMAND 0
#define ONCOMMAND 2
#define WAIT_TIMER 2
#define WAIT_STRING 1
/* exe_cmd return values */
#define CMDOK 0 /* Command OK */
#define CMDWARN 5 /* Command issued WARNING msg */
#define CMDNF 10 /* Command Not Found */
#define CMDBS 11 /* Bad State (e.g. INIT only) */
#define CMDFAIL 13 /* Command failed */
/* things for 'beep' support */
#define BEEPSIZE 10L
#define BEEPFREQ 1000L
#define COLORCLOCK 3579545L
/* things for MENUPICK support */
#define REDOFILE 1
#define REDOCOMM 2
#define REDOUTIL 4
extern struct MsgPort *CreatePort();
extern int CmdFromRexx; /* Command came from the AREXX port */
#if AREXX
extern struct RexxMsg *CreateRexxMsg();
extern STRPTR *CreateArgstring();
extern struct MsgPort *FromRexxPort; /* Port we receive AREXX msgs on */
#define HOSTNAMEROOT "VT100-"
/* Indices into rexxerrmsgs[] in init.c */
#define NORXLIB 1 /* No AREXX library */
#define NORXPORT 2 /* No AREXX port */
#define NORXMSG 3 /* Can't create AREXX message */
#define NOHOSTMEM 4 /* Can't get memory for HostName*/
#define HAVEVT100PORT 5 /* VT100 port already exists */
#define NOPORTMEM 6 /* Can't get mem for a port */
extern char *rexxerrmsgs[]; /* in init.c */
extern int makerexxport(); /* in init.c */
extern char *HostName; /* Our host port name for AREXX */
extern char *ForwardPortName; /* Port to which to forward data */
extern int forwarding; /* Flag to indicate if we should fwd */
#endif /* AREXX */
#if MANX
extern char *malloc(),*strcpy(),*fgets();
#endif /* MANX */
extern long ftell();
extern int multi; /* flags multi file transfers */
extern int server;
extern char *bufr; /* Buffer that XMODEM uses */
extern int fd, timeout, ttime;
extern long bytes_xferred;
extern char MyDir[60];
extern BPTR StartLock;
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
extern struct Library *DiskfontBase;
#if AREXX
extern struct RxsLib *RexxSysBase;
#endif /* AREXX */
extern struct TextAttr myattr;
extern struct TextFont *myfont;
extern struct NewScreen NewScreen;
extern struct NewWindow NewWindow;
extern struct NewWindow NewReqWindow;
extern struct Screen *myscreen;
extern struct Window *mywindow;
extern struct Window *reqwindow;
extern struct ViewPort *myviewport;
extern struct RastPort *myrastport;
extern struct IntuiMessage *NewMessage;
extern struct Preferences *Prefs;
extern char InpBuf[80],UndoBuf[80],Prompt[80];
extern struct StringInfo mystrinfo;
extern struct Gadget mystrgad;
extern struct IntuiText donetxt;
extern struct Gadget mydonegad;
extern struct IntuiText mystrtxt;
extern struct Requester myrequest;
extern int numreqs;
extern int reqwinup;
extern struct MenuItem FileItem[FILEMAX];
extern struct IntuiText FileText[FILEMAX];
extern struct MenuItem ModeItem[MODEMAX+EXTMAX];
extern struct IntuiText ModeText[MODEMAX+EXTMAX];
extern struct MenuItem CommItem[COMMAX];
extern struct IntuiText CommText[COMMAX];
extern struct MenuItem RSItem[RSMAX];
extern struct IntuiText RSText[RSMAX];
extern struct MenuItem ParItem[PARMAX];
extern struct IntuiText ParText[PARMAX];
extern struct MenuItem XFItem[XFMAX];
extern struct IntuiText XFText[XFMAX];
extern struct MenuItem ScriptItem[SCRIPTMAX];
extern struct IntuiText ScriptText[SCRIPTMAX];
extern struct MenuItem UtilItem[UTILMAX];
extern struct IntuiText UtilText[UTILMAX];
extern struct Menu menu[MAXMENU];
extern struct timerequest Timer, Script_Timer;
extern struct MsgPort *Timer_Port, *Script_Timer_Port;
extern struct IOExtSer *Read_Request;
extern char *rs_in;
extern struct IOExtSer *Write_Request;
extern char rs_out[2];
extern int x,y,curmode;
extern int Xsize, MINX,MAXX,Ysize,MINY,MAXY,BaseLine,top,bot,savx,savy;
extern int savmode,nlmode,alt,savalt,a[2],sa[2];
extern int inesc,inctrl,private,badseq,maxcol;
extern struct IOAudio Audio_Request;
extern struct MsgPort *Audio_Port;
extern UBYTE *BeepWave;
extern UBYTE Audio_AllocMap[4];
extern int p_baud,p_screen,p_interlace,p_depth,p_buffer,p_wbcolors;
extern int p_foreground,p_background,p_bold,p_cursor,p_lines,p_mode;
extern int p_parity,p_volume,p_wrap,p_echo,p_keyapp,p_curapp,p_bs_del;
extern int p_xbeep, p_xproto, p_convert,p_autochop, p_kmaxpack, p_unit;
extern int p_fontsize, p_shared, p_mouse_up, p_mouse_down, p_strip;
extern char p_keyscript;
extern long p_break;
extern char *p_font, *p_device, *p_f[11],*p_F[10];
extern int script_on;
extern int script_wait;
extern int doing_init;
/* vt100.c */
extern int do_send(),do_capture();
extern void cleanup();
extern ULONG handle_menupick();
extern void setserpar(), setserbaud(), setparams(), redoutil(), redofile(),
redocomm();
/* init.c */
extern void InitDevs(),InitFileItems(),InitCommItems(),
InitScriptItems(),InitUtilItems(),InitMenu();
extern char *InitDefaults();
extern int maxrows; /* number of scan lines available */
/* window.c */
extern void swap_bs_del(),req(),emits(),emit(),emitbatch(),cursorflip();
extern int toasc();
extern void ScrollInfoMsg(), InfoMsgNoScroll(), InfoMsg1Line(),
InfoMsg2Line();
/* xmodem.c */
extern void sendchar(),sendstring(),sendbreak(),multi_xfer(),
No_XON(),Do_XON();
extern int readchar(),XMODEM_Read_File(),XMODEM_Send_File();
/* remote.c */
extern void doremote(),doindex(),doctrl(),doesc(),doerase();
/* kermit.c */
extern int doksend(), dokreceive();
extern void encode(), decode(), rpar(), spar(), saybye();
/* script.c */
extern int script_start(), chk_script(),
do_script_cmd();
extern char *next_wrd(), *tostring();
extern int exit_script(), do_ext();
/* init commands */
extern int cmd_bkg(), cmd_bold(), cmd_buf(), cmd_cursor(), cmd_depth(),
cmd_device(), cmd_display(), cmd_fore(), cmd_font(),
cmd_fonts(), cmd_inter(), cmd_lines(), cmd_screen(),
cmd_unit(), cmd_volume(), cmd_wb(), cmd_null(),
/* script commands */
cmd_as(), cmd_beep(), cmd_cap(), cmd_cd(), cmd_delay(),
cmd_goto(), cmd_goto(), cmd_kb(), cmd_kg(), cmd_kr(),
cmd_ks(), cmd_msg(), cmd_on(), cmd_recf(), cmd_sb(),
cmd_send(), cmd_sendf(), cmd_wait(), cmd_xr(), cmd_xs(),
/* init and script commands */
cmd_ac(), cmd_appcur(), cmd_baud(), cmd_bt(), cmd_conv(),
cmd_echo(), cmd_exit(), cmd_ext(), cmd_fnc(), cmd_key(),
cmd_kmode(), cmd_kmaxpk(), cmd_mode(), cmd_mouse(),
cmd_numkey(), cmd_parity(), cmd_strip(), cmd_share(),
cmd_short(), cmd_swap(), cmd_wrap(), cmd_xbeep(),
cmd_xproto();
/* rexx-only commands */
extern int cmd_rx(), cmd_fwd();
/* expand.c */
extern char **expand();
extern void set_dir(), free_expand();