Updated 2013-10-25 16:42:23 by pooryorick

Tcl for DOS provides information about running Tcl on MS-DOS.

Description  edit

Several people, including Stephen Trier, have ported (a version of) Tcl to MS-DOS. [list others--some appear in "Small Tcl"]

CL believes he remembers it being quite easy to do this with 7.4.]

DJGPP  edit

David Gravereaux worked on the DJGPP port that can compile for 8.4a5. Either do a CVS checkout and ask for the 'contrib' module, or send Dave an email. Edevaldo Pereira <[email protected]> did the initial work on this about September 2000 and I added in some stuff from Tom Poindexter's 7.3 port @ http://www.nyx.net/~tpoindex/tcl.html#mstcl

Victor Wagner took David's work and more or less completed it. This port based on relatively recent CVS HEAD, support dynamic loading using DXE3 (DJGPP 2.04 required) and includes Ck text mode interface toolkit.

See Tcl for DOS

Or better yet, grab tcl8.4a4_dos.zip

[exec] isn't useful (DOS doesn't support multi-tasking, exactly), and there's no way of dynmically loading extensions, yet.

Victor Wagner: Really, [exec] can be made useful on MS-DOS. It doesn't support simultaneous execution of program, but many uses of exec suspends calling script until called program exit and return its output. This behavoir can be implemented on MS-DOS, but I cannot yet find time to do it.

It is quite easy to write "poor man" exec, which just calls C system function, but better job can be done, which can use all infrastructure in Tcl generic directory, and just reimplement Tclp_CreateProcess and friends.

Main idea is to create "processes" as just information structures in memory, which hold argc, argv and IO redirection info, and execute them in order (due to single-tasking nature of DOS). Process can be executed not before writing to its stdin is compleded, but not after read from its output is requested.

Thus we can support almost all functionality of [exec] except trailing & and unidirectional [open]. Pipes can be done using temporary files (as they are always done in MS-DOS), << can be implemented using temporary file too.

MSTCL  edit

MSTCL is a port of Tcl 7.3, Tk 4.0, and TclX 7.3a to MS-DOS. The Tk wish executable requires Desqview/X from Quarterdeck to run. The command line executables tclsh and tcl (/w Extended Tcl) interpreters run under vanilla MS-DOS. The DJ GNU C compiler was used for the port, providing a flat 32 bit environment. Minimal support for Tcl's 'exec' is provided as a shell to MS-DOS.

The port is unsupported and was released December, 1993.

, and can be found at ftp://ftp.procplace.com/pub/tcl/sorted/distrib/mstcl73s.zip for source and ftp://ftp.procplace.com/pub/tcl/sorted/distrib/mstcl73e.zip for executables. README has additional information and porting notes. If you are looking to run Tcl/Tk under Windows, see Sun's Tcl/Tk. home page for the official Windows (and Mac) ports.

Ports  edit

KJN on 2008-01-18: alleged ports of Tcl 6.2 and 6.7 are available from ftp://ftp.sra.co.jp/pub/x11/tk/old/ ; I have not tested them, but I have included them in a collection of Tcl 6 versions available here [1].

One unsupported port to MS-DOS of Tcl and Extended Tcl V6.0a, done by mailto:[email protected] (Karl Lehenbauer), is available on ftp://ftp.aud.alcatel.com/tcl/distrib/dostcl.zoo for binaries and ftp://ftp.aud.alcatel.com/tcl/distrib/dostcl60.zoo for source.

A port of Tcl V6.2 to MS-DOS was done by mailto:[email protected] (John Martin) and is available via FTP from ftp://cajal.uoregon.edu/pub/tcl.dos.port/ and ftp://ftp.aud.alcatel.com/tcl/distrib/tcl62.dos.tar.Z .

A source code only port of Tcl V6.7 to MS-DOS, done by mailto:[email protected] (Peter Sprenger), is available from him, somewhere on wuarchive.wustl.edu or as ftp://ftp.aud.alcatel.com/tcl/distrib/tcl67dos.zip .

A port of Tcl, version 7.3, to MS-DOS, done by mailto:[email protected] (Tom Poindexter), is available as ftp://ftp.procplace.com/pub/tcl/sorted/distrib/mstcl73e.zip and ftp://ftp.procplace.com/pub/tcl/sorted/distrib/mstcl73s.zip . This also includes TclX 7.3a and Tk ported to Desqview/X libraries. README at [2] The Desqview/X product, needed to run wish and wishx, is supposedly available at [3] and a Slashdot article about Desqview/X at [4] UPDATED LINKS TP

