PC-8001 Notes

Just a little page of notes for working on PC-8001 software. I have the Japanese model so that's what I'm going off of here. I am based in the USA.

Hardware Setup

For operating the machine, use a Sega Genesis Model 1 video cable. It plugs right in, next to the RGB port and the outputting video signal will show black and white video just fine on any composite video display. I have had some extreme graininess when outputting to a cheapo capture card, but it displays crispy clear on a TV. A direct genesis model 1 to HDMI adapter may cause issues. Just use composite video and be done. Later on, I do want to explore getting some sort of RGB signal conerter, or a 15khz monitor for color display. PC-8xxx video cables to VGA cables are quite common and cheap on Yahoo Auctions (i got one!), but monitors that support the signal are not as easy to find, especially in the states (i am looking for one or a signal converter). To be clear, this means you'll only be able to test your programs in black and white using this setup. Luckily, 8001 emulation is pretty good, so you can totally just write/test color programs in an emulator like J-80 and be a happy camper. Using a TRS-80 cassette cable that I got, connect them to a Windows PC. The black cable goes into the microphone jack of the Windows PC, and the gray cable goes into the headphone jack of the Windows PC.

Give me color damn you

So I just found out about this little doo-dad. It's a signal converter that effectively acts like a tri-sync monitor. This should give us a color option with any old VGA monitor in theory. I have not tested this part yet though. I'll nab it and report back.

BASIC Development Environment

For writing software, the process is very straightforward thanks to Bugfire2009's DumpListEditor. Don't speak Japanese? Easy! Just click the "language" button and switch to English. As it looks, this program has a TONNN of really cool features, but it seems especially feature rich when it comes to the PC-8001. With the PC-8001 selected from the dropdown, navigatwe to the Input Basic tab. Enter in the file name in the file name section, and boom you're ready to write your program. If you know any microsoft basic variants from the late 70s or early 80s, it's the same shit. Nearly no suprises. If you need some inspiration, dive into this reference sheet, this book, this other book, or this magazine, or PC-8001 Utilization Research. Hell, check out these modern tutorials by HAL Labs.

After writing and planning your program, type it all into a the input basic tab. Make sure to use '?' instead of the PRINT command. After this, you can export your program as a WAV file. Load up the WAV file in audacity and make sure the proper inputs and outputs are selected. Type CLOAD on your PC-8001. Turn your Windows PC volume all the way up and press play in audacity. Let the file play ALL THE WAY through and it should be loaded. Type RUN on your 8001 and there ya have it :D

The children yern for a compiler

Want your BASIC program to run faster? Go download Xevi's NBCL and extract the ZIP somewhere. Copy the file directory, and paste it into DumpListEditor. You'll see the NBCL file path when you're in BASIC mode. After pasting it in and clicking "generate", you'll notice your load command has changed. Your cassette is now formatted as a machine language program and will be loaded as such. It will also be faster!

Yeah that's about it. PC-8001s are very easy to get a hold of if you know where to look, and pretty neat little machines. 80 column color mode also looks really pretty from what I can gather on videos. Don't forget to do all your testing and other scholarly activities on a PC-8001 emulator, they make things a helluva lot easier.

But I don't C a future with BASIC

Bro this computer is from 1979. learn assembler! the books i mentioned have a lot of info on how to do it. Although the text is not in english, all the programming languages associated with this machine are in English. As long as you have some Z80 manual and some sort of Japanse-English OCR translator open, you should be able to out everything the tutorials are teaching with some trial and error (says the guy that analyzed one program).

fuck assembler.

Fuck you! Once a I identify a C Compiler that works with this machine, I'll probably rewrite this article since C code is a lot neater and more maintainable than BASIC. I'd rather switch to C if I could help it anyway.

Update: The GOAT of retro computer programming Inufuto runs a Youtube channel called Retro PC. This is most likely the greatest youtube channel ever made. They write simple games for retro computers, and PORT THEM TO EVERY OTHER RETRO COMPUTER! It's simply incredible. All the while I'm spinning my wheels trying to pick a proper engine/dev environmnet, Inufuto is just churning them out. Very inspiring work. But that ain't even the main attraction, see Inufuto releases many of these games on their website, many of which are source availible! Ohoho, some of them are in C! What compiler does Inufuto use? AHAHA! Our favorite developer Inufuto also maintains a compiler and assembler suite for all of these machines! What's the catch, you ask? Although games like Ascend, AntiAir, Cracky, Guntus, Hopman and Yewdow all have their C source availible, all of these games are for the 32k 8001 models only. 32k of RAM is an UPGRADE that people could do to their machines. Not an uncommon one, but an upgrade that I DON'T HAVEEEEE !!! TLDR, I can't make cool games and mods to Inufuto's games since my brain is too small to bring 16k support to Cate80. It's also too small to bring 16k 8001 support to Z88DK (which supports the 8801 AND the 6001, but not the 8001 strangely). From what I can gather, public support for the 8001 quickly dropped off when the peoples began to switch over to the more powerful kanji-having 8801 and the funner, sillier 6001. I'd gladly do testing for anybody that needs it though. If you want some intern level assistance with an 8001 C compiler please hit me up on my discord @yudosai.

Super shout out to Bugfire2009, Xevi, and Inufuto!!! Go check out their work, they were super instumental to understanding this system.

Oh, and if anyone has a PCG 8001, I'm ON MY HANDS AND KNEES PLEASE PLEAS PLEASE PLEASE PLEASE PLEASE PLEASE PLEASE PLEASE PLEASE PLEASEEEEEEEEEEEEEEEEEEEEEEEEE. I'll do anything for that machine (if it works).

About BASIC

In short, basic is slow. I know this is the sacred wizdom of the 80s, but I saught out to figure this out for myself.

I wrote this program in J80 emulator and tested it on real hardware. It doesn't use color or anything, but it's a neat way to show how the GET and PUt stuff works. If you try to start rendering a ton of sprites everywhere, it till become pretty obvious that's it's too damn slow. Even if you try to compile this through NBCL, you'll see that it's really isn't that much faster. It makes a lot more sense why games are written directly in assembler and machine code, or at least in some part so. I simply can't match such performance from a simple BASIC program. But maybe I don't need performance?

I just picked up this book on writing adventure games in BASIC. I think that this is probably the most realisc type of game I could make shy of a board game. Either way, I also found and referenced an english reference manual for N80 basic. It's pretty well written and is your ideal companion for PC80 programming.

Update Log

July 4 2024 at like 6PM: I did a lot of reading and testing over the past few weeks, and I wanted to add some more things to this list. If there's any test you'd like me to do with this machine, please let me know. You can contact me on discord at @yudosai. Please say you found my name through my website though, or else I'll probably ignore the request.

May 15 2024 at like 1AM: Alright I'm off to my graduation ceremony. I'll update this when i have more relevant information.

May 15 2024 at like 6PM: Alright goofy goobers the graduation ceremony is over. We ate hella food and now i'm both dense and sleepy. Updating with more info about cate + formatting.

May 17 2024 at like 11PM: Got hit with the sickness beam this week and it totally ruined my plans!! Grahhh... Anyway I found a little converter box that costs way way way less than I thouight it was going to be. Probably the only convinent option for Americans short of just getting a Tri-Sync or original PC-8001 monitor.