Annotation of researchv9/jerq/include/jerq.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.