Electronics > Projects, Designs, and Technical Stuff

Cloning a Tandy TRS-80 Model 1

(1/26) > >>

GK:
Now that my Commodore Pet 2001 clone is done and dusted, it's on to the next computer clone project, so here is a new thread......

Like the PET clone, this is going to be a functional recreation entirely in current production parts, eschewing any TTL. Due to public holidays, Digikey aren't going to ship my Z84C00 until Wednesday the 3rd and I won't be seeing it this week, but that will give me time to complete the PCB layout for the video generation circuitry.

So far I've completed the breadboard verification of the video generation circuitry - the schematic is attached. The only things not currently shown/included in this schematic are the '244 !RW/!WR buffer pair which will isolate the video circuitry data bus from the MPU system data bus, a jumper to select either a 50 Hz or 60 Hz field frequency, and the switchable Electric Pencil lower case modification. All chips are 74HC(T) CMOS. Any device with an input driven from a data output pin of the AT28C256 (the character ROM) and the AS7C256 (the video RAM) is a HCT device, all else are 74HC.

In the original TRS-80 the designers skimped on memory, providing only seven 1-bit static RAM chips for the video memory. Bit-7 controlled whether a memory location defined either a graphics character or a ROM-generated "text" character. Bit-6 was the missing memory chip, leaving only six bits (bits 0 through 5) for selecting the character. So, that gave 64 ROM-defined "text" characters and 64 graphics/block characters (the latter giving chunky, pseudo bit-mapping). Only 64 text characters didn't leave enough room for lower case letters of the alphabet. Lower case letters, in addition to several other characters, were actually defined in the second 64 character page of the TRS-80's character ROM, but the original hardware just couldn't access them without bit-6.

The breadboard photo shows the compete video generator. For testing purposes only, I temporarily have a PIC16F874 plugged into the (currently) mostly vacant breadboard on the lower left. In lieu of the, currently absent, Z80 MPU system, this PIC is wired to the video circuitry address/data and control lines and programmed to load a test screen and character-set dump into the video memory.

The 64 "text" characters are sequentially dumped onto the very top character row, and the 64 "graphics" characters on the next. The remaining video memory locations are filled with #. I made a single byte of error in both ROM characters 1 and N. Also the left justification of 1 and perhaps : and ; probably doesn't look 100% right either. The ROM chip is currently kinda buried beneath wire links at the moment, so I think I'll put off re-flashing it just for the time being  :)

In the low-resolution video mode, every second (odd) video memory location becomes redundant and the even characters are doubled in width by a halving of the pixel serial-shifting clock frequency. The vertical resolution remains the same.


 
High resolution mode:


Low resolution mode




This schematic is shrunk to fit your screen by the forum software. Save and load it into something else to view full size.

wilfred:
I don't know what character set the original TRS-80 used but the 2513 character chip had the "narrow" characters centered in the matrix. You have the "1" ";" ":" and so on over on the left. It is hard to see the eventual effect from the screen shown but the "1" is abutting the "0" a little too close. Also the 2513 had the blank row of dots above the character. That doesn't mean the TRS-80 did, or had to mimic that, but are you sure you have it right?

GK:

--- Quote from: wilfred on January 02, 2019, 11:30:06 am ---You have the "1" ";" ":" and so on over on the left. It is hard to see the eventual effect from the screen shown but the "1" is abutting the "0" a little too close.
--- End quote ---


Yes, as I mentioned in my opening post. The revision of the ROM binary file won't have these characters left-justified.



--- Quote from: wilfred on January 02, 2019, 11:30:06 am ---Also the 2513 had the blank row of dots above the character. That doesn't mean the TRS-80 did, or had to mimic that, but are you sure you have it right?

--- End quote ---


Yes, I have this right. TRS-80 used 12 lines and six horizontal pixels for each character. The four bottom lines were always blanked, as was the left-most pixel of each horizontal row. This was hardwired. This left a ROM-definable grid of 5x8 pixels for each character. Most characters only used 7 of those horizontal lines - the upper ones, giving a total of five blank lines at the bottom of each character.

The mask-programmable Motorola ROM used in the TRS-80 was called a "5x7 character generator", even so the actual definable character field was 5x8. It was called such because in use you would typically always leave either the very top or the very bottom horizontal row of pixels blank so as to leave a single vertical pixel of space between character lines. In the TRS-80, the usage was different as four permanently blank lines were added to the bottom of each character. Some characters (punctuation and lower-case letters) in the TRS-80's set therefore actually made use of the 8th row (despite the technical literature actually being ambiguous in this regard, erroneously stating that there are 5 hardware-blanked lines at the bottom of each character instead of the actual 4).

LaserSteve:
A friend has a complete TRS80 model 100 Service Manual with full schematics.  You want to go portable next?   :popcorn:

Steve

Tomorokoshi:

--- Quote from: LaserSteve on January 02, 2019, 04:21:32 pm ---A friend has a complete TRS80 model 100 Service Manual with full schematics.  You want to go portable next?   :popcorn:

Steve

--- End quote ---
Hey! I have that too! Along with the DVI!

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod