This web page is a part of buffi's web ring
Categories
Old Hardware Retro Computers

Fun with CZ-6EB1 : Sharp I/O Expansion Box 

Have been looking for one of these for a while, and finally managed to buy one for a mostly OK price. Here is a writeup on these things since there’s not that much available online.

High level features

CZ-6EB1 expands a two-slot X68000 into a four-slot computer, by plugging in an expansion card into the X68000 which routes two flat cables to a breakout box containing four IO slots. This likely works similar to how it’s done in a X68000 Pro.

This box has a separate PSU for the four cards, since powering the cards over the flat cable would not be feasible. This PSU will only power the card when power from the host machine is detected, otherwise the device stands in “standby” mode.

I bought a photocopied manual for these in a separate auction, which I’ve scanned and made available here.

Internals

The IO breakout board which plus into the host machine has only two connectors wired to the edge connectors. There’s no other circuitry on these.

These plug into the main board of the CZ-6EB1, which is called K5414DE. This board has a section near the flat-cable connectors which seems responsible for switching the power to the I/O cards on/off. There are two CK2605 PLD’s at IC1 and IC2, which I should probe with a logic analyzer and dump at some point.

I suspect the IC2 is responsible for the power management, while IC1 handles IRQ/ACK signals across the four slots somehow similar to how it works on the X68000 Pro.

There’s nothing particularly interesting about the PSU. There’s quite a lot of glue on some of the caps which makes recapping awkward but doable.

Recapping / cap-list

I decided to recap this thing, and found some sketchy looking caps which had started to leak so that was a good idea. The full cap-list is below. Something mostly similar in size will work, since there’s a lot of space available.

PSU

CapCapacitanceVoltageDia x H (mm)
C706330uF200V30×26 (snap-in)
C70922uF25V5×11
C7104.7uF50V5×11
C7143300uF10V16×30
C7153300uF10V16×30
C7163300uF10V16×30
C7182200uF6.3V13×20
C719470uF16V10×20
C7204.7uF6.3V5×11
C7212700uF25V16×30
C724470uF16V10×20
C725470uF35V10×30
C72622uF25V5×11
C728100uF10V5×11

Main board

CapCapacitanceVoltageDia x H (mm)
C1100uF10V5×10
C2100uF10V5×10
C347uF16V5×10
C447uF16V5×10
C510uF16V5×10
C610uF16V5×10
No cap

Hooking things up

Getting things working on a regular 10Mhz X68000 is quite simple.

  • Plug the card into Slot 2 of the X68000 and mount the back cover
  • Connect the FG terminals on the X68000 to the CZ-6EB1
  • Insert expansion cards into CZ-6EB1
  • Power on the CZ-6EB1. It should have a red LED indicating standby
  • Power on the X68000, the CZ-6EB1 will wake up as well.

RAM incompatibilities

When connected to a CZ-600, I could plug either a XSIMM10 or a Etarikashikoshi into the expansion unit, and have them be detected and work properly when running Memtest. Using a Nereid as RAM expansion did however NOT work, and kept giving me memtest errors. It works fine without the expansion box, so something was weird there.

With a X68030, I was unable to get any RAM card to work through the expansion box. The memory gets detected, but memtest shows failures, and games will not run well.

The manual only states that CZ-600 (10Mhz) is supported, and I could definitely see the higher clock rate causing these issues somehow.

Using other I/O cards like MIDI did work with this when connected to a X68030, but since the manual states that the internal Slot 1 cannot be used when the CZ-600 is hooked up, this limits the system to the internal 4MB RAM. Maybe that can be worked around somehow. Not sure.

Should you buy one / Other options?

Buying one of these is only really worth it for the “cool factor”, since it looks awesome next to a X68000. It being limited to 10Mhz for RAM means that the more sane option for having four slots is just to buy a X68000 Pro, which will cost less than just the expansion box.

Another four slot option is “Xpander IV” which extends the XVI Model with an internal four slot expansion. This looks real cool, but was not an official product and seems extremely rare. See: https://akiba-pc.watch.impress.co.jp/docs/wakiba/find/745817.html

Potential future projects

I haven’t seen any real documentation on how the conversion from two to four slots actually works. There’s a japanese blogpost which shows a DIY option, and references “Monthly I/O October 1991” as having some information. That would be nice to track down. Otherwise I might just see if I can reverse engineer how this thing (or the X68000 Pro board) works.

I am also curious if it would be possible to use this, while having RAM connected to the internal Slot 1 of a X68030, and that way bypassing the RAM issues. The manual does explicitly state to not use that port when the IO box is in use, so this is unlikely to be a good idea. Additionally, physically fitting a card in there is tricky when the IO-box extension is in place.

