This is an 8-bit computer capable of addressing up to 4080 bytes of RAM (Limited address bus to 8 bits instead of 16 bits to make segmentation more useful)
Also comes with its own assembler!
This isn't really a full blown computer yet, but im thinking of emulating some hardware for it as well
Removed segmentation and replaced it with a form of paging (Even more memory can be addressed with it)
Added a bios (Loads whats in loader.asm into page 2 and executes it, for now it just writes
No bootable device found. but doesn't actually check for bootable devices
A few questions:
1. Is it intentional that you can overflow registers to access more RAM without segmentation? Like here.
2. Why do all the
mov instructions take a segment except for
3. Is there any easy way to compare numbers (less than, greater than, etc)? If not, can you add one?
4. Why are pages only 255 bytes, instead of 256?
Nice! You should implement an assembler for it, though. Most computers, rather than running assembly text, convert the assembly to an executable and run that.
@Lethdev2019 Oh, it doesn't run actual assembly. I made up the instruction set myself (Implementing an actual instruction set would take a while, each instruction usually has many different opcodes for different scenarios. For example
mov eax, 1 and
mov [eax], 1 are totally different opcodes)
@ripu I didn't want it to just be a cpu. Im working on making a full computer out of it. (Im working on a bios right now!)
So I tried to stick as close as possible to how real hardware does it.
MMU for memory management etc
I just used memoryrange as a representation of ranges like 0x0-0xFF (0-255, the maximum addressing of a single page)
in the next update im going to be removing segmentation and replacing it with some weird form of paging instead