FireWire hard disk emulation

I’ve discovered a way to use a file on a computer as a FireWire Harddisk for another computer. This is a handy way to work with older Apple computers because it’s way easier than burning CD’s or using a read FW HDD.

The setup is not that complicated but still there is some to do.

Continue reading ‘FireWire hard disk emulation’

New Vectrex Game: P1X3L-pushr

screenshotIt took some while but here is the new Vectrex game “P1X3L-pushr”, which is a remake of our own C64 game. The game was created for the Coding Compo at the DoReCo-Party 2013. Sorry that it took that long to make it public.

This is our first Vectrex release and my first steps on the 6809, which seems a great processor.

The archive includes not only the rom file but also the full source – have fun with it!

Continue reading ‘New Vectrex Game: P1X3L-pushr’


I’ve just published my 6502 code reorganizer which results in a better compression:

C64: 512k RAM/Module Expansion

Last weekend I’ve finished my first CPLD experiment, which (of course) was an project for the C64. This small extension is a GeoRAM compatible RAM extension or a EasyFlash like extension. It’s possible to switch between them via software. In other words you can use it as pure ram or load cartridges in the ram and play (instead of burning eprom modules).

Continue reading ‘C64: 512k RAM/Module Expansion’

New Multiprommer Firmware


  • The files loaded/saved don’t have an load address anymore!
  • Simple file browser (cmd compatible)
  • Keys reassigned (now matches the function)
  • Layout optimized
  • Help screen added
  • Removed the “Modulgenerator”
  • SMON or Multimonitor – your choice

Continue reading ‘New Multiprommer Firmware’

C64 Reset using the Restore key

With this small device you can reset your C64 by holding the Restore key down by 2 seconds.

All you need is an ATtiny and a little more, the price should be less than 2 EURO in total.

Code/Docs: C64 Reset by Restore

WordPress: Multiple Languages

If you would like to have a language switch like I have, that can be done.

It’s now available on Multilingual Text

Update 2011-09-21: Version 1.4 Released
Continue reading ‘WordPress: Multiple Languages’

TextWrangler remote control

Do you ever wanted to open a file while logged in a remote server via ssh on your local TextWrangler/BBEdit? Now that’s possible!

TextWrangler/BBEdit can open files per sftp (via ssh). This set of tools allows it you to launch edit on a remote server, but your local TextWrangler/BBEdit opens the file.

Get it here: TextWrangler remote control

BBEdit: I haven’t tested it, but it should also work. (I do not own BBEdit)

New getopt for php: getopts

I don’t like php’s getopt function, because it’s too crippled.
I’ve started a write a replacement function.
It has more options, is easier to handle and returns all non parameter arguments.

Fell free to use or improve it:
Code / Docs:

Update 2011-04-19: Added License and a small improvement.

Apples Integers

I was wondering whether I should use int, long or NSInteger. It took me a bit but I figured it out!

On OS X and iOS the following table shows you the the size of the types:

char       8 bit
short     16 bit
int       32 bit
long      system size
long long 64 bit

So, on 32bit OS X long is 32 bit, on 64bit OS X it’s 64 bit (unsure for iOS).

NSInteger has always the size of an pointer.

Often asked: “Use int or NSInteger?”. Answer: use NSInteger for pointers, ok usually you should use the pointer type itself, and for everything else use the size you require.

If you want exactly 8 bits, use int8_t for sigend or uint8_t for unsigned, for an integer which has at least those bits, use (u)int_least8_t (analogue for 16/32/64 bits).

Performance: you can use (u)int_fast8_t for the fastest type, which can hold (u)int_8_t. But since (u)int_leastY_t and (u)int_fastY_t are defined as (u)intY_t on OS X and iOS it should make no difference. I use the direct types for when all the bits are used, and the fast types when I don’t use exactly but less bits.

At last: don’t forget the LL or ULL suffix for 64bit constants (you can use (U)INT64_C(num) for always the correct suffix, also for 8/16/32), and the “%lld” in a formatted string for 64bit variables.
(example: NSLog(@"number: %lld", 1LL << 48);)

If you have more information or maybe corrections, please post a comment.