back to Casiorama  

Welcome to Casiorama Trying to reach me?
Some people say I should play the instruments instead of digging inside their hard- and software. Maybe they are right - but on the other hand, only if you learn it the hard way you will be able to repair and maybe upgrade your machinery.

Anyway, here are some bits & pieces about the Casio FZ-1.

Suggestions, questions, acclamation, or simply curiosity about who that guy is you might want to place here:

To fight spam, I'm running RBL-based filtering and Greylisting, so if your ISP's mail server is blacklisted or doesn't play according to the SMTP RFC, you might encounter bounces.

Service Area Technical Information
ROM Dumps
ROM #1 (FZ1S)
ROM #2 (FZ2S)

How to replace the FZ-1 disk drive by an ordinary 3.5" PC HD drive or adjust the FZ-1's drive's rotation speed

When your FZ-1 keyboard jams the whole machine...


Upgrading your FZ-1 to 4 Megabytes using standard 30pin SIMMs (case study)

Adding an IDE-Interface to your FZ-1 for (easy?) hard disk access (case study)


Change the FZ-1 drive to match a PC drive's rotation speed. That way you can easily read/write FZ-1 disks on Linux systems the following way:

  1. Create an according disk device, e.g. mknod /dev/fd0fz1 b 2 40
  2. Configure the device: setfdprm /dev/fd0fz1 ds hd sect=16
  3. You can now dump disks using dd on /dev/fd0fz1 (bs=1024, count=1280)
  4. Also low-level formatting works using superformat, however for proper formatting formatting you also need to write the three management sectors. Without that, the FZ-1 won't recognize the disk as formatted.
  5. (2017-07-21)


The FZ-1 Toolkit: Reading and Writing FZ-1 disks under Linux (heavily alpha, includes handling of FZF dumps)


Change a PC disk drive to read original FZ-1 disks


Schematics, Service Manuals, Software Documentation of ICs OS Documentation I/O memory map

The lower I/O memory area is divided into 16 chunks of 8 bytes created by a 74HC154 as follows:

  • 0x00: GAA
  • 0x08: GAB
  • 0x10: FDC
  • 0x18: I/O1 (72065 #1)
  • 0x20: I/O2 (72065 #2)
  • 0x28: n/a (hack our own stuff here ;)
  • 0x30: SCSI (FZ20m only)
  • 0x38: SCSI (FZ20m only)
  • 0x40: STB (external port enable)
  • 0x48: n/a
  • 0x50: n/a
  • 0x58: n/a
  • 0x60: ADST (A/D conversion start)
  • 0x68: ADRD (A/D conversion read)
  • 0x70: LCDWR (write to LCD "GAL")
  • 0x78: LEDWR (LED latch write / 74174)

Plenty of space for hooking in own extensions! As can be seen, SCSI occupies 16 addresses in total in order to fully access all MB8932 registers.

Unfortunately, 0x80+ is decoded rather wasteful and only contains the four DCF write enables:

  • 0x80: DCF1 write
  • 0x82: DCF2 write
  • 0x88: DCF2 write
  • 0x8a: DCF4 write