• Please review our updated Terms and Rules here

Running TRSDOS on Z180 & eZ80

danielbooneamerica

Experienced Member
Joined
Mar 3, 2020
Messages
335
Location
Wayne National Forest
I am happy to report this project is near testing phase. I don’t want to bore folks here with all those details so I have dedicated some web space to this project.
I am looking for tests sites and instructions are provided how to contact me to discuss this.
Please navigate to https://www.danielpaulmartin.com/home/research/ for details on where it goes from here.
Thank you, Daniel
 

danielbooneamerica

Experienced Member
Joined
Mar 3, 2020
Messages
335
Location
Wayne National Forest
I am happy to report a ton of things have been tested working. I have made big advancements in this project since my last post.

Example:

On boot you now have 3 options. Tell me you are connecting in dumb TTY mode, ADDS 25 standard or better yet a special TRS-80 terminal.

TTY mode is for dumb terminal connections using simplest protocols. No cursor control is offered.

ADDS 25 is an early standard created for ADDS series of terminals. This mode does very well at duplicating TRSDOS video screens at local or remote terminals. It provides cursor and screen controls. Some keyboard programming etc is part of standard MSDOS, Windows, MAC etc terminal emulator programs.

Lastly we have a new TRS-80 mode that emulates video and keyboard functions almost perfectly. All keyboard keys, function keys, clear shift whatever key, reverse video, cursor controls, scroll protect etc is all supported. You will need a PC with TRS-80 emulator or a real TRS-80 model 4/4p to connect (remember sorry I do not support model 1/3 (very sorry (great machines but beyond my scope))). This will replicate almost all TRSDOS video functions perfectly but does require a real model 4 or emulator.

If you will be using this for your next home solar or wind project you may use simple TTY mode. Whereby you can connect to a remote sugar packet sized TRS-OS system, run your favorite copy of TRSDOS and monitor your wind turbine you developed an interface to.

Using your Microsoft BASIC included with TRSDOS you developed programs to control all this. After you get your system figured out you can convert it all to C and use Misosys 1st class compiler to compile your own home control system. Many people on here seem to want to roll their own anyway. Microsoft BASIC will still have a handful of address that BASIC could directly interface with. Connect to your TRS-OS platform located up on your wind turbine using a wireless modem or that’s what I will be doing….. Don’t worry about your BASIC program speed, remember I have given you a 5000% increase. For all you old people (I know each of you if you attend old folks meetings - I am one always napping), remember those warm fuzzy Christmas mornings with your new TRS-80? Want to feel that again with something new and heat up your soldering iron? Build a project and write your code on an old favorite processor? Its now possible.

Processor speed is 5000% increase or more. But do you know how much time TRSDOS spent in I/O with drives etc? Probably a lot more time doing I/O than actually running your program. Now not only is processor a 50 fold increase but I/O using RAM storage is a blink compared to a real TRS-80.

Next, remember my storage convention for both volatile and non-volatile storage. Storage is divided into slices to ease management. Volumes (or drive contents) are loaded into these slices of storage. Most installations will only have 2 slices 0 & 1.

Slice 0 is a TRS-OS system slice 64.25k long (for now) and is always reserved for OS and starts @00 0000h.

Slice 1 then begins system RAM disk storage.

Very first VOLUME (drive) in SLICE 1 is TRSDOS drive 0. It is needed for things like overlays, utilities, read only code etc. This VOLUME (drive 0) is always write protected. Thus if changes are needed to OS code (updates etc) special tasks are required by systems operator to unlock write protection of this systems area.

Other VOLUMES (drive contents) in SLICE 1 may be R/W. Remember slice 1 can have dozens of volumes as its contents (limited by RAM). TRSDOS only sees 8 of these VOLUMES at one time however a new command will be included to swith to any volume at any time on fly. Most installations requiring multiple non-volatile storage drives to be open at one time in TRSDOS will store these files in SLICE 2 which points to SD storage.

Until now slices only supported DiskDisk file format.

I am happy to report your slice one can now contain DSK emulator files and can contain as many files as you have storage available. Remember these files will contain images of RAM drives. Thus these files can be loaded into RAM drives and then saved back to non-volatile storage as needed.

TRS-OS and your emulator can interchange these files seamlessly. Soon I will support SD cards for additional larger non-volatile storage but first high speed storage residing in RAM containing OS and overlays etc was needed. Both slice 0 & 1 reside in RAM.

I have visions at night when I sleep of a future when one day your PC with a TRS-80 emulator connected with a seperate eZ80 hardware platform & running TRS-OS, could, share a drive in realtime.

TRS-OS on boot now recognizes if slice 1 contains DSK file or DiskDisk. I have created one disk driver that supports DiskDisk files, DSK and can also create very large RAM drives using max cyl, sectors per track etc. Limits of real storage is hit before limits of driver.

Further corrections, additions and debugging will continue. I am getting good results from test sites and am soon sending out a release with these new features.

Fidelity of running TRSDOS 6 on eZ80 is nearly perfect (or near as I can get it). Remember, you will be booting your own favorite copy of TRSDOS 6.x. It does not require any changes to TRSDOS 6.x to run on eZ80 at 5000% faster. One change is sys0 is ignored and been replaced.

I had to do a lot of deep study recently on TRS-80 UART. Down into its finer details and then get driver on eZ80 to almost perfectly replicate at bit image level, this UART to TRSDOS. So far so good, things like XMODEM programs even work. One problem with XMODEM. With TRS-OS system 5000% faster, when I start a file transfer it goes thru all timeout steps before I can get to terminal program and start transfer. This is one problem I have it things run way tooooooo fast! But now my COM driver makes OS and apps think they are talking with a real TRS-80 UART.

Speaking of debugging; I recently have been testing TRSDOS DEBUG facility included with TRSDOS. It seems to be running from TRSDOS 6 original system disks unchanged.

I hope soon to support booting to other operating systems. Would it appeal if this projects could also boot to something like CP/M? Best of both legacy worlds platform.

That’s about it for now and if I make any progress I will try to post.
 
Last edited:

danielbooneamerica

Experienced Member
Joined
Mar 3, 2020
Messages
335
Location
Wayne National Forest
Is there a document contrasting CP/M and TRSDOS outside of simply what commands they use? As in their internals and what make TRSDOS stand out in contrast to CP/Ms "collection of subroutines"?
After 40 years if you put a worm on this hook there are still bytes.

We must compare apples to apples so this means compare TRSDOS with CP/M releases at that same time frame.

1 CP/M loads all code needed into RAM and does not need a systems disk in drive at all times.

2 TRSDOS introduced overlays, TRSDOS gave a bigger punch with same amount of RAM.

There are many points to debate but these were popular starting points back in day.

3 CP/M could be controlled using a dumb terminal.

4 TRSDOS reguired a dedicated keyboard & video attachment.

But let me tell you one big difference. Had IBM came to Misosys looking for a OS back in day, Roy Soltoff's wife Brenda (going from memory sorry if I get it wrong), would have known exactly what to do, Roy would not have been out flying somewhere but would have been in office ready to deal and our world would be much different today.

Mr. & Mrs Soltoff would have known exactly what to do had IBM came calling! Under direction of Roy & his visions for how a OS should work, development would not have turned out something like messy MSDOS. Roy would have seen past need of 640k, heck back then we were hanging 1MB upgrades off model 4's.

I like to cry over spilled milk but I am doing something about it. TRS-OS will run TRSDOS as a guest and do it at blinding speed while floating in a boat of RAM.

So what strong point does anyone thing CP/M has that TRSDOS dont (remember we have to compare 198x era of versions)?
 

daverand

Member
Joined
Apr 25, 2022
Messages
20
You raise interesting points. I developed software for both back in the day, mostly on Model II & III, and also under CP/M, MP/M and CCPM. Here are my thoughts, in no particular order.

CP/M allowed you to have a larger market of computers to run on. While the TRS-80's were popular, they were not the only game in town, particularly for small business.

