Monday, October 31, 2022

MC-10 to EXORbus adapter

I previously hinted at a hardware project I have been working on- an expansion bus adapter for the MC-10 allowing it to use EXORbus peripheral cards. The idea is pretty absurd as it the MC-10 is a little low-end consumer computer while EXORbus was typically used for pretty advanced industrial PLC or scientific computers. For instance, an EXORbus serial card would be quite expensive and have 8 ACIAs on it, giving you 8 serial ports, an insane amount for the lowly MC-10. My EXORbus Static RAM card has 1 MiB of RAM on it, also an insane amount for this little guy.

Since the EXORbus is made for 6800/6809 processors, and the MC-10's expansion bus is mostly just unbuffered signals from the mostly compatible processor, all we need is a bunch of buffers and connectors and a GAL to do address decoding into the MC-10's memory map. Here is the design I have been working on, yet to be prototyped:

I really wish I could have finished this during Retrochallenge, but I lost momentum with family events and vacations. Next time!

+

Friday, October 14, 2022

Off the MC-10 Wagon

Day 14:

So, I was making good progress doing daily tasks on my MC-10, but lost my momentum after a camping trip. I have been doing minor development and added a new level to my BAM Minesweeper game, but I have been using XRoar emulator instead of the MC-10. Unfortunately, the extra level will not load on my bare-bones MC-10, so I am working on trimming the fat.

Monday, October 10, 2022

BASIC Programming

Days 7-9

I started working on a BASIC game for the MC-10. Previously, I had been able to use the MC's serial port to "LPRINT" any BASIC programs to my Mac. Of course, this did not work anymore, since I had to change the serial cable wiring. So, I had to make a little adapter to make the serial port cable work with the BASIC ROM functions. Very frustrating.

After I got that working I had a decent build chain to write a BASIC game, doing as much of the programming as possible on the MC-10 and saving to my Mac. The line editor for the MC-10 is non-existant, but there are some solutions out there. Still it took a long time for me to write a simple mine-sweeper type game that was based on my TS-1000 efforts in a previous Retrochallenge. As much as I despise the keyboard on the TS-1000, the BASIC implementation is quite good with some conditional printing syntax that is lacking in the traditional MS BASICs. But I enjoyed figuring out how to work around the shortcomings in the MC-10 BASIC. I know there are a number of minesweeper games out there for the MC-10, but they don't seem to work on an unexpanded 4K RAM MC-10. Anyway, I have a working first version that is pretty fun to play. I intend to add a second level before the end of RetroChallenge. I used a few of the tricks that I learned on the TS-1000 to keep memory down. I was also proud of how it only has code for 2 loops - one to loop through the locations on the game board and one to loop through the 8 locations surrounding the current selection. The loops call different subroutines to do the work on each square on the grid based on a preset variable. Probably horrible coding practices, but it kept the number of code intensive for-next loops down to a minimum. Screenshot:

Screenshot of minesweeper type game on TRS-80 MC-10

You can find it on my MC-10 Cassette Server.

Friday, October 7, 2022

Games Day...

Day 6:

I mostly played MC-10 games from Jim Gerrie's TRS-80 MC-10 Files repository. So much stuff in there! Unfortunately Google Drive reports a lot of errors when trying to play the files online. It often forces me to download the cassette audio file which is annoying, but it pretty much works. I played a game "rocket" which is basically an Apollo lunar lander simulator. I spent so much time trying to land and win the game... I finally did it though!

I have to give it up for Jim Gerrie who keeps all of this archived, and ported or wrote many of the games. So much fun, even with 4K of RAM still!

On that note, I have been thinking of the best route to upgrade this little MC-10. There are a lot of good semi-commercial options out there, but I think I will go for something far more ridiculous and excessive. If you follow my blog, you probably have some idea of what I am thinking. I am working out some schematics to figure out the best way to do the upgrade from only the expansion port. Stay tuned!

Wednesday, October 5, 2022

MC-10 Cassette Server is Online!

Day 5:

I spent a fair bit of time today downloading and running TRS-80 MC-10 games and utiliites. Unfortunately, the process was rough:

  1. download the file
  2. extract it from zip archive
  3. load the .c10 file into XRoar
  4. save it to .wav file using XRoar
  5. awkwardly play it in the Mac Music app
  6. organize all the new files

