Category: Retrocomputing

  • An Afternoon Diversion in MacOS 9

    To satisfy a curiosity, and itch an itch that never got scratched (Mac G3’s were awfully pretty in their day) I tried installing MacOS9 in a virtual machine.

    Lo and behold:

    I can’t decide what I find more interesting:

    • MacOS 9 had a version of Internet Explorer
    • It was this easy to get running under QEMU
    • MacOS 9 isn’t particularly intuitive at first blush

    I followed https://www.jamesbadger.ca/2018/11/07/emulate-mac-os-9-with-qemu/ ; ignored the parts Mac-specific, used QEMU PPC as available in Debian 12 and used the following as my commandline:

    qemu-system-ppc -cpu g4 -M mac99,via=pmu -m 512 -hda macos9.img -cdrom "Mac OS 9.2.2 Universal Inst.iso" -boot c -g 1024x768x32 -device usb-kbd -device usb-mouse

    Obviously, substitute in your hdd image file and cdrom install file names.

  • Speed of BASIC Arithmetic on a Commodore 64

    I grew up with a C64. A relative gave it to me; at the time, it had started going out of fashion for AOL, Prodigy, and all things online.

    I learned to love programming because of it, and it started a lifetime of working with computing systems.

    I’ve recently rediscovered VICE. Not only are the C64 and C128 emulated, but the C64 with a Creative Micro Designs SuperCPU is emulated as well. I have access to all the things I wanted as a kid but couldn’t afford, on the computer I already have today on my desk.

    So I start up the the emulated C64 with SCPU, and lo and behold, it’s awesome. Programming with BASIC on this is on another level; much more comfortable than my memory of it.

    Today’s find: for some reason, doing arithmetic on integer variables is slower than doing arithmetic on the default floating point variable type.

    As an example:

    Elasped time for performing addition 999 times with an Integer variable
    Elapsed time for performing the same addition with a default floating point variable

    The difference is 3/60th of a second, or it takes about 10.3% of the time longer to do this arithmetic on an integer variable than a floating point variable.

    Maybe the reason BASIC had these included was for memory savings more than speed. Maybe the floating point version is faster because the BASIC interpreter takes more time just decoding the code.

    Surprising to me either way, considering the complexity of performing floating point math on a 6502.