|
|
1.1.1.2 ! root 1: #ifndef JERQ_H ! 2: #define JERQ_H 1.1 root 3: /* 4: * Model 5620 DMD 5: */ 6: 7: #include <sys/2681.h> 8: 9: #define DUART ((struct duart *)0x200000) 10: #define TVIDEO (DUART->scc_sopbc = 0x02) 11: #define RVIDEO (DUART->scc_ropbc = 0x02) 12: #define BonW() RVIDEO 13: #define WonB() TVIDEO 14: #define DADDR ((unsigned short *)(0x500000)) /* display base address/4 */ 15: #define YMOUSE ((short *)(0x400000)) 16: #define XMOUSE ((short *)(0x400002)) 17: #define WORDSHIFT 5 18: #define WORDSIZE 32 19: #define WORDMASK (WORDSIZE-1) 20: #define ONES 0xFFFFFFFF 21: #define FIRSTBIT ((unsigned)0x80000000) 22: #define LASTBIT ((unsigned)0x1) 23: #define XMAX 800 24: #define YMAX 1024 25: 26: /* 27: * Graphics definitions 28: */ 29: 30: typedef int Word; /* 32 bits */ 31: 32: typedef unsigned int UWord; /* 32 bits */ 33: 34: typedef struct Point { 35: short x; 36: short y; 37: } Point; 38: 39: typedef struct Rectangle { 40: Point origin; 41: Point corner; 42: } Rectangle; 43: 44: typedef struct Bitmap { 45: Word *base; /* pointer to start of data */ 46: unsigned width; /* width in 32 bit words of total data area */ 47: Rectangle rect; /* rectangle in data area, local coords */ 48: char *_null; /* unused, always zero */ 49: } Bitmap; 50: 1.1.1.2 ! root 51: typedef struct Menu{ ! 52: char **item; /* string array, ending with 0 */ ! 53: char *(*generator)(); /* used if item == 0 */ ! 54: short prevhit; /* private to menuhit() */ ! 55: short prevtop; /* private to menuhit() */ 1.1 root 56: } Menu; 57: 58: typedef struct Texture32 { 59: Word bits[32]; 60: } Texture32; 61: 62: typedef struct Texture { 63: short bits[16]; 64: } Texture; 65: 66: extern struct Mouse { 1.1.1.2 ! root 67: Point xy; 1.1 root 68: short buttons; 69: } mouse; 70: 1.1.1.2 ! root 71: #ifdef lint ! 72: extern Point Pt(); ! 73: extern Rectangle Rect(); ! 74: extern Rectangle Rpt(); ! 75: #else 1.1 root 76: #define Pt(x, y) ((((short)(x))<<16)|((unsigned short)(y))) 77: #define Rect(x1, y1, x2, y2) Pt(x1, y1), Pt(x2, y2) 78: #define Rpt(p1, p2) (p1), (p2) 1.1.1.2 ! root 79: #endif 1.1 root 80: 81: #define button(i) (mouse.buttons&(8>>i)) 82: #define button1() (mouse.buttons&4) 83: #define button2() (mouse.buttons&2) 84: #define button3() (mouse.buttons&1) 85: #define button12() (mouse.buttons&6) 86: #define button13() (mouse.buttons&5) 87: #define button23() (mouse.buttons&3) 88: #define button123() (mouse.buttons&7) 89: 1.1.1.2 ! root 90: Rectangle getrectb(), getrect(); ! 91: #define getrect1() getrectb(4) ! 92: #define getrect2() getrectb(2) ! 93: #define getrect3() getrectb(1) ! 94: #define getrect12() getrectb(6) ! 95: #define getrect13() getrectb(5) ! 96: #define getrect23() getrectb(3) ! 97: #define getrect123() getrectb(7) ! 98: 1.1 root 99: #define muldiv(a,b,c) ((long)((a)*((long)b)/(c))) 100: 101: extern Word topbits[], botbits[]; /* now full 32 bit words */ 102: extern Rectangle Jrect; 103: extern Bitmap display; 104: 105: /* 106: * Function Codes 107: */ 108: typedef int Code; 109: #define F_STORE ((Code) 0) /* target = source */ 110: #define F_OR ((Code) 1) /* target |= source */ 111: #define F_CLR ((Code) 2) /* target &= ~source */ 112: #define F_XOR ((Code) 3) /* target ^= source */ 113: Point add(), sub(), mul(), div(), jstring(), string(); 114: Rectangle rsubp(), raddp(), inset(); 115: Word *addr(); 116: char *alloc(), *gcalloc(); 117: Bitmap *balloc(); 118: Texture *cursswitch(); 119: #define NULL ((char *)0) 120: #define KBD 1 121: #define SEND 2 122: #define MOUSE 4 123: #define RCV 8 124: #define CPU 16 125: #define ALARM 32 126: 127: #define ringbell() DUART->b_data=0x08,nap(3),DUART->b_data=0 128: 1.1.1.2 ! root 129: #ifdef MUX ! 130: #include <mux.h> 1.1 root 131: #include <setup.h> 132: extern Rectangle Drect; 133: #else 1.1.1.2 ! root 134: #ifndef MUXTERM 1.1 root 135: #define sw(n) 136: #define request(n) 137: #define sleep(n) nap(n) 138: #define exit() reboot() 139: #define transform(p) (p) 140: #define rtransform(r) (r) 141: #endif 142: #define Drect Jrect 143: #endif 1.1.1.2 ! root 144: #endif JERQ_H
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.