perm filename SEMBLK[S,AIL]8 blob sn#198156 filedate 1976-01-25 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00045 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00004 00002				     VARIABLE
C00007 00003	 			       ITEM     
C00012 00004				  DEFINE NAME           
C00015 00005			       INTEGER CONSTANT     
C00017 00006	 		        STRING  CONSTANT
C00020 00007	  			DEFINE PARAMETER
C00022 00008				      CASEC 
C00024 00009				      FORC
C00026 00010				FORC LOOP VARIABLE
C00030 00011				      WHILEC
C00032 00012	    			      FORLC
C00034 00013			     ARRAY CALCULATOR INFO BLK
C00036 00014	 			      ARRAYS        
C00039 00015	 			   INDEXED TEMP   
C00042 00016	           	      STRING AND ARITH TEMPS
C00045 00017			     BNDBLK (if # of dims ≤5)
C00048 00018			INDEXED TEMP IF WE KNOW EVERYTHING
C00050 00019				    PROC. DESCR. (PD)    
C00053 00020				     ADCONS         
C00055 00021	 			 BYTE EXPRESSIONS 
C00057 00022	 		    PROC. DESCR. ADDRESS (PDA),,0
C00059 00023	 			  DISPLAY TEMP    
C00061 00024	 			  SPROOT SEMBLK   
C00063 00025			     BLOCK FOR CALLING A PROC.
C00066 00026	 		      PROCEDURE (USER DEFINED)
C00069 00027	 			BUILT-IN PROCEDURE
C00072 00028	 			      BLOCK          
C00075 00029	 			PROCEDURE BLOCK # 2
C00078 00030	 		    PROCEDURE FORMAL PARAMETER
C00081 00031				   FIELD SEMBLK      
C00083 00032				    CASE SEMBLK      
C00086 00033	 			  BUCKET SEMBLK   
C00089 00034	 			   RESERVED WORDS 
C00091 00035	 		        SECOND BLOCK SEMBLK    
C00094 00036				RECORD CLASS
C00096 00037				RECORD CLASS (second semblk)
C00098 00038				SUBFIELD INDEXED TEMP
C00100 00039				RECORD CLASS LISTS
C00102 00040	 			   FOR STATEMENT       
C00104 00041	 			   MESSAGE BLOCK   
C00106 00042	 			    SLS SYMBOL     
C00109 00043				   SLS SIMPLE       
C00111 00044	 			    SLS ARRAY     
C00113 00045			          SLS PROCEDURE    
C00116 ENDMK
C⊗;
			     VARIABLE

	|-----------------------|-----------------------|
%TLINK:	| unused		| bucket pointer	|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: | string number		| character count	|
	|-----------------------|-----------------------|
	|	Byte pointer for Ascii for pname	|
	|-----------------------|-----------------------|
$TBITS:	|		type bits			|
	|-----------------------|-----------------------|
$SBITS:	| semantic bits		|     displ lev	|lex lev|
	|-----------------------|-----------------------|
$ADR	|fixup for second word	|  fixup (1'st word for |
	| for strings		|	   for strings)	|
	|-----------------------|-----------------------|
$ACNO:	| ←← pd semblk for disp.| # of AC in which	|
	|  lev. if label    *[1]| variable is loaded	|	
	|-----------------------|-----------------------|
$VAL:	|		not used 			|
	|-----------------------|-----------------------|
$VAL2:	| global #		|			|
	|-----------------------|-----------------------|
%RVARB:	| ←prev. ident on this	| →→ next ident on this	|
	| varb ring		|  varb ring		|
	|-----------------------|-----------------------|
%RSTR:	| ←prev semblk with this| →→ next semblk with 	|
	|	pname		|	this pname	|
	|-----------------------|-----------------------|

*[1] only if non-simple procedure.  If pointer variable, →→ to
	record class.


 			       ITEM     

	|-----------------------|-----------------------|
%TLINK:	| unused  		| bucket pointer→	|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: | string number		| character count	|
	|-----------------------|-----------------------|
	|	Byte pointer for Ascii for pname	|
	|-----------------------|-----------------------|
$TBITS:	|		item and types			|
	|-----------------------|-----------------------|
$SBITS:	| semantic bits		|     displ lev	|lex lev|
	|-----------------------|-----------------------|
$ADR	|                     	|                       |
	|             		|	               	|
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|                       |                    	|	
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		| integer const		|
      	|           		| semblk→		|
	|-----------------------|-----------------------|
%RVARB:	| ←prev. ident on this	| →→ next ident on this	|
	| varb ring		|  varb ring		|
	|-----------------------|-----------------------|
%RSTR:	| ←prev semblk with this| →→ next semblk with 	|
	|	pname		|	this pname	|
	|-----------------------|-----------------------|



			  DEFINE NAME           
	
	|-----------------------|-----------------------|
%TLINK:	| Macro body string	| bucket pointer→	|
%TBUCK:	| →Const. semantics	|			|
	|-----------------------|-----------------------|
$PNAME: | string number		| character count	|
	|-----------------------|-----------------------|
	|	Byte pointer for Ascii for pname	|
	|-----------------------|-----------------------|
$TBITS:	|		      define   			|
	|-----------------------|-----------------------|
$SBITS:	|                      	| |lex lev              |
	|-----------------------|-----------------------|
$ADR	|                     	| old varb              |
	|             		| while params scanned 	|
	|-----------------------|-----------------------|
$ACNO:	|         1st parameter of param list→          |
	|                       |                    	|	
	|-----------------------|-----------------------|
$VAL:	| # of parameters       | # of parameters	|
	|-----------------------|-----------------------|
VAL2:	|           		|               	|
      	|           		|         		|
	|-----------------------|-----------------------|
%RVARB:	| ←prev. ident on this	| →→ next ident on this	|
	| varb ring		|  varb ring		|
	|-----------------------|-----------------------|
%RSTR:	| ←prev semblk with this| →→ next semblk with 	|
	|	pname		|	this pname	|
	|-----------------------|-----------------------|

$VAL has duplicate entries bacause while scanning a macro body
of a redefinition, the old definition still holds.  The right
half is used to store the newly redefined macro body's # of
parameters while the left half is used for the old def.
(very short-lived).


		       INTEGER CONSTANT     

	|-----------------------|-----------------------|
%TLINK:	| unused  		| arith→		|
%TBUCK:	|			| const. bucket ptr.	|
	|-----------------------|-----------------------|
$PNAME: |  not used		| not used		|
	|-----------------------|-----------------------|
	|	           not used			|
	|-----------------------|-----------------------|
$TBITS:	| const			| {flotng		|
	|             		|  integer}            	|
	|-----------------------|-----------------------|
$SBITS:	| semantic bits		|     displ lev	|lex lev|
	|-----------------------|-----------------------|
$ADR	| not used            	|     fixup - standard  |
	|-----------------------|-----------------------|
$ACNO:	| not used              | Standard          	|
	|-----------------------|-----------------------|
$VAL:	|	 	Value of constant		|
	|-----------------------|-----------------------|
$VAL2:	|         	  Not used			|
	|-----------------------|-----------------------|
%RVARB:	| ←prev. ident on this	| →→ next ident on this	|
	| varb ring  (constant ring)     varb ring	|
	|-----------------------|-----------------------|
%RSTR:	| 		    not used
	|-----------------------|-----------------------|










 		        STRING  CONSTANT

	|-----------------------|-----------------------|
%TLINK:	| unused  		| strcon bucket pointer	|
%TBUCK:	|			| (unless macro body or	|
	|			|   special delimiters)	|
	|-----------------------|-----------------------|
$PNAME: | string number		| character count	|
	|-----------------------|-----------------------|
	|	Byte pointer for Ascii for pname	|
	|-----------------------|-----------------------|
$TBITS:	|		cnst	+ string		|
	|-----------------------|-----------------------|
$SBITS:	| semantic bits		|     0		|    0  |
	|-----------------------|-----------------------|
$ADR	| second word fixup   	| first word fixup      |
	|-----------------------|-----------------------|
$ACNO:	| not used              | standard          	|
	|-----------------------|-----------------------|
$VAL:	|		        | fixup for 1st Ascii	|
	|			|    word for preload	|
	|-----------------------|-----------------------|
$VAL2:	|  cnt - #strins - #remops *[1]			|
	|-----------------------|-----------------------|
%RVARB:	| ←prev. (CONSTR ring links)	next →→		|
	|-----------------------|-----------------------|
%RSTR:	| ←prev semblk with this| →→ next semblk with 	|
	|	pname		|	this pname	|
	|-----------------------|-----------------------|



*[1] 	= 0 implies may be deleted

  			DEFINE PARAMETER

	|-----------------------|-----------------------|
LINK:	| unused  		| unused		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: | string number		| character count	|
	|-----------------------|-----------------------|
	|	Byte pointer for Ascii for pname	|
	|-----------------------|-----------------------|
$TBITS:	|		formal, define			|
	|-----------------------|-----------------------|
$SBITS:	|			|		|lex lev|
	|-----------------------|-----------------------|
$ADR	|                     	|                       |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        | parameter		|
	|                       | number             	|	
	|-----------------------|-----------------------|
$VAL2:	|           		|			|
	|-----------------------|-----------------------|
%RVARB:	| ←previous            	| → next 		|
	| define param		|  define param		|
	|-----------------------|-----------------------|
%RSTR:	| ←prev semblk with this| →→ next semblk with 	|
	|	pname		|	this pname	|
	|-----------------------|-----------------------|



			      CASEC 

	|-----------------------|-----------------------|
%TLINK	| →semblk of casec  	|                	|
%TBUCK:	| to be executed	|			|
	|-----------------------|-----------------------|
$PNAME: |  			| 			|
	|-----------------------|-----------------------|
        |  			| 			|
	|-----------------------|-----------------------|
$TBITS:	|		      define   			|
	|-----------------------|-----------------------|
$SBITS:	|  			|			|
	|-----------------------|-----------------------|
$ADR	|                     	| old varb while        |
	|             		| scanning casecs      	|
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|		  casec number		 	|
	|-----------------------|-----------------------|
RVARB:	|			|			|	
	|-----------------------|-----------------------|
%RSTR   | 			|			|
	|-----------------------|-----------------------|





			      FORC

	|-----------------------|-----------------------|
%TLINK:	| →semblk of forc body	|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |           loop variable step value  	        |
	|-----------------------|-----------------------|
	|	    loop variable final value	        |
	|-----------------------|-----------------------|
$TBITS:	|		      define   			|
	|-----------------------|-----------------------|
$SBITS:	|  			|   			|
	|-----------------------|-----------------------|
$ADR	|                     	| old varb while        |
	|             		| scanning body        	|
	|-----------------------|-----------------------|
$ACNO:	|	        FORC parameter semblk          	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|	 initial loop variable value and      	|
      	|          current loop variable value 		|
	|-----------------------|-----------------------|
%RVARB:	|  			|  			|
	|-----------------------|-----------------------|
%RSTR:	| 			|  			|
	|-----------------------|-----------------------|

			FORC LOOP VARIABLE
          STRING CONSTANT--LIKE A MACRO-ACTUAL PARAMETER

	|-----------------------|-----------------------|
%TLINK:	|  			|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |           		|                       |
	|-----------------------|-----------------------|
	|	    		|                       |
	|-----------------------|-----------------------|
$TBITS:	| cnst		        | string		|
	|-----------------------|-----------------------|
$SBITS:	|  			|   			|
	|-----------------------|-----------------------|
$ADR	|                     	| 			|
	|-----------------------|-----------------------|
$ACNO:	|	        	|      			|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|	 		|			|
	|-----------------------|-----------------------|
%RVARB:	|  			|  			|
	|-----------------------|-----------------------|
%RSTR:	| 			|  			|
	|-----------------------|-----------------------|

			      WHILEC

	|-----------------------|-----------------------|
%TLINK:	| →semblk of whilec	|  			|
%TBUCK:	| body			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	| 		      define	                |
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	| old varb while        |
	|			| scanning body         |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|






    			      FORLC

	|-----------------------|-----------------------|
%TLINK:	| →semblk of FORLC 	|  			|
%TBUCK:	| body			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	| 		      define	                |
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	| old varb while        |
	|			| scanning body         |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		addr parameter semblk		|
	|-----------------------|-----------------------|
$VAL2:	|      →ring of list of actual parameters 	|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|


		     ARRAY CALCULATOR INFO BLK
			     (IDXBLK)		           

	|-----------------------|-----------------------|
%TLINK:	| ←partial calc's   	| array→		|
%TBUCK:	| (    		)	|			|
	|-----------------------|-----------------------|
DIMPRC: |        # of dimensions processed so far       |
	|-----------------------|-----------------------|
	|	                | BNDBLK entry of	|
	|	                | current index 	|
	|-----------------------|-----------------------|
$TBITS:	| 		        |   	                |
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	|                       |
	|-----------------------|-----------------------|
NUMDIM:	|                # of dimensions                |
	|-----------------------|-----------------------|
$VAL:	| current displacement due to constant indices	|
	|-----------------------|-----------------------|
$VAL2:	|                       |                 	|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|


 			      ARRAYS        

	|-----------------------|-----------------------|
%TLINK:	|         		|  			|
%TBUCK:	| ←BNDBLK		| standard		|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|------------------- standard  -----------------| 
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|           SBSCRP + ( salp ) + types           |
	|	             ( own  )           	|
	|-----------------------|-----------------------|
$SBITS:	|                    standard                   |
	|-----------------------|-----------------------|
TOTDSP:	| total displacement  	| fixup-standard        |
	| (i.e. [000] loc. if   |               	|
	| know (builtin)        |               	|
	|-----------------------|-----------------------|
NUMDIM:	| →RCLASS               | standard          	|
	|-----------------------|-----------------------|
ARLOC: 	| -1 if string	        | addr of array desc.	|
	| 0 otherwise           | if know (builtin)	|
	|-----------------------|-----------------------|
$VAL2:	| Global # if global	| integr const 		|
	|	                | semblk if item	|
	|-----------------------|-----------------------|
%RVARB:	|		    ←standard→			|
	|-----------------------|-----------------------|
%RSTR:	| 		    ←standard→		 	|
	|-----------------------|-----------------------|


















 			   INDEXED TEMP   

	|-----------------------|-----------------------|
%TLINK:	| ←array  		| next temp on 		|
%TBUCK:	|			| RCTEMP→		|
	|-----------------------|-----------------------|
$PNAME: |            temp ID # 1 (if cortmp)       	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|       	  reloc + types         	|
	|-----------------------|-----------------------|
$SBITS:	| 		indxed  +  ptnac  		|
	|    	        artemp  +  inuse        	|
	|-----------------------|-----------------------|
$ADR	|                     	| fixup if AC stored    |
	|	                | before used as index	|
	|-----------------------|-----------------------|
$ACNO:	| →record class if that | AC # of calculated	|
	| 			| index         	|
	|-----------------------|-----------------------|
$VAL:	|       total displacement due to		|
	|     constant indices + [000] loc if known	|
	|-----------------------|-----------------------|
$VAL2:	| →array descriptor	| ≠0 for indexed   	|
	| semblk if need        | subfield      	|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|----------------- T Temp linkage --------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|


           	      STRING AND ARITH TEMPS

	|-----------------------|-----------------------|
%TLINK:	|       		| next temp on		|
%TBUCK:	|			| RCTEMP →		|
	|-----------------------|-----------------------|
$PNAME: |                temp ID # 1 (unique)*        	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|                     types               	|
	|-----------------------|-----------------------|
$SBITS:	|             |artemp|     |cortmp|             |
	|	      |	     |  +  | inac |            	|
	|	      |sttemp|     |acsave|     	|
	|-----------------------|-----------------------|
$ADR	|                     	| fixup for arith temps |
	|-----------------------|-----------------------|
$ACNO:	| for records,          | AC # for arith temp,	|
     	| → class ,c          	| string temps          |
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	|		   ttemp linkage		|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|

*if so then abs val is id no and temp is "avail", even
though the inuse bit is on




		     BNDBLK (if # of dims ≤5)
  	                  (after ARRDEC)             

	|-----------------------|-----------------------|
%TLINK:	| Bits describing	| total size this	|
%TBUCK:	| dimension		| dimension		|
	|-----------------------|-----------------------|
$PNAME: | Lower bound         	| π this dimension  	|
	| this dimension        |               	|
	|-----------------------|-----------------------|
       	|	              ditto             	|
	|-----------------------|-----------------------|
$TBITS:	|     		        |               	|
	|-----------------------|-----------------------|
$SBITS:	|                     ditto                     |
	|-----------------------|-----------------------|
$ADR:	|                      	|                       |
	|-----------------------|-----------------------|
$ACNO:	|                     ditto                 	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|                     ditto            		|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
NDIMSD:	| # dims declared	| 		 	|
	|-----------------------|-----------------------|




		INDEXED TEMP IF WE KNOW EVERYTHING
			    (FIXARR)                 

	|-----------------------|-----------------------|
%TLINK:	| ←array  		|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME:	|       	        |               	|
	|-----------------------|-----------------------|
	|                       |                       |
	|-----------------------|-----------------------|
$PNAME: | 0                   	| type             	|
	|-----------------------|-----------------------|
$SBITS:	|inuse, artemp, fixarr  |			|
	|-----------------------|-----------------------|
$ADR:	|                      	| address               |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|

			    PROC. DESCR. (PD)    

	|-----------------------|-----------------------|
%TLINK:	| ←PDA,,0 		|   			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                | fixup used for pname	|
	|	                | when emitting PD	|
	|-----------------------|-----------------------|
$TBITS:	|       	        |               	|
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	| -1 if allocated      	| fixup if not allocat. |
       	| 0 otherwise          	| address if allocat.   |
	|-----------------------|-----------------------|
$ACNO:	| PCNT at end of        | JRST exit         	|
       	| Markstack loop        | & loc 		|
	|-----------------------|-----------------------|
$VAL:	| (BAIL) COORD	        | proc. formal param	|
     	| AT PRDEC	        | fixup			|
	|-----------------------|-----------------------|
$VAL2:	| (BAIL) ADDR OF       	| local variables fixup	|
      	| LAST WORD OF CODE	|              		|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|
			     ADCONS         

	|-----------------------|-----------------------|
%TLINK:	| ←semantics of thing	|  			|
%TBUCK:	| being described	|			|
	|-----------------------|-----------------------|
$PNAME: | Pname (or templ #) from object semantics 	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|           	      integr            	|
	|-----------------------|-----------------------|
$SBITS:	|           $SBITS from object semantics        |
	|-----------------------|-----------------------|
$ADR:	| type of object       	| fixups                |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	| 		←ADCON RING (Adrtab)→   	|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|






 			 BYTE EXPRESSIONS 

	|-----------------------|-----------------------|
%TLINK:	|         		|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|     		        |               	|
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	| ptr at blk of         |
      	|                       | address part      	|
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        | ptr at length semblk	|
	|-----------------------|-----------------------|
$VAL2:	|           		| ptr at right bit 	|
       	|		  	| semblk                |
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|


 		    PROC. DESCR. ADDRESS (PDA),,0

	|-----------------------|-----------------------|
%TLINK:	| ←PD     		|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|      		        |               	|
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	| adr of const          |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|





 			  DISPLAY TEMP    

	|-----------------------|-----------------------|
%TLINK:	|         		|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	| 0   		        | integr        	|
	|-----------------------|-----------------------|
$SBITS:	| prac + inac + distmp  | 0                     |
	|-----------------------|-----------------------|
$ADR:	|                      	| display level         |
	|-----------------------|-----------------------|
$ACNO:	|                       | AC #              	|
	|-----------------------|-----------------------|
$VAL:	| -1               (anding mask)0              	|
	|-----------------------|-----------------------|
$VAL2:	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	| ←previous distmp	| next distmp→		|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|

 			  SPROOT SEMBLK   

	|-----------------------|-----------------------|
%TLINK:	|         		|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|       	        |               	|
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	|                       |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		| forked proc  semblk→	|
%RVARB:	|		  	| -1 if sprout (apply)	|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|


		     BLOCK FOR CALLING A PROC.

	|-----------------------|-----------------------|
%TLINK:	| ←procedure semantics	| next formal param	|
%TBUCK:	|			| if not built-in→	|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|             T-bits from proc. semblk          |
	|-----------------------|-----------------------|
$SBITS:	|             S-bits from proc. semblk          |
	|-----------------------|-----------------------|
$ADR:	|          FTAPRM Stack pointer at RDYCAL       |
	|-----------------------|-----------------------|
$ACNO:	|                       | CHAIN for value   	|
       	|                       | pntvar TEMPS.     	|
	|-----------------------|-----------------------|
$VAL:	| # of string elements  | # of non-string       |
      	| to be removed after   | elements to be removed|
       	| call      		| after call   		|
	|-----------------------|-----------------------|
$VAL2:	|      Byte ptr. for next param if Built-in 	|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|

 		      PROCEDURE (USER DEFINED)

	|-----------------------|-----------------------|
%TLINK:	| 2nd blk of proc.	| standard		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                    standard              	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
	|	           FORWARD RECUR                |
$TBITS:	|         PROCED + INPROG         + types       |
	|                   FORIRN                      |
	|-----------------------|-----------------------|
$SBITS:	|                RTNDON + levels                |
       	|                ANYTYP |                       |
	|-----------------------|-----------------------|
$ADR:	| fixup for jump past  	| ADR (not FORWRD)      |
      	| stack-adjust          | fixup (FORWRD! INPROG)|
      	| (sometimes)           |                    	|
	|-----------------------|-----------------------|
$ACNO:	| record type           | fixup for JRST EXIT-	|
      	| 		        | addr for " " after 	|
     	|		        | PRUP			|
	|-----------------------|-----------------------|
$VAL:	| SPROUT DEFAULTS       | PD semblk→		|
	|-----------------------|-----------------------|
$VAL2:	| PCNT at prdec.	|              		|
	|-----------------------|-----------------------|
%RVARB:	|		    ←standard→			|
	|-----------------------|-----------------------|
%RSTR:	| 	  	    ←standard→		 	|
	|-----------------------|-----------------------|
 			BUILT-IN PROCEDURE

	|-----------------------|-----------------------|
%TLINK:	|         		| standard		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: | 0                   	| # chars          	|
	|-----------------------|-----------------------|
	| 		 point 7, . + 8                 |
	|-----------------------|-----------------------|
$TBITS:	| own + Biltin + types + if fwynavr then the	|
       	| ext request goes out as foot instead of foo   |
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	| fixups                |
	|-----------------------|-----------------------| )
$ACNO:	|                       |                   	| )
	|-----------------------|-----------------------| )
$VAL:	|		        |			| ) 6-bit param
	|-----------------------|-----------------------| ) descriptors -
