perm filename EEDIT.HDI[EAL,HE] blob
sn#704682 filedate 1983-03-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 1) EEDIT.HDR[EAL,HE] and 2) ALHDR.2[EAL,HE] 3-30-83 12:01 pages 1,1
C00007 00003
C00010 00004
C00012 00005
C00018 00006
C00022 00007
C00025 00008
C00029 00009
C00031 ENDMK
C⊗;
1) EEDIT.HDR[EAL,HE] and 2) ALHDR.2[EAL,HE] 3-30-83 12:01 pages 1,1
**** File 1) EEDIT.HDR[EAL,HE]/1P/1L
1) const
1) (* Constants from EDIT *)
**** File 2) ALHDR.2[EAL,HE]/1P/1L
2) (* The following bits are used during calls to the ARM servo *)
2) const
2) YARMDEV = 1; (* device numbers *)
2) YHANDDEV = 2;
2) BARMDEV = 3;
2) BHANDDEV = 4;
2) VISEDEV = 5;
2) DRIVERDEV = 6;
2) GARMDEV = 7;
2) GHANDDEV = 8;
2) RARMDEV = 9;
2) RHANDDEV = 10;
2) YELARM = 1B; (* Yellow arm *)
2) BLUARM = 4B; (* Blue arm *)
2) FTABLE = 400B; (* Force trans (C) in table coordinates *)
2) FHAND = 0B; (* " " " " hand coordinate system *)
2) XFORCE = 0B; (* Force along X direction of C *)
2) YFORCE = 1000B; (* " " Y " " " *)
2) ZFORCE = 2000B; (* " " Z " " " *)
2) XMOMENT = 3000B; (* Moment about X direction of C *)
2) YMOMENT = 4000B; (* " " Y " " " *)
2) ZMOMENT = 5000B; (* " " Z " " " *)
2) FSTOP = 10000B; (* In addition to starting cmon, stop arm *)
2) SIGMAG = 20000B; (* Test only magnitude of forces *)
2) SIGGE = 100000B; (* Start cmon if force ≥ specified value *)
2) SIGLT = 0B; (* " " " " < " " *)
2) barmpower = 1B; (* bit defs - used in response to initarmscmd *)
2) yarmpower = 2B;
2) garmpower = 4B;
2) rarmpower = 10B;
2) garmcal = 400B;
2) rarmcal = 1000B;
2) nullingcb = 1B; (* control bits for trajectory specs *)
2) wobblecb = 2B;
2) durlbcb = 20B; (* Duration: lower, upper & exact bounds *)
2) durubcb = 40B;
2) dureqcb = 60B;
2) veloccb = 100B;
2) codecb = 200B;
2) viaptcb = 400B;
2) deprptcb = 1000B;
2) apprptcb = 2000B;
2) destptcb = 10000B;
2) (* Constants from EDIT *)
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/20L
1) strngp = ↑strng;
1) statementp = ↑statement;
**** File 2) ALHDR.2[EAL,HE]/3P/11L
2) vectorp = ↑vector;
2) transp = ↑trans;
2) strngp = ↑strng;
2) eventp = ↑event;
2) framep = ↑frame;
2) statementp = ↑statement;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/27L
1) envheaderp = ↑envheader;
**** File 2) ALHDR.2[EAL,HE]/3P/22L
2) pdbp = ↑pdb;
2) envheaderp = ↑envheader;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/31L
1) linerecp = ↑linerec;
1) cursorpp = ↑cursorp; {Ron's style, not mine}
1) (* This one is used whenever a pointer is needed for which the *)
1) (* definition is missing from this file; naturally, all *)
1) (* pointers use the same space *)
1) dump = ↑integer;
1) (* datatype definitions *)
**** File 2) ALHDR.2[EAL,HE]/3P/27L
2) messagep = ↑message;
2) linerecp = ↑linerec;
2) cursorpp = ↑cursorp; {Ron's style, not mine}
2) (* the following get used for misc record types - i.e. we fake out Pascal's type
2) checking mechanism *)
2) s4p = ↑s4;
2) s4 = record next: s4p; filler: array [1..3] of integer; end;
2) s8p = ↑s8;
2) s8 = record next: s8p; filler: array [1..7] of integer; end;
2) s11p = ↑s11;
2) s11 = record next: s11p; filler: array [1..10] of integer; end;
2) (* datatype definitions *)
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/49L
1) cstring = packed array [1..10] of ascii;
**** File 2) ALHDR.2[EAL,HE]/4P/10L
2) u = (used,free);
2) vector = record case u of
2) used: (refcnt: integer; val: array [1..3] of real);
2) free: (next: vectorp);
2) end;
2) trans = record case u of
2) used: (refcnt: integer; val: array [1..3,1..4] of real);
2) free: (next: transp);
2) end;
2) cstring = packed array [1..10] of ascii;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/61L
1) (* statement definitions *)
**** File 2) ALHDR.2[EAL,HE]/4P/33L
2) event = record
2) next: eventp; (* all events are on one big list *)
2) count: integer;
2) waitlist: pdbp;
2) end;
2) frame = record
2) vari: varidefp; (* back pointer to variable name & info *)
2) calcs: nodep; (* affixment info *)
2) case ftype: boolean of (* frame = true, device = false *)
2) true: (valid: integer; val, fdepr: transp; dcntr: integer; dev: framep);
2) false: (mech: integer; case sdev: boolean of
2) true: (sdest: real); false: (tdest,appr,depr: transp));
2) (* sdev = true for scalar devices, false for frames *)
2) end;
2) (* statement definitions *)
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/192L
1) vectype: (v: dump);
1) transtype: (t: dump);
1) strngtype: (length: integer; str: strngp) ); (* also used by commentnodes *)
**** File 2) ALHDR.2[EAL,HE]/7P/46L
2) vectype: (v: vectorp);
2) transtype: (t: transp);
2) strngtype: (length: integer; str: strngp) ); (* also used by commentnodes *)
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/198L
1) errornode: (eexpr: nodep);
1) forvalnode: (fvar: enventryp; fstep: scalar);
1) destnode: (loc: nodep; code: statementp);
1) viaptnode: (vlist: boolean; via,duration,velocity: nodep; vcode: statementp);
1) cmonnode: (cmon: statementp; errhandlerp: boolean);
1) procdefnode:(ptype: datatypes; level: 0..255;
1) pname, paramlist: varidefp; body: statementp);
1) end;
**** File 2) ALHDR.2[EAL,HE]/7P/52L
2) forvalnode: (fvar: enventryp; fstep: scalar);
2) arrivalnode:(evar: varidefp);
2) deprnode,
2) apprnode,
2) destnode: (loc: nodep; code: statementp);
2) viaptnode: (vlist: boolean; via,duration,velocity: nodep; vcode: statementp);
2) durnode: (durrel: reltypes; durval: nodep);
2) sfacnode,
2) wobblenode,
2) swtnode: (clval: nodep);
2) nullingnode,
2) wristnode,
2) cwnode: (notp: boolean); (* true = nonulling/don't zero wrist/counter_clockwise *)
2) ffnode: (ff: nodep; csys, pdef: boolean); (* true = world, false = hand *)
2) forcenode: (ftype: forcetypes; frel: reltypes; fval, fvec, fframe: nodep);
2) stiffnode: (fv, mv, coc: nodep);
2) gathernode: (gbits: integer);
2) cmonnode: (cmon: statementp; errhandlerp: boolean);
2) errornode: (eexpr: nodep);
2) calcnode: (rigid, frame1: boolean; other: framep; case tvarp: boolean of
2) false: (tval: transp); true: (tvar: enventryp) );
2) arraydefnode: (numdims: 1..10; bounds: nodep; combnds: boolean);
2) bnddefnode: (lower, upper: nodep);
2) bndvalnode: (lb, ub, mult: integer);
2) waitlistnode: (who: pdbp; when: integer);
2) procdefnode:(ptype: datatypes; level: 0..255;
2) pname, paramlist: varidefp; body: statementp);
2) tlistnode: (tok: tokenp);
2) dimnode: (time, distance, angle, dforce: integer);
2) end;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/277L
1) envheader = packed record
**** File 2) ALHDR.2[EAL,HE]/9P/1L
2) (* process descriptor blocks & environment record definitions *)
2) queuetypes = (nullqueue,nowrunning,runqueue,inputqueue,eventqueue,sleepqueue,
2) forcewait,devicewait,joinwait,proccall);
2) pdb = packed record
2) nextpdb,next: pdbp; (* for list of all/active pdb's *)
2) level: 0..255; (* lexical level *)
2) mode: 0..255; (* expression/statement/sub-statement *)
2) priority: 0..255;
2) status: queuetypes; (* what are we doing *)
2) env: envheaderp;
2) spc: statementp; (* current statement *)
2) epc: nodep; (* current expression (if any) *)
2) sp: nodep; (* intermediate value stack *)
2) cm: cmoncbp; (* if we're a cmon point to our definition *)
2) mech: framep; (* current device being used *)
2) linenum: integer; (* used by editor/debugger *)
2) case procp: boolean of (* true if we're a procedure *)
2) true: (opdb: pdbp; (* pdb to restore when procedure exits *)
2) pdef: nodep); (* procedure definition node *)
2) false: (evt: eventp; (* event to signal when process goes away *)
2) sdef: statementp); (* first statement where process was defined *)
2) end;
2) envheader = packed record
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/290L
1) vectype: (v: dump);
1) transtype: (t: dump);
1) frametype: (f: dump);
1) eventtype: (evt: dump);
1) strngtype: (length: integer; str: strngp);
**** File 2) ALHDR.2[EAL,HE]/9P/40L
2) vectype: (v: vectorp);
2) transtype: (t: transp);
2) frametype: (f: framep);
2) eventtype: (evt: eventp);
2) strngtype: (length: integer; str: strngp);
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/311L
1) pdb: dump;
1) evt: dump;
1) fbits: integer; (* bits for force sensing *)
**** File 2) ALHDR.2[EAL,HE]/9P/61L
2) pdb: pdbp;
2) evt: eventp;
2) fbits: integer; (* bits for force sensing *)
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/317L
1) (* print related records: *)
**** File 2) ALHDR.2[EAL,HE]/10P/1L
2) (* definition of AL-ARM messages *)
2) msgtypes = (initarmscmd,calibcmd,killarmscmd,wherecmd,
2) abortcmd,stopcmd,movehdrcmd,movesegcmd,
2) centercmd,operatecmd,movedonecmd,signalcmd,readjtcmd,drivecmd,
2) setccmd,forcesigcmd,forceoffcmd,biasoncmd,biasoffcmd,setstiffcmd,
2) zerowristcmd,wristcmd,gathercmd,getgathercmd,readadccmd,writedaccmd,
2) errorcmd,floatcmd);
2) errortypes = (noerror,noarmsol,timerr,durerr,toolong,useopr,nosuchdev,featna,
2) unkmess,srvdead,adcdead,nozind,exjtfc,paslim,nopower,badpot,devbusy,
2) baddev,timout,panicb);
2) message = record
2) cmd: msgtypes;
2) ok: boolean;
2) case integer of
2) 1: (dev, bits, n: integer;
2) (* (dev, bits, n, evt: integer; (* for arm code version *)
2) evt: eventp;
2) dur: real;
2) case integer of
2) 1: (v1,v2,v3: real);
2) 2: (sfac,wobble,pos: real);
2) 3: (val,angle,mag: real);
2) 4: (max,min: real);
2) 5: (error: errortypes));
2) 2: (fv1,fv2,fv3,mv1,mv2,mv3: real); (* may never use these... *)
2) 3: (t: array [1..6] of real);
2) end;
2) interr = record
2) case integer of
2) 0: (i: integer);
2) 1: (err,foo: errortypes);
2) end;
2) (* print related records: *)
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/354L
1) (* filedepth: integer;
1) curpage: integer;
**** File 2) ALHDR.2[EAL,HE]/12P/22L
2) filedepth: integer;
2) curpage: integer;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/363L
1) curErrhandler, curCmon: statementp; *)
1) d1: array[1..13] of dump;
1) endOfLine, backup, expandmacros, flushcomments, dimCheck: boolean;
1) (* semiseen, shownline: boolean;
1) eofError: boolean;
1) inMove,inCoblock: boolean; *)
1) d2,d3,d4,d5,d6: boolean;
1) curtoken: token;
**** File 2) ALHDR.2[EAL,HE]/12P/31L
2) curErrhandler, curCmon: statementp;
2) endOfLine, backup, expandmacros, flushcomments, dimCheck: boolean;
2) semiseen, shownline: boolean;
2) eofError: boolean;
2) inMove,inCoblock: boolean;
2) curtoken: token;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/375L
1) (* curInt, activeInts, readQueue, allPdbs: dump;
1) curEnv, sysEnv: envheaderp;
1) clkQueue: nodep;
1) allEvents: dump;
1) STLevel: integer;
1) etime: integer;
1) curtime: integer;
1) stime: integer;
1) msg: dump;
1) inputp: integer; *)
1) d10: array[1..14] of integer;
1) debugLevel: integer;
**** File 2) ALHDR.2[EAL,HE]/12P/41L
2) curInt, activeInts, readQueue, allPdbs: pdbp;
2) curEnv, sysEnv: envheaderp;
2) clkQueue: nodep;
2) allEvents: eventp;
2) STLevel: integer; (* set by GO *)
2) etime: integer; (* used by eval *)
2) curtime: integer; (* Time of day, in ticks *)
2) stime: integer; (* used for clock queue on 10 *)
2) msg: messagep; (* for AL-ARM interaction *)
2) inputp: integer; (* current offset into inputLine array above *)
2) debugLevel: integer;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/400L
1) debugPdbs: array [0..10] of dump;
1) screenheight,dispHeight: integer;
**** File 2) ALHDR.2[EAL,HE]/12P/65L
2) debugPdbs: array [0..10] of pdbp;
2) screenheight,dispHeight: integer;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/408L
1) eCurInt: dump;
1) dProg: statementp;
**** File 2) ALHDR.2[EAL,HE]/12P/73L
2) eCurInt: pdbp;
2) dProg: statementp;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/412L
1) backUp: boolean;
1) eSingleThreadMode: boolean;
**** File 2) ALHDR.2[EAL,HE]/12P/77L
2) eBackup: boolean;
2) eSingleThreadMode: boolean;
***************
**** File 1) EEDIT.HDR[EAL,HE]/2P/418L
1) curToken: token;
1) (* Various device & variable pointers *)
1) speedfactor: enventryp;
1) barm: dump;
1) (* Various constant pointers *)
1) xhat,yhat,zhat,nilvect: dump;
1) niltrans: dump;
1) bpark, ypark, gpark, rpark: dump; (* arm park positions *)
**** File 2) ALHDR.2[EAL,HE]/12P/83L
2) eCurToken: token;
2) (* Various device & variable pointers *)
2) speedfactor: enventryp;
2) barm: framep;
2) (* Various constant pointers *)
2) xhat,yhat,zhat,nilvect: vectorp;
2) niltrans: transp;
2) bpark, ypark, gpark, rpark: transp; (* arm park positions *)
***************