Tag Archives: Retro Computing

Here’s a Retro Desktop Chassis I’d Like to Make

Having recently modified my desk to accommodate my old Compaq Deskpro 4000, I uncovered some unfortunate consequences of the steady march of time. Always something, isn’t it!

1. My nice 15″ Acer CRT no longer works properly, with its screen dramatically pinched on the left and right sides. That’s a bummer, because it looks so nice with the size and shape of the desktop case below. Conversely, neither my 17″ Dell CRT nor my 15″ Dell LCD look appropriate on top of the Deskpro case. I like the LCD better for its size, display quality, and power usage, so that’s what I am using.

2. Both of my Compact Flash cards (1GB, 256MB) have ceased to function with the IDE to CF adapter, so I must use the very loud 10GB IBM hard drive. The issue may be with the adapter itself, I dunno.

3. The Deskpro is my only computer that can use floppy and zip disks and that’s a pain. It does have two USB ports on the rear, which I use in Windows 98 to transfer files to/from the machine, but it’s not so convenient and it’s a bit boring. I like using real disks! FYI: Windows 10 likes to crash if I use either of my PCI ATA controller cards in my main desktop, one being a Promise ATA133 and the other being a VIA based card. Of course they work fine in Linux… Always something!

4. Honestly, there’s little I wish to actually use the Deskpro for…

This got me to thinking about my old desktop PC from 2008, which has been in service as the livingroom/TV/kids desktop since 2013. Its Asus P5K-VM motherboard has a floppy controller and an IDE controller (for the internal Iomega zip drive), while also having handy modern stuff like SATA ports, Ethernet, and a Core 2 Quad CPU. It’s actually an ideal system to setup an emulation themed Linux box, both in terms of hardware I already have kicking around and in being able to easily enjoy the tactile and audible sensations of old disks… I’d probably use Mint 17.3, as it’s still my favorite Linux distro and it’s just so simple to install, configure, and manage…

Anyway, I could simply stick the floppy, zip, and DVD drives in its current boring black Micro ATX tower and use it, and that’s probably what I will end up do doing eventually, but I thought it would be fun to see if I could make a chassis in Blender 2.79b and GIMP 2.8 that’s more retro, while also matching my 15″ Dell LCD. This is what I came up with!

I like shorter desktop cases, ones like the IBM PS/2 and the Lenovo Thinkcenter M52. I also like the big red power switch and the LED panel on my old AT server tower. Finally, for black computers of yore, I like the industrial flair of the Commodore Plus/4. So those were my inspiration when I was putting this (shabby) render together.

Will I make it? Maybe someday, if I can figure out what to make it out of for as close to free as possible. Alas, it’s fun to dream! In the mean time I will continue to use my Lenovo 100e laptop (in Devuan Linux and Windows 10) and my aging AMD FX-8320 desktop, as they suit my needs and the kids are still using the livingroom PC anyway. 🙂

Software Bloat Betrays the Raspberry Pi Zero W

I purchased a Raspberry Pi Zero W several months ago with the intention that it would replace the DOS/Windows functionality of my old Pentium 233MMX computer with equivalent Linux based software, while using waaaay less electricity! I also thought it would be a good idea to use the $14 CAD Pi Zero W for programming my Arduino UNO rather than any of my other much more expensive computers, because short circuits happen man!

The use case for my old machine is very limited, given that it exists only to satisfy my nostalgia for the first PC I bought myself. Of course back then I used that machine for all my computing needs, where as now I have a modern desktop and a smart phone to handle my “real computing”. So here is what I have been using my Deskpro for:

DOS: Word Perfect 5.1, Impulse Tracker, QBasic
Windows: Rebirth, Audacity, WinAmp, Wordpad, Notepad, MS Paint

It runs all of those things very well, to a point – it does not like to multi task (WinAmp playback will “skip” when computer is busy) and it very much prefers to run at 800×600 in Windows rather than at 1024×768, due to the low-end graphics card. But honestly, it is a totally usable computer that is excellent for hobbyist audio and game production. The only downsides are its physical size, the amount of electricity it consumes, and it’s cumbersome connectivity to the outside world (which in practical terms is its single rear USB port, as I don’t have any other computers that can read Iomega Zip disks or 3.5″ floppy disks).

Let’s compare the specifications of the Raspberry Pi Zero to my Compaq Deskpro 4000 desktop…

Compaq Deskpro 4000
– Intel Pentium 233MHz CPU with MMX
– 96MB of 66MHz SDRAM
– S3 Virge GX 4MB SVGA graphics
– SoundBlaster 16 audio
– Windows 98 SE / DOS 6.22 / FreeDOS 2.0

Raspberry Pi Zero W
– ARM6 BCM2835 1,000MHz CPU
– 512MB DDR2 SDRAM
– VideoCore IV 64MB HDMI graphics
– Some audio codec for sound…
– Rasbian Lite (Debian 10 ARM)

Architecture differences aside, it’s pretty obvious that the ARM6 CPU performs much faster than the older Intel CPU that is clocked 4 times slower. If it could run the same software, this ARM CPU would be roughly equivalent to an Intel Pentium III 600MHz, which is impressive given that the surface area of the whole Pi Zero “motherboard” is smaller than that of just the P3 CPU!

I’ve been using GNU/Linux since 1998 and I have installed and configured countless flavors of both Linux and Windows in that time, so it’s not like I had crazy expectations when going into this project; I knew that my desired functionality was available via native GNU/Linux software and all of those functions worked well on much lesser hardware, so what could go wrong!

Well, after testing every light weight system for XWindows and huge amount of software, the following is what would run acceptably…

DOS Program => BASH Program
—————————————————-
Imulse Tracker => MilkyTracker
Edit.com => Nano
Borland C => GCC
QBasic => BaCon

