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

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

unix.superglobalmegacorp.com

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