4

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?

2
  • You may try an emulator like uBee512.
    – Polluks
    Jul 22 '20 at 14:04
  • @Polluks: Yes I have that and I think Nanowasp and MAME and can't get any of them to work well. I had uBee512 working finally a few times and then it started ignoring whatever disk I tried to boot from and now only boots from the same, possibly internal one? Jul 22 '20 at 14:09
4

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.