
/*
 * DEFS.H
 *
 *	(C)Copyright 1987 by Matthew Dillon, All Rights Reserved
 *
 */

#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 <typedefs.h>
#include "xmisc.h"

#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 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;
    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 Wordwrap;
    char iconmode;	    /* window in icon mode		    */
    short Winx, Winy, Winwidth, Winheight;
    short IWinx, IWiny;
    long BSline, BEline;    /* block start and end lines	    */
    short BSchar, BEchar;   /* char start on BSline, end on BEline  */
    long dirlock;	    /* directory lock			    */
} ED;


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

extern ED E, *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 ubyte *AllocMem(), *strcpy(), *malloc();
extern char *keyspectomacro();

extern void search_operation();



