|
Post by willymanilly on Feb 1, 2021 21:28:46 GMT
I had a look and applied a quick fix to Version 2 of Z64K to use bits 7 and 6 of D506 for the DMA-target. I've uploaded it to the website. I haven't tested with Volley for 2 yet but it hasn't broken any of the REU tests available in Testbench. I will test Volley for 2* when I get home from work and look more in depth to the other requests then as well. *Update I've confirmed replays in Volley For Two work now.
|
|
|
Post by c128old on Feb 2, 2021 19:59:02 GMT
Thanks for the update! The C128 CPM development now runs without the ramdisk workaround. I find the cycle exact nature of Z64k a great help in improving the 80column output.
I hope you will consider an option for (some) Z80 instructions if they will jump to the monitor (in itself a good idea)
|
|
|
Post by willymanilly on Feb 7, 2021 11:35:28 GMT
Thanks for the update! The C128 CPM development now runs without the ramdisk workaround. I find the cycle exact nature of Z64k a great help in improving the 80column output.
I hope you will consider an option for (some) Z80 instructions if they will jump to the monitor (in itself a good idea)
I'm reviewing some of Z64K's missing Z80 instructions and I remember now I deliberately made all missing instructions currently trigger the monitor as a reminder to myself to implement them whenever they pop up. There's not many that aren't implemented so it totally slipped my mind to review them until you highlighted some of those instructions. I have just implemented HALT but haven't tested it's behaviour compared to real hardware yet. Do you have any programs you are willing to share that I can test with? I will implement the other missing instructions in the coming weeks.
|
|
|
Post by c128old on Feb 13, 2021 15:48:29 GMT
...
I hope you will consider an option for (some) Z80 instructions if they will jump to the monitor (in itself a good idea)
I'm reviewing some of Z64K's missing Z80 instructions and I remember now I deliberately made all missing instructions currently trigger the monitor as a reminder to myself to implement them whenever they pop up. There's not many that aren't implemented so it totally slipped my mind to review them until you highlighted some of those instructions. I have just implemented HALT but haven't tested it's behaviour compared to real hardware yet. Do you have any programs you are willing to share that I can test with? I will implement the other missing instructions in the coming weeks. Well, just one program: CPM. I would get you the cpm+.prg and the cpm2.reu files. (I drop the REU on z64k without any drives and then the cpm+.prg, this works like a charm) I'm developing "bmark.com" in the reu image to see the achievable speed, depending on settings and compilation options.
So, how do I get the zip file with that content to you? (pardon the noob-question)
|
|
|
Post by willymanilly on Feb 13, 2021 16:56:25 GMT
Seems this forum has "exceeded its attachment space limit" so easiest way would be to send to my personal email. Will pm you the details.
|
|
|
Post by c128old on Feb 15, 2021 14:17:30 GMT
Well, an update of Z64k appeared like "greased lightning" ... thanks sir!
With the updates I can now check the timing on the interrupt handling, to (eventually) get rs232 running again in cpmfast.
The (famous?) "ibmfont.com" still drops into the monitor because of using "jp (ix)".
|
|
|
Post by willymanilly on Feb 15, 2021 21:18:33 GMT
The (famous?) "ibmfont.com" still drops into the monitor because of using "jp (ix)".
I generally try to fix issues as soon as they a brought to my attention. In saying that jp (ix) and jp (iy) are now implemented and I have confirmed ibmfont.com works now without triggering the monitor. There's a few other missing Z80 instructions I'm aware of which I'm happy to prioritise in implementing if requested. All these reports have been very welcome because when I get home from QLD (assuming I don't get stuck up here with short notice new COVID restrictions) I plan on giving the Z80 emulation a long overdue major update to implement missing instructions and improve timing.
|
|
|
Post by c128old on Feb 19, 2021 8:51:14 GMT
I was adding REU size sense to CPM and I was making a mess of the banking config.
When the MMU mem-config is set to "ram" (7f or 3f).(using a write to FF01 or FF02) While debugging I noticed Z64k appears to accept a z80 write (so: ld bc,d506 ! out(c), reg) to D506 (it appears all of MMU in D5xx is seen) My code didn't run on c128 because there access to D5xx is ignored unless the mem config is set of IO (7e or 3e).
|
|
|
Post by willymanilly on Feb 19, 2021 12:43:48 GMT
The Z80 implementation on Z64K has had the least attention and I guess it's starting to show. Largely that was due to lack of documentation I could find on how the memory mapping Z80 mode works and having access to decent test programs. I guess I'll need to revisit having a look at the C128 schematics and PLA and maybe write a few test programs. I always welcome any test programs I can compare real hardware to emulation. Beside running CP/M and a few other simple programs, the only suite of Z80 test programs I've been able to find are on the VICE test repository
|
|
|
Post by wendling on Mar 10, 2021 18:22:06 GMT
Please note when loading PRG files, the C128 emulator doesn't properly set the BASIC pointers after loading yet so some programs might fail. In Z64K version 1 I loaded a PRG file and added a BASIC line and got errors. The quote above explains this is due to BASIC pointers not properly set after loading. Because I could not find a post with a solution, I gave it a try myself to find a sys that sets the BASIC pointers. The BASIC line pointers were already set correctly, only program end pointers($1210/$1211) were not set. I found a sys that sets the BASIC line pointers ($4f4f) and the program end pointers ($4f82) correctly: sysdec(“9fc7”) (This sys was found via 4f4f-4f82-monitor h f0000 fffff 82 4f (hunt))
Thus after loading a PRG file, execute: sysdec(“9fc7”) and no more errors.
|
|