Author Topic: Cloning a Tandy TRS-80 Model 1  (Read 41150 times)

0 Members and 1 Guest are viewing this topic.

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 15802
  • Country: fr
Re: Cloning a Tandy TRS-80 Model 1
« Reply #50 on: January 13, 2019, 12:24:08 am »


Is that what we could call "spaghetti hardware"?  ;D

Impressive breadboarding job though. Not sure I would have the patience to do that anymore... :-+
 
The following users thanked this post: GK

Online oPossum

  • Super Contributor
  • ***
  • Posts: 1472
  • Country: us
  • Very dangerous - may attack at any time
Re: Cloning a Tandy TRS-80 Model 1
« Reply #51 on: January 13, 2019, 06:58:43 am »
Archive of TRS-80 Model 1 software here: http://www.classiccmp.org/cpmarchives/trs80/Software/Model%201/
There are several versions of Scripsit.

Software to make audio files: http://www.trs-80.com/wordpress/disk-and-tape-conversion-utilities/

One of my favorite Model I programs was 'Dancing Demon'. It is in the archive. Manual is here: https://archive.org/details/Dancing_Demon_1980_Tandy
 

Offline kizmit99

  • Regular Contributor
  • *
  • Posts: 106
  • Country: us
Re: Cloning a Tandy TRS-80 Model 1
« Reply #52 on: January 14, 2019, 06:21:45 pm »
I was thinking about your approach to the keyboard.  I'm making assumptions about what's going on inside the PIC, but I suspect they're correct...
If correct, it doesn't look like you'll be able to express multiple keys down at the same time (exclusive of shift)?  Not sure if you care, but that was something used in at least the 'mini-dos' feature of NEWDOS/80...  If that's not correct, I'd be curious how you're handling that case with only the 6 lines coming out of the PIC to choose-a-character.

I only noticed this because I recently had to redo a bit of my keyboard interface to deal with more of the oddness surrounding the mapping of an event driven keyboard (the PS2) to the very-simple (yet basically instantaneous) nature of the TRS80 approach.

If you get a chance, try the following on your keyboard and see what the results are:
<Press Shift><Press :|;><Release Shift><Release :|;>  -- I suspect the TRS80 code will see ":", followed by ";". 

From what I can discern, the original keyboard scan routines deal with the fact the user may release shift out-of-order, but the fake-"shift"ing/Un"Shift"ing that we need to do when doing the mapping, generally (unless cared for), results in the shift signal changing state in a way that causes the TRS80 code to see both keys being typed.  I've found similar issues with the "+|=", "'|"" (single/double quote key), and issues with "@".  Basically any keys where the PS2 keys map to two separate TRS80 keys.

I was able to correct that behavior on my design by only allowing my "ForceShift" and "ForceNoShift" signals to change at the beginning of each PS2 keypress.  I realize that doesn't "mean anything" without having the internals of my design, but I suspect you're doing something very similar in your PIC code - so perhaps it will make sense  :-//

