Jspice3
mfb.h File Reference
#include <stdio.h>
#include <sys/types.h>
Include dependency graph for mfb.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  mfb_window
 
struct  mfbpath
 
struct  mfbremttyb
 
struct  mfbremstat
 
struct  mfbformatstrs
 
struct  mfb
 
struct  err
 

Macros

#define FALSE   0
 
#define ON   1
 
#define OFF   0
 
#define BUFSIZE   4096
 
#define UNINITIALIZED   -1
 
#define MFBPOLYGONBUFSIZE   600
 
#define MFBMAXPOLYGONVERTICES   300
 
#define MFBmax(a, b)   (a > b ? a : b)
 
#define MFBmin(a, b)   (a < b ? a : b)
 
#define MFBSwapInt(f1, f2)   {long f3; f3 = f1; f1 = f2; f2 = f3;}
 
#define TTY   't'
 
#define HCOPY   'r'
 
#define DEBUG
 
#define TTYBUFSIZE   4096
 
#define MFBCAPOK   -10
 
#define MFBCAPNOFORMAT   -20
 
#define MFBCAPSYNTAXERR   -30
 
#define mfbarg(cp, Reg, reg, val)
 
#define MFBALUJAM   0
 
#define MFBALUOR   1
 
#define MFBALUNOR   2
 
#define MFBALUEOR   3
 
#define MFBOK   1 /* Successful return */
 
#define MFBBADENT   -10 /* Unknown terminal type */
 
#define MFBBADMCF   -20 /* Can't open mfbcap file */
 
#define MFBMCELNG   -30 /* MFBCAP entry too long */
 
#define MFBBADMCE   -40 /* Bad mfbcap entry */
 
#define MFBINFMCE   -50 /* Infinite mfbcap entry */
 
#define MFBBADTTY   -60 /* stdout not in /dev */
 
#define MFBBADLST   -70 /* Illegal line style */
 
#define MFBBADFST   -80 /* Illegal fill style */
 
#define MFBBADCST   -90 /* Illegal color style */
 
#define MFBBADTM1   -100 /* No destructive text */
 
#define MFBBADTM2   -110 /* No overstriking text */
 
#define MFBNODFLP   -120 /* No definable line styles */
 
#define MFBNODFFP   -130 /* No definable fill styles */
 
#define MFBNODFCO   -140 /* No definable colors */
 
#define MFBNOBLNK   -150 /* No blinkers */
 
#define MFBTMBLNK   -160 /* Too many blinkers */
 
#define MFBNOMASK   -170 /* No definable read or write mask */
 
#define MFBBADDEV   -180 /* Can't open or close device */
 
#define MFBBADOPT   -190 /* Can't access or set device stat */
 
#define MFBBADWRT   -200 /* Error in write */
 
#define MFBPNTERR   -210 /* Error in pointing device */
 
#define MFBNOPTFT   -220 /* No format for pointing device */
 
#define MFBNOPNT   -230 /* No pointing device */
 
#define MFBNORBND   -240 /* No Rubberbanding */
 
#define MFBBADALU   -250 /* Cannot set ALU mode */
 
#define MFBNOMEM   -260 /* Out of memory */
 
#define MAXX   1 /* max x coordinate */
 
#define MAXY   2 /* max y coordinate */
 
#define MAXCOLORS   3 /* max number of colors */
 
#define MAXINTENSITY   4 /* max color intensity */
 
#define MAXFILLPATTERNS   5 /* max number of fill patterns */
 
#define MAXLINESTYLES   6 /* max number of line styles */
 
#define MAXBLINKERS   7 /* max number of blinkers */
 
#define POINTINGDEVICE   8 /* Bool: terminal has pointing device */
 
#define POINTINGBUTTONS   9 /* Bool: pointing device has buttons */
 
#define NUMBUTTONS   10 /* number of pointing device buttons */
 
#define BUTTON1   11 /* button value returned by button 1 */
 
#define BUTTON2   12 /* button value returned by button 2 */
 
#define BUTTON3   13 /* button value returned by button 3 */
 
#define BUTTON4   14 /* button value returned by button 4 */
 
#define BUTTON5   15 /* button value returned by button 5 */
 
#define BUTTON6   16 /* button value returned by button 6 */
 
#define BUTTON7   17 /* button value returned by button 7 */
 
#define BUTTON8   18 /* button value returned by button 8 */
 
#define BUTTON9   19 /* button value returned by button 9 */
 
#define BUTTON10   20 /* button value returned by button 10 */
 
#define BUTTON11   21 /* button value returned by button 11 */
 
#define BUTTON12   22 /* button value returned by button 12 */
 
#define TEXTPOSITIONALBE   30 /* Bool: accurately positionable text */
 
#define TEXTROTATABLE   31 /* Bool: rotateable text */
 
#define FONTHEIGHT   32 /* font height in pixels */
 
#define FONTWIDTH   33 /* font width in pixels */
 
#define FONTXOFFSET   34 /* font x offset in pixels */
 
#define FONTYOFFSET   35 /* font y offset in pixels */
 
#define DESTRUCTIVETEXT   36 /* Bool: text can be destructive */
 
#define OVERSTRIKETEXT   37 /* Bool: text can be overstrike */
 
#define VLT   38 /* Bool: terminal has VLT */
 
#define BLINKERS   39 /* Bool: terminal has blinkers */
 
#define FILLEDPOLYGONS   40 /* Bool: terminal has filled polygons */
 
#define DEFFILLPATTERNS   41 /* Bool: defineable fill patterns */
 
#define DEFCHANNELMASK   42 /* Bool: defineable write mask */
 
#define DEFLINEPATTERN   43 /* Bool: defineable line styles */
 
#define CURFGCOLOR   44 /* current foreground color */
 
#define CURFILLPATTERN   45 /* current fill pattern */
 
#define CURLINESTYLE   46 /* current line style */
 
#define CURCHANNELMASK   47 /* current write mask */
 
#define CURREADMASK   48 /* current read mask */
 
#define NUMBITPLANES   49 /* number of bit planes */
 
#define DEFREADMASK   50 /* Bool: definable read mask */
 
#define RASTERCOPY   51 /* Bool: terminal has raster copy */
 
#define OFFSCREENX   52 /* left value of off screen memory */
 
#define OFFSCREENY   53 /* bottom value of off screen memory */
 
#define OFFSCREENDX   54 /* length of off screen memory */
 
#define OFFSCREENDY   55 /* width of off screen memory */
 

Typedefs

typedef struct mfb_window WINDOW
 
typedef struct mfb_window VIEWPORT
 
typedef struct mfbpath MFBPOLYGON
 
typedef struct mfbpath MFBPATH
 
typedef struct mfbremttyb MFBSAVETTYB
 
typedef struct mfbremstat MFBSAVESTAT
 
typedef struct mfb MFB
 

Enumerations

Functions

void MFBArc ()
 
void MFBBox ()
 
int MFBClose ()
 
int MFBDefineColor ()
 
int MFBDefineLineStyle ()
 
void MFBDrawLineTo ()
 
char * MFBError ()
 
void MFBFlood ()
 
int MFBGetchar ()
 
int MFBHalt ()
 
int MFBInfo ()
 
int MFBInitialize ()
 
void MFBLine ()
 
void MFBMoveTo ()
 
MFBMFBOpen ()
 
void MFBPixel ()
 
int MFBPoint ()
 
void MFBPolygon ()
 
int MFBSetALUMode ()
 
int MFBSetBlinker ()
 
int MFBSetColor ()
 
int MFBSetCursorColor ()
 
int MFBSetLineStyle ()
 
int MFBSetTextMode ()
 
void MFBText ()
 
int MFBUpdate ()
 

Variables

char gEntBuf [BUFSIZE]
 
MFBMFBCurrent
 

Macro Definition Documentation

#define BLINKERS   39 /* Bool: terminal has blinkers */

Definition at line 552 of file mfb.h.

#define BUFSIZE   4096

Definition at line 29 of file mfb.h.

#define BUTTON1   11 /* button value returned by button 1 */

Definition at line 531 of file mfb.h.

#define BUTTON10   20 /* button value returned by button 10 */

Definition at line 540 of file mfb.h.

