Page 1 of 1

Pikobrain

Posted: Sun Mar 28, 2021 8:14 am
by Hanzlu
Pikobrain is a 16-bit OS I've been coding since 2019.
It uses BIOS interrupts to deal with hardware, and this allows it to only be 5kB in size.

https://github.com/Hanzlu/Pikobrain

Pikobrain does not have a proper file system, instead you access sectors and tracks/heads on the hard drive with their number.
This means files are automatically 512 bytes, and a folder is most likely about 32kB in size.

Pikobrain uses the hexadecimal number system in commands, but there are convertors between decimal and hexadecimal, to simplify the process.

Pikobrain has a custom assembly language and assembler, a text editor, and a calculator.

It is certainly not like other OSes, and I do not wish for it to be either. A core philosophy for developing Pikobrain has been to write all the code myself, and to not use any standards or ideas others have created (besides the BIOS I guess).
Small code size, but not at the expense of user-friendliness (too much) has been a goal as well.

Since version 1.0 it has worked on real hardware. At the time of writing this the OS is at version 1.3.6.

Here is a screenshot:
Image

Re: Pikobrain

Posted: Mon Jul 05, 2021 4:06 am
by eekee
It's good to see another system using blocks in place of files. :) I keep my hobby notes in a Forth system with 1KB blocks; it's much easier to organize than text files. 1KB works out pretty well for me, but this is with fixed-length lines. Part of the 1KB is inevitably wasted as padding on the ends of lines. 1/2KB with actual newlines would give me almost as much space. I don't have "bulk". Sometimes wish I did, but if I could join blocks like that, I'd end up with something hard to organize again.

Using the first few characters as the name is practical for keeping notes. 10 characters is a little bit short; even old MS-DOS supported 11 characters in total, but I guess it's not bad.

Can you use variables in Picobrain's input state? I use variables to hold block numbers when I'm switching frequently between 3 or more blocks. (I wrote a 'flip' command to switch between 2 blocks, but it's too limited.)

It's interesting that Pikobrain uses the backspace key to terminate programs. Plan 9 uses the delete key, as did many other systems in the 90s. Also in the 90s, most GUI systems had a delete key where the crazy old PC keyboard has backspace. But maybe you knew that. :) Personally, I wish the pause/break key was used for termination, but I guess that's getting rare on laptop keyboards.

I was thinking of trying Pikobrain, but then I saw this terrifying statement in the manual! ;)
Boot from the USB. If the boot is sucessfull the screen should change color. Pikobrain is now installed on your hard drive.
So... it boots and installs automatically? The manual doesn't mention giving the user a choice of partitions. (It doesn't mention partitions at all.) Doesn't that mean it's going to overwrite whatever I already have on the hard drive?

Re: Pikobrain

Posted: Mon Jul 05, 2021 9:57 am
by Hanzlu
It's nice to see a reply here.

If the files in your system is automatically 1kB, does this mean there is no way to have larger files?
In Pikobrain a "bulk" is consecutive sectors on the hard drive, so it's not that difficult to deal with. You just have to specify the file number and its size (number of sectors) to access it.

I'm not exactly sure what you meant by "variable". But, no, you always access files by their number in Pikobrain. But I see how variables could be useful (if I understand you correctly).

The command "input" does not work by filling a buffer, but rather directly reads the key inputs. This means you can not use backspace and rewrite letters, this is where backspace is used as "exit" as it completely cancels the command writing. Otherwise the backspace button is not necessarily a terminate key.

Yes, I haven't looked into how partitions work, so Pikobrain will overwrite the first 10 sectors of the hard drive when installed. On the real life machine I run Pikobrain, Windows XP no longer worked after I installed Pikobrain, but most of the XP code was of course still on the drive. For this reason a virtual machine (VirtualBox) is better for testing, rather than everyday use.
You'd be very welcome to test Pikobrain on VirtualBox, as all you need is to download the piko.flp file from GitHub. I'd be happy to hear "user reviews".