Interestingly enough (to me at least) the TRS32 emulator suffers from exactly the same symptoms I was seeing.  (So I at least take solace in the fact I'm not the only one who missed it  ;))

 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #53 on: January 15, 2019, 07:19:48 am »
Archive of TRS-80 Model 1 software here: http://www.classiccmp.org/cpmarchives/trs80/Software/Model%201/
There are several versions of Scripsit.

Software to make audio files: http://www.trs-80.com/wordpress/disk-and-tape-conversion-utilities/

One of my favorite Model I programs was 'Dancing Demon'. It is in the archive. Manual is here: https://archive.org/details/Dancing_Demon_1980_Tandy


That's a nice resource, thanks. I looked up Dancing Demon on Youtube - that was probably some high-end computer animation back in the day!
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #54 on: January 15, 2019, 08:14:16 am »
I was thinking about your approach to the keyboard.  I'm making assumptions about what's going on inside the PIC, but I suspect they're correct...
If correct, it doesn't look like you'll be able to express multiple keys down at the same time (exclusive of shift)?  Not sure if you care, but that was something used in at least the 'mini-dos' feature of NEWDOS/80..


Correct. As currently breadboarded, aside from the shift key which is handled separately, two or more keys cannot be applied simultaneously. It didn't occur to me that this might be a desired or necessary feature; thanks for raising it. Minus the shift keys there are only 51 keys to encode, hence the six (1-of-64) key character-select lines to the LUT ROM only. One additional location needs to be reserved for an unasserted keyboard, but that leaves me 12 remaining addressable locations any/each of which can be programmed to assert any single key again or any possible combination of multiple keys. However the multiple-key combinations would have to be specifically recognized by the PIC. If there is, for example, some odd-ball program which requires you to press A and L together, such, with the current implementation, could be accommodated this way. I still have two ROM address lines currently unused, so I could theoretically increase the number of programmable special key-combinations to 204, but this might become tedious.

Would NEWDOS/80 be unduly crippled without the ability to simultaneously assert keys?

Alternatively a matrix array of individual AND gates (one for each key), with the outputs ORed in banks for each data output line, individually addressed by the PIC, would completely obliviate any hardware limitations to multiple key presses. However this is now a non-LUT solution fit for a small CPLD rather than an EPROM, which isn't what I had immediately at hand on the weekend when I decided to get some keyboard input happening. I think this is the approach that I am going to take now. Time to get Quartus installed onto my new PC.


If you get a chance, try the following on your keyboard and see what the results are:
<Press Shift><Press :|;><Release Shift><Release :|;>  -- I suspect the TRS80 code will see ":", followed by ";". 

From what I can discern, the original keyboard scan routines deal with the fact the user may release shift out-of-order, but the fake-"shift"ing/Un"Shift"ing that we need to do when doing the mapping, generally (unless cared for), results in the shift signal changing state in a way that causes the TRS80 code to see both keys being typed.  I've found similar issues with the "+|=", "'|"" (single/double quote key), and issues with "@".  Basically any keys where the PS2 keys map to two separate TRS80 keys.


Yes, I just tried and my clone does respond this way. To be honest, this isn't something which would bother me personally, but is is easily rectified in firmware by delaying the release of shift as you describe.
« Last Edit: January 15, 2019, 08:18:44 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Online PA0PBZ

  • Super Contributor
  • ***
  • Posts: 5259
  • Country: nl
Re: Cloning a Tandy TRS-80 Model 1
« Reply #55 on: January 15, 2019, 08:48:33 am »
Would NEWDOS/80 be unduly crippled without the ability to simultaneously assert keys?

There are (from memory) 3 3-key commands:

123  - debugger
DFG - mini-dos
JKL  - screen print

Keyboard error: Press F1 to continue.
 

Offline biff

  • Contributor
  • Posts: 10
  • Country: us
Re: Cloning a Tandy TRS-80 Model 1
« Reply #56 on: January 15, 2019, 12:04:35 pm »


Correct. As currently breadboarded, aside from the shift key which is handled separately, two or more keys cannot be applied simultaneously. It didn't occur to me that this might be a desired or necessary feature; thanks for raising it. Minus the shift keys there are only 51 keys to encode, hence the six (1-of-64) key character-select lines to the LUT ROM only. One additional location needs to be reserved for an unasserted keyboard, but that leaves me 12 remaining addressable locations any/each of which can be programmed to assert any single key again or any possible combination of multiple keys. However the multiple-key combinations would have to be specifically recognized by the PIC. If there is, for example, some odd-ball program which requires you to press A and L together, such, with the current implementation, could be accommodated this way.

While NewDOS80 is the most obvious consumer of multiple simultaneous keypresses, it isn't the only one by far.
I dimly recall Big 5 games allowing the game to be aborted by pressing "Break"+"Clear" - but it might have been "Shift"+"Clear" - which you probably handle.
I do know that one of my all time favorite games "Armor Patrol" AKA "Tankzone 2000" a battlezone clone, requires pressing multiple keys together for movement.

For example, "A"+";" to move forward, "Z" + "." to move backward and combinations of those to turn.  (I may be misremembering the exact keys - but you get the idea).  And of course, while doing those keyboard gyrations, you're also hitting SPACE to fire.

And then in BASIC, there is the ability to press and hold the "Down Arrow" key and press another key such as "C" to generate a Ctrl-C and other control codes.
And some terminal programs would use "@" as a command key - expecting you to press that along with another key for a function.


 
The following users thanked this post: GK

Offline kizmit99

  • Regular Contributor
  • *
  • Posts: 106
  • Country: us
Re: Cloning a Tandy TRS-80 Model 1
« Reply #57 on: January 15, 2019, 11:30:02 pm »
Yes, I just tried and my clone does respond this way. To be honest, this isn't something which would bother me personally...

I would have thought the same thing, but I've discovered in the (what seems like) many thousands of times trying to boot LDOS  |O that when I type "1:00:00" to enter the time, I instead manage to get "1:;00:;"...  Which, of course, isn't liked by LDOS and I get to try again at a slower, more precise pace...  Hence my even being aware of the issue, and why I went ahead and dealt with it.

Just another point about the ROM approach to the keyboard scan-array - I suspect you've got this covered already, but in case not...  While the "normal" case was to assert only one of the address lines at a time when trying to determine "which" key was pressed, a lot of code would assert multiple (possibly all) address lines at the same time in order to determine whether "any" key was pressed in a single read-cycle.  Your ROM approach should easily deal with that/those cases, but of course it depends on the ROM being programmed appropriately.
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #58 on: January 16, 2019, 06:59:02 am »
Just another point about the ROM approach to the keyboard scan-array - I suspect you've got this covered already, but in case not...  While the "normal" case was to assert only one of the address lines at a time when trying to determine "which" key was pressed, a lot of code would assert multiple (possibly all) address lines at the same time in order to determine whether "any" key was pressed in a single read-cycle.  Your ROM approach should easily deal with that/those cases, but of course it depends on the ROM being programmed appropriately.


Yep, my EPROM is programmed to handle this. In fact the keyboard interface wouldn't work at all if it wasn't. The TRS-80 doesn't periodically scan the entire keyboard. What it does initially is assert all of the address lines high and then checks the data bus for anything other than 0x00. If there is activity on the data bus (indicating a pressed key or keys) it then scans the full keyboard by sequentially asserting the address lines; otherwise it goes onto other things.

My EPROM LUT hack could be expanded to handle simultaneous keys - for each additional key just add an another identically programmed EPROM in parallel. The data output lines of course would need to be paralleled by ORing and the six LS (key/character select) address lines independently controlled by the PIC.

However a basic AND/OR matrix array (for the full 2^51 combinations  :P ) in a CPDL is my preference now. To simply the microcontroller interface I'll add a serial-in shift register for handling the single-bit status of all 51 keys.

I cut my teeth on Altera (now Intel) MAX 7000 devices and they are still my default resort for 5V-tollerant glue logic. These parts are still going strong with a decent selection still in active production, but Microchip offers a family of device-compatible parts with claimed benefits : https://www.microchip.com/design-centers/programmable-logic/spld-cpld

Has anyone here used these? Worth switching sides?
 
« Last Edit: January 16, 2019, 07:07:51 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline nick_d

  • Regular Contributor
  • *
  • Posts: 120
Re: Cloning a Tandy TRS-80 Model 1
« Reply #59 on: January 16, 2019, 09:46:02 pm »
I use the Atmel ATF1500 series CPLDs for retro projects because they are a 5V family that's still available, at least they were available on Digikey a year ago when I last bought them.

On the other hand, this is for a Z180 processor that has ordinary CMOS inputs with 2.5V threshold, whereas I think the TRS-80 would be mostly using the TTL compatible parts such as the Z84C00 that has the 1.2V threshold, hence the 3.3V CPLD with 5V tolerant inputs would be fine. The only thing that's a bit of a pain about this is having to provide an extra 3.3V supply, another reason I prefer the ATF1500s.

Nick
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #60 on: January 17, 2019, 01:07:00 pm »
What software are you using? I've used up my monthly data quota and am stuck to dial-up-level internet speeds for several days still, so downloading anything and having a play is off the cards for the time being. However for VHDL synthesis and schematic entry I need a Mentor Graphics license and have to integrate with Protel/Altium respectively? GUPL? Pass, I think.
   
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #61 on: January 19, 2019, 11:20:34 am »
This afternoon I got the data cassette interface built up and operational, so I can now save and load programs. Here is my first to be saved, at a blistering 250 bits per second  :) :