A port of Tcl, V6.1 ?, done by unknown, to MS-DOS Windows V 3.1 ?, is available as binary at ftp://ftp.aud.alcatel.com/tcl/distrib/w_tclbin.zip and as source at ftp://ftp.aud.alcatel.com/tcl/distrib/w_tclsrc.zip .

A package to take a Tcl source distribution and port it cleanly to MS-DOS, so that it can be compiled has been written by mailto:[email protected] (Bob Yennaco). It is available as ftp://ftp.aud.alcatel.com/tcl/distrib/tcl2dos.sh.gz .

An MS-DOS Windows DLL instance of Tcl 6.2 was generated by mailto:[email protected] (Ugo Cei). Contact him for more details.

A Windows DLL was made by mailto:[email protected] (Ekkehard Beier) by slightly modifying a DOS 6.2 Tcl port. There are still problems with the system/WinExec command. A very rudimentary Debugger User Interface using Borland's Classlib is part of the zip-file, too. The source was used also with BC3.1++/AF on MS W3.1. You can get a copy from ftp://metallica.prakinf.tu-ilmenau.de/pub/DOS/wintcl.zip via anonymous ftp. Unfortunately Ekki doesn't have time currently to finish the Windows port and user Interface.

mailto:[email protected] (Toshihiko Haga) and mailto:[email protected] (Shigeaki Miyata) announced twin (tcl/tk for MS-Windows), which does not support exec and send, but supports a -bitmap for Windows .bmp files. A few other modifications or special exceptions are noted. This package's files can be found at ftp://ftp.sra.co.jp/pub/lang/tcl/twinesrc.zip / ftp://ftp.sra.co.jp/pub/lang/tcl/twinebin.zip and ftp://ftp.sra.co.jp/pub/lang/tcl/twinesrc.doc / ftp://ftp.sra.co.jp/pub/lang/tcl/twinebin.doc

mailto:[email protected] (Professor Ken K. Kubota) has announced a port of Tcl 7.3 and Tk3.6a to MS DOS Windows using Borland C++ 4.0. Fetch the README files from the ftp sites ftp://ftp.ms.uky.edu/pub/tk-win/{tkwinbin,tkwin,fedloc}.zip for more information.

Omar Stanford mailto:[email protected] reported in March of 1994 that he had almost completed his port of Tcl 7.3 to MS-Windows 3.1. He had incorporated extensions for networking (including NetWare), Windows Sockets, and many Windows API functions. He also was working on a facility for dynamically allocating commands to the Tcl environment. If there are other extensions that one would like to see under Windows 3.1, or if you are interested in beta testing, drop him a line.

Also, Simon Kenyon mailto:[email protected] of the Information Technology Centre, Dublin, IRELAND, mentions that they are starting to port Tk to MS-Windows. There is a mailing list (see "tcl-faq/part2") for folk who are interested.

TinyTcl seems to run on pure DOS.

If you do a checkout of the 'contrib' module, you will get the Tcl source plus a small build file for use with DJGPP which will build the Tcl mainline for DOS (yes, the HEAD) http://tcl.cvs.sourceforge.net/tcl/contrib/djgpp/ . A binary is in the SF files area for an old beta version of 8.4. http://prdownloads.sourceforge.net/tcl/tcl8.4a4_dos.zip?download


  • Steve Furr mailto:[email protected] reports getting Tcl ported to QNX without a lot of trouble. He mentions that QNX users who have the beta X hould have gotten a CD-ROM update with Tcl and Tk on the CD.


  • A port of Tcl 7.3, except for glob or command pipelines, to OS/2 2.x using C Set++ has been done by mailto:[email protected] (Bud Bach). As of this date, I have no leads on anyone porting Tk to any version of OS/2. There are some OS/2 X client support kits available for purchase, which might make it easier to port Tk.

Also (see "tcl-faq/part4"), the Tcl programs/packages catalog, for the latest port locations.
  | Nir Levy           | "...but they seem to know where   |
  | [email protected] | they are going, the ones who walk |
  |                    | away from Omelas."  --LeGuin      |