--- researchv9/jerq/include/jerq.h 2018/04/24 17:21:59 1.1 +++ researchv9/jerq/include/jerq.h 2018/04/24 17:31:30 1.1.1.2 @@ -1,3 +1,5 @@ +#ifndef JERQ_H +#define JERQ_H /* * Model 5620 DMD */ @@ -46,11 +48,11 @@ typedef struct Bitmap { char *_null; /* unused, always zero */ } Bitmap; -typedef struct Menu { - char **item; /* string array, ending with 0 */ - short n; /* number of items, deduced by menuhit */ - short lasty; - Bitmap *b; /* storage for menu and overlay */ +typedef struct Menu{ + char **item; /* string array, ending with 0 */ + char *(*generator)(); /* used if item == 0 */ + short prevhit; /* private to menuhit() */ + short prevtop; /* private to menuhit() */ } Menu; typedef struct Texture32 { @@ -62,13 +64,19 @@ typedef struct Texture { } Texture; extern struct Mouse { - Point xy, jxy; + Point xy; short buttons; } mouse; +#ifdef lint +extern Point Pt(); +extern Rectangle Rect(); +extern Rectangle Rpt(); +#else #define Pt(x, y) ((((short)(x))<<16)|((unsigned short)(y))) #define Rect(x1, y1, x2, y2) Pt(x1, y1), Pt(x2, y2) #define Rpt(p1, p2) (p1), (p2) +#endif #define button(i) (mouse.buttons&(8>>i)) #define button1() (mouse.buttons&4) @@ -79,6 +87,15 @@ extern struct Mouse { #define button23() (mouse.buttons&3) #define button123() (mouse.buttons&7) +Rectangle getrectb(), getrect(); +#define getrect1() getrectb(4) +#define getrect2() getrectb(2) +#define getrect3() getrectb(1) +#define getrect12() getrectb(6) +#define getrect13() getrectb(5) +#define getrect23() getrectb(3) +#define getrect123() getrectb(7) + #define muldiv(a,b,c) ((long)((a)*((long)b)/(c))) extern Word topbits[], botbits[]; /* now full 32 bit words */ @@ -93,7 +110,6 @@ typedef int Code; #define F_OR ((Code) 1) /* target |= source */ #define F_CLR ((Code) 2) /* target &= ~source */ #define F_XOR ((Code) 3) /* target ^= source */ - Point add(), sub(), mul(), div(), jstring(), string(); Rectangle rsubp(), raddp(), inset(); Word *addr(); @@ -110,12 +126,12 @@ Texture *cursswitch(); #define ringbell() DUART->b_data=0x08,nap(3),DUART->b_data=0 -#ifdef MPX -#include +#ifdef MUX +#include #include extern Rectangle Drect; #else -#ifndef MPXTERM +#ifndef MUXTERM #define sw(n) #define request(n) #define sleep(n) nap(n) @@ -125,9 +141,4 @@ extern Rectangle Drect; #endif #define Drect Jrect #endif -#ifdef lint -#undef sleep -#undef request -#undef sw -#undef unblock -#endif +#endif JERQ_H