Categories
Old Hardware Retro Computers

IRC on X68030

Went and bought something silly for my X68030, a old Nereid card which extends it with USB and Ethernet.

Setting it up was surprisingly easy. Loaded the drivers in the included floppy and followed these instructions, and everything just kindof worked for Ethernet right away.

Have it hooked up to my router and could jump on IRC with the CLAT client.

Pretty happy with this, and sortof want to keep using this as a IRC chat device for the fun of it. Will have to swap out the fan for something more quite though since the X68030 still runs on original power supply with a fan that’s a bit too loud for me to want to have it on all the time.

Messed around a bit with the available web browsers, but honestly… they’re not really something that’s particularily usable. IRC is neat though, it’s been a while since I’ve been using that.

Still need to mess around with the FTP software for X68000, since that might actually be kindof useful. Currently I’m transmitting files to it by modifying the HDD image loaded through BlueSCSI. I’m not sure using FTP is much better, but it’s at least a cool option!

Categories
Old Hardware Retro Computers

Repair of X68000 Pro

Bought a cheap X68000 Pro a while ago to restore.

Was expecting it to be non-functional and broken, and it was. It was also impressively filthy. Check this out:

Before

Outsides and insides were… very dirty. There were remnants of an old overclock mod which was partly disconnected.

Floppy drives were not present. Neither was the power supply.

What was however present was this sick as fuck homemade RAM card. Look at this thing. Home etched!

Cleanup and recap

Before I could really do anything with this thing, I had to clean out all the dirt, so it was bath time.

Things cleaned up nicely!

As mentioned, there were some partial overclock mods that had to be removed. In practice this meant rewiring a lifted pin from the CPU clock, and bridging a cut trace which was related to the second oscillator for the IO board.

I tried booting things at this point, but things were very dead, so I just skipped right ahead to doing the recap and battery swap here as well to exclude simple issues.

Booting and PSU

With the regular IPL, the system would not boot at this point due to the missing floppies, but with a custom IPL installed, the system would now boot fine from SASI. Very nice!

For the missing PSU, I scavenged some old replacement boards I had around, cut them a bit smaller and made a plastic bracked for mounting a Pico-ATX in the case. Turned out OK.

I decided to not have an internal DC converter, and instead running the device off 12V DC, so I 3d printed a small holder for the connector which turned out well.

Extras

Since the device only came with 1MB RAM, I added an internal 1MB expansion as well as a 8MB Polykubos RAM+Midi card.

For Booting the system, I use a Bluescsi V2 Centronics version. The X68000 Pro does not provide termination power over the SASI port, so I went with a slightly hacky fix of just adding a 5V connector through a hole in the back of the case.

Case cleanup

Stickers were removed by a combination of violence, IPA and scrubbing with a soft brush. Case was washed off thoroughly. IO covers were 3d printed. There’s a few deep scratches but other than that, things look pretty good now!

Final thoughts

There were no real setbacks in this restoration, unlike the Compact I worked on previously.

While there were still a lot of steps to perform to get everything up and running, it was mostly smooth sailing, and I could chip away at it on evenings when I had some spare time.

The lack of floppy drives isn’t too much of an issue to me, since I sortof don’t want to deal with 5.25″ floppies unless I really have to, and the custom IPL allows me to bypass the need for a Master Disk since I can just run SWITCH.X from SASI.

10MHz with 10MB and Midi should be sufficient, but I could look into doing a 16Mhz overclock at this at some point.

Overall a fun and satisfying project.

Categories
Old Hardware Retro Computers

Advanced repair of a X68000 XVI Compact

A few months ago I found an auction for a broken X68000 Compact, which was listed at less than 40,000 yen which is significantly cheaper than what a working Compact would typically go for now, so I took a gamble and bought it to repair.

Getting it mostly functioning took a few weeks, and more work than I expected, so I’m doing a writeup of that here. Since I don’t have much experience repairing these, I took some detours along the way that could have been avoided.

How it arrived, and initial debugging

I was quite pleased when it showed up, because the external case looks nice! There’s only minor scratches. The motherboard had been recapped and the SRAM battery replaced with a coin-cell. The motherboard looked pretty clean, but had a 40Mhz oscillator replaced with a socketed 48Mhz oscillator, which I guess was some sort of overclock.

I replaced the PSU with an ATX-adapter to eliminate that as an issue (since x68000 power supplies are known to be problematic) and restored the motherboard by placing a 40Mhz oscillator like the one that comes stock.

