From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/scrnmacs.h | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/scrnmacs.h (limited to 'reference/C/CONTRIB/SNIP/scrnmacs.h') diff --git a/reference/C/CONTRIB/SNIP/scrnmacs.h b/reference/C/CONTRIB/SNIP/scrnmacs.h new file mode 100755 index 0000000..7caa4a4 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/scrnmacs.h @@ -0,0 +1,92 @@ +/* +** Macros for managing direct video writes by Jerry Houston +** +** prototypes for SCROLL.C and VIDPORT.C functions added by Bob Stout +*/ + +#if defined(__TURBOC__) + #define FAR far +#else + #define FAR _far +#endif + +#ifndef MK_FP + #define MK_FP(seg,off) ((void far *)(((long)(seg) << 16)|(unsigned)(off))) +#endif + +/* +** Text screen scrolling function from SCROLL.C in SNIPPETS +*/ + +#define SCROLL_UP 0 +#define SCROLL_DN 1 + +void scroll(int direction, + int num_lines, + int vattrib, + int ulrow, + int ulcomumn, + int lrrow, + int lrcolumn); + +/* +** Functions in VIDPORT.C in SNIPPETS +*/ + +void GotoXY(int col, int row); +void ClrScrn(int vattrib); +void GetCurPos(int *col, int *row); +int GetCurAtr(void); +void ClrEol(void); +void ClrEop(void); +void Repaint(int vattrib); + +#if !defined(COLORMODE) + #define COLORMODE ((*(char FAR *)0x0449) != 7) + #define EXT_KBD (*(char FAR *)0x0496 & 16) + #define VIDPAGE (*((unsigned char far *)0x0462)) + #define ROWSIZE (*(int FAR *)0x044A) + #define SCANLINES ((int)*(char FAR*)0x0461) + #define SCRBUFF ((unsigned FAR *)((COLORMODE)?0xB8000000:0xB0000000)) + #define SCREENSEG ((unsigned)((COLORMODE)?0xB800:0xB000)) + #define SCREENSIZE ((*(int FAR *)0x044C) >> 1) + #define SCREENCOLS (*(int FAR *)0x044A) + #define SCREENROWS ((*(char FAR *)0x0484)?1+(*(char FAR *)0x0484):25) +#endif + +/* + COLORMODE = true/false, are we using color? + EXT_KBD = true/false, extended keyboard in use? + VIDPAGE = current video page in use + SCANLINES = number of scan lines in a character. + SCRBUFF = returns B800:0000 if using color, B000:0000 if mono. + SCREENSEG = when you just need the segment portion. + SCREENSIZE = number of (2-byte) cells required to save screen. + SCREENCOLS = number of columns, often 80. + SCREENROWS = number of rows, usually defaults to 25. +*/ + +/* +** colors -- Use as is for foreground colors +** For background, shift left by 4 and OR with +** foreground and possible video attributes +*/ + +#define BLACK 0 +#define BLUE 1 +#define GREEN 2 +#define CYAN 3 +#define RED 4 +#define MAGENTA 5 +#define BROWN 6 +#define WHITE 7 +#define GRAY 8 +#define LTBLUE 9 +#define LTGREEN 10 +#define LTCYAN 11 +#define LTRED 12 +#define LTMAGENTA 13 +#define YELLOW 14 +#define HIWHITE 15 /* hi-intensity white */ + +#define BG_(a) (((a) & 0x7f) << 4) -- cgit v1.2.3-54-g00ecf