$VAL2:	|          <used during call | for ptr.>        | ) 0 terminates 
	|-----------------------|-----------------------| ) high order bit = 1
%RVARB:	| ←Previous Biltin 	| Next Biltin→		| ) →value is defaultable
	|-----------------------|-----------------------| )
%RSTR:	| 	   ASCII for Pname Starts here		|
	|-----------------------|-----------------------|

 			      BLOCK          
		(second block on next page)

	|-----------------------|-----------------------|
%TLINK:	| ptr at second block	| ident. bucket of this	|
%TBUCK:	| semblk (if any)	| block or cpnd. st	|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|---------       Name of block        ----------|
	|	             (if any)           	|
	|-----------------------|-----------------------|
$TBITS:	| AC project mask       | ?                   0	|
	|-----------------------|-----------------------|
$SBITS:	| fixup for a later     | levels if not         |
       	| XCALL <ARREL>         | compound state        | 
	|-----------------------|-----------------------|
$ADR:	| old TTOP if not      	| old VARB if not       |
      	| compound state       	| compound state        |
	|-----------------------|-----------------------|
$ACNO:	|                       | kill set semblk   	|
	|-----------------------|-----------------------|
$VAL:	|  the "OR" of all symbols def. in this Block	|
	|-----------------------|-----------------------|
$VAL2:	| first word of cods    | DDT level    		|
	|-----------------------|-----------------------|
%RVARB:	| 0 		  	| first ident on this 	|
        |		  	| blocks VARB RING    	|
        |		  	| (if any) →          	|
	|-----------------------|-----------------------|
%RSTR:	|             ← standard (if name) →	 	|
	|-----------------------|-----------------------|


 			PROCEDURE BLOCK # 2

	|-----------------------|-----------------------|
%TLINK:	| ← first formal param	| TTEMP while an inner	|
%TBUCK:	|			| proc is compiled →	|
	|-----------------------|-----------------------|
%SAVET: | ← old TTOP at PRDEC 	| old TPROC at PRDEC →	|
	|-----------------------|-----------------------|
$NPRMS:	| # arith. params + 1   | 2* # string params	|
	|-----------------------|-----------------------|
$BLKLP: |   Index into BLKLIS (i.e. BLKIDX) at PRDEC	|
	|-----------------------|-----------------------|
$SBITS:	|                       | addr of JRST around   |
      	|                      	| proc                  |
	|-----------------------|-----------------------|
$ADR:	|                      	|                       |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|               -1 if TOPLEV at PRDEC		|
	|-----------------------|-----------------------|
$VAL2:	| rsce rec class  0	| DDT level for this	|
       	|		  	| proc			|
	|-----------------------|-----------------------|
