Can anyone who is interested in Pmate (or Zmate) please contact me: nick "AT" ndcode "DOT" org.
I have a solution to the long filenames issue which works in Windows 98. It is a TSR (Terminate-and-Stay-Resident) program called XLLFN.COM
, this stands for "translate long filenames".
What XLLFN does is to translate the INT 21H calls made by PMATE.COM
, such as INT 21H with AX=3D02H which asks MS-DOS to open a file, into the corresponding long-filename INT 21H calls. The translation is transparent to PMATE and it works very well. XFMy Long Filename.txt$$ works fine. I cannot remember if the functions like directory listing work; I think they do.
A slight limitation with XLLFN is that it only works after Windows 98 has been loaded. So if you booted into DOS by changing the MSDOS.SYS file to stop the automatic loading of Windows 98 then long filenames will not be available until you load Windows 98. This is a limitation of Microsoft's underlying implementation. As to the DOS Box in Windows NT-derived systems such as Windows XP, I do not know if they support TSRs or long filenames. They might.
Another thing that I have done, if I can find it, is to make a soft-copy of the PMATE manual in HTML format. I did this by simply typing in the entire manual. I won't bother to go looking for this document in my archives unless somebody wants it. Similarly the XLLFN program, which I do not use anymore.
Anyway, I am now a Linux user and I use vim as suggested above, but I have not lost hope that PMATE may some day be available again as my daily editor.
People here might not be aware that PMATE (originally ZMATE) is a derivative of the TECO editor that was available on DEC mainframes since the early 70s.
PMATE does have some new features relative to TECO:
1. The auto buffering, which makes it read more from the file when cursor tries to move past the start or end of buffer T, or in global commands like UStext$$.
2. Visual editing and the instant commands. In TECO all editing is done from the command area with commands such as Itext$$, you cannot type directly into the document or use instant commands such as arrow keys, Ctrl-T, Ctrl-E, Ctrl-Z. Still, TECO can optionally provide a visual display similar to PMATE's.
3. The word wrap, and Ctrl-F lines which allow to set word-wrap, tab stops and so on, embedded in the document and local to specific parts of the document.
There are also some strange incompatibilities such as XFmyfile.txt$$ is called EBmyfile.txt$$ in TECO, and must be followed by Y$$ to read the first page of the file which is automatic in PMATE. The L commands work normally but for some reason the M command does not work in Teco, there may be an equivalent? Also, TECO has a more advanced scheme of buffers (I think 36 buffers not just 10) and seems to merge the meaning of the Q-variables and the buffers in some way.
So it would be potentially possible to add these features to one of the TECO implementations. I have source for a nice minimal TECO from Ultrix and a much more overblown and complex TECO called TECOC. If I was going to add the PMATE features I would probably add it to the minimal TECO from Ultrix. However, it seems like a big job since many incompatibilities would need to be resolved.
Another possibility would be to disassemble the PMATE.COM
(for MS-DOS) or the ZMATE.COM
(for CP/M) executable and convert it to C. I have made fairly significant progress on the disassembly in various bursts at different times.
Indeed, back in the DOS days I created a 32-bit PMATE.COM
which ran under a DOS extender and could edit multi-megabyte files, but unfortunately it would occasionally crash for some reason, so it wasn't useful for day-to-day use.
I think I did another one in C for MAC OSX which contained a Z80 emulator and allowed to run ZMATE from the MAC OSX command line and edit files, I'm not sure if I would be able to find this again, but possibly it's in my archives.
Another thing I did was to analyze CONPMATE.COM
and extract the macro from the permanent macro area that runs when you run CONPMATE.COM
on a configuration file. The macro had been minified so it was quite hard to read, but once I indented it properly and made it readable again, it was clear that CONPMATE uses the "poke" command to change various locations in the PMATE.COM
executable and hence change things like the screen size, and so on. It also installs the table which maps instant commands to permanent macros. Unfortunately, I then lost the reverse-engineered CONPMATE macro in a disk crash or similar.
Really, the conversion effort would have to be re-started from scratch with a Linux and C target if it was to be any use. I can't really commit to this project now, but if somebody else wants to, I can hand over what I have.
Anyway, let me have your thoughts if anyone is still reading this discussion.