OpenCores
URL https://opencores.org/ocsvn/System09/System09/trunk

Subversion Repositories System09

[/] [System09/] [trunk/] [src/] [sys09bug/] [sys09equ.asm] - Blame information for rev 101

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 59 davidgb
*
2
***************************************************
3
*   MEMORY MAP EQUATES                            *
4
***************************************************
5
MONIO  EQU $E000  I/O SPACE
6 99 davidgb
       IFD B3SOPT
7
MONEXT EQU $F000  START OF EXTENDED COMMANDS
8
EXTCMD EQU $00    EXTENDED OFFSET
9
       ENDIF B3SOPT
10 59 davidgb
       IFD S3EOPT
11
MONRAM EQU $7FC0
12
       ELSE
13
MONRAM EQU $DFC0  STACK SPACE
14
       ENDIF S3EOPT
15
MONROM EQU $F800  START OF ROM
16
       IFD S3SOPT
17
MONEXT EQU $F000  START OF EXTENDED COMMANDS
18
EXTCMD EQU $00    EXTENDED OFFSET
19
       ENDIF S3SOPT
20
       IFD XESOPT
21
MONEXT EQU $F000  START OF EXTENDED COMMANDS
22
EXTCMD EQU $00    EXTENDED OFFSET
23
       ENDIF XESOPT
24
***************************************************
25
 
26 99 davidgb
        IFD SWTOPT
27 59 davidgb
*
28 99 davidgb
* SOUTH WEST TECHNICAL PRODUCTS COMPUTER
29 59 davidgb
*
30
ACIAOPT EQU $FF ACIA AT PORT 0
31 99 davidgb
DMAFOPT EQU $FF DMAF2 8" FLOPPY DISK BOOT
32
MFDCOPT EQU $FF MINIFLOPPY 5.25" DISK BOOT
33
DATOPT  EQU $FF DYNAMIC ADDRESS TRANSLATION
34
        ENDIF
35 59 davidgb
*
36 99 davidgb
        IFD ADSOPT
37 59 davidgb
*
38 99 davidgb
* ACKERMAN DIGITAL ADS6809
39 59 davidgb
*
40 99 davidgb
DG640OPT  EQU $FF DG640 VDU AT $E800
41
*RTCOPT  EQU $FF REAL TIME CLOCK
42
PRTOPT  EQU $FF PRINTER DRIVERS
43
MFDCOPT EQU $FF MINIFLOPPY 5.25" DISK BOOT
44
        ENDIF ADSOPT
45
*
46
        IFD B3SOPT
47
*
48
* BURCHED B3-SPARTAN2
49
*
50 59 davidgb
ACIAOPT EQU $FF ACIA AT PORT 0
51
PS2OPT  EQU $FF PS2 KEYBOARD AT $E020
52
VDUOPT  EQU $FF VDU AT $E030
53 99 davidgb
IDEOPT  EQU $FF IDE AT $E100
54 59 davidgb
DATOPT  EQU $FF DYNAMIC ADDRESS TRANSLATION
55 99 davidgb
HFCOPT  EQU $FF HARDWARE FLOW CONTROL
56
        ENDIF B3SOPT
57 59 davidgb
*
58
        IFD B5XOPT
59
*
60
* BURCHED B5-X300
61
*
62
ACIAOPT EQU $FF ACIA AT PORT 0
63
PS2OPT  EQU $FF PS2 KEYBOARD AT $E020
64
VDUOPT  EQU $FF VDU AT $E030
65
CF8OPT  EQU $FF COMPACT FLASH AT $E040
66
DATOPT  EQU $FF DYNAMIC ADDRESS TRANSLATION
67 99 davidgb
HFCOPT  EQU $FF HARDWARE FLOW CONTROL
68 59 davidgb
        ENDIF B5XOPT
69
*
70 99 davidgb
        IFD S3SOPT
