Commodore LCD :: ROMs

For getting the original ROM images of Commodore LCD, visit this page.

I often write that the purpose of my emulator is to be able to emulate the Commodore LCD on its hardware level, so the unmodified/unpatched ROM images (of the original Commodore LCD) can run with it. However I cheat a bit currently at least, so it's not entirely true. Let's see they whys.

Problem of the missing character set ROM

It seems we miss the character set ROM :( So currently I use a not so nice solution (which means I cannot use entirely the original ROM images as I miss one ...) the partly complete character set from KERNAL and create the alternate (upper+lower case) charset by relocating capital letters and using some random Internet resource to get some 6*8 charset for lower case characters :-( It won't affect the emulation otherwise, just not so nice to use solutions like these (also what you can see on the emulated LCD is not entirely the same as on a real CLCD because of the other char matrices).

CLCD init problem

Currently this is only the place where I modify the original ROM used in the "generic" emulator. It affects two bytes only in the KERNAL image.

The exact problem: Commodore LCD is designed to always power the RAM from battery even if it's "switched off" to retain the state of the machine, and data (especially the RAM disk - "virtual 1541"). As a JavaScript based emulator can't be used too much (maybe later, with HTML5 local storage, but still, there must be the initial program when you try it first time) in this way. Commodore LCD kernal seems not to care too much if there is no reasonable state, and skip many part of eg even memory init routines so odd things would happen otherwise. It surely gives you warning on the screen but I couldn't find out what a user can do in this situation (it would be interesting to know what happens with a real Commodore LCD eg if battery is flat, or memory is corrupted by a misbehaving software or so).

What I did is to replace a BNE xx opcode with two NOPs, so the initialization is always done.

My test ROM

I have my own ROM to test things. You can see it in action on this page. Please note that this mode is optional, normally you should use the original ROM images, not this version of the emulator!