Please LGB, how can I add the Epdos2.1 Rom to the combined Rom? or, does it exist a method to test a Rom on XEP128 without modifying the combined rom?
I have already created the Sram segment on 07.
Nothing forces you to use combined.rom
It simply the concatenation of ROM images. So if you need another extra ROM, append that to its end, just be careful, to have 16K dividable size for the result. However. The problem, that if you have combined.rom, segment 07 will be covered by ROM already, it's not so much possible to assign SRAM or anything there then (since combined.rom is loaded from segment 0 using all segments linearly, based on its size). Also, I think (by heart now, I can be wrong), if you want to use segment 7 as SRAM, SD card won't work, since it would be the SD card cartridge otherwise. I suggest always use :XEP RAM command it check the memory layout, btw, even for the built-in config, or if you try to configure your own memory layout. In console/monitor window (you can ask for console with the numeric key bad minus key, and btw, console by default is not -conwin option anymore, but -console, but you don't need it, as you can ask for console later with that keypress) it's without :XEP of course, so just "ram" command. By default you will see something like this (it's on Linux, of course on Windws, you will see some other path with drive letter etc for the ROM image):
00-0C ROM /home/lgb/vega/prog/xep128/combined.rom
0D-0D ROM (Xep128-internal)
0E-F7 unused
F8-FB RAM
FC-FF VRAM
RAM: 8 segments (128 Kbytes)
Dave: WS=no CLK=8MHz P=F8/FF/FF/00
Now, if you try to assign SRAM segment to segment 7, it won't work too much, as segment 7 is already used by ROM (that's why I told, you should always check the result with the RAM command to see if your RAM/ROM config is OK as you would expect ...).
Ok, now let's see what you can do for real. Xep128 by default uses that big-all-in-one combined ROM. However, you are not forced to use this way, just it's the most simple way to do. You can assign ROM images by segment/ROM image basis as well. Xep128 has the -rom@XX options, where XX is a two digit hex number for sement number, and the parameter is a file name. It will load a ROM image into a given segment. If you just load something to segment 00 (EXOS) it will override all of the combined.rom, as only the starting segment matters. Thus in my case, the following command (on Linux again, with my directories, etc):
xep128 -rom@00 /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom
Xep128 will complain on start-up that no SD card ROM found. That's OK as it really does not exist in our case, you can ignore. Now, the "ram" command shows the following:
00-03 ROM /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom
04-04 ROM (Xep128-internal)
05-F7 unused
F8-FB RAM
FC-FF VRAM
As you can see, Xep128 internal ROM is always assigned after the last used ROM segment. Thus, if it's at "wrong" position, try to load _some_ ROM at a higher segment, so Xep128 XEP rom will be moved after that (ok, it's not so nice, I should provide an option to be able to tune XEP ROM's position ... it's not from combined.rom anything, XEP ROM itself is built-in the xep128.exe ...).
Of course meanwhile, you can use other -rom option with another segment, but it's a problem, if you try to load something used by another ROM image. Also, of course you can use a config file (beware of tricky end-of-line markers, we discussed already ...) instead of command line switches, the syntax would be something like this:
rom@00 = /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom
Just remember, that ROM images should have sizes dividable by 16K exactly. Example command line (ok, now you can imagine the config file syntax from it easily):
xep128 -rom@00 /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom -rom@20 /home/lgb/vega/prog/xep128/rom/EPDOS-1.9-beta.rom
I have no EPDOS 2.x and it's just an example. You can see with :XEP RAM or RAM (console/monitor) the result:
00-03 ROM /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom
04-1F unused
20-21 ROM /home/lgb/vega/prog/xep128/rom/EPDOS-1.9-beta.rom
22-22 ROM (Xep128-internal)
23-F7 unused
F8-FB RAM
FC-FF VRAM
You can see, that Xep128 internal ROM ("XEP ROM") is really placed after the last used ROM. And now 04-1F is free. So you can also try to put an SRAM segment now to 07:
xep128 -rom@00 /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom -rom@20 /home/lgb/vega/prog/xep128/rom/EPDOS-1.9-beta.rom -ram @=07,F8-FB
If you try this, you will get two warnings from Xep128. One if the SD card ROM missing, OK. The second says something about segment 7. It's not a problem: by declaring segment 7 as SRAM, Xep128 tries to load/save segment content. As you probably don't have saved segment 7 in preference directory, Xep128 will complain, but you can OK the warning and continue. By utilizing RAM command again, you will see this:
00-03 ROM /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom
04-06 unused
07-07 SRAM
08-1F unused
20-21 ROM /home/lgb/vega/prog/xep128/rom/EPDOS-1.9-beta.rom
22-22 ROM (Xep128-internal)
23-F7 unused
F8-FB RAM
FC-FF VRAM
RAM: 9 segments (144 Kbytes)
Now it's close what you would like, I guess
However in my case one problem: as EXOS detects the SRAM segment at 7 as RAM, it will use as page zero
Even IS-BASIC "info" command says that you have more RAM as usual. As far as I remember, EPDOS2 uses its own (?) memory test (?) to skip/hide SRAM from EXOS, but I don't know too much about this topic ... And these were my examples, not actually with EPDOS2, just with "some" ROM image, it's just a co-incidence to use EPDOS-1.9
I know that EPDOS 1 and 2 are totally different topic, btw.
This:
xep128 -rom@00 /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom -rom@20 /home/lgb/vega/prog/xep128/rom/EPDOS-1.9-beta.rom -ram @=07,F8-FB
would something like this, in config file:
rom@00 = /home/lgb/vega/prog/xep128/rom/EXOS24UK-NOILLOPS.rom
rom@20 = /home/lgb/vega/prog/xep128/rom/EPDOS-1.9-beta.rom
ram = @=07,F8-FB
If you are tired because of long file names for ROM images, you can try to use the trick, that any file name starting with '@' is the preferences directory. So if you keep your ROM images there, the config file would be:
rom@00 = @EXOS24UK-NOILLOPS.rom
rom@20 = @EPDOS-1.9-beta.rom
ram = @=07,F8-FB
Of course, you can create another config file, and use the -config filename option for Xep128 command line to load the given config file. I am not so sure these features are very well tested though, so be careful
Also, please note that the '@' symbol in the parameter of 'ram' means totally different (it means complex config, in opposite of a simple decimal number ...) than in @filename syntax, where it means the preference directory. Also the '@' in rom@20, it's another different meaning, there it's part of the config option itself, nothing to do with the meaning above. Hmm, maybe I am confusing ... :-/
Some maybe outdated documentation on Xep128 in this topic:
https://github.com/lgblgblgb/xep128/wiki/Emulator-configurationhttps://github.com/lgblgblgb/xep128/wiki/RAMhttps://github.com/lgblgblgb/xep128/wiki/XEP-ROMOk, maybe I helped with this huge amount of blah-blah here