ref: 5d9dbc72e1c63b378023a283e53e43dc01a7b98c
dir: /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 = 40;
aggr Tm
{
'D' 0 sec;
'D' 4 min;
'D' 8 hour;
'D' 12 mday;
'D' 16 mon;
'D' 20 year;
'D' 24 wday;
'D' 28 yday;
'a' 32 zone;
'D' 36 tzoff;
};
defn
Tm(addr) {
complex Tm addr;
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");
};
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");
};
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");
};
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;
sizeofMemdata = 40;
aggr Memdata
{
'Y' 0 base;
'Y' 8 bdata;
'D' 16 ref;
'Y' 24 imref;
'D' 32 allocd;
};
defn
Memdata(addr) {
complex Memdata addr;
print(" base ", addr.base\Y, "\n");
print(" bdata ", addr.bdata\Y, "\n");
print(" ref ", addr.ref, "\n");
print(" imref ", addr.imref\Y, "\n");
print(" allocd ", addr.allocd, "\n");
};
Frepl = 1;
Fsimple = 2;
Fgrey = 4;
Falpha = 8;
Fcmap = 16;
Fbytes = 32;
sizeofMemimage = 168;
aggr Memimage
{
Rectangle 0 r;
Rectangle 16 clipr;
'D' 32 depth;
'D' 36 nchan;
'U' 40 chan;
'Y' 48 cmap;
'A' Memdata 56 data;
'D' 64 zero;
'U' 68 width;
'Y' 72 layer;
'U' 80 flags;
'a' 84 shift;
'a' 112 mask;
'a' 140 nbits;
};
defn
Memimage(addr) {
complex Memimage addr;
print("Rectangle r {\n");
Rectangle(addr.r);
print("}\n");
print("Rectangle clipr {\n");
Rectangle(addr.clipr);
print("}\n");
print(" depth ", addr.depth, "\n");
print(" nchan ", addr.nchan, "\n");
print(" chan ", addr.chan, "\n");
print(" cmap ", addr.cmap\Y, "\n");
print(" data ", addr.data\Y, "\n");
print(" zero ", addr.zero, "\n");
print(" width ", addr.width, "\n");
print(" layer ", addr.layer\Y, "\n");
print(" flags ", addr.flags, "\n");
print(" shift ", addr.shift, "\n");
print(" mask ", addr.mask, "\n");
print(" nbits ", addr.nbits, "\n");
};
sizeofMemcmap = 4864;
aggr Memcmap
{
'a' 0 cmap2rgb;
'a' 768 rgb2cmap;
};
defn
Memcmap(addr) {
complex Memcmap addr;
print(" cmap2rgb ", addr.cmap2rgb, "\n");
print(" rgb2cmap ", addr.rgb2cmap, "\n");
};
sizeofMemsubfont = 32;
aggr Memsubfont
{
'Y' 0 name;
'd' 8 n;
'b' 10 height;
'C' 11 ascent;
'A' Fontchar 16 info;
'A' Memimage 24 bits;
};
defn
Memsubfont(addr) {
complex Memsubfont 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");
};
Simplesrc = 1;
Simplemask = 2;
Replsrc = 4;
Replmask = 8;
Fullmask = 16;
sizeofMemdrawparam = 104;
aggr Memdrawparam
{
'A' Memimage 0 dst;
Rectangle 8 r;
'A' Memimage 24 src;
Rectangle 32 sr;
'A' Memimage 48 mask;
Rectangle 56 mr;
'D' 72 op;
'U' 76 state;
'U' 80 mval;
'U' 84 mrgba;
'U' 88 sval;
'U' 92 srgba;
'U' 96 sdval;
};
defn
Memdrawparam(addr) {
complex Memdrawparam addr;
print(" dst ", addr.dst\Y, "\n");
print("Rectangle r {\n");
Rectangle(addr.r);
print("}\n");
print(" src ", addr.src\Y, "\n");
print("Rectangle sr {\n");
Rectangle(addr.sr);
print("}\n");
print(" mask ", addr.mask\Y, "\n");
print("Rectangle mr {\n");
Rectangle(addr.mr);
print("}\n");
print(" op ", addr.op, "\n");
print(" state ", addr.state, "\n");
print(" mval ", addr.mval, "\n");
print(" mrgba ", addr.mrgba, "\n");
print(" sval ", addr.sval, "\n");
print(" srgba ", addr.srgba, "\n");
print(" sdval ", addr.sdval, "\n");
};
complex Memimage memwhite;
complex Memimage memblack;
complex Memimage memopaque;
complex Memimage memtransparent;
complex Memcmap memdefcmap;
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;
Kmouse = 63744;
sizeofPoint2 = 24;
aggr Point2
{
'F' 0 x;
'F' 8 y;
'F' 16 w;
};
defn
Point2(addr) {
complex Point2 addr;
print(" x ", addr.x, "\n");
print(" y ", addr.y, "\n");
print(" w ", addr.w, "\n");
};
sizeofPoint3 = 32;
aggr Point3
{
'F' 0 x;
'F' 8 y;
'F' 16 z;
'F' 24 w;
};
defn
Point3(addr) {
complex Point3 addr;
print(" x ", addr.x, "\n");
print(" y ", addr.y, "\n");
print(" z ", addr.z, "\n");
print(" w ", addr.w, "\n");
};
sizeofQuaternion = 32;
aggr Quaternion
{
'F' 0 r;
'F' 8 i;
'F' 16 j;
'F' 24 k;
};
defn
Quaternion(addr) {
complex Quaternion addr;
print(" r ", addr.r, "\n");
print(" i ", addr.i, "\n");
print(" j ", addr.j, "\n");
print(" k ", addr.k, "\n");
};
sizeofRFrame = 72;
aggr RFrame
{
Point2 0 p;
Point2 24 bx;
Point2 48 by;
};
defn
RFrame(addr) {
complex RFrame addr;
print("Point2 p {\n");
Point2(addr.p);
print("}\n");
print("Point2 bx {\n");
Point2(addr.bx);
print("}\n");
print("Point2 by {\n");
Point2(addr.by);
print("}\n");
};
sizeofRFrame3 = 128;
aggr RFrame3
{
Point3 0 p;
Point3 32 bx;
Point3 64 by;
Point3 96 bz;
};
defn
RFrame3(addr) {
complex RFrame3 addr;
print("Point3 p {\n");
Point3(addr.p);
print("}\n");
print("Point3 bx {\n");
Point3(addr.bx);
print("}\n");
print("Point3 by {\n");
Point3(addr.by);
print("}\n");
print("Point3 bz {\n");
Point3(addr.bz);
print("}\n");
};
sizeofTriangle3 = 96;
aggr Triangle3
{
Point3 0 p0;
Point3 32 p1;
Point3 64 p2;
};
defn
Triangle3(addr) {
complex Triangle3 addr;
print("Point3 p0 {\n");
Point3(addr.p0);
print("}\n");
print("Point3 p1 {\n");
Point3(addr.p1);
print("}\n");
print("Point3 p2 {\n");
Point3(addr.p2);
print("}\n");
};
Portho = 0;
Ppersp = 1;
sizeofVertex = 64;
aggr Vertex
{
Point3 0 p;
Point3 32 n;
};
defn
Vertex(addr) {
complex Vertex addr;
print("Point3 p {\n");
Point3(addr.p);
print("}\n");
print("Point3 n {\n");
Point3(addr.n);
print("}\n");
};
sizeofViewport = 80;
aggr Viewport
{
{
Point2 0 p;
Point2 24 bx;
Point2 48 by;
};
'A' Memimage 72 fb;
};
defn
Viewport(addr) {
complex Viewport addr;
print("RFrame {\n");
RFrame(addr+0);
print("}\n");
print(" fb ", addr.fb\Y, "\n");
};
sizeofCamera = 384;
aggr Camera
{
{
Point3 0 p;
Point3 32 bx;
Point3 64 by;
Point3 96 bz;
};
Viewport 128 viewport;
'F' 208 fov;
'F' 216 clipn;
'F' 224 clipf;
'a' 232 proj;
'D' 360 ptype;
'Y' 368 updatefb;
'Y' 376 develop;
};
defn
Camera(addr) {
complex Camera addr;
print("RFrame3 {\n");
RFrame3(addr+0);
print("}\n");
print("Viewport viewport {\n");
Viewport(addr.viewport);
print("}\n");
print(" fov ", addr.fov, "\n");
print(" clipn ", addr.clipn, "\n");
print(" clipf ", addr.clipf, "\n");
print(" proj ", addr.proj, "\n");
print(" ptype ", addr.ptype, "\n");
print(" updatefb ", addr.updatefb\Y, "\n");
print(" develop ", addr.develop\Y, "\n");
};
OBJVGeometric = 0;
OBJVTexture = 1;
OBJVNormal = 2;
OBJVParametric = 3;
OBJNVERT = 4;
OBJEPoint = 0;
OBJELine = 1;
OBJEFace = 2;
OBJECurve = 3;
OBJECurve2 = 4;
OBJESurface = 5;
OBJGGlobal = 0;
OBJGSmoothing = 1;
OBJGMerging = 2;
OBJHTSIZE = 17;
sizeof_2_ = 32;
aggr _2_
{
'F' 0 x;
'F' 8 y;
'F' 16 z;
'F' 24 w;
};
defn
_2_(addr) {
complex _2_ addr;
print(" x ", addr.x, "\n");
print(" y ", addr.y, "\n");
print(" z ", addr.z, "\n");
print(" w ", addr.w, "\n");
};
sizeof_3_ = 24;
aggr _3_
{
'F' 0 u;
'F' 8 v;
'F' 16 vv;
};
defn
_3_(addr) {
complex _3_ addr;
print(" u ", addr.u, "\n");
print(" v ", addr.v, "\n");
print(" vv ", addr.vv, "\n");
};
sizeof_4_ = 24;
aggr _4_
{
'F' 0 i;
'F' 8 j;
'F' 16 k;
};
defn
_4_(addr) {
complex _4_ addr;
print(" i ", addr.i, "\n");
print(" j ", addr.j, "\n");
print(" k ", addr.k, "\n");
};
sizeof_5_ = 32;
aggr _5_
{
{
'F' 0 x;
'F' 8 y;
'F' 16 z;
'F' 24 w;
};
{
'F' 0 u;
'F' 8 v;
'F' 16 vv;
};
{
'F' 0 i;
'F' 8 j;
'F' 16 k;
};
};
defn
_5_(addr) {
complex _5_ addr;
print("_2_ {\n");
_2_(addr+0);
print("}\n");
print("_3_ {\n");
_3_(addr+0);
print("}\n");
print("_4_ {\n");
_4_(addr+0);
print("}\n");
};
sizeofOBJVertex = 32;
aggr OBJVertex
{
{
{
'F' 0 x;
'F' 8 y;
'F' 16 z;
'F' 24 w;
};
{
'F' 0 u;
'F' 8 v;
'F' 16 vv;
};
{
'F' 0 i;
'F' 8 j;
'F' 16 k;
};
};
};
defn
OBJVertex(addr) {
complex OBJVertex addr;
print("_5_ {\n");
_5_(addr+0);
print("}\n");
};
sizeofOBJVertexArray = 16;
aggr OBJVertexArray
{
'A' OBJVertex 0 verts;
'D' 8 nvert;
};
defn
OBJVertexArray(addr) {
complex OBJVertexArray addr;
print(" verts ", addr.verts\Y, "\n");
print(" nvert ", addr.nvert, "\n");
};
sizeofOBJElem = 24;
aggr OBJElem
{
'Y' 0 indices;
'D' 8 nindex;
'D' 12 type;
'A' OBJElem 16 next;
};
defn
OBJElem(addr) {
complex OBJElem addr;
print(" indices ", addr.indices\Y, "\n");
print(" nindex ", addr.nindex, "\n");
print(" type ", addr.type, "\n");
print(" next ", addr.next\Y, "\n");
};
sizeofOBJObject = 24;
aggr OBJObject
{
'Y' 0 name;
'A' OBJElem 8 child;
'A' OBJObject 16 next;
};
defn
OBJObject(addr) {
complex OBJObject addr;
print(" name ", addr.name\Y, "\n");
print(" child ", addr.child\Y, "\n");
print(" next ", addr.next\Y, "\n");
};
sizeofOBJ = 200;
aggr OBJ
{
'a' 0 vertdata;
'a' 64 objtab;
};
defn
OBJ(addr) {
complex OBJ addr;
print(" vertdata ", addr.vertdata, "\n");
print(" objtab ", addr.objtab, "\n");
};
K↑ = 0;
K↓ = 1;
K← = 2;
K→ = 3;
Krise = 4;
Kfall = 5;
KR↑ = 6;
KR↓ = 7;
KR← = 8;
KR→ = 9;
KR↺ = 10;
KR↻ = 11;
Kcam0 = 12;
Kcam1 = 13;
Kcam2 = 14;
Kcam3 = 15;
Kscrshot = 16;
Ke = 17;
Scamno = 0;
Sfov = 1;
Scampos = 2;
Scambx = 3;
Scamby = 4;
Scambz = 5;
Se = 6;
sizeofCamcfg = 128;
aggr Camcfg
{
Point3 0 p;
Point3 32 lookat;
Point3 64 up;
'F' 96 fov;
'F' 104 clipn;
'F' 112 clipf;
'D' 120 ptype;
};
defn
Camcfg(addr) {
complex Camcfg addr;
print("Point3 p {\n");
Point3(addr.p);
print("}\n");
print("Point3 lookat {\n");
Point3(addr.lookat);
print("}\n");
print("Point3 up {\n");
Point3(addr.up);
print("}\n");
print(" fov ", addr.fov, "\n");
print(" clipn ", addr.clipn, "\n");
print(" clipf ", addr.clipf, "\n");
print(" ptype ", addr.ptype, "\n");
};
complex Mousectl mctl;
complex Channel drawc;
complex Camera maincam;
complex Fmt vfmt:f;
complex Point2 vfmt:p;
complex Fmt Vfmt:f;
complex Point3 Vfmt:p;
complex Triangle3 depthcmp:ta;
complex Triangle3 depthcmp:tb;
complex Point3 drawaxis:op;
complex Point3 drawaxis:px;
complex Point3 drawaxis:py;
complex Point3 drawaxis:pz;
complex OBJ threadmain:objmesh;
MOUSE = 0;
RESIZE = 1;
DRAW = 2;