
/*
 * DEFS.H
 *
 *	(C)Copyright 1987 by Matthew Dillon, All Rights Reserved
 *
 *	ARexx support added 03/19/88  -  Kim DeVaughn
 *
 */

#define AREXX 1

#include <exec/types.h>
#include <exec/io.h>
#include <devices/keymap.h>
#include <devices/console.h>
#include <exec/memory.h>
#include <intuition/intuition.h>
#include <workbench/icon.h>
#include <workbench/startup.h>
#include <workbench/workbench.h>
#include <local/typedefs.h>
#include <local/xmisc.h>

#if AREXX
#include "rexx/storage.h"
#include "rexx/rxslib.h"
#include "rexx/rexxio.h"
#include "rexx/errors.h"
#endif


#define MAXTOGGLE   256
#define QMOVE	    (0x6B|0x80)

#define COLT(n)  (XTbase + (n) * Xsize)
#define ROWT(n)  (YTbase + (n) * Ysize)
#define COL(n)   (Xbase  + (n) * Xsize)
#define ROW(n)   (Ybase  + (n) * Ysize)

typedef unsigned char ubyte;
typedef unsigned short uword;
typedef unsigned long  ulong;
typedef struct WBStartup  WBS;
typedef struct DiskObject DISKOBJ;

extern WBS	*Wbs;
extern DISKOBJ	*Do;

extern short Xsize, Ysize;
extern short XTbase, YTbase;
extern short Rows, Columns;
extern short Xbase, Ybase;
extern short Xpixs, Ypixs;
extern ubyte *av[];
extern char Wdisable;

typedef struct _ED {
    struct _ED *next, **prev;
    WIN *Win;
    FONT *Font; 	    /*	da font, da font!		    */
    long Topline, Topcolumn;
    long Line, Column;
    long Lines, Maxlines;
    ubyte **List;
    ubyte Name[64];
    ubyte Wtitle[130];
    char Modified;
    ubyte Tabstop;
    ubyte Margin;
    char Insertmode;
    char IgnoreCase;
    char Wordwrap;
    char iconmode;	    /*	window in icon mode		    */
    short Winx; 	    /*	save state of non-icon window	    */
    short Winy;
    short Winwidth;
    short Winheight;
    short IWinx, IWiny;     /*	save state of icon window	    */
    long  dirlock;	    /* directory lock			    */
} ED;

extern long  BSline, BEline;
extern short BSchar, BEchar;
extern ED    *BEp;


#ifndef NULL
#define NULL 0
#endif
#ifdef E
#undef E
#endif

extern ED *Ep, *Base;
extern char	Overide;
extern char	Savetabs;
extern char	memoryfail, Nsu, Msgchk;
extern ubyte	CtlC;
extern ubyte	Current[256];
extern ubyte	Space[32];
extern short	Clen;
extern char	Abortcommand, MShowTitle;
extern char	Comlinemode;
extern RP	*Rp;
extern WIN	*Win;
extern char	*Partial;
extern char	*String;

extern ubyte	*allocl(), *allocb();
extern char	*keyspectomacro();
extern char	*menutomacro();

extern void	search_operation();
extern void	*malloc(), *AllocMem(), *strcpy();

extern long	Dirlock;