%RVARB:	| RCTEMP while inner  	| header of chain of	|
      	| proc is compiled   	| subfield temps 	|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|


 		    PROCEDURE FORMAL PARAMETER

	|-----------------------|-----------------------|
%TLINK:	|         		| standard		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|----------------    standard    ---------------|  
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|             [value ] 	                 	|
        |      	      [      ]  +  types 	        |
        |      	      [refrnc]                  	|
	|-----------------------|-----------------------|
$SBITS:	|                    standard                   |
	|-----------------------|-----------------------|
$ADR:	|                      	| stack displacement    |
       	|                      	| from ret. addr-       |
       	|                      	| this param            |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		| → semblk for default	|
       	|           		| value (vary) for 	|
       	|           		| value param        	|
	|-----------------------|-----------------------|
%RVARB:	| ← previous formal	| next formal →		|
	|-----------------------|-----------------------|
%RSTR:	|                  ← standard →		 	|
	|-----------------------|-----------------------|

			   FIELD SEMBLK      

	|-----------------------|-----------------------|
%TLINK:	|         		|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-----------------------|-----------------------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|     		        |               	|
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	| byte pointer          |
      	|                      	| (if has one) →        |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	| 0 → word     1 → Lh    2 → Rh    3 → byte	|
	|-----------------------|-----------------------|
