BETA215 16.12.2014 08:37 |
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 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 axi', so th |
BETA215 16.12.2014 08:38 |
at you could say, "paint" a series of tiles in a certain order on a wall. link 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. |
BETA215 16.12.2014 11:24 |
http://imgur.com/gallery/hRf2trV |
Donna13 21.12.2014 19:06 |
Great that you were able to learn on your own and you stuck with it during such challenging circumstances. |
Chief Mouse 22.12.2014 08:23 |
Interesting story. Thanks for posting. |
noorie 22.12.2014 11:30 |
Wow!!!!! |