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?
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?


Melbourne BG SCS Train Timetable 


