comparison defs/sysglobs.d @ 1626:c01a65c813ce

Definition files to use with as6809
author boisy
date Sat, 03 Jul 2004 00:02:14 +0000
parents
children f7ece667f6f1
comparison
equal deleted inserted replaced
1625:80cff44f7e07 1626:c01a65c813ce
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; sysglobs
3 ;
4 ; $Id$
5 ;
6 ; Edt/Rev YYYY/MM/DD Modified by
7 ; Comment
8 ; ------------------------------------------------------------------
9 ; 2004/05/17 Boisy G. Pitre
10 ; Started.
11
12 .title System Globals
13
14 .area SYSGLOBS (ABS)
15
16
17 .if Level=1
18 ; Level 1 DP vars
19 .org 0
20 D.WDAddr:: .rmb 2 ; FHL/Isted WD1002-05 interface base address
21 D.WDBtDr:: .rmb 1 ; FHL/Isted WD1002-05 boot physical device drive num.
22 .rmb 5
23 D.COCOXT:: .rmb 1 ; Busy flag for CoCo-XT driver (one drive at a time)
24
25 .org 0h20
26 D.FMBM:: .rmb 4 ; Free memory bit map pointers
27 D.MLIM:: .rmb 2 ; Memory limit $24
28 D.ModDir:: .rmb 4 ; Module directory $26
29 D.Init:: .rmb 2 ; Rom base address $2A
30 D.SWI3:: .rmb 2 ; Swi3 vector $2C
31 D.SWI2:: .rmb 2 ; Swi2 vector $2E
32 D.FIRQ:: .rmb 2 ; Firq vector $30
33 D.IRQ:: .rmb 2 ; Irq vector $32
34 D.SWI:: .rmb 2 ; Swi vector $34
35 D.NMI:: .rmb 2 ; Nmi vector $36
36 D.SvcIRQ:: .rmb 2 ; Interrupt service entry $38
37 D.Poll:: .rmb 2 ; Interrupt polling routine $3A
38 D.UsrIRQ:: .rmb 2 ; User irq routine $3C
39 D.SysIRQ:: .rmb 2 ; System irq routine $3E
40 D.UsrSvc:: .rmb 2 ; User service request routine $40
41 D.SysSvc:: .rmb 2 ; System service request routine $42
42 D.UsrDis:: .rmb 2 ; User service request dispatch table
43 D.SysDis:: .rmb 2 ; System service reuest dispatch table
44 D.Slice:: .rmb 1 ; Process time slice count $48
45 D.PrcDBT:: .rmb 2 ; Process descriptor block address $49
46 D.Proc:: .rmb 2 ; Process descriptor address $4B
47 D.AProcQ:: .rmb 2 ; Active process queue $4D
48 D.WProcQ:: .rmb 2 ; Waiting process queue $4F
49 D.SProcQ:: .rmb 2 ; Sleeping process queue $51
50 D.Time:: .equ . ; Time
51 D.Year:: .rmb 1 ; $53
52 D.Month:: .rmb 1 ; $54
53 D.Day:: .rmb 1 ; $55
54 D.Hour:: .rmb 1 ; $56
55 D.Min:: .rmb 1 ; $57
56 D.Sec:: .rmb 1 ; $58
57 D.Tick:: .rmb 1 ; $59
58 D.TSec:: .rmb 1 ; Ticks / second $5A
59 D.TSlice:: .rmb 1 ; Ticks / time-slice $5B
60 D.IOML:: .rmb 2 ; I/O mgr free memory low bound $5C
61 D.IOMH:: .rmb 2 ; I/O mgr free memory hi bound $5E
62 D.DevTbl:: .rmb 2 ; Device driver table addr $60
63 D.PolTbl:: .rmb 2 ; Irq polling table addr $62
64 D.PthDBT:: .rmb 2 ; Path descriptor block table addr $64
65 D.BTLO:: .rmb 2 ; Bootstrap low address $66
66 D.BTHI:: .rmb 2 ; Bootstrap hi address $68
67 D.DMAReq:: .rmb 1 ; DMA in use flag $6A
68 D.AltIRQ:: .rmb 2 ; Alternate IRQ vector (CC) $6B
69 D.KbdSta:: .rmb 2 ; Keyboard scanner static storage (CC) $6D
70 D.DskTmr:: .rmb 2 ; Disk Motor Timer (CC) $6F
71 D.CBStrt:: .rmb 16 ; reserved for CC warmstart ($71)
72 D.Clock:: .rmb 2 ; Address of Clock Tick Routine (CC) $81
73 D.Boot:: .rmb 1 ; Bootstrap attempted flag
74 D.URtoSs:: .rmb 2 ; address of user to system routine (VIRQ) $84
75 D.CLTb:: .rmb 2 ; Pointer to clock interrupt table (VIRQ) $86
76 D.MDREG:: .rmb 1 ; 6309 MD (mode) shadow register $88 (added in V2.01.00)
77 D.CRC:: .rmb 1 ; CRC checking mode flag $89 (added in V2.01.00)
78 D.Clock2:: .rmb 2 ; CC Clock2 entry address
79
80 .org 0h100
81 D.XSWI3:: .rmb 3
82 D.XSWI2:: .rmb 3
83 D.XSWI:: .rmb 3
84 D.XNMI:: .rmb 3
85 D.XIRQ:: .rmb 3
86 D.XFIRQ:: .rmb 3
87
88 ; Table Sizes
89 BMAPSZ == 32 ; Bitmap table size
90 SVCTNM == 2 ; Number of service request tables
91 SVCTSZ == (256-BMAPSZ)/SVCTNM-2 ; Service request table size
92
93 .else
94
95 ; Level 2 DP vars
96 .org 0
97 D.WDAddr:: .rmb 2 ; FHL/Isted WD1002-05 interface base address
98 D.WDBtDr:: .rmb 1 ; FHL/Isted WD1002-05 boot physical device drive num.
99 .rmb 5
100 D.COCOXT:: .rmb 1 ; Busy flag for CoCo-XT driver (one drive at a time)
101
102 .org 0h20
103 D.Tasks:: .rmb 2 ; Task User Table
104 D.TmpDAT:: .rmb 2 ; Temporary DAT Image stack
105 D.Init:: .rmb 2 ; Initialization Module ptr
106 D.Poll:: .rmb 2 ; Interrupt Polling Routine ptr
107 D.Time == . ; System Time
108 D.Year:: .rmb 1
109 D.Month:: .rmb 1
110 D.Day:: .rmb 1
111 D.Hour:: .rmb 1
112 D.Min:: .rmb 1
113 D.Sec:: .rmb 1
114 D.Tick:: .rmb 1
115 D.Slice:: .rmb 1 ; current slice remaining
116 D.TSlice:: .rmb 1 ; Ticks per Slice
117 D.Boot:: .rmb 1 ; Bootstrap attempted flag
118 D.MotOn:: .rmb 1 ; Floppy Disk Motor-On time out
119 D.ErrCod:: .rmb 1 ; Reset Error Code
120 D.Daywk:: .rmb 1 ; day of week, com-trol clock
121 D.TkCnt:: .rmb 1 ; Tick Counter
122 D.BtPtr:: .rmb 2 ; Address of Boot in System Address space
123 D.BtSz:: .rmb 2 ; Size of Boot
124 .ifdef H6309
125 D.MDREG:: .rmb 1 ; 6309 MD (mode) shadow register
126 .else
127 .rmb 1 ; Currently unused in NitrOS-9/6809
128 .endif
129 D.CRC:: .rmb 1 ; CRC checking mode flag
130 D.Tenths:: .rmb 1 ; Tenths and hundredths of second for F$Xtime
131 D.Task1N:: .rmb 1 ; Map type 1 task number*2 - offset into [D.TskIPt]
132 D.Quick:: .rmb 1 ; Quick system call return flag - 0 =stack is at $FEE1
133 D.QIRQ:: .rmb 1 ; Quick IRQ flag - 0 =IRQ wasn't clock, so quick return
134
135 .org 0h40
136 D.BlkMap:: .rmb 4 ; Memory Block Map ptr
137 D.ModDir:: .rmb 4 ; Module Directory ptrs
138 D.PrcDBT:: .rmb 2 ; Process Descriptor Block Table ptr
139 D.SysPrc:: .rmb 2 ; System Process Descriptor ptr
140 D.SysDAT:: .rmb 2 ; System DAT Image ptr
141 D.SysMem:: .rmb 2 ; System Memory Map ptr
142 D.Proc:: .rmb 2 ; Current Process ptr
143 D.AProcQ:: .rmb 2 ; Active Process Queue
144 D.WProcQ:: .rmb 2 ; Waiting Process Queue
145 D.SProcQ:: .rmb 2 ; Sleeping Process Queue
146 D.ModEnd:: .rmb 2 ; Module Directory end ptr
147 D.ModDAT:: .rmb 2 ; Module Dir DAT image end ptr
148 D.CldRes:: .rmb 2 ; Cold Restart vector
149 D.BtBug:: .rmb 3 ; Boot debug information
150 D.Pipe:: .rmb 2
151
152 .org 0h6B
153 D.Crash:: .rmb 6 ; Pointer to CC Crash Routine
154 D.CBStrt:: .rmb 0hB ; Reserved for CC warmstart ($71)
155 D.QCnt:: .rmb 1 ; Count of number of quick system calls performed
156
157 .org 0h80
158 D.DevTbl:: .rmb 2 ; I/O Device Table
159 D.PolTbl:: .rmb 2 ; I/O Polling Table
160 .rmb 4 ; reserved
161 D.PthDBT:: .rmb 2 ; Path Descriptor Block Table ptr
162 D.DMAReq:: .rmb 1 ; DMA Request flag
163
164 ; CoCo 3 STUFF COMES NEXT
165 ; This area is used for the CoCo Hardware Registers
166 ;
167 .org 0h90
168 D.HINIT:: .rmb 1 ; GIME INIT0 register (hardware setup $FF90)
169 D.TINIT:: .rmb 1 ; GIME INIT1 register (timer/task register $FF91)
170 D.IRQER:: .rmb 1 ; Interrupt enable regsiter ($FF92)
171 D.FRQER:: .rmb 1 ; Fast Interrupt enable register ($FF93)
172 D.TIMMS:: .rmb 1 ; Timer most significant nibble ($FF94)
173 D.TIMLS:: .rmb 1 ; Timer least significant byte ($FF95)
174 D.RESV1:: .rmb 1 ; reserved register ($FF96)
175 D.RESV2:: .rmb 1 ; reserved register ($FF97)
176 D.VIDMD:: .rmb 1 ; video mode register ($FF98)
177 D.VIDRS:: .rmb 1 ; video resolution register ($FF99)
178 D.BORDR:: .rmb 1 ; border register ($FF9A)
179 D.RESV3:: .rmb 1 ; reserved register ($FF9B)
180 D.VOFF2:: .rmb 1 ; vertical scroll/offset 2 register ($FF9C)
181 D.VOFF1:: .rmb 1 ; vertical offset 1 register ($FF9D)
182 D.VOFF0:: .rmb 1 ; vertical offset 0 register ($FF9E)
183 D.HOFF0:: .rmb 1 ; horizontal offset 0 register ($FF9F)
184 D.Speed:: .rmb 1 ; Speed of COCO CPU 0=slow,1=fast ($A0)
185 D.TskIPt:: .rmb 2 ; Task image Pointer table (CC) ($A1)
186 D.MemSz:: .rmb 1 ; 128/512K memory flag (CC) ($A3)
187 D.SSTskN:: .rmb 1 ; System State Task Number (COCO) ($A4)
188 D.CCMem:: .rmb 2 ; Pointer to beginning of CC Memory ($A5)
189 D.CCStk:: .rmb 2 ; Pointer to top of CC Memory ($A7)
190 D.Flip0:: .rmb 2 ; Change to Task 0 ($A9)
191 D.Flip1:: .rmb 2 ; Change to reserved Task 1 ($AB)
192 D.VIRQ:: .rmb 2 ; VIRQ Polling routine ($AD)
193 D.IRQS:: .rmb 1 ; IRQ shadow register (CC Temporary) ($AF)
194 D.CLTb:: .rmb 2 ; VIRQ Table address ($B0)
195 D.AltIRQ:: .rmb 2 ; Alternate IRQ Vector (CC) ($B2)
196 D.GPoll:: .rmb 2 ; CC GIME IRQ enable/disable toggle
197 D.Clock2:: .rmb 2 ; CC Clock2 entry address
198 .org 0hC0
199 D.SysSvc:: .rmb 2 ; System Service Routine entry
200 D.SysDis:: .rmb 2 ; System Service Dispatch Table ptr
201 D.SysIRQ:: .rmb 2 ; System IRQ Routine entry
202 D.UsrSvc:: .rmb 2 ; User Service Routine entry
203 D.UsrDis:: .rmb 2 ; User Service Dispatch Table ptr
204 D.UsrIRQ:: .rmb 2 ; User IRQ Routine entry
205 D.SysStk:: .rmb 2 ; System stack
206 D.SvcIRQ:: .rmb 2 ; In-System IRQ service
207 D.SysTsk:: .rmb 1 ; System Task number
208 .org 0hE0
209 D.Clock:: .rmb 2
210 D.XSWI3:: .rmb 2
211 D.XSWI2:: .rmb 2
212 D.XFIRQ:: .rmb 2
213 D.XIRQ:: .rmb 2
214 D.XSWI:: .rmb 2
215 D.XNMI:: .rmb 2
216 D.ErrRst:: .rmb 2
217 D.SysVec:: .rmb 2 ; F$xxx system call vector for NitrOS-9 Level 3
218 D.SWI3:: .rmb 2
219 D.SWI2:: .rmb 2
220 D.FIRQ:: .rmb 2
221 D.IRQ:: .rmb 2
222 D.SWI:: .rmb 2
223 D.NMI:: .rmb 2
224
225 ;
226 ; Level 2 Block Map flags
227 ;
228 NotRAM == 0b10000000 ; Block Not RAM flag
229 VidRAM == 0b00000100 ; Block is being used as Video RAM
230 ModBlock == 0b00000010 ; Module in Block
231 RAMinUse == 0b00000001 ; RAM Block in use flag
232
233 ;
234 ; Service Dispatch Table special entries
235 ;
236 IOEntry == 254
237
238 .endif