| RayeR CZ, 02.12.2024, 17:48 |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? (Users) |
Hi, do you know some assembler for 8080 CPU that knows Microsoft CP/M assembler M80 a linker L80 syntax and runs under DOS or Win32 (or Linux)? I'd like to recompile some old sources but e.g. Telemark Assembler 3.2 for 8080 doesn't know the syntax. Source is quite large to complete rewrite... --- |
|
| DosWorld 02.12.2024, 20:52 @ RayeR |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> linker L80 syntax and runs under DOS or Win32 (or Linux)? File format for CP/M object files is (imho) too obscure, ~0.001% chance to find it. IMHO. May be some 8080+CP/M emulator help you. PS: This is in D-lang for modern arch: https://github.com/ibara/a80 https://github.com/ibara/l80 L80 (clone?) sources: https://github.com/ibara/l80/blob/main/l80.c --- |
|
| RayeR CZ, 03.12.2024, 00:04 @ DosWorld |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
I don't need a linker to produce CP/M executables. The compiled source should run bare betal, just produce binary and burn it to EPROM. I know that one way is to run old compiler for CP/M under emulator but I'm looking if there's possibility to run some tools native under DOS/W32... Or if there's some translator that can transform old ASM source file to some syntax suitable for newer assembler. --- |
|
| Rugxulo Usono, 03.12.2024, 05:42 @ RayeR |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> I don't need a linker to produce CP/M executables. The compiled source > should run bare betal, just produce binary and burn it to EPROM. I know > that one way is to run old compiler for CP/M under emulator but I'm looking > if there's possibility to run some tools native under DOS/W32... Or if > there's some translator that can transform old ASM source file to some > syntax suitable for newer assembler. CP/M-ish claims to have "a classic CP/M syntax assembler and linker for cross-compiling ancient source" (among other things). I have not tested ntvcm emulator yet in DOS (needs OpenWatcom v2 C++ to build). His MWATCOM.BAT builds it for DOS. I'm actually curious to test Gordon Eubanks' BASIC-E (public domain). |
|
| Rugxulo Usono, 03.12.2024, 08:09 @ Rugxulo |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> I'm actually curious to test Gordon Eubanks'
> BASIC-E (public domain).
|
|
| DosWorld 03.12.2024, 11:09 @ Rugxulo |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> Gordon Eubanks' BASIC-E (public domain). Can you, please, share sources? --- |
|
| RayeR CZ, 03.12.2024, 16:54 (edited by RayeR, 03.12.2024, 17:07) @ Rugxulo |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> I have not tested ntvcm > emulator yet in DOS (needs OpenWatcom v2 C++ to build). His MWATCOM.BAT > builds it for DOS. Maybe. Could you share compiled binary for DOS? (there's no releases on github). I could try compile under OWC at home later this night... But I still would prefer some x86 crosscompiler if existed any. I belive that in old DOS days when was transition from 8-bit CP/M systems to x86 there should exist some PC tools for development targeting old 8-bit systems... --- |
|
| Ruud Heerlen - NL, 03.12.2024, 19:43 @ RayeR |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> But I still would prefer some x86 crosscompiler if existed any. If interested, I wrote my own assembler, Multi-Processor-Assembler, And just today I finished the part for the 8080. It is written in Free Pascal and the sources are free. You can get them, and a binary for Windows, by emailing me. A small problem: I use my own syntax. But on request of some friends I adapted my assembler to accept the original Motorola syntax for the 6809 en TI's syntax for the TMS7000 series. All I need is some sources and their binaries, no HEX files. --- |
|
| RayeR CZ, 04.12.2024, 04:11 @ Ruud |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
You can try to compile e.g. this old source in assembler M80: http://sapi.cz/sapi/data/m40f_asm.php --- |
|
| RayeR CZ, 04.12.2024, 06:20 (edited by RayeR, 04.12.2024, 07:00) @ RayeR |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
Well, I compiled the NTVCM. It required updating my OpenWatcom toolchain. Also my mingw64/g++-8.1.0 seems to be too old to know advanced c++ features...
I found some assembler in sample directory AZTEC\AS.COM and try to compile required source, got some errors but not too much like witn another 8080 asm...
--- |
|
| RayeR CZ, 04.12.2024, 20:06 (edited by RayeR, 04.12.2024, 23:10) @ RayeR |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> Well, I compiled the NTVCM. It required updating my OpenWatcom toolchain.
> Also my mingw64/g++-8.1.0 seems to be too old to know advanced c++
> features...
Hm, even with latest mingw I'm unable to compile NTVCM for windows.
--- |
|
| Rugxulo Usono, 05.12.2024, 04:52 @ RayeR |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> > Well, I compiled the NTVCM. It required updating my OpenWatcom > toolchain. I did mention it needed v2. I have not tested much since I'm not directly familiar with CP/M. > > Also my mingw64/g++-8.1.0 seems to be too old to know advanced c++ > > features... G++ 8.x should be circa 2018, so it can't be "too old" (IMHO). I would be surprised if he is using C++17 or newer. However, be careful of what the default dialect used is. You may have to override it manually. (For comparison, upcoming GCC 15 has C23 as default, since that was just published/finalized, or more likely their "gnu23" variant.) > Hm, even with latest mingw I'm unable to compile NTVCM for windows. > > Well, I fixed it by adding > #ifdef _WIN32 > #include <process.h> > #endif IIRC, MingW [sic] is not supported anymore, most people use MingW-w64. I looked at one of them (for something a while back) but balked at the 500 MB download and Win10 suggested minimum requirement. Granted, that covers a lot of ground (popular libraries and tools), but meh. > So I step further to compile the monitor source. I forgot about Alfred Arnold's AS cross-assembler. (In fairness, I haven't used most of these tools and don't have direct experience, so I'm little help.) |
|
| RayeR CZ, 05.12.2024, 08:01 @ Rugxulo |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> I did mention it needed v2. I have not tested much since I'm not directly > familiar with CP/M. I had Version 2.0 beta Nov 1 2017 > However, be careful of what the default dialect used is. You may have to > override it manually. (For comparison, upcoming GCC 15 has C23 as default, > since that was just published/finalized, or more likely their "gnu23" > variant.) My gcc version 8.1.0 (i686-win32-sjlj-rev0, Built by MinGW-W64 project 12.5.2018) knew only -std=c++17 but didn't help: ./djltrace.hxx:216:28: error: 'mutex' was not declared in this scope lock_guard<mutex> lock( mtx ); > IIRC, MingW [sic] is not supported anymore, most people use MingW-w64. I > looked at one of them (for something a while back) but balked at the 500 MB > download and Win10 suggested minimum requirement. Granted, that covers a > lot of ground (popular libraries and tools), but meh. Maybe he used linux as primary OS and never tried to build it under windows... my tiny patch was updated on github... > I forgot about Alfred > Arnold's AS cross-assembler. (In fairness, I haven't used most of > these tools and don't have direct experience, so I'm little help.) Just a quick test - it knows 8080 CPU but seems not understand M80 syntax - throw erros. I don't see any switch for enabling M80 compatability. --- |
|
| Rugxulo Usono, 06.12.2024, 05:43 @ DosWorld |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> > Gordon Eubanks' BASIC-E > (public domain). > > Can you, please, share sources? The Wikipedia article linked to an old ASCII manual, which had binaries but no sources. In some CP/M User Group archive online, I found some sources, but they're in PL/M. (And just to get that you need DELBR.COM and UNARC.COM for the *.ark files or similar tools.) The obvious gripe with BASIC-E is that it reads data lines only up to end of line or comma. So that's weirdly unhelpful. There are other small BASICs, e.g. p2c's Chipmunk Basic (in C), Nils M. Holm's 12k BASIC (for 8086/DOS), or Scott Moore's BASIC (in old Pascal). In other news on the CP/M side, it seems XPL0 works under NTVCM but DXForth does not. |
|
| roytam 06.12.2024, 07:25 @ Rugxulo |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> > I don't need a linker to produce CP/M executables. The compiled source > > should run bare betal, just produce binary and burn it to EPROM. I know > > that one way is to run old compiler for CP/M under emulator but I'm > looking > > if there's possibility to run some tools native under DOS/W32... Or if > > there's some translator that can transform old ASM source file to some > > syntax suitable for newer assembler. > > CP/M-ish claims to have "a > classic CP/M syntax assembler and linker for cross-compiling ancient > source" (among other things). > > I have not tested ntvcm > emulator yet in DOS (needs OpenWatcom v2 C++ to build). His MWATCOM.BAT > builds it for DOS. > > I'm actually curious to test Gordon Eubanks' > BASIC-E (public domain). and there is CP/M Player http://takeda-toshiya.my.coocan.jp/cpm/ |
|
| RayeR CZ, 07.12.2024, 08:54 @ roytam |
Alternative for M$ CP/M assembler M80 & L80 for DOS/Win32? |
> and there is CP/M Player > http://takeda-toshiya.my.coocan.jp/cpm/ Yeah, it works fine too. The w32 binary is a bit smaller, just 23kB over 1,7MB of NTVCM (both UPXed :) but having DOS version of NTVCM is nice (100kB) --- |
|
| RayeR CZ, 09.12.2024, 01:30 @ Rugxulo |
Alternative for CP/M assembler M80&L80 for DOS/Win32-solved |
> CP/M-ish claims to have "a
> classic CP/M syntax assembler and linker for cross-compiling ancient
> source" (among other things).
Yes, you're right. I analyzed tools that CPMish use and found this ZMAC:
http://48k.ca/zmac.html
It has switch for 8080.
But there's one small issue. For some reason it doesn't like a label named "PO" - maybe some keyword?
--- |
|
| DosWorld 10.12.2024, 18:42 @ RayeR |
Alternative for CP/M assembler M80&L80 for DOS/Win32-solved |
> For some reason it doesn't like a label named > "PO" - maybe some keyword? Did you try “PE” ? --- |
|
| RayeR CZ, 13.12.2024, 01:52 @ DosWorld |
Alternative for CP/M assembler M80&L80 for DOS/Win32-solved |
No, I sent report to author, no reply. --- |
Thread view
Mix view![[image]](https://i.ibb.co/TPmYYy4/Ebasic.png)