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. 🙂