71 59 davidgb
*
72 99 davidgb
* DIGILENT SPARTAN 3 STARTER
73 59 davidgb
*
74
ACIAOPT EQU $FF ACIA AT PORT 0
75
PS2OPT  EQU $FF PS2 KEYBOARD AT $E020
76
VDUOPT  EQU $FF VDU AT $E030
77 99 davidgb
CF8OPT  EQU $FF COMPACT FLASH AT $E040
78 59 davidgb
DATOPT  EQU $FF DYNAMIC ADDRESS TRANSLATION
79
EXTOPT  EQU $FF EXTENDED COMMANDS
80 99 davidgb
        ENDIF S3SOPT
81 59 davidgb
*
82 99 davidgb
        IFD S3EOPT
83 59 davidgb
*
84 99 davidgb
* DIGILENT SPARTAN 3E STARTER
85 59 davidgb
*
86 99 davidgb
ACIAOPT EQU $FF ACIA AT PORT 0
87
PS2OPT  EQU $FF PS2 KEYBOARD AT $E020
88
VDUOPT  EQU $FF VDU AT $E030
89
TRAOPT  EQU $FF PIA TRACE TIMER
90
        ENDIF S3EOPT
91 59 davidgb
*
92 99 davidgb
        IFD XESOPT
93 59 davidgb
*
94 99 davidgb
* XESS XSA-3S1000 & XST-3.0
95 59 davidgb
*
96
ACIAOPT EQU $FF ACIA AT PORT 0
97 99 davidgb
PS2OPT  EQU $FF PS2 KEYBOARD AT $E020
98
VDUOPT  EQU $FF VDU AT $E030
99
IDEOPT  EQU $FF IDE AT $E100
100 59 davidgb
DATOPT  EQU $FF DYNAMIC ADDRESS TRANSLATION
101 99 davidgb
HFCOPT  EQU $FF HARDWARE FLOW CONTROL
102
EXTOPT  EQU $FF EXTENDED COMMANDS
103
        ENDIF XESOPT
104 59 davidgb
*
105 99 davidgb
*
106 59 davidgb
        IFD   ACIAOPT
107
*
108
***************************************************
109
*   SERIAL PORT                                   *
110
***************************************************
111
*
112
** ACIA SITS ON PORT 0
113
*
114
ACIAS   EQU   MONIO+$00   CONTROL PORT
115
*
116
        ENDIF ACIAOPT
117
        IFD   MFDCOPT
118
*
119
***************************************************
120
*   MINIFLOPPY DRIVE                              *
121
***************************************************
122
*
123
** FLOPPY DISK CONTROLLER SITS ON PORT 1
124
*
125
DRVFDC  EQU   MONIO+$14
126
CMDFDC  EQU   MONIO+$18
127
SECFDC  EQU   MONIO+$1A
128
DATFDC  EQU   MONIO+$1B
129
        ENDIF MFDCOPT
130
        IFD PS2OPT
131
*
132
***************************************************
133
*   VDU8 PS/2 KEYBOARD PORT                       *
134
***************************************************
135
*
136
** KEYBOARD SITS ON PORT 2
137
*
138
PS2KBD  EQU   MONIO+$20   PS/2 KEYBOARD PORT
139
        ENDIF PS2OPT
140
        IFD VDUOPT
141
*
142
***************************************************
143
*   VDU8 DISPLAY DRIVER EQUATES                   *
144
***************************************************
145
*
146
** VDU8 DISPLAY SITS ON PORT 3
147
*
148
VDU     EQU   MONIO+$30
149
VDUCHR  EQU   0        CHARACTER REGISTER
150
VDUATT  EQU   1        ATTRIBUTE REGISTER
151
VDUCOL  EQU   2        CURSOR COLUMN
152
VDUROW  EQU   3        CURSOR ROW
153
VDUOFF  EQU   4        ROW OFFSET
154
*
155
LINLEN  EQU   80       LENGTH OF A LINE
156
NUMLIN  EQU   25       NUMBER OF LINES
157
        ENDIF VDUOPT
158
*
159
           IFD CF8OPT