https://www.eevblog.com/forum/projects/cloning-a-tandy-trs-80-model-1/?action=dlattach;attach=627973

I've attached a schematic of the cassette interface portion. Note that this is only a quickly devised prototype circuit using parts immediately at hand, and not the final design. Since there aren't any other I/O devices (floppy disk controller, printer, etc) besides the data cassette interface that are currently part of the system, I didn't even have to decode the address for the cassette port to make it work.

I would like to load and run a famous commercial program for my first demonstration video, but at the moment I am stuck to running BASIC level 1 only. Although the computer is now running really stably in BASIC Level 1, it has decided to refuse to boot at all in BASIC level 2. I dunno exactly why, though I suspect that may have corrupted my ROM by accidentally disturbing the wire to the !WR pin while powered up (as this is only a prototype I am currently using a flash ROM rather than an OTP one). The ROM is a 32kb AT28C256. I have BASIC Level 1 occupying the first 4kb of the lower 16kb page and BASIC Level II occupying the first 12kb of the upper 16kb page. The ROM is really buried beneath wires and I'm not sure I want to risk getting it out

All of the programs that I've downloaded from the net so far have turned out to be 500 baud, BASIC Level II only, annoyingly.



Oops, the polarity of the signal at the output of the rectifier is drawn opposite of actual.


