Electronics > Projects, Designs, and Technical Stuff
Cloning a Tandy TRS-80 Model 1
GK:
OK, now that I've had my light bulb moment :) , here is how I am now going to define all of the characters in the ROM. Each character is mapped to an 8x16 grid and will thus take 16 bytes of memory. 64 characters will therefore take 1kbyte of memory.
The 0-11 line counter, bits L1, L2, L4 and L8 will directly address the least significant address bits of the ROM. This makes the last 4 bytes of each character redundant as there are only 12 lines per character. Also bits 6 and 7 are redundant as there are only 6 horizontal pixels per character.
So far I've manually entered the first kilobyte of the ROM which contains all of the (64) graphics characters. Now I just have to finish transferring the "text" characters to the new format. All in all, this will allow me to simplify the video generation circuitry quite significantly. But first I am going to go eat something.
GK:
OK, I've just finished rewiring my breadboard and successfully testing the revised circuit with all of the modifications required to generate all of the characters with the ROM. I ended up simplifying the design by five logic IC's :) All 8 bits from the video ram now address the character ROM and thus all 256 possible character positions are entirely defined in the character ROM.
Yay, now I can get back to the schematic entry and PCB layout.
GK:
--- Quote from: kizmit99 on January 03, 2019, 04:21:00 pm ---
--- End quote ---
BTW, thanks for posting this image as I can now see the correct sequential order of the individual characters. I had to edit a couple of my previous posts, including the opening post, as I incorrectly believed that data bit D7 needed to be set high to select a ROM "text" character. The technical manual states:
"Delay bit 7* is sourced from latch Z27............... when this input is high, data in Z63 is low, which defies and alphanumeric character"
On my first reading I glossed over the *, which means inverted. Sure enough, checking the schematics, there is an inverter (Z42F) that changes the sign of D7. So in my ROM I currently have my graphics and alphanumeric characters sequenced the wrong way around. Also the two chunks of 32 alphanumeric characters from "@" to "_" and from "SPACE" to "?" appear to be back to front. Funny enough this is the opposite way that they are put in sequence in the ASCII tables and the character set glyph table that I was using as my reference. I also did not know that the lower case page contained a duplicate of "@" through "_" in the first 32 locations, but now that I have the sign of D7 correct it is obvious why this needs to be so. Without the lower case mod., the original hardware addressed the character ROM with a fake bit 6 generated from NORing bits 5 and 7. Bit 7 is low to select a "text" character, so bit 6 simply becomes the inverse of bit 5. This means characters "@" through "_" will be access from locations 64 through 95. With the lower case mod. applied characters "@" through "_" will be accessed from locations 0 through 31.
Now have a look at not-so-helpful reference, for example. It gives the correct binary values for the characters but plots the "@" to "_" and "SPACE" to "?" chunks in the reverse order and completely omits the duplicate block. Argh:
biff:
--- Quote from: GK on January 04, 2019, 02:03:29 am ---It's amazing that no one seems to have just wired one to a 27XX footprint and read the bloody thing. When I have time I might go over to the Tandy/RS section of the VCF forum and see if anyone with an original machine might be kind enough to dump the character set to the screen and make a high-res. photo.
--- End quote ---
I actually found out about this topic over on the VCF Forum (someone posted a link to here) and since I'm interested in adding lower case with true descenders to my Model 1s, I came over to here looking for a hex dump of a char gen with descenders. (I saw one was posted upstream - and I'll definitely be looking at it)
Anyhow - Ian Maverick over on the VCF Forums, is actually selling a plug in char gen upgrade that consists of a small PCB which converts the char gen pinout to a 27XX footprint (I assume). His solution is nice, except that who ever came up with the ROM data substituted a small graphics block for the underscore - i.e. cursor.
I'm hoping to wire up the adapter board so I can read it using my TL866 - and then modify the graphic block to a proper underscore - and write it to a 27XX and swap out the masked ROM.
Assuming the TL866 supports reading it - I'd be happy to read my original chargen from my Model 1. Probably wouldn't happen till Sunday though.
Jim
davefiddes:
If you are looking for official character generator ROM dumps the xtrs emulator has the best collection I'm aware off: https://github.com/TimothyPMann/xtrs/blob/master/trs_chars.c There is quite a storied history behind these roms.
A recent(ish) find on the VCF board was two character generator EPROM replacements which can be used as an improved lower-case mod. They offer 1-line or 3-line decenders depending on how much you are willing to mod the video generation circuit from the Tandy original. The thread with ROM dump links can be found here: http://www.vcfed.org/forum/showthread.php?58665-GENDON3-improved-character-generator-for-the-Model-I-Discussion
If I'm following your schematic it seems that you are preserving the delay-base mechanism for horizontal sync generation. A recent article in the TRS8BIT newsletter discusses the issues with the original circuit and offers some suggestions on how to fix the resulting character wobble which can develop with the original chips: Page 48 of http://www.fabsitesuk.com/tandy/trs8bit1202.pdf
Hope this helps. Looks to be a fascinating project. I always figured my TRS-80 will keep going long after any of the other computers I've used because it used such basic logic building blocks. This promises to keep things going for even longer!
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version