Mercurial > hg > Members > kono > nitros9-code
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 |