-
-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Internal debugger for ZX81 developments #128
Comments
There is a fork with what you need. This is explained in the Readme of DeZog: https://github.com/maziac/DeZog#fork |
Yes, please try the fork and see if it fits your needs. |
I was also thinking of making my fork more compatible with DeZog but I am not sure it is worth the effort. So many ideas, so many projects and not enough time. |
WOW, this is the way!! |
Post your question in the fork repository if it relates to the fork. |
I have backported my code for the ZX81 into the latest version of DeZog and submitted a PR. It does not use my own Z80 assembler but an external one so this should solve your problems @stevexyz . I do not know when Maziac will have the time to review the PR so in the meantime, you can use my (second) fork: https://github.com/andrivet/DeZog/tree/zx81-publish. I have published a VSIX under Releases. |
Hi, thanks very much for the back port. I very much appreciate your work.
My thoughts so far: |
I changed my plans/schedule and directly started with the zx81 development for dezog.
|
Here is the updated documentation: For a zx81 project you could use the following launch.json:
|
Very nice work. A few remarks:
|
"The frequency for the ZX81 is wrong, it should be 3.25 MHz, not 3.5." "The image of the keyboard is blurry (low resolution). I have recreated the keyboard in a vector format. I put a version below in SVG." " I can try to do the same for the ZX Spectrum if you find this useful." |
I'm adding a "zx81-hires" simulation for the "ulaScreen". |
Here is the ZX Spectrum keyboard in SVG. Both (ZX81 and ZX Spectrum keyboards SVG) are under CC BY-SA 4.0 For |
The keyboard looks great! "For Zx81UlaHiscreen, I will look at it when I get some time." |
Please check this commit for adding the keyboard files and the attribution: 003bb1b |
👍 perfect, thanks |
I was just thinking: The keypress boxes are now not aligned anymore with the svg. |
I don’t think it is possible. |
You don't have to. I probably have to adjust just a few offsets. |
And why not adding the QL like Spectrum keyboard, and the ZX80 one! Half joking…. One day, i am a little busy these days. |
How about source level debug (SLD) data? I have on sjasmplus open issue #232 about what virtual device to use for zx80/81, and I'm not deeply familiar with these machines, but it still feels to me like classic ZXSPECTRUM48 should cover this use case too? Maziac: I guess you will test DeZog with SLD for the ZX81? Let me know in case you are missing anything on sjasmplus side, and if you have some recommendation which sj virtual device to use for ZX80/81, so I close this thing and put it off my mind. :) TY. |
@ped7g use NOSLOT64K, it works for the ZX81 |
Yes, agree. |
Everything fine, thanks. Both keyboards work now. |
I see you have solved the flickering in HiRes mode. I played with it a little (with PacMan in Pseudo HiRes for example), it works nicely. |
Flickering is almost solved, but there is still a little bit remaining in Battlestar Galactica. Ist's non-hires, but if you play that with either hires or normal, there is sometimes still a little flicker. |
OK, found it. It was hack I did for one game. Removed it and no flickering anymore. |
Meanwhile I also integrated ARX and chroma81 support. |
@stevexyz I would like to use part of your code in z00m128/sjasmplus#239 (comment) in a loader wrapper I would like to publish on GitHub. |
For my part you can use the license you prefere, but let me ask also the original author if he is ok with it. Let you posted. |
MIT license fine also for Lardo, even if he do not remeber furher the code origins. cfr: https://sinclairzxworld.com/viewtopic.php?p=56796#p56796 |
Fine. Thanks. |
Here is a release candidate for the 3.5.0 DeZog (ZX81): The ZX81 sample project (with the BASIC wrapper to create a p-file) is here: If you would like to test it I would be happy get your error reports (or success stories :-) ). |
It is working pretty well. The only cases where the simulation is not working 100% are with binaries that push the ZX81 to its limits. A notable example is 25THANNI, a demo that includes source code. ZesarUX is working a little better but not completely. The only simulator I am aware of that works 100% is the iPadOS / macOS ZX81 simulator. In this part of the demo, some text is drawn outside of the regular area: Your simulated display is cropped so it does not show those lines: Another step displays a bouncing ball (press Space to go from one step to the next): Your simulation does display it but the ball is confined to the left: It is the same for the other steps. |
Thanks for the thoroughly testing. |
About yor game: you still have the assembler code? |
I have reversed engineered it some years ago (it was published in a journal in the ‘80 so I can get the binary back thanks to that). Last year, I documented the assembly and was able to fix a bug I was not able to fix 40 years ago. And yes in the ‘80, I had an assembler for this processor and machine. |
"And yes in the ‘80, I had an assembler for this processor and machine." |
At some point, I decided to buy an assembler. Before that, I computed opcodes by hand, on paper. I think it was this one: http://www.zx81stuff.org.uk/zx81/tape/ZXAssembler |
I tried to install it, but not sure why debugger is not starting. There is a way to enable and see some trace? Since it might depend on the launch.json configuration, can you please provide an example compatible with the helloworld discussed above? (surely useful to complete the sample package!) |
Sure. you can find an example here: |
Sample program is working fine!! |
🙏 |
I have worked for some time on something else for ZX81 development. Please find here some screenshots: I have tested already with a few files and it seem to work quite well. E.g Mazogs, 3D Monster Maze. Not working is "Against the elements" but I guess it uses some special hack. If you would like to try: Any feedback appreciated... |
Here is an updated version: |
I'm not into Basic, but there are many people that like it. As a side note, looking at the implementation, I always preferred ZX80 implementation of the BASIC: much more efficient even if it is missing FP (in some use case mitigated using Q numbers). The same exact program will run much faster (around 350% faster probably even if using ZX81 in fast mode), and will occupy much less memory (really important for 1k). |
I didn't do much with the BASIC either but I wanted an option to "disassemble" one of my old projects, do changes and "reassemble" it. |
This is really awesome. I will test it. |
@andrivet Had a hard time with 25thanni, but now it seems to work. |
The simulation of the ULA display is so good now. Mind blowing! |
Thanks. It took me a while. For this demo to work I really had to go down to the single t-states. I'm about to release the 3.5 dezog, do you think anything is missing? (BTW today I also released the p-file viewer (BASIC to P converter).) |
I have in my (long) list of future projects the idea to recreate the ULA in an FPGA and make it open source (such ULAs do already exist but are closed source). Your wonderful work will help me with those tiny details.
I think it is ready.
I just star it. |
Something that is currently missing is the copyright for the ZX81 ROM in the Readme. Here is the authorization I get from John Grant of Nine Tiles:
|
Thanks, for the hint. |
I close the Issue now. Thank you both for all the help and testing. |
Recently I was trying to come back to some ZX81 development, but discovered that for some reason current version of Zesarux is not working with DeZog.
Unfortunately for ZX81 seems there are no other compatibilities, and I was wondering if it would be possible to extend the internal debugger to support also this machine.
I think it would also greatly simplify the setup of the development environment needing just VSCode and Dezog, and even without init files if you find a ".p" file with the same name as ".asm" everything could be setup automatically (looking also for sld etc).
The text was updated successfully, but these errors were encountered: