-
Notifications
You must be signed in to change notification settings - Fork 8
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
drdos, drbio ported to NASM #89
Comments
ident86 reference: https://hg.pushbx.org/ecm/ident86/ (needs lDebug and a DOS as well) fixmem reference: https://hg.pushbx.org/ecm/fixmem/ (originally developed in the WarpLink repo, then MSDebug, then carried over into its own repo) |
I guess it was quite an effort to get all this running. Nice work :) What is your plan regarding the EDR source? Do you plan to only work with the NASM port in the future? If this the case, @mateuszviste and I would have to discuss if we stuck to the JWasm source or import your conversion. But we then would have to rebase some changes we did upon your sources. At least if we want to have them in. @ecm-pushbx we had a discussion at the FreeDOS video meeting regarding the DRDOS license. Some argue that DRDOS is no CP/M derivate, so the license from July 2022 is not applicable to the EDR sources. Therefore, in consultation with Jim Hall, I wrote Brian Sparks, who pretends to be the current license holder. I also contacted Scott Chapman, who clarified the CP/M license thing in 2022. He told me that Mr. Sparks did not respond to his emails for a long time. So it may be, that we will never get an answer... Btw. is there any chance to contact Udo Kuhnt? I think he would also have to be contacted if we wanted to change the license to for example ISC. |
It was actually very mechanical, convert sources, check conversion, adjust fixmem if need be, convert again, try to build it, adjust fixmem again if it doesn't build, convert again, run ident86 in -e -E -b -r -c mode, and if it did any edits run again as -e -E -b. I had about half a dozen scriptlets using an The only completely manual steps were dropping the placeholder FCB SFT's data, silencing some segment attribute warning (didn't do this for all cases), converting two macros, and changing those macros to
Yes, I'd rather. As you know, JWasm isn't considered as free as NASM.
It's probably simple enough to run fixmem.pl on your changed sources to obtain the updated .nas files.
Yes, I did address such concerns in 2023 August shortly after I started collecting patches already: https://pushbx.org/ecm/dokuwiki/blog/pushbx/2023/0821_late_mid_august_work#enhanced_dr-dos
I thought you knew this already to be honest.
That's true. It would be better to get the clarification but I'll continue to distribute EDR-DOS according to the CP/M agreement otherwise.
I don't know more than you about that. By my logic he based his EDR-DOS work on the earlier "OpenDOS" license, the only legal path, so with the CP/M license agreement his work also changed status. |
Yes I did, but I asked Jim in the video meeting about the DR-DOS 8.01 licensing things that happened, and discussion shifted to the different opinions if wheather the Juli 2022 license applies to DR-DOS. Based on the source knowledge I also consider it to be a CP/M derivate. But the best thing would be if Mr. Sparks clarifies this explicitly stating that DR-DOS is under a free license. |
Because if it was explicitly put under an OSS license the FreeDOS project could reconsider using EDR as an alternate kernel. |
I finished my port of drbio to NASM. Final report is in https://hg.pushbx.org/ecm/edrdos/rev/20f1471fa5a3 (NB this was a build without the drdos depacker.) |
Doesn't include your changes to support the no access flag yet, I'll pick and port these at a later time. |
Yes, better wait a little bit with this until it matured :D |
By the way, there was another xlatb with a segment override in drdos. This one specified a variable as the operand and the assembler figured out it needed an override. As fixmem doesn't detect these it was added using ident86 -E. |
Converted here: https://hg.pushbx.org/ecm/edrdos/rev/304c525d9056#l1.424 Override added here: https://hg.pushbx.org/ecm/edrdos/rev/fbf3268b02d2?revcount=120#l1.44 |
I adapted your changes up to https://hg.pushbx.org/ecm/edrdos/rev/ab1918938600 for my NASM port. I'm considering to merge it with your single-file flavour so one source tree can be used to build all variants: lDOS single-file (with/without compressed drbio, drdos), SvarDOS single-file (with/without compression), and SvarDOS dual-file. Would you be interested in that? |
Can only speak for me, but this sounds like an interesting idea :) What exactly do you have in mind? Would this mean that you a) provide a means of building a "SvarDOS kernel" through your repository? Or b) do you actually want to do a "full" merge of the repositories to "join forces" and eventually continue development on a single repo? I am open minded to everything, but I doubt that a) would yield much benefit beside holding the two repos more or less "in sync"? But on a second thought, that would make it easier for us to switch NASM, if we decide to do so, as we would not have to re-implement features not imported by you :) |
Yes, pretty much.
No, at this point I'd rather keep my hg repo and I suppose you want to stick with git(hub).
Yes, exactingly. I'd only keep the build system and tooling for lDOS flavour kernel, but build from the same sources as you, so picking patches either way would be easier. |
Yes I am fine with this. So what exactly had to be done? You still have the JWasm and the NASM files in your repo, and the last imports were on both files. Do you plan to continue to do so or eventually ditch the JWasm ones? I assume your recent picks were auto-converted by your tools to NASM? |
Yes, if you come along and switch your repo to use NASM too I'd probably drop the JWasm files at a later point.
Mostly, yes. For the buffershigh etc patch it was fairly easy, just
In this the https://hg.pushbx.org/ecm/edrdos/rev/bc3e84ed774f is a changeset with a few manual changes, such as the macro conversion. So basically I rerun fixmem and then re-apply all manual changes again afterwards, and this results in a changeset in which only the updates to the converted file are recorded. Basically the same in https://hg.pushbx.org/ecm/edrdos/rev/42a53efa211f And another in https://hg.pushbx.org/ecm/edrdos/rev/6ec2d8450426 where I also built the kernel using the JWasm object file (created manually, then linked using lnk.sh) and identicalised it to the NASM port again to make sure the conversion succeeded. Some more in https://hg.pushbx.org/ecm/edrdos/rev/e440bc3bf3c8 |
This changeset has the final ident86 report comparing today's drdos.pag with that of 2024-08-02: https://hg.pushbx.org/ecm/edrdos/rev/3d43a9d29b68
Today's build only uses NASM, WarpLink, x2b2, round, compbdos, and convlist.pl to build. Of these some run in DOS: NASM (DPMI) and WarpLink, x2b2, round, compbdos (Real/Virtual 86 Mode), though NASM and the two ltools easily can run on a Linux host too.
Here's a changeset message depicting the scriptlet that I used the most: https://hg.pushbx.org/ecm/edrdos/rev/8a99356109b8
Another scriptlet was used to update make.bat: https://hg.pushbx.org/ecm/edrdos/rev/2545408cdcfc
Identicalising was done using yet another scriptlet: https://hg.pushbx.org/ecm/edrdos/rev/66d971f99306
Here's a more complete set of scripts: https://hg.pushbx.org/ecm/edrdos/rev/fbf3268b02d2
The text was updated successfully, but these errors were encountered: