.
I've long been astonished that no one has done this before.
Does it implement any of the Microsoft function calls, or does it have replacements for them?
I actually wrote two operating systems in assembler: one was for a Nova 1200 for final project in operating systems, and the other was a graphical operating system for a CDC 1700 with attached CDC 774 graphics terminal written for my masters thesis.
In both cases the only tool was a cross-assembler, both of which ran on a CDC 6400. The output for the Nova 1200 was punched to paper tape which was then read in from a paper tape reader on the Nova 1200 by hand togging in it’s driver each time. For the CDC 1700/774, there was a computer-to-computer hardware link between the 6400 and the CDC 1700 and the link’s driver had to be hand togged in each time. There were errors and omissions in the link’s documentation and I had to get the onsite CDC engineers to look at its circuit diagram to figure out how to make the damn thing work.
The Nova 1200 OS was written in one college quarter, and the CDC 1700 was written in a few months. That was back in the day when programmers were real men.
Raspberry Pi?
That was interesting.
Found something similar when I was checking it out.
www.kolibrios.org
An X86 motherboard already has a very low-level OS written in assembler...it’s called the BIOS.
It is not that difficult to build up a usable OS utilizing the BIOS assembly routines already available. A great deal of the grunt work has already been done for you and you don’t have to start from scratch.
People who don’t know how to code think of assembler as some extremely difficult thing to do...it’s not. Assembler is actually the simplest way to code although it is very tedious and exacting.
When you code in assembler you are making very small moves with each line of code and you know exactly what each line will do.
When you code in a high-level language like C or Java the only way to know exactly what each line of code does is to look at the assembly output of the compiler. Writing code in a high-level language is like making a list of all the things you need to do during the day...
Go to the store and buy milk
Get the car washed
Take the baby to the doctor
Coding in assembler breaks it down to much more basic steps. The list of steps below are just to begin doing the “Go to the store and buy milk” line from the list above.
Get out of bed
Put on your clothes
Use the toilet
Get the car keys
Walk to car
Get in the car
So... it doesn’t require 8 gigs of RAM and the latest hardware just to use a mouse? Amazing!
Wow, is this a blast from the past! I think this is one of the things I played with back around Win2k to make a rescue platform with - My mini98SE running on Dos7 was really having trouble with large HDDs and I was desperate to find something... anything! That time really sucked... I didn’t figure out how to hack NT down to a mini till way into XP...
Here’s another way to get an OS written in assembly: Use a real language and then compile it.
Will it ever be more than a Hobby OS?
Little endian or Big endian?
Sounds like something that it might be fun to play with in a VM for a while. Will have to check out how it does Doom in a VM