▶ Skip to the index of episodes.
About this Project
I recently acquired two 1983 portable computers, namely an Olivetti M10 and a NEC PC-8201A. Both are siblings of the Kyocera KC-85 platform, comprising — in alphabetical order — Kyocera's own Kyotronic 85, the NEC
These computers came with a nice version of Microsoft BASIC v.1, a LCD display featuring 8 rows at 40 characters and a graphics resolution of 240 × 64 pixels, and a nice implementation of serial communications via
While the two machines, the M10 and the PC-8201A, have much in common and should run at about the same speed, there are also subtle differences. Namely, as of concern for this project, there are differences in the COM-settings, in the communication commands, in the mechanism of machine language/ROM calls (CALL vs. EXEC), and, most importantly, in the graphics support. So we'll have to explore some tricks and work-arounds to get the same approach working for both machines. Support for the Model 100 will be intended, but not tested (I don't have one), the Kyotronic 85 will have to stand aside for lack of documentation (at least in Western/Roman script). (Update: Eventually, the Kyotronic 85 became supported, too, as well as the TRS-80 Model 102 and, probably, the NEC PC-8300.)
For this project, we'll use
- an Olivetti M10 portable computer (1983), European model (German keyboard), RAM expanded to 32K,
- a NEC PC-8201A portable computer (1983), RAM expanded to 32K,
- a MacBook Air (MBA) running CoolTerm as a means of supplying the same software to both of the machines,
- a RS-232C DB-25 (m) to DB-25 (m) null modem cable to connect the Olivetti M10 and the NEC PC-8201A,
- a RS-232C DB-25 (m) to DB-9 (f) null modem cable and a serial-to-USB interface (Tera Grand USB2-VE487-TG, FTDI chipset, very stable and drivers are preinstalled in Mac OS X 10.9+) to connect each of the machines to the MBA,
- a text editor of choice for the MBA, we'll use the proven swiss army knife of Mac software, BBEdit, (also used for writing this blog, which might qualify for a retro-challenge as well)
- some documentation related to the vintage machines (manuals, technical references, ROM-listings, vintage BBS posts, etc).
Including information on the hardware and software of the machines involved, teardown images, the thrills of BASIC-listings and our nifty plans to get there, colorful rants on emulators, German keyboards, and growing upload times, the tale of a small battery wonder, and even more. Eventually, we arrive at a program that is both low-level and does decently (while not rapidly) perform some pseudo-3D rendering in BASIC only, on 5 (or even six) different machines at once (Olivetti M10, NEC PC-8201A, Kyotronic 85, TRS-80 Model 100 and Model 102, and probably the NEC PC-8300, too — 32K of RAM recommended). Not the full game as intended, but some. (Summary added after the fact.)
Episode #1: The Kyocera Siblings
Where we learn some about the background, similarities and differences of the machines involved, which may have some impact on our project. (Caution: Contains lots of images.)
Episode #2: Soft Considerations
Where we consider the Grand Design in the light of the variablity of software, its quirks, and general implementations.
Episode #3: Drafting Time
Where we retreat to the (virtual) drawing table considering the finer details. Finally, we arrive at a viable mockup.
Episode #4: LCD Talk
Where we learn some about the internals of the LCD and its communication options. At last, we run a program for real and put something on the screen.
Episode #5: From Mockup to Data
Not much time today for the project, so we explore ways of being lazy. However, we get some essential DATA ready. Also, The tale of a small miracle.
Episode #6: The Round and the Square — Displaying the Maze Map
Where we bring the maze map onto the LCD display (naturally using our low-level approach), thus rectifying our previous omission. A sliding window is our friend where number theory is at odds. ▶ Read it …
Episode #7: Roaming the Maze
We promised to add roaming soon, et voilà, already a playable maze game.
Not too bad for a midterm result, but still lots to do.
Episode #8: Creative Pico Murder — A Virtual Marketing Campaign
It's midterm in development and with just two more weeks to go the marketing department is going busy. ▶ Read it …
Episode #9: Quest for Speed
Where we consider timing issues and options based on the ground we've already made. (Caution: Includes machine language.)
Episode #10: Cross-Platform ROM Diving
Thanks to Virtual T we have a fresh view on cross-compatibility and add two more models to our compatibility list. Also, we provide a comprehensive features and properties list for most of the "Kyocera Siblings" to persue our goal.
Episode #11: A Path to the Maze
Where we get hands-on again and render a symbolic *Ersatz* viewport. However, we're already looking into the maze. Provided, it's still not 3D, but "pseudo" may already apply…
Episode #12: A Screen With a View
Where we continue our quest for a 3D-viewport. As this is also the end of the month, it's our final episode, too. Short of time in more than one sense, JIT-byte-code saves us some. Eventually, we finish with a viable dungeon crawler …
Addendum: A Final Fix
We were that busy with the writeup of the final episode that we didn't have a chance to fix a last, tiny bug before the midnight deadline. So, while Retrochallenge is definitely over, we return to the code to hunt down the little critter, as a question of honour … Also, the official release of the code.
▶ Read it …
— Thanks for dropping by and cheers to all others who particpiated in Retrochallenge 2016/01! —
+++ Breaking news: Our humble project was actually picked as one of the winners! :-) +++Norbert Landsteiner
Janury 2016, Vienna, Austria
www.masswerk.at – contact me.
— This series is part of Retrochallenge 2016/01. —