Windows Program => Xorg Program
—————————————————-
Windows => WindowMaker (JUST WM!)
Windows Explorer => Xfe
Audacity => Audacity
MS Paint => MT Paint
Winamp => Audacious
Netscape => Dillo
DOS Prompt => Xterm
Notepad => Leafpad
Wordpad => Nothing – even Abiword sucked!

I was really sad that IceWM, JWM, and Fluxbox all had problems of some kind, be it IceWM’s memory leak that brought the system to its knees after a few minutes or just being CPU heavy in the way that LXDE’s Lxpanel program is. Likewise Schism Tracker, which is based on the actual source code of Impulse Tracker, was completely unusable. Thankfully MilkyTracker worked great, provided it was run from a TTY and the XWindows session was not running in the background. The full GNUStep suite of software ran like a dog with three broken legs (as did LXDE, Xfce, and Mate), but its WindowMaker window manager ran quite nicely.

The performance of Abiword and Gnumeric (spreadsheet) was thoroughly disappointing, because they are the best light weight Word/Excel replacements for GNU/Linux, yet they were both slow enough to be completely obnoxious to use. Even going from an empty document to one with a few lines or cells was laggy and annoying. The same can be said for Geany, Mousepad, and literally every other graphical text editor in the Debian repo. Of course, Nano was fine and while I don’t use Vi, Emacs, or the text editor in Midnight Commander, I assume they would perform perfectly fine when run from a TTY (and probably fine when run in a terminal emulator).

On the upside, plain old Xterm ran so much better than any other terminal emulator, which was great as it’s also able to be customized to look similar to the fancier programs. Using WindowMaker as a little weird, as its UI paradigm was unfamiliar to me, but it was hands down the fastest windowing system to load, move, resize, refresh, and close programs. And bless its heart, Xfe was quick and feature rich file explorer that was a pleasure to use, though even the Windows 98 SE version of Windows Explorer is faster and more polished. Yes, LXDE’s PCManFM does work on the Pi Zero W, but it’s slow in that, “man this fucking sucks!” kind of way which is just not acceptable for everyday use.

Compiling small C programs in DOS and GNU/Linux felt the same, which is important when using BaCon (BASIC to C converter) rather than QBasic, because ultimately it compiles C code. GCC is a little slow in general, but it wasn’t any slower than compiling C programs in DOS 6.22 or FreeDOS 2.0 on the old machine. I would imagine that compiling a very large project would favor the Pentium 233MMX due to the optimization of the Borland compiler and the speed of the IDE Compact Flash storage, but it would really depend on the project. I was just farting around with Ncurses games on the Pi similar demo games on the PC.

QEMU and DOSBox both ran Impulse Tracker like crap and I didn’t even bother trying to run Rebirth with Wine, because there’s no just way that wouldn’t have been a shit-show.

On the whole, using the Raspberry Pi Zero W as a replacement for my old Win98 PC sucked, a lot. So much so that it’s really not even worth doing.

Why?

Because GNU/Linux is bloated as all hell and the Pi requires so much “magic kruft” just to boot that it’s not really possible to slim the system down much further than what the Raspberry Pi Foundation has already done in Rasbian Lite. The Linux kernel is bloated. Most GNU software is bloated. Binary blob drivers that do weird shit (like use the GPU to run boot code!) that requires the system to be configured in a specific manner… It all culminates into a poorly performing system that is overly complicated and underwhelming to use.

It’s just not a nice experience, especially when compared to the simplicity of the PC BIOS and installing/using either DOS or Windows on a PC. Heck, even Slackware 7 is more usable on my old PC than the very best setup of GNU/Linux on the Pi Zero and using XWindows in Slackware 7 is right bloody awful compared to Windows 95, let alone Win98 SE!

The sad thing is that it doesn’t have to be this way. It’s entirely possible to make a simple, FAST, and useful desktop operating system for single core ARM6 CPUs with 512MB of RAM and a basic graphics adapter with OpenGL ES support. RISC OS Open would be a good example, were it not for the lack of hardware support that prevents it from working properly and the lack software that accomplishes the required tasks; At least the software that does work in RISC OS works very well and the OS itself boots instantly! And so it bloody well should! If the Pi Zero W wifi, bluetooth, gpio, and audio (it’s too quiet) were fully functional in RISC OS Open that would absolutely make for a perfect, fast desktop OS on the wee little computer.

The Raspberry Pi Zero hardware is no slouch, but the software they give you for it fucking sucks.

Sadly, the Pi Foundation doesn’t care. I’ve seen forum posts by their engineers that say the Pi Zero isn’t meant to be a desktop and it’s not much of a conspiracy theory to say that they do this to sell you a more expensive Pi. You know, a Pi that is fast enough to cover up a lot of the problems inherent to modern GNU/Linux software. Why would the Pi Foundation write excellent software for their cheapest product when they can slap together free stuff made by volunteers and call it day? Who needs to take pride in their work when there’s free labor to exploit! Cynical? God damned right, but I’m also not wrong.

The Pi Foundation could easily put together a GNU/Linux based OS image that instantly boots the Pi Zero to a form of BBC BASIC which is capable of using all the Pi’s GPIO, camera, and other functions, and comes with a usable desktop that runs a WYSIWYG text editor and the Dillo browser for Wikipedia and forum access. They just don’t and that’s a crying shame.

Alrighty, I suppose this concludes my grumpy ramblings about the couple of months I spent dicking around with my Raspberry Pi Zero W. I could say a lot more, delving into great detail about various aspects of the experience, but I don’t feel like it. Sorry. It’s just not worth my time and really, it’s not worth your time either. Maybe between now and the end of life of the Raspberry Pi Zero w in 2026 we will see a renewed effort by the Pi Foundation on the software front, allowing we mere mortals to get more out of the machines, but I wouldn’t hold my breath. Until then, my interest in the Pi Zero will remain as something I can accidentally blow up when programming my $8 micro controller without breaking the bank.


