The EP2C5-DB card has 128KB of SRAM external to the FPGA. I wanted to get access to more of that SRAM. There were a couple of things in the way. Getting to 32KB was easy. To get past the 32KB limit I needed to move the MIKBUG I/O up in the memory space. I also needed to move the ROM up to the top of RAM.
M6800_MIKBUG - Tested/Works
- MC6800 CPU
- Running MIKBUG from back in the day (SmithBug ACIA version)
- 12.5 MHz
- 56K (external) RAM version
- MC6850 ACIA UART
- Video Display Unit (VDU)
- Color attributes
- XGA 80x25 ANSI character display
- Extended (256) character set
- PS/2 keyboard
Memory Map
- $0000-$DFFF - 56KB external sRAM
- $0000-$DEFF - User RAM area
- $DF00-$DFFF - scratchpad used by MIKBUG
- I/O Map
- $E018-$E019 - VDU
- $E028-$E029 - ACIA
- Pin_60 of the FPGA swaps addresses of VDU and ACIA port
- Installed (Pin_60 to Ground) uses Serial port
- Removed uses VDU
- $F000-$FFFF - MIKBUG ROM
Changing MIKBUG ROM Location
I am using the a68 assembler to assemble code to a S-record file and the S-Record utilities to re-shift the address of the assembled S-Record down to the state of the ROM as well as create the HEX file needed by Quartus. The ROM monitor source code is V2_DIS_corrected.ASM.
The commands are:
a68 V2_DIS_corrected.ASM -l V2_DIS_corrected.LST -s smithbug.s srec_cat smithbug.s -offset - -minimum-addr smithbug.s -o smithbug.hex -Intel
The output file, smithbug.hex is then copied into the Multicomp ROMs location. Next run Multicomp and select Processing then Update Memory Initialization File. If you get a warning at this point of when you build the FPGA programming file double click the end delete the highlighted (next to the last line) in the hex file and save. Re-build at that point and the error will go away.
Note than any code you have which relies on fixed locations for the MIKBUG ROM routines will need to be updated to use the new addresses. The listing file, V2_DIS_corrected.LST, contains the listing from the assembler output.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.