ref: 9339cf07c8fb51a828d2feb3414170f3cea01a75
dir: /sys/src/cmd/jamterm/main.acid/
sizeof_1_ = 8; aggr _1_ { 'U' 0 lo; 'U' 4 hi; }; defn _1_(addr) { complex _1_ addr; print(" lo ", addr.lo, "\n"); print(" hi ", addr.hi, "\n"); }; sizeofFPdbleword = 8; aggr FPdbleword { 'F' 0 x; { 'U' 0 lo; 'U' 4 hi; }; }; defn FPdbleword(addr) { complex FPdbleword addr; print(" x ", addr.x, "\n"); print("_1_ {\n"); _1_(addr+0); print("}\n"); }; UTFmax = 4; Runesync = 128; Runeself = 128; Runeerror = 65533; Runemax = 1114111; Runemask = 2097151; sizeofFmt = 80; aggr Fmt { 'b' 0 runes; 'Y' 8 start; 'Y' 16 to; 'Y' 24 stop; 'Y' 32 flush; 'Y' 40 farg; 'D' 48 nfmt; 'Y' 56 args; 'D' 64 r; 'D' 68 width; 'D' 72 prec; 'U' 76 flags; }; defn Fmt(addr) { complex Fmt addr; print(" runes ", addr.runes, "\n"); print(" start ", addr.start\Y, "\n"); print(" to ", addr.to\Y, "\n"); print(" stop ", addr.stop\Y, "\n"); print(" flush ", addr.flush\Y, "\n"); print(" farg ", addr.farg\Y, "\n"); print(" nfmt ", addr.nfmt, "\n"); print(" args ", addr.args\Y, "\n"); print(" r ", addr.r, "\n"); print(" width ", addr.width, "\n"); print(" prec ", addr.prec, "\n"); print(" flags ", addr.flags, "\n"); }; FmtWidth = 1; FmtLeft = 2; FmtPrec = 4; FmtSharp = 8; FmtSpace = 16; FmtSign = 32; FmtZero = 64; FmtUnsigned = 128; FmtShort = 256; FmtLong = 512; FmtVLong = 1024; FmtComma = 2048; FmtByte = 4096; FmtFlag = 8192; sizeofTm = 64; aggr Tm { 'D' 0 nsec; 'D' 4 sec; 'D' 8 min; 'D' 12 hour; 'D' 16 mday; 'D' 20 mon; 'D' 24 year; 'D' 28 wday; 'D' 32 yday; 'a' 36 zone; 'D' 52 tzoff; 'Y' 56 tz; }; defn Tm(addr) { complex Tm addr; print(" nsec ", addr.nsec, "\n"); print(" sec ", addr.sec, "\n"); print(" min ", addr.min, "\n"); print(" hour ", addr.hour, "\n"); print(" mday ", addr.mday, "\n"); print(" mon ", addr.mon, "\n"); print(" year ", addr.year, "\n"); print(" wday ", addr.wday, "\n"); print(" yday ", addr.yday, "\n"); print(" zone ", addr.zone, "\n"); print(" tzoff ", addr.tzoff, "\n"); print(" tz ", addr.tz\Y, "\n"); }; sizeofTmfmt = 16; aggr Tmfmt { 'Y' 0 fmt; 'A' Tm 8 tm; }; defn Tmfmt(addr) { complex Tmfmt addr; print(" fmt ", addr.fmt\Y, "\n"); print(" tm ", addr.tm\Y, "\n"); }; PNPROC = 1; PNGROUP = 2; Profoff = 0; Profuser = 1; Profkernel = 2; Proftime = 3; Profsample = 4; sizeofLock = 8; aggr Lock { 'D' 0 val; }; defn Lock(addr) { complex Lock addr; print(" val ", addr.val, "\n"); }; sizeofQLp = 16; aggr QLp { 'D' 0 inuse; 'D' 4 state; 'A' QLp 8 next; }; defn QLp(addr) { complex QLp addr; print(" inuse ", addr.inuse, "\n"); print(" state ", addr.state, "\n"); print(" next ", addr.next\Y, "\n"); }; sizeofQLock = 32; aggr QLock { Lock 0 lock; 'D' 8 locked; 'A' QLp 16 $head; 'A' QLp 24 $tail; }; defn QLock(addr) { complex QLock addr; print("Lock lock {\n"); Lock(addr.lock); print("}\n"); print(" locked ", addr.locked, "\n"); print(" $head ", addr.$head\Y, "\n"); print(" $tail ", addr.$tail\Y, "\n"); }; sizeofRWLock = 32; aggr RWLock { Lock 0 lock; 'D' 8 readers; 'D' 12 writer; 'A' QLp 16 $head; 'A' QLp 24 $tail; }; defn RWLock(addr) { complex RWLock addr; print("Lock lock {\n"); Lock(addr.lock); print("}\n"); print(" readers ", addr.readers, "\n"); print(" writer ", addr.writer, "\n"); print(" $head ", addr.$head\Y, "\n"); print(" $tail ", addr.$tail\Y, "\n"); }; sizeofRendez = 24; aggr Rendez { 'A' QLock 0 l; 'A' QLp 8 $head; 'A' QLp 16 $tail; }; defn Rendez(addr) { complex Rendez addr; print(" l ", addr.l\Y, "\n"); print(" $head ", addr.$head\Y, "\n"); print(" $tail ", addr.$tail\Y, "\n"); }; sizeofNetConnInfo = 72; aggr NetConnInfo { 'Y' 0 dir; 'Y' 8 root; 'Y' 16 spec; 'Y' 24 lsys; 'Y' 32 lserv; 'Y' 40 rsys; 'Y' 48 rserv; 'Y' 56 laddr; 'Y' 64 raddr; }; defn NetConnInfo(addr) { complex NetConnInfo addr; print(" dir ", addr.dir\Y, "\n"); print(" root ", addr.root\Y, "\n"); print(" spec ", addr.spec\Y, "\n"); print(" lsys ", addr.lsys\Y, "\n"); print(" lserv ", addr.lserv\Y, "\n"); print(" rsys ", addr.rsys\Y, "\n"); print(" rserv ", addr.rserv\Y, "\n"); print(" laddr ", addr.laddr\Y, "\n"); print(" raddr ", addr.raddr\Y, "\n"); }; RFNAMEG = 1; RFENVG = 2; RFFDG = 4; RFNOTEG = 8; RFPROC = 16; RFMEM = 32; RFNOWAIT = 64; RFCNAMEG = 1024; RFCENVG = 2048; RFCFDG = 4096; RFREND = 8192; RFNOMNT = 16384; sizeofQid = 16; aggr Qid { 'W' 0 path; 'U' 8 vers; 'b' 12 type; }; defn Qid(addr) { complex Qid addr; print(" path ", addr.path, "\n"); print(" vers ", addr.vers, "\n"); print(" type ", addr.type, "\n"); }; sizeofDir = 80; aggr Dir { 'u' 0 type; 'U' 4 dev; Qid 8 qid; 'U' 24 mode; 'U' 28 atime; 'U' 32 mtime; 'V' 40 length; 'Y' 48 name; 'Y' 56 uid; 'Y' 64 gid; 'Y' 72 muid; }; defn Dir(addr) { complex Dir addr; print(" type ", addr.type, "\n"); print(" dev ", addr.dev, "\n"); print("Qid qid {\n"); Qid(addr.qid); print("}\n"); print(" mode ", addr.mode, "\n"); print(" atime ", addr.atime, "\n"); print(" mtime ", addr.mtime, "\n"); print(" length ", addr.length, "\n"); print(" name ", addr.name\Y, "\n"); print(" uid ", addr.uid\Y, "\n"); print(" gid ", addr.gid\Y, "\n"); print(" muid ", addr.muid\Y, "\n"); }; sizeofWaitmsg = 24; aggr Waitmsg { 'D' 0 pid; 'a' 4 time; 'Y' 16 msg; }; defn Waitmsg(addr) { complex Waitmsg addr; print(" pid ", addr.pid, "\n"); print(" time ", addr.time, "\n"); print(" msg ", addr.msg\Y, "\n"); }; sizeofIOchunk = 16; aggr IOchunk { 'Y' 0 addr; 'U' 8 len; }; defn IOchunk(addr) { complex IOchunk addr; print(" addr ", addr.addr\Y, "\n"); print(" len ", addr.len, "\n"); }; DOpaque = 4294967295; DTransparent = 0; DBlack = 255; DWhite = 4294967295; DRed = 4278190335; DGreen = 16711935; DBlue = 65535; DCyan = 16777215; DMagenta = 4278255615; DYellow = 4294902015; DPaleyellow = 4294945535; DDarkyellow = 4008615679; DDarkgreen = 1149781247; DPalegreen = 2868882175; DMedgreen = 2295105791; DDarkblue = 22015; DPalebluegreen = 2868903935; DPaleblue = 48127; DBluegreen = 8947967; DGreygreen = 1437248255; DPalegreygreen = 2666458879; DYellowgreen = 2576960767; DMedblue = 39423; DGreyblue = 6142975; DPalegreyblue = 1234427391; DPurpleblue = 2290666751; DNotacolor = 4294967040; DNofill = 4294967040; Displaybufsize = 8000; ICOSSCALE = 1024; Borderwidth = 4; Refbackup = 0; Refnone = 1; Refmesg = 2; Endsquare = 0; Enddisc = 1; Endarrow = 2; Endmask = 31; Clear = 0; SinD = 8; DinS = 4; SoutD = 2; DoutS = 1; S = 10; SoverD = 11; SatopD = 9; SxorD = 3; D = 5; DoverS = 7; DatopS = 6; DxorS = 3; Ncomp = 12; CRed = 0; CGreen = 1; CBlue = 2; CGrey = 3; CAlpha = 4; CMap = 5; CIgnore = 6; NChan = 7; GREY1 = 49; GREY2 = 50; GREY4 = 52; GREY8 = 56; CMAP8 = 88; RGB15 = 1627723045; RGB16 = 333349; RGB24 = 530472; RGBA32 = 135800904; ARGB32 = 1208490024; XRGB32 = 1745360936; BGR24 = 2627592; ABGR32 = 1210587144; XBGR32 = 1747458056; sizeofPoint = 8; aggr Point { 'D' 0 x; 'D' 4 y; }; defn Point(addr) { complex Point addr; print(" x ", addr.x, "\n"); print(" y ", addr.y, "\n"); }; sizeofRectangle = 16; aggr Rectangle { Point 0 min; Point 8 max; }; defn Rectangle(addr) { complex Rectangle addr; print("Point min {\n"); Point(addr.min); print("}\n"); print("Point max {\n"); Point(addr.max); print("}\n"); }; sizeofScreen = 32; aggr Screen { 'Y' 0 display; 'D' 8 id; 'Y' 16 image; 'Y' 24 fill; }; defn Screen(addr) { complex Screen addr; print(" display ", addr.display\Y, "\n"); print(" id ", addr.id, "\n"); print(" image ", addr.image\Y, "\n"); print(" fill ", addr.fill\Y, "\n"); }; sizeofDisplay = 264; aggr Display { QLock 0 qlock; 'D' 32 locking; 'D' 36 dirno; 'D' 40 fd; 'D' 44 reffd; 'D' 48 ctlfd; 'D' 52 imageid; 'D' 56 $local; 'Y' 64 error; 'Y' 72 devdir; 'Y' 80 windir; 'a' 88 oldlabel; 'U' 152 dataqid; 'Y' 160 white; 'Y' 168 black; 'Y' 176 opaque; 'Y' 184 transparent; 'Y' 192 image; 'Y' 200 buf; 'D' 208 bufsize; 'Y' 216 bufp; 'Y' 224 defaultfont; 'Y' 232 defaultsubfont; 'Y' 240 windows; 'Y' 248 screenimage; 'D' 256 _isnewdisplay; }; defn Display(addr) { complex Display addr; print("QLock qlock {\n"); QLock(addr.qlock); print("}\n"); print(" locking ", addr.locking, "\n"); print(" dirno ", addr.dirno, "\n"); print(" fd ", addr.fd, "\n"); print(" reffd ", addr.reffd, "\n"); print(" ctlfd ", addr.ctlfd, "\n"); print(" imageid ", addr.imageid, "\n"); print(" $local ", addr.$local, "\n"); print(" error ", addr.error\Y, "\n"); print(" devdir ", addr.devdir\Y, "\n"); print(" windir ", addr.windir\Y, "\n"); print(" oldlabel ", addr.oldlabel, "\n"); print(" dataqid ", addr.dataqid, "\n"); print(" white ", addr.white\Y, "\n"); print(" black ", addr.black\Y, "\n"); print(" opaque ", addr.opaque\Y, "\n"); print(" transparent ", addr.transparent\Y, "\n"); print(" image ", addr.image\Y, "\n"); print(" buf ", addr.buf\Y, "\n"); print(" bufsize ", addr.bufsize, "\n"); print(" bufp ", addr.bufp\Y, "\n"); print(" defaultfont ", addr.defaultfont\Y, "\n"); print(" defaultsubfont ", addr.defaultsubfont\Y, "\n"); print(" windows ", addr.windows\Y, "\n"); print(" screenimage ", addr.screenimage\Y, "\n"); print(" _isnewdisplay ", addr._isnewdisplay, "\n"); }; sizeofImage = 80; aggr Image { 'A' Display 0 display; 'D' 8 id; Rectangle 16 r; Rectangle 32 clipr; 'D' 48 depth; 'U' 52 chan; 'D' 56 repl; 'A' Screen 64 screen; 'A' Image 72 next; }; defn Image(addr) { complex Image addr; print(" display ", addr.display\Y, "\n"); print(" id ", addr.id, "\n"); print("Rectangle r {\n"); Rectangle(addr.r); print("}\n"); print("Rectangle clipr {\n"); Rectangle(addr.clipr); print("}\n"); print(" depth ", addr.depth, "\n"); print(" chan ", addr.chan, "\n"); print(" repl ", addr.repl, "\n"); print(" screen ", addr.screen\Y, "\n"); print(" next ", addr.next\Y, "\n"); }; sizeofRGB = 16; aggr RGB { 'U' 0 red; 'U' 4 green; 'U' 8 blue; }; defn RGB(addr) { complex RGB addr; print(" red ", addr.red, "\n"); print(" green ", addr.green, "\n"); print(" blue ", addr.blue, "\n"); }; sizeofFontchar = 8; aggr Fontchar { 'D' 0 x; 'b' 4 top; 'b' 5 bottom; 'C' 6 left; 'b' 7 width; }; defn Fontchar(addr) { complex Fontchar addr; print(" x ", addr.x, "\n"); print(" top ", addr.top, "\n"); print(" bottom ", addr.bottom, "\n"); print(" left ", addr.left, "\n"); print(" width ", addr.width, "\n"); }; sizeofSubfont = 40; aggr Subfont { 'Y' 0 name; 'd' 8 n; 'b' 10 height; 'C' 11 ascent; 'A' Fontchar 16 info; 'A' Image 24 bits; 'D' 32 ref; }; defn Subfont(addr) { complex Subfont addr; print(" name ", addr.name\Y, "\n"); print(" n ", addr.n, "\n"); print(" height ", addr.height, "\n"); print(" ascent ", addr.ascent, "\n"); print(" info ", addr.info\Y, "\n"); print(" bits ", addr.bits\Y, "\n"); print(" ref ", addr.ref, "\n"); }; LOG2NFCACHE = 6; NFCACHE = 64; NFLOOK = 5; NFSUBF = 2; MAXFCACHE = 1029; MAXSUBF = 50; DSUBF = 4; SUBFAGE = 10000; CACHEAGE = 10000; sizeofCachefont = 32; aggr Cachefont { 'U' 0 min; 'U' 4 max; 'D' 8 offset; 'Y' 16 name; 'Y' 24 subfontname; }; defn Cachefont(addr) { complex Cachefont addr; print(" min ", addr.min, "\n"); print(" max ", addr.max, "\n"); print(" offset ", addr.offset, "\n"); print(" name ", addr.name\Y, "\n"); print(" subfontname ", addr.subfontname\Y, "\n"); }; sizeofCacheinfo = 16; aggr Cacheinfo { 'u' 0 x; 'b' 2 width; 'C' 3 left; 'U' 4 value; 'u' 8 age; }; defn Cacheinfo(addr) { complex Cacheinfo addr; print(" x ", addr.x, "\n"); print(" width ", addr.width, "\n"); print(" left ", addr.left, "\n"); print(" value ", addr.value, "\n"); print(" age ", addr.age, "\n"); }; sizeofCachesubf = 24; aggr Cachesubf { 'U' 0 age; 'A' Cachefont 8 cf; 'A' Subfont 16 f; }; defn Cachesubf(addr) { complex Cachesubf addr; print(" age ", addr.age, "\n"); print(" cf ", addr.cf\Y, "\n"); print(" f ", addr.f\Y, "\n"); }; sizeofFont = 72; aggr Font { 'Y' 0 name; 'A' Display 8 display; 'd' 16 height; 'd' 18 ascent; 'd' 20 width; 'd' 22 nsub; 'U' 24 age; 'D' 28 maxdepth; 'D' 32 ncache; 'D' 36 nsubf; 'A' Cacheinfo 40 cache; 'A' Cachesubf 48 subf; 'A' Cachefont 56 sub; 'A' Image 64 cacheimage; }; defn Font(addr) { complex Font addr; print(" name ", addr.name\Y, "\n"); print(" display ", addr.display\Y, "\n"); print(" height ", addr.height, "\n"); print(" ascent ", addr.ascent, "\n"); print(" width ", addr.width, "\n"); print(" nsub ", addr.nsub, "\n"); print(" age ", addr.age, "\n"); print(" maxdepth ", addr.maxdepth, "\n"); print(" ncache ", addr.ncache, "\n"); print(" nsubf ", addr.nsubf, "\n"); print(" cache ", addr.cache\Y, "\n"); print(" subf ", addr.subf\Y, "\n"); print(" sub ", addr.sub\Y, "\n"); print(" cacheimage ", addr.cacheimage\Y, "\n"); }; complex Point ZP; complex Rectangle ZR; complex Display display; complex Font font; complex Image screen; complex Screen _screen; Nqwds = 2; Nqshift = 5; Nqmask = -1; Nqbits = 64; sizeofChannel = 48; aggr Channel { 'D' 0 s; 'U' 4 f; 'U' 8 n; 'D' 12 e; 'D' 16 freed; 'Y' 24 qentry; 'D' 32 nentry; 'D' 36 closed; 'a' 40 v; }; defn Channel(addr) { complex Channel addr; print(" s ", addr.s, "\n"); print(" f ", addr.f, "\n"); print(" n ", addr.n, "\n"); print(" e ", addr.e, "\n"); print(" freed ", addr.freed, "\n"); print(" qentry ", addr.qentry\Y, "\n"); print(" nentry ", addr.nentry, "\n"); print(" closed ", addr.closed, "\n"); print(" v ", addr.v, "\n"); }; CHANEND = 0; CHANSND = 1; CHANRCV = 2; CHANNOP = 3; CHANNOBLK = 4; sizeofAlt = 48; aggr Alt { 'A' Channel 0 c; 'Y' 8 v; 'D' 16 op; 'Y' 24 err; 'A' Channel 32 tag; 'D' 40 entryno; }; defn Alt(addr) { complex Alt addr; print(" c ", addr.c\Y, "\n"); print(" v ", addr.v\Y, "\n"); print(" op ", addr.op, "\n"); print(" err ", addr.err\Y, "\n"); print(" tag ", addr.tag\Y, "\n"); print(" entryno ", addr.entryno, "\n"); }; sizeofRef = 8; aggr Ref { 'D' 0 ref; }; defn Ref(addr) { complex Ref addr; print(" ref ", addr.ref, "\n"); }; sizeofCursor = 72; aggr Cursor { Point 0 offset; 'a' 8 clr; 'a' 40 set; }; defn Cursor(addr) { complex Cursor addr; print("Point offset {\n"); Point(addr.offset); print("}\n"); print(" clr ", addr.clr, "\n"); print(" set ", addr.set, "\n"); }; sizeofMouse = 24; aggr Mouse { 'D' 0 buttons; Point 8 xy; 'U' 16 msec; }; defn Mouse(addr) { complex Mouse addr; print(" buttons ", addr.buttons, "\n"); print("Point xy {\n"); Point(addr.xy); print("}\n"); print(" msec ", addr.msec, "\n"); }; sizeofMousectl = 72; aggr Mousectl { { 'D' 0 buttons; Point 8 xy; 'U' 16 msec; }; 'A' Channel 24 c; 'A' Channel 32 resizec; 'Y' 40 file; 'D' 48 mfd; 'D' 52 cfd; 'D' 56 pid; 'A' Image 64 image; }; defn Mousectl(addr) { complex Mousectl addr; print("Mouse {\n"); Mouse(addr+0); print("}\n"); print(" c ", addr.c\Y, "\n"); print(" resizec ", addr.resizec\Y, "\n"); print(" file ", addr.file\Y, "\n"); print(" mfd ", addr.mfd, "\n"); print(" cfd ", addr.cfd, "\n"); print(" pid ", addr.pid, "\n"); print(" image ", addr.image\Y, "\n"); }; sizeofMenu = 24; aggr Menu { 'Y' 0 item; 'Y' 8 gen; 'D' 16 lasthit; }; defn Menu(addr) { complex Menu addr; print(" item ", addr.item\Y, "\n"); print(" gen ", addr.gen\Y, "\n"); print(" lasthit ", addr.lasthit, "\n"); }; sizeofKeyboardctl = 32; aggr Keyboardctl { 'A' Channel 0 c; 'Y' 8 file; 'D' 16 consfd; 'D' 20 ctlfd; 'D' 24 pid; }; defn Keyboardctl(addr) { complex Keyboardctl addr; print(" c ", addr.c\Y, "\n"); print(" file ", addr.file\Y, "\n"); print(" consfd ", addr.consfd, "\n"); print(" ctlfd ", addr.ctlfd, "\n"); print(" pid ", addr.pid, "\n"); }; KF = 61440; Spec = 63488; PF = 63520; Kview = 63488; Khome = 61453; Kup = 61454; Kdown = 63488; Kpgup = 61455; Kprint = 61456; Kleft = 61457; Kright = 61458; Kpgdown = 61459; Kins = 61460; Kalt = 61461; Kshift = 61462; Kctl = 61463; Kend = 61464; Kscroll = 61465; Kscrolloneup = 61472; Kscrollonedown = 61473; Ksoh = 1; Kstx = 2; Ketx = 3; Keof = 4; Kenq = 5; Kack = 6; Kbs = 8; Knack = 21; Ketb = 23; Kdel = 127; Kesc = 27; Kbreak = 63585; Kcaps = 63588; Knum = 63589; Kmiddle = 63590; Kaltgr = 63591; Kmod4 = 63592; Kmouse = 63744; BACK = 0; HIGH = 1; BORD = 2; TEXT = 3; HTEXT = 4; NCOL = 5; sizeof_2_ = 8; aggr _2_ { 'd' 0 bc; 'd' 2 minwid; }; defn _2_(addr) { complex _2_ addr; print(" bc ", addr.bc, "\n"); print(" minwid ", addr.minwid, "\n"); }; sizeof_3_ = 8; aggr _3_ { 'Y' 0 ptr; { 'd' 0 bc; 'd' 2 minwid; }; }; defn _3_(addr) { complex _3_ addr; print(" ptr ", addr.ptr\Y, "\n"); print("_2_ {\n"); _2_(addr+0); print("}\n"); }; sizeofFrbox = 16; aggr Frbox { 'D' 0 wid; 'D' 4 nrune; { 'Y' 8 ptr; { 'd' 8 bc; 'd' 10 minwid; }; }; }; defn Frbox(addr) { complex Frbox addr; print(" wid ", addr.wid, "\n"); print(" nrune ", addr.nrune, "\n"); print("_3_ {\n"); _3_(addr+8); print("}\n"); }; complex Font font; complex Display display; sizeofFrame = 160; aggr Frame { 'A' Font 0 font; 'A' Display 8 display; 'A' Image 16 b; 'a' 24 cols; Rectangle 64 r; Rectangle 80 entire; 'Y' 96 scroll; 'A' Frbox 104 box; 'U' 112 p0; 'U' 116 p1; 'u' 120 nbox; 'u' 122 nalloc; 'u' 124 maxtab; 'u' 126 nchars; 'u' 128 nlines; 'u' 130 maxlines; 'u' 132 lastlinefull; 'u' 134 modified; 'A' Image 136 tick; 'A' Image 144 tickback; 'D' 152 ticked; }; defn Frame(addr) { complex Frame addr; print(" font ", addr.font\Y, "\n"); print(" display ", addr.display\Y, "\n"); print(" b ", addr.b\Y, "\n"); print(" cols ", addr.cols, "\n"); print("Rectangle r {\n"); Rectangle(addr.r); print("}\n"); print("Rectangle entire {\n"); Rectangle(addr.entire); print("}\n"); print(" scroll ", addr.scroll\Y, "\n"); print(" box ", addr.box\Y, "\n"); print(" p0 ", addr.p0, "\n"); print(" p1 ", addr.p1, "\n"); print(" nbox ", addr.nbox, "\n"); print(" nalloc ", addr.nalloc, "\n"); print(" maxtab ", addr.maxtab, "\n"); print(" nchars ", addr.nchars, "\n"); print(" nlines ", addr.nlines, "\n"); print(" maxlines ", addr.maxlines, "\n"); print(" lastlinefull ", addr.lastlinefull, "\n"); print(" modified ", addr.modified, "\n"); print(" tick ", addr.tick\Y, "\n"); print(" tickback ", addr.tickback\Y, "\n"); print(" ticked ", addr.ticked, "\n"); }; None = 0; Some = 1; All = 2; Clicktime = 500; sizeofFlayer = 280; aggr Flayer { Frame 0 f; 'D' 160 origin; 'D' 164 p0; 'D' 168 p1; 'D' 172 click; Point 176 warpto; 'Y' 184 textfn; 'D' 192 user0; 'Y' 200 user1; Rectangle 208 entire; Rectangle 224 scroll; Rectangle 240 lastsr; 'D' 256 visible; 'A' Flayer 264 lprev; 'A' Flayer 272 lnext; }; defn Flayer(addr) { complex Flayer addr; print("Frame f {\n"); Frame(addr.f); print("}\n"); print(" origin ", addr.origin, "\n"); print(" p0 ", addr.p0, "\n"); print(" p1 ", addr.p1, "\n"); print(" click ", addr.click, "\n"); print("Point warpto {\n"); Point(addr.warpto); print("}\n"); print(" textfn ", addr.textfn\Y, "\n"); print(" user0 ", addr.user0, "\n"); print(" user1 ", addr.user1\Y, "\n"); print("Rectangle entire {\n"); Rectangle(addr.entire); print("}\n"); print("Rectangle scroll {\n"); Rectangle(addr.scroll); print("}\n"); print("Rectangle lastsr {\n"); Rectangle(addr.lastsr); print("}\n"); print(" visible ", addr.visible, "\n"); print(" lprev ", addr.lprev\Y, "\n"); print(" lnext ", addr.lnext\Y, "\n"); }; Up = 0; Down = 1; Kbel = 7; Ksyn = 22; sizeofSection = 24; aggr Section { 'D' 0 nrunes; 'Y' 8 text; 'A' Section 16 next; }; defn Section(addr) { complex Section addr; print(" nrunes ", addr.nrunes, "\n"); print(" text ", addr.text\Y, "\n"); print(" next ", addr.next\Y, "\n"); }; sizeofRasp = 16; aggr Rasp { 'D' 0 nrunes; 'A' Section 8 sect; }; defn Rasp(addr) { complex Rasp addr; print(" nrunes ", addr.nrunes, "\n"); print(" sect ", addr.sect\Y, "\n"); }; sizeofText = 2824; aggr Text { Rasp 0 rasp; 'd' 16 nwin; 'd' 18 front; 'u' 20 tag; 'C' 22 lock; 'a' 24 l; }; defn Text(addr) { complex Text addr; print("Rasp rasp {\n"); Rasp(addr.rasp); print("}\n"); print(" nwin ", addr.nwin, "\n"); print(" front ", addr.front, "\n"); print(" tag ", addr.tag, "\n"); print(" lock ", addr.lock, "\n"); print(" l ", addr.l, "\n"); }; sizeofReadbuf = 8200; aggr Readbuf { 'd' 0 n; 'a' 2 data; }; defn Readbuf(addr) { complex Readbuf addr; print(" n ", addr.n, "\n"); print(" data ", addr.data, "\n"); }; RHost = 0; RKeyboard = 1; RMouse = 2; RPlumb = 3; RResize = 4; NRes = 5; complex Text text; complex Cursor deadmouse; complex Cursor lockarrow; complex Cursor cursor; complex Flayer which; complex Flayer work; complex Text cmd; complex Mousectl mousectl; complex Keyboardctl keyboardctl; complex Mouse mousep; complex Channel plumbc; complex Channel hostc; Tversion = 0; Tstartcmdfile = 1; Tcheck = 2; Trequest = 3; Torigin = 4; Tstartfile = 5; Tworkfile = 6; Ttype = 7; Tcut = 8; Tpaste = 9; Tsnarf = 10; Tstartnewfile = 11; Twrite = 12; Tclose = 13; Tlook = 14; Tsearch = 15; Tsend = 16; Tdclick = 17; Tstartsnarf = 18; Tsetsnarf = 19; Tack = 20; Texit = 21; Tplumb = 22; Ttclick = 23; Tmenucmd = 24; Tmenucmdsend = 25; TMAX = 26; Hversion = 0; Hbindname = 1; Hcurrent = 2; Hnewname = 3; Hmovname = 4; Hgrow = 5; Hcheck0 = 6; Hcheck = 7; Hunlock = 8; Hdata = 9; Horigin = 10; Hunlockfile = 11; Hsetdot = 12; Hgrowdata = 13; Hmoveto = 14; Hclean = 15; Hdirty = 16; Hcut = 17; Hsetpat = 18; Hdelname = 19; Hclose = 20; Hsetsnarf = 21; Hsnarflen = 22; Hack = 23; Hexit = 24; Hplumb = 25; Hmenucmd = 26; HMAX = 27; sizeofHeader = 8; aggr Header { 'b' 0 type; 'b' 1 count0; 'b' 2 count1; 'a' 3 data; }; defn Header(addr) { complex Header addr; print(" type ", addr.type, "\n"); print(" count0 ", addr.count0, "\n"); print(" count1 ", addr.count1, "\n"); print(" data ", addr.data, "\n"); }; complex Text cmd; complex Cursor cursor; complex Flayer which; complex Flayer work; complex Flayer flru; complex Text threadmain:t; complex Rectangle threadmain:r; complex Flayer threadmain:nwhich; complex Flayer flunlink:fl; complex Flayer fllinkhead:fl; complex Flayer warpmouse:l; complex Point warpmouse:p; complex Flayer current:nw; complex Text current:t; complex Flayer cycle:l; complex Flayer closeup:l; complex Text closeup:t; complex Text findl:t; complex Flayer duplicate:l; complex Rectangle duplicate:r; complex Font duplicate:f; complex Text duplicate:t; complex Flayer duplicate:nl; complex Text snarf:t; complex Flayer snarf:l; complex Text cut:t; complex Flayer cut:l; complex Text paste:t; complex Flayer scrorigin:l; complex Text scrorigin:t; complex Rasp raspc:r; complex Rasp getcol:r; complex Rasp del:r; complex Rasp ctlw:r; complex Rasp ctlu:r; complex Flayer center:l; complex Text center:t; complex Flayer onethird:l; complex Text onethird:t; complex Rectangle onethird:s; complex Text flushtyping:t; complex Flayer type:l; complex Text type:t; complex Flayer gettext:l; complex Text gettext:t; complex Flayer scrtotal:l;