I know this may seem like a pretty damning assessment of GNU/Linux itself and to be honest, it is. GNU/Linux peaked for me with Linux Mint 17.3 – everything after that is just worse in one way or another, be it regressive bugs, “change for the sake of change”, or outright unusable garbage in some instances. On the flip side, Windows 10 has improved tremendously, even to the point where I really don’t have any problems with it beyond it being ugly. That’s saying a lot, considering that I hated it a few years ago. As such, I basically use Windows 10 for everything other than audio recording, for which I still use Mint 17.3, because it “just works”. I have no desire to partake in the flavor of the month chasing, convoluted “that sounds cool, let’s do it” funk that has become of so many GNU/Linux distributions and the Linux kernel itself. I mean, you know it’s bad when it ends up being a better experience when using older GNU software in the latest version of Windows than it is when using the latest GNU software in the most up to date Linux distributions… I’m done, I no longer care; what I already have works just fine for me!

As for what I am going to do about using my old PC for nostalgia, I’m just not going to “do it” at all. The system took up way too much space at my desk and frankly I can just fire up a virtual machine from Windows when feel like using the old software.

Let’s Talk About Home Computing Form Factors

When I say “form factors”, I’m talking about the general ergonomic thing we humans mash our meat mitts upon, as apposed to what the Wikipedia entry for the subject entails. In my estimation, there are ten form factors, each having their own benefits and drawbacks, but for the most part today’s computing world has really been honed down to just three. Let’s start by having a look at all of them, starting with my favourite!

Commodore 64c with Samsung LCD TV

Computer Inside the Keyboard

Commodore PET 2001

Desktop All-In-One

IMac G5 Rev A - Photo By Matthew Welty (fiveaside) from Sacramento, USA - Flickr, CC BY-SA 2.0

Computer Inside the Monitor

ATX/mATX/Slim Tower

Horizontal Desktop

Laptop/Notebook

Tablet with Keyboard

All-touch Smartphone

Smartphone with Keyboard

Single Board Computer

If you’re alive in 2018, you probably already know that the top three form factors are:

  1. All-Touch Smartphone
  2. Laptop/Notebook
  3. ATX/mATX/Slim Tower

Let’s look at why this is the case…

All-touch smartphones, especially the large “phablet” ones, absolutely are the most common home computers, even though their form factor is significantly different from all of the others. People are now able to carryout all of the same type of tasks on their all-touch smartphones as they are on any of the other platforms, with the biggest differences being the human interfaces and the software capabilities.

Where the all-touch smartphone fails to meet people’s needs, most often in the areas of entering large amounts of data and using specialized software that isn’t available on smartphones, the laptop/notebook form factor easily comes to the rescue. This design has the benefits of being ergonomic to use, all in one, and easily portable, making it probably the best overall computer design for average home use (or human beings in general). Most laptops are able to connect to external keyboards, mice, and screens as well, which dramatically increases their potential to meet the user’s needs, unlike the vast majority of smartphones which remain limited in this regard. As a result, laptops tend to be the most popular home computer systems for everything other than playing modern 3D games and extreme/niche productivity applications.

Finally, where both laptops and smartphones fail the user, the common ATX/mATX/Slim Tower (aka “Desktop PCs”) swoops in to fill every imaginable niche. Being that there are several standardized sized for the towers and only a handful of complimentary standards for the hardware components that go inside, people are able to mix and match components to build home computers that meet their specific needs – provided those needs do not include being effortlessly portable. It’s this versatility, along with the high requirements of hardware to play to modern PC-exclusive 3D games, that keep desktop PCs in homes. As game consoles become increasingly more powerful though, the need for “desktop PCs” will continue diminish, as nearly all the other home user’s computing needs can be satisfactorily met by laptops and smartphones.

Where does that leave all the other form factors?

With the exception of TV connected media player style computers that somewhat resemble Horizontal Desktop computers (yet are most often operated by remote controls or a combined wireless mouse/keyboard), the only remaining form factor of note for home computing is that of the Single Board Computers. The interesting thing about both media player computers and single board computers is that the diminutive size of their components and the low processing requirement of their software generally mean their form factors can be as large or as small as the user would like. In fact, many media player computers are indeed built using single board computers, such as the Raspberry Pi; In many respects, as far as home computing goes, they’re one in the same. Of course, single board computers are small enough to also being useful as hobby devices which can be integrated within robots and other electro-mechanical devices within the home. And with those exceptions behind, let’s look at why the other form factors have fallen out of favour with home computer users.

Computer In the Monitor
I’m sure Apple would disagree, but I think the truth here is that apart from people who like the specialized Apple ecosystem, most home computer buyers are leery of tying the heart of their computer purchase to the size and quality of the screen. If they want something bigger later, they’ll have upgrade the whole system. If the screen breaks and the warranty is up, chances are it would be cheaper to buy a new system – but if they had a tower, with its separate monitor, they could even go so far as to make due to a used $10 monitor. And perhaps the combination of laptop level performance, limited upgrade options, and lack of portability just makes this style of computer less attractive to the average home computer user.

Desktop All-In-One
No one has made this style of computer, with the screen, keyboard, and computer all built into a single chassis, for a very long time. This is probably largely due to the reasons I mentioned above. Indeed, if one part breaks or simply no longer suits your needs/desires, you’re likely facing the decisions to replace the whole unit rather than fixing or replacing the one aspect that needs attention. I’m not surprised this design fell out of favour relatively quickly (by the early 1980s). Still, as we can see with the Commodore PET line, the concept is capable of creating some very handsome and inspiring machines!

I think I’d also consider the “luggable” computers, such as the early Compaq, Commodore, and IBM machines, as all-in-one desktops, rather than laptops/notebooks. None of those machines physically operate in a manner similar to how laptops operate (like the front and back covers of a book) and all of them are as heavy or heavier than your average modern PC tower. So yeah, the luggables of yore are effectively all-in-ones too.

