He sets out to write a complete clone of Zaxxon in assembly language with no operating system. He handles display, keyboard, mouse input, booting the system himself – and walks us through it all.
This kind of coding is exactly what got me into computer science as a kid. Watching demo scene videos and learning to program right to the display buffer with assembly was an era we don’t see much anymore. Still, I did get to make a graphics app that directly booted the display controller on recent hardware for an embedded platform (but that’s a story for another time).
Inkbox decides to program without an OS. Back in the day, we used to do this by programming directly to the system or to BIOS with interrupts for things like disk, device, and display access.
Fast forward, and if you want to do this today, one doesn’t talk to BIOS – they need to program via UEFI services. Inkbox walks us through doing multi-core bare metal programming of the old game Zaxxon. It’s excellent work and fun walkthrough.
I got my start in programming with type-in BASIC programs. Back in the 80’s, almost every computer had BASIC built-in, but almost no kid could afford games. Or even get them – the nearest store that sold software from me was over 30 miles away. Mail order took 2-3 weeks. On top of that – kids are notoriously broke. What I did have was a library, and plenty of time.
Enter Compute! magazine. After ravenously devouring all the programming books our small Carnegie library had, I branched into magazines. BYTE was too news oriented and didn’t have type-in programs; though reading about the technology was fun. When I found Compute! – I was hooked. I eventually checked out just about every single magazine they had a dozen times over. I remember digging in the downstairs old issue stacks in search of any I might not have seen. I spent whole weekend afternoons typing the programs in – and then even more hours debugging each line to figure out where I’d gone wrong.
Nate Anderson recently wrote an article about those early days of type-in programs. Even more fun is the comments section full of people sharing their similar experiences.
With the internet and instantly available content and content development tools – it makes me wonder how the next generation’s engineers will develop. How will the instantly available world of free software and tools shape them compared to our generation of type-in programmers?
Thankfully, all these wonderful magazine scans have been saved in the Compute! Magazine Archive on the Internet Archive. I even sat down and typed one in (well – heavily utilized OCR as well!). What a blast.
MangoHud is a nice little Linux package that provides a Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load, and lots of other parameters. Source is provided on github.
PurpleMind goes over the Miller-Rabin Primality Test that can determine primes very quickly – but only with a non-100% probability. This test, combined with other prime principles, are how modern huge prime numbers are generated.
Vector Databases for Semantic search and AI application
I had forgotten the rules for the levels of database normalization. Not surprising since I last had the class over 20 years ago. Those problem sets immediately came back to me.