The machine appeared to power up, but soft power on/off did not work, and nothing was being output to the display. Probing around the video out circuitry showed that no sync signal was being generated, and that it was not just a faulty buffer. Things looked pretty dead.

Checking BIOS ROM

My initial guess was that it might be that the system failed to boot due to problems with the boot ROM, and that’s fairly easy to check. I desoldered the ROM with the BIOS and verified it against existing dumps in MAME.

Everything looked good, so this didn’t seem to be related. The memory area where the IPL (BIOS) lives matched the existing dump perfectly.

Probing around CPU and RAM with Logic Analyzer

I then took out the oscilloscope and started probing the CPU pins to see if anything looked unusual. It became clear that HALT was being asserted after only about 1ms, which after some digging into the datasheet either indicates that the CPU is trying to execute an illegal instruction, or that some other device on the motherboard asserts the HALT pin.

When connecting a Logic Analyzer (Saleae Logic Pro 16) to the CPU address bus, I could see it failing after a read of FF0636 where it would start failing. Decompiling the BIOS in Ghidra shows that this is a RTS instruction, which means it tries to get the return address from the stack in RAM which supposedly fails. When probing the RAM, I could see that only two of the four RAM chips were getting CS pulses, indicating that something was broken there. The lower byte was being read but not the higher one.

Since this logic analyzer only has 16 channels, I could not fit the entire Address bus when looking at things, so I had to do multiple sweeps to both check the high range being accessed, and then the more exact position. Since the failure was reliable, this was fairly doable, but if I had 32 channels things would be a lot easier.

To illustrate this further, the first image below shows that the Address has the higher bits set to 0xFF0, and the second image shows 0x636 (and 0x638) for the lower bits.

I do recommend this logic analyzer in general since the software is really great, but for these particular usecases with large address buses, I would probably have preferred something with more signals.

(Detour) Forcing 16-bit reads/writes

Since X68000 is a 16-bit machine, I naively thought that I could just tie the CS signals of all four RAM together (lifting the CS pins of the higher 8 bits), which should allow the code to read the return address from the stack correctly…

… and this worked! Kindof. Instead of halting after 1ms, it would now halt after about 22ms instead.

Connecting the logic analyzer again shows that it now crashed at FF4E7A which is the first time a move.b instruction is executed to read from an uneven RAM address, doing a 8bit read instead of 16. This one asserts UDS but not LDS, meaning that my forced 16-bit reads would not work since they assumed LDS was set.

I did try to work around this by also doing 16-bit reads for these, but then realized that 8-bit writes would now also write the byte that should not be written, so this was a bit of a waste of time.

Actually figuring out the RAM issue

Since no schematics for this exact model exists, I had to do some guessing based on other X68000 schematics, but managed to locate how the LDS/UDS signals are tied to assert the CS on RAM (through the ASA Custom IC).

LDS and UDS go to a buffer at IC84 which connects to the ASA. The buffer itself seems to work fine, but the ASA was not getting a signal for one of the bytes, which seemed to indicate trace damage. From looking at the schematics for non-compact XVI, I patched this up and now the system would boot! Two traces were apparently busted.

Ignore the flux that hasn’t been cleaned up below. It’s fine now 😉

I could now run memtest from SCSI HDD and verify that the system looked OK!

Stuck again when booting games

Floppy drives seem dead, but I could boot a SCSI HDD image now, but when trying to start games, I would get stuck when loading the sound driver.

When looking at this in a logic analyzer, I could see that the CPU was not in halt, but repeatedly trying to read from E90003, which is the address space of the FM audio. Looking around the relevant code in an emulator, this seems to be a loop which repeatedly reads from there until a non-negative value is returned.

042608 tst.b $E90003.l
04260E bmi $42608

… so something else is busted

Fixing the FM audio

I connected the logic analyzer to the FM chip and noticed that despite CS being asserted, RD was stuck high (WR would trigger along with CS though).

This seemed to be fed through a 47LS486 which is a real weird chip without much info… except from in the x68030 compact data sheet where a description exists. In practice, it will just act as an inverter for WR. The relevant output seemed busted though, so I solved that by slapping a LS00 NAND gate on top of the buffer for the relevant signals (while lifting the pin from the 47LS486)…

… and this worked! Games now boot and runs flawlessly!

Replacing the PSU internals

X68000 power supplies are usually problematic, and I don’t want to deal with stepping down 230V to 100V if I don’t have to, so I wanted to do a PicoPSU ATX conversion and drive the Compact from a 12V DC adapter.