Computer in the Keyboard
I really like this design, probably in large part due to nostalgia, but it does have a number of practical merits as well. Firstly, the keyboard mechanism is far easier to replace than a screen would be, so provided the person likes using it, the having the keyboard built into the computer isn’t a big deal. Again, provided the keyboard isn’t made such that the computer is uncomfortable to use, having all of the computer parts inside the keyboard that’s going to be sitting on the table/desk is pretty handy. Really, a modern laptop is essentially the same thing when it’s built in screen is removed, which truly is a testament to the portability of the “Computer in the Keyboard” design. I like the concept, because it puts everything right where my “monkey tools” are interacting with the machine, thereby making the whole experience more tactile and personal. Yes, I am looking up at the screen, but I am always touching the keyboard! That said, it was the advent of the cheap rubber dome keyboard that caused this style of computer to fall out of favour in the mid 1990s. It just made more sense for OEMs to put the expensive parts into a cheap generic tower so they could plug in cheap (and easily replaceable) keyboards and mice, and so that’s how the industry evolved over the years. It’s a crying shame, because when you look at the variety of units that were made by Atari, Acorn, Sinclair, Amstrad, Commodore, Amiga, and other companies from the 1970s to 1990s, there’s just so much inspiring industrial design and personality to touch and feel and love! I really wish this form factor would make a comeback!

Smartphone with Keyboard
It seems that Blackberry is the final holdout in the smartphone with a keyboard market. Unfortunately, in my personal opinion as a former Blackberry Bold/Curve/Q10 user, I think their current products completely miss the target. What made the Bold 9900 such an excellent device was that it could be used with one hand – literally every function could be accomplished using only my thumb! I miss that so much that I would honestly trade my Samsung Galaxy S8 for a Bold 9900 that had an updated camera, because as a communications device, the Bold 9900 is perfect. These new “Key” branded devices on the other hand are so tall that they are unwieldy, meaning you’re really better off to just use an all touch smartphone with an on screen keyboard. It’s not like the on screen keyboards are as tiny and inaccurate as they used to be. I think eventually Blackberry will stop making phones with keyboards, because the devices they are making are for a niche of an already niche group, rather than being targeted explicitly towards busy people need a quality device that excels at calls, SMS/MMS/BBM, email, and pictures.

Horizontal Desktop
As much as I do like the cutesy looks of the IBM PS/2, Commodore 64D, and Apple IIGS horizontal desktop computers, I think they fell out of favour for logical, if mundane, reasons. People got used to looking at the 4:3 LCD monitor that was plunked on their desk as work. I know I did for a few years, until I decided to prop my monitor up on a box in the hopes that it would help me stop slouching (it has helped!). Putting the “computer box” on the floor meant people had more room for stuff on their desk. That said, I imagine the single biggest factor in shoving the desktop computer to the floor was that hard disk storage capacity displaced the need for removable media – people simply didn’t need to fiddle with storage media anymore, so the box may as well be out of their way! Again, this makes me a little sad, because I really like the physical and auditory aspects of using 3.5″ floppy disks. It’s too bad we don’t have anything similar anymore, but really, it’s not very often I need to plug my smartphone into the computer, let alone use a USB stick or CD/DVD. Yup, with so little reason to touch the desktop “box”, off the desk it went.

Wrapping Up
I think as time goes on we’ll see more of the tablet/laptop hybrid devices in people’s homes, as processing power increases, power consumption decreases, and software becomes more optimized for lower power devices. Eventually gaming consoles will be robust and cheap enough to cross the point where “gamers” won’t bother with the extra issues PCs bring with them. Instead they will, like most everyone else, do the majority of their communicating and data processing on their smartphones, while filling in the holes in their productivity with a convertible tablet/laptop style machine. Perhaps in as little as a decade the only computers resembling the “ATX Tower PC” will be the workstations that power content creation and research in the business and education sectors, with the most powerful home computers essentially being the laptops we’re using today. On the whole, I think that’s probably a positive progression for home computing, as the laptop/notebook form factor really is the culmination of all the aspects of computing that we humans enjoy. And hey, if the screen breaks at least you’ll have your very own modern-retro computer when you hook it up to an external monitor! 🙂

BASICly Moving a Character with WASD

Today let’s have a look a program that moves a character around the screen using the W,A,S,D keyboard keys. The character moves around the screen and stays within the borders, as you would expect in a top-down style game.

Fortunately the program was short enough to fit into a single screen, because I still don’t have a storage device for my Commodore 64.

Keep in mind that this little program is something that I put together myself as part of my relearning of BASIC programming – it’s just an example of how something is done, not BASIC gospel!

The Program

1 P=1024+480:PRINT CHR$(147):POKE P,0
10 GET N$
20 IF N$="W" THEN GOSUB 100
30 IF N$="S" THEN GOSUB 200
40 IF N$="A" THEN GOSUB 300
50 IF N$="D" THEN GOSUB 400
60 GOTO 10
100 IF P<1064 THEN RETURN
110 PRINT CHR$(147)
120 P=P-40: POKE P,0: RETURN
200 IF P>1983 THEN RETURN
210 PRINT CHR$(147)
220 P=P+40: POKE P,0: RETURN
300 M=P-1024: IF M-INT(M/40)*40=0 THEN RETURN
310 PRINT CHR$(147)
320 P=P-1: POKE P,0: RETURN
400 M=P-1024: IF M-INT(M/40)*40=39 THEN RETURN
410 PRINT CHR$(147)
420 P=P+1: POKE P,0: RETURN

Line By Line Description

1 Initial screen position of @ character: clear screen: Draw @
10 Get keyboard input
20 IF Input = "W" THEN jump to line 100
30 IF Input = "S" THEN jump to line 200
40 IF Input = "A" THEN jump to line 300
50 IF Input = "D" THEN jump to line 400
60 GOTO 10 to loop through getting input approx 60 times/second
100 IF @ is already on top row, do nothing
110 clear screen
120 move @ up 1 line:Draw @: RETURN
200 IF @ is already on bottom row, do nothing
210 clear screen
220 move @ down 1 line: Draw @: RETURN
300 IF already on left edge, do nothing
310 clear screen
320 move @ up 1 line: Draw @: RETURN
400 IF already on right edge, do nothing
410 clear screen
420 move @ down 1 line: Draw @: RETURN