« Last Edit: January 19, 2019, 11:30:41 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #62 on: January 19, 2019, 02:00:45 pm »
Okay........ finally found a 250 baud Level 1 game with fast moving screen graphics. This is the first piece of commercial software loaded and run by my prototype. Unfortunately this one doesn't have any sound effects though. I'd really like some zaps, beeps and buzzes in my first Youtube video. Does anyone have a game-with-sound suggestion?

« Last Edit: January 19, 2019, 02:02:26 pm by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline kizmit99

  • Regular Contributor
  • *
  • Posts: 106
  • Country: us
Re: Cloning a Tandy TRS-80 Model 1
« Reply #63 on: January 19, 2019, 03:33:37 pm »
Looking great  :-+
A couple of good audio games are Defense Command (Space Invaders clone) and Robot Attack (Robotron clone).  I believe both generate 'speech' via the incredibly rudimentary cassout signal...  Both are cmd files though, and as far as I know are only available for level-2.

I know (from your Pet clone) that you're comfortable doing the cassette input signal conditioning all in analog (like the original), but I have found that taking the crappy input signal and using a one-shot to turn it into a digital signal as soon as practical makes for a much more forgiving (and therefor more pleasant) CLOAD experience.  I had done this with my original back in the day, so I consider it a period-correct upgrade  ;D

What are your plans for the cassette motor?  The original used an relay to switch the motor power (provided by the cassette desk) on the aux-input.  Since this would only work with the specially modified TRS80 cassette decks, I decided to just drop the motor on feature altogether...

EDIT---
A few more random thoughts on the cassette - just thrown out as things you may wish to consider...

* Connectors?  I decided to ditch the original DIN-6 as they were so proprietary and I don't plan on using a real TRS80 cassette deck (those are reserved for the real TRS80 machines!).  But even if I wanted to use a real deck, making up new cables to connect it shouldn't be a problem.  So I devolved the cassette connectors to two mini-audio jacks - one for input, one for out.  It makes for an easy hookup to the digital voice recorder I'm using as the substitute cassette deck.

*Audio Out?  I like hearing the primitive audio from the early games, but I don't like hearing the data loading or using the cassette deck as the audio amp.  So I've decided to add a separate audio amp driving a separate audio-out jack to feed a small speaker directly.  I may use the motorOn control from the cpu to disable this output when loading/saving data.  Probably would have an option for leaving it on to help debug CLOAD/CSAVE issues.

*Audio quality - I tried using the cassout signal to drive a piezo speaker... bad idea, doesn't sound anything like the same signal driving a small "standard" speaker.
« Last Edit: January 19, 2019, 03:56:30 pm by kizmit99 »
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #64 on: January 20, 2019, 01:04:35 am »
Thanks  :)

I'm not overly enamored with the cassette analogue circuitry as it is currently implemented. One thing I definitely won't be modifying though is the input signal conditioning (2-pole high/low-pass filtering). My lab PC for example makes for a lousy audio source with gobs of HF rubbish superimposed. Then there are ground loops/main hum and other potential sources of HF interference too, especially when the signal source is on the other side of the lab connected via a 5m cable. 

One thing with the TRS-80 cassette interface that will never match the performance that I managed to design into my 8-bit Commodore one, is the tolerance for a large dynamic range of signal input level. The PET uses essentially a continuous FSK squarewave. All you have to do to clean this signal up is amplify and limit it. The TRS-80 though uses a pulsed, return-to-zero signal. Amplify this signal excessively and all you do is raise the noise floor and narrow the detection window. One saving grace of the TRS-80 system though as opposed to that of the PET is that it isn't signal-polarity sensitive.

