Subscribe via RSS
15May/200

Zorro II Cards On The Amiga 500

The next build for my Amiga 500 was a Zorro II Card Slot Adapter. This unit uses the expansion slot on the left-hand side of the Amiga (just like the external IDE adapter) and provides a vertical slot to plug your Zorro II card into. It also has a standard floppy power plug and circuitry to choose this supply if provided, otherwise use power from the Amiga itself.

DSC00013

The collation of parts was pretty straight-forward, and I only made one mistake! The relays I'd purchased were much too large for the PCB holes.

DSC00018

DSC00021 DSC00024 DSC00028

So I used a relay I had on hand. It didn't work once soldered and tested... it was rated for a 24-volt input! So I went ahead and re-ordered the correct part.

DSC00098

Next up, I used a spare molex power supply plug to make powering the card a little easier...

DSC00036 DSC00037 DSC00041

Final notes when building... after you've soldered nearly 200 joints, go over them all with a magnifying glass...

DSC00375

It's really easy to miss a soldered join when the plates on the PCB are so shiny... also when the lighting above is LED and the reflections of the melted solder look more 3D than they really are! Fully inspect each joint, otherwise you'll get grey screens, white screens and even half-booting!

The shot above shows one of two pins that I failed to correctly solder, and note that it shows it after I found it and slightly bent the pin to test that it wasn't actually making contact! The actual hardware symptom was that, whilst booting, the drives would be found, Workbench would start booting and then it'd pause at the 'wait timeout' in the StartupII boot script. I assume there's some interrupt or IO signal that's meant to come over that pin... amazing how random things are when signals aren't correct.

DSC00011 DSC00013 DSC00015

Finally, the board was assembled and ready to test!

MegaMicro Technologies: SCRAM 2000

SCRAM 2000 is a SCSI for A2000, A3000, A4000. And now also the Amiga 500! This board features a board-mounted 3.5" SCSI hard drive, an external DB-25 SCSI port and the ability to host a total of 8mb RAM.

DSC00037

The card came without a SCSI drive, so I grabbed a 40mb Seagate SCSI (from Apple!) from my box'o'crap, set the ID to 0 and mounted it to the card. Note that the spacing is very tight for the data cable, so make sure the wires are leading away from the card when you plug them in...

DSC00062