Notes

Due to the use of a subroutine (“function” in modern lingo) that jumps away from the GET statement using GOSUB, holding a movement key down does not repeat the movement of the character.

Lines 10 to 60 are the “game loop” that repeats roughly 60 times per second. Each time the player moves the @ character, the whole screen is erased and redrawn. This is similar to what happens in more modern game engines, just things are so fast and abstract in new game engines that redrawing the screen is taken for granted. Here with character graphics, one must manually redraw the screen, otherwise the old characters would still be there.

Lines 100, 200, 300, and 400 are used to keep the character from going off the top or bottom of the screen or from wrapping around to the next line on the screen. Lines 300 and 400 use the modulus principle (remainder after dividing) to determine the column that the character is in. In other languages it would be as simple as typing 5 % 2, which would equal 1, but BASIC 2.0 on the Commodore 64 does not have a modulus operator. I had to take the screen position and calculate it the modulus the long way, like so,

M = P-1024
M = Current Screen Memory Address – Screen Memory Start Address
M = Location in grid, a number between 0 and 999

The screen is laid out basically as a grid of 1000 sections, with 25 horizontal rows of 40 vertical columns, numbered 0 to 999. Knowing this, we can find what column the character is in using modulus like so,

Location in Grid – INT(Locaction in Grid / Length of Row)*Length of Row

Row = M – INT(M/40)*40

Where the INT() function drops any decimal places, such as 34.32 becomes just plain old 34. We know that the left most column is 0 and the right most is 39, so if the @ character is already there, then we don’t need to move it more in that direction.

Conclusion
This simple program can be extended by adding more functions to the game loop in a similar manner as those you see above: GOSUB to some line, do some stuff, return to line below where you GOSUB’d from. Is it perfect? No, but it’s essentially the starting point of games such as Pong and Snake.

Retro Desktop: PCI to SATA Card vs. IDE to SATA Adapter

Ever have one of those times when you’re telling a friend about something you’re doing which you are super pleased with and they suck the wind out of your sails by saying something like, “Really? You should have done this!”? Well, that happened to me recently and I thought I would share so you could learn from my… experience! 🙂

Setting
I have a 233MHz Pentium MMX based Compaq Deskpro 4000 that I use for DOS and Windows 98, primarily to relive my music tracking days using Impulse Tracker.

Problem
I don’t want to listen to the sound of the hard drive all the time. I always wanted a silent computer, but it’s especially important to me for music production.

Solution 1: Compact Flash Card to IDE Adapter
I have one of these and they do work well, however they do not hold up well when there is a significant amount of disk writing activity, as they do not have any wear leveling software and other related issues. As such, I have experienced file corruption, read errors, and system freezes in DOS, Windows 98, and Linux when using an CF card as a native IDE hard drive. It works very well for DOS, almost flawlessly, so will likely be fine for people who aren’t writing many large files.

Solution 2: Solid State Drive
A modern serial ATA (SATA) solid state drive, especially the small and cheap ones, are ideal for use with retro desktop computers apart from one minor detail: Old desktops pre-date the SATA standard, so you won’t find any SATA ports on computers older than the Pentium 4. But, I happened have an extra 30GB OCZ Onyz SSD kicking around, which served as my Linux boot drive until I ungraded to a 120GB drive a few years ago, so I was keen on putting it to use in my Deskpro!

With this in mind, I needed to look for a solution to make a SATA SSD compatible with my system. In the past I have used a PCI card to add IDE ports to a computer that didn’t have an IDE ports, so my first thought was to see if I could find an inexpensive PCI SATA card. Sure enough, I found just such a PCI card on ebay from a seller nearby in Ontario and I ordered one!

The biggest problem one can have with using storage devices attached to PCI cards is that the BIOS on some motherboards simply will not boot from them. Not thinking to use my dusty old Promise Ultra 133 TX2 IDE controller card to test the Deskpro’s ability to boot from PCI card attached storage, I waited for the PCI SATA controller card to arrive in the mail before I found out if it would work as I had hoped.

VIA VT6421A based controller card added to the system!

The Deskpro 4000 was not able to boot from a SATA hard drive or SSD attached to the controller card. However, when testing with Windows 98 installed on the IDE hard drive attached to the motherboard, the PCI controller card drivers allowed the attached storage to be utilized by the system. Unfortunately I was not able to find any DOS drivers for the card so it can’t be used by Impulse Tracker, as I need to use that in real DOS.

Conclusion
To make the most out of the situation, I decided to compromise and use a larger 1GB CF card to boot Windows 98 (as apposed to the 256MB CF card I was using for DOS – both cards we previously used in our camera), so that I could use the system in silence and still make use of the 30GB SATA SSD. It just meant that I would have to run Impulse Tracker from the CF card and copy over any files I want to use at that time from the SSD to the CF card…. blah THIS SUCKS!

And that’s where my friend Chris came in and said (via Messenger from other side of the continent), why don’t you use one of these?

Why didn’t I think of that!!!??? 🙂

Not only are those IDE to SATA adapters 1/4 the price I paid for the PCI SATA controller card, they are also invisible to the motherboard and thus will allow a SATA SSD to boot like any other drive. Sigh…

I have yet to purchase and test an IDE to SATA adapter in my machine, but I would imagine it would work just fine. It would be nice to order one from someone in North America, as shipping from China/Hong Kong takes like five-ever (still waiting for 5 head phone plugs I ordered in April for $2), but shipping and lack of personal testing aside, I absolutely recommend going the route of using a cheap 4/8/16/32 GB SATA SSD with your IDE era retro desktop via one of these adapters. SSDs are quiet, fast, reliable, and they hardly use any electricity at all, making them superior to old IDE hard drives in every way.

