Re: TRS-80 Question

2022-04-19 Thread Charles Dickman via cctalk
On Tue, Apr 12, 2022 at 3:46 PM Fred Cisin via cctech 
wrote:

> >> There's a 2K hole in the Model I memory map above the ROM
> On Tue, 12 Apr 2022, Yeechang Lee via cctech wrote:
> > Is this the hole that causes stock Model I to not run CP/M?
>
> NO.
> The problem with CP/M on TRS80 is that CP/M expects RAM from location 0 on
> up.


When I was a freshman at Purdue, I lugged my Model III to my dorm room and
connected to the ECN network with a 300 baud modem. I used a local editor
and wrote a Pascal program to upload my Pascal source to the dual processor
VAX-11/780 (Google George Goble), ea or eb, (I don't remember) that was
used by our introductory programming class. The terminal program I had was
something I found in Byte magazine in assembler and I modified it for the
TRS-80. I had BASIC, Assembler and Fortran on the TRS-80 M III, so it was
probably all in assembly.

There was an article in Byte about CP/M for the TRS-80 Model III that
described a hack to swap the ROM for RAM. The idea was to invert bits A15
and A14. That would move the ROM and keyboard from  to C000. There was
a spare bit in some 4 bit register, so all you had to do was cut a couple
traces and insert some XOR gates. I remember doing the modification on a
Saturday while listening to the Purdue football game on the radio. I put it
all back together and it worked. WoHo!

At that point though I had no access to CP/M or where I might get it legal
or otherwise, but I was good to go when I found it.

I still have the computer and I still have the Byte copy. So 37 years later
I should try to complete the project.

-chuck


Re: TRS-80 Question

2022-04-19 Thread Fred Cisin via cctalk

There's a 2K hole in the Model I memory map above the ROM

Is this the hole that causes stock Model I to not run CP/M?



NO.
The problem with CP/M on TRS80 is that CP/M expects RAM from location 0 on
up.


On Tue, 19 Apr 2022, Charles Dickman wrote:

When I was a freshman at Purdue, I lugged my Model III to my dorm room and
connected to the ECN network with a 300 baud modem. I used a local editor
and wrote a Pascal program to upload my Pascal source to the dual processor
VAX-11/780 (Google George Goble), ea or eb, (I don't remember) that was
used by our introductory programming class. The terminal program I had was
something I found in Byte magazine in assembler and I modified it for the
TRS-80. I had BASIC, Assembler and Fortran on the TRS-80 M III, so it was
probably all in assembly.

There was an article in Byte about CP/M for the TRS-80 Model III that
described a hack to swap the ROM for RAM. The idea was to invert bits A15
and A14. That would move the ROM and keyboard from  to C000. There was
a spare bit in some 4 bit register, so all you had to do was cut a couple
traces and insert some XOR gates. I remember doing the modification on a
Saturday while listening to the Purdue football game on the radio. I put it
all back together and it worked. WoHo!

At that point though I had no access to CP/M or where I might get it legal
or otherwise, but I was good to go when I found it.

I still have the computer and I still have the Byte copy. So 37 years later
I should try to complete the project.

-chuck


There were numerous hacks for TRS80 CP/M.
FMG sold a relocated CP/M for stock TRS80
Mnay programs weren't compatible, but it WAS CP/M, and adequate for 
teaching CP/M basics to my class, such as creating a zero length file for 
program restarting, etc.


Omikrom ("Mapper")
Parasitic Engineering ("Shuffleboard"?  Howard Fullmer's company)
Both of those were one daughterboard in the Model 1 to remap memory, and a 
daughterboard in the Expansion Interface to add 8" capability



There also some for model 3, including
Montezma Micro (Ron Jones?)
Hurrican Labs,
FEC?
Holmes?
Micro Craft?


When Radio Shack came out with the Model 4, which had built-in suitable 
memory map, they sold "CP/M Plus" (3.0?)
That would probably be the best to work with, and likely the easiest 
to find.


--
Grumpy Ol' Fred ci...@xenosoft.com





Re: TRS-80 Question

2022-04-12 Thread Fred Cisin via cctalk

There's a 2K hole in the Model I memory map above the ROM

On Tue, 12 Apr 2022, Yeechang Lee via cctech wrote:

Is this the hole that causes stock Model I to not run CP/M?


NO.
The problem with CP/M on TRS80 is that CP/M expects RAM from location 0 on 
up.
Location 0 - FFh are used as a data structure for running programs, with 
location 100h and up as the "transient Program Area", where programs load 
and run.

TRS80 has ROM in bottom 16K.

There did exist MODIFIED CP/M ("FMG") that loaded above ROM, and ran 
programs that weren't too "hard-wired" to expect specific load location.


Parasitic Engineering (Howard Fullmer) and Omikron Mapper both made 
sandwich boards for the model 1 that moved things (under software control) 
to run "real" CP/M.  They both ALSO sold 8" drive conversions for the 
Expansion Interface.


--
Grumpy Ol' Fred ci...@xenosoft.com


Re: TRS-80 Question

2022-04-12 Thread Will Cooke via cctalk



> On 04/12/2022 2:11 PM Yeechang Lee via cctech  wrote:
> 
> 
> Eric Dittman says:
> > There's a 2K hole in the Model I memory map above the ROM
> Is this the hole that causes stock Model I to not run CP/M?
> 

The ROM at address 0 is the bigger issue.  CP/M requires RAM starting at 
address 0.


Re: TRS-80 Question

2022-04-12 Thread Yeechang Lee via cctalk
Eric Dittman says:
> There's a 2K hole in the Model I memory map above the ROM

Is this the hole that causes stock Model I to not run CP/M?

-- 
geo:37.78,-122.416667


Re: TRS-80 Question

2022-04-12 Thread Bill Gunshannon via cctalk

On 4/12/22 11:49, Peter Cetinski via cctalk wrote:


On 4/12/22 6:37 AM, Bill Gunshannon via cctalk wrote:

So, this just gets more and more confusing. (Have I really been away
from all this for that long!!!)
I dug up the tech manuals for the two of them (buried deep in my
stacks of books) and compared them.  And you are, of course, right.
Which just brings more questions.
Why do Model I cassette programs (not BASIC) not run on the Model III?



Model I machine language cassette programs will run just fine on the Model III 
given that the restrictions on direct hardware access mentioned are respected.


OK.  I was positive that I had tried this in the past without success
but I don't trust me memory so much any more so I tried it again.




For example, for my game RoundUp!, you can load the 500 baud tape version on 
the Model I or Model III just fine.  Of course, you need to specify “L” for low 
rate baud of 500 at the Model III Cassette? prompt.  The model I only supports 
500 baud cassettes.


I just loaded Tiny Pascal for the Model I into a Model III.
Tape successfully loaded.
Typed / and hit return.
L3 ERROR.

I may try something else just to see what happens, but being as
Tiny Pascal is the program I want to work with, it really doesn't
matter.  :-)

I have asked in other places but I guess I'll ask here, too.
Does anyone have a copy of Tiny Pascal (a cassette program)
for the Model III?  While I still have my Model I version in
one of my moves it appears I lost my Model III version.  All
I have is documentation, no tape.

Has that particular program not managed to survive for some
reason?

bill


Re: TRS-80 Question

2022-04-12 Thread Peter Cetinski via cctalk
> 
> On 4/12/22 6:37 AM, Bill Gunshannon via cctalk wrote:
>> So, this just gets more and more confusing. (Have I really been away
>> from all this for that long!!!)
>> I dug up the tech manuals for the two of them (buried deep in my
>> stacks of books) and compared them.  And you are, of course, right.
>> Which just brings more questions.
>> Why do Model I cassette programs (not BASIC) not run on the Model III?
>> 

Model I machine language cassette programs will run just fine on the Model III 
given that the restrictions on direct hardware access mentioned are respected.  
For example, for my game RoundUp!, you can load the 500 baud tape version on 
the Model I or Model III just fine.  Of course, you need to specify “L” for low 
rate baud of 500 at the Model III Cassette? prompt.  The model I only supports 
500 baud cassettes.

Re: TRS-80 Question

2022-04-12 Thread Eric Dittman via cctalk

On 4/12/22 6:37 AM, Bill Gunshannon via cctalk wrote:

So, this just gets more and more confusing. (Have I really been away
from all this for that long!!!)

I dug up the tech manuals for the two of them (buried deep in my
stacks of books) and compared them.  And you are, of course, right.

Which just brings more questions.

Why do Model I cassette programs (not BASIC) not run on the Model III?
Why did they relocate a Model I program that had a specific Model III
version to a slightly higher location in memory?


It was common to add a loader for cassette programs that would
load the program in higher memory and relocate to the original
location so they could be loaded from disk (on both the Model I
and Model III).  This is because the original location would
typically be in low RAM used by the OS.

In some cases there wasn't a disk version of the program, in
other cases it was to avoid having to buy the disk version.
For games if there was a disk version the only likely change
was to add a high score table that was written to disk, so
not worth paying again.  There were a few games that added
extra features to the disk version but right now I can't
remember which ones.  I think Big Five did a few this way.
--
Eric Dittman


Re: TRS-80 Question

2022-04-12 Thread Bill Gunshannon via cctalk

On 4/11/22 22:37, Eric Dittman via cctalk wrote:

On 4/11/22 1:33 PM, Bill Gunshannon via cctalk wrote:

On 4/11/22 14:09, Eric Dittman via cctalk wrote:

On 4/11/22 11:56 AM, Bill Gunshannon via cctalk wrote:


Here's one for whatever TRS-80 gurus still hang out.

The Mode 4 had 64K RAM and pretended to be a Model III by loading
an image of the Model III Rom and then running it.  Would it be at
all possible to do the same thing with an image from the Model I
and thus make a Model 4 capable of running Model I programs?


The Model 4 had the Model III ROM included.  It was the Model 4P
that had to load the Model III ROM image from disk before operating
in Model III mode.


Not surprised I got that part wrong.  But then, I use my 4P all the
time and haven't touched a normal 4 or 3 in quite a while.



There were some hardware differences between the Model I and Model
III, such as the disk interface being memory-mapped in the Model I
and port-mapped in the Model III, but if the Model I programs don't
use anything that's different in the Model III then the Model 4 in
Model III mode should be able to run them.  So a game that's loaded
from cassette should work but a game that runs from disk and writes
to the disk won't work.


Actually, the big difference is the memory map.  Most Model 1
programs load right where the top off the Model III ROM sits
so they can not be used on the 3 or 4.  That's why I was hoping
the ROM image trick could be used.  I guess it was just wishful
thinking. Thanks for the info,


There's a 2K hole in the Model I memory map above the ROM, this
space is used by the Model III ROM (12K ROM on the Model I, 14K
on the Model III).  After that you have memory-mapped I/O on
the Model I.  Both of them then have the keyboard mapped at
3800H and the video at 3C00H.  RAM starts at 4000H on both of
them.

How the first section of RAM is used depend on whether you are
using disk or cassette and if you are using disk then which OS
you use.  There's a good breakdown of how the RAM is used here:

https://www.trs-80.com/wordpress/zaps-patches-pokes-tips/ram-addresses-and-routines/ 



So, this just gets more and more confusing. (Have I really been away
from all this for that long!!!)

I dug up the tech manuals for the two of them (buried deep in my
stacks of books) and compared them.  And you are, of course, right.

Which just brings more questions.

Why do Model I cassette programs (not BASIC) not run on the Model III?
Why did they relocate a Model I program that had a specific Model III
version to a slightly higher location in memory?

bill



Re: TRS-80 Question

2022-04-11 Thread Eric Dittman via cctalk

On 4/11/22 1:33 PM, Bill Gunshannon via cctalk wrote:

On 4/11/22 14:09, Eric Dittman via cctalk wrote:

On 4/11/22 11:56 AM, Bill Gunshannon via cctalk wrote:


Here's one for whatever TRS-80 gurus still hang out.

The Mode 4 had 64K RAM and pretended to be a Model III by loading
an image of the Model III Rom and then running it.  Would it be at
all possible to do the same thing with an image from the Model I
and thus make a Model 4 capable of running Model I programs?


The Model 4 had the Model III ROM included.  It was the Model 4P
that had to load the Model III ROM image from disk before operating
in Model III mode.


Not surprised I got that part wrong.  But then, I use my 4P all the
time and haven't touched a normal 4 or 3 in quite a while.



There were some hardware differences between the Model I and Model
III, such as the disk interface being memory-mapped in the Model I
and port-mapped in the Model III, but if the Model I programs don't
use anything that's different in the Model III then the Model 4 in
Model III mode should be able to run them.  So a game that's loaded
from cassette should work but a game that runs from disk and writes
to the disk won't work.


Actually, the big difference is the memory map.  Most Model 1
programs load right where the top off the Model III ROM sits
so they can not be used on the 3 or 4.  That's why I was hoping
the ROM image trick could be used.  I guess it was just wishful
thinking. Thanks for the info,


There's a 2K hole in the Model I memory map above the ROM, this
space is used by the Model III ROM (12K ROM on the Model I, 14K
on the Model III).  After that you have memory-mapped I/O on
the Model I.  Both of them then have the keyboard mapped at
3800H and the video at 3C00H.  RAM starts at 4000H on both of
them.

How the first section of RAM is used depend on whether you are
using disk or cassette and if you are using disk then which OS
you use.  There's a good breakdown of how the RAM is used here:

https://www.trs-80.com/wordpress/zaps-patches-pokes-tips/ram-addresses-and-routines/
--
Eric Dittman


Re: TRS-80 Question

2022-04-11 Thread Bill Gunshannon via cctalk

On 4/11/22 14:09, Eric Dittman via cctalk wrote:

On 4/11/22 11:56 AM, Bill Gunshannon via cctalk wrote:


Here's one for whatever TRS-80 gurus still hang out.

The Mode 4 had 64K RAM and pretended to be a Model III by loading
an image of the Model III Rom and then running it.  Would it be at
all possible to do the same thing with an image from the Model I
and thus make a Model 4 capable of running Model I programs?


The Model 4 had the Model III ROM included.  It was the Model 4P
that had to load the Model III ROM image from disk before operating
in Model III mode.


Not surprised I got that part wrong.  But then, I use my 4P all the
time and haven't touched a normal 4 or 3 in quite a while.



There were some hardware differences between the Model I and Model
III, such as the disk interface being memory-mapped in the Model I
and port-mapped in the Model III, but if the Model I programs don't
use anything that's different in the Model III then the Model 4 in
Model III mode should be able to run them.  So a game that's loaded
from cassette should work but a game that runs from disk and writes
to the disk won't work.


Actually, the big difference is the memory map.  Most Model 1
programs load right where the top off the Model III ROM sits
so they can not be used on the 3 or 4.  That's why I was hoping
the ROM image trick could be used.  I guess it was just wishful
thinking. Thanks for the info,

bill




Re: TRS-80 Question

2022-04-11 Thread Eric Dittman via cctalk

On 4/11/22 11:56 AM, Bill Gunshannon via cctalk wrote:


Here's one for whatever TRS-80 gurus still hang out.

The Mode 4 had 64K RAM and pretended to be a Model III by loading
an image of the Model III Rom and then running it.  Would it be at
all possible to do the same thing with an image from the Model I
and thus make a Model 4 capable of running Model I programs?


The Model 4 had the Model III ROM included.  It was the Model 4P
that had to load the Model III ROM image from disk before operating
in Model III mode.

There were some hardware differences between the Model I and Model
III, such as the disk interface being memory-mapped in the Model I
and port-mapped in the Model III, but if the Model I programs don't
use anything that's different in the Model III then the Model 4 in
Model III mode should be able to run them.  So a game that's loaded
from cassette should work but a game that runs from disk and writes
to the disk won't work.
--
Eric Dittman


Re: TRS-80 Question

2022-04-11 Thread Bill Degnan via cctalk
I think there was a model 1 emulator thatwas disk driven, but I dont know
if I have it myself.  Maybe someone else has this?  There are cassette
and/or disk issues so it depends how youd loadand save programs.
Bill

On Mon, Apr 11, 2022, 12:56 PM Bill Gunshannon via cctalk <
cctalk@classiccmp.org> wrote:

>
> Here's one for whatever TRS-80 gurus still hang out.
>
> The Mode 4 had 64K RAM and pretended to be a Model III by loading
> an image of the Model III Rom and then running it.  Would it be at
> all possible to do the same thing with an image from the Model I
> and thus make a Model 4 capable of running Model I programs?
>
> bill
>