After a lot of toying around, the disk was mounted, formatting and even auto-booting on my KS1.3 Amiga! I used a boot disk instead for the KS1.2 Amiga. Note that the install disk can be used as both. Grab it from here and use ScrapPrep to get your drive in order. Then you just need to copy over the Workbench disks and make sure the boot priority is the highest amongst all drives connected! Check out this post for more details on bootable drives (disregard that it's about IDE drives!)

DSC00129 DSC00133 DSC00134

A fun note on this card... it would've actually come in kit-form to the original purchaser back in the late 80s. When that user assembled it, they put the three status LEDs in backwards. I was wondering, whilst debugging things and trying to work out why my machine wouldn't load, why the LEDs just didn't light whatsoever. I assumed it was because I was using a KS1.2 machine and there was no config, etc.... but it turns out that the LEDs were actually in wrong. I fixed this and also rigged up a LED to use on the activity LED headers... a much quicker way to test things like this!

DSC00150

Next trick was to upgrade the RAM on-board. The board uses ZIPs and this was my first time encountering them. Just think of an IC standing on one side, with all pins out the bottom edge. They're interleaved and you must make sure that they line up correctly before inserting them!

DSC00115

DSC00112 DSC00120 DSC00123

DSC00127

As is my usual rush.... I happened to put the last chip in backwards. With the card inserted, the machine wouldn't respond at all... no power light, nothing! I had only ordered 16 chips, so I was very fortunate that everything 'just-worked' when I swapped it around.

DSC00101

Finally, you'll note that the external SCSI port was nicely corroded on the board I recieved. A quick trip to Jaycar saw the purchase of a replacement part and, after a little destruction, the new port was soldered in place.

DSC00107 DSC00108 DSC00110

After this, I had a perfectly bootable SCSI A500 system with 8mb of Fast RAM!

GVP HC+8 Series II, Revision 2 Zorro II SCSI Card

This card happens to be very similar to the SCRAM above. It also hosts 8MB of RAM and a SCSI controller with an external SCSI port. The main difference here is that drive is mounted the opposite way around and SIMM RAM is used.

DSC00039

This first thing I did was get the RAM situation sorted out. The card came with 2 SIMMs installed and the auction quoted that this was 2MB of RAM. I threw the card in the system and the top line of WorkBench 1.3 indicated just under 3MB as the A500 has 512kb internal and the was also a 512kb expansion card in the trapdoor slot. With this, I tried to do things and kept getting the crash below...

DSC00079

I thought I'd bought a faulty card until I pulled the two SIMMs out and realised that they were only 256kb each! The Amiga was trying to get to the other 1.5mb of RAM and there was physically nothing installed... no wonder it crashed. I quickly populated this with 8 1MB RAM SIMMs and the machine soaked them all up, testing them out perfectly.

DSC00383

This one also had a corroded external SCSI port, so I went ahead and replaced it as well.

DSC00166 DSC00246 DSC00248

Finally, a few shots to show what SysInfo has to say about the card.

DSC00386 DSC00387 DSC00388

Installing an setting up the drive was just as simple as the SCRAM setup. the GVP software works beautifully and you can grab the setup disk here, but but here it is as an ADF.

DSC00378

Just make sure that the HDD is not grounding on the ground-plate of the power regulator!

SupraDrive 2000 WordSync

This card is still on its way from the US of A. As mentioned on the Amiga Hardware Database, this card uses two 8-bit transfer buffers instead of DMA. The card is noticably more simple with regards to chip count and board complexity. It's also half-size, not taking the full length of an A2000 case... so I might even try and shoe-horn it into a nice side-car style box.

I'll update more when it has arrived.

Filed under: C64/Amiga No Comments
11May/200

Capturing the output of an Amiga

You might have more luck than me, but I've had a little bit of trouble both outputting a clean composite signal from an Amiga and then capturing it using a PC. Not knowing if my first capture device was at fault, I upgraded an A520 RF modulator to support S-Video, but this still didn't work. The video capture device in question was a Japanese Area Powers Entry Model V.2, bought in a hurry during the last trip whilst testing Super Famicoms... Haha... the name is hugely appropriate!

DSC00010

It didn't work back in Japan when testing the Famicoms, and it didn't work now with the Amiga 500 + A520. I went googling and found all sorts of posts indicating driver installation caveats for Windows 10, but none of this worked. I then tested it with my PlayStation 2 and got a pretty crisp picture!... It was then obvious that this unit would not work with the output of the Amiga.

AverMedia H339 Mini

This cute/tiny PCI-Express card is very barebones. You can tell it's OEM and came from a machine of one of the big brands. Very hard to find drivers as well! I ended up pulling apart a Dell Driver from here. Here's the actual setup file you'll need for Windows 7,8,10 64-bit.

DSC00001

DSC00004 DSC00006 DSC00008

Anyway, with this physically installed and the device happily showing in Device Manager, I attempted to use the unit under VLC. Make sure that you choose the correct input (via the advanced button via the device properties) when you're setting up the capture...

vlc-1

vlc-2 vlc-3 vlc-4

And that you have PAL chosen instead of NTSC.... and then...

vlc-5

Ahh! Finally, no more switching monitors and no more photos of a computer monitor! Finally just easy PNG screenshots. Note that you might notice a slight delay/lag in the capture video on your PC with VLC. To fix this, hit show more options in the capture dialog and set the caching to 0ms.
You can also set ":live-caching=0" on VLC command line.

Filed under: C64/Amiga No Comments
5May/200

Formatting an IDE Drive for use in an Amiga 500

You may have previously seen the IDE Adapters that I'd built for my Amiga 500 over here (internal) and here (external). Whilst they worked very well with FAT32 drives attached, I had no end of trouble trying to work out how to partition, format and mount as a native Amiga disk. For everything below, you'll want to use this bootdisk.

The FastFileSystem

Digging through the blog, I'd remembered that I'd done a bit of this back in the day when mucking around with the Amiga 1200. I had used a CF card internally on the A1200 and installed WB3.9 succesfully on a SmartFileSystem Partition. Unfortunately, we can't use that on the A500, so we'll be basing our partitions on FFS, or FastFileSystem. This comes with Workbench 2.0+, but you'll need the file sitting in your L folder for anything lower.

Connecting a drive

Since we're talking IDE, we'll need an adapter. As per my previous mentions, you can find how to build an internal one here and an external one here. Both work great, but follow the posts there for the caveats and tricks when connecting and powering drives.

DSC00238 DSC00244 DSC04120

Note that this can also apply to SCSI drives. Just disregard the steps to add the driver to the disk and/or HDToolBox in the next section.

Partitioning

We'll use HDToolBox for this. It's on the bootdisk I've provided and it's already configured to use the ide.device driver installed in the devs folder. If you're rolling your own, then you'll need to copy the driver over to your floppy and edit the icon for HDToolBox to specify a SCSI_DEVICE_NAME as such...

DSC00303 DSC00305 DSC00307

This is an important step and you'll need a bit of patience... HDToolBox will sit for around 5 minutes interrogating LUNs with no disks, waiting for a response. If you've only connected one drive as master or slave, then the opposite LUN will pause. Below, I've only connected a master, so I saw the message "Checking ide.device address 0 unit 1..." (IDE slave) for a looooong time... but all came good!

DSC00308 DSC00309 DSC00310

From here, you'll need to change the drive type and read the parameters from the drive. Click Change Drive Type and then choose to add a new drive definition. Hit the Read from drive button on the right and cross your fingers.

DSC00311 DSC00312 DSC00313

The shot below shows where HDToolBox has detected by Disk Smith 32mb CF Card. Unfortunately it then failed when trying to write the actual partition table to the disk.

DSC00314 DSC00315 DSC00316

Partition sizing is important, so make sure you pay careful attention to all parameters. The Amiga 500 format application will error out if you try to make a partition too large. Unless you have an upgraded system with more RAM than the standard, don't try and partition a drive that is too big! For example, my 128mb (yes, megabyte!) CF card with one partition formats fine, but if you try a 2gig or 4gig card, you'll have trouble with the auto-detected settings. Here's an idea of the parameters that I've tried...

DSC00366

Size 4096mb 2048mb 128mb 32mb
brand SanDisk WINTEC Dick Smith
ext.power +5v No
cyl 3970 3970 12000 1002 496
heads 16 4 8 8 4
blocks per track 63 256 32 32 32
blocks per cyl 1008 1008 256 256 128
Part.Size (~mb) 1990 950 650 487 196 97 976 487 196 97 749 128 ??
cyl.start 2 2 2 2 2 2 2 2 2 2 2 2 2
cyl.end 3968 1985 1323 992 400 200 1985 992 400 200 6000 1001 495
Result COULD NOT DETECT DRIVE SIZE CANNOT FIND HANDLER NOT ENOUGH MEMORY SUCCESS SUCCESS DEAD CARD

I read in one of the IDE adapter's instructions that you need to have a low cylinder count, so that's why I started with higher surfaces/heads... but instead it seems that a higher cylinder count works better? There's also talk of making sure that your partition sizes match boundaries of the chips inside your CF cards... but I'm not going to pull one open. All I can recommend is that you detect the settings via HDToolBox and then manipulate them to have a higher cylinder count so that surfaces/heads and blocks are lower.

Anyway, where was I? Creating partitions! After you've adjusted the drive parameters, you can click Partition Drive and set up the partitions. It defaults to two, halving the drive. Note the names and sizes, as you'll need them for the mountlist in the future. I changed the layout by deleting the second partition and stretching the first to the end.

DSC00320 DSC00321 DSC00322

Again, write down those start and end cylinder offsets! You can now hit ok-ok-ok-finish and save all settings. The Amiga will probably reboot.

Mountlist

So, remember how I told you to remember those parameters above? You wrote them all down, didn't you? If you didn't, please open up HDToolBox again and record the numbers from the Drive Type screen and the Advanced area in the Partitioning screen. Once you've noted it all down, you're ready to edit ide.ml. On the bootdisk provided, this is located in the devs folder. If you've booted this disk, then just open Shell and type ed devs/ide.ml and press enter.

DSC00349

Once you're in here, you just need to manipulate the fields to match your partition. Starting on the very first line, make sure the name is correct. Change DH0 to whatever you've called yours. Note, there's a bunch of example partition mappings in this file. If you want to use one of the below versions, you can press CTRL-B to delete lines from the text file. For example, you could start at the very top row, hit CTRL-B 17+ times and wipe the top example. Just for fun, here's a reproduction with comments of what you need to change.

IDH0:
FileSystem   = L:FastFileSystem    ; If you want FAT32, then scroll down
Device = ide.device

Unit = 0                   ; 0 = MASTER, 1 = SLAVE

Flags = 0

Surfaces = 4               ; From HDToolBox (HEADS)
BlocksPerTrack = 63        ; From HDToolBox (Blocks Per Track)

Reserved = 2
Interleave = 0

                           ; For the next two values, you'll need
                           ;    to have opened the advanced area when
                           ;    creating partitions in HDToolBox
LowCyl = 2                 ; Start Cyl from Advanced Options
HighCyl = 256              ; End Cyl from Advanced Options
Buffers = 30
GlobVec = -1
BufMemType = 1
DosType = 0x444F5301   ; FFS Dos Type, leave as-is.
Mount = 1
#

Apologies that the photo above doesn't match the final file that is on the bootdisk! I made the final file match the rest of the examples here as much as possible. Either way, just make sure you get the details in correctly and that there's no other duplicate partition name/definition in ide.ml.

Mounting and Formatting

Before you can do anything with the drive, you'll need to make it available to the system. The low-level tools, as per HDToolBox above, can use the drivers to find and interrogate drives, but they don't make them available to the system directly. To do this, we'll need to use the mount command, pointing it to the mountlist we've created above. Type in the following from a Shell.

mount DH0: from devs/ide.ml

Make sure that you've replaced DH0 with your partition name and leave the colon at the end. The from operator tells mount not to use the standard mountlist and instead use the file that we specify afterwards. Hit enter and you should be put back to the command prompt without any messages or warnings. The only thing that might happen is that you get a drive visible on the workbench... if this happens, then somehow the partition you've mapped is already formatted and ready-to-go. If this is a surprise, then don't try and open it... anything could happen.

From here we'll want to format the drive. The format command is used here with the DRIVE and NAME parameters. We then specify the disk format at the end.

format DRIVE dh0: NAME CFCARD0 ffs

Above, you can see the partition name is DH0:. As per usual, replace this with your partition name, leaving the colon at the end. After NAME you can type a friendly name for your partition. This is the name that'll show under the icon on your workbench. It's also the name that you can use in Shell.

DSC00359

Do you like the name I gave it? You'll see it's legit as it's in the screenshots below when copying files. I'd gotten pretty desperate after a miriad of partition size permutations, trying to get a format session not to fail. Finally, as per above, one worked... but not before I started typing stupid names for the formatted partition name!

Note that you can add the term quick to the end if you just want to quick format, but I recommend to do a full format the first time!

Workbench

With the drive totally prepared, it should be visible on the workbench with a single Trashcan inside of it. From here, we'll want to transfer the OS onto it, so go ahead and purchase the Floppy & Hard Disk Image Pack from Amiga Forever. In the kit you'll have two ADF images: one for Workbench 1.3 and another is the Extras 1.3 disk. You'll need to insert these one at a time and copy the entire contents of each onto your new partition.

A quick note on copying disks on the A500: Regardless if you're using real floppies or a Gotek, floppy-switcheroo is the name of the game when trying to get Workbench copied over onto the IDE HDD. Firstly, understand that the copy command is an executable that lives in the c folder of your bootdisk. You can easily copy files around when the bootdisk is inserted. Issues start to arise when you switch disks and try to call copy or any other executables that 'exist' on the bootdisk. Workbench will ask you to insert the bootdisk first to find the executable and then actually run the requested command with its parameters.

This is all fine and well, until you try the following command:

copy DF0: DH0: ALL

It looks simple enough... I've swapped the Workbench 1.3 disk in and asked it to copy. Of course, when it started to execute, it asked me for the disk which contains the actual copy executable:

DSC00365

Yeah, I know, it says A590Setup... a good hint as to what disk I created this IDE Boot Disk off. Anyway, the point is that that was my boot disk and that's where copy lived. Once you switch the disk in, it'll start to execute copy... and copy from DF0 to DH0. Sounds good? It wasn't! As I wanted Workbench 1.3 to copy over, not my boot disk! Because I had DF0: in the copy command, and not workbench1.3:, it's just copying from the drive after swapping the bootdisk in and hasn't checked the name!

To solve this, we have two options. If you're using my bootdisk, then I've already solved it for you with the first option: make the copy program resident. In startup-sequence, I've called the resident command with copy as an argument, making Workbench copy the copy executable to system RAM (not the RAM: disk!) and persist it there during floppy disk changes. This means that it's always available whenever you need to call it.

The second option is shown below. Copy copy to RAM: (the actual RAM disk) and call it from there via RAM:copy.

DSC00363

... copy ... copy ... copy ...

DSC00364

Note that the Workbench 1.3 floppy has a space in its name and that the copy command can't handle this without special formatting. I guessed and tried to reference it as workbench1.3: without the space and somehow this worked fine? I then tried the same method with the Extras 1.3 disk, but that failed entirely. Due to not knowing how to reference it, I used DF0: instead and hence wound up with the situation above where I copied over the wrong disk. After a quick bit of googlin' now, it seems that you simply have to double-quote things:

copy "extras 1.3:" dh0: all

I'll try that at a later date.

Bootable disk

The bootdisk mentioned throughout this article can be converted to an actual bootdisk. I suppose I should've called it a setup disk at first, but it is actually still a standalone bootdisk. Or something. Anyway, it'll now be a bootstrapdisk, mapping the relevant OS drives and folders to the HDD and then kicking WB off from there. The startup-sequence files to do this are all ready to go. Open a shell and switch to the s folder. From there, ed startup-sequence.hd.

; Startup sequence for Hard Disk users...checks for hard disk, then
; transfers control if it is present. (The script assumes DH0:)
; TO USE: copy your normal startup-sequence files (Startup-Sequence,
; and StartupII to the S: directory of your hard disk.
; Then rename your normal Startup-Sequence file
; as Startup-Sequence.f in the S: directory of the floppy, just in case.
; Now replace the Startup-Sequence file on the floppy with this file.
;
Setpatch >NIL:
SYS:System/FastMemFirst
binddrivers

;The line below needs to be edited to match your partition name
;You also then need to make sure that ide.ml has the correct
; parameters for your partition!
mount IDH0: from devs/ide.ml
assign >NIL: IDH0: exists

IF NOT WARN
; hard disk is present
assign sys: IDH0:
assign c: SYS:c
assign L: SYS:l
assign FONTS: SYS:fonts
assign S: SYS:s
assign DEVS: SYS:devs
assign LIBS: SYS:libs
makedir ram:tr
assign t: ram:tr
execute s:Startup-Sequence
ENDIF
execute df0:s/Startup-Sequence.f

Simply make sure that IDH0 in all three places is changed to whatever your HDD partition name is and then rename the files:

rename startup-sequence startup-sequence.f
rename startup-sequence.hd startup-sequence

From here... reboot!

Filed under: C64/Amiga No Comments
2May/200

Amiga A520 Modulator – S-Video Out

Whilst trying to capture the Amiga via a USB Capture device, I ran into problems. I couldn't get anything other than a black screen and considered the fact that the A520 modulator was producing a bad signal. The USB Capture device worked fine on Windows 10 with the playstation, so I knew that it worked.

I'd been using an A520 on the Amiga for a while as my secondary PC monitor has Composite Video in and it was easy to switch back and forth. I also wanted colour, so I chose the A520 over the A500's standard mono video output.

DSC00251

DSC00255 DSC00257 DSC00260

The USB capture device also accepted S-Video, so I thought I'd try and 'upgrade' the A520 to S-Video, cleaning the signal in the process, in an attempt to capture the video on my desktop. Another advantage would be that I'd stop having to switch video inputs all the time, which would also help standard windows usage as half the time a window would open on the screen that was currently displaying the Amiga.

So, what to do? Google! Zenithia's blog was a first hit with this post where he uses another post's instructions to modify an A520. The other post is S-Video from the A520 at Dave's Amiga Hardware Page. Zenithia seemingly does the circuit-board conversion correctly but, at the end, he describes how Dave leaves out the information on adapting the two Y and C signals from the modified A520 to an S-Video plug. Instead, Zenithia uses a capacitor to fake the sync... let's sort all this out and build the cable correctly!

Required Components

One thing that Dave's page doesn't have is an obvious list of required components... so... here's your shopping list:

capacitors:
	22uf electrolytic - 16v (x3)
	100uf electrolytic - 16v 
	220uf electrolytic - 16v 
	56pf ceramic
	0.1uf (100n) ceramic

resistors:
	- 180 ohm
	- 220 ohm
	- 270 ohm
	- 330 ohm
	- 1 Kohm
	- 10 Kohm
	- 470 Kohm
	- 1 Mohm
	- 2.2 Mohm

I've included the four stock electrolytics on the board (not mentioned by Dave) as purchases also. The 100uf on my A520 pretty much fell off... there's no real chance that capacitors from 1989 are any good anymore!

Modifying an A520

First up, grab your A520 and prize it open. It's held together with plastic pins that insert into sleeves on the opposite half-shell. Grab a flat-head screwdriver and gently separate the case at each corner. The case will come apart with minimal force, so never apply too much pressure! Finally remove the two screws that hold down the RGB plug.

DSC00261

DSC00265

Once apart, turn on your soldering iron. There's 19 steps to follow from the instructions at Dave's page. Make sure that any wiring that you use to bridge pins or points are insulated! Also try and place any bridging capacitors or resistors away from the soldered pins of other components so they aren't pierced when the case it put back together!

Dave's page has three images at the end, showing the original circuit, the circuit after modifications and finally the deltas between both. You'll note that the modified circuit shows how the C and Y are now available from the two RCA sockets on the modulator.

DSC00267

The modifications are pretty straightforward. One tricky part was the installation of a resistor in R18. My board had the holes drilled, but no solder pads. So instead I just piggy-backed the resistor under the board, soldering to points along the traces. If you look really closely below, you'll see that the holes have no pads, directly below the hacked on resistor.

DSC00287

Another point is to be super-careful when cutting traces! Too often my knife would go flying to towards another trace trying to do other damage.

DSC00270 DSC00273 DSC00277

Finally, the hack inside the modulator is pretty tricky. Make sure you have a sharp pair of snips when you're cutting the white plastic housing away. Once done, solder a pin through the RCA plug rear lead and push it down towards the header. From there, it'll be held perfectly in place to solder the final connection.

Wiring up the cables

So, you now have both Chroma (Colour) and Luma (Intensity) available on your modulator. The previous Audio-In RCA plug is Intensity, with Video Out being Chroma. From here, you need to wire up an S-Video Cable appropriately. I grabbed an S-Video cable I had spare along with a component cable that I have absolutely no use for.

DSC00288 DSC00290 DSC00292

After chopping them both in half, I bared the ends of both and wired everything together. The pinout of my S-Video cable was as follows:

	1	gnd		black
	2	gnd		brown
	3	intensity	red
	4	chroma		orange

With that, I just made sure the two channels were paired and that the grounds were attached to the shields of each RCA lead. The other two wires were the signals and, officially, I could wire them either-which-way as I can swap the plugs at the Amiga end!

Does it even work?

It sure does, but the USB Capture device still doesn't pick up the signal! The Amiga must output some very weird frequencies or incorrect signal voltages. Regardless, my secondary monitor also takes S-Video, so I plugged it in...

DSC00294 DSC00298 DSC00300

Ahh... crisper... I mean, it's not perfect, but it's much clearer! Disregard the last shot... one of my A500s is throwing those vertical lines and they're on the todo list to fix. As for getting the picture USB-capture'd, I suppose I could start toying with the RGB port to get a better signal, but I have no idea if this USB Capture device will ever support it... instead I've gone and sourced an internal AverMedia PCI-e Card. Will update later when that arrives.

Filed under: C64/Amiga No Comments
29Apr/200

Amiga 500 – External IDE Port

After building an internal IDE port for the Amiga 500, it was time to try an external port that connects to the expansion slot. This happened to be another lesson in taking-your-time-and-doing-proper-research. As I was unpacking the bags for this unit, I realised I'd bought SMD resistors and capacitors that were, literally, microscopic. I couldn't even see them in the tape-strips that they were sent on.

DSC00242

I went back to the bill of materials as linked to on the project page and realised that there was a code after the SMD items: 0805. Turns out there's an industry standard sizing and I had no idea. I therefore put in a new order to DigiKey and got these correct, got the relays correct (for another project) and then got a few other handy bits. Here's a photo of the size comparison, only take-able once I'd received the second order. Actually, I must admit that DigiKey's free shipping with any order over 50 bucks is super fast!

Now that I had the right items, I whipped out the boards that I'd had printed and started placing the chips.

DSC00170

The replacement items arrived and I started assembling the boards. It wasn't until I tried to actually solder in the 74HC04 inverter that I realised I'd also ordered the wrong part. SMD chips come in a plethora of sizings, just like the resistor component sizing above and I'd purchased SOP14s instead of SOIC14s. I decided to MacGyver it and make them fit... but it caused me high levels of stress as things didn't go smoothly during the testing phase.

DSC00174 DSC00177 DSC00180

After ruining around 4 boards, I managed to finally solder down the 4 ICs. This was my first attempt at SMD soldering and I must say that I'm not a fan. Firstly, I had the wrong-sized solder, but I fixed that up by purchasing the smallest available: 0.7mm. With this new solder, it was much easier to not bridge legs on the ICs, but the tip on my soldering iron was also too large. I've since ordered smaller 'blade' style tips.

DSC00182 DSC00185 DSC00194

You can see above where I managed to solder the ill-fitting inverter upside down... I then tried to remove it and trashed the traces on the board. So damn fiddly... And then the resistors and capacitors... the best method I found was to tin one pad, use fine tweezers to place the component on the tinned pad and then melt it in place... from there, you can just solder up the other side. I then tested all continuity to make sure contact was correctly made.

DSC00189

The edge connector wasn't a simple solder-in-position... I had options. I could solder in a right-angled header and then build a bridging board, as per the original author's instructions. Or I could use a single vertical pin header and bend the bottom row of pins of the edge connector and solder it all together. This latter option lead to a much stronger build, so I went with it.

DSC00203 DSC00205 DSC00209

DSC00211

DSC00214 DSC00222 DSC00224

Finally, I just needed the IDE pin-header in place!

DSC00238

After around 10 hours of debugging, I managed to get this thing to work. Firstly, one or two legs on the inverter IC weren't cleanly making contact, and then I realised I'd put the LED on the wrong way around. After a lot of further tracing with a multimeter, it turns out that my master HDD was on cable-select when it needed to be forced. I also seemed to require a second HDD as slave to get HDToolBox to read the drives correctly.

DSC00241 DSC00244 DSC00245

But it works! I'll write up a post very shortly on how to work with these drives. For now, you can use the boot disks from my other internal IDE port post.

Filed under: C64/Amiga No Comments
27Mar/2011

Amiga 500 – Internal IDE Port

Whilst looking for side-car Amiga A590 Hard drives for the Amiga 500, I found this deisgn at PCBWay of an internal IDE interface. The design seemed pretty straight-forward, but it did have its caveats. The main one was that this device does not Auto-Configure and therefore needs a boot floppy to use it. This wouldn't have been such a bad problem, if it wasn't for the fact that I wasn't able to write a bootable floppy disk. I therefore got my Goteks working in the A500 first.

In case you didn't know, PCBWay is a fully-fledged PCB design and fabrication site. They even provide a community side (similar to Thingyverse for 3D printing) where users can upload their designs and anyone can have them made! After finding this design on their site, I followed the checkout and a few of boards created. I wanted to save money, so I had two other designs created at the same time... but I'll talk about them in later posts.

DSC04068

With the PCBs now in my hand, it was time to fill them up and test the devices. Using the shopping list of parts provided at the original site, I purchased everything I needed from either Digi-Key or Jaycar.

This all arrived at around the same time and, thanks to being locked up at home due to a bug floating around the entire world, I now had time to get this thing built! First-thing's-first... take your bloody time doing this, otherwise ... or, as I did on the very first build ... you'll solder items in backwards. I quickly put that first attempt aside and started again.

DSC04071

Jaycar only had horizontal 50-pin IDC headers, so I cut it down to fit... not the prettiest!

DSC04072 DSC04080 DSC04081

I also purchased pin strips of both male and female thinking that the board had two individual areas for the male and female pins that the CPU plugs through.

DSC04083

Turns out that was totally wrong and you need to make sure you get the 'triple-length' female pin strips! Here's the item at Jaycar.

DSC04095

They're not cheap, but you want absolute stability when you're dealing with a piggy-backed CPU!

DSC04096 DSC04099 DSC04103

Note that if you look closely at that middle photo.. you'll see that I failed to solder two pins. Sure, the strength of the solder on the neighbouring pins will probably force contact... but... again... take your time!

The IDE header required a re-think back to my 386 upgrade. There's an issue here between providing a male or female pin header on the board. Officially, this is the 'host' of the IDE channel so, like any motherboard, it should provide male pins. You can then use a cable to provide a female IDC connector if your device has male pins. Also note that some units (like the transcend disk-on-a-stick in over here) are built to plug straight into motherboards and therefore will plug straight into this unit.

The only real thing you need to worry about is that if you're using a CF to IDE adapter, make sure it has a female header on it, i.e. on that's meant to go straight into a motherboard, or, if it has male pins, that you have a short IDE cable to go with it. Look over here for the logic on how to run the IDE cable... making sure that you get the pins in the correct order.

Mounting it

It was now finally built! Mounting it into the A500 I had open on the workbench took a little more effort than I expected. It turns out the legs of the piggy-back pin header are quite a bit thicker than the legs of the standard 68000 CPU. This meant that the whole unit required quite a shove to get it into the socket. It also made me wonder if the CPU would happily sit back in again afterwards if I ever had to revert this work. Firstly, anyway, I had to remove the cpu!

DSC04108 DSC04112 DSC04116

I'm pretty sure I mentioned something about taking your time with these things... After successfully removing the CPU from the motherboard, I also successfully bent two pins when mounting it onto my new PCB. Relax, breathe, grab a set of tweezers... realign the pins without snapping and try again!

DSC04120

It was in and, without a disk connected, the machine still powered up. Make sure you test this scenario as a milestone during your build!

DSC04175

Connecting the disk required a little trickery with the power cables. Thankfully there's a 5v header on the adapter and that's all this disk needs.

Testing it

In the zip file provided on the original site, you'll find bootable disk images that have the IDE device driver included. Or do they? It turns out Kickstart 1.3 also had the IDE driver inside... but 1.2 didn't? At first, I connected my Transcend disk-on-a-stick and booted the unit using the Boot_WB13.adf from the original site. I got the following:

DSC04124

Ok, c/assign can't be found. From what I've learnt, c is a folder on all Workbench installations with standard binary tools. Something like the DOS folder in MS-DOS or the /bin folder in Unix. It's trying to run the assign application which creates temporary symbolic links to paths on disks so that the shell knows what to run. The fact that it's failing isn't good, but let's try work out why.

Firstly, where is this line even being called from? It turns out it's the startup-sequence in the s folder on the boot: disk, which happens to be the disk image we downloaded and booted from. We can use the type command to work out what's in this file...

DSC04150

Ok, so it's tried to mount the HDD on DH0:. It's then changed to it, and succeeded? It's then tried to run the assign application from the c folder on the HDD. Uh, there's nothing on this HDD... actually, I have no idea what's on it! Quick way to find out...

DSC04177

Uh, yeah.. that'll never work! The delete command will come in handy here... I went ahead and whacked each of those useless files. Sorry DOS! Note that I could have also formatted the partition at this point... I had tried to do so during this adventure, but I couldn't work out how to format it as FAT (or FAT32) from the Amiga. Whenever I formatted it, it came up as an unknown DOS disk... so I slapped it into a Windows PC and formatted it there.

DSC04178 DSC04179 DSC04181

That last image above shows the Mountlist file located in the devs/ folder. This is super important as it tells mount how to understand what each partition is. It's similar to the /etc/fstab in Unix. Above you can see that it would try to use the fat95 library located in the L folder. Hence, when I formatted it and it became an Amiga partition, the fat95 driver would then throw an error indicating it wasn't a DOS drive. I would still love to know how to fix this Mountlist after a format... what parameters do I need to give the rest instead of just the driver being FastFileSystem?

Anyway, we're getting lost... leave it as FAT and then run copy boot: DH0: to copy the contents of the bootdisk to the HDD. Once done, reboot!

DSC04142

Hmm... still the c/assign error? Switching to the disk saw that only the root files copied... is there a -R switch? Turns out I should have run the following: copy boot: DH0: ALL...

DSC04146 DSC04148 DSC04149

Cool! The next error!? It's trying to map a fonts folder? Checking the bootdisk, there is no such folder. Oh, right, the bootdisk doesn't actually have WB1.3 on it! It's just a booter to get WB1.3 running off the HDD. Go and purchase the Floppy & Hard Disk Image Pack from Amiga Forever, download the ADFs and get them onto your USB stick. Boot the machine with the IDE bootdisk, swap the ADF via the Gotek change disk button to WB1.3 and run the same copy, but this time with the differing drive name: copy workbench1.3: DH0: ALL

DSC04151

And reboot!

DSC04157

Holy moly... my HDD is visible! Note that this was tested on both a Kickstart 1.2 and Kickstart 1.3 Amiga 500! I quickly booted up SysInfo to see what the system specs were.

DSC04170 DSC04172 DSC04171

Yup, it's still a lowly A500. Note, if you want one of these, please drop a comment below and I'll contact you!

Filed under: C64/Amiga 11 Comments
24Mar/200

Amiga 500 – Gotek

So, the goal was an internal IDE drive, but to do that I needed a boot disk as my A500 with Kickstart 1.2 would not auto-boot. To make it boot and find a HDD, I needed a floppy image written to a floppy disk. Of course, you can't write this with a standard PC drive; instead I either needed a bootable Workbench disk and serial magic (like what I did to the Apple II back in the day) to copy over floppy-copying-software, or just use a Gotek!

I happened to have a spare 'cheap' gotek that I've complained about before which deserved to be used for this hack and slashery.

DSC04004

Could I flash Amiga firmware to it? I don't have an FTDI USB device, but I have plenty of Arduinos! Firstly though, we'll need to allow data access to the Gotek. This means soldering on some pin-headers to the holes right behind the power plug.

DSC04006 DSC04011 DSC04013

Regarding using an Arduino, it's the internet, so someone has already done it. Wiring it up was pretty straight-forward: dedicate two pins to SoftSerial and then make sure the transmission line has a few resistors on it. The Gotek is TTL level, which means 3.3v data signals. As the Arduino puts out 5v, we need a 4.7k resistor between the TX pin and the gotek. Where the resistor meets your wire, also put a 10k resistor to ground.

DSC04020

Yup, you can't see shit because of my 'mood lighting'. The sketch on the Arduino was as follows:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  mySerial.begin(9600);
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Very simply, the code brings up the hardware port to 9600 baud and the same with the softserial port on pins 10 and 11. Pin 11 is TX and had the resistors, as mentioned above. The Gotek then needed 5v and GND from the Arduino. From there, you need to install the STM software and grab the Cortex hex image to flash. It's all in this blog post, with the downloads being at the very bottom.

DSC04021 DSC04023 DSC04024

DSC04026 DSC04029 DSC04030

I then unmounted the existing drive in the Amiga and swapped in the Gotek on a 3d-printed base that a friend (thanks Shouchan!) had made. Unfortunately, it seems to be for a newer revision of the A500? Or I'm mounting it wrong. Regardless, it all went in and the access light just stayed on when I booted the machine. No dice, just the usual Kickstart 1.2 screen asking for a floppy.

DSC04045

At this point, I could probably write a few extra paragraphs here on how I then went and tried FlashFloppy, to have that fail too. I thought I should then try HxC which also, after paying for it, ended up with the same error. So... I slept.

Testing out my 'better' Gotek

I had another Gotek (with display and buttons) that I've previously used in my IBM PCs and didn't really want to hack apart. My assumption was that the 'fake' one above with no display or buttons couldn't handle the 3rd-party firmware and this just had to work!

DSC04047

I did the usual... soldered on the header and programmed it.

DSC04035 DSC04043 DSC04045

This time I used the USB Serial adapter from Jaycar that I'd bought above to get HxC to burn. It wouldn't work via the Arduino as the baud rate needs to be 115200 and the Arduino can't 'pipe' this through quick enough! Anyway, as you can see above, I flashed it and still got the standard 'insert disk' screen. What am I doing wrong!? I then looked at the actual Gotek, which now had a beautiful error on display...

DSC04049

Ah crap... remember back in the day with standard floppy drives... how when you had the ribbon cable backwards, they'd just stay lit up (or even make a horrid repetitive searching noise)!? Amiga drives do this too. Better yet, when a Gotek (with a display) has the ribbon cable backwards, it'll tell you with a rib warning!

All this time spent above was a total waste as I'd just had the cable backwards the whole time. To me, the cable was actually forwards, as pin 1 matched pin 1 on both ends... but it turns out you need to flip it on the Gotek side. I'm sure this information is written in a manual somewhere?

A quick flip of the cable and...

DSC04050

Hoy polloy... I've learnt a lot... have a bit of new usb-serial hardware, and two dismantled Goteks. So, I then purchased the original Workbench disks from Amiga Forever (USD$9.95 for just the floppy images!) and threw the ADFs on the USB drive.

DSC04058 DSC04059 DSC04062

DSC04064 DSC04065 DSC04066

Ah. Nice! Time to give this thing an internal IDE HDD.

Filed under: C64/Amiga No Comments
4Mar/200

Commodore 1084S Monitor Power Switch

As per usual, I saw an auction on eBay and thought I'd have a crack. It happened to be 3 Amiga 500s with a lot of paraphernalia. Included, if I picked it up personally, was a beautiful Commodore 1084S monitor, with a faulty power switch.

DSC03795

After a quick message to a good friend in the Amiga community (thanks Steve!), I had a link to a fellow Australian's anonymous blog on blogspot under the name Random Mayhem. Here's the link to the article, but it seems to have disappeared in the time that I've now come around to writing this post. I picked everything up mid-february, got around to purchasing the items soon after... but now two weeks later the blog is gone! Thankfully, here's the cached version from Google. I have no idea how long that'll be around.

Thankfully, the whole process is very straightforward. First up you'll need to buy a replacement switch from Wagner Electronics Super Store in Sydney. From here, we make minor mods to the switch, as it now has a secondary pole, and then swap it in.

Opening up the Monitor

CRT Monitor contain high voltages, which can be stored for long periods of time. BE CAREFUL! Yes, the usual warning. The large capacitors in CRT monitors will hold charge and need to be discharged if the monitor has been on recently. Grab an insulated flat-head screwdriver and bridge the pins on any capacitor. If you get a spark out of it, then you've probably just saved that spark from travelling through your finger.

DSC03801

There's around 6 screws to remove to take the main housing off. From here, don't pull it away with speed. There are two speakers in the housing and these are connected by relatively-loose cables that run to the front-left of the monitor, where the headphone jack is. You'll need to lift the housing around 5cm off the chassis and then unplug these two cables. Once done, you can remove the housing completely.

DSC03802

DSC03804 DSC03807 DSC03809

From here, give the internals a good clean-up... my unit sure did need it!

Removing the existing switch

The switch is held in with 6 pins: 4 electrical contacts and two for the support bracket. Removing it will involve removing the solder from the pins and then 'walking' the switch out. The basic idea of 'walking' is to heat up the pins on one side of the switch and prise it up as high as possible, only moving it millimetres at a time. From here, heat up and loosen the pins at the other end and prise that up. Once you've got one end clear of the solder pads, heating up the other end should see the whole switch come out.

DSC03811 DSC03816 DSC03823

With the switch out, we can now remove the support bracket. This is held in by two bent tabs on the top side. Grab a set of reverse pliers, the ones that open when squeezed, and slowly bend the top pins open. We want to re-use this support bracket, so try not to snap the tabs off! They should bend relatively easily. Test if you can wriggle the switch vertically out of the bracket each time to prevent opening up the tabs too much. Too much flexing of the tabs could weaken and see them tear off.

DSC03814 DSC03812 DSC03821

With everything apart, we can now install the new switch.

Modifying and installing the new switch

First up, you need to cut off the three pins on the new model. We don't need these on our old monitor. I grabbed my sharpest pair of pliers and cut the tabs off right at the base. I suppose you could use them for a mod if you wanted? LED lighting? an extra amp for the speakers? I had no use though.

DSC03817

Once done, you can slide the support bracket on and gently bend the tabs back into position. The whole switch will then slide perfectly into the previous switch's position. If not, just make sure all the solder holes are clean. Once in place, solder away!

Re-assembling the housing

Just a quick note here... make sure you run the speaker cables correctly. One runs internally around the entirety of the housing so as to keep it from electrical interference produced by the circuitry. I assume there's also heat concerns, so make sure it's not running too close the to main tube. There are actually little plastic tabs where you can push the cable into, to keep it in position when you push the housing onto the chassis.

DSC03817

Also, when plugging the cables back in, make sure you have them the right way around. You wrote down the order, didn't you? Or did you take a photo prior!?

Testing... or... please keep the magic smoke in!

I bit the bullet and just applied power and video data. Thankfully, I got a Kickstart 1.2 boot screen! I knew the Amiga already worked, as I'd tested the black-and-white composite out. I was very happy to see this crispy screen come to life.

DSC03825

DSC03827 DSC03830 DSC03831

As you can see... it was time to load A-Train, which I'd bought whilst I had the A1200, but which had arrived after I'd sold the A1200.

A-Train disks on the Amiga

A quick note here... if you look at the final photo above, you'll notice A-Train is asking for 'Disk 2'.

DSC03834

Uh... 'Disk 2'? I'd booted off 'Lo-res', so I slapped in 'Hi-res'. It worked, but the disk naming is terrible. Nowhere on those disks is the number 1 or 2?

DSC03837

DSC03835 DSC03836 DSC03840

Monitor built-in stand

Just in-case you didn't notice, there's a built-in stand in the base of the monitor. The stand consists of two plates of plastic that are hinged to provide a triangular stand, supporting the rear of the monitor. This is specifically to be used when the front half of the monitor is sitting on the rear edge of your Amiga.

DSC03845 DSC03843 DSC03842

It's actually very handy. Without it, the angle that the monitor sits at would put severe pressure on any cable plugged into the back.

Filed under: C64/Amiga No Comments
15Sep/161

Amiga 1200: PCMCIA Wireless Networking

Who would've thought you'd be able to get a machine this old onto a WPA2 network? Not I. Either way, it's totally doable and makes getting files onto the system a LOT easier!

Requirements

You'll need a 16-bit Wireless PCMCIA card that's supported. You'll usually find one around the Amibay forums or on eBay. 16-Bit PCMCIA cards are recognisable via their difference in connector to newer PCMCIA cards.

DSC06158

As you can see, the little line of plastic that guides the card into the slot is thinner on the 16-bit card. This guiding line is on the right in the picture above. It's twice as high on the 32-bit card. Make sure that your cards are 16-bit and never try to force them into the slot!

Instructions

There's a great video How to set up a PCMCIA wifi card on a standard Amiga 1200 over at Daily Motion. Watch that, or follow the steps here.

First thing to install is the wireless driver. My cards are based on the Prism Chipset and therefore the Prism2v2 driver over on aminet is the best choice. The 'v2' version supports WPA (as long as your card does!) and is very easy to install. Click through the steps and configure your card. Make sure you have a 2.4ghz network available as, chances are, your card wont be doing 5ghz any time soon!

DSC06074 DSC06075 DSC06076

Once configured, the wirelessmanager will have been added to your user-startup. Restart your Amiga and watch the blinkenlights on your card to see if it associates. I'd recommend checking your router also, to see if your card is listed as a connected device. It won't have an IP yet, but the MAC address should be recognisable.

DSC06077

From here, you might need to install CardPatch and/or CardReset. These are useful if you have trouble restarting your Amiga with an active PCMCIA card installed.

TCP/IP

I've recently learnt that the Amiga OS 3.9 CD comes with TCP stacks included... but I haven't tested them. Instead I went ahead and used MiamiDX. Make sure you have MUI installed first and then go ahead and install MiamiDX and it's MUI support library. Throw it in the System or Utilities folder on your main drive.

DSC06080 DSC06081 DSC06082

Reboot your Amiga and then open up the folder where you installed it. Run MiamiInit. We're going to install a SANA-II driver and manually enter prism.device. Note that this is prism2.device and not prism2v2.device. Although we're using the v2 driver, the filename is actually just prism2.device.

DSC06083 DSC06084 DSC06085

DSC06086 DSC06087 DSC06088

DSC06089 DSC06090

Once added, tick through and make sure that DHCP is configured. Save the configuration as default.

DSC06091 DSC06092 DSC06093

Now go back to the folder where MiamiDX was installed and run MiamiDX itself. From the menus, choose to import a MiamiInit profile. This should then populate MiamiDX with all of your hardware configuration. Go to the Ethernet tab, highlight your device and hit 'Online'... within a few seconds your device should be ready to go! Finally, choose Save as Default from the same menu... then you wont have to go importing every time you open up MiamiDX.

Browsing the Web

You pretty much only have a choice between only two browsers. AWeb and IBrowse. I tried AWeb and was impressed. But it doesn't do SSL. Note that the installer mentiosn that you'll need ClassAct2 installed. DO NOT INSTALL CLASSACT2 on Amiga OS 3.9! It'll trash your 'classes' files and prevent even simple dialogs from appearing. Someone else learned the hard way here and had to re-install OS 3.9. AWeb will run fine on OS 3.9 as-is.

Here's an animation of AWeb trying to load Aminet. It actually loads the site 3 times before finally settling and loading images.

BW TV Animation

IBrowse has addons for SSL and Flash! The basic version installed perfectly well and loaded aminet a lot quicker than AWeb.

DSC06151 DSC06152 DSC06156

I'll try the add-ons shortly!

14Sep/160

Amiga 1200: System Sounds are Mono!

Working on vintage hardware, with a vintage set of speakers (yes, yes... wrong brand.. I know...) can cause no end of stress. Recently I set up the Amiga 1200 on my desk and used my trusty old AppleDesign Powered Speakers. I'd had issues with these in the past: One channel was soft and the balance was even at 75% left. After opening them up, I re-soldered a few dry joints and all worked well again!

DSC06036

I was nothing short of horrified when I heard the first beep from the Amiga. It only came through one channel. I checked the cables, the balance and jiggled everything... but to no avail. Further system sounds also failed to be broadcast over stereo.

Well... it turns out that system sounds are mono! Don't ever expect the base Amiga OS 3.9 to send sounds over both channels... as much as you mash the keyboard to make the actual beep occur!

Hippo Player came to my salvation and happily played Action on a street in full 2-channel glory!

It also turns out that I'm not the only person who has noticed this.