Closed jscrane closed 1 week ago
Not so easy: seems to require at least a minimal MMU.
See ports 20-23 of simio.c
However it does get as far as a banner before panic-ing:
boot.dsk: 77 128 26
hd-fuzix.dsk: 255 128 128
-
IO: unhandled OUT(22, 240)
IO: unhandled OUT(20, 8)
IO: unhandled OUT(27, 1)
IO: unhandled OUT(21, 0)
IO: unhandled OUT(21, 0)
FUZIX version 0.4
Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza
Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha
Copyright (c) 2013-2015 Will Sowerbutts <will@sowerbutts.com>
Copyright (c) 2014-2023 Alan Cox <alan@etchedpixels.co.uk>
Devboot
panic: map overIO: unhandled OUT(29, 128)
OUT(22, 240)
set segment size to 60kBOUT(20, 8)
initialize to 8 segmentsOUT(27, 1)
initialize 10ms timer interruptsOUT(21, 0)
select segment 0OUT(29, 128)
call plt_monitor()
This will require improving the present Memory
abstraction.
Make relevant APIs in Memory
virtual and override in BankedMemory
. (Bank 0 is the "same" as existing Memory
anyway.)
Provide APIs on BankedMemory
to allocate and switch banks, as described above, while making the fixed segment (the top 4k) common to all banks.
This has been implemented. However Fuzix on z80pack requires 7 segments of 60kB each. This much memory is not available on the esp32 unfortunately. In fact, only one bank allocation succeeds, all subsequent ones fail.
More memory is available on the esp32s3: 512kB. (Whether all of this is available is not known.)
More information.
PSRAM is also an option. Apparently ESP32-WROVERs have it, e.g., lilygo-ttgo-t-koala-esp32-wrover
boot.dsk
is A: andhd-fuzix.dsk
is drive I:This should be easy once the enhanced
drivemap.txt
parsing is done.Originally posted by @jscrane in https://github.com/jscrane/cpm80/issues/16#issuecomment-2326712413