keep Changelog in cvs (and use --accum)
[btb/d2x.git] / arch / dos / mono.h
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13 /*
14  * $Source: /cvs/cvsroot/d2x/arch/dos/mono.h,v $
15  * $Revision: 1.1.1.1 $
16  * $Author: bradleyb $
17  * $Date: 2001-01-19 03:30:15 $
18  *
19  * Header for monochrome/mprintf functions
20  *
21  * $Log: not supported by cvs2svn $
22  * Revision 1.1.1.1  1999/06/14 21:58:40  donut
23  * Import of d1x 1.37 source.
24  *
25  * Revision 1.6  1994/12/03  17:07:37  matt
26  * Made mono code turn off with either NDEBUG or NMONO
27  * 
28  * Revision 1.5  1994/11/27  23:07:28  matt
29  * Made changes needed to be able to compile out monochrome debugging code
30  * 
31  * Revision 1.4  1993/12/07  12:33:28  john
32  * *** empty log message ***
33  * 
34  * Revision 1.3  1993/09/14  20:54:50  matt
35  * Made minit() check for mono card, return -1 if present, 0 if not
36  * 
37  * Revision 1.2  1993/07/22  13:05:40  john
38  * added macros to print variables
39  * 
40  * Revision 1.1  1993/07/10  13:10:40  matt
41  * Initial revision
42  * 
43  *
44  */
45
46 #ifndef _MONO_H
47 #define _MONO_H
48
49 #if !(defined(NDEBUG) || defined(NMONO))                //normal, functioning versions
50
51 //==========================================================================
52 // Open and close the mono screen.  close(0) clears it.
53 extern int minit();     //returns true if mono card, else false
54
55 // Use n = 0 to clear the entire screen, any other number just closes the
56 // specific window.
57 extern void mclose(int n);
58
59 //==========================================================================
60 // Opens a scrollable window on the monochrome screen.
61 extern void mopen( int n, int row, int col, int width, int height, char * title );
62
63 //==========================================================================
64 // Displays a integer variable and what it is equal to on window n.
65 // ie.. if john=5,  then mDumpInt(1,john); would print "john=5" to window 1.
66 #define mDumpD(window, int_var) mprintf( window, #int_var"=%d\n", int_var)
67 // Does the same thing only prints out in 8 hexidecimal places
68 #define mDumpX(window, int_var) mprintf( window, #int_var"=%08X\n", int_var)
69
70 //==========================================================================
71 // Clears a window
72 extern void mclear( int n );
73
74 //==========================================================================
75 // Prints a formatted string on window n
76 extern void _mprintf( int n, char * format, ... );
77
78 #define mprintf(args) _mprintf args
79
80 //==========================================================================
81 // Prints a formatted string on window n at row, col.
82 extern void _mprintf_at( int n, int row, int col, char * format, ... );
83
84 #define mprintf_at(args) _mprintf_at args
85
86 //==========================================================================
87 // Puts a char in window n at current cursor position
88 extern void mputc( int n, char c );
89
90 //==========================================================================
91 // Puts a char in window n at specified location
92 extern void mputc_at( int n, int row, int col, char c );
93
94 //==========================================================================
95 // Moves the cursor... doesn't work.
96 extern void msetcursor( int row, int col );
97
98 //==========================================================================
99 // Refreshes a window
100 void mrefresh(short n);
101
102 #else                   //null versions for when debugging turned off
103
104 #define minit()
105 #define mclose(n)
106 #define mopen( n, row, col, width, height, title )
107 #define mDumpD(window, int_var) 
108 #define mDumpX(window, int_var) 
109 #define mclear( n )
110 #define mprintf(args) 
111 #define mprintf_at(args)
112 #define mputc( n, c )
113 #define mputc_at( n, row, col, c )
114 #define msetcursor( row, col )
115 #define mrefresh(n)
116
117 #endif
118 #endif
119
120