home *** CD-ROM | disk | FTP | other *** search
- /*
- * RTERM.H
- * Header file for RTERM.C - Terminal emulator for iRMX
- */
- #define TRUE 0xff
- #define FALSE 0x0
-
- #define NULLPTR ((void *) 0)
- #define MK_FP(seg, off) ((void far*) ((unsigned long) (seg)<<16 | (off)));
-
- #define MAXSTR 256 // Max buffer size
- #define VMASK 0x30 // Bit mask for testing
- #define VPORT 0x410 // Port for equipment status
- #define MAXPAGE 8 // Max video pages
- #define DOWN 0x07 // Scroll direction
- #define UP 0x06
-
- #define OUTPUTSTOPPED 0x1
- #define SCROLLFLAG 0x1
- #define NUMFLAG 0x2
- #define CAPSFLAG 0x4
- #define ALTFLAG 0x10
- #define CTLFLAG 0x20
- #define SHIFTFLAG 0x40
- #define LF 0xa
- #define CLOSEALTKEY 0xb8
- #define CONTROLQ 0x11
- #define CONTROLS 0x13
- #define BREAKTYPEOFFSET 8
- #define HIGHESTSCANCODE 83 // Support only 84 scan codes
- #define NKEYCODES 84
- #define NORMFUNCTMIN 0x3b // Normal F1 to F10 keys
- #define NORMFUNCTMAX 0x44
- #define SHCTFUNCTMIN 0x54 // Shift or Control plus
- #define SHCTFUNCTMAX 0x67 // a function key F1 to F10
- /*
- * NUL character indicate that the system or application should
- * interpreted the following character as a special function code.
- */
- #define FUNCTIONKEYCODE 0x0
- #define BREAKCONTACT 0x80
- #define TOGGLELEDCMD 0xed
- #define INDICATORBITS 0x7
- #define INPUTINTERRUPT 0x1
-
- #define CRTCOLS 80
- #define LASTCOL 79
- #define CRTROWS 25
- #define LASTROW 24
- #define SCREENLENGTH (25 * 80) // length is 80 * 25
-
- #define DEFAULTRAWSIZE 256
- #define DEFAULTRAWMASK 255
-
- /* values for console state */
-
- #define RAWMODE 0x80
- #define LITERALMODE 0x40
- #define CANCELOUTPUT 0x10
- #define MONOINDEXREG 0x3b4 // monochrome
- #define COLORINDEXREG 0x3d4 // CGA adapter
- #define CMOSADDRESS 0x70 // CMOS RAM address
- #define CMOSDATA 0x71
- #define CMOSEQUIPBYTE 0x14
- #define DISPLAYABLECHAR 0x20
- #define BLANKCHARACTER 0x20
- #define DEFAULTATTRIB 0x700 // attribute is white on black
- #define DATAREGOFFSET 0x1
- #define MODEREGOFFSET 0x4
- #define STATREGOFFSET 0x6
-
- //
- // All colors can be used as foreground or background color
- //
-
- #define BLACK 0
- #define BLUE 1
- #define GREEN 2
- #define CYAN 3
- #define RED 4
- #define MAGNETA 5
- #define BROWN 6
- #define WHITE 7
- #define GRAY 8
- #define LBLUE 9
- #define LGREEN 10
- #define LCYAN 11
- #define LRED 12
- #define LMAGENTA 13
- #define YELLOW 14
- #define LWHITE 15
-
- #define HI_INTENS 0x08
- #define NO_BLINK 0x7f
-
- short Num_chars;
- char Temp_str[29]; // Temporary buffer for queuing inputs
-
- int Temp_Buff[SCREENLENGTH + 2]; // Temp. buffer to transfer screen data
-
- int save_buffer[4000]; // place to save the DOS screen (not used)
- int far *save_buff; // far address of save_buffer
-
- unsigned int far *bflag_ptr = (unsigned far *) 0x00000472;
-
- unsigned int far *src_ptr;
- unsigned int far *des_ptr;
- unsigned int far *temp_ptr;
- unsigned int tmp = 0;
-
- static unsigned int forground, background;
- static unsigned int index;
- static unsigned char X_char;
- static unsigned char Stop_output;
- static unsigned int temp;
- static unsigned char *dinfop;
- static unsigned int temp_w;
- static unsigned int t_count;
-
- typedef int DISPL_MEM[80];
- DISPL_MEM far *video_p;
-
- typedef struct {
- char flag_byte;
- char data_byte;
- } OUT_BUFFER;
-
- typedef struct {
- char count;
- char data_byte[29];
- } IN_BUFFER;
-
- static struct
- {
- unsigned int displayw;
- unsigned char column;
- unsigned char row;
- unsigned char mode;
- unsigned char page;
- unsigned long crtlen;
- unsigned char console_state;
- unsigned char routine_index;
- unsigned int output_state;
- } r_term;
-