|Was isolated from 1999 to 2006 with a 486. Built my own late 80s Operating System.
by fiberbundle · 6 days ago
In the late 1990s, my parents divorced, and my mother took my brother and
myself and had us go live in a very rural area of Australia with a
psychopath who was wanted in 3 states. This was our new stepfather, so
we were to remain in isolation so that he wouldn't be found. This being
said, we were not allowed to leave the house after school hours, nor use
the internet, nor own mobile phones.
Before leaving, my dad left me an Osborne 486, with a whoppping 640k of
extended RAM if memory serves me correctly. This 486 had only a copy of
MS Dos 6.0 on it, and the standard utilities (EDIT.com, QBASIC etc). It
had a shareware copy of Rise of the Triad 1.0, and I believe, one or two
other shareware titles, Xargon and Wacky Wheels. The last game I saw
before leaving New South Wales in the 1990s was a Half-Life preview in a
I was not allowed to rent books that were not strictly relevant to
school work and this made the 6 hours after school incredibly slow, so I
set to work making my own games and entertainment on this 486.
Thankfully I was able to convince my parents that I needed a copy of
"BASIC BASIC" and "ADVANCED BASIC" by James S Coan from our school
library, despite being dated to the 80s.
With these, I built my first DOS Clone which emulated/mimicked dos in
every way I could possibly achieve. Technically, it would function
identically (you can move/change/rename/delete files and directories,
list time, date, directory listings etc). Fairly basic stuff. I'll post
the source codes to all of these shortly, just sorting them as I type
Next I moved onto text-based adventure games: http://i.imgur.com/kc2fUXb.png
I wrote a horror game and some generic crappy adventures which totalled
to around 40 000 lines (bearing in mind, that's by labelling each line
as "100, 200, 300" etc, rather than going by single digits.
My next experiment was to introduce graphics. Ideally I wanted graphics
to accompany the parser. You would say "Walk NorthEast", and the screen
would show a little display that of a first person view walking. I began
work on my own "raycaster" of sorts. Below is a screenshot of an early
version before I had working skies:
Soon after, I was able to create very very primitive "detailed" scenes
using various ASCII combinations. I created a DOOM clone to the best of
my memory, as I hadn't seen or played doom for a few years at that
point. It had relatively small maps consisting of 10 x 10 unit data
grids which looked a bit like this (Each number represented a different
wall tile or object. 0 meant nothing - floor and sky.
The screen would be divided up into 8 x 8 chunks and project pre-written
ASCII art that depicted walls at different angles. I did a wall at a 45
degree angle, a 22.5 degree angle, etc until I had 4 or so of each wall
setup rotated at each angle, and then was able to make the player
rotate in iterations of 22.5 degrees at a time (creating a very basic
(map grid example)
DATA 1, 5, 1, 5, 1, 5, 1, 5, 1, 5
DATA 3, 0, 0, 0, 0, 0, 0, 0, 0, 2
DATA 4, 0, 1, 0, 0, 0, 2, 4, 0, 5
DATA 3, 0, 1, 0, 0, 0, 4, 2, 0, 2
DATA 4, 0, 1, 0, 0, 0, 0, 0, 0, 5
DATA 3, 0, 1, 0,-1, 0, 0, 0, 0, 2
DATA 4, 0, 0, 0, 0, 0, 6, 0, 6, 7
DATA 3, 0,10,12,10,12, 0, 0, 0, 7
DATA 4, 0, 0, 0, 0, 0, 0, 0, 0, 7
DATA 8, 7, 8, 7, 8, 7, 8, 7, 8, 7
By this point, I wanted to up the ante. I had vaguely recalled one of my
childhood friends at the school I had been going to before leaving for
the country whom was into C++. He told me about John Carmacks wolf3d
engine, and how it "cast" rays out until they hit a surface, and simply
calculated the distance from the camera, then painted the image in
vertical strips on the screen.
I made a simple (albeit crappy and slow) raycaster over the next year
and ended up with this. Instead of projecting pre-made ASCII art at
various angles, it correctly cast rays and projected them onto the
screen in vertical strips.
I then wanted to take it a step further and make my own "game engine".
(Silly me, thinking I might make something that could possibly sell? It
would've been about 2004 by now). I developed my first general GUI and
implemented the raycaster into it
(only just noticed that I had the map being read back to front. The map
on the right should be mirrored the opposite way)
After this, I developed OSCI (as you see in the main picture). I had a
lot more files floating about on my whopping big 203mb hard disk by this
point, so I wanted a more unique way of managing them, without having
to navigate via the traditional DOS tree structures, so I developed OSCI
and built my own apps for it (DFC - Digital Filing Cabinet, which I
used to input my homework, for saving and arranging files, code etc)
Here's an early shot of OSCI with -some- but not all of the basic
commands. Technically I built it over my "DOS" clone, so it carried over
the basic commands of my dos clone, but had visual representations of
what was going on, such as directory structure etc.
About 1-2 years later (I don't remember if it was 2004-2005 when I did
this), I was allowed to leave high school and go to TAFE, a type of
college we have here in Australia. There I built a basic TAFE operating
system known as the Command Line Interface of TAFE for an assignment.
The teachers didn't like the abbrieviation (CLIT) for that... so I had
to change it to Command Line Interface of East NSW TAFE (CLIENT)
It was a very simple TAFE dos system with tree structures, file
copy/move/rename capabilities, but by this time, it was heavily
outdated. I had no idea what modern operating systems were like as the
school I went to used those boxy old Apple Powermacs from the 1980s (the
tiny ones), and the TAFE college was running obsolete systems with
Windows 2000 on them, which was basically like 98, but crappier.
The rest they say, is history. Mum finally ditched the guy who made our
life hell. I was allowed to move back to civilization and had my mind
absolutely BLOWN away by Crisis screenshots.
I didn't code anything for a while, since there was a lot to catch up
on. I spent years literally playing Half-Life (and Half-Life 2! That was
absolutely amazing to experience), as well as a few other titles, and I
realized that my work was technically obsolete as hell, and not really
of any value. In 2008, my dad whom I'd gone to live with threw out the
Osborne 486 (he's not very sentimental) because the clock chip on the
motherboard had died, so I lost a lot of work, however I did have plenty
of floppy-disk backups at the time, and those are the ones you're
seeing in the pictures above.
I took another shot at coding this year to see if I could build anything
interesting in C++, but the difference between something like QBASIC
and a full blown C++ IDE just ended up baffling me more than anything
else, and I struggled for a bit. I learned what I could about the SDL
library and built a simple 3d raycaster with the ability to do multiple
storey heights, and with a level editor that worked on 3 different
axi', so th
|at you could say, "paint" a series of
tiles in a certain order on a wall.
EDIT EDIT: I didn't expect this to get so widely recognized, but I'd
like to also clarify a few things:
First up, as many have pointed out, yes it is correct in saying this is
not a true operating system. I have put the statement into quotes
because it is merely an imitation of one, or a mimick of one, but still
functions as simply as any other BASIC application would. Sorry for the
confusion there. I also don't claim this to be some kind of
technological triumph; it is merely a hackery together of different
elements to form my own attempt at a graphical user interface or shell
for DOS to make things easier to use.
I've amended the description and terms to be more technologically
correct to avoid any confusion.
The "OS" is called OSCI ("Aussie") or "Operating System Command
Interface". It's a parser-based shell that I built in 3 months as I had
only a 486 with a copy of DOS, and QBASIC.
I was moved out to an extremely remote country area in the middle of NSW
Australia to live with people I didn't want to live with and isolated
with no internet for 7 years during my childhood/teenhood. Using the
1980s reference books from my high school library, I decided to build my
own GUI so that I had a more manageable way of dealing with files than
the standard DOS structure.
It's very basic, but offers the ability to change colours ("themes"),
and has automated functions to check for install/setup bats and exes for
easy installation of media, games etc.
I also built my own equivalent to a Ray-caster "3d" engine, except that
it projected images on the screen using ASCII characters instead of
drawing it directly.
Was a bit shocked to come back to civilization in 2007 and see how far
things had come since Windows 98.
|Great that you were able to learn on your own and you stuck with it during such challenging circumstances.|
|Interesting story. Thanks for posting.|