Subscribe via RSS
24Aug/180

ASUS Media Bus (aka not-PCI-64-bit)

I'd picked up an old motherboard from an eBay auction and had seen a PCI slot with an extension.

DSC04423

Here I was thinking it was PCI 64-bit...

DSC04425

I grabbed the 64-bit SCSI card that I'd installed in my G4 Graphite Macintosh (which has a suite of 64-bit slots) and quickly realised it wasn't what I thought it was!

DSC04434

Ok.. it doesn't fit... let's look closer?

DSC04435

From the photos above, it doesn't take a genius to work out that it's actually a Media Bus 2.0 slot by ASUS. Turns out they tried, for a short while, to make their own proprietary slot that combines PCI and ISA. The brown socket is actually just a condensed ISA slot and the cards that fit are usually dual-purpose, combining video and sound or SCSI and sound.

V1.2 and V2.0 Compatiblity

Note that there are two versions and I failed. I went gung-ho and purchased an 'ASUS Media Bus' card on eBay without paying attention to the version. This card was meant to be the ATI Mach 64 + Sound Blaster card and I was really happy... saving slots it a great idea! A week after purchase, whilst the card was still in the mail, I did a little more research and realised that this card would be ASUS Media Bus 1.2, not 2.0! I went back to the seller and found a SCSI + Sound for Media Bus 2.0 and ordered that too.

A few weeks later (thanks to surface mail), a missed-delivery slip appeared in my letterbox and I went to pick up the video+sound card...

DSC04427

DSC04428 DSC04429 DSC04430

Sound? Check! Video? Nope... What? The card I had ordered second arrived first! This can't be good. I still had a V1.2 card in-flight somewhere... would it arrive? I purchased a V1.2 motherboard I saw on eBay anyway; it was cheap and I wanted to use this card... when it arrived!

Anyway, back to this card: It's the PCI-AS300 Adaptec AIC-7880 SCSI + Vibra 16 PnP Sound.

DSC04449

It fits nicely, as one would expect... and works perfectly too!

DSC04452

The V1.2 motherboard then showed up (before the V1.2 card!) and, just to test, I tried to see if the PCI-AS300 would fit...

DSC04447

Nope... millimetres out! I actually think the V1.2 card is lost and I now have a nice and clean Pentium board for another machine... oh wells... Note that the V1.2 slot just says MEDIA whereas the V2.0 says MEDIA BUS 2.0.

DSC04440

I hope others don't make the same mistake!

Filed under: Retro No Comments
21Aug/180

INTERLINK – Reverse-Engineering the Protocol