For the audio side of thing I'm going to do pretty much what I did with the PET clone (internal speaker and an LM386). Personally, I find it useful as a diagnostic aid to be able to listen in if required to either the cassette out or in signal. I was just going to have three positions to my audio source select switch - Off, CASS in and CASS out, but I like your idea of using the motor control signal to mute the audio, so perhaps a fourth position called "CASS out auto mute" or something.

« Last Edit: January 20, 2019, 03:13:51 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #65 on: January 20, 2019, 03:12:12 am »
Oh, is there anyone out there who can tell me how to enable the "low resolution" 32 column display mode? I can't find any Level 1 info on this anywhere. Is it even possible in BASIC Level 1? This is an I/O operation and you have to toggle data bit 3 at address FF.
« Last Edit: January 20, 2019, 03:23:40 am by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline biff

  • Contributor
  • Posts: 10
  • Country: us
Re: Cloning a Tandy TRS-80 Model 1
« Reply #66 on: January 20, 2019, 03:31:55 am »
Oh, is there anyone out there who can tell me how to enable the "low resolution" 32 column display mode? I can't find any Level 1 info on this anywhere. Is it even possible in BASIC Level 1? This is an I/O operation and you have to toggle data bit 3 at address FF.

I believe this is strictly a Level II feature.
 

Offline MustardMan

  • Contributor
  • Posts: 44
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #67 on: January 20, 2019, 09:27:29 am »
I love your work! And you've made significant progress in such a short time - no got kids one assumes!

Anyway, reading about the 'expanded' memory that you intend to put on this PCB and the likely conflict with a genuine EI (if connected)... would it not be better rather than modifying the EI that you put a jumper on your PCB to restrict it to 16K? Then the EI can work without any changes, and it increases the ability for your board to be a true hardware clone...

Reading the discussion about the keyboard... that is a tough one. It could be that a CPLD/FPGA might be the only way to create a 100% true 'clone' - turning a PS2 keyboard into a close-as-can-be memory mapped one.

A project that intended something similar is on Hackaday.io, but it stalled and never seemed to progress. Shame. It might be interesting (or it might not) : https://hackaday.io/project/5565-trs-80-compatible-clone

I for one will be wanting to buy one of your PCBs! Any thoughts on creating a BOM, or if you'll do a kit of parts?

MM.
« Last Edit: January 20, 2019, 10:06:33 am by MustardMan »
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #68 on: January 21, 2019, 11:36:16 am »
Oh, is there anyone out there who can tell me how to enable the "low resolution" 32 column display mode? I can't find any Level 1 info on this anywhere. Is it even possible in BASIC Level 1? This is an I/O operation and you have to toggle data bit 3 at address FF.

I believe this is strictly a Level II feature.


OK, thanks, I thought so. You'd still be able to toggle low res mode in machine code though I'm sure, but I'm not that adept a TRS-80 user/programmer just yet.
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #69 on: January 21, 2019, 11:47:57 am »
I love your work! And you've made significant progress in such a short time - no got kids one assumes!

Anyway, reading about the 'expanded' memory that you intend to put on this PCB and the likely conflict with a genuine EI (if connected)... would it not be better rather than modifying the EI that you put a jumper on your PCB to restrict it to 16K? Then the EI can work without any changes, and it increases the ability for your board to be a true hardware clone...

Reading the discussion about the keyboard... that is a tough one. It could be that a CPLD/FPGA might be the only way to create a 100% true 'clone' - turning a PS2 keyboard into a close-as-can-be memory mapped one.

A project that intended something similar is on Hackaday.io, but it stalled and never seemed to progress. Shame. It might be interesting (or it might not) : https://hackaday.io/project/5565-trs-80-compatible-clone

I for one will be wanting to buy one of your PCBs! Any thoughts on creating a BOM, or if you'll do a kit of parts?

MM.


Thanks for the interest  :)

I probably will be making the RAM size switchable between 16k and 48k because it appears that BASIC Level 1 doesn't properly recognize more than 16k, or at least doesn't accurately test it. For example I have my EPROM LUT address decoder coded to address either 16, 32 or 48k of RAM. I currently have a 256kbit (32kbyte) SRAM chip wired in. When I rewire the address decoder from 16k to 32k and type "PRINT MEM" to report on the free memory the computer responds with "-16897", which is actually (ignoring the negative sign) 32kbytes minus the actual free RAM in 16kbyte mode (512 bytes are reserved for BASIC).

