Subscribe via RSS
24Mar/260

Sharp X68000 Pro – RAM + HDD + Power

I couldn't believe it. seeing a full set X68000 Pro on the shelf at the Ota Road Super Potato in Den Den Town, Osaka. Of course, the staff instantly told me it was for display only and didn't work! The story was that they'd bought it a few years back and it worked then, but since had stopped working. The monitor was fine, but the main CPU was not turning on. It was therefore 'KAZARI'... decoration.

I was happy with decoration, for the price. Shipping was to be another concern. Fortunately, Super Potato is partnered with a logistics firm upstairs and Mori-San and X-San helped describe the process to me. I'd buy the unit on the day and wait until after Golden Week for them to contact couriers and provide a quote. I'd then pay via Paypal and they'd ship the unit to me! Easy!

To be honest, after turning on and playing a few rounds of Bubble Bobble, the poor thing has been sitting as KAZARI in the corner of my study/office for quite a while. I recently made a 3D-printed bezel cover for the monitor, which doesn't look too bad, and somehow, recently, have decided I either need to move it on... or actually learn how to use it!

The machine works great... floppy games load fine... but that's not fun-n-technical enough... I want to use HDDs, CDs?, MOs? and work out what that CPU Clock Switch does... and how to use the memory cards. Also, can I rig up an ethernet to serial adapter to get data transferring over to it a little more easier? Maybe even use a BBS?

Random Access Intricacies

Understanding RAM in an X68000 is mildly difficult. It seems that, nearly akin to an Amiga, there's a clear distinction between system/onboard RAM and extra supplementary RAM. I suppose that goes for PCs too with conventional vs. extended RAM, etc... Anyway, to use any I/O slot memory expansion boards, the base system needs to have 2mb of internal memory. From the factory, X68000 ACE, PRO and PROII systems only have 1mb and so a CZ-6BE1A module is required. Fortunately, this machine already came with the module installed!

With 2mb onboard, you can then tinker with I/O slot memory cards. I was googlin' at some point and saw a good deal on an XSIMM10 card, so I bought it! Little did I think to check the blank plates on my machine to see if I already had one? How hilarous.

Left-most above is an I.O Data PIO-6834-4 4mb memory expansion. There's a jump block to set where this memory starts in the memory map. Since we've got 2mb onboard, this card must start straight after that and provide another 4mb, taking the machine to 6mb.

The other board above is a XSIMM10 memory board which will allow up to 10mb of memory to be added! These cards can be configured to place the two pairs of memory wherever needed. Interestingly, the configuration examples show a 4mb "system" area above the 10mb additional RAM? Does that mean these cards can be used together?

In the end I only used the XSIMM10 with the full 8mb populated to bring the machine to 10mb.

SASI/SCSI HDDs

There's a great tutorial here for setting up HDDs. It seems tho, that you're expected to use one of the devices specified and not just boring old spinning-rust. I tried three external SCSI drives that I had laying around, connected to the 50-pin SASI centronics port and couldn't get any of them to work. Anything from stalling INITs to "device not operational" to "cannot xxxx".

After trying the units above, I turned to the internet and sought help. This magical post indicates that not many SCSI drives are compatible and for those that are, they need to be able to have parity disabled. I don't even know what that is! That flat beige unit above has an ST11200N inside... and it seems that parity should be disabled by default. I popped it open and found...

Further goog'lin brought up this excellent article at gamesx... and that last little paragraph is a killer.