#define BUTTON11   21 /* button value returned by button 11 */

Definition at line 541 of file mfb.h.

#define BUTTON12   22 /* button value returned by button 12 */

Definition at line 542 of file mfb.h.

#define BUTTON2   12 /* button value returned by button 2 */

Definition at line 532 of file mfb.h.

#define BUTTON3   13 /* button value returned by button 3 */

Definition at line 533 of file mfb.h.

#define BUTTON4   14 /* button value returned by button 4 */

Definition at line 534 of file mfb.h.

#define BUTTON5   15 /* button value returned by button 5 */

Definition at line 535 of file mfb.h.

#define BUTTON6   16 /* button value returned by button 6 */

Definition at line 536 of file mfb.h.

#define BUTTON7   17 /* button value returned by button 7 */

Definition at line 537 of file mfb.h.

#define BUTTON8   18 /* button value returned by button 8 */

Definition at line 538 of file mfb.h.

#define BUTTON9   19 /* button value returned by button 9 */

Definition at line 539 of file mfb.h.

#define CURCHANNELMASK   47 /* current write mask */

Definition at line 560 of file mfb.h.

#define CURFGCOLOR   44 /* current foreground color */

Definition at line 557 of file mfb.h.

#define CURFILLPATTERN   45 /* current fill pattern */

Definition at line 558 of file mfb.h.

#define CURLINESTYLE   46 /* current line style */

Definition at line 559 of file mfb.h.

#define CURREADMASK   48 /* current read mask */

Definition at line 561 of file mfb.h.

#define DEBUG

Definition at line 82 of file mfb.h.

#define DEFCHANNELMASK   42 /* Bool: defineable write mask */

Definition at line 555 of file mfb.h.

#define DEFFILLPATTERNS   41 /* Bool: defineable fill patterns */

Definition at line 554 of file mfb.h.

#define DEFLINEPATTERN   43 /* Bool: defineable line styles */

Definition at line 556 of file mfb.h.

#define DEFREADMASK   50 /* Bool: definable read mask */

Definition at line 563 of file mfb.h.

#define DESTRUCTIVETEXT   36 /* Bool: text can be destructive */

Definition at line 549 of file mfb.h.

#define FALSE   0

Definition at line 23 of file mfb.h.

#define FILLEDPOLYGONS   40 /* Bool: terminal has filled polygons */

Definition at line 553 of file mfb.h.

#define FONTHEIGHT   32 /* font height in pixels */

Definition at line 545 of file mfb.h.

#define FONTWIDTH   33 /* font width in pixels */

Definition at line 546 of file mfb.h.

#define FONTXOFFSET   34 /* font x offset in pixels */

Definition at line 547 of file mfb.h.

#define FONTYOFFSET   35 /* font y offset in pixels */

Definition at line 548 of file mfb.h.

#define HCOPY   'r'

Definition at line 38 of file mfb.h.

#define MAXBLINKERS   7 /* max number of blinkers */

Definition at line 527 of file mfb.h.

#define MAXCOLORS   3 /* max number of colors */

Definition at line 523 of file mfb.h.

#define MAXFILLPATTERNS   5 /* max number of fill patterns */

Definition at line 525 of file mfb.h.

#define MAXINTENSITY   4 /* max color intensity */

Definition at line 524 of file mfb.h.

#define MAXLINESTYLES   6 /* max number of line styles */

Definition at line 526 of file mfb.h.

#define MAXX   1 /* max x coordinate */

Definition at line 521 of file mfb.h.

#define MAXY   2 /* max y coordinate */

Definition at line 522 of file mfb.h.

#define MFBALUEOR   3

Definition at line 448 of file mfb.h.

#define MFBALUJAM   0

Definition at line 445 of file mfb.h.

#define MFBALUNOR   2

Definition at line 447 of file mfb.h.

#define MFBALUOR   1

Definition at line 446 of file mfb.h.

#define mfbarg (   cp,
  Reg,
  reg,
  val 
)

Definition at line 398 of file mfb.h.

#define MFBBADALU   -250 /* Cannot set ALU mode */

Definition at line 516 of file mfb.h.

#define MFBBADCST   -90 /* Illegal color style */