I've recently been playing with INTERLINK. Firstly, it was between two real machines, but then I managed to get DOSbox to talk to another DOSbox instance and a real physical PC. From here, there was a thought... why need DOSbox to host the INTERLINK server when I could possibly emulate the conversation and then create an app that'd work on all versions of Windows (or other OS') and then allow easier serial transfers to older equipment.

This post will be a work in progress for quite a while. I'll be updating it as I find time to work through the 'conversation' between the hosts... I might also spend a little time on reversing the actual source of INTERLINK itself.

Snooping in on the Conversation

As per the previous post, I created a quick .NET app to listen in to the serial conversation. This was done via the help of Eltima's Virtual Serial Port Driver. A pair of virtual ports was created and DOSbox was hooked onto one side. From here, I hooked my app onto the other side of the virtual pair and then into the real physical port. A real computer was then hooked onto the end of that port. You could also use two DOSbox instances here, along with two pairs of virtual ports.

dosbox-to-real

You can download the source of my serial snooping app here.

The Conversation

This is where it now gets a LOT harder. Below shows the client (green/left) talking to the DOSbox server (blue/right). From the conversation, the client works out what drives are shared: A: and C: to D: and E:.

A: and C: A:, C: and D:
0xAA
Hello?
Hi!
0x00
0x55
0xFF
0x5A
0x11
0x80
0x7B
0x02 0x00 0x00 0x5D 0x03
0x80
0x81
0x7A
0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x01 0x00 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xD9 0x73 0x50 0x42 0xAA 0x8D 0x75 0x72 0x1F 0x12
0x81
0x02
0xFD
0x02
0x04 0x82
0x79
0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x0A 0x01 0x01 0x00 0x01 0x00 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xF7 0x0C 0x71 0xEA 0xB0 0x04
0x82
0x03
0x83
0x78
0x24 0x01 0x01 0x00 0x16 0x06 0x03 0x03 0xFF 0xFF 0xFF 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0x95 0x6E
0x83
0x00
0x80
0x7B
0x57 0x01 0x0A 0x16 0x06 0x06 0xFF 0xFF 0xFF 0x00 0x02 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xC2 0x08 0xC2 0x08 0xC2 0x08 0x42 0x28 0x42 0x28 0x42 0x28 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xF2 0x73
0x80
0x01
0x81
0x7A
0x02 0x1C 0x00 0x1B 0x1D
0x81
0x02
0x82
0x79
0x17 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xD5 0x2F
0x82
0x03
0x83
0x78
0x02 0x1C 0x02 0x3B 0x5F
0x83
0x00
0x80
0x7B
0x17 0x28 0x32 0x36 0x38 0x4D 0x62 0x29 0x00 0x00 0x00 0x4D 0x53 0x2D 0x44 0x4F 0x53 0x5F 0x36 0x00 0x00 0x00 0x00 0x00 0xCA 0xC7
0x80
0x01

Other side receives drive D:\

0xFC
Ping
Pong
0xFC
0xFC
Ping
Pong
0xFC
0xFC
Ping
Pong
0xFC
0xAA
Hello?
Hi!
0x00
0x55
0xFF
0x5A
0x11
0x80
0x7B
0x02 0x00 0x00 0x5D 0x03
0x80
0x81
0x7A
0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x01 0x00 0x00 0x01 0x00 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xD9 0x73 0x50 0x42 0xAA 0x8D 0x75 0x72 0x1F 0x12
0x81
0x02
0xFD
0x02
0x04 0x82
0x79
0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x0A 0x01 0x01 0x00 0x01 0x00 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xD9 0x73 0x50 0x42 0xAA 0x8D 0x75 0x72 0x28 0xD6
0x82
0x03
0x83
0x78
0x24 0x01 0x01 0x00 0x16 0x06 0x03 0x03 0xFF 0xFF 0xFF 0x00 0x02 0x03 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0x77 0xE9
0x83
0x00
0x80
0x7B
0x57 0x01 0x0A 0x16 0x06 0x07 0xFF 0xFF 0xFF 0x00 0x02 0x03 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xFE 0xC2 0x08 0xC2 0x08 0xC2 0x08 0xC2 0x08 0x42 0x28 0x42 0x28 0x42 0x28 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xF4 0x61
0x80
0x01
0x81
0x7A
0x02 0x1C 0x00 0x1B 0x1D
0x81
0x02
0x82
0x79
0x17 0x00 0x35 0x33 0x36 0x4D 0x62 0x29 0x00 0x00 0x00 0x00 0x53 0x2D 0x44 0x4F 0x53 0x5F 0x36 0x00 0x00 0x00 0x00 0x00 0x00 0x23
0x82
0x03
0x83
0x78
0x02 0x1C 0x02 0x3B 0x5F
0x83
0x00
0x80
0x7B
0x17 0x28 0x32 0x36 0x38 0x4D 0x62 0x29 0x00 0x00 0x00 0x4D 0x53 0x2D 0x44 0x4F 0x53 0x5F 0x36 0x00 0x00 0x00 0x00 0x00 0xCA 0xC7
0x80
0x01
0x81
0x7A
0x02 0x1C 0x03 0x2B 0x7E
0x81
0x02
0x82
0x79
0x17 0x28 0x35 0x33 0x36 0x4D 0x62 0x29 0x00 0x00 0x00 0x00 0x53 0x2D 0x44 0x4F 0x53 0x5F 0x36 0x00 0x00 0x00 0x00 0x00 0x78 0xF4
0x82
0x03
0xFE
Ping
Pong
0xFE
0xFE
Ping
Pong
0xFE
0xFE
Ping
Pong
0xFE

The grey boxes are my annotations for what I believe is occurring. More will be added as I work it all out.

Filed under: Retro No Comments
20Aug/180

Melbourne – The view from Tarneit Station

I've just recently posted photos of B74 leading through Tarneit and it occurred to me that I've now got a historical record of the changes to the landscape in the area.

The amount of building that's been going on behind the trains in the scenes below says it all. The first shot is from July 2016, we then have October 2016 and finally July 2018.

DSC05106

DSC07089

DSC04028

Sure, 2 years is a huge gap... things happen... nappy-valleys get built... but... it's just cool to see the change when I never even intended on recording it! Melbourne's urban (or rural?) sprawl is actually pretty hideous... these poor people will spend a quarter of their lives in their cars parked in traffic jams on highways.

Filed under: AUS No Comments
18Aug/180

DOSBox – Serial INTERLINK to Another PC

So, I recently had Interlink running between two REAL machines. It occurred to me though: Wouldn't it be cool if we could use a USB-Serial adapter on a newer machine and use Interlink from DOSBox to transfer out files? You could then copy anything into the DOSBox HD and get it onto your vintage unit. Great if you have no network, CD or are just sick of unstable floppy disks!

The requirements

DOSbox happily talks to real COM Ports. We'll want DOSbox running real DOS, so follow a guide like Transmission Zero has here to install DOS to a read HDD image. Firstly, download an SVN build of DOSbox. Then download the 256mb image and get your DOS disk images here. After copying everything into the dosbox folder, grab the dosbox configuration from your user profile (you might have to boot DOSbox up once first!) and bring it over as well. I renamed the disk images to make it easier and then edited the configuration as follows:

[autoexec]
imgmount 2 "hdd-256mb.img" -size 512,63,16,520 -fs none
boot .\D1.IMA .\D2.IMA .\D3.IMA

Run DOSbox and you should be presented with the DOS installation screen. Use CTRL-F4 to rotate through disks. Finally, you should be at the DOS prompt!

Serial Ports

Now for the serial configuration. First up, I'm going to show you a neat trick to get everything tested and working. We're going to use a virtual serial port between two instances of DOSbox to prove that Interlink works in the emulated environment. There's a plethora of virtual com ports available for Windows and they all vary greatly... officially I want data to flow from one COM port to another virtual COM port, so I'll need software that'll do this; you'll find that a lot just want to send data over a network. If you have Windows XP or lower (Windows 7 might still work also), then use com0com. Otherwise, if you need signed drivers then Eltima's Virtual Serial Port Driver is pure magic... but expensive. You get a 14-day trial with the standard version, so plan ahead and use it as much as possible! I've actually sent out a plea for help, asking for a cheaper license for just a single 'null-modem' serial port.

port-config

So, you've installed a pair as the above picture. To get here you simply installed the VPSD and chose all default values. You now have a COM1 and COM2... or maybe you have COM20 and COM21... (my laptop has no REAL comports, so COM1 and COM2 were available) regardless, we need to edit the configuration (as per the DOSbox manual) of your DOSbox instance and update the serial1 line to:

serial1=directserial realport:com1

Save it, close it and run dosbox. You should see one connection on one of the virtual ports in the port configuration application...

one-conn

Whilst DOSbox is running, edit CONFIG.SYS and add the line DEVICE=C:\DOS\INTERLNK.EXE to the bottom. Once this is done, close DOSbox and copy the entire folder to a new folder. Rename this to server, or somesuch. Go in and edit this configuration to point to the second comport of your virtual two.

dosbox-to-dosbox

From here, you can boot up both DOSbox's and see that they connect to either side of the virtual com ports. You can then run INTERSVR from the prompt of one node and INTERLNK from the prompt of the other and you'll then connected! Totally pointless... but we've proven that Interlink via serial port works in DOSbox!

Intercepting data...

Just in-case I wanted to spy on the data, I thought I'd try something quickly with C# and the SerialPort class. I set up two pairs of com ports, connected DOSbox #1 to COM1, DOSBox #2 to COM4 and limited their speeds to 9600. I then used the following code to write a quick WPF app to see if I could get the data to traverse...

	<Grid>
		<Grid.ColumnDefinitions>
			<ColumnDefinition/>
			<ColumnDefinition/>
		</Grid.ColumnDefinitions>
		<TextBox Grid.Column="0" Name="FromText" TextWrapping="WrapWithOverflow"></TextBox>
		<TextBox Grid.Column="1" Name="ToText" TextWrapping="WrapWithOverflow"></TextBox>
	</Grid>

That's the WPF, just two text fields to see the data... then the c# to hook it altogether...

	public string FromData { get; set; }
	public string ToData { get; set; }
	private SerialPort port1 = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
	private SerialPort port2 = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
	public MainWindow()
	{
		InitializeComponent();
		port1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
		port1.Open();
		port2.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
		port2.Open();
	}

	private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
	{
		var port = ((SerialPort)sender);
		byte[] data = new byte[port.BytesToRead];
		for (int b = 0; b < port.BytesToRead; b++)
		{
			int fromPort = port.ReadByte();
			data[b] = (byte)fromPort;
		}
		if (sender == port1)
		{
			port2.Write(data, 0, data.Count());
			Dispatcher.BeginInvoke((Action)(() => {
				FromData += " " + BitConverter.ToString(data).Replace("-", "");
				FromText.Text = FromData;
			}));
		}
		else
		{
			port1.Write(data, 0, data.Count());
			Dispatcher.BeginInvoke((Action)(() => {
				ToData += " " + BitConverter.ToString(data).Replace("-", "");
				ToText.Text = ToData;
			}));
		}
	}

Starting the app saw the relevant COM ports fire up in the port configurator... then I booted DOSbox:

hack-job

Hahaha... it's 99% working. I wonder how hard it'd be to disect the entire chat and build an emulator. I had to limit everything to 9600 as my code doesn't auto-negotiate the speed. Without the limits, the client Interlink was speeding up to 115200 BAUD and the server had no idea what was going on.

I'll dig into those bytes in another post... the data looks pretty simple and might be easy to emulate... anyway... what was the point of this post? Oh yeah!

Talking to real metal

Back to that 286 from the previous post about Interlink. Let's talk to it! This time, instead of virtual ports, we're going to talk to real ports. I've got a USB Serial port which will help out a lot here.

DSC04113

I used this recently when talking to the Apple II. It's always good to know that things work before mucking around with them. I also ended up using the real serial port on my main desktop. Either way, any serial port will work.

Install your COM port and make sure your DOSbox configuration is correct as per the hardware port number. Mine is COM1 on this main desktop.

serial1=directserial realport:com1

Then simply boot up as you've done before with DOSbox. This time the client (or server) will be over the real wire.

DSC 02511

Crikey! It just-worked(tm). The laptop happily saw the data in DOSbox. Easy file transfers! I wonder if I can make a Windows app that'll just let you share a drive?!

Filed under: Retro No Comments
17Aug/180

DOS – Serial File Transfers

This was meant to be easy... I was building a 386 for sale on eBay and had a spare 286 laptop hanging around. I was also selling a 4-metre NULL-MODEM cable which I wanted to list as 'tested'.

First, a warning: Don't let the magic smoke out

There's an age-old notion of magic smoke. This smoke is contained in electronic components and, most importantly, needs to stay inside them. Usually the mistakes of an impulsive, rash, impatient user will cause the smoke to escape. Once it has, there's usually no going back... or if there is, then you'll be spending a lot of time/money trying to get back to the spot you were at prior to the damage.

In this case, I did it to the old 286 laptop used below. On the back of the machine, there's two female DB-25 ports. They're not labeled and I thought I was simply in luck! They've already put a correctly oriented serial port (COM2) on there for me!

DSC 02501

Turns out not... turns out one is the printer port (duh!?) and the other is for an external floppy drive. Regardless, I plugged my null-modem cable into the printer port and one electrolytic capacitor started cooking. I turned everything off quickly and inspected the damage. Yup, just one black capacitor (it was meant to be orange!) Unfortunately, when I powered the unit up, the capacitor kept cooking! Currently I've just disconnected it... could just be that that cap was shorted or reverse-polarised and fried... could also be that the whole LPT1 port is dead... gonna be hard to test.

DSC 02491

Anwyay... I later found the part that labeled the ports... DOH! Where were we?...

InterLink

Would you believe that DOS 6.0+ came with serial transfers as standard? There's an application in-built known as INTERLINK. From here you just set one machine as the server with INTERSVR.EXE and the other as the client with the INTERLNK.EXE application itself.

DSC 0315

The basic idea is to load the INTERLNK.EXE as a driver first, in CONFIG.SYS. You can configure extra options here, but if your connection is correct then it should just-work(tm).

DSC 0316

Cabling

The best method is to use a specific printer cable, affectionately known as a LapLink cable. This is a cross-over cable for printer ports and is only used for transferring of files. The next best bet is a null-modem cable which does the same thing, but via the serial port, and supposedly slower as there are less data lines.

We're going to use a null-modem serial cable today and you'll find any number of methods for creating one. You can get adapters that'll convert a standard serial cable, entire cables that are 'null-modem' or you can just create your own.

I had actually picked up a 4-metre 'null-modem' cable from a misc eBay auction and wanted to try it out. This had a male plug on one end and a female on the other and didn't quite make any sense. Hence it allowed me to plug it into the wrong port on the laptop (as mentioned above) and wreak havoc. After that little mishap, I decided to just use other spare parts and rig up my own.

I've spoken a bit about serial cables before, but the basic idea is that there's a DTE and DCE end. It's a standard client-server relationship. In our case, our servers need to talk to eachother, so we need to adapt then of of a cable to allow it to connect. The goal is to cross over the transmit and receive lines to have data transfer correctly. There's also some supporting wires to allow data-handling negotiations to take place. You'll find all the wiring methods on the Wiki page.

DSC 0318

Somehow, I found both a female DB-9 and DB-25 in the junk box and followed the first diagram on the wikipedia page. It was only three wires, GND from 5-7, RX from 2-3 and RX from 3-2.

DSC 0320

For the life of me, I couldn't get this to work. Interlink just wouldn't see the other end of the cable. I then tested both ports (just to see if I'd fried more parts in the laptop) with a serial mouse and everything worked fine. From here, it must be the cable, right? Maybe it needs to be more fully-fledged with the other data/signal lines linked up. This site seems to indicate further handshaking is required.

I browsed back to the null-modem page on Wikipedia to work out the other wires to hack together. Something then occurred to me... the DB-29 port has RX and TX the other way around! Why would they do this? Regardless, I simply disconnected my taped and twisted wires and ran 2-2 and 3-3 through directly.... the result? Success!

Configuring Interlink

Before you even think of entertaining this idea, make sure your ports are tested functional with a mouse and that you've gone over your wiring 16 times prior. Make sure you've re-read your serial port pinouts and that you have traced each wire. As mentioned above, the DB-25 RX and TX lines are swapped when compared to the DB-9 pinouts!

DSC 0322

Once you're feeling game, edit CONFIG.SYS on both your machines and add the line DEVICE=C:\DOS\INTERLNK.EXE on BOTH server and client! At this stage, you can reboot the server. It'll boot up and will spit out a little 4 line message indicating that it's loaded the driver, what disks are mapped and what printer ports are mapped. It'll also tell you that no connection is available. Once at your command prompt, run INTERSVR.EXE. You'll be presented with a pretty boring screen indicating the current activity.

Now, return to the client and reboot it after saving changes to CONFIG.SYS. When this one boots up, you'll hope to see that it's connected. Initially I didn't and it just tells you in CAPS that no connection is available. At this point, it's actually checked all of your ports for a server. This is both your printer and COM ports, so it actually really means that it couldn't find a server! I had this a lot at the start and began fine-tuning the configuration, attempting to limit it to a single com-port with /COM:2 switches... but it ended up being my cable!

DSC 0327

Once you're up though, it's all easy! As per below, you'll be told what drives/ports are mapped and it really is as easy as just switching to that drive and listing directory contents, or copying from them!

DSC 0323 DSC 0325 DSC 0326

DSC 0328

I pulled over A-Train (quite quickly, actually!) and tried to run it on the 286 Laptop... it's not VGA, so we didn't get far at all. But it's a 286 without VGA, what was I expecting? Might need to try Railroad Tycoon... I wonder if I can Interlink that over from DOSbox?

Filed under: Retro No Comments
10Aug/180

Editing InfoPath 2013 Form Code

Turns out Microsoft, in their infinite wisdom, decided that InfoPath Designer 2013 will only work with one specific version of Visual Studio. If you don't have the correct bits installed, you'll get this:

Browse over to here for downloads. Note that there's around 16 versions of Visual Studio 2012 to choose from. Do not choose Visual Studio 2012 Express! Also do not choose the standard 2012 version as it seems to be a link to some other random installer. Instead, select Visual Studio Professional 2012 and install it... You should then get the following error:

From here, just hit download (direct link here to Visual Studio Tools for Applications 2012) and then install/repair. I had tried to install it first and so had the extra message that it needed repairing.

7Aug/180

That Time Microsoft Saved Apple

Hah, I don't often post things like this, but Gizmodo just had a great article reminding us of that time that Microsoft saved Apple. Back in the day, there was a patent fued from Apple, against Microsoft, who had decided that MS had used too much of their 'design' in Windows. As Apple had been in a financial mess, Apple actually had to bend over and apple MS to invest $150 million to keep it afloat. From this, MS got an amazing deal!

Jobs really does deliver the whole thing tongue-in-cheek and the crowd plays along well. The video, from start to end, is a perfect summation of the entire scenario back when Jobs had just re-taken the throne.

1Aug/180

Sony Picturebook – CD-ROM, RAM, Linux and WiFi

This poor little machine has been in its box for quite a while. I bought this Sony PCG-C1VS/BW PictureBook a while ago from Retro ShopBox on eBay (highly recommended!), but just hadn't gotten around to really using it! It's in great condition, with the only real issue being a missing battery latch, but the battery is still nice and snug. I've recently picked up a CD drive for it and can now install random OS'sss! I also found a RAM upgrade to max the poor thing out.

64mb Memory Upgrade

This unit is limited to 192mb of RAM, coming with 128mb RAM as standard. This means that, somewhere in the universe, there's 64mb upgrade cards floating around. I had to scour Yahoo Auctions Japan to find the component and used Buyee to get it over here.

DSC04289

DSC04295

Installation couldn't be any more simple. Flip the unit over, undo the single screw, open the case and insert the card.

DSC04297 DSC04298 DSC04299

DSC04300

Yey! 176mb usable RAM after the Video took 16mb? (Below Linux only seems to think it's 8192kb... what's a CMS?)

PCMCIA CD-ROM Add-on

I found the CD drive on Yahoo Auctions at the same time as the memory upgrade above. It was to be more economical to ship them all at the same time.

DSC04301

DSC04302 DSC04303 DSC04304

Note that the PCMCIA card and cable are fixed; there's no ability to remove them. Sony thought ahead though! You can actually run the cable in the space provided under the drive, with the card finally popping into it's housing to be tucked away!

DSC04305

DSC04354

And check that out, the drive even comes with an eject pin! It's neatly housed underneath and locked away when the PCMCIA card is slotted in. Very handy to get your CD back our when you've disconnected the drive! No more paper clips.

DSC04306

I love that it shows the raw name of the ATA hardware. It's a Ninja!?

RedHat Linux 5.2

I purchased this beautiful boxed set from a flea market a while back and got it running on an old 386. I simply assumed it would just work on this unit also. The Transmeta Crusoe emulated an x86, right?

DSC04308

There was a floppy disk, but I can't run both a CD and Floppy drive at the same time... fortunately CD1 is bootable!

DSC04310

...unfortunately, that's where it stopped... no amount of boot arguments got the boot process any further than the above line.

RedHat Linux 7.2

It was obviously going to be an uphill battle from here, so I prepared myself with a little google'ing. Of course, people have already gone and installed linux before, so it was totally possible. The main point was to choose a distribution that was of the same era (or maybe even 6-months older than the unit) to make sure that there had been time for the community to make everything compatible. I ended up chosing RedHat 7.2. Note that this isn't RedHat Enterprise Linux! Well, I lie.. it is, but RedHat 7.2 is actually RHEL 2.1.

DSC04317

DSC04318 DSC04319 DSC04323

DSC04325

Default boot parameters caused resolutions that were well out-of-range for this unit's display (1024x480). I fought a little.. lowres nearly worked, but didn't let me actually see the required buttons! I decided to just go with text mode.

DSC04326 DSC04327 DSC04328

Make sure you configure the x-server at the end and set a resolution that will display! I chose 640x480.

DSC04329

DSC04330 DSC04332 DSC04333

From here the unit booted nicely! We were at the login screen, but I wanted to set the resolution correctly, once-and-for-all. XF86Config-4 had created by the Anaconda installer and was the file I needed to edit to get the proper modeline in. At the graphical login prompt, you can switch to any text console by pressing the CTRL-ALT-F[1-4] key combination. Hit CTRl-ALT-F1 and log in as the account you set up during install; or log straight in as root. Switch to root (if required) (su -) and then edit the XF86Config-4 configuration file located in /etc/X11. You'll need to use vi if you've installed no other editors! Browse down to the Monitor section and add the following ModeLine (press the insert key to start editing):

"1024x480" 65.00 1024 1032 1176 1344 
                  480  488  494  563 -hsync -vsync

Once saved (: w q) you can press CTRL-ALT-F7 to get back to the graphical login screen. From here, choose Menu and then Restart X-Server... yosh!

DSC04337 DSC04338 DSC04339

Sound also actually just-worked(tm) out of the box, albeit a little choppy.

Wireless Networking: Belkin F5D7011 v1000

I have other PCMCIA Wireless cards, but this one happened to be in the same box as the laptop. To get it going, we'll need to use ndiswrapper which is a neat windows-drivers-on-linux translation layer utility, and luckily my card shows up as supported in the hardware compatibility list. Following the changelog, we'll need to download Version 1.48 2007-09-19 or earlier, as they dropped support for our Kernel (2.4) in version 1.49. The main list of downloads it here, and v1.48 is here.

As I've got no network yet, I'll need to either burn a CD, or use a thumbdrive... Don't forget to download the actual windows drivers (I need the F5D7011 v1000) and extract them on the windows side first. But! That link didn't work, so I actually found them here.

From here, things got murky... turns out 1.48 of ndiswrapper needs a newer kernel. I tried lower versions and found that 0.1 tried to compile. It actually built! But then told me that I needed a kernel with loadable module support. Oh good... should we recompile the kernel? Can't! No sources! Downloaded the RPMs for that here.. then performed rpm -i. Ok, sources... let's try make them... make config.. I just hit the enter key through most of it... made sure you that I answered the question to loadable modules. Then I followed this to build the required components: make, make dep, make bzImage, make modules, make modules_install. Copied bzImage to boot, edited grub.conf... reboot... fail...

DSC04345

I might just upgrade to a newer version of Linux.

Wifi: Buffalo WLI-PCM-L11G

Just worked when I plugged it in... no eth0 or wi0 though? WPA Supplicant would be needed, but it didn't want to run with my base 7.2 kernel. the earliest release.

DSC04346 DSC04348 DSC04349

Can't work with the driver? I have no idea if it even works with my card :(

Other distributions?

Moray Allan has a post regarding Linux on the C1VE. It details debian and installation procedures. But that would/could still cause me to have a kernel that doesn't support WPA. Either way, I scoured ISOs are available here.

DSC04359

Choose to Expert install and set a proper video mode, otherwise you'll get the screen above. I failed the installation as it's netinst and I needed my PCMCIA slot for the CD!

DSC04360

What about Puppy? Make sure you choose a version that is both non-uefi and non-pae! Currently to be found in here. It tried to boot the ISO and then failed to find it. So I copied the ISO to a USB and had that inserted on boot. It found it and tried to go further but then got stuck at the sound module, letting out an awful noise that seemed to be destroying the hardware!

Filed under: Vaio No Comments
31Jul/180

Modernising a Vintage Fluoro Magnifying Lamp

I found this thing a while back at the flea markets in Canberra and instantly decided that I needed it. I mean, who doesn't need a lighted magnifying glass on their workbench!?! It sorta reminds me of the Pixar Lamp.

DSC04059

DSC04201

Out with the old...

This unit had a 12" fluoro tube, which worked very well. I often just used it to light the apartment... but from this, could also often hear an audible buzzing from the ballast. Although the ballast provided a nice weight at the base of the adjustable arm, I wanted it out... or at least off!

DSC04202 DSC04216 DSC04218

To gut everything, I first removed the tube and associated housing. It then became apparent that the wiring went through a DPST switch and nice heavy-duty cabling was therefore already provided for me.

DSC04227 DSC04229 DSC04231

The next step was to remove the ballast. It turns out here that they've actually glued it into the base. Not a bad thing, I'm happy to just disconnect it as the weight it handy. Doing so, I simply gutted all the wiring to the terminal block and then wired in my own power brick.

DSC04233

From here, I quickly tested the power supply and polarity.

DSC04238

In with the new...

It was off to Jaycar again to find some LED strip lighting. This turned out to be really easy! It comes in short segments and already has circuitry embedded requiring a 12v power supply. Each segment needs only 50mA and the brightness is insane for the power usage. I purchased 8 segments (at a guess) to hopefully run a full lap inside the lamp recess.

DSC04208 DSC04215 DSC04239

Tinning up the wires, they were then soldered on the correct way around.

DSC04239 DSC04241 DSC04242

And a quick test...

DSC04244

Finally, the backing was peeled off and the strip was secured around the inside of the shade.

The result

I was a little concerned when I tested it during the day... that all changed when I turned it on at night!

DSC04245 DSC04246 DSC04281

DSC04280

Yes, that's a 386DX40 rendering 3D cubes... and doing pretty damn well!

25Jul/180

Of Pin Straightening and CMOS Batteries

Whilst rebuilding a motherboards thought long dead, I have been required to perform a myriad of tasks. These have been related to anything from re-building PCB traces to fabricating batteries to straightening IC pins. Honestly, there's nothing quite like a good challenge and, recently, there's been nothing short of serious challenges appearing on my workbench!

CMOS Batteries

Some older motherboards have the batteries soldered on... or worse... incorporated into the freaking CMOS RAM chips! Luckily, this latest motherboard had no provisions for an on-board battery. Instead, it just had the usual 4-pin header for an external battery. Of the four pins, the two next to eachother are ground and the single pin to the side is positive. Don't be fooled by the CON1 label thinking that anything with a 1 should be positive!

DSC04155

I ended up at the usual Jaycar franchise and purchased a coin-cell holder and plug socket. It's a little chunkier than a standard header, but it is so much easier to work with!

DSC04150

Solder everything up and determine which way is positive. Note that, for coin-cells, the positive side is the 'bottom'. I had always assumed it'd be the 'inner-ring' (as per AA and AAA and all other batteries)... but it ain't. So be careful!

DSC04151 DSC04152 DSC04158

Once rigged together... install!

DSC04162

Yosh! Worked like a charm. If only all motherboards came with external batteries... the next mobo on the shelf has so much corrosion that I just feel like throwing it out.

Pin Straightening

Whilst doing the previous Recycle-Shopping-Tour-Of-Kumamoto, I stumbling across this 100-yen dream. It's a 386/486 era CPU with an alloy heatsink to obscure its actual identity!

DSC04073

I spent no extra effort breaking it out of the bag... and probably bent more pins... I wonder if works? Or what spec it is?

DSC04076 DSC04078 DSC04082

First step... pop that heatsink off. This required a fair amount of jimmy'ing...

DSC04083

Ooooo! It's a 486 DX2/66. This is seriously my favourite 486 CPU. So much natsukashiiii.

DSC04084

Will have to find a motherboard to slap it into... but before I even have a chance to do that, it's time to break out the tweezers. Actually, I discovered a better method this time around. Use a credit-card/transport-card/library-card to align an entire row of pins at the same time!

DSC04087

Nothing like being an adult and using adult tools!

Filed under: Retro No Comments