I won't be proving any kind of kit but intend to complete and publish the design to the same extent as the PET-2001 clone.
   
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #70 on: January 21, 2019, 12:19:46 pm »
Well, here is a video. Powering on, checking the free memory and then loading Radio Shack Flying Saucers via the cassette interface from my crappy Digitech digital audio recorder. Quite possibly the very first TRS-80 ever up and running on breadboard  :)


http://youtu.be/dClOHNcpnVw
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 
The following users thanked this post: jeffheath

Offline MustardMan

  • Contributor
  • Posts: 44
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #71 on: January 22, 2019, 05:48:40 am »
That is certainly one hella rats nest you have there!

I do have one level 1 cassette in my collection (a real one from Tandy!). Chess. According to "WAV2CAS" it has decodable Level 1 content on the tape. A couple of recognised SYSTEM files (with a valid checksum), and some other stuff that appears OK with recognisable ASCII in it, but WAV2CAS says it is bad. I never played/ran it because I had a L2 machine, and the L2 version was on the reverse side of the tape. I can send you a WAV (or compressed in some format), but as far as I know the game has no sound - which is one of the things you wanted. I could send a CAS, but that would be assuming that WAV2CAS got the decode right, and from my experience, that is not always the case.

Edit: By the way, what sort of keyboard interface did you decide to go with?
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #72 on: January 23, 2019, 12:19:15 pm »
Oh that's OK, I just went ahead and did the video without sound effects so it doesn't matter anymore. The next video will be of the completed machine running Level II Basic and probably some derivative of Space Invaders....to continue with the theme started with my PET clone. I have a *.cas file of "Micro-Chess" for 250 baud, which might be the same Chess game you've got (from here: http://www.classiccmp.org/cpmarchives/trs80/mirrors/pilot.ucdavis.edu/davidk/trs80/software/cassette.htm ). I still have the PIC+EPROM on the breadboard for interfacing the keyboard. I've designed the proper interface with an MAX 7000 CPLD.

Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline GKTopic starter

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Re: Cloning a Tandy TRS-80 Model 1
« Reply #73 on: January 24, 2019, 12:21:23 pm »
I've had a cool idea for another home brew computer peripheral - a PS/2 interface/converter for a standard Atari joystick port. I'm thinking a PIC micro interfaced to a bunch of buttons and a standard 2x16 LCD display for the user interface.

With the Atari port you have 5 discrete switch/sense inputs:

1) Fire
2) Up
3) Down
4) left
5) Right

.....plus four additional states (combinations):

6) up+right
7) down+right
8) down+left
9) up+left


My idea is that you can scroll through these nine switch states and assign to each any possible PS/2 key character make/break code to be sent when true/false. A complete set can then be saved as a unique preset (with an x-digit name that you can enter for easy identification later). Lets say I choose a PIC micro with enough internal EEPROM memory to store 100 "presets". Maybe (actually definitely) add auto-repeat as a selectable enabled/disabled option for each state with a programmable repetition rate.

Now you can play all of your retro 8-bit keyboard games with a joystick, provided that you have already upgraded your vintage machine or clone with a PS/2 keyboard interface. Such a device might also appeal to enthusiasts of vintage PCs which use the PS/2 protocol natively. Maybe add AT functionality as well? 

The thing could be built into a not very large box with PS/2 in/out through ports and perhaps even auto-switching so that you can just plug everything in and not have to swap out your keyboard every time you want to use the joystick.

Thoughts?

« Last Edit: January 24, 2019, 12:27:04 pm by GK »
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline kizmit99

  • Regular Contributor
  • *
  • Posts: 106
  • Country: us
Re: Cloning a Tandy TRS-80 Model 1
« Reply #74 on: January 25, 2019, 10:34:01 pm »
I think it's an interesting idea...  certainly (on the surface) seems like a doable approach.

I would think you'd pretty-much *have* to be able to use both the keyboard and the joystick at the same time though.  Otherwise I suspect most games wouldn't be playable.  I know I die quick enough that I'm having to choose "one or two player mode" quite often  :-DD (and that usually involves typing keyboard keys).  Others may have issues when it's time for them to enter their initials for the high-score page...  :)
I know for the PS/2 keyboards I've looked at closely, neither of them required any kind of setup from the host to get them talking, but I feel like I've read  somewhere that some do  :-//   With that, using the PIC to merge the two PS/2 streams shouldn't be difficult.

To be honest though - while an interesting exercise I probably wouldn't use one.  Part of the 'thrill' of the retro machines is their sometimes awkward primitiveness...

Just my thoughts...
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf