-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change the memory map and refactor MMIO registers #18
Comments
I just had a look at the test programs. The following ones use hard coded IO space addresses: regbank.asm, til_count.asm, uart.asm The remaining programs are OK. :-) |
I have replaced all of the magic constants to the IO area within the test programs by the appropriate constants read from ../dist_kit/sysdef.h, so the test programs should now be clean regarding the pending restructuring of the IO address space. :-) |
The emulator now also uses the constants defined in ../dist_kit/sysdef.h instead of its own #defines. :-) |
For not increasing the amount of loose ends: There is a branch called |
TODO: When all qbin files are recompiled, then also the default disk image that BUT: As this file is also used by the online emulator at https://qnice-fpga.com/emulator.html and as I do not want to update the online emulator to the new MMIO addresses right now (because nobody would notice and it takes some effort) I guess we need to introduce a new version here: The current disk image download file |
As we used EDIT to update the above-mentioned TODO list, here are the remaining TODOs for this:
I guess, when all this is successfully done, we can close this issue. Everything regarding this issue needs to take place in branch |
@bernd-ulmann I just discovered, that you need to update the programming card at |
I would like a short section on Memory Map somewhere, perhaps in the top-level README just before the section on "Programming in Assembler". Later, when the VGA module gets updated with colours etc, I would like to add a section on the memory map of the video memory. |
Sounds great, Michael. Would you like to do that (in the branch Bernd also already updated the programming card, that is mentioned in the top-level README as the first bullet point in the "Programming in Assembler" section. There, the memory map is also shown: https://github.com/sy2002/QNICE-FPGA/blob/dev-io-addr/doc/programming_card/programming_card_screen.pdf If you also want to see this in the README, then you might want to copy/paste the info from the .tex file so that you don't need to re-write it from scratch. |
Done. |
We should add "refactor keyboard.vhd" as described in Issue #22 to the list of "things to be done before we can close this issue and merge the branch
|
This is part of the Issue #18. This change is just to test that the new memory map works as expected. The actual refactoring is done in a separate commit.
I think it would make sense to write a Makefile and include in the qbin directory to automate the build process. As it is now, the source files are scattered all over the repository, and it is a rather tedious and manual process to recompile those files. |
Very good point: DONE: Create makefile and recompile all /qbin demos with the new memory map |
Update: Done regarding
|
CONSOLIDATION => CLOSED/DUPLICATE => Will continue to finish this in issue #69 |
EDIT 31.7.20, 21:57: Changed/Updated TODO LIST
@bernd-ulmann @MJoergen
Here are all steps necessary that came to my mind spontaneously. Please add your thoughts, maybe I forget something:
DONE BY SY2002 and VAXMAN Let's discuss the new Memory Map in
monitor/sysdef.asm
here based on the assumption: The standard is 8 words for 8 registers per device, but we also allow devices to have 16 words. 256 words of MMIO space starting atFF00
.DONE BY VAXMAN * There are some programs in
test_programs
that still use hard-coded registers and the emulator also uses hardcoded register addresses: We need to sift through them and fix them.DONE BY VAXMAN * The emulator should include
../dist_kit/sysdef.h
(**) instead of using hardcoded own#defines
to access registersRecompile standard C library
Update MMIO hardware
Recompile all qbin files and update it in GitHub
DONE BY SY2002 Add MEGA65 MMIO to sysdef.asm and adjust MEGA65 samples and VHDL CODE
re (**) @MJoergen : FYI: The file
monitor/sysdef.asm
is the single source of truth. There is a script calledmonitor/compile_and_distribute.sh
which is copyingmonitor/sysdef.asm
todist_kit/sysdef.asm
and while doing so also generates adist_kit/sysdef.h
for being used e.g. in the emulator but thisdist_kit/sysdef.h
is also used in the implementation of the standard C library of QNICE that you find inc/qnice
(off-topic and by the way, a small intro how to use the C compiler is here: https://github.com/sy2002/QNICE-FPGA#programming-in-c)The text was updated successfully, but these errors were encountered: