]> cloudbase.mooo.com Git - z180-stamp.git/blame - z180/config.inc
Integrate changes from z80-support branch
[z180-stamp.git] / z180 / config.inc
CommitLineData
29605004
L
1;-----------------------------------------------------\r
2; CPU and BANKING types\r
3\r
a16ba2b0 4\r
29605004
L
5CPU_Z180 equ 1 ; 0 = Z80, else Z180\r
6ROMSYS equ 0\r
a16ba2b0 7\r
29605004
L
8AVRCLK equ 18432 ;[KHz]\r
9\r
10 if CPU_Z180\r
11\r
12;-----------------------------------------------------\r
13FOSC equ AVRCLK/2 ;Oscillator frequency [KHz]\r
14PHI equ FOSC*2 ;CPU frequency (clock doubler enabled)\r
a16ba2b0
L
15\r
16;-----------------------------------------------------\r
17; Programmable Reload Timer (PRT)\r
18\r
19PRT_PRE equ 20 ;PRT prescaler\r
20\r
21; Reload value for 10 ms Int. (0.1KHz):\r
22; tc10ms = phi/prescale/0.1KHz = phi / (prescale/10)\r
23\r
24PRT_TC10MS equ PHI / (PRT_PRE/10)\r
25\r
26;-----------------------------------------------------\r
27; MMU\r
28\r
29SYS$CBAR equ 0C8h\r
30USR$CBAR equ 0F0h\r
31\r
32\r
33BANKS equ 18 ;max nr. of banks\r
34\r
35;-----------------------------------------------------\r
36\r
37CREFSH equ 0 ;Refresh rate register (disable refresh)\r
38CWAITIO equ 3 shl IWI0 ;Max I/O Wait States, 0 Memory Wait States\r
39\r
29605004
L
40 else ; Z80\r
41\r
42PHI equ AVRCLK/5 ;CPU frequency [KHz]\r
43BAUDCLCK equ AVRCLK/10 ;Baudrate clock [KHz]\r
44;BDCLK16 equ\r
45\r
46SIOAD EQU 0bch\r
47SIOAC EQU 0bdh\r
48SIOBD EQU 0beh\r
49SIOBC EQU 0bfh\r
50\r
51CTC0 EQU 0f4h\r
52CTC1 EQU 0f5h\r
53CTC2 EQU 0f6h\r
54CTC3 EQU 0f7h\r
55\r
56;\r
57; Init Serial I/O for console input and output (SIO-A)\r
58;\r
59; Baudrate clock: 1843200 Hz (Bus connector pin A17)\r
60;\r
61; Baudrate Divider SIO CTC\r
62; ---------------------------------\r
63; 115200 16 16 1\r
64; 57600 32 16 2\r
65; 38400 48 16 3\r
66; 19200 96 16 6\r
67; 9600 192 16 12\r
68; 4800 384 16 24\r
69; 2400 768 16 48\r
70; 1200 1536 16 96\r
71; 600 3072 16 192\r
72; 300 6144 64 92\r
73\r
74 endif ; CPU_Z180\r
a16ba2b0
L
75\r
76 if ROMSYS\r
77c$rom equ 0a5h\r
78ROM_EN equ 0C0h\r
79ROM_DIS equ ROMEN+1\r
29605004 80 if CPU_Z180\r
a16ba2b0
L
81CWAITROM equ 2 shl MWI0\r
82 endif\r
29605004 83 endif\r
a16ba2b0
L
84\r
85\r
86DRSTNUM equ 30h ;DDTZ Restart vector (breakpoints)\r
87\r
88\r
6a4e9540
L
89mrx.fifo_len equ 256\r
90mtx.fifo_len equ 256\r
a16ba2b0 91\r
6a4e9540
L
92ci.fifo_len equ 128\r
93co.fifo_len equ 256\r
a16ba2b0
L
94\r
95s1.rx_len equ 256 ;Serial 1 (ASCI1) buffers\r
96s1.tx_len equ 256 ;\r
97\r
29605004
L
98AVRINT5 equ 4Fh\r
99AVRINT6 equ 5Fh\r
bad2d92d 100;PMSG equ 80h\r
a16ba2b0
L
101\r
102;-----------------------------------------------------\r
815c1735 103; Definition of (locical) top 2 memory pages\r
a16ba2b0
L
104\r
105sysram_start equ 0FE00h\r
106stacksize equ 80\r
107\r
108isvsw_loc equ 0FEE0h\r
109\r
110ivtab equ 0ffc0h ;int vector table\r
111iv2tab equ ivtab + 2*9\r
112\r
113\r
114\r
115;-----------------------------------------------------\r
116\r
117\r
118o.mask equ -3\r
119o.in_idx equ -2\r
120o.out_idx equ -1\r
815c1735 121\r
a16ba2b0
L
122 .lall\r
123\r
124mkbuf macro name,size\r
125 if ((size & (size-1)) ne 0) or (size gt 256)\r
126 .printx Error: buffer ^size must be power of 2 and in range 0..256!\r
127 name&.mask equ ;wrong size error\r
128 else\r
815c1735 129 ds 3\r
a16ba2b0
L
130 name:: ds size\r
131 name&.mask equ low (size-1)\r
132 if size ne 0\r
133 name&.end equ $-1\r
134 name&.len equ size\r
135 endif\r
136 endif\r
137endm\r
138\r
139;-----------------------------------------------------\r
140\r
815c1735 141inidat macro\r
a16ba2b0 142 cseg\r
815c1735 143??ps.a defl $\r
a16ba2b0
L
144 endm\r
145\r
146inidate macro\r
147??ps.len defl $ - ??ps.a\r
148 dseg\r
149 ds ??ps.len\r
150 endm\r
151\r