pouët.net

256boss: usb-bootable OS for running 256b intros on real hardware

category: general [glöplog]
 
Just released 256boss v0.1: a USB-bootable operating system for running 256byte intros on real hardware (as opposed to dosbox) without having to install DOS. Just install onto a USB stick, copy 256b intros into it, and reboot.

web: http://nuclear.mutantstargoat.com/sw/256boss
github: https://github.com/MindlapseDemos/256boss

Comes with instructions on how to install to a USB stick for windows and GNU/Linux, and the disk image includes a bunch of 256byte intros to try out.

This is still release 0.1, and some 256byte intros fail to run properly for a number of reasons, including calling un-implemented DOS calls, so there is more that need to be done. I just wanted to get this first version out of the door. It runs a good number of 256b intros you throw at it, and wanted to gauge if there's interest from the community to continue improving it.

If you find something that fails to run on 256boss, even if it's not strictly a 256byte intro (but COM executables only for now), please open an issue on github, and I'll try to make it work as free time allows. Also patches/pull-requests are certainly appreciated.
added on the 2020-01-28 14:58:38 by Nuclear Nuclear
nice!
added on the 2020-01-28 15:08:47 by pitapoto pitapoto
i remember tomcat mentioning something similar over a year ago. how is this different?
nice to have though, thanks for sharing!
added on the 2020-01-28 15:23:08 by psenough psenough
Quote:
i remember tomcat mentioning something similar over a year ago. how is this different?
nice to have though, thanks for sharing!


How is this different from what? :) How should I know what tomcat mentioned over a year ago? :)
added on the 2020-01-28 15:46:54 by Nuclear Nuclear
quite interesting from the nerds point of view .. but it wasn't a great hustle to create a bootable msdos usb stick, so I'm not sure what the advantage of this project is
added on the 2020-01-28 16:46:36 by Asato Asato
How exactly does this differ from FreeDOS?
added on the 2020-01-28 18:17:54 by porocyon porocyon
Quote:
quite interesting from the nerds point of view .. but it wasn't a great hustle to create a bootable msdos usb stick, so I'm not sure what the advantage of this project is


I wasn't even aware it's possible to boot msdos from a usb stick, let alone that it's easy :)

Quote:
How exactly does this differ from FreeDOS?


It has nothing in common with FreeDOS or any DOS save for implementing just enough DOS system calls to run the 256b intros. Mainly just "terminate", and a couple others. More can be added as needed, if some 256b intro requires them.
added on the 2020-01-28 18:37:36 by Nuclear Nuclear
not they tool I used, but the simplest method atm .. I'll try to remember how I did it and report ;)

Rufus
added on the 2020-01-28 19:06:39 by Asato Asato
very cool startup intro!

tried it in my netbook (Asus EEE PC 1015PD) - some intros work correctly, some (even prebuilt) don't render frames in realtime (a slideshow effect, you know... i think, this pc is just pretty weak for these intros :D) and some (i tried pmifi256 at least) shows a black screen when freedos installed on an SD card launches it perfectly (but without speaker sound).

i think after many bugfixes this might be the perfect solution for 256b intro/ascii compos!
added on the 2020-01-28 20:37:36 by 100bit 100bit
Interesting ! Though as said before it's quite easy to install FreeDOS with Rufus also.

To what values do you set the registers ? As a lot of 256 Byte intros rely on a specific setting (ax=0,bx=0,cx=0xff,si=0100,...). More in that here
added on the 2020-01-28 20:42:55 by Kuemmel Kuemmel
100bit: thanks for the feedback! I opened an issue on github about plasmifier256b, feel free to follow it to get notified when I get around to fixing that: https://github.com/MindlapseDemos/256boss/issues/2
added on the 2020-01-28 20:46:02 by Nuclear Nuclear
Quote:
To what values do you set the registers ? As a lot of 256 Byte intros rely on a specific setting (ax=0,bx=0,cx=0xff,si=0100,...). More in that here


I made an effort to start the intros with the expected values in all registers. At the moment if I remember correctly only the stack pointer is not correct, due to the somewhat convoluted way I'm executing the intros. Fixing this should be easy enough, and it's a high priority item in my TODO list. Here's the relevant code: https://github.com/MindlapseDemos/256boss/blob/master/src/lowcode.s#L226
added on the 2020-01-28 20:51:46 by Nuclear Nuclear
no problems! i'll test more intros with more computers tomorrow... i hope
added on the 2020-01-28 20:52:41 by 100bit 100bit
Hmm, I remember working on something similar around 2000, but it was for Linux systems and used the vm86 system call to execute the intro code. BIOS and DOS interrupts were trapped and emulated in C code. It used SDL and it could e.g. run Tube in an X window.

Older 256 byte intros appeared to be more problematic, since they relied sometimes relied more on BIOS and DOS interrupts. For e.g. Tube to work all you needed to support was changing to mode 13h, the "in al,60h" idiom and you somehow needed to throw the video memory from 0xa000:0000 at SDL.

I never released it, and with it using the vm86 system call AND DosBox existing AND free DOS implementations being available I'd consider it pretty obsolete. But it was fun back then.
added on the 2020-01-29 11:06:32 by Moerder Moerder
Moerder: there's actually a program called dosemu that does exactly that
added on the 2020-01-29 19:36:38 by porocyon porocyon
Nice effort.

Rufus USB boot is fine for every PC with legacy boot or UEFI boot with CSM support. The problem is the class3 UEFI. At the moment the best strategy is avoiding this kind of systems. (nowdays half of the new DELL notebooks comes with UEFI class3 boot!!!)

So, this kind of projects could be the solution to run DOS 256b intros in the distant future. Booting with a custom OS which is able to emulate the DOS and BIOS calls.

Some starting points could be here:
www.tianocore.org
SeaBIOS
Porocyon: I know. But iirc dosemu required a real DOS. Dosemu itself just was the environment to run DOS in, wasn't it? My tool back then had the advantage that it didn't require DOS, if you can call that an advantage. And it was a fun thing to kill time in the army.
added on the 2020-01-29 21:55:42 by Moerder Moerder
Quote:
and some (i tried pmifi256 at least) shows a black screen when freedos installed on an SD card launches it perfectly (but without speaker sound).


Fixed in git: https://github.com/MindlapseDemos/256boss/issues/2 needed DOS calls 25h and 35h (setvect/getvect) which were previously not implemented.
added on the 2020-02-06 19:10:26 by Nuclear Nuclear

login