Performance of small systems, for disk I/O, was often better under CP/M than TRSDOS. This wasn't really a fault of the OS, but the fact that many systems had DMA, and could run the disks with a "skew" of 1, meaning the data could be read faster. The Model II also had DMA, but by default the interleave on TRSDOS was >1 (my fading memory suggests "6", but I could be wrong).

Programs for TRSDOS were, by the nature of the OS, limited to single user. CP/M had a path to multi-user, and that was significant at the time.

It's interesting that you suggest that TRSDOS "gave a bigger punch with the same amount of RAM". That wasn't my experience, at the time - I had more memory available under CP/M than TRSDOS. Maybe it was the tools I used. Do you have some examples of what you mean? On the Model II, I got about 33k (33608) of BASIC memory available. On CP/M, I got about 34k (34872).
 

danielbooneamerica

Experienced Member
Joined
Mar 3, 2020
Messages
335
Location
Wayne National Forest
It's interesting that you suggest that TRSDOS "gave a bigger punch with the same amount of RAM". That wasn't my experience, at the time - I had more memory available under CP/M than TRSDOS. Maybe it was the tools I used. Do you have some examples of what you mean? On the Model II, I got about 33k (33608) of BASIC memory available. On CP/M, I got about 34k (34872).
Make sure you compare TRSDOS 6.x to CP/M.

TRSDOS 6 has more app area than most any other machine of its day.
Entire OS including overlays runs in 9215 bytes if you do not need lib commands. With lib commands 12,287 bytes is all that is needed to run TRSDOS and all its awsome power. A full 53,247 bytes of RAM avail for your app to happily run!

What is total available RAM on CP/M after loading OS and removing boot disk?

CP/M also had multi level directories.

TRSDOS can call nearly a unlimited number of overlays making it appear that they had been memory resident all along. Thus it appears OS has more RAM than it does.

TRSDOS supports routing, filtering, linking & multitasking out of the box.
 

daverand

Member
Joined
Apr 25, 2022
Messages
20
Well, I was comparing what I actually used, at the time. That was TRSDOS 1.2 (briefly), but mostly TRSDOS 2 on the Model II, vs CP/M and MP/M.

By the time TRSDOS 6 came out (was that in 1983?), I was using MPM/86 on a Seiko 8086 machine, which later got replaced by an IBM AT running CCPM - running 4 users on it. That had all the cool print spooling features, file locking, and such (just like MP/M).

But back to memory: Under CP/M, a typical system of the day could use memory from 0x100 to 0xdc00. That's 56,065 bytes. No need for overlays. On the Model II, FMG CP/M had 53,760 free.

So, under what circumstance did TRSDOS (of any flavor) offer more memory than CP/M? At least in my experience, more memory was available for BASIC under CP/M, certainly more for compiled programs, and you could have binary compatibility to run on a real multi-user system (MP/M).

All of that said, there were some seriously cool things you could do on TRSDOS. Bob Snapp's utilities that used sector 26 to store code, and dynamically load it to extend BASIC functions was very handy, for example. But most of the time, I found that having CP/M was a better option for my customers.
 

WSM

Experienced Member
Joined
Jun 19, 2015
Messages
110
Location
Calgary, AB
What is total available RAM on CP/M after loading OS and removing boot disk?

Using Digital Research layouts, a CP/M 2.2 system with 64K of RAM will have 59K (60,416 bytes) of Transient Program Area (TPA) available to application programs, minus locations 0000-005Bh. Back in the day, one issue was to have a boot EPROM which many systems couldn't switch out of the possible RAM area and thus it reduced the total available RAM.
 

danielbooneamerica

Experienced Member
Joined
Mar 3, 2020
Messages
335
Location
Wayne National Forest
Put a worm on OS debate hook and we have a good time every time. And it is fun. For myself in life I have decided that no one OS can be everthing to everyone.
Its a matter of matching what you want and need with what is available in your budget.

I have had more than one person trying to contact me via my website contact form regarding TRS-OS. I am having problems with this form and have removed it.
If you want to join TRS-OS project or have other questions feel free to email me directly at this project: ----> danny @ danielpaulmartin dot com.

Look forward to hearing from you. I am sorry but recent contacts sent via contact me form on my website have been lost to the ether forever......
 
Top