To be fair, many of the zip files already have a .wav format file in there, but it is still not a convenient process. XRoar is esptecially time consuming as the cassette menu controls can be a bit awkward and the conversion is done using MC-10 commands in MC-10 time. There is apparently a Windows utility to do the conversion, but I don't have Windows and it is not open source. Fortunately, I am familiar with the useful c2t utility by datajerk for converting Apple II format files to .wav and .aiff formats. I knew that the MC-10 cassette audio format was vaguely simlar to the Apple II (FM encoding), so I made some changes to make a simple command line tool for converting .c10 files to .wav files. I was so shocked when it worked, I had to double check a few times that I was playing my generated file rather than a comparison file I was using. I just posted the project code on github.

Even with the .c10 format files converted to .wav, I was still struggling with my Mac always importing them into the Music app, or not being able to rewind and start again with the Finder preview. Inspired by the Online Apple II Game Server, I uploaded the .wav files onto Google Drive, and wrote a small web app to organize and display them. So, now I can just hook up my audio cable, go to the MC-10 Cassette Server webpage, and play them right from there. I can even use an iPhone or iPad to connect. I will be adding more files and information there as I test everything.

Comms Day!

Day 4:

I found an MC-10 serial terminal program "COMPAC" online and was able to load it onto the MC-10 using my new 'cassette' interface cable (see part 1 and part 2 of making the cable).

Of course, I could only send letters from the MC-10 to my Mac's terminal program, but not from the Mac to the MC-10. I knew immediately that it was due to the serial cable wiring and how the Tx and CD wires were swapped for printing. I tried to make a little adapter, but it did not work, so I had to re-solder the connector using the orinal pinout in the Service Manual.

Well, it works now! I can type messages back and forth between my computers finally! It's only 300 baud, but it feels like a good success. Oh, in the README for the console program was a link to a 90's awsome MC-10 website on triod. What flashback and a great resource!

Tomorrow I will see if I can access the macOS shell.

screen /dev/cu.usbserial 300,cs7,cstopb

Tuesday, October 4, 2022

Cassette SAVE and LOAD, pt 2

After some research I found out that my MacBook needs a resistor from the sleeve to ground to identify the TRRS jack as having a microphone or audio input. 10k ohm was the highest that still worked reliably. However, it took hours to get everything soldered up nicely. But it works!! I can load and save programs to and from the mac as a virtual cassette recorder for the MC-10.
Pinout:
3.5mm TRRS plug
|   |
-----
  |   = (5) MIC + 10K OHM resistor to ground
  _
  |   = (2) Signal Ground
  _
  |   = (N/C) right EAR
  _
  v   = (4) left EAR or AUX

BASIC after the break...

Cassette SAVE and LOAD, pt 1

So basically, MC-10 can load from Mac, but can't save cassette/audio output to Mac yet. XRoar is converting file formats for me.

MC-10 cassette audio cable looking very much in prototype stage.

Half working audio cable still in development.

BASIC program after the break.

Sunday, October 2, 2022

Printer Day!

TODAY WAS PRINTER DAY! I HOOKED THE MC-10 UP TO AN APPLE IMAGEWRITER. I HAD TO LUBE UP THE PRINTER AND PUT SOME RUBBING ALCOHOL INTO THE RIBBON TO GET IT WORKING. THE MC-10 IS NOT A GOOD MATCH FOR THIS PRINTER. THE MC-10 OUTPUTS AT 600 BAUD  AND THE IMAGEWRITER DOES NOT HAVE A SETTING FOR THAT. BUT THE MC-10 SPEED IS ADJUSTABLE IN MEMORY, THOUGH NOT PUBLISHED. I MADE A BASIC PROGRAM TO INCREMENT THE BIT DELAY UNTIL IT PRINTED AT 300 BAUD. THEN I HAD TO SET LF ON CR ON THE PRINTER SO IT WOULD ADVANCE LINES. YOU CAN SEE IN THE VIDEO THAT THE OLD PRINTER ROLLER DOES  NOT GRIP THE PAPER WELL, SO I HAVE TO HELP IT ALONG A BIT. I AM VERY HAPPY WITH MY PROGRESS FOR TODAY!