$VAL2:	|           		| ref semblk   		|
	|-----------------------|-----------------------|
%RVARB:	| ptr to right bit      | ptr to length semblk	|
       	| semblk	  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|

			    CASE SEMBLK      

	|-----------------------|-----------------------|
%TLINK:	|          	   old CASTAK			|
%TBUCK:	|			 			|
	|-----------------------|-----------------------|
$PNAME: |                     	|                  	|
	|-------    standard (if block named)    -------|
	|	                |               	|
	|-----------------------|-----------------------|
$TBITS:	|               Tbits if expr. case            	|
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	| fixup for compare    	| JRST out fixups       |
	|-----------------------|-----------------------|
$ACNO:	|                       | AC # if expr case 	|
	|-----------------------|-----------------------|
$VAL:	| lowest # seen         | highest # seen   	|
	|-----------------------|-----------------------|
$VAL2:	|          >0 → implicit numbering >0→          |
      	|        explicit numbering 0 → no S's yet	|
	|-----------------------|-----------------------|
%RVARB:	|       		|                       |
	|-----------------------|-----------------------|
%RSTR:	|  	      ← standard (if named) →           |
	|-----------------------|-----------------------|

 			  BUCKET SEMBLK   

	|-----------------------|-----------------------|
%TLINK:	| ←----o  		|  	        o----→	| )
%TBUCK:	|			|			| )
	|-----------------------|-----------------------| )
