Posted by jggonz 13 hours ago
I've done it.
It took a lot of loop unrolling and optimizations in order to get the TLS 1.2 handshake to complete before the server timed out the connection, but I've successfully gotten it to work, and with only 384 KB of RAM.
The implementation doesn't verify the server certificate (would certainly take too long), but it successfully performs an HTTPS request to Wikipedia as a proof-of-concept.
One of these days I'll clean up the code and post it here.
MULU operations are not constant time but depend on popcount. That has an easy work around just also do the MULU of the bitwise inverse, both instructions sum to a constant cycle count.
The brick wall I hit is related to the Macintosh SE ram being shared between CPU and video system. Every few cycles the CPU stalls instruction fetching, which turns the both MULUs together take the same amount of time each time into there is slowdown depending on the popcount of the first instruction.
I don’t know if anyone has any solution for this, there is prefetching of one instruction so all should be well, but it seems like the cpu stalls the in progress instruction if the prefetch is stalled.
A 2048-bit RSA key is 256 bytes. A 256-bit symmetric key is 32 bytes and ECDH keys are roughly the same size. The state size of AES is 16 bytes and its S-box is 256 bytes. Efficient implementations use only a few KB of state. The vast majority of cryptographic algorithms just aren't that big, relatively speaking; although as you mention, they are very computationally intense. Hash states are in the dozens to low hundreds of bytes. For TLS implementation, the record buffers are probably going to use the most RAM; 16K each direction + additional overhead.
Why 3.5" floppy drive icons instead of a 5.25"? The images of the OS running on hardware [1] have mostly 5.25" drives.
[0] https://en.wikipedia.org/wiki/GEOS_(8-bit_operating_system) [1] https://os8088.com/hardware/
https://commons.wikimedia.org/wiki/File:Microsoft_Windows_1....
But admittedly I did prefer the Mac.
Not every project that uses AI is immediately "AI slop".
> This is a hobby project. I rely on AI to speed up the work (including the writing and maintenance of the webpage and the markdown files you see here). If you spot a mistake, you're welcome to contribute a fix in the form of a PR.
The author is inviting your hand written assembly skills to help him reduce the "slop"
I think it is especially cool in building stuff to retro specs. It has allowed many to do stuff in days or weeks that previously could have been months. Projects that don't really have much value in terms of money but are just nice to have kind of things.
This project is a great example of this.
It does come back to that question though of who will pay for the code generation but that is something for someone else.
Considering how little open Neo Geo code is probably out there to train on, that these models can build to this is very impressive.
Just to make it correctly: Author isn't writing code with Claude. Claude is writing code for the Author. Nothing wrong with that. But that's how it is.
It was originally coined to mean low-quality material that was obviously generated by AI, like pictures of humans with distorted features and the wrong number of fingers.
But a whole bunch of people have decided that anything generated by AI is "slop", regardless of quality.
It's absolutely obnoxious, especially when people label things as "slop" when AI was merely used for brainstorming and the final product does not contain any AI-generated material at all.
It is a matter of opinion but many brandish the term around a little to freely. Some times justified, other times just folks trying to grab some power over others.
Probably because the web page is. It is almost unreadable because of the style.
It runs on anything with an x86 processor from the early 8088/8086 CPUs up to the latest CPUs. It supports CGA/Hercules + VGA. Sound Blaster, NE2000 network and MFM hard drive support is now available.
We've also ported many cool apps: MOD trackers, TexPad, MS Word 1.1a (in ASM and C), CP/M 2.2 emulator with a ton of apps and games, and several ported games from the early arcade days.
Run it in the browser at: https://os8088.com/demo
Yes, the website has a lot of AI generated content. I'm working on a redesign and tooling to edit and rewrite the content by hand.
Are you feeding the entirety of it to Claude (i guess)? Doesn't that eat pretty much all context - and considering that (AFAIK) the spec file has everything about the OS, doesn't available context space put some sort of "hard ceiling" to what you can add to the OS?
a. splitting it into sub-spec files that can be referenced. b. getting rid of it completely to prevent the LLM from hallucinating with potentially stale information.
256kb is the official minimum amount of RAM. 128KB should work but that's just going to let you run the kernel and some very basic built in apps.
Someone was even able to get it running on a PC Transporter on an Apple IIGS. One of these: https://68kmla.org/bb/threads/setting-up-a-pc-trasporter-on-...
AI is really good an taking what we already know and producing something that works, but what about new innovations?
With all that said, this is still pretty cool.
If it is a project like this, that's cool. If you are deploying the safety control system on a power plant, you had better have a damn good understanding!
With a simple OS like CP/M or others, a low cost computer you can actually trust to only run trusted code is possible again.
In any case, it seems that CPUs have a very long shelf life; it's still possible to buy 8086 processors[^1].
[^1]: https://www.digikey.com/en/products/detail/rochester-electro...
Using gopher client to load http data.