chiark / gitweb /
65df513c81476298f0f52d3922321e1020b0d570
[trains.git] / detpic / variables.asm
1 ;======================================================================
2
3  include pindata.inc
4
5  udata_acs
6 picno           res     1       ; from first idlocs byte
7
8 idloc1          res     1       ; from 2nd idlocs byte; bit 7 is master:
9 idloc1_master           equ 7
10 idloc1_boarddet         equ 6
11
12 acknmra         res     1       ; must tell host about NMRA buffer state
13 flags           res     1       ; miscellaneous state flags
14 flags_polarising        equ 6
15
16 t               res     1       ; general temporary
17 u               res     1       ; general temporary (another)
18 v               res     1       ; general temporary (another)
19 t_dolocal       res     1       ; temporary for <foo>_local_do
20 outmsg_end      res     1       ; first empty byte in outbuf
21 outmsg_begin    res     1       ; first full byte in outbuf
22
23 isr_low_save_w          res     1 ; see {enter,return}_interrupt_low
24 isr_low_save_status     res     1 ;  in common.inc
25 isr_low_save_stkptr     res     1 ;
26
27 isr_high_save_fsr0      res     2 ; for isrh_fsr0_{save,restore}
28
29 xdebug                  res     8
30
31 cwslave                 res     1 ; slave we're currently actually writing to
32                                   ; undefined except in <something>_needwrite
33
34 qqtrislat_start equ 0x50
35 qqtrislat_section udata qqtrislat_start
36 qqtrislat res 15
37
38 qqTRISA equ qqtrislat_start + 1
39 qqTRISB equ qqtrislat_start + 2
40 qqTRISC equ qqtrislat_start + 3
41 qqTRISD equ qqtrislat_start + 4
42 qqTRISE equ qqtrislat_start + 5
43
44 qqLATA equ qqtrislat_start + 7
45 qqLATB equ qqtrislat_start + 8
46 qqLATC equ qqtrislat_start + 9
47 qqLATD equ qqtrislat_start + 0xa
48 qqLATE equ qqtrislat_start + 0xb
49
50 ;----------------------------------------------------------------------
51 ; NON-ACCESS-BANK SECTIONS (TABLES)
52
53 outbuf_section udata 0x200
54 outbuf_szln2    equ     7
55 outbuf_size     equ     (1<<outbuf_szln2)
56 outbuf          res     outbuf_size
57
58 bitnum2bit_section udata 0x0f8
59 bitnum2bit      res     8       ; bitnum2bit[x] = 1<<x
60
61 slavetable equ 0x400
62 slavetable_section udata slavetable
63 ; each board actually present has an entry in this table
64 ste_szln2       equ     3
65 ste_size        equ     (1<<ste_szln2)
66  res maxpics * ste_size
67
68 ; each entry is a number of bytes, at these offsets:
69 ste_slave       equ 0 ; Gk slave number
70 ste_flags       equ 1 ; ** flags (stf_...), see below
71 ste_detbasel    equ 2 ; dk added to 11111bbb to make 0SSSSSSS; ie first-0xf8
72 ste_lastd0      equ 3 ; d  } [o0]*  ie every bit is either 0 (for an
73 ste_lastd1      equ 4 ; d  }        irrelevant bit) or o, meaning the
74 ste_lastd2      equ 5 ; d  }        previously seen detection data bit
75 ste_detmsgh     equ 7 ; dk 1 001 1 000 being 1 001 Y SSS
76 ;             offset^   ^which module(s) use this data:
77 ;                         G     global - for use by any code
78 ;                         d     for master detection, see mascan.asm
79 ;                         *     varies per bit
80 ;                         .k    entry is constant, created during init'n
81 ; flags in ste_flags:
82 stf_detect      equ 7 ; Gk  this is a detectors board
83 stf_sentinel    equ 6 ; Gk  sentinel slot at end of table
84
85  include final.inc
86
87 ;======================================================================