$PNAME: | ←----o              	|               o----→	| )
	|-----------------------|-----------------------| )
	|	                |               	| )
	|-----------------------|-----------------------| )
$TBITS:	|          	        |               	| ) To lists of
	|-----------------------|-----------------------| ) identifiers,
$SBITS:	|                       |                       | ) arithmetic consts,
	|-----------------------|-----------------------| ) or string consts.
$ADR:	|                      	|                       | )
	|-----------------------|-----------------------| )
$ACNO:	|                       |                   	| )
	|-----------------------|-----------------------| )
$VAL:	|		        |			| )
	|-----------------------|-----------------------| )
$VAL2:	| ←----o    		|              	o----→	| )
	|-----------------------|-----------------------| 
%RVARB:	| ←----o	  	| 		o----→	|
	|-----------------------|-----------------------|
BLKLEN-1| 0			| previous bucket       |
        |   			| semblk →              |
	|-----------------------|-----------------------|



 			   RESERVED WORDS 

	|-----------------------|-----------------------|
%TLINK:	| ← previous r. word	| standard		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |                     	| # of chars       	|
	|-----------------------|-----------------------|
	|	         Point 7, . + 2            	|
	|-----------------------|-----------------------|
$TBITS:	| Res + CLSIDX 	        | token #       	|
	|-----------------------|-----------------------|
$SBITS:	| 	   ASCIZ for name starts here           |
	|-----------------------|-----------------------|
$ADR:	|                      	|                       |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|---------- block is    |
$VAL:	|		        |	    only 5     	|
	|-----------------------|---------- (+ more if  |
$VAL2:	|           		|           name> 5     |
	|-----------------------|---------- chars) words|
%RVARB:	|		  	| 	    long	|        
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|






 		        SECOND BLOCK SEMBLK    
                       (may not be allocated, but usually is)

	|-----------------------|-----------------------|
%TLINK:	|←first semblk		| →second semblk of	|
%TBUCK:	|			| enclosing block	|
	|-----------------------|-----------------------|
$PNAME: |                     	|    page # of BEGIN	|
	|-----------------------|-----------------------|
	|	  ASCII for line # of BEGIN     	|
	|-----------------------|-----------------------|
$TBITS:	|      		        |               	|
	|-----------------------|-----------------------|
$SBITS:	|                       |                       |
	|-----------------------|-----------------------|
$ADR:	|                      	|                       |
	|-----------------------|-----------------------|