If you’re into the retro sound of a traditional hard drive, that’s great, you can carry on using one. If not, get yourself a SATA SSD and an IDE to SATA adapter – I know I will at some point!

Here are some pictures of my progress and setup.


Ps. If you’re feeling particularly creative you could fashion a 3.5″ drive bay for your 2.5″ SATA drive that looks similar to a floppy drive, saving you the need to open the case should you wish to remove the drive. You can probably buy hot swapable bays like this, but I am not sure they would work with the IDE adapter and I would not risk using the hot swap feature itself.

Unboxing My Commodore 64! (And Why I Bought It)

Hey, who doesn’t like unboxing videos, right?! I was pretty excited to make this one, because using this new machine marks the beginning of a new journey that will occupy me from here on out. Indeed, rather than upgrade my 2013 desktop PC this year as I had planned, I decided to keep it and put that money toward taking a new direction completely. Honestly, for everthing that I do on my computer (which is a hell of a lot!), my AMD FX-8320 based system is still great – the worst part about it is how much electricity it uses compared to newer machines.

I have spent countless hours window shopping online for upgrades to this PC, considering everything within my budget probably a thousand times, and it wasn’t until recently that I had an epiphany: If I turn off the desktop, it doesn’t use any power at all!

While that may seem super obvious, when you consider that I have been relying on my desktop computer for all my computing needs, including emulating the Commodore 64 and just browsing the web, it legitimately did blow my mind when I thought about this. I mean, a real C64 with an SD card reader as a “floppy drive” is actually a very low power device. As is my Chromebook. When I added on my earlier realization that I prefer making games than to playing them (I really only play Guild Wars 2 anymore and even then, rarely) and the ones I play work just fine, it made sense to me that I didn’t need to upgrade my PC at all. An upgrade would be nice, but realistically all it would accomplish is to allow me to do what I am already doing, just faster and with a lower electricity cost. So I will follow my Dad’s advice and “use the right tool for the job”.

If I am just reading PDF files or farting around on the web, there’s no sense firing up the desktop – I should use the Chromebook for that, because it can run 10 hours on battery while only drawing 45W for a 2 hour charge (where as my desktop uses around 200W any time it is running, more when compiling software, and WAY MORE when playing 3D games). If I want to program games, I could use my beefy and awesome Linux desktop and make something that will most likely never be used and will definitely be forgotten or, I could use a power efficient Commodore 64 and create games (and other software) that may well prove fun for decades to come. And for all those PC games I occasionally play and the music and graphics and all that other stuff I like to do on the PC, I can carry on using this nice old desktop that I already own! This seems to me like it’s the best use of our resources and an excellent use of my time.

Anyway, now that you know why I own a Commodore 64, enjoy watching this video of me opening it!

From Cramped Hovel to Computing Command Centre!

We have a small house, an old house, a house in need of many repairs and upgrades. Consequently, it has been difficult to find a space in our home not only for my computer and electronics hobbies, but for where to put our kids and our seemingly endless supply of misc crap.

In the past I have had my desk area upstairs, but due to the design of the house it gets very hot and filled with tar smell from the shingles up there in the summer time, so I’d always move downstairs in the summer months. That was OK, but it meant that I didn’t have much stability and it was a little lonely being up there away from everyone all the time (because it was just me, a toilet, a sink, and what amounts to an attic full of misc crap…). For a couple of years I had my computer at the end of our bed downstairs, but when we decided to switch our bedroom for the girl’s bedroom (which once was the living room), I got back that space where I started way back when we moved here in 2005.

Here are some pictures of my computing setup over the years, ending with what I have today…


Even though I am only using an extra two feet in the room, this new setup feels enormous! Removing the useless wall not only gave me more space, but it made the whole bedroom look bigger. I liked it better without the old Compaq system, because I could look over and talk with Sarah more easily when she was in the bed. However, I have to admit I am far more likely to actually use the Compaq here than when it was in the “underhouse”. Still, something will have to give, because I’m not sure how I will comfortably fit the Commodore 64C in here when I get one later this year… But it needs to be a comfortable space to accommodate my retro BASIC/Assembler programming, so we’ll see… we’ll see!

2018 has been a year of change thus far and I have found it difficult to dedicate the time and mental capacity to achieving hobby related things. As such, I haven’t written, programmed, or created much. However, I have done a few things of note that I intend to cover here in the near future, right here from my Computing Command Centre. 🙂

Cleaning My Old Pentium 233MMX Computer

Ages ago, sometime in perhaps 2002, I had a need for a floppy drive. I lived in the lower mainland of British Columbia at the time, where I had access to loads of excellent, inexpensive computer stores. So, I looked up the price of a drive, said to myself something along the lines of, “Why spend $18 on a new drive when I could spend $30 on a drive that is attached to a whole computer?”, and proceed to purchase a used computer instead of just the drive. Believe it or not, I still have that computer and recently I decided to pull it out of storage and clean it up!

The poor thing, I have used it many times over the years, but never as my main computer. I like it though, as it has the same specs as the first computer I ever purchased for myself and because the case is really well designed. I’ve upgraded it with the various extra stuff I had kicking around, such that it has the following specs…

CPU: Intel Pentium 233MMX
RAM: 384MB (2×256 DIMMs)
Video: S3 Virge GX 4MB
HD: 10GB IBM branded Quantum Fireball
Monitor: Acer 58c 15″ CRT
Other: DVD-RW, Iomega 100MB ZipDrive, Compaq keyboard, Microsoft 2 button mouse
Operating Systems: Windows 98, Slackware Linux 9.1

As for taking you through the cleaning, I’ll do most of that using the captions on the following images. For the most part the tower, monitor, and mouse only needed some scrubbing with glass cleaner and baking soda, so I didn’t take many pictures of them. The vast majority of the effort went into making the keyboard great again!

And now that it’s clean? Well, I dunno… It works… Cool. 🙂 Seriously though, I think at some point I will set it up similar to how I had my computer back 1998/1999, when I was using Impulse Tracker in DOS to create music, while learning Linux, and using Windows 98 for pretty much everything else.

Appreciating OS/2 Warp’s Contribution to My Life

For several years I used my OS/2 Warp Version 3 box to raise my monitor off my desk. The idea being, it would help me not slouch as much while using my computer. It did a good job at reducing pain in my back and my tailbone.

Recently I upgraded my desk to include a shelf for the monitor, removing the need for my OS/2 Warp box. Given that I have had the software since 2005 without ever using it, I figured I would give it a proper send off by installing it on my old Pentium computer! I decided to make a (really terrible) video of the process. Be thankful that I edited the multi-hour ordeal down to just 17 minutes of rambling, keyboard poking goodness.

Spoiler: After a few hours of poking away at it, the installation failed. However, it was fun to give it a whirl.

If you’re curious about what OS/2 Warp was like to use, check out the this video by eznix.

Ps. The production quality of this video is what it is. 🙂

HowTo: Create A Chromodore 2017

Ever since I put it into developer mode, I have liked my Chromebook a whole lot more. It’s a very versatile, enjoyable device, and one of the nifty things it can do is emulate old Commodore computers, such as the VIC20 and C64. By way of installing a GNU/Linux desktop environment and the VICE emulator, one can “Chromepute” on their very own “Chromodore 2017”!

Important
This process requires full control of the Chromebook to gain access to developer mode, so it probably will not be possible for kids using Chromebooks provided by their schools to follow this guide. My Chromebook does not yet support Android apps, so I can’t test it, but I have read that one can use a Linux desktop by way of Android without using developer mode. Also, when in developer mode, anyone can power on your Chromebook, press the spacebar when prompted on the giant white warning screen, and perform a factory reset on the machine (erasing all your local stuff on the main drive). Be sure everyone who uses the device knows to press CTL+D rather than spacebar at the warning screen when turning it on.

Step 1: Backup Your Stuff
Most Chromebooks have an SD or MicroSD card slot for local storage, but a USB stick works well enough too. The next step will delete everything stored on your local storage space (Downloads folder), so go ahead and use your file browser to copy anything of importance from your Downloads folder to your external media or your Google Drive.

Step 2: Enter Developer Mode
This is pretty easy on most Chromebooks by doing the following:
– Turn off the Chromebook.
– Press and hold the ESC+Refresh with your left hand and while holding those keys, press the power button with your right hand. Borrow limbs as required.
– Press CTL+D at the giant, scary white warning screen and confirm your desire to wipe the device. This will take a while and eventually the machine will reboot showing you this screen (each and every time you turn it on from now on. It’s stupid, but hey, someone at Google thinks it’s cool…).
– Press CTL+D at the giant, scary white warning screen and it will continue booting. By default it will automatically boot after 30 seconds anyway.
– Reconnect to your network and log into the computer as normal.

If you’re new to this, I recommend reading the detailed tutorial at howtogeek.com.

Step 3: Welcome to a Useful Terminal!
By default Chromebooks come with a fairly useless terminal program called Crosh, however when in developer mode Crosh gains access to a standard Linux terminal, complete with plenty commands/programs. Open up a terminal by pressing CTL+ALT+T and typing shell at the prompt. Vi/Vim users rejoice, Nano/Pico nor any other basic text editors are included (but one can add nano!). This is where/how you will install and run your GNU/Linux desktop, by way of a cool utility called Crouton. Poke around here for a bit to get an idea of how Linux is organized in its ChromeOS flavor.

Step 4: Install A Linux Desktop
Crouton is nifty, because it uses the same installed/running Linux kernel as ChromeOS, allowing you to run both environments at the same time in normal “real hardware” mode. You can even uses SHIFT+CTL+ALT+Back/Forward to switch between the ChromeOS desktop and the Linux desktop on the fly. Crouton also comes with helpful abilties, such as being able to backup/restore it’s self contained environment. The Crouton website has more detailed information on how it all works. Lifehacker.com has a more indepth guide.

Before moving forward I will note that it is possible to use several distributions of Linux as the basis for your Chromodore. I chose to use Ubuntu 14.04 (Trusty), because its repositories are full of great, stable, and easy to install software. Ubuntu 16.04 (Xenial) is the default and it works fine for this purpose as well, so that’s what I will use for the guide.

The following commands will download Crouton and setup your environment:
cd ~/Downloads
wget https://goo.gl/fd3zc
sudo sh ~/Downloads/crouton -t xfce

The installation will take quite a long time, as it automagically downloads and configures the software. While it’s chugging along, have a look at the command cheat sheet for Crouton to learn how to manage and customize it.

The files for your Linux desktop will be located here:

/mnt/stateful_partition/crouton/chroots/xenial/

This is handy, as it allows you to manaully install new functionality into the Crosh shell’s “shell” program by symbolicly linking things in /usr/local/bin and /usr/local/lib to things in the Crouton file system (such as nano and the libinfo.so.5 it requires). Anyhow, on with the Chromodore!

Note: It is possible to use the xiwi system of Crouton to run VICE in a Chrome tab/window, however I have found that the performance is unacceptably slow when doing so. VICE runs great in Xfce though!

Step 5: Configuring the Desktop
Now that your Linux desktop is installed, you can run it by typing the following into your Crosh shell:

sudo startxfce4

This will put you directly into Xfce. To flip back to the ChromeOS desktop, press SHIFT+CTL+ALT+Back. Use SHIFT+CTL+ALT+Forward to go back to Xfce. To turn off Xfce, simply log out of it using the log out option on its menu (note that choosing the “turn off” option in Xfce will turn off the whole computer).

I personally like Xcfe so much that I use it as my main desktop on all my PCs, but for those who may not be as well versed it can look and feel a little dated. It’s actually super configurable, able to look like anything from BeOS to Windows 10. So, go ahead and Google “customize xfce ubuntu” and get it setup to your liking. Keep in mind that when it comes to Chromebooks with only 2GB of RAM, such as mine, less is more. Here’s a screenshot of my Chromodore desktop.