160
*
161
***************************************************
162
*   COMPACT FLASH EQUATES 8 BIT TRANSFER          *
163
***************************************************
164
*
165
** COMPACT FLASH SITS AT PORT 4
166
*
167
CF_BASE    EQU MONIO+$40
168
CF_DATA    EQU CF_BASE+0
169
CF_ERROR   EQU CF_BASE+1 ; read error
170
CF_FEATURE EQU CF_BASE+1 ; write feature
171
CF_SECCNT  EQU CF_BASE+2
172
CF_SECNUM  EQU CF_BASE+3
173
CF_CYLLO   EQU CF_BASE+4
174
CF_CYLHI   EQU CF_BASE+5
175
CF_HEAD    EQU CF_BASE+6
176
CF_STATUS  EQU CF_BASE+7 ; read status
177
CF_COMAND  EQU CF_BASE+7 ; write command
178
*
179
* Command Equates
180
*
181
CMDREAD    EQU $20 ; Read Single sector
182
CMDWRITE   EQU $30 ; Write Single sector
183
CMDFEATURE EQU $EF
184
FEAT8BIT   EQU $01 ; enable 8 bit transfers
185
HEADLBA    EQU $E0
186
*
187
* Status bit equates
188
*
189
BUSY       EQU $80
190
DRDY       EQU $40
191
DRQ        EQU $08
192
ERR        EQU $01
193
*
194
           ENDIF CF8OPT
195
*
196
           IFD IDEOPT
197
*
198
***************************************************
199
*   COMPACT FLASH EQUATES 16 BIT TRANSFER (XESS)  *
200
***************************************************
201
*
202
** COMPACT FLASH SITS AT PORT 4
203
*
204
CF_BASE    EQU MONIO+$0100
205
CF_DATA    EQU CF_BASE+0
206
CF_ERROR   EQU CF_BASE+2 ; read error
207
CF_FEATURE EQU CF_BASE+2 ; write feature
208
CF_SECCNT  EQU CF_BASE+4
209
CF_SECNUM  EQU CF_BASE+6
210
CF_CYLLO   EQU CF_BASE+8
211
CF_CYLHI   EQU CF_BASE+10
212
CF_HEAD    EQU CF_BASE+12
213
CF_STATUS  EQU CF_BASE+14 ; read status
214
CF_COMAND  EQU CF_BASE+14 ; write command
215
CF_AUX     EQU CF_BASE+30
216
*
217
* Command Equates
218
*
219
CMDREAD    EQU $20 ; Read Single sector
220
CMDWRITE   EQU $30 ; Write Single sector
221
AUXRESET   EQU $06 ; Reset IDE
222
AUXRSTREL  EQU $02 ; Reset release IRQ masked
223
HEADLBA    EQU $E0
224
*
225
* Status bit equates
226
*
227
BUSY       EQU $80
228
DRDY       EQU $40
229
DRQ        EQU $08
230
ERR        EQU $01
231
*
232
           ENDIF CF8OPT
233
*
234
        IFD RTCOPT
