Annotation of researchv9/jerq/include/jerq.h, revision 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.