I like to KISS. Do you? 🙂


Step 6: Installing the VICE Emulator
VICE is an open source program that uses software to emulate the hardware of several Commodore machines, thanks to the combination of great minds and C++. The documentation states that the Commodore 64 is the main focus of the project and the other machines are not as complete, however they’re all able to use BASIC and machine language programs typed by the user (and saved/loaded to/from disk images saved on the Linux machine). VICE is included in the Ubuntu repos, but ROM images for machines are not included, so you will need to download and install them separately.

Install VICE by opening a terminal in Xfce and typing:
sudo apt-get install vice

Now you will need to download and extract the source code for VICE, so that the ROMs can be copied to where VICE expects to find them. Ubuntu 16.04 will install VICE version 2.4, so you’ll need the version 2.4 source code file for Linux. Download and extract it in your terminal with these commands:

cd ~/Downloads
wget http://www.zimmers.net/anonftp/pub/cbm/crossplatform/emulators/VICE/old/vice-2.4.tar.gz
tar xfzv vice-2.4.tar.gz

Copy the ROM files to your system using the following command:
sudo cp -vR ~/Downloads/vice-2.4/data/* /usr/lib/vice

Step 7: Running VICE
Ubuntu conveniently adds links to all of the different Commodore machines that are supported by VICE in the “Other” category of Xfce’s default menu. I have found that sometimes that category doesn’t show up when using the more modern looking Whisker menu though. To run the emulators from a terminal one would assume they’d type vice -something, but nope, instead one must type one of the following commands:

x64
x64dtv
x64sc
x128
xcbm2
xcbm5x0
xplus4
xpet
xvic

Presuming you want to use the most popular machine, the Commodore 64, go ahead and run the emulator now.

Step 8: Configure VICE
Most games require a controller to play them. Some NEED only a single controller in joystick port 2, while others don’t mind if controllers are setup on both controller ports. This is by far the most important practical setting you will need to know.

If you have a real USB controller or joystick, plug it in and the Linux kernel should pick it up OK. If not, poke around on the Internet to see if anyone has steps to get your model working. VICE will see it and will automatically assign the directional pad or stick to the stick and any buttons to the single button that is expected on the Commodore controller.

Tell VICE about your joystick here:
Settings > Joystick settings > Joystick in port #1 > Anolog Joystick 0
Settings > Joystick settings > Joystick in port #2 > Anolog Joystick 0

Again, for some games you will need to switch one of those to “None” for your input to be recognized.

If you don’t happen to have a controller, fret not for VICE has a solution! It is a little bit annoying on a Chromebook, due to the lack of a number pad, but you can use the keyboard as a controller. The annoying part is that when the “keyboard joystick” is toggled on, it’s on all the time, even at the BASIC prompt, so ya gotta toggle it off when typing in commands. Toggle it ON/OFF with SHIFT+ALT+J (Settings > Joystick settings > Allow keyset joystick), define the keys you would like to use (Settings > Joystick settings > Define keysets…) and “plug in” the keyboard-joysticks, as above in the joystick port config, only choose Keyset A rather than Anolog Joystick 0.

Apart from that, have a look at the other various options in the settings menu. There are some for sound, video, and specific machine type, etc. When you’re finished choose the “Save Settings” option in the settings menu, so they will be loaded every time you open the emulator.

Step 9: Using VICE
I am by no means an expert at using this awesome tool, but I understand enough to go through the motions of loading and saving programs. The general idea here is that rather than using physical disks, tapes, or cartridges, VICE uses files that contain the contents of what is on those physical mediums. These files are generally referred to as “disk images” or simply images (a common term for many computer archive files). Traditional floppy disks and cartridges are most often saved in the .D64 format, such as mydisk.d64, while tapes use the .T64 or .TAP format. BASIC programs can be saved and loaded from .PRG and .P00 files. Conveniently, VICE is smart enough to automatically load the various file formats, even ones that are contained inside zip files, by way of the “Smart-attach disk/tape…” menu option.

Here are some things to do…

Download a game and play it…
– Pick something of interest at http://www.c64.com/games/ or elsewhere on the interwebs.
– Run it: File > “Smart-attach disk/tape…” > find the .zip file you downloaded > click the “Auto Start” button.
– Wait while it loads.
– Play the game!
– ALT+D will toggle between window and full-screen mode.
– To quit the game simply reboot the emulator with File > Reset > Hard

Note that the Alt+F12 reset shorcut doesn’t work on a Chromebook, because F12 is the power button.

Write and save a BASIC program…
– Create and load an empty disk image so you have a place to save your program. File > Create and install an empty disk image > Unit #8… > give the file a name, pick a sensible place to store it on the computer (~/Downloads/C64/myDisk.D64 for example) > click the Save button.
– Write a little program, such as…
10 FOR X=1TO10
20 PRINT “HELLO WORLD!”
30 NEXT
– Save the program (contents of BASIC memory) to the disk
SAVE “HELLOWORLD”,8

Load a BASIC program from a disk…
– File > Attach disk Image > Unit #8… > find your disk image and double click it.
– Disply the contents of the disk and run the HELLOWORLD program
LOAD”$”,8
LIST
LOAD”HELLOWORLD”,8
RUN

Those basics cover the majority of what the average person would do with their Chromodore, but there is a lot more you can do. There is a ton of information on the Commodore computers on the Internet, including PDF versions of books and full schematics of the hardware. There’s even an excellent IDE for developing programs for them on a Windows PC called CBM .prg Studio. Personally, I find that a picture of my VIC20 keyboard is an invaluable resource, as the PC key mapping for VICE is not super intuitive.


So there ya go, you’re now the proud owner of your very own Chromodore 2017. Go forth and have fun on your Chromebook, 8 bits at a time.

An ALT+D away from full screen C64 fun!