]> cloudbase.mooo.com Git - z180-stamp-cpm3.git/blobdiff - cbios/config.inc
Makefile: add dist target
[z180-stamp-cpm3.git] / cbios / config.inc
deleted file mode 120000 (symlink)
index a046ba484b4f73873e448cdfcd5ae6d5372edba7..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../../z180-stamp/z180/config.inc
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..4421478fec378303972501fa13e56ec1b3c10299
--- /dev/null
@@ -0,0 +1,220 @@
+\r
+FALSE  equ     0\r
+TRUE   equ     NOT FALSE\r
+\r
+\r
+DEBUG  equ     true\r
+\r
+banked equ     true\r
+\r
+;-----------------------------------------------------\r
+; CPU and BANKING types\r
+\r
+\r
+CPU_Z180       equ     TRUE\r
+CPU_Z80                equ     FALSE\r
+\r
+ROMSYS         equ     FALSE\r
+\r
+AVRCLK         equ     18432           ;[KHz]\r
+\r
+    if CPU_Z180\r
+\r
+;-----------------------------------------------------\r
+;FOSC          equ     AVRCLK/2        ;Oscillator frequency [KHz]\r
+;PHI           equ     FOSC*2          ;CPU frequency (clock doubler enabled)\r
+\r
+;----------------------------------------------------------------------\r
+; Baudrate Generator for x16 clock mode:\r
+; TC = (f PHI / (32 * baudrate)) - 2\r
+;\r
+;     PHI [MHz]: 9.216 18.432\r
+;     baudrate     TC     TC\r
+;     ----------------------\r
+;      115200      -      3\r
+;      57600       3      8\r
+;      38400       -     13\r
+;      19200      13     28\r
+;       9600      28     58\r
+\r
+\r
+;-----------------------------------------------------\r
+; Programmable Reload Timer (PRT)\r
+\r
+PRT_PRE                equ     20              ;PRT prescaler\r
+\r
+;-----------------------------------------------------\r
+; MMU\r
+\r
+COMMON_SIZE    equ     4*1024          ;Common Area size in bytes\r
+                                       ;must be multiple of 4K\r
+if (COMMON_SIZE mod 1000h)\r
+       .printx COMMON_SIZE not multiple of 4K!\r
+       end     ;stop assembly\r
+endif\r
+CMN_SIZE       equ     COMMON_SIZE/1000h               ;4K units\r
+BNK_SIZE       equ     64/4 - CMN_SIZE                 ;bank size (4K units)\r
+BANKS          equ     (512/4 - CMN_SIZE)/BNK_SIZE     ;max nr. of banks\r
+\r
+; Logical address space, CBAR values\r
+\r
+CA             equ     10h - CMN_SIZE          ;common area start (64K - common size)\r
+BA             equ     0                       ;banked area start\r
+\r
+   if 0\r
+\r
+SYS$CBR                equ     0\r
+SYS$CBAR       equ     CA*16 + CA      ;CBAR in system mode\r
+USR$CBAR       equ     CA*16 + BA      ;CBAR in user mode (CP/M)\r
+\r
+   endif\r
+   if 1\r
+\r
+SYS$CBR                equ     BNK_SIZE\r
+SYS$CBAR       equ     CA*16 + CA      ;CBAR in system mode\r
+USR$CBAR       equ     CA*16 + BA      ;CBAR in user mode (CP/M)\r
+\r
+   endif\r
+\r
+\r
+;-----------------------------------------------------\r
+\r
+CREFSH         equ     0               ;Refresh rate register (disable refresh)\r
+CWAITIO                equ     3 shl IWI0      ;Max I/O Wait States, 0 Memory Wait States\r
+PHI_X2         equ     0               ;set to M_X2CM to enable the clock doubler\r
+\r
+    endif              ;CPU_Z180\r
+    if CPU_Z80\r
+\r
+PHI            equ     AVRCLK/5        ;CPU frequency [KHz]\r
+BAUDCLCK       equ     AVRCLK/10       ;Baudrate clock [KHz]\r
+;BDCLK16               equ\r
+\r
+SIOAD  EQU     0bch\r
+SIOAC  EQU     0bdh\r
+SIOBD  EQU     0beh\r
+SIOBC  EQU     0bfh\r
+\r
+CTC0   EQU     0f4h\r
+CTC1   EQU     0f5h\r
+CTC2   EQU     0f6h\r
+CTC3   EQU     0f7h\r
+\r
+;\r
+; Init Serial I/O for console input and output (SIO-A)\r
+;\r
+; Baudrate clock: 1843200 Hz (Bus connector pin A17)\r
+;\r
+; Baudrate   Divider   SIO     CTC\r
+; ---------------------------------\r
+; 115200         16     16       1\r
+;  57600         32     16       2\r
+;  38400         48     16       3\r
+;  19200         96     16       6\r
+;   9600        192     16      12\r
+;   4800        384     16      24\r
+;   2400        768     16      48\r
+;   1200       1536     16      96\r
+;    600       3072     16     192\r
+;    300       6144     64      92\r
+\r
+    endif      ; CPU_Z80\r
+\r
+    if ROMSYS\r
+c$rom          equ     0a5h\r
+ROM_EN         equ     0C0h\r
+ROM_DIS                equ     ROMEN+1\r
+     if CPU_Z180\r
+CWAITROM       equ     2 shl MWI0\r
+     endif\r
+    endif\r
+\r
+\r
+DDTZRSTVEC     equ     030h            ;DDTZ Restart vector (breakpoints)\r
+\r
+INIDONE                equ     03Fh            ;CP/M skip hw init, if this address\r
+INIDONEVAL     equ     080h            ;    is set to this value.\r
+\r
+mtx.fifo_len   equ     64              ;Message transfer fifos\r
+mtx.fifo_id    equ     0               ;    This *must* have #0\r
+mrx.fifo_len   equ     64\r
+mrx.fifo_id    equ     1\r
+\r
+ci.fifo_len    equ     32              ;AVRCON (USB0) Character I/O via AVR\r
+ci.fifo_id     equ     2\r
+co.fifo_len    equ     32\r
+co.fifo_id     equ     3\r
+\r
+s0.rx_len      equ     128             ;Serial 0 (ASCI0) buffers\r
+s0.rx_id       equ     4               ;\r
+s0.tx_len      equ     128             ;\r
+s0.tx_id       equ     5               ;\r
+\r
+s1.rx_len      equ     128             ;Serial 1 (ASCI1) buffers\r
+s1.rx_id       equ     6               ;\r
+s1.tx_len      equ     128             ;\r
+s1.tx_id       equ     7               ;\r
+\r
+AVRINT5                equ     4Fh\r
+AVRINT6                equ     5Fh\r
+;PMSG          equ     80h\r
+\r
+;-----------------------------------------------------\r
+; Definition of (logical) top 2 memory pages\r
+\r
+sysram_start   equ     0FE00h\r
+bs$stack$size  equ     80\r
+\r
+isvsw_loc      equ     0FEE0h\r
+\r
+ivtab          equ     0ffc0h          ;int vector table\r
+iv2tab         equ     ivtab + 2*9\r
+\r
+\r
+\r
+;-----------------------------------------------------\r
+\r
+o.id           equ     -4\r
+o.mask         equ     -3\r
+o.in_idx       equ     -2\r
+o.out_idx      equ     -1\r
+\r
+       .lall\r
+\r
+mkbuf  macro   id,name,size\r
+  if ((size AND (size-1)) NE 0) OR (size GT 256)\r
+    .printx Error: buffer ^size must be power of 2 and in range 0..256!\r
+    name&.mask equ ;wrong size error\r
+  else\r
+    db id\r
+    db size-1\r
+    ds 2\r
+    name:: ds size\r
+    name&.mask equ low (size-1)\r
+    if size ne 0\r
+      name&.end equ $-1\r
+      name&.len equ size\r
+      name&.id equ id\r
+    endif\r
+  endif\r
+endm\r
+\r
+;-----------------------------------------------------\r
+\r
+inidat macro\r
+       cseg\r
+??ps.a defl    $\r
+       endm\r
+\r
+inidate        macro\r
+??ps.len defl  $ - ??ps.a\r
+       dseg\r
+       ds      ??ps.len\r
+       endm\r
+\r
+;-----------------------------------------------------\r
+\r
+b0call macro   address\r
+       call    _b0call\r
+       dw      address\r
+       endm\r