Definition at line 500 of file mfb.h.

#define MFBBADDEV   -180 /* Can't open or close device */

Definition at line 509 of file mfb.h.

#define MFBBADENT   -10 /* Unknown terminal type */

Definition at line 492 of file mfb.h.

#define MFBBADFST   -80 /* Illegal fill style */

Definition at line 499 of file mfb.h.

#define MFBBADLST   -70 /* Illegal line style */

Definition at line 498 of file mfb.h.

#define MFBBADMCE   -40 /* Bad mfbcap entry */

Definition at line 495 of file mfb.h.

#define MFBBADMCF   -20 /* Can't open mfbcap file */

Definition at line 493 of file mfb.h.

#define MFBBADOPT   -190 /* Can't access or set device stat */

Definition at line 510 of file mfb.h.

#define MFBBADTM1   -100 /* No destructive text */

Definition at line 501 of file mfb.h.

#define MFBBADTM2   -110 /* No overstriking text */

Definition at line 502 of file mfb.h.

#define MFBBADTTY   -60 /* stdout not in /dev */

Definition at line 497 of file mfb.h.

#define MFBBADWRT   -200 /* Error in write */

Definition at line 511 of file mfb.h.

#define MFBCAPNOFORMAT   -20

Definition at line 393 of file mfb.h.

#define MFBCAPOK   -10

Definition at line 392 of file mfb.h.

#define MFBCAPSYNTAXERR   -30

Definition at line 394 of file mfb.h.

#define MFBINFMCE   -50 /* Infinite mfbcap entry */

Definition at line 496 of file mfb.h.

#define MFBmax (   a,
 
)    (a > b ? a : b)

Definition at line 33 of file mfb.h.

#define MFBMAXPOLYGONVERTICES   300

Definition at line 32 of file mfb.h.

#define MFBMCELNG   -30 /* MFBCAP entry too long */

Definition at line 494 of file mfb.h.

#define MFBmin (   a,
 
)    (a < b ? a : b)

Definition at line 34 of file mfb.h.

#define MFBNOBLNK   -150 /* No blinkers */

Definition at line 506 of file mfb.h.

#define MFBNODFCO   -140 /* No definable colors */

Definition at line 505 of file mfb.h.

#define MFBNODFFP   -130 /* No definable fill styles */

Definition at line 504 of file mfb.h.

#define MFBNODFLP   -120 /* No definable line styles */

Definition at line 503 of file mfb.h.

#define MFBNOMASK   -170 /* No definable read or write mask */

Definition at line 508 of file mfb.h.

#define MFBNOMEM   -260 /* Out of memory */

Definition at line 517 of file mfb.h.

#define MFBNOPNT   -230 /* No pointing device */

Definition at line 514 of file mfb.h.

#define MFBNOPTFT   -220 /* No format for pointing device */

Definition at line 513 of file mfb.h.

#define MFBNORBND   -240 /* No Rubberbanding */

Definition at line 515 of file mfb.h.

#define MFBOK   1 /* Successful return */

Definition at line 491 of file mfb.h.

#define MFBPNTERR   -210 /* Error in pointing device */

Definition at line 512 of file mfb.h.

#define MFBPOLYGONBUFSIZE   600

Definition at line 31 of file mfb.h.

#define MFBSwapInt (   f1,
  f2 
)    {long f3; f3 = f1; f1 = f2; f2 = f3;}

Definition at line 35 of file mfb.h.

#define MFBTMBLNK   -160 /* Too many blinkers */

Definition at line 507 of file mfb.h.

#define NUMBITPLANES   49 /* number of bit planes */

Definition at line 562 of file mfb.h.

#define NUMBUTTONS   10 /* number of pointing device buttons */

Definition at line 530 of file mfb.h.

#define OFF   0

Definition at line 27 of file mfb.h.

#define OFFSCREENDX   54 /* length of off screen memory */

Definition at line 567 of file mfb.h.

#define OFFSCREENDY   55 /* width of off screen memory */

Definition at line 568 of file mfb.h.

#define OFFSCREENX   52 /* left value of off screen memory */

Definition at line 565 of file mfb.h.

