Retrocomputing Asked on August 25, 2021
The Microbee was an early ’80s Z80 microcomputer from Australia that was successful mostly in education.
Looking at some disk image files I’ve downloaded I can see the disk layout seems to be very similar the Amstrad CPC and Sinclair ZX Spectrum +3 derivatives of the CP/M disk layout. In fact the same DSK disk image format is used.
I can see these disks have a Z80 boot sector in the first sector. But I’d like to know where in RAM this code is loaded and executed.
The boot sectors I’ve looked at refer to a few addresses in the low 0xE000 range, but they don’t align with instructions in the boot code, assuming the sector is loaded at a 16k boundary, which might be a false assumption. Otherwise those could be ROM addresses but so far I can’t find any of them referenced on the Internet. (Yes the boot ROM does reside at 0xE000 I can now confirm.)
Info on the technical workings of these machines is scant on the internet and I can’t get any of the emulators to work, or at least not with disk support.
Does somebody know where the Microbee loads the boot sector from disk?
I don't think the emulators will do much good since they tend to only emulate the machine hardware itself. What you need to look at is the ROMs, which are subject to copyright (hence hard to get legally).
But I think this actually depends on the model you have. Though it's stretching my memory a bit, I think that the 256 I owned could select (via an I/O port) certain half banks (32K chunks) to appear in the 64K Z80 memory map.
By mapping one of the higher half-banks into the lower 32K, loading the disk boot image at 6000h
, then remapping so that this half-bank now appeared in the upper 32K (replacing the ROM), the loaded code then appeared at e000h
, which is where it would jump to.
It had to, of course, find some memory from which to run while these banks were being switched in and out. I believe you could actually map video RAM (or some other RAM) over a small portion of the top 32K which would "sit above" the actual half-bank mapped into there. That allowed a small memory chunk where you could run code that would survive any bank switching of the half-banks.
But, again, keep in mind that's for the specific model. You would probably need to look at disassembled ROM listings to figure out where they loaded on other models.
I have to say this question actually brought back some fond memories, as a few mates and I got Forth systems up and running on several different architectures. The Microbee was by far my favourite, as the boot scheme it used pretty much gave us almost the full 64K RAM for Forth.
Correct answer by paxdiablo on August 25, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP