>_  256b

Darran Kartaschew (aka Chewy509).
Released under the BSD License. 2004.

A basic OS in 512 bytes.

The 256b kernel is a basic machine monitor, with the capabity of taking user input, and performing basic functions on the user input. The following functions are available:

System Requirements


256b Source: *.tgz


From the base prompt "> ", enter in the command and it will be executed. Note: there are no safeguards regarding execution, and commands MUST be entered correctly, or something will go wrong. All commands are processed as entered. You will get unexpected results if you enter incorrect information.

When entering memory locations, they are treated as a flat 32bit addresses, that because they are 32bit addresses. The kernel enables the so-called Unreal mode, in that 32bit addresses can be used in real mode.


A xxxxxxxx yy yy...
Write yy yy ... to Memory Location xxxxxxxx
D xxxxxxxx yyyy
Dump Memory location xxxxxxxx to screen for yyyy bytes
G xxxxxxxx
Execute Memory Location xxxx:xxxx
C xxxxxxxx yyyyyyyy zzzz
Copy from Memory Location xxxxxxxx to Memory Location yyyyyyyy with zzzz Bytes.
I xxxxxxxx yyyy
Get byte from Port yyyy and place it at Memory Location xxxxxxxx
O xxxxxxxx yyyy
Output byte at xxxxxxxx to Port yyyy
L xxyyzzaa
Load Cylinder zz : Head xx : Sector aa from disk yy to the Disk Buffer (0000:8000) Descriptor is HDCS.
W xxyyzzaa
Write Cylinder zz : Head xx : Sector aa from disk yy to the Disk Buffer (0000:8000) Descriptor is HDCS.
Reset PC

All Values are HEXIDECIMAL

Memory Map

        0000:7C00 - 0000:7DFF   Kernel      (200h bytes)
        0000:7E00 - 0000:7FFF   BSS         (100h bytes)
        0000:8000 - 0000:81FF   Disk Buffer (200h bytes)
        0000:8200 - 0000:FFFF   Stack       (7E00h bytes)

        Segment   Base    Limit     Mode
        CS         0       64K      16b RM
        DS         0       64K      16b RM
        ES         0       64K      16b RM
        FS         0       4GB      32b PM
        GS         0       4GB      32b PM
        SS         0       64K      16b RM

In case you hadn't noticed I'm using Unreal Mode for this. It lets us have some real fun.

Screen Shots

256b screen shot

A screen shot of 256b