• Please review our updated Terms and Rules here

Does anyone know of a zx style command line emulator for DOS?

alank2

Veteran Member
Joined
Aug 3, 2016
Messages
1,850
Location
USA
I thought zx is pretty cool, it allows you to execute a CP/M program from a win32 command prompt and it redirects file i/o to the host OS - this allows you to use CP/M tools that process files like assemblers, linkers, etc.

Obviously on an x64 machine you can't run dos/16 bit code, but a zx style emulator for dos on win32 would be pretty cool. I know about vDos and vDosPlus, but they seem more like a full emulator than a just run this command and done. I've tried to automate them for this task and it is complicated.

Is there something out there that does this that I am unaware of?
 

Ruud

Veteran Member
Joined
Nov 30, 2009
Messages
796
Location
Heerlen, NL
Could you explain what you mean with "zx", please? I first thought about the ZX-Spectrum but I'm not sure if you mean that.
 

alank2

Veteran Member
Joined
Aug 3, 2016
Messages
1,850
Location
USA
Apparently it is called:

An adaptation of zxcc-0.5.6 by Wayne Warthen

I got it from the RomWBW - it is in the tools directory.

Let's say you had a CP/M program that took one file for input, processed it, and then wrote a file for output such as an assembler. If under CP/M you would call asm infile.asm, then in Windows using ZX, you would call zx asm infile.asm and it will emulate the CP/M asm.com, but the infile and outfile calls are redirected to the real windows filesystem.

I did find some other things on this that would allow running 16 bit code on an x64, but no good solutions. One is called ntvdm64x, but it doesn't look like code that can be trusted. There was also a similar one with a related to Wine or something. It would be great to have an x64 plugin subsystem that allows running 16 bit code, but I searched for awhile last night and didn't see anything worthwhile. Using another program like "dos16 pkzip -a test" would a step down from full integration, but would still be something.
 

alank2

Veteran Member
Joined
Aug 3, 2016
Messages
1,850
Location
USA
I'd say mostly command line tools like pkzip and so on. I know there are win32 equivalents of many, but not all.
 

alecv

Experienced Member
Joined
Feb 21, 2010
Messages
230
Location
Switzerland, Geneva
Try DosBox
https://www.dosbox.com
It's an emulator program which emulates an IBM PC compatible computer running a DOS operating system.
Although it intended for old games it is possible to run another DOS software and tools under DosBox
on the new Windows system (including modern 64-bit Windows 10).
 

BillGee

Experienced Member
Joined
Jan 27, 2019
Messages
136
Location
North Tejas
I'd say mostly command line tools like pkzip and so on. I know there are win32 equivalents of many, but not all.

The reason I asked is that a long, long time ago in a place not at all far away, I set upon writing a 16-bit x86 emulator. The original objective was to be able to run Windows 3.x programs on a 64-bit Windows machine. It never got that far. Not even close. The furthest it got was the ability to run command line programs compiled with Turbo Pascal and it does that very well.

I just tried to run PKZIP with it. It stopped at "cld", an instruction I have yet to implement. Out of curiosity, I tried running SYMDEB; it stopped at "iret". So it is not ready for what you need it to do.
 

alank2

Veteran Member
Joined
Aug 3, 2016
Messages
1,850
Location
USA
That sounds pretty cool. Another program I'd like to run is Borland's Turbo Link or TLINK.EXE from BC502.
 

BillGee

Experienced Member
Joined
Jan 27, 2019
Messages
136
Location
North Tejas
That sounds pretty cool. Another program I'd like to run is Borland's Turbo Link or TLINK.EXE from BC502.

I just tried running TLINK version 5.1 from the Borland C++ 3.1 installation. It failed trying to load DPMI support. That is something very far from my radar.

alecv is right. These tools run very well in DOSBox. I do not know whether DOSBox can run a single program from the console command prompt, then shut down. If not, it is not nearly as convenient as something like "RunDOS tlink ..."
 

alank2

Veteran Member
Joined
Aug 3, 2016
Messages
1,850
Location
USA
So I finally found exactly what I was looking for:

Regular page:
http://takeda-toshiya.my.coocan.jp/msdos/index.html

Translated:
https://translate.google.com/transl.../takeda-toshiya.my.coocan.jp/msdos/index.html

My goal was making Borland C++ 5.02 work on an x64 box which looks like it will so long as it is installed in a non LFN directory like C:\BC5. BC5.02 has 16-bit code for TLINK and TASM. I have previously kludged a solution together with a custom program and vDos. The custom program would get called and generate the conifg/autoexec that vDos needed to run the real executable. This new tool (msdos.exe) requires none of that - it can run 16bit code directly as in "msdos tlink", or it can generate a new executable using "msdos -ctlinkc.exe tlink.exe". Then you can just rename the original tlink.exe to tlinkdos.exe and rename the tlinkc.exe to tlink.exe. Now it can be directly called from BCW and it works.

It only seems to be able to run one executable though so far. I couldn't get it to run a batch file unless I made it run command.com /c batchfile, but that did work.
 
Top