chiark / gitweb /
Initial revision
[ssr] / StraySrc / Libraries / Sapphire / sail / sh / anchor
1 ;
2 ; anchor.sh
3 ;
4 ; Layout of anchor blocks
5 ;
6 ; © 1995 Straylight
7 ;
8
9                 [       :LNOT::DEF:anchor__dfn
10                 GBLL    anchor__dfn
11
12                 ; --- Anchor block contents ---
13
14                 ^       0,R12
15
16 sail_R13        #       4                       ;Saved R13 (stack pointer)
17 sail_tokAnchor  #       4                       ;Ptr to tokenised file anchor
18 sail_currAnchor #       4                       ;Current anchor for input
19 sail_oldAnchor  #       4                       ;Previous anchor for input
20 sail_flags      #       4                       ;A nice flags word
21 sail_timeOff    #       4                       ;OS_ReadMonotonicTime-TIME
22 sail_line       #       4                       ;Current line number
23 sail_timeSoFar  #       4                       ;Time execution started
24 sail_rndSeed    #       8                       ;Random number seed
25 sail_rmaList    #       4                       ;List of blocks from RMA
26 sail_env        #       4                       ;Handle of environment
27 sail_global     #       4                       ;Ptr to global vars anchor
28 sail_preempt    #       4                       ;Time allowed before return
29 sail_files      #       32                      ;Files-open flags
30
31                 ; --- DATA information ---
32
33 sail_dataPtr    #       4                       ;Current DATA pointer
34 sail_dataLine   #       4                       ;Current data line
35
36                 ; --- Resizing blocks ---
37
38 sail_rszBlocks  #       0
39
40 sail_varTree    #       4                       ;The variable stack anchor
41 sail_varPtr     #       4                       ;Where to create the next var
42 sail_varSize    #       4                       ;Current size if the stack
43
44 sail_execStack  #       4                       ;Anchor of execution stack
45 sail_execStkPtr #       4                       ;Pointer into stack
46 sail_execStkSize #      4                       ;Size of the stack
47
48 sail_opStack    #       4                       ;Anchor of execution stack
49 sail_opStkPtr   #       4                       ;Pointer into stack
50 sail_opStkSize  #       4                       ;Size of the stack
51
52 sail_calcStack  #       4                       ;Anchor of execution stack
53 sail_calcStkPtr #       4                       ;Pointer into stack
54 sail_calcStkSize #      4                       ;Size of the stack
55
56 sail_stracc     #       4                       ;Anchor of execution stack
57 sail_straccPtr  #       4                       ;Pointer into stack
58 sail_straccSize #       4                       ;Size of the stack
59
60 sail_bucket     #       4                       ;String bucket anchor
61 sail_bktPtr     #       4                       ;Free pointer for bucket
62 sail_bktSize    #       4                       ;Current size of bucket block
63
64 sail_erszBlocks #       0
65
66 sail_misc       #       256                     ;A big buffer for things
67
68 sail_blkSize    EQU     2048                    ;Enough space for a stack
69
70                 [       {VAR}-sail_R13+1024>tsc_blkSize
71                 !       1,"sail_blkSize is too small"
72                 ]
73
74 tscFlag_nl      EQU     (1<<0)                  ;We have just read a newline
75
76                 ]
77
78 ;----- That's all, folks ----------------------------------------------------
79
80                 END