235
*
236
**************************************************
237
* MM58167A REAL TIME CLOCK MEMORY MAP:
238
**************************************************
239
*
240
** REAL TIME CLOCK SITS ON PORT 4 AND PORT 5
241
*
242
CLOCK  EQU MONIO+$40 CLOCK BASE ADDRESS AND REGISTERS
243
*
244
* COUNTER AND COMPARITOR REGISTERS:
245
*
246
* Both the Clock Counter and Clock Comparitor
247
* consist of 8 registers for holding the time.
248
* The register offsets from the Counter and
249
* Comparitor registers are listed above.
250
*
251
COUNTR EQU CLOCK+0
252
CMPRAM EQU CLOCK+8 COMPARITOR REGISTERS
253
*
254
* CLOCK REGISTER OFFSETS:
255
* These register offsets are used for the CLOCK
256
* and comparitor ram CMPRAM.
257
*
258
S10000 EQU 0 TEN THOUNSANDTHS OF SECONDS
259
S100   EQU 1 HUNDRETHS AND TENTHS OF SECONDS
260
SECOND EQU 2
261
MINUIT EQU 3
262
HOUR   EQU 4
263
WKDAY  EQU 5
264
MTHDAY EQU 6
265
MONTH  EQU 7
266
*
267
* INTERRUPT OUTPUT REGISTERS:
268
*
269
* An interrupt output may be generated at the
270
* following rates by setting the appropriate bit
271
* in the Interrupt Control Register (CINTCR).
272
* The Interrupt Status Register (CINTSR) must be
273
* read to clear the interrupt and will return
274
* the source of the interrupt.
275
*
276
* 1/Month      Bit 7
277
* 1/Week       Bit 6
278
* 1/Day        Bit 5
279
* 1/Hour       Bit 4
280
* 1/Minuite    Bit 3
281
* 1/Second     Bit 2
282
* 10/Second    Bit 1
283
* Comparitor   Bit 0
284
*
285
CINTSR  EQU CLOCK+16 INTERRUPT STATUS REGISTER
286
CINTCR  EQU CLOCK+17 INTERRUPT CONTROL REGISTER
287
*
288
* COUNTER AND RAM RESETS; GO COMMAND.
289
*
290
* The counter and comparitor may be reset
291
* by writing $FF into CTRRES and CMPRES
292
* respectivly.
293
* A write to the Go command register (GOCMND)
294
* will reset the 1/1000ths, 1/100ths and 1/10ths
295
* of a second counter.
296
*
297
CTRRES EQU CLOCK+18 COUNTER RESET
298
CMPRES EQU CLOCK+19 COMPARITOR RAM RESET
299
GOCMND EQU CLOCK+21 GO COMMAND
300
*
301
* CLOCK STATUS REGISTER.
302
*
303
* The counter takes 61 usec. to rollover for
304
* every 1KHz clock pulse. If the Status bit is
305
* set after reading the counter, the counter
306
* should be re-read to ensure the time is correct.
307
*
308
CLKSTA EQU CLOCK+20 STATUS BIT
309
SBYINT EQU CLOCK+22 STANDBY INTERRUPT
310
TSTMOD EQU CLOCK+31 TEST MODE REGISTER
311
       ENDIF RTCOPT
312
*
313
       IFD TRAOPT
314
*
315
**************************************************
316
* PIA INTERRUPT TIMER
317
**************************************************
318
*
319
** PIA INTERRUPT TIMER SITS ON PORT 7
320
*
321
** PIA TIMER FOR SINGLE STEP / TRACE
322
*
323
* TADATA = Output = Timer preset register
324
* TACTRL - CA1 = input = rising edge = NMI
325
*        - CA2 = Output = Timer Reset (Active High)
326
* TBDATA = Input = Timer read back register
327
* TBCTRL - CB1 = input = rising edge = FIRQ
328
*        - CB2 = output = strobe low on write to TBDATA = Timer Preset
329
*
330
* CRA0 = 0 CA1 IRQ DISAB, CRA0 = 1 CA1 IRQ ENAB
331
* CRA1 = 1 CA1 Rising edge IRQ
332
* CRA2 = 0 TADATA = Data Direction, CRA2 = 1 TADATA = I/O Register
333
* CRA3 = 0 CA2 = 0 output, CRA3 = 1 CA2 = 1
334
* CRA4 = 1 ] CA2 = Set/Reset output
335
* CRA5 = 1 ]
336
* CRA6 = X CA2 Input Interrupt Flag
337
* CRA7 = X CA1 Interrupt Flag
338
*
339
* CRB0 = 0 CB1 IRQ DISAB, CRB0 = 1 CA1 IRQ ENAB
340
* CRB1 = 1 CB1 Rising edge IRQ
341
* CRB2 = 0 TBDATA = Data Direction, CRB2 = 1 TBDATA = I/O Register
342
* CRB3 = 0 CB2 = 0 output, CRB3 = 1 CB2 = 1
343
* CRB4 = 1 ] CB2 = Set/Reset output
344
* CRB5 = 1 ]
345
* CRB6 = X CB2 Input Interrupt Flag
346
* CRB7 = X CB1 Interrupt Flag
347
*
348
* DDRA = 0 TADATA = Input, DDRA = 1 TADATA = Output
349
* DDRB = 0 TBDATA = Input, DDRB = 1 TBDATA = Output
350
*
351
TADATA EQU MONIO+$70 Timer preset port
352
TACTRL EQU MONIO+$71
353
TBDATA EQU MONIO+$72 Timer read back port
354
TBCTRL EQU MONIO+$73
355
*
356
TRADEL EQU 13  Number of E cycles for RTI (May need to be fudged)
357
*
358
       ENDIF TRAOPT
