; ; system-wide definition of per-task impure pointers ; ; refer to TKB manual, appendix B ("Detailed Task Image File Structure"), ; section B.3.1 ("Low Memory Context"), for explanation. .title vext .globl $VEXTA ;make sure vector area is linked .enabl gbl .psect $$VEX1,D,GBL,RW,REL,OVR base = . . = . + 20 ;skip over area used by PL/I clustered resident runtime ;for FCS vectoring (not used in RMS version built with ;PLJRES, but offsets must be constant for all libraries ;- we dont want to rule out use of FCS version...). ;(note that things will blow up if PL/I actually uses ;more than this; currently it uses 0 thru 13 octal) vx$fms == .-base .word 0 ;PL/I FMS interface: pointer to user impure area, ; must be initially 0 meaning no impure area yet vx$fme == .-base .word 0,0 ;PL/I FMS interface: 2-word error/status block vx$fmd == .-base .word $FDV ;PL/I FMS interface: pointer to forms driver entry ; point, which could be in cluster vx$tkl == .-base .limit ;PLIENT (to allow PL/I-callable C routines to be in a ; cluster library): task lowest address (stack limit) vx$tkh == vx$tkl + 2 ;.limit also gives task highest address, want it or not vx$nrg == .-base .word fmsnrg ;PL/I FMS interface (debugging version): pointer to ; error message for wrong number of arguments vx$stl == .-base .word fmsstl ;PL/I FMS interface (debugging version): pointer to ; warning message for string longer than variable vx$fmi == .-base .word 0 ;PL/I FMS interface: flag for initializing FCS - must ; initially be 0 meaning FCS not initialized .end