SASI models will be somewhat limited in terms of what drives can be used. First and foremost you'll need a drive that doesn't require parity (if you don't want to build the parity faker circuit). Even then, you'll run into plenty of drives that just won't work even though they can have their parity disabled.

There's a table there with two 1GB drives listed... and they're both listed as no-worky. The table also lists the Quantum ProDrive LPS42S as 'working', and I have two in my HDD box'o'junk!, so I tried them all out. After a lot of tinkering, I couldn't get any of those to work either. So, I tried my SCSI2SD. It also showed no signs of life, until I jumpered the Termination Power pins!

The best thing is that I have a terminator with an LED in it, no idea where that came from, which shows me if the bus has power on it. Without that light, the SASI bus won't see any drives as it doesn't provide the power itself.

Of course, if I'd read the bloody manual earlier, it would've been obvious from day one:

    Sharp X68000
        SASI models supported. See gamesx.com for information on building a custom cable.
        needs J3 TERMPWR jumper
        Set to SCSI ID 3. ID0 will not work. 

Ok, we're learning. From here, with the drive initially as ID 0, the machine would freeze if the drive was already powered on before the machine was started. So, instead, I started it after the boot process.. allowing me to format it! I then set the drive back to ID3 and, after following these instructions, I installed the SxSI BIOS in SRAM and the machine booted from the drive!

So, with this now understood, could I get an older drive to work? The Conner 3040 42mb Drive supposedly has Termination Power and Parity options. With this drive connected... the terminator light... didn't light up?

So, can we inject terminator power? In the SCSI2SD schematic, they're just feeding +5v into pin 26 on the SCSI cable, but then also providing 3v3 to the termination resistors... does my "active" terminator with the LED also do the 3v3 conversion and just needs the 5v power rail?

Actually, we can test this using a better method first. Let's leave this unit on the SCSI chain, but set it up to some higher ID and then slap the Conner at ID3 before it.

What about running floppy games from the HDD?

Yeah, this was confusing.. until I google'd and came across this link. Wow. You can just run the autoexec.bat from the folder? Works for some games... not all.

Bubble Bobble ran .. but sounded totally weird! I then delved into the world of X68000 Music Drivers, realising that the bootdisk had OPM3DRV loaded first. When I then ran autoexec in the bublbobl folder, it loaded GMD68K.r over the top and ... haha ... What a symphony! It seems that loading two drivers in sequence causes all sorts of issues. I then tinkered around by installing the Roland MIDI Card, trying to see if it'd work on MIDI. Turns out there's absolutely no setting to enable MIDI... and then it actually stopped playing music altogether?

Overclocked? Me?

Turns out the previous owner already had an overclock switch/mod installed which toggled between a 40mhz and 60mhz crystal and that I'd accidentally flicked it! It's hiding at the right edge of the top expansion slot cover.

Internally, there's a piece of veroboard with some 74-series logic to allow a solid-state selection of which crystal to use. Above, if you check out the first photo in the RAM area, you'll see where the twisted-pair blue wires run to where the original 40mhz crystal would have been on the mainboard. The other wires run to one of the front-panel LEDs.

This switches the internal system speed between 10mhz and 16mhz (thanks to clock dividers) and Bubble Bobble hates this! I must admit that I'd seen the internal wiring and obvious mods, back when I first received the machine, but never cared to think what repercussions could be caused by flicking it! Turns out that games for the X68000 are very fixed on expecting a 10mhz clock and that Bubble Bobble's sound driver HATES 16mhz.

So, what to do? Make AI write a CPU speed detection app. I used the dev environment from Chibi Akuma's Site and saved a screenshot of the site for posterity:

It's beautiful. Anyway, code was 'written':

And it even worked! Thanks Gemini! It's very friendly with you when coding:

The source and binaries are downloadable here.

Power Supply

I started to have a weird boot-loop issue where the machine would click on, but then quickly click off again... and loop at about a 2-second cycle. It sounded bad, but would "fix itself" after a 30-minute cool-down. The worst in me suspected the power supply was going... so I braced myself for impact.

Christ. Those two 3300uf caps are juicy...

Crap photo.. but that 1000uf cap at the back is also ready to launch!

Quick work was made of extracting, cleaning and replacing the culprits...

Anyone who has done this before can smell the above picture. A ionizer in the other room actually turned on thanks to the tuna-flavoured solder-fumes that were wafting through the apartment.

Take it easy when clearing the silicone as there are components buried in it. I had to repair a jumper wire which I'd accidently dismembered. Also watch out for the height of the 2200uf cap which needs to fit under the external power port.

Meanwhile, check out the filter cap on the main-board which was hiding under the power supply? Factory bodge? Seems to be the same silicon!

Programming / Linux?

Maybe it's time for a DOS port of OpenTTD? I could use this gcc compiler? Or this huge repo of sample C++ source? It also seems that NetBSD can be installed, but an MPU is required.

Hah, you can even follow these instructions to run a Macintosh?

Filed under: Retro No Comments
3Mar/260

A-Train (III) – Taiwanese Big Box Edition

This showed up on eBay and I fought a hard negotiation to get my hands on it. It was actually a few years ago... and I've only just thought to open the box and check if the disks work! Actually, the same seller still has another copy of it, and a copy of the Construction Set on eBay... still for crazy prices.

The box is mildly grotty... and it gets worse on the inside. The floppies are white, with quite colourful labels. Very pretty, but they also contained a concerning amount of grime as I spun the disk in the insert.

Initial attempts to read the disks failed miserably. Rawwrite just threw random errors and attempts to clean the disks didn't work. I then googl'd for methods and everywhere just seemed to indicate isopropyl alcohol. Most also came with the warning to NOT insert the disk whilst it was still wet.

... I, of course, didn't bother to wait for the alcohol to dry... instead believing it might also help keep the drive heads clean. Things started to progress and read percentages were starting to get higher and higher, but Rawwrite wasn't fun as there was no mechanism to "retry on fail". That's where IMD came in...

I set the retry count to 200 and let it chugggg.... and chug it did! On the first attempt, it got to the end of the first disk, but, as you can see above, it still failed on 2 of 78 sectors. I thought this was the end, and so I put the disks back in the box and attempted to forget about it.

The next day, I had decided to try again and attempted to image the first disk again with IMD, using the same settings. Would you believe it just worked? No extra cleaning... nothing. It chugged a little and performed a few sector retries, but it got there!

I then proceeded to install the game after writing the first disk to a spare floppy. I'd stupidly only written one disk and started the install... realising that I'd have to use the 2nd and 3rd originals ... but it worked! They'd had a few issues when imaging, but somehow the continual reading must have cleaned them up.

Booting it up...

Everything in the installer felt very stock-standard and I'd therefore assumed the game would be stock A-Train (III) with a spattering of Mandarin (maybe Taiwanese Hokkien?)... but boy was I wrong. They've added two introduction movies and even copy protection!

Here's a shot of the copy protection screen...

And here's where they stored the password on each of the 104 pages!

Turns out the password is a tiny code down next to the page number.

Page Password Page Password Page Password
1 25875522 36 14243140 71 62352272
2 44566583 37 85133224 72 17234771
3 40512782 38 22178342 73 27873449
4 64891227 39 73823428 74 74255934
5 78675662 40 99999887 75 39287474
6 77867901 41 99320300 76 36234550
7 68214782 42 88775227 77 50249444
8 49853011 43 69525288 78 37278465
9 02035103 44 29405864 79 24735836
10 13789344 45 70850613 80 33456220
11 13899239 46 00239333 81 73455398
12 84390523 47 53978222 82 27236748
13 50040624 48 78923234 83 22329223
14 18952636 49 28090230 84 12282518
15 69054305 50 28475225 85 88934394
16 21228041 51 37893410 86 28035258
17 00705623 52 94037394 87 12441523
18 25254987 53 34930563 88 12214957
19 01009344 54 39344380 89 73433924
20 21483224 55 76823322 90 32312330
21 93887144 56 51834345 91 11243238
22 20239842 57 96387544 92 82532741
23 33432022 58 59335520 93 42141135
24 72445256 59 10193113 94 33259738
25 34423425 60 34589996 95 85645716
26 24343902 61 73534569 96 51112158
27 55325732 62 91456792 97 82223373
28 89573497 63 11155014 98 21477212
29 45126456 64 82523976 99 13382228
30 67458981 65 56986069 100 38840892
31 22379296 66 96451236 101 56879571
32 29478247 67 22423329 102 46358761
33 35624354 68 75234252 103 56879156
34 28914467 69 39732523 104 21476212
35 68522276 70 88342579

I'll attempt to hack the code out of the EXE shortly. I did get bored and sent the first 10 numbers to Google Gemini... seeing if it could work out a pattern, but it had zero fkn chance. And finally, here are the disk images in IMD and IMG formats for anyone who wants to play at home. There's also the installed HD folder that you can drop straight into DOSBOX. Also, the EXEs have been unpacked, where possible, to allow better disassembly... when I could be bothered... to try and work out how the copy-protection works... I wonder if it looks up a byte in memory? Or in the EXE?

Filed under: Retro No Comments