Willem Programmer

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

A Guide by Cholo

Quick little guide on how to use a modern (cheap) Willem programmer board to backup your old Amstrad roms or make new ones.


- A Willem Eprom programmer board v3.x or better (+cable & power adapter).

- a couple of empty/erased eproms.

- a pc that has a parallel port (DP25).

Used in this guide

Used a Willem v4.5 board and software 0.98D in the pics, but the other version boards/software works just as well.

Eproms explained short

Eproms is bacisly like a cd-rw .. you can only write to them ONCE .. unless you have special hardware (eprom eraser). So to make it really simple: pretend that you have 16000 dominoes .. and you tip them all at once .. forming a unique pattern that makes a amstrad chip. Problem is .. you can only tip them once.

Amstrad (ep)roms

Amstrad rom are usually 16kBYTE .. so using 128kBIT chips is the way to go. So hunting down a couple of 28 legged 27128 or 27C128 eprom chips (cleaned/erased/empty) and you are ready. Please note that i said USUALLY .. there are a couple roms that has a different size .. still .. you can fit a smaller rom quite easy into a larger Eprom if needed.

I suggest reading about eproms



After reading that .. did you notice the difference between 27128 and 27C128 (The "C" part) while reading that? The "C" part like a 27C128 need 6V .. but the non-"C" part like 27128 do not (only need 5V). But how do you make sure that the odd used chip "pulls" you got cheap off ebay will work ? Use 6V only !

First time install

You have gotten your Willem programmer board and some empty eproms. Lets set it all up. First turn off you pc and remove the power cord from the pc too. Then connect the Willem board using the (hopefully) supplied parallel printer cable (DB25). First install the software (like setup_98d5_PCB45.exe). Reboot you pc and double click the xp_stop_polling.reg if needed (donno about Vista).

Setting up the board vs chip

First you need to find the right setting for your chip. The Willem software will do that for you. So open up EPROMS45 program and click on the "Device select" button then select 27C128.


Then you will get the correct setup for your chip

With a little luck the rest of the setting on the board wont need to be change as the "factory settings" works quite well most 27128/27C128.

But just in case here is a step by step check:


Step 1

change the correct chip pattern to tell the board that we are using a 27C128 chip.

Step 2

check correct Vpp (programming voltage). Note how it usually says on the chip what the Vpp is (see RED circle). 27C128 usually use 12,5V and this is usually the default of the board. Note that you MAY get some chips that require the higher 21V. If you get a chip without visible Vpp try the lower 12,5V first. So far all the chips ive used worked with 12,5V.

Step 3

Ensure that all these pins are in normal chip usage position (normal usage for this chip of cause). This is the default posistions, so with a little luck you wont have to touch them at all.

Step 4

Select software version to fit board (default).

Step 5

Select power source. If your Willem was sold as a "usb"-kit it will most likely be in usb position and if your got a "poweradapter"-kit it will be in that position. Note: if USB cable (5V) is used you can only READ eproms .. to write/burn eproms you will need a power adapter at 9V, 12V or 15V to supply the 6V needed for writing.

Step 6

The "write protection" jumper. Probably the only jumper you actually have to set manually yourself When your are READING your eproms .. make sure to keep this at 5V normal position.

Step 7

insert your 27128 or 27C128 chip like shown. Make sure that the Notch points UP towards the handle (see green circle). Ensure that the chip is inserted at the BOTTOM and that all the chip legs fit correctly. Then press down the handle to secure the chip in place.

Warning: inserting the chip wrongly may damage both the chip and board. Always doublecheck the chip is correctly in place.

Step 8

hook up power source (adapter or usb cable). Again, if you really intend to use the Willem "for real" you will need a real adapter as even tho the usb cable feels like a nice plug and play-ish, its good to have the ability to write too. The "Jack in" on the board seems to be a normal round jack stick like used with most common adapters. Looks like the same jack as used by Amstrad monitors.

Reading a (ep)rom

Once you got the whole thing connected and powered. Its time test everything (if this is your first time better use a empty eprom first )

Better make a quick hardware test:


And you hopefully get a "Hardware Present".

Then all you do is press the "READ" botton and the rom is read in 2-3 seconds. To see what has been fetched click on the "BUFFER" tab below and youll see something like:


Then just hit the "SAVE" button to save the file. The software defaults the save format to a binary .bin file. Note that you may need rename the files after to a .ROM file (large letters) if you want them to be recognised by most amstrad emulators

Writing a eprom

Nearly the same board setup is needed when writing to a eprom as when reading. So if this is your first time using the board, you will need to go trough the same 8 steps. The difference: in step 6 you need to take off the brown jumper to allow the 6V programming supply voltage !!

Once everything is set up and the software is running click on the "BLANK TEST" button to see that the eprom actually is empty. Should it say "not empty" then doublecheck all your board settings .. if you chose a wrong setting like wrong Vpp or the chip is larger/smaller that you think .. it may report back as not empty even tho it actually is.

If the chip gives you a "Device is empty" you can go ahead. Load up the rom you want written (click load) and press "PROGRAM CHIP" to burn. Takes 3-5 seconds as it also does a verify after writing.

Using larger eproms

Yes is also works quite nicely, ive burned a couple of 27256/27C256 myslef. Only had to change the chip pattern (step 1) according to the Willem software. One small hickup is that the software cant burn half a rom, so you will have to make your 16kb rom into a 32kb one first. A quick copy did it for me in Dos/command (cmd):

COPY /B Protext1.bin+Protext2.bin Protext32.bin

Merged the 2 identical 16kb Protext roms into a "double" 32kb one. Works nicely with a Rombo Romboard, tho i dont really know what part of the rom is actually used You can use any other merging software of cause, if the dos/cmd isnt your thing.

General on use of the chip board

Use common sense when operating the board.

WARNING: Make SURE not to access the board from software without a chip has been inserted and locked in place !! It IS possible to change chips while the power is on and the software is open on your pc, but better not accidentally press anything in the software while changing. No reason to power the board unless you are just about to read or write a rom.

Stongly suggest having a look at http://www.willem.org/ to see if i forgot to warn you about something or other. You can also get most of the software there.

And if you cant find the software anywhere else feel free to grab the files from me at:


Got a few other related files in there too.

The Commodore 64 enigma

Yes, C64 carts also use the exact same chip size and type eproms (28 legged 27128/27C128 16kb 12,5V) .. but can the Willem burn them? Probably can .. if the carts isnt encrypted or inverted or similar silliness. I notice that "the commodore store" on ebay is selling 27128 eproms (not erased tho) and other eproms with 28 legs, and so is Alphaworks:



Where to get a Willem

Plenty of sellers on Ebay and they all seem to be located in China (i got mine from there). Make sure to search internalional and youll drown in possible sellers that sells the board at about $22. If you are worried about getting a fitting power adapter it may be worth buying a auction with one included .. you may have to buy a power converter instead. Also dont worry to much about getting a different version board, because even a older v3 board can do the job. Boards can also look completely different even tho its the same version .. all the boards has the same jumper sets .. they just move them around a bit on the board.

Buying clean erased eproms

Ebay is probably the place. Note that 27C256 are cheaper and easier to find than 27C128 ones. Do note that some sellers isnt always the most reliable .. "100% erased and tested" sometimes means the opposite Better buy small quantities first.

Erasing eproms yourself

Quict easy and cheap too. A bit dangerous tho. To erase a eprom you need a stong doze of UV light to shine down the little window in the top of the eprom. The doze of UV light is so strong that should you get some in your eyes you would go BLIND and should you get some on your skin you will get burned. Thats why eprom erasers are always a closed box with a special drawer so you cant accidentally look at the UV bulb. Buying a cheap eprom eraser is easy on ebay too. A quick search for "eprom eraser" will get you a long list with prices as low as $10. One of those cheap chinese ones will do the job nicely, but you may wanna be a little more carefull when handling it. Maybe putting the eraser into a black garbage bag or similar to make sure its sheltered properly (cant hurt to be extra carefull). 27C128/27128/27C256/27256 eproms usually need a doze of UV light for 20 minutes to be completely empty. If you are worried about the whole erasing thing, then maybe it better to just stick to just buying already empty eproms as they are cheap enough.






Q: Im getting a "Hardware Error: Check Power & connection"?

A: Make sure both parallel & power cable is connected and plugged in. Make sure the "power" jumper is set correctly (Step 8 ). Could also mean that the board is dead.

Q: Im getting a "Device is NOT Empty ($000000)" error?

A: Eprom appears not to be empty and it is likely to happen if you buy used chips. Could also be a wrong setting setting with either chip patteren or Vpp (step 1 & 2).

Q: I programmed a eprom and everything seemed fine, didnt even get any errors, but when i use the rom in my romboard it dosnt work?

A: Probably a size mismatch between the .ROM file your burn and the chip size. The software dosnt warn you in any way, so if you accidentally load a 16kb rom file and write it to a 32kb one, everything will appear to have been written ok .. but it really hasnt.

Q: I pressed the Program button and everything started ok, but suddenly got stuck at 1-2%? Also im getting a "Error at 0x0001F3 Chip = 0xFF Buffer = 0x18" ? (or similar message).

A: Supply voltage seems to be to low (step 6). Check that the jumper is off so you get the full 6V. Note: you can do this while the power is still on, and save your burn by repressing the program button .. it should continue programming the rest of the chip.