Subscribe via RSS
18Sep/180

Japanese Railway Freight Timetables

These are the freight watchers guide to Japan. They include both JR Freight and private companies. I've previously used them to chase The Gakunan Railway, the Seino Railway (Minoakasaka) and the Chichubu Railway. Oh! Also the M250 Super Rail Cargo run by Sagawa Transport! (also see here) .. I recently picked up the latest copy...

DSC04864

Anyway, I looked at my shelf recently and realised I've got the collection from 2010 through to 2018! All of these have either been ordered from Shosen Books in Akihabara, or direct from the author website.

DSC04863

DSC04866 DSC04867 DSC04868

DSC04870

In each of them, if bought brand new, you get a calendar and the run diagrams. These diagonally plotted timetables show you the train paths and their layovers. It's really handy to find the places with the most crosses. Actually, I used the same mechanism when chasing The Southern Spirit here in Australia.

DSC04871

Note to the left is the main freight timetable from 1964 when the railways made the huge final switch from Steam to Electric/Diesel. It's known as yon-san-tou... (4,3,10) which translates to: October 1968, i.e. the 10th month of the 43rd year of Showa. At some point I want to actually compare large chunks of the timetables to see if there's any interesting correlations.

Until then, the goal is to just chase more freight in Japan! If you need a hand with information that might be available in these timetables, then drop a comment below.

Filed under: JPN No Comments
13Sep/180

Osaka Higashi Line Update!

I was just browsing satelite maps of Osaka and found that they'd expanded the bridge! (Previously reported here)

latest-higashi-osaka-line

From above, you can see the western on/off ramps are complete. The eastern side of the bridge has also now completely crossed the river. Actually, the construction equipment has also been removed!

The tracks were also re-aligned down at Shin-Osaka station...

2018-02-27 16 05 28-新大阪ライブカメラ (Sin-Osaka Cam) - YouTube

You can see a whole lot of over-ballasted track in the bottom-to-mid-right of the image above. That's where the tracks will merge in from the above ramps.

The railway was 'optimistically' meant to open last financial year... so we're already 2 months behind... but the construction is looking very promising!

10Sep/180

6029 Returns to Canberra (for a weekend)

The irony... or, at least I think it's irony? I don't know anymore. But, whatever, I didn't need an excuse... what a great reason to return to Canberra for the weekend! 6029 came back to the place where it had been stored for decades and then rebuilt (to then assist in causing the failure of the railway museum) to run tours to Queanbeyan and Bungendore.

Here's the event link, but I can't see that link lasting long at all. It's not overly unique? Anyway, the basic idea was 4 shuttles to Queanbeyan on Saturday morning, followed by a single afternoon return trip to Bungendore. Then sunday was three full return trips to Bungendore.

The Line

It turns out that Canberra was an afterthought. To get to Canberra, railway vehicles first traverse the logging line to Bombala, but only until Queanbeyan where the Canberra branch actually starts. Railways were always about freight... and Canberra hadn't been invented yet... so the line that exists between Goulburn and Bombala was actually due to the need for wood, with an extension to Canberra built later.

It's a very short trip between Canberra and Queanbeyan, hence why they managed to schedule in four shuttles on the Saturday morning. There's not much along the line as it's quite flat between both stations.

Getting to Canberra from Thirlmere

It turns out that this was part of a larger rail cruise. Cruise Express ran their Southern Rail Spectactular event from Sydney to Melbourne and return. It included branchlines, steam engines and multiple consist changes. SRHC even got their standard-gauge consist set up for this specific event! It was also fun watching the consists hold up traffic in either direction...

procession

And again Northbound...

procession-2

Saturday, 1st September 2018

GL112 was attached on the rear and the train made it into Canberra Railway Station (Kingston) for it's first trip at 0900. All went well and I was waiting on the northern side of Jerrabomberra Creek. Beautiful sunlight and only 2 other onlookers.

DSC04610 DSC04612 DSC04620

DSC04623

DSC04635

DSC04632 DSC04636 DSC04640

From there, I attempted to get the return from the back of Bunnings in Fyshwick, but there were no good vantage points. The carpark at DFO would've been on the wrong side, with the sun directly in ones face. A quick shop at Jaycar for a DB9 socket for a mouse rebuild and then off to the back of Nick Scali furniture to catch the 10am outbound.

DSC04646 DSC04650 DSC04653

DSC04656

DSC04659 DSC04660 DSC04662

Another two onlookers... one being naughty on the wrong side of the fence... and then it was off to Queanbeyan to watch the return shuttle.

DSC04671

DSC04665 DSC04675 DSC04679

From there, it was family time for lunch. I managed to watch the 12pm shuttle depart before this... not before seeing a whole range of stupidity though... people just seem to think that crossing a yard is appropriate? They were quickly told to move on!

DSC04684 DSC04687 DSC04690

DSC04693

4201 then rolled in with a NSWRTM water gin!? I love unexpected surprises! 6029 then departed.

DSC04696 DSC04700 DSC04703

DSC04699

Later in the afternoon, I found enough time in the afternoon to watch the Bungendore return trip at the bridge just past Queanbeyan station. Lots of interest here this time and great sunlight. It's an awesome spot for inbound movements.

DSC04707 DSC04721 DSC04736

DSC04727

Sunday, 2nd September 2018

First-things-first on a Sunday morning in Canberra: Jamison Trash'n'Treasure, Mitchell Tip Shop, Woden Trash'n'Treasure and then Mugga Tip Shop. Found a few tid-bits, but nothing to call home about. Actually, Mitchell Tip shop was a bit out of control: they wanted AUD$25 for a monitor and set of computer speakers... what kind of 'gourmet' do they think they're selling? It's literally rubbish!