#define OFFSCREENY   53 /* bottom value of off screen memory */

Definition at line 566 of file mfb.h.

#define ON   1

Definition at line 26 of file mfb.h.

#define OVERSTRIKETEXT   37 /* Bool: text can be overstrike */

Definition at line 550 of file mfb.h.

#define POINTINGBUTTONS   9 /* Bool: pointing device has buttons */

Definition at line 529 of file mfb.h.

#define POINTINGDEVICE   8 /* Bool: terminal has pointing device */

Definition at line 528 of file mfb.h.

#define RASTERCOPY   51 /* Bool: terminal has raster copy */

Definition at line 564 of file mfb.h.

#define TEXTPOSITIONALBE   30 /* Bool: accurately positionable text */

Definition at line 543 of file mfb.h.

#define TEXTROTATABLE   31 /* Bool: rotateable text */

Definition at line 544 of file mfb.h.

#define TTY   't'

Definition at line 37 of file mfb.h.

#define TTYBUFSIZE   4096

Definition at line 84 of file mfb.h.

#define UNINITIALIZED   -1

Definition at line 30 of file mfb.h.

#define VLT   38 /* Bool: terminal has VLT */

Definition at line 551 of file mfb.h.

Typedef Documentation

typedef struct mfb MFB

Definition at line 379 of file mfb.h.

typedef struct mfbpath MFBPATH

Definition at line 109 of file mfb.h.

typedef struct mfbpath MFBPOLYGON

Definition at line 108 of file mfb.h.

typedef struct mfbremstat MFBSAVESTAT

Definition at line 138 of file mfb.h.

typedef struct mfbremttyb MFBSAVETTYB

Definition at line 130 of file mfb.h.

typedef struct mfb_window VIEWPORT

Definition at line 102 of file mfb.h.

typedef struct mfb_window WINDOW

Definition at line 101 of file mfb.h.

Enumeration Type Documentation

enum Bool
Enumerator
false 
true 

Definition at line 18 of file mfb.h.

18 {false, true} Bool;
Bool
Definition: mfb.h:18

Function Documentation

void MFBArc ( )
void MFBBox ( )
int MFBClose ( )

Definition at line 193 of file mfbopen.c.

195 {
196  int i;
197  struct ctext *cl;
198  char palette[16];
199 
200  if (pc.mfbMODE != 4)
201  MFBPointerClose();
202  MFBSetColor(0);
203  MFBFlood();
205  if (pc.video_mode < 4 || pc.video_mode == 7
206 #ifdef PARADISE
207  || (pc.video_mode < 0x58 && pc.video_mode > 0x53)
208 #endif
209  )
211 
212  if (Clist != NULL) {
213  /* have to reset some things for old graphics mode */
214  pc = *Clist->pc;
215  free(Clist->pc);
216  for (i = 0; i < 16; i++) palette[i] = (char) i;
217  vga_set_cpblock(palette);
218  if (pc.mfbMODE != 4)
219  MFBPointerInit();
220  cl = Clist;
221  Clist = Clist->next;
222  free(cl);
223  }
224  else
225  pc.mfbMODE = 0;
226 
227  return (MFBOK);
228 }
void load_font(int scanheight)
Definition: loadfont.c:11
Definition: mfbopen.c:18
#define MFBOK
Definition: mfb.h:491
struct ctext * next
Definition: mfbopen.c:20
static struct ctext * Clist
Definition: mfbopen.c:22
int mfbMODE
Definition: mfbp.h:41
int video_mode
Definition: mfbp.h:40
#define NULL
Definition: spdefs.h:121
void MFBPointerInit()
Definition: mfbcursr.c:440
struct mfbpc pc
Definition: mfbopen.c:14
void MFBPointerClose()
Definition: mfbcursr.c:481
int MFBSetColor()
void MFBFlood()
Definition: mfbflood.c:21
struct mfbpc * pc
Definition: mfbopen.c:19
static void reset_vmode()
void free()
void vga_set_cpblock()
int scan_height
Definition: mfbp.h:42
int MFBDefineColor ( )
int MFBDefineLineStyle ( )
void MFBDrawLineTo ( )
char* MFBError ( )
void MFBFlood ( )

