Просмотр полной версии : Help emulating baseconf
chernandezba
09.04.2018, 12:29
Hi
I'm planning to add BaseConf emulation to ZEsarUX. I tested adding basic I/O memory paging ports but I'm not sure what is the default rom page at boot. One should suppose it's page 0, but page 0 on zxevo.rom has nothing but garbage... Seems roms start at 20000H offset, but I don't know which is the default at boot (range from 0...31)
Anyone can help me?
I have read some documentation , even the translated tech info to english
http://svn.zxevo.ru/filedetails.php?repname=pentevo&path=%2Fdocs%2Fzxevo_base_configuration_eng.odt
But I don't find that info
Thanks a log
Cesar
SAM style
09.04.2018, 22:45
On reset baseconf sets last ROM page in every window (#0000, #4000, #8000, #c000)
chernandezba
10.04.2018, 15:41
Thanks. Booting the last rom and it first do the following out:
port BC77H value 02H
That means:
A8: if 0, then disable the memory manager. In each window processor is installed the last page of ROM. 0 after reset. -> memory manager disabled. Put last rom page on all segments
A9: A9: If 0 then "force" the inclusion of TR-DOS and the shadow ports. 0 after reset. -> No tr-dos
After that , the following out:
port 7FFDH value 10H
So, how I suppose to react to this? According to this port, like a 128k, I should map ram 0 on segment c000h-ffffh, and map rom 1. What is rom 1 in this memory schema? I have rom 31 mapped...
And... what will be the segments after that out?
0000h : rom1?
4000h: rom31? (untouched). or ram 5 (as default 128k)
8000h: rom31? (untouched). or ram 2 (as default 128k)
c000h: ram 0?
Thanks
SAM style
10.04.2018, 18:05
If memory manager disabled, there is allways last rom page in all banks (exception is ram page 0 to #0000)
All values writed to memory ports (#xxF7, #7FFD) is working only if memory manager is enabled
chernandezba
10.04.2018, 18:28
If memory manager disabled, there is allways last rom page in all banks (exception is ram page 0 to #0000)
Sorry, what is this exception? Thanks
SAM style
10.04.2018, 18:31
Sorry, what is this exception? Thanks
bit 3 of value writed to port #EFF7: 1 - set ram page 0 to #0000;
chernandezba
10.04.2018, 19:14
bit 3 of value writed to port #EFF7: 1 - set ram page 0 to #0000;
Thanks! Added. I still haven't suceeded booting baseconf but.... I think I will get it soon :)
- - - Добавлено - - -
You seem to know a lot about baseconf :)
There are some technical details on the documentation which are not clear to me. For example:
Port #xx77
Enable shadow mode ports of the memory manager's permission.
A9: If 0 then "force" the inclusion of TR-DOS and the shadow ports. 0 after reset.
How is tr-dos "forced"? I suppose it changes the current rom page in some kind... how?
Thanks
SAM style
10.04.2018, 19:48
A9: If 0 then "force" the inclusion of TR-DOS and the shadow ports. 0 after reset.
How is tr-dos "forced"? I suppose it changes the current rom page in some kind... how?
ThanksIt doesn't switch page at #0000, it just says "shadow ports is available even when trdos is off"
If you know C/C++, you can examine sources of my emulator Xpeccy - http://github.com/samstyle/Xpeccy Baseconf ports and memory maping is in ./src/libxpeccy/hardware/pentevo.c
chernandezba
11.04.2018, 00:54
It doesn't switch page at #0000, it just says "shadow ports is available even when trdos is off"
If you know C/C++, you can examine sources of my emulator Xpeccy - http://github.com/samstyle/Xpeccy Baseconf ports and memory maping is in ./src/libxpeccy/hardware/pentevo.c
Oh that explains everything :) I will take a look, thanks! ZEsarUX is written on C, so I won't have problems reading your sources ;)
chernandezba
11.04.2018, 10:09
Maybe there's some documentation I don't understand well. According to the docs, ports xFF7H should be handled, exactly the following:
#3FF7 – Window #0000..#3FFF,
#7FF7 – Window #4000..#7FFF,
#BFF7 – Window #8000..#BFFF,
#FFF7 – Window #C000..#FFFF.
But in your Xpeccy code, you seem to handle the following xFF7H ports:
0xbff7
0xdff7
0xeff7
Why this difference?
Thanks
SAM style
11.04.2018, 16:36
Maybe there's some documentation I don't understand well. According to the docs, ports xFF7H should be handled, exactly the following:
#3FF7 – Window #0000..#3FFF,
#7FF7 – Window #4000..#7FFF,
#BFF7 – Window #8000..#BFFF,
#FFF7 – Window #C000..#FFFF.
But in your Xpeccy code, you seem to handle the following xFF7H ports:
0xbff7
0xdff7
0xeff7
Why this difference?
Thanks
Line 292 in pentevo.c
{0x07ff,0x07f7,1,2,2,NULL, evoOutF7}, // x7f7
this is the memory ports. This is shadow ports, so trdos or "force port opening" must be on.
bff7/dff7/eff7 is checked only if shadow ports is closed, and it is not the memory manager. maybe eff7 only...
PS:some ports have same address, but working different, depending on "shadow ports open" flag.
chernandezba
20.04.2018, 13:33
Ok thanks, I must re-read the documentation again ;)
By the way, I tried your XSpeccy and was unable to change the baseconf rom.... :(
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot