#define FILEHANDLE BPTR #define OPEN_FOR_READING(name) Open(name,MODE_OLDFILE) #define OPEN_FOR_WRITING(name) Open(name,MODE_NEWFILE) #define CLOSEFILE(handle) Close(handle) #define READ(handle,buffer,length) Read(handle,buffer,length) #define WRITE(handle,buffer,length) Write(handle,buffer,length) #define HOSTSETUP "VTDIR:host.setup" #define PRINTERSETUP "VTDIR:printer.setup" #define TERMINALSETUP "VTDIR:terminal.setup" #define PRINTERNAME "PRT:" #define NILDEVICE "NIL:" #define ABORTASYNC 2 #define ABORTDELAY 50 extern struct KeyMap keymap; extern struct Library *IntuitionBase,*GfxBase,*DiskfontBase; #define ARGUMENTS 16 #define SETS 4 #define ASCII 0 #define SUPPLEMENTAL 1 #define GRAPHICS 2 #define BRITISH 3 #define DUTCH 4 #define FINNISH 5 #define FRENCH 6 #define FRENCH_CANADIAN 7 #define GERMAN 8 #define ITALIAN 9 #define NORWEGIAN 10 #define SPANISH 11 #define SWEDISH 12 #define SWISS 13 #define TECHNICAL 14 #define DISPLAY_CONTROLS 15 #define FONTS 16 #define FIRSTLCHAR 32 #define FIRSTRCHAR (FIRSTLCHAR + 128) #define CHARCOUNT (128 - FIRSTLCHAR) #define TOTALCOUNT 256 #define BUFSIZE 10240 #define CONVSIZE (BUFSIZE + BUFSIZE / 2) #define SECSIZE (BUFSIZE / 10) #define BEL '\x07' #define BS '\x08' #define HT '\x09' #define LF '\x0A' #define VT '\x0B' #define FF '\x0C' #define CR '\x0D' #define SO '\x0E' #define SI '\x0F' #define DLE '\x10' #define XON '\x11' #define XOFF '\x13' #define CAN '\x18' #define ESC '\x1B' #define DEL '\x7F' #define IND '\x84' #define NEL '\x85' #define HTS '\x88' #define PLD '\x8B' #define PLU '\x8C' #define RI '\x8D' #define SS2 '\x8E' #define SS3 '\x8F' #define DCS '\x90' #define PU1 '\x91' #define PU2 '\x92' #define STS '\x93' #define CSI '\x9B' #define ST '\x9C' #define END '\xFF' #define CANCEL '\x18' #define forever for(;;) typedef short BOOL; #define ON (1<<0) #define GAD (1<<1) #define LOCKED (1<<2) #define SETUP (1<<3) #define TRANSFER (1<<4) #define SEND_BREAK (1<<5) #define HOLD (1<<6) #define PRINT (1<<7) #define SEQ_ESC 1 #define SEQ_CSI 2 #define SEQ_MOD 3 #define SEQ_DCS 4 #define SEQ_SPC 5 #define SEQ_SEC 6 #define SEQ_SET 7 #define SEQ_RES 8 #define SEQ_ONE 9 #define SEQ_G0 10 #define SEQ_G1 11 #define SEQ_G2 12 #define SEQ_G3 13 #define SEQ_LWIDTH 14 #define SEQ_ENDDCS 15 #define MASK 0xFF #define NEGATIVE 0x80 extern char wrapon[]; extern char wrapoff[]; extern char cursen[]; extern char cursdis[]; extern char cursreq[]; extern char setpos[]; extern char home[]; extern char clrdown[]; extern char forw[]; extern char backw[]; extern char primda[]; extern char secda[]; extern char tstat[]; extern char pstat[]; extern char ustat[]; extern char klang[]; extern char marg[]; extern USHORT rows; #define BACKGROUND_PEN 0 #define FOREGROUND_PEN 1 #define COLUMNS 80 #define XSIZE 8 #define YSIZE 8 #define BOTLINE 6 #define WIDTH (COLUMNS * XSIZE) #define DEPTH 1 #define PYSIZE 1 #define PXSIZE 16 #define SPRITESIZE ((2 * YSIZE + 4) * 2) #define DUMMYSIZE ((2 * PYSIZE + 4) * 2) #define MOVE(rp,row,col) Move(rp,(col-1)*XSIZE,(row-1)*YSIZE+BOTLINE) #define DRAWCURSOR(srp,drp,row,col) ClipBlit(srp,(col-1)*XSIZE+1,(row-1)*YSIZE,drp,16,0,XSIZE/2+2,YSIZE,ABC|NABC|ABNC|NABNC) #define DOUBLE 2 #define UPPER_SIDE 3 #define LOWER_SIDE 4 #define HORIZ_ONLY 6 #define BEEPPRIORITY 64 #define BEEPPERIOD 440 #define BEEPVOLUME 64 #define BEEPCYCLES 150 #define WRAP (1<<0) #define INSERT (1<<1) #define CURSOR (1<<2) #define GXGL (1<<3) #define CONVERT (1<<4) #define NEWLINE (1<<5) #define DCONTLO (1<<6) #define DCONTHI (1<<7) #define NATIONAL (1<<0) struct serial { struct IOExtSer *rreq,*wreq; struct MsgPort *rport,*wport; UBYTE requested; char character; }; struct console { struct serial *ser; struct Screen *scr; struct Window *win; struct IOStdReq *rreq,*wreq; struct MsgPort *rport,*wport; struct TextFont *font[FONTS]; struct SimpleSprite *sp; struct RastPort *rp,srp; struct BitMap sbm; struct IOAudio *audio; struct Unit *channels; BPTR prt; char *buf,*conv; UWORD *dat,*dummy; UBYTE *rows; USHORT sound; USHORT top,bot; USHORT col,row; USHORT gset[SETS]; USHORT mset[SETS]; USHORT lset,rset,slset; USHORT argi,carg,args[ARGUMENTS]; USHORT s_col,s_row; USHORT s_gset[SETS]; USHORT s_mset[SETS]; USHORT s_lset,s_rset; USHORT ordcol,ordc; UBYTE stat,tstat,gstat,nstat,attr; UBYTE s_tstat,s_attr; char ordtext[COLUMNS]; char tabs[COLUMNS + 2]; char character; }; struct so { struct so *next; char *name; APTR setup; USHORT type; UBYTE col,row; BOOL active; UBYTE id; }; #define SO_SAVE 1 #define SO_LOAD 2 #define SO_KEYMAP 3 #define SO_SETUP 4 extern struct so save; extern struct so appl; extern struct so num; extern struct so ins; extern struct so over; extern struct so cret; extern struct so newl; extern struct so wrap; extern struct so trunc; extern struct so bit_7; extern struct so bit_8; extern struct so mult; extern struct so nat; extern struct so br_set; extern struct so du_set; extern struct so fi_set; extern struct so fr_set; extern struct so fc_set; extern struct so ger_set; extern struct so ita_set; extern struct so nor_set; extern struct so spa_set; extern struct so swe_set; extern struct so swi_set; extern struct so curson; extern struct so cursoff; extern struct so dn_km; extern struct so fl_km; extern struct so ic_km; extern struct so po_km; extern struct so us_km; extern struct so br_km; extern struct so du_km; extern struct so fi_km; extern struct so bf_km; extern struct so cf_km; extern struct so ag_km; extern struct so it_km; extern struct so no_km; extern struct so sp_km; extern struct so sw_km; extern struct so sf_km; extern struct so sg_km; extern struct so res; extern void reset(register struct console *); extern void cursorup(register struct console *,USHORT); extern void cursordown(register struct console *,USHORT); extern void cursorleft(register struct console *,register USHORT); extern void cursorright(register struct console *,register USHORT); extern void cursornextline(register struct console *); extern void cursoraboveline(register struct console *); extern void hidecursor(register struct console *); extern void showcursor(register struct console *); extern void modifyattr(register struct console *); extern void insertlines(register struct console *,USHORT); extern void insertchars(register struct console *,USHORT); extern void deletechars(register struct console *,USHORT); extern void deletelines(register struct console *,USHORT); extern void erasechars(register struct console *,register USHORT); extern void eraselines(register struct console *,register USHORT); extern void eraselinebeg(register struct console *); extern void erasescrbeg(register struct console *); extern void newline(register struct console *); extern void cleararea(struct RastPort *,USHORT,USHORT,USHORT,USHORT); extern void textout(register struct console *); extern void cursorout(register struct console *); extern void lwcheck(register struct console *);