$ACNO:	|           QSTACK OWNER FOR CLEANUPS          	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|             (BAIL) ADDR OF (BAIL)             |
      	|        LAST WORD OF CODE COORD AT BEGIN	|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|







			RECORD CLASS


	|-----------------------|-----------------------|
%TLINK:	| →second semblk	|  standard		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |	standard       	                  	|
	|-----------------------|-----------------------|
	|	standard        	               	|
	|-----------------------|-----------------------|
$TBITS:	|      		         PNTVAR ! SHORT 	|
	|-----------------------|-----------------------|
$SBITS:	|       standard                                |
	|-----------------------|-----------------------|
$ADR:	| 		0      	|  addr of descriptor   |
	|-----------------------|-----------------------|
$ACNO:	|           					|
	|-----------------------|-----------------------|
$VAL:	|		        |		0	|
	|-----------------------|-----------------------|
$VAL2:	|PCNT at PRDEC		|			|
	|-----------------------|-----------------------|
%RVARB:	|	standard  	  			|
	|-----------------------|-----------------------|
%RSTR:	|	standard	  		 	|
	|-----------------------|-----------------------|







			RECORD CLASS (second semblk)


	|-----------------------|-----------------------|
%TLINK:	| ←first subfield	|  holder for ttemp	|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
%SAVET: | ←old ttop at PRDEC    | →old tproc at PRDEC	|
	|-----------------------|-----------------------|
$NPRMS:	|			   number of fields     |
	|-----------------------|-----------------------|
$BLKLP:	| index into BLKLIS at prdec(of procedure)	|
	|-----------------------|-----------------------|
$SBITS:	|       	       |addr of jrst around proc|
	|-----------------------|-----------------------|
$ADR:	| 		       	|  			|
	|-----------------------|-----------------------|
$ACNO:	|           					|
	|-----------------------|-----------------------|
$VAL: 	|	-1 if toplev at prdec			|
	|-----------------------|-----------------------|
$VAL2:	|←handler proc semblk	|	ddt level	|
	|-----------------------|-----------------------|
%RVARB:	|						|
	|-----------------------|-----------------------|
%RSTR:	|						|
	|-----------------------|-----------------------|







			SUBFIELD INDEXED TEMP


	|-----------------------|-----------------------|
%TLINK:	| ←parent field record	|  →TTEMP list		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$pname: | 		temp id #			|
	|-----------------------|-----------------------|
	|			   			|
	|-----------------------|-----------------------|
$TBITS:	| 				types		|
	|-----------------------|-----------------------|
$SBITS:	| PTRAC INDXED INUSE    |			|
	|-----------------------|-----------------------|
$ADR:	| 		       	| standard for indexed temp|
	|-----------------------|-----------------------|
$ACNO:	| ←class id, if pntvar	| ac #			|
	| ←dependent temp [1]	|			|
	|-----------------------|-----------------------|
$VAL: 	|	constant index				|
	|-----------------------|-----------------------|
$VAL2:	|			| ≠0 if a subfield temp	|
	|-----------------------|-----------------------|
%RVARB:	|	subfield temp chain			|
	|-----------------------|-----------------------|
%RSTR:	|						|
	|-----------------------|-----------------------|


[1] If string subfield indexed temp, then
    $ACNO may point to a record temp which must be remopped
    whenever this temp is.  
			RECORD CLASS LISTS


	|-----------------------|-----------------------|
%TLINK:	| 						|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$pname: | 			|	count		|
	|-----------------------|-----------------------|
	|			  byte pntr to first	|
	|-----------------------|-----------------------|
$TBITS:	| 			  PNTVAR!SHORT!LSTBIT	|
	|-----------------------|-----------------------|
$SBITS:	| 			  byte pntr to last	|
	|-----------------------|-----------------------|
$ADR:	| →class id 1	       	| →class id 2		|
	|-----------------------|-----------------------|
$ACNO:	| →class id 3		| →class id 4		|
	|-----------------------|-----------------------|
$VAL: 	|	    5		|	    6		|
	|-----------------------|-----------------------|
$VAL2:	|	    7		| 	    8		|
	|-----------------------|-----------------------|
%RVARB:	|	    9		|	   10		|
	|-----------------------|-----------------------|
%RSTR:	|	   11		|	   12		|
	|-----------------------|-----------------------|







 			   FOR STATEMENT       

	|-----------------------|-----------------------|
%TLINK:	|         		|  			|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$DATA:  | fixup for jumpout loc	| addr to Jump Back to	|
	|-----------------------|-----------------------|
$DATA2:	| Bits word             |               	|
	|-----------------------|-----------------------|
$DATA3:	| fixup for done        | addr of stavt for	|
       	|                       | coroutine             |
	|-----------------------|-----------------------|
$DATA4:	| ptr to step           | ptr to index          |
	|-----------------------|-----------------------|
$ADR:	| ac # for coroutine   	| fixup for statement   |
	|-----------------------|-----------------------|
$ACNO:	| continue fixup        | ac # for index    	|
	|-----------------------|-----------------------|
$VAL:	| level of for loop     |	0		|
	|-----------------------|-----------------------|
$VAL2:	| → temp semblk		| fixup for loope	|
	|-----------------------|-----------------------|
