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