System definitions
The sysdefs file contains the characteristics of the specific architecture, such as the definition of the MMU, devices etc.
The Level 2 sysdef file is a combination of Level 1 for GIMIX and the Dragon 128, as certain equates were missing.
opt -l ttl System Type Definitions for a GIMIX Level 2 page **************************************** ifeq CPUType-GIMIX************************************************************ * * Dynamic Address Translator Definitions * DAT.BlCt equ 16 D.A.T. blocks/address space available * *************** DAT.BlUs equ 15 blocks available for RAM in address space DAT.GBlk equ DAT.BlCt*2 number of graphics blocks DAT.Blsz equ $1000 D.A.T. block size in bytes DAT.ImSz equ DAT.BlCt*2 D.A.T. Image size *************** * * DAT.Addr calculates a mask for the top bits of the * logical address that are mapped by the MMU DAT.Addr equ -(DAT.BlSz/256) D.A.T. MSB Address bits * *************** DAT.Task equ $FF7F Task register address DAT.TMsk equ $0F bits of register for task number DAT.Uniq equ 1 bits of DAT Task register are not used for other things * *************** DAT.TkCt equ 16 task maps in the MMU DAT.Regs equ $FFF0 DAT Block Registers base address *************** * * One block number must be guaranteed never to * contain memory, (ROM or RAM). That block number * is used by OS9 in the block map and DAT images * to indicate an unallocated logical block DAT.Free equ $FC * *************** DAT.BlMx equ $FF maximum block number DAT.BMSz equ $100 Block Map size (one byte per block) DAT.WrPr equ 0 no Block Write Protect bit DAT.WrEn equ 0 no Block Write Enable bit *************** SysTask equ $20 Gimix System Task number * *************** IOBlock equ $FE The block number for the I/O ROMBlock equ $FF ROM block mapped in on ColdStart at $F000 ROMCount equ 1 number of blocks of ROM to so map in RAMCount equ 1 initial blocks of RAM * *************** ROMCheck equ Limited check only top 64k for ROM RAMCheck equ BlockTyp check only first bytes of RAM blocks LastRAM equ IOBlock maximum RAM block number *************** * * If the I/O is addressed whenever the top * address lines of the micro, (ie the logical * bus), take a certain value, rather than being * addressed through the DAT, then MappedIO must * be set false (0) MappedIO equ 1 * *************** ********** * Several system modules expect to be * able to abort the startup procedure * and retry, by jumping through a ROM * vector (usually the reset vector). * D$REBOOT equ $FFEE use an unused vector * ********** ClocType set M58167 TickSec set 10 ticks per second *Cx2Int set 1 CA2 (CB2) interrupt input FPort set $ECD1 floppy disk controller HPort set $FD00 hard disk controller DrvCnt set 4 four drives DPort set FPort A.Term equ $E004 A.T1 equ $E020 A.T2 equ $E024 A.T3 equ $E030 A.T.init equ $15 A.P1 equ $E000 A.P equ $E042 A.KBD set A.P+2 keyboard port address A.KLoad set A.KBD port whose control reg has keyboard LOAD A.GCon equ DAT.Task+2 graphics control port A.Cont equ DAT.Task+1 control reg with CONTROL bit A.Clock set $E220 *A.DskSel equ A.Mouse disk select port *A.Beeper equ A.DskSel+2 port with beeper on it *A.ChrSet equ A.Beeper port with 'character set select' A.Baud equ A.Beeper port with baud rate setting B.DPHalt equ $80 DMA processor HALT bit in disk Select port B.DPNMI equ $80 DMA processor interrupt bit in DAT Task reg B.Bell equ 1 beeper bit B.Contrl equ $08 CA2 is CONTROL bit B.ChrSet equ $40 character set select bit B.MPHalt equ 2 Main Processor HALT bit B.PDir equ $80 printer port buffer direction bitendc opt l