BASIC code samples after the break...

Saturday, October 1, 2022

Serial Confusion

Here is the transferred BASIC for this post:

10 CLS 20 PRINT "I MADE AN MC-10 SERIAL CABLE TODAY. FRANKLY, I AM SURPRISED THAT IT WORKED." 30 PRINT "THE RX LINE IS APPARENTLY WRONG IN THE SERVICE MANUAL. OR WRONG IN THE BASIC ROM?" 40 PRINT "ANYWAY, IT IS STRANGE THAT THE SCHEMATIC DOES NOT FOLLOW THE SCI (SERIAL COMMUNICATIONS INTERFACE) OF MC6801 EITHER" 50 PRINT "I CANT FIND AN OFFICIAL SOURCE FOR HOW IT SHOULD BE WIRED BUT IT WORKS FOR SENDING ANYWAY." 55 REM END : REM "END HERE FOR FIRST PAGE" 60 PRINT "SO I CAN TRANSFER MY BASIC PROGRAM TO MY MAIN COMPUTER NOW" 70 PRINT "THE ONLY ISSUE IS THAT IT SENDS WITH CARRIAGE RETURN ONLY AND NOT A LINE FEED." 80 PRINT "EASY ENOUGH TO FIX WITH THE TR COMMAND ON MY MAC." 90 PRINT "HOWEVER THE BASIC ROM DOES NOT HAVE A COMMAND TO LOAD FROM SERIAL PORT. SO I NEED TO MAKE AN AUDIO CABLE STILL." 100 PRINT "A PRINTER WOULD BE NICE TOO..." 110 REM END : REM "END HERE FOR SECOND PAGE" 120 CLS 130 PRINT "QUICK TIP: MAKE SURE THE CONNECTORS ARE PLUGGED INTO A SPARE JACK WHEN SOLDERING TO ENSURE THAT THE PINS DONT MOVE." 140 PRINT "IN THE END, I USED THE PINOUT IN THE ANNOTATED DIAGRAM HERE: 150 LLIST

MC-10 First Impressions...

Between running RetroChallenge and how limited the TRS-80 MC-10 is, a real endurance challenge is not in the cards for me. But I fully intend to use this computer daily, connect to some important peripherals and make some necessary upgrades. I hope the results will be a usable guide for somebody who is just getting started with the Radio Shack Model MC-10 TRS-80 Micro Color Computer. For such a small computer, it has a very long name! So, here we go with my notes so far:

FIRST RC2022/10 POST. INITIAL IMPRESSIONS OF MC-10:
1) WHERE IS LOWERCASE?!; 2) KEYBOARD IS OK. MUCH BETTER THAN TS1000. AND I LIKE THE CTRL KEY BASIC COMMANDS HERE TOO. MISSING A SHIFT KEY; 3) LOTS OF SOFTWARE ONLINE. NEED TO FIGURE  OUT HOW TO GET IT ON HERE; 4) I REALLY DO LIKE THE FORM FACTOR AND AESTHETICS; 5) DISPLAY IS SMALL AND BLURRY. NEED COMPOSITE + 80 COLS
I STARTED BY HOOKING UP THE MONITOR. THE PHONO PLUG ON THE COMPUTER IS FOR RF, NOT COMOSITE VIDEO. SO, YOU NEED AN ADAPTER. 'F  / RCA ADAPTER' WITH CATV CABLE WORKS GREAT. AFTER MAKING SURE THE COMPUTER AND TV WERE SET TO THE SAME CHANNEL, I TURNED ON THE MC-10. I WAS GREETED WITH A MICROSOFT COPYRIGHT ON GREEN BACKGROUND THAT ONLY A COCO USER COULD LOVE.
I HAD TO TURN OFF THE COLOR ON MY MONITOR TO GET A DECENT PICTURE. THE BLACK ON GREEN COLOR WAS FAR TOO BLURRY.IN THE MORNING I WILL BUY SOME MORE SUPPLIES TO MAKE A SERIAL CABLE AND AUDIO CASSETTE STORAGE CABLE.