359
       IFD ADSOPT
360
*
361
***************************************************
362
*   SERIAL PORT FOR DG640                         *
363
***************************************************
364
*
365
** SET UP FOR ACKERMAN DIGITAL ADS6809
366
** THE ADS6809 S100 BOAD HAS AN ON BOARD ACIA
367
*
368
ACIAS   EQU   MONIO+$400   CONTROL PORT
369
*
370
        ENDIF ADSOPT
371
        IFD PRTOPT
372
*
373
***************************************************
374
* PRINTER INTERFACE                               *
375
***************************************************
376
*
377
PADATA EQU MONIO+$404
378
PACTRL EQU MONIO+$405
379
PBDATA EQU MONIO+$406
380
PBCTRL EQU MONIO+$407
381
*
382
** CB1  ACK.  I/P
383
** CB2  STB.  O/P
384
** PB0 - PB7   DATA 1 - 8   O/P
385
** PORT A BIT ASSIGNMENT
386
*
387
PBUSY  EQU $80 I/P
388
PEMPTY EQU $40 I/P
389
SELECT EQU $20 I/P
390
PERROR EQU $10 I/P
391
PRESET EQU %00000100 O/P PA3 = 0
392
AUTOFD EQU %00001000 O/P PA2 = 0
393
DIRMSK EQU %00001100
394
       ENDIF PRTOPT
395
       IFD DG640OPT
396
*
397
***************************************************
398
*   DG640 MEMORY MAPPED DISPLAY DRIVER VARIABLES  *
399
***************************************************
400
*
401
** VIDEO DISPLAY DEFINITIONS
402
*
403
SCREEN  EQU   MONIO+$0800 START OF SCREEN MEMORY
404
LINLEN  EQU   64          LENGTH OF A LINE
405
NUMLIN  EQU   16          NUMBER OF LINES
406
SCNLEN  EQU   $400        LENGTH OF SCREEN
407
        ENDIF DG640OPT
408
*
409
        IFD   DMAFOPT
410
*
411
***************************************************
412
*   DMAF2 8" DRIVE                                *
413
***************************************************
414
*
415
ADDREG  EQU   $F000  ADDRESS REGISTER
416
CNTREG  EQU   $F002  COUNT REGISTER
417
CCREG   EQU   $F010  CHANNEL CONTROL REGISTER
418
PRIREG  EQU   $F014  DMA PRIORITY REGISTER
419
AAAREG  EQU   $F015  ???
420
BBBREG  EQU   $F016  ???
421
COMREG  EQU   $F020  1791 COMMAND REGISTER
422
SECREG  EQU   $F022  SECTOR REGISTER
423
DRVREG  EQU   $F024  DRIVE SELECT LATCH
424
CCCREG  EQU   $F040  ???
425
        ENDIF DMAFOPT
426
        IFD DATOPT
427
**************************************************
428
* DYNAMIC ADDRESS TRANSLATION REGISTERS          *
429
**************************************************
430
*
431
IC11    EQU  $FFF0  DAT RAM CHIP
432
TSTPAT  EQU  $55AA  TEST PATTERN
433
        ENDIF DATOPT
434
*
435
        END

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.