There’s many ways to do it, but I had spare PCBs of the PicoPSU V3. These don’t really fit in the Compact PSU case, but some violence later and things were in place. The parts that were broken off are related to soft power only, and don’t carry any real current.

Then there was just the puzzling together of parts…

Everything works!… kindof

Now the Compact boots games and plays them fine, but there’s still some lingering issues. 16Mhz mode doesn’t work, and neither does the floppy drives. In practice I don’t think I really want to deal with floppies when I can SCSI boot so that’s pretty much fine. Having 16Mhz mode work would be nice though. When enabling it, the 16Mhz LED handling works correctly and the CPU gets the right clock, but still it wont boot. For now I’m ok with only running on the “default” X68000 speed though, but maybe I’ll go back to this later.

I’m gonna call this one a win 🙂

Categories
Old Hardware

JVC DT-V1710CG Repair

A month or so ago, someone was selling a broken JVC DT-V1710CG for quite cheap an hour or so from here by car. These are quite exceptional pro monitors that work with everything from 15khz up to 720p/1080i high definition signal. They also handle 24khz from old Japanese computers very well.

Road trip!

I already own one of these, but would like to own another one, and my thinking was that having a working one as reference should help with repair (it did).

When connecting it up, it was indeed quite broken. Colors are completely messed up, and the beam wasn’t firing at all times leaving empty gaps in what was being drawn. Sync appeared fine though since picture was otherwise stable.

Poltergeists live here

I started by dissasembling the entire thing to have a look at the internals for obvious things that could be busted. Overall, the condition of the internals wasn’t too bad. I had never dared dissasemble the existing one I owned, so it was also nice to learn how to do that.

Tube!
Expensive puzzle!

Something I noticed pretty quickly when taking it apart was that there was a burnt looking spot around a voltage regulator on the signal board of the machine. I made a note about this, and put the monitor back together again. Once mostly reassembled, I tried swapping signal board with my working monitor, and it became clear that this was the problematic board of the monitor, since image was fine once swapped (and the known working monitor started displaying same issues).

Swapping boards
With working signal board

I desoldered the regulator and tested it on my bench, and it did indeed seem to be busted, pushing out higher voltage than it should. Swapping it out for another one did however not fix the issue with the image.

Burned regulator
Had to use hot air for these. It’s sortof a pain to do these replacements

Scoping the HSync and VSync of the neck board showed that sync signals were indeed fine, and since the microcontroller seemed to function well with the menus, I assumed the problem would be somewhere on the area of the board housing the TA1276AN RGB processor.

Sync is fine

I initially thought that the RGB processor would be the faulty part, since the image was overall messed up and not just a single color being faulty, so I desoldered it, mounted a socket for a new one and sourced one on Ebay. This turned out to do nothing, so that was some wasted money and effort.

Desoldering these are also very awkward
Now with socket!

At this point, I wasn’t really sure which part was messed up so I scoped around a bit and noticed the crystals near the processors did not show stable oscillations. I decided to swap them and most easily accessible capacitors. In retrospect, it’s unlikely the crystals were at fault, but it was a cheap and quick swap so why not. I left some capacitors near the socket, since replacing those is very awkward (mistake).

No cap

This recap made major progress. Image was now looking great… but lacked green. Scoping showed the green output being sortof present, but looking very different and lower in signal compared to green and blue.

No green 🙁

After getting sidetracked a bit looking for bad transistors, I realized that one of the capacitors I had not swapped was connected to “G S/H” on the RGB processor. Swapping that capacitor to a new one fixed the issue, so that one was definitely messed up. Likely at least one other significant one was as well which caused the other issue.

So many colors!

With it swapped, image is now very solid! Looks like this monitor has lived a hard life, since the hour count in service menu is maxed out 🙂

Counterstopped

I’m not very experienced working on CRT’s, so this was a fun project, and now I have a very nice monitor for my test bench!

Categories
Old Hardware Retro Computers

X68030 SCSI Adventure Part 5

This is just a small follow-up to the earlier posts, but I noticed that my Henkan Banchou was running real slow on my X68030 for some reason, so I tried swapping it for a old BlueSCSI V1 and that works much better.

I assume V2 would be the same, but this was all I had at home.

Some people seem to swear by Henkan Banchou, but it just wasn’t playing nice for me. As a fun thing, I’m trying out one of those Micro-SD card extenders now too, and routed that out the back of the unit. Makes it easy to swap cards, but realistically I don’t think I’ll do that much.

I’ll keep it like this for a bit and will then just use a regular Micro-SD card.

Categories
Old Hardware Retro Computers