Definition at line 21 of file mfbflood.c.

22 {
23  if (pc.mfbMODE & 2)
24  mode_2_flood();
25  else
26  mode_1_flood();
27 }
int mfbMODE
Definition: mfbp.h:41
static void mode_2_flood()
Definition: mfbflood.c:52
static void mode_1_flood()
Definition: mfbflood.c:31
struct mfbpc pc
Definition: mfbopen.c:14
int MFBGetchar ( )

Definition at line 259 of file mfbopen.c.

262 {
263  int k;
264 
265  k = (getch() & 0xff);
266  if (!k) k = 256 + getch();
267  return (k);
268 }
int MFBHalt ( )

Definition at line 232 of file mfbopen.c.

234 {
235  if (Clist != NULL)
236  return (MFBBADDEV);
237  if (pc.mfbMODE != 4)
238  MFBPointerClose();
240  if (pc.video_mode < 4 || pc.video_mode == 7
241 #ifdef PARADISE
242  || (pc.video_mode < 0x58 && pc.video_mode > 0x53)
243 #endif
244  )
246 
247  return (MFBOK);
248 }
void load_font(int scanheight)
Definition: loadfont.c:11
#define MFBBADDEV
Definition: mfb.h:509
#define MFBOK
Definition: mfb.h:491
static struct ctext * Clist
Definition: mfbopen.c:22
int mfbMODE
Definition: mfbp.h:41
int video_mode
Definition: mfbp.h:40
#define NULL
Definition: spdefs.h:121
struct mfbpc pc
Definition: mfbopen.c:14
void MFBPointerClose()
Definition: mfbcursr.c:481
static void reset_vmode()
int scan_height
Definition: mfbp.h:42
int MFBInfo ( )
int MFBInitialize ( )

Definition at line 168 of file mfbopen.c.

170 {
171  char palette[16];
172  int i;
173 
174  if (Clist != NULL)
175  return (MFBBADDEV);
176  if (mfb_vmode == 6 || mfb_vmode == 9)
177  set_vmode(mfb_vmode,&pc.xsize,&pc.ysize,pc.mfbMODE==2 ? 256 : 16);
178  else
180 
181  if (pc.mfbMODE != 4)
182  MFBPointerInit();
183  for (i = 0; i < 16; i++) palette[i] = (char) i;
184  vga_set_cpblock(palette);
186  vga_set_cblock((char(*)[3])pc.colormap,0,16);
187  vga_get_cblock((char(*)[3])pc.colormap[16],16,240);
188  return (MFBOK);
189 }
#define MFBBADDEV
Definition: mfb.h:509
#define MFBOK
Definition: mfb.h:491
static struct ctext * Clist
Definition: mfbopen.c:22
int mfbMODE
Definition: mfbp.h:41
void vga_set_cblock()
int ysize
Definition: mfbp.h:54
void vga_get_cblock()
#define NULL
Definition: spdefs.h:121
void MFBPointerInit()
Definition: mfbcursr.c:440
static void set_vmode()
struct mfbpc pc
Definition: mfbopen.c:14
void set_default_colors()
Definition: mfbopen.c:372
int xsize
Definition: mfbp.h:53
static void reset_vmode()
unsigned char colormap[256][3]
Definition: mfbp.h:71
static int mfb_vmode
Definition: mfbopen.c:24
void vga_set_cpblock()
void MFBLine ( )
void MFBMoveTo ( )
MFB* MFBOpen ( )
void MFBPixel ( )
int MFBPoint ( )
void MFBPolygon ( )
int MFBSetALUMode ( )
int MFBSetBlinker ( )
int MFBSetColor ( )
int MFBSetCursorColor ( )
int MFBSetLineStyle ( )
int MFBSetTextMode ( )
void MFBText ( )
int MFBUpdate ( )

Definition at line 252 of file mfbopen.c.

253 {
254  return (MFBOK);
255 }
#define MFBOK
Definition: mfb.h:491

Variable Documentation

char gEntBuf[BUFSIZE]

Definition at line 86 of file mfb.h.

MFB* MFBCurrent

Definition at line 13 of file mfbopen.c.