Annotation of researchv9/jerq/src/sam/mesg.h, revision 1.1

1.1     ! root        1: #define        TBLOCKSIZE 512            /* largest piece of text sent to terminal */
        !             2: #define        DATASIZE  (TBLOCKSIZE+30) /* ... including protocol header stuff */
        !             3: /*
        !             4:  * Messages originating at the terminal
        !             5:  */
        !             6: typedef enum Tmesg{
        !             7:        Tcut,
        !             8:        Tpaste,
        !             9:        Tsnarf,
        !            10:        Ttype,          /* add some characters, but terminal already knows */
        !            11:        Trequest,       /* request data to fill a hole */
        !            12:        Tstartfile,     /* terminal just opened a file's frame */
        !            13:        Tstartnewfile,  /* terminal just opened a new frame */
        !            14:        Tstartcmdfile,  /* terminal just opened command frame */
        !            15:        Tworkfile,      /* set file to which commands apply */
        !            16:        Twrite,         /* write file */
        !            17:        Tcheck,         /* ask host to poke with Hcheck */
        !            18:        Torigin,        /* gimme an Horigin near here */
        !            19:        Tclose,         /* terminal requests file close; check mod. status */
        !            20:        Tsearch,        /* search for last regular expression */
        !            21:        Tlook,          /* search for literal current text */
        !            22:        Tsend,          /* pretend he typed stuff */
        !            23:        Tunlockfile,    /* Hunlockfile me */
        !            24:        Tstartsnarf,    /* initiate snarf buffer exchange */
        !            25:        Tsetsnarf,      /* remember string in snarf buffer */
        !            26:        Tdclick,        /* double click */
        !            27:        Texit,          /* exit */
        !            28: }Tmesg;
        !            29: /*
        !            30:  * Messages originating at the host
        !            31:  */
        !            32: typedef enum Hmesg{
        !            33:        Hnewname,       /* create "" name in menu */
        !            34:        Hdelname,       /* delete file name from menu */
        !            35:        Hmovname,       /* move file name in menu */
        !            36:        Hbindname,      /* attach name[0] to text in terminal */
        !            37:        Hcurrent,       /* make named file the typing file */
        !            38:        Hgrow,          /* insert space in rasp */
        !            39:        Hdata,          /* store this data in previously allocated space */
        !            40:        Hgrowdata,      /* Hgrow + Hdata folded together */
        !            41:        Hcut,           /* remove space from rasp */
        !            42:        Hclean,         /* named file is now 'clean' */
        !            43:        Hdirty,         /* named file is now 'dirty' */
        !            44:        Hcheck0,        /* see below */
        !            45:        Hcheck,         /* ask terminal to check whether it needs more data */
        !            46:        Hmoveto,        /* scrolling, context search, etc. */
        !            47:        Hsetdot,        /* set dot in terminal */
        !            48:        Horigin,        /* set origin of file/frame in terminal */
        !            49:        Hclose,         /* close file and remove from menu */
        !            50:        Hunlock,        /* command is finished; user can do things */
        !            51:        Hsetpat,        /* set remembered regular expression */
        !            52:        Hunlockfile,    /* unlock file in terminal */
        !            53:        Hsetsnarf,      /* remember string in snarf buffer */
        !            54:        Hsnarflen,      /* report length of implicit snarf */
        !            55:        Hexit,
        !            56: }Hmesg;
        !            57: typedef struct Header{
        !            58:        uchar   type;           /* one of the above */
        !            59:        uchar   count0;         /* low bits of data size */
        !            60:        uchar   count1;         /* high bits of data size */
        !            61:        uchar   data[1];        /* variable size */
        !            62: }Header;
        !            63: /*
        !            64:  * File transfer protocol schematic, a la Holzmann
        !            65:  *     
        !            66:  *     proc h
        !            67:  *     {       pvar n = 0;
        !            68:  *             queue h[4];
        !            69:  *     
        !            70:  *             do
        !            71:  *             :: (n <  N)  -> n++; t!Hgrow
        !            72:  *             :: (n == N)  -> n++; t!Hcheck0
        !            73:  *             :: h?Trequest -> t!Hdata
        !            74:  *             :: h?Tcheck  -> t!Hcheck
        !            75:  *             od
        !            76:  *     }
        !            77:  *     proc t
        !            78:  *     {       queue t[4];
        !            79:  *             do
        !            80:  *             :: t?Hgrow -> h!Trequest
        !            81:  *             :: t?Hdata -> skip
        !            82:  *             :: t?Hcheck0 -> h!Tcheck
        !            83:  *             :: t?Hcheck ->
        !            84:  *                     if
        !            85:  *                     :: break
        !            86:  *                     :: h!Trequest; h!Tcheck
        !            87:  *                     fi
        !            88:  *             od
        !            89:  *     }
        !            90:  */

unix.superglobalmegacorp.com

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