%RVARB:	| 0		  	| for each variable	|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|
 			   MESSAGE BLOCK   

	|-----------------------|-----------------------|
0PNTR: 	|         		| → next     entry	|
	|-----------------------|-----------------------|
1BITS:  | bits about message  	| job # for source 	|
	|-----------------------|-----------------------|
2UNIQUE:|	           message I.D.            	|
	|-----------------------|-----------------------|
        |      		        |               	|
31SOURCE|------------source name in chars.--------------|
       	|                       |                       |
	|-----------------------|-----------------------|
       	|                      	|                       |
51DEST:	|-------------dest name in chars.---------------|
      	|                       |                   	|
	|-----------------------|-----------------------|
        |		        |			|
71NDME:	|-----------procedure name in chars.------------|
      	|           		|              		|
	|-----------------------|-----------------------|
11PARCNT|		  	| 			|
,PARSLT:|             # params used to date		|
        |-----------------------|-----------------------|
       	| 			| 		 	|
	|-----------------------|-----------------------|
        [____________3 words each for params____________]     


 			    SLS SYMBOL     

	|-----------------------|-----------------------|
%TLINK:	| PNAME code		| length: 6 words reg.	|
%TBUCK:	|			| etc.--russel-you fill	|
	|-----------------------|-----------------------|
$PNAME: |                  PRG	|  BLK             	|
	|-----------------------|-----------------------|
        |                     TBITS                	|
	|-----------------------|-----------------------|
$TBITS:	|  TOTDSP primary value    VAL for MACROS   	|
        |                  (Adr usually)           	|
	|-----------------------|-----------------------|
$SBITS:	|                     SBITS   |  level          |
	|-----------------------|-----------------------|
$ADR:	| TLINK Val            	| RVARB val (         ) |
	|-----------------------|-----------------------|
X 1:  	| text addr.# dimensions| string-adjust addrs.	|
	|-----------------------|-----------------------|
X 2:  	| exit addr	        | Toplev bit		|
      	| -1 if string arrang.  | first date word addr.	|
	|-----------------------|-----------------------|
X 3:   	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|

RUSSELL:   THIS ONE NEEDS LOTS OF ADDITIONS--I HAD TROUBLE WITH YOUR
HANDWRITING.

			   SLS SIMPLE       

	|-----------------------|-----------------------|
%TLINK:	| PNAME PA		| LENGTH 		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: | PRG                 	| BLK              	|
	|-----------------------|-----------------------|
	|	              TBITS             	|
	|-----------------------|-----------------------|
$TBITS:	| 		  primary value	                |
	|-----------------------|-----------------------|
$SBITS:	|                     SBITS  | level            |
	|-----------------------|-----------------------|
$ADR:	| TLINK VAL            	| RVARB VAL             |
	|-----------------------|-----------------------|
$ACNO:	|                       |                   	|
	|-----------------------|-----------------------|
$VAL:	|		        |			|
	|-----------------------|-----------------------|
$VAL2:	|           		|              		|
	|-----------------------|-----------------------|
%RVARB:	|		  	| 			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|

 			    SLS ARRAY     

	|-----------------------|-----------------------|
%TLINK:	| PNAME PD		| length		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |           PRG       	|     BLK          	|
	|-----------------------|-----------------------|
	|	              TBITS             	|
	|-----------------------|-----------------------|
$TBITS:	| TOTDSP primary        | Value (address)	|
	|-----------------------|-----------------------|
$SBITS:	| SBITS                 |       |level          |
	|-----------------------|-----------------------|
$ADR:	| Think?               	| RVARB                 |
	|-----------------------|-----------------------|
$ACNO:	| # dim                 |                   	|
	|-----------------------|-----------------------|
$VAL:	| -1 if string	        | first data word addr	|
	|-----------------------|-----------------------|
$VAL2:	|           	   BNDBLK (1)          		|
	|-----------------------|-----------------------|
%RVARB:	|		   BNDBLK (2)			|
	|-----------------------|-----------------------|
%RSTR:	| 			| 		 	|
	|-----------------------|-----------------------|






		          SLS PROCEDURE    

	|-----------------------|-----------------------|
%TLINK:	| PNAME PA		| LENGTH		|
%TBUCK:	|			|			|
	|-----------------------|-----------------------|
$PNAME: |               PRG 	|     BLK               |
	|-----------------------|-----------------------|
STBITS:	|	    	      TBITS                     |
	|-----------------------|-----------------------|
SVAL:  	|     		     address     		|
	|-----------------------|-----------------------|
SSBITS:	| SBITS			           | level	|
	|-----------------------|-----------------------|
SLINK:	| TLINK to    ?       	| RVARB			|
	|-----------------------|-----------------------|
  ?    	| text addr     	| string adjust TLINK   |
      	|		        | addr			|
	|-----------------------|-----------------------|
  ?  	| exit addr	        | toplev bit		|
	|-----------------------|-----------------------|
  ?   	| # arith words		| # string words	|
	|-----------------------|-----------------------|
%RVARB:	|  			|  			|
	|-----------------------|-----------------------|
%RSTR:	| 			|  			|
	|-----------------------|-----------------------|