Re: TRS-80 Question
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
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
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
> 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
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
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
> > 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
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
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
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
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
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
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 >