Posted:
2021-12-21
#68komputer
#hardware
#m68000Despite what the general silence on this topic might imply, quite a few things have changed in the land of 68komputer since the last time I wrote about it. For one, there’s completely new hardware based around a 68000 with a full 16-bit data path. And, a boot ROM and firmware that’s a bit more… inviting.
Posted:
2021-12-07
I was starting to have issues building the old theme due to out of date dependencies, so it was time for a fresh coat of paint for this place. Plus, I applied a few more bonus changes and improvements. Hopefully I managed all that with no broken links…
Posted:
2021-11-08
#emulationFor a while, I’ve wanted to write a Mega Drive emulator, the original goal of this project. Pretty quickly it became apparent that it would be not significantly more work to build a generic system-agnostic emulator instead – either way I started from scratch – called Emulashione: the emulation framework with the nonsensical name.
Posted:
2021-10-13
#c++
#emulationCooperative multitasking was the staple of early operating systems – as were system lockups due to poorly programmed applications not yielding control of the processor. While modern systems instead implement preemptive multitasking to sidestep these issues, cooperative multitasking still shines in certain applications.
Posted:
2021-10-04
#bluetooth
#reverse-engineeringAfter only forgetting I have a blog for a month (which is a record low… who knows, maybe we’ll get under the month mark soon) I finally got around to cleaning up and publishing my findings on the Pax Bluetooth protocol. If the idea of writing xblaze appeals to you, read on.
Posted:
2021-08-29
#bluetooth
#reverse-engineering
#swiftFor quite a while, I’ve had a Pax 3, a Bluetooth LE-connected vape. It’s a great device, but the iOS app leaves a lot to be desired. Finally, I had enough and decided to set out to figure out how their communication protocol works; with the end goal of implementing my own app to control it.
Posted:
2021-06-29
#kush-os
#osdev
#c++
#driversWith much of the foundation for the internals of kush-os built, it was time to break from the confines of the small, size-limited boot RAM disk. This means reading Stuff™ from disk: so it’s time to write a driver for the AHCI to allow filesystem drivers to interface with SATA disks.
Posted:
2021-06-13
#kush-os
#osdev
#c++A common task for most system services is to export a set of actions that do something. Until now, this meant loads of manual boilerplate code, error-prone request serialization, not quite consistent C++ interfaces, and lots of subtle (and blatant…) bugs. So I set out to find an RPC framework for use in kush-os to handle all of this for me.
Posted:
2021-05-29
#kush-os
#osdev
#c++I recently found myself needing reference counting semantics for arbitrary objects in kernel space. C++ libraries include std::shared_ptr and friends, but we don’t have the luxury of using that in a kernel. Thankfully, building a discount reference counting smart pointer isn’t actually all that hard.
Posted:
2021-04-13
#opengl
#gamedevSince I’ve had little time to write code the last few weeks, let’s take a look at some past projects: today, we’ll take a look at Cubeland, my take on the cube voxel world game genre, à la Minecraft.