Made it back home to switch cars and then to Kingston railway to catch up with friends to grab some aerial video of the Bungendore shuttles. In the yard, 42103 and 4201 were hanging around, keeing the crowd entertained.

DSC04737

First stop was to be the bridge at Burbong, NSW. It's a great location, amazingly scenic, but the sun isn't always in the best location!

Fortunately, for a drone, the sun is absolutely no issue. Line-of-sight with too many trees can be... but we managed to find a great location. Nathan even had the 'VR' headset so I was watching the drone's viewpoint as he was flying it... pretty damn amazing!

DSC04745 DSC04743 DSC04755

DSC04761

DSC04766

The train came in due course and ... it was beautiful. The locomotive was at full-tilt (the exhaust may well exclaim that) and the sights and sounds were awesome. It passed quite quickly but we caught further footage whilst everyone else was packing up.

DSC04767

And now, the best part... the drone footage! (Make sure to turn the quality right up!)

The next spot was in the Molonglo Gorge. I'd actually never been here... even though I'd lived in Canberra for ~28 years. Seriously disappointing actually, as it's an amazing location! The railway line snakes along the gorge hill-side through two tunnels and there's a few spaces along the access roads to get some great shots.

DSC04770 DSC04769 DSC04771

Another pilot had a drone out (exactly the same model) and our flight paths were negotiated to not get in eachother's way. Not exactly an easy thing to do as your viewpoint from the drone can be based on the film you're trying to take rather than the drones around you... and they can also have the same idea... so we had our wits about us. There's also a no-fly-zone towards Queanbeyan, but we were far enough away from it.

DSC04776 DSC04783 DSC04785

DSC04781

After that, it was back to family time before jetting back off to Melbourne. Usually my weekends are pretty quiet in Canberra, but this one was fantastic. Can only thank the NSW Rail Museum for the entertainment!

Filed under: AUS No Comments
5Sep/180

What RAM slots are these?

I recently found a relic on eBay. It's an AST Bravo 4/33 (not the LC!) and has a very proprietary motherboard. I'd seen the photos and I thought I saw standard 72-pin SIMM slots. Turns out I was totally wrong... I've never seen this size before!? There's a similar-but-not-quite motherboard diagram here, but the jumpers are in different locations. The strange RAM also doesn't get a mention?

DSC04800

Turns out they're neither 30-pin, nor 72-pin! Did AST decide to use Apple's proprietary 64-pin SIMMs? There are similar (68-pin) 256kb and 512kb SIMMs on eBay, but they don't match the pin-count and they're for VRAM in older Apples? There also seems to be other something resembling RAM soldered onto the motherboard, but I can't find any information to determine if that's actually RAM or just cache. Either way, the machine just beeps once when power is applied. The beep sounds like a standard "NO RAM" boot error. There's also a fried electrolytic capacitor.

...Actually, I just found two 64-pin 4mb SIMMs for an Amiga... Let's see if they work when/if they arrive...

Filed under: Retro No Comments
27Aug/180

Melbourne, Australia – August, 2018

There's been a bit of heritage activity around Melbourne recently and I thought I'd post a few pictures up-front, rather than letting them rot away in the albums.

Steamrail's Snow Train

This consist runs twice a year from Southern Cross to Traralgon. From there you can venture off on other tours of the countryside. It's usually run by two R class steam locomotives, as it was this year. I happened to ride on it last year, so instead chose to take photos of it this year.

The train ran on Sunday, 5th August. This perfectly aligns with the usual Sunday trash and treasure market adventures, and so I waited near the Oakleigh market. This also happens to be where the Skyrail comes back to earth, so I attempted a shot of the train coming off the viaduct.

DSC04371 DSC04375 DSC04380

DSC04386

As you can see, R711 was up front and they powered through beautifully.

Excuse the long wind-up, you could hear the train coming well before you saw it!

707 Operations with R707 and A66

Another Sunday (26th August), another set of flea markets and another consist of vintage goodness. It even went the same way... and so did I. But this time I had enough time to get home and deliver the randomness I picked up before it came past the apartment. Therefore... the usual spot first, with the new location. It's a little harder to get the right shot as the train was on the furthest track!

XTrap through South Yarra A66 approaches Hawksburn A66 approaches Hawksburn

A66 approaches Hawksburn

And the poor steamer was getting lugged along behind. Perfect logic though, no running around when it wanted to return in the other direction!

R707 in tow through Hawksburn

It then came back through and I caught it around the bend at South Yarra. There were a few random trains in between though... like the steelie!

Steel rounds the bend from Richmond Steel rounds the bend from Richmond Steel approaching South Yarra Bridge

G536 on Steel approaching South Yarra Bridge

A multitude of sparks...

ComEng departs South Yarra Siemens approaching South Yarra Station XTrap approaches South Yarra Double ComEng at South Yarra R707 through South Yarra Station

And yes.. then the main event...

R707 through South Yarra Station R707 through South Yarra Station R707 through South Yarra Station

R707 through South Yarra Station

And so that was the first trip... To Berwick and return. The second leg was to Stony Point and back, with a 20min stop at Patterson on the way there.

A66 approaching Patterson A66 approaching Patterson A66 approaching Patterson

A66 approaching Patterson

The stop wasn't overly practical... as it was really for the passengers and there wasn't much platform to stretch out on.

A66 at Patterson for tour photo-stop

I snuck down to the fence and, regardless of the lighting, I snapped away as the train departed.

A66 and R707 depart Patterson A66 and R707 depart Patterson A66 and R707 depart Patterson

A66 and R707 depart Patterson

A66 and R707 depart Patterson

Always perfect to see these tours sell out and history preserved!

Filed under: AUS No Comments
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/1810

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 10 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/181

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 1 Comment
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