David, I will absolutely check that out. Wow, I didn't know I had a part to play. Thanks. I will grab the ASM.BAS file and see how QB64 works with it. Other than the native BASIC languages that are native to CP/M, QB64 is my goto for PC based work.
It was when you were talking about a simple assembler idea some time ago to just write a com file... Back when you were making your serial card... It made sense what you said to have a very simple assembler that could just write a COM. And you probably remember talking about assembling for relocating code as well, which is something else I added to my assembler for the same reason you posted (eg, loading up a COM to install a driver ). Another idea you suggested I liked.
I've almost completed the first beta version of the CP/M assembler, and have the macro code now storing macros in memory, though I still have to write the macro read code into the parser, but that's just a case of a flag swapping out the source and reading from a pointer, so should be finished soon. I was stuck on deciding what was a macro, what was an include, and how to nest includes, which is solved now. The macro code was more complex than I thought, since I never considered macros when I started writing the assembler.
Then I need to rewrite the PC version so that it has the extra features the CP/M version already has, and I'm going to modify the Loki code so that it switches into CP/M from Windows 10, and just reads all the files in the current directory, allowing CP/M programming on the PC for testing. Just like it's a CP/M shell. The current PC assembler still works, though doesn't handle undocumented codes like the CP/M one already does. It's not a great assembler, but it was sufficient to write an entire OS in.
Freebasic is an extension also of QBasic, but it's a bit like someone wrote a version of C to use QBasic. And it also uses the C libraries, though all written in basic... I think it translates basic to C then uses GCC or something like that.
I'm kind of envious and impressed at the same time about how far you've progressed your hardware. But then again I've been shamelessly stealing all the good assembler ideas you've posted here too.
I have been working on assemblers, emulators and OSs instead of my hardware since it's something I can do during my morning commute... It's been fun since I'm more of a hardware person than a software person. But I can't make hardware on the train ride and I don't have time when I'm at home since I work two jobs. So writing software has bewen my alternative escape