Proper TTL sync signal on older X68000 models

Older X68000 models have a sync signal which is open collector, generated with a LS06 with 1000Ω pullups for the hsync/vsync signals. This doesn’t play very nice with devices such as Extron converters, and probably a bunch of other hardware.

Later models instead use a LS04 which outputs clean TTL sync, which Extrons will happily eat.

Since these are mostly pin compatible, I assume it would be fine to remove the pull-ups resistors (R26, R27) and swap in a LS04 (IC3) into my CZ-600C, so I tried it out. The only 04 IC I had at home was a SN74HC04N, but I assumed it couldn’t really hurt to use that, and it did indeed work great, and my X68000 now syncs with my Extron perfectly.

On my model, the inverters of the IC are connected to a pin of the stereoscopic 3D port, and to the “Hig Res” pin on the LED board connector. The LED works fine after the swap, and I assume the 3D port should as well, although I don’t see myself using that.

Overall I can very much recommend this mod.

Categories
Old Hardware Retro Computers

X68030 SCSI Adventure Part 4

For context, I recommend reading part 2 first.

Given what I learned from the first iteration, I made some changes and now have an internal SCSI adapter for X68030 that I’m happy with.

Available on github.

Now HDLED is supported as well without any extra circuitry. Just run a wire to the SCSI-SD Adapter.

Quick video showing the HDLED working:

I am quite happy with this now, so I don’t expect further updates on this project.

Categories
Old Hardware Retro Computers

Notes from building a Midiori Midi card for X68000

I recently put together a Midiori MIDI card for my X68000, and the process was a little bit complicated, so I thought I’d write down a quick summary if someone else is interested in doing so as well.

Making the bare PCB

This one was straight forward, nothing special here.

  • Clone the Github repo
  • Open midori.pro in latest Kicad, go the the board file and Plot the Gerbers (and drill files). I got some warnings about it updating files due to them being created in an older version, but looks like that didn’t matter much.
  • Zip up and send to board fab of your choice. I used JLCPCB.

I decided to be cheap and not use gold fingers or tapered edges.

Sourcing parts (BOM)

The non-passives are:

For passives, I already had these at home, but should be easy to find.

  • C1 – C2: 4.7uF ceramic capacitors (0805)
  • C3 – C23: 0.1uF ceramic capacitors (0805)
  • R3: 10k ohm resistor (0805)
  • R6, R9: 220 ohm resistor (0805)

Building the FPGA Bitstream

I didn’t see any bin file for the Bitstream, so I compiled my own with the provided files in the repo (gateware/) folder.

You can download it here if you do not want to build it yourself.

Otherwise the instructions follow. This was quite a few steps. I did this on Windows.

  • Install Python 3 if you don’t have it
  • Install Migen
    • In a terminal: pip install migen
  • Install yosys (OSS CAD suite)
  • Build:
    • You should now be in a terminal with [OSS CAD SUITE] as prompt prefix.
    • cd to the midori repo.
    • Run: python3 gateware\midiori.py sim
    • then if no errors: python3 gateware\midiori.py build
    • This will generate a top.bin file in build/ . This is what you need to SPI flash to U2.
    • Take this file and pad it at the end with 0xFF bytes (I used a hexeditor) until it is 1048576 (0x100000) bytes long, which the Flash expects.

Write FPGA bitstream to Flash

If you have a favorite SPI Flash setup to use… then do that. Write top.bin from above to the AT25SF081B.

I used a Tigard device together with a sketchy adapter I made from stuff I had at home, see pic below. You might wanna get something nicer.

Then on OSX, I installed “flashrom” through homebrew by running brew install flashrom.

Then to write the file to the FPGA, I connected things and ran

flashrom -p ft2232_spi:type=2232H,port=B,divisor=4 -w top.bin

Soldering

Not much to say here. The FPGA has tiny pitch, so be careful and use magnification. At least on the revision (2.2 2020) that I soldered, U2 is oriented the other direction than other IC’s, so check for that.

Categories
Old Hardware Retro Computers

X68030 SCSI Adventure Part 3

Well… I figured out what the SCSI ID switch on the back of X68030 does, and uuuuuh.

I was a bit confused what the idea of that was, since there’s a SCSI_ID setting in SWITCH.X already which seems to select the SCSI ID of the computer.

So here’s the relevant part of the schematic of the SCSI IO board.

So it’s connected to pin 1-3 on the HC connector… what does that map to on the motherboard?

Absolutely nothing apparently. Pretty weird. Turns out the switch is just chilling there, not hooked up to anything then.