Helpful GDB Commands

Mostly for my personal reference: target remote tcp::1234 - Connect to remote host layout asm - Switch to asm layout (horribly broken and often breaks your whole terminal, but whatever...) python [gdb.execute('YOUR_COMMAND') for x in range(N)] - Repeat command N times br *0x7c00 - Set breakpoint info registers (or i r) - Show registers

Datasheets that were lost to time

These are (old, outdated) technical documents that never made it to the internet. Presumably they're still covered by patents or other intellectual property, and they'll hopefully be released someday. Or maybe they're lost forever, who knows. AMD-751™ System Controller Data Sheet (order #21910)AMD Athlon™ System Bus Specification (order #21902)AMD Athlon™ Processor BIOS, Software, an Debug … Continue reading Datasheets that were lost to time

Decoding the Extended Addressing Modes of the 68000

I've been working on a disassembler for the Motorola 68000 family of microprocessors, which were popular in home computers in the 80s. A disassembler takes a binary blob of machine code and transliterates it into a more human readable text format. These are the actual steps your CPU is taking, however they're just in human-readable … Continue reading Decoding the Extended Addressing Modes of the 68000

OS Dev with QEMU, OVMF, and GDB on Windows

According to The OSDev Wiki "Any recent version of QEMU with a recent version of OVMF will be sufficient to run a UEFI application". Nice. How do we set this up on a Windows host? Download a QEMU Windows build from https://qemu.weilnetz.de/w64/ (direct link to the latest version as of the writing of this: https://qemu.weilnetz.de/w64/2020/qemu-w64-setup-20200814.exeContinue reading OS Dev with QEMU, OVMF, and GDB on Windows

Difference between “dynamic-link library with exports” and “dynamic-link library” in Visual Studio

TL;DR: "with exports" means the project starts with some example exports added. You'll need exports, so why not let it insert some boilerplate code for you? Less chance of typos. Use "dynamic-link library" instead of "dynamic-link library with exports" if you want to add '__declspec' to things yourself. So you want to create a DLL … Continue reading Difference between “dynamic-link library with exports” and “dynamic-link library” in Visual Studio