Posts

Showing posts from December, 2020

TRS80 Model III Keyboard on my 6502 SBC

Image
The time has come to add a keyboard. I scrounged up an old Radio Shack TRS-80 Model III last year. Alas, it arrived broken. The tube was completely smashed! Thanks, UPS! So I decided to repurpose the microcomputer to become my future casing for the 6502 SBC. Not sure what I'm going to do for the final display. I did get my hands on some TMS9918 chips and the Parallax Propeller. But that's another post for another time. For now, the keyboard circuit is all done. It's fairly simple and the 8x8 keyboard matrix is directly connected to port A and port B of a second VIA chip. It did take me a while to map out the keyboard matrix. What is need about this keyboard is the integrated reset button. TRS-80 Model III Keyboard Matrix 12KE010C (or is it I2KEOIOC ?) ALPS ELECTRIC CO., LTD. JAPAN 20 pin connector 9 10 11 12 13 14 15 16 1 @ A B C D E F G 2 H I J K L M N O 3 P Q R S T U V W 4 X Y Z 5 0 1 2 3 4 5 6 7 6 8 9 : * ; + , < - = . > / ? 7 Enter Clear Break Up Down Left Right S

512K bank RAM

Image
Not that I have a need for it now, but I decided to add 512K RAM on my SBC. At first, it was just to see if I could do it, but later on, I may need extra RAM for ADC sampling, or other goodies that I haven't thought about.  The bank switching is done via port B of the VIA. Simple enough.
Image
So, it's decided. With the inspiration of Reddit, I will use the 40x4 display instead of the 20x4.  For the last weeks, I've been working on my monitor program. Not everything is implemented, but a lot of the functionality is working. Some optimization is needed... eventually. Basic is yet to come. This feels like a big chore. Any suggestions?  Convert converts between decimal, hexadecimal and binary (not yet implemented) Diagnose tests the RAM. (working) Execute a program in RAM (working) Fill a region of memory with a byte (working) Help... duh... (working) Load a program from the computer via XMODEM (not yet implemented) Memory map (working) Processor status (sort of working) Read, or memory dump of a region of memory (working) Save a portion of memory (not yet implemented) Time, set, or read time from RTC (working) Write a byte or series of bytes to memory (working)