Jump to content
bcman

Was isolated from 1999 to 2006 with a 486. Built my own late 80s Operating System

Recommended Posts

EDIT: See past the dotted line for long story. The OS is called OSCI ("Aussie") or "Operating System Command Interface". It's a parser-based OS 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 OS 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. Will post that shortly. Was a bit shocked to come back to civilization in 2007 and see how far things had come since Windows 98.

---------------------------------------------------------------------------------------------------------------------------------------------------------------

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 games magazine. 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 this. 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: http://i.imgur.com/lg8mIaB.png

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 "3d" engine).

http://i.imgur.com/z3pAvcG.png

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

http://i.imgur.com/p33ftz2.png 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 http://i.imgur.com/gHU7tnQ.png (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.

http://i.imgur.com/y5FRYoO.png 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)

http://i.imgur.com/XSDOXEZ.png

http://i.imgur.com/otcBknZ.png

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 axis', so that you could say, "paint" a series of tiles in a certain order on a wall.

http://i.imgur.com/MMPzlYu.png Hope this answers some of the questions people might have.

Surs?: https://imgur.com/gallery/hRf2trV

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...