Saturday, April 12, 2014

Pride Lost

I eventually outgrew working in BASIC on my Commodore 64 home computer. By 1986, I yearned for what I really wanted to do on the C64 - continue working on the games and programs I wanted to complete, but to write them in something more structured than just BASIC. A higher-level language that provided more powerful programming structures, even windowing and multitasking. The Macintosh was taking over the world, and I wanted to join in with my C64 in the revolution of the user interface (UI) for home computing.

It was time to get back into 6502 assembly language programming. Could it be possible to write an extension to the C64's BASIC that would support windowing and multitasking? I decided it was, and set out to do just that. The result was the product I called "Structured BASIC".

Structured BASIC had lots of classic programming structures missing from normal BASIC: For loops, While loops, block structures, and formalized data structuring were just some of them. It also had a windowing system with which you could open new windows for your program to display within - a huge step forward from working with just one screen. Multitasking was also supported through an NMI (Non-maskable interrupt) facility where special "Task" routines could be coded in Structured BASIC and then run concurrently with each other and your main program that owned them. There was incredible overhead in this process, and so running more than a single Task could really bog down the C64. The multitasking system was strictly equal-share, so every task got the same amount of CPU time before it was switched out with the next Task or main program, all in round-robin fashion.

It was an incredible creative problem to solve, particularly the multitasking and windowing parts of Structured BASIC. It was also very rewarding - I've never been more proud of anything I've ever coded before or since Structured BASIC. Not for what it did really, which is primitive by today's standards, but for when it did it and that it was just me working alone to accomplish something never done before on that platform. There was also something magical to me about working in assembly language again, probably because so few coders these days even know what it is.

I've long-since lost all traces of Structured BASIC, which makes me a little sad. I've done searches on the web, but little can be found:

http://cbmfiles.com/genie/geniefiles/Information/PARSEC-0696.TXT
http://lyonlabs.org/commodore/onrequest/geos/geoSpecific/KentS/KentS.html

Even though I felt Structured BASIC was my absolute best work, it had a very short lifespan. This was because a new C64 operating system was released shortly after it, something that would grab my Macintosh-inspired attention away from Structured BASIC, and rightly so: GEOS, and the C64 world would never be the same.

No comments:

Post a Comment