Category: retro

Digital X-Ray of Toshiba Libretto 50CT

Click to expand image

If you ever wanted to see how everything inside your Toshiba Libretto 50CT lines up, this x-ray pretty much shows it all.  The Libretto still is a fantastic piece of engineering that is is even more impressive when you consider it was released in 1997.  I remember going to Computer City in Kirkland back in those days and drooling over this system.  It impressed me at that time that you could have a fully functional and reasonably powerful PC that was the size of a video cassette.  It was $2000 back in those days and depending on your needs, probably worth the money.  I bought mine off of eBay recently for $15. 🙂

Click to expand image

The Toshiba Libretto 50CT came with windows 95 when it was brand new but it’s far more useful to me as a DOS computer since I’m interested in playing with hex files under DOS as well as running retro games.  There have been a couple of challenges along the way since it wasn’t designed to be used with DOS.  One problem with the Libretto is that it does not have a hardware volume control.  It’s a very small computer so presumably Toshiba wanted to cut every piece of non-essential hardware possible.  I’m thankful that the sound works at all but it has been running at full blast up until now.

The Libretto uses an OPL3 sound chip but luckily that is Sound Blaster compatible.  I found a great archive of DOS sound programs.  Oddly, right at the very top of the list, I found the exact program that I needed called BCCVOL.  I downloaded the program to my Libretto and after unzipping it, typed:

bccvol ?

This gave me something like:

Master volume level = 9

Wave volume level = 9

Synthesizer volume level = 9

CD volume level = 1

Line volume level = 1

To cut a long story short, I put a line like this in my autoexec.bat and now when the computer starts up, it puts the sound at a comfortable volume of 4:

C:\utils\bccvol m4

I don’t believe the program is a TSR so I don’t think running it uses any memory.  I think the program simply toggles the proper registers and then exits so there should be no conflicts caused by using this program.  This will probably also work for most any other laptop computer without a hardware volume control on which you are trying to run DOS.

Click for a larger screenshot

This is going to be short and VERY special interest but I wanted to put it out there since I’ve searched all over the internet and back and couldn’t find the answer myself.  If you need to get into the bios on your Toshiba Libretto 50CT, reboot it and hold down the ESC key until it comes back with a prompt that says:

Check system.  Then press [F1] key.

After that, the rest is pretty obvious.  Hopefully this is useful to someone.  BTW, I believe that 6.60 is the latest bios revision available.  I have not tested this but supposedly if you click here you can get the latest bios for the Libretto 50CT.  Apparently you need to put it on a 720K formatted disk according to other things I’ve read but it’s hearsay and I don’t really know for sure.

I made a short video tour of one of my favorite books from when I was a kid.  I shot it with my Canon 5D mkII and then tweaked it a bit in iMovie.  I’m trying to familiarize myself more with the video features of my camera.  I’ve only had it for 2 years now so it’s about time I figure it out. The music is a track I made nearly 10 years ago on my Korg ER-1. I always considered it somewhat unfinished but it worked fine for my video.

I’ve had this book since I was about 5 or 6.  It was made in 1985 by Sharon Gallagher.  This book was one of the few that I kept from my childhood.  It has always captured my interest even to this day.  Though the contents may be a little dated, most of the information still holds true oddly enough.  These days, this book is a bit of a collector’s item.  It’s available at Amazon and last time I was at Ada’s Technical Books in Seattle, they had a copy available.

I haven’t installed Windows 98 in a LONG time but my Libretto is a Pentium 75MHz so Windows 98 is a reasonable choice of an operating system for it since thus far I’ve been unable to make a modern Linux distribution work with the system.  I wanted to how well Windows 98 stacks up to a modern operating system.

I have a pair of Libretto 50CT’s.  Both of which have adapters so I can use Compact Flash cards as hard drives instead of the noisy and power-hungry 810mb drives that ship with them.  This allows me to swap out drives quickly and easily.  Since the Libretto won’t boot of the pcmcia CD-ROM drive and I no longer have the Windows 98 startup floppy, I simply placed the Compact Flash card in a different ancient system for installation purposes.  That worked out just fine and the install went smoothly.  Before I put the card into the Libretto, I did the smart thing and copied the win98 directory off of the CD-ROM onto the hard drive for future reference.  The reason for this follows…

Windows 98 has some idiosyncrasies compared to a more modern OS like XP.  Pretty much every time you sneeze on some configuration parameter, you are required to insert the Windows 98 CD, copy files off of it and reboot the system.  Yes, this is archaic and annoying but back in 98’s heyday, hard drives were MUCH smaller so you wouldn’t have wanted to waste a bunch of disk space storing all of the CAB(cabinet) files.  People complain how XP and newer systems are so bloated, this is one reason that they are…  The CAB files are on the hard disk AND they have MANY MANY more drivers preloaded so that many hardware devices are covered on at least some level.

After I got Windows 98 installed and the CAB files copied over, I swapped the Compact Flash card into the Libretto.  As expected, when it first booted up, it updated drivers for the Libretto’s hardware configuration.  It needed to go through a couple of reboots to get it right but they were soft reboots.  An advantage of Windows 98 was that it was built on MS-DOS so it had the ability to soft-reboot where it would just kill the GUI and go down to the DOS level and restart from there.  This saves you the pain of the POST sequence and ram count.  After it was booted up and running, I was surprised and impressed that ALL the hardware seemed to be working perfectly.  I was expecting to have to track down Windows 98 drivers for the screen and sound but the Windows 98 second edition seems to have the Libretto 50CT covered perfectly.

Next, I wanted to get some wifi working so I found a SMC 2632W 16-bit PCMCIA wifi card in my stash.  First I’ll mention the bad…  WEP only.  As far as I know, there are no 16-bit PCMCIA wifi cards that support WPA/WPA2.  No surprises here.  I have a sandboxed access point to connect WEP devices to anyways so no worries here.  On the good note, SMC still has the Windows 98 driver for this particular card available on their website.  I copied the driver onto another CF card on my MacBook and put it in an adapter in the PCMCIA slot in the Libretto, after I copied it to the system, I remembered something else… No built in unzipping tool.  Back to the web I found an old pkunzip.exe file somewhere and copied that onto the Libretto.  I put pkunzip in the C:\windows directory and associated it to zip files and ran into another failure.  Pkunzip doesn’t respect directory structure of the zip files by default so I found the dialog to edit file associations and added a “-d” parameter to the pkunzip command.  This fixed the issues and I was able to move on with the installation.

I inserted the card and then pointed the hardware wizard at the desktop where I had unzipped the SMC drivers.  This went fine but the driver is REALLY kludgy.  There is no way to perform a scan of available access points(something else we take for granted).  Obviously I knew the AP I wanted to connect to but it took a reboot before it was all working properly.  After the reboot, I tried a ping….  SUCCESS!  So then I tried internet explorer and the home page it was set to actually crashed it.  I opened it back up and stopped the page from loading and then hit up google.  OUCH!  Surfing modern sites on this thing is SLOOOOOWWWW.  Oddly, surfing web 1.0 sites is just fine though.

The next thing I tried to do is Windows Update.  I went to the page and was informed that support had stopped in 2006 and only the updates to that date would be available.  Unfortunately, this did not prove to be true.  It appears that Microsoft has finally shut down the Windows 98 update servers entirely.  Not that I blame them but it would have been nice if they just scaled them down to one old server or something.  Oh well, I won’t be using this thing outside of a firewall anytime soon.

The last thing I did was put a keyboard banger program on this system for my son to mess around with.  He got a kick out of it and played with it for a good 45 minutes.  I think he likes this system because it’s so small.  His 2.5 year old fingers are probably the perfect size for touch typing on a Libretto.  🙂

While it may seem pointless at first I actually have a halfway legitimate reason for going through the effort.  First off, of course, I wanted to see if it could be done and how usable it would be.  Second, I was sick of taking the compact flash card out of my Libretto 50ct and sticking it in my Mac to put new files on the system.  I figured it would be easier to punch up a URL and download the file directly.

Now that the “why” is out of the way, now we need to cover the “what”.  What you need is a wireless card that has MS-DOS drivers available for it.  There are a couple but for me, the easiest to find was an Orinoco Silver/Gold card.  Part of the reason I went with this card is that it is NOT cardbus.  It’s a 16-bit pcmcia card so it works in my Libretto 50ct.  The Orinoco card uses an Agere chipset so in theory this may work for other similar cards.  Once you’ve obtained your card, you will need the driver which is available on this server.  That little zip file on there contains everything you need.

Now for the how…  The first part can be a bit interesting.  After you’ve stuck your card into the laptop and unzipped the file, you are pretty much interested in two directories from the zip file.  First you’ll need to deal with what is in the CAD directory.  Read the readme.txt first and you will find out that you need to run MSD(Microsoft Diagnostics) and find a free location in memory to use as a base address.  In the readme, the suggest using:


However this didn’t work for me.  I found another location that was suitable and inserted a line similar to this one into my config.sys:


That is what worked for me, your mileage may vary.  Reboot your computer and see if that works.  By working, I mean not getting an error.  After that is done, you’ll need to deal with the files in the PACKET directory.  First you’ll want to edit the PACKET.INI file.  This may disappoint some of you here but you only have two options which are open or WEP.  Hopefully you have a WEP router that is off in the corner of your network where it cannot hurt anyone.  In the packet.ini file, you’ll want to set the following lines most likely:

Wireless_Network_Name = ANY (put in your ssid)

Station_Name = John Does Notebook PC (obvious)

;Enable_Encryption = N (uncomment and change to “Y”)

;Key1 = abcde (uncomment and put in your key.  Use “0x prefix for hex)

After these things are done and the file is saved, you can try out your settings with:

wvlan42 /L

This should finally turn the light on your card on.  This means everything is probably working but it’s pretty hard to say at the moment because you don’t have ping or anything installed by default with MS-DOS.  Feel free to add that line to your autoexec.bat if you don’t want to have to worry about it in the future.  Now it’s time to download Arachne which is a fully graphical web browser for MS-DOS.  It’s the best one that I tested and the only one I could get to work.  Once you start up Arachne, you’ll need to set up some network settings.  The drivers above handle your layer 1 and layer 2 functions.  Arachne will pretty much handle the rest itself.  When I configured Arachne, I chose “Resident packet driver” and “bootp/dhcp”.  After that, you need to either restart or hit the “use new settings button.  If all goes well, you should be surfing like it’s 1999 all on your MS-DOS based laptop.

My Libretto doesn’t have a CD-ROM drive in it.  Sure there is an external drive that I can plug in and run but why would I want to haul around a drive that is almost as large as the whole computer just to play some old game that requires a CD-ROM drive to function?  Many of the old CD-ROM games are around 10mb anyways so it makes no sense to use a CD-ROM drive for them.  Even on a desktop, do you really want to monopolize your CD-ROM drive with a disk just to play one game?  I figured that someone out there must have a solution so I found one.  The problem was that I couldn’t find any documentation, just odd hints scattered across the web.

The program you need is SHSUCDHD and SHSUCDX.  These are part of a package called SHSUCD that is available here.  The whole package is pitched as a replacement for mscdex but the feature I’m interested in is just the emulation.  What’s nice about it is that it doesn’t require any TSR’s in your config.sys file.  You can either start it on demand or in the autoexec.bat file.  My goal was to run Wizardry 7: Crusaders of the Dark Savant.  So I put a chain of commands into a batch file that I run when I want to start that game.  The lines related to SHSUCD are as follows:

shcdhd86 /f:wiz.iso

shsucdx /d:shsu-cdh

This assumes that SHCDHD86 is in the same directory as wiz.iso.  SHCDHD86 is the same as SHSUCDHD if I’m not mistaken so hopefully that isn’t too confusing.  The first lines points the virtual cd-rom driver at the iso you wish to mount.  The second line specifies what drive letter bind the image to.  After all of this is done, you should be able to go to the D:\ drive and there will be the contents of your ISO.

In my spiffy batch file, I put commands to unload the cd-rom drivers after the game is done using them:

shsucdx /u

shcdhd86 /u

At some point, some clever folks figured out that a NES controller contains a simple 8-bit shift register that can be read by a parallel port.  There are really just 3 things that matter.  Those are CLOCK, LATCH & DATA.  The rest of the pins and the diodes are just for power and ground.

With my version, I actually used one additional pin for power which was pin 4.  According to some sites, 1n914 diodes are ideal but in my case, I used 1n4001 diodes which were readily available at Radio Shack in a grab bag and they seem to work just fine.  I think that almost any silicon diodes will do the trick in this application.  The only reason for them is so the power is not back fed through the port as a side effect of tying all the lines together.  Overall, this is a GREAT beginner hack if you are just learning about electronics since it doesn’t even require a circuit board.

After the hardware was done, the software is the next piece of the puzzle.  I am using sneskey as my driver.  Sneskey is a slick little program that allows you to map many different types of controllers to keys on your keyboard.  You don’t really run sneskey in the background as a TSR though.  Instead, you set up the sneskey configuration file to load your emulator.  In my case, I used nesticle.  To set this whole thing up, download I would just extract all the sneskey files into the same directory as you extract nesticle and it’s companion program dos/4gw.  After that, you’ll want to edit the nes.ini file and change the ProgPath line to look something like this:

ProgPath = c:\nesticle\nesticle

Check the key bindings while you are in there.  They should be fine though.  After that, you should be able to launch nesticle and sneskey with the following command:

C:\nesticle>sneskey nes

Once you have launched the program with your controller plugged in, go to settings –>  input  –>  device 1.  In there, make sure Keyboard 1 is selected.  If all went well, everything should work except A & B.  Hit “redefine keys” and click on “A”, then press “A” on the gamepad to bind the key.  Repeat the process for “B” and you should now be good to go.

Ever since the first time I saw a Toshiba Libretto I have wanted one.  For years I’ve been watching them on eBay but never wanted to pay the ridiculous prices that they fetched but finally I won my very own Libretto 50CT for $16.  Sure it’s insanely old technology now given that it’s a Pentium 75MHz(sorta) with 16mb of ram and a 815mb hard drive but it’s still a neat little computer and should be great for playing some old dos games and a few other uses I’ve yet to think of.  If you are not familiar with this computer, it is roughly the size of a VHS cassette tape.  Very small in other words.  This Toshiba Libretto 50ct was released in the USA around 1997.

One thing about this little machine that actually disappointed me a bit was that when I booted it up, I found the hard drive to be unbearably loud.  I mean I have 3 other laptops in the room and this one managed to overpower them all(sonically) by a significant margin.  No worries though because I came up with a solution.

While I admit that the Syba 2.5 inch IDE Dual Compact Flash Adapter costs almost as much as the laptop itself did, I have to also say that it was well worth it.  It was not a perfect fit however…  There are two problems with putting the Syba into the Toshiba Libretto.  First off, it’s too thick.  The Libretto hard drive is WELL under the normal spec at a super slim 7.5mm while the Syba is actually bloated for the spec it was trying to achieve.  The Syba is a fat 9.9mm instead of a more standard 9.5mm.  This was easily rectified by deshrouding the thing though.  Pulling off the unnecessary plastic slims the Syba adapter down to 8.7mm which is snug but ultimately does comfortably fit inside of the Libretto.

Click to expand

Next problem is also easy but the solution may not be for the faint of heart.  The Toshiba Libretto is expecting a keyed connector on the hard drive.  The Syba adapter, however, has all 44-pins as would be expected according to the spec.  The solution is to carefully line up the original hard drive and the Syba adapter paying CAREFUL attention to which direction is up.  Then simply take a pair of diagonal cutters and cut the interfering pin off your new adapter.  Doing this will also ensure that you will not need to fear screwing up the alignment when inserting the adapter into the Libretto.

One bummer about this setup is that the second CF slot is non-operational in the Libretto.  Apparently the controller does not have a second channel or it is used somewhere else.  One more bit of advice is the put the adapter in with no CF card in it so you can see to the bottom of the drive bay and line it up properly.  After that, stick your CF card in.  You can make a little tape tail for your CF card if you want your cards to be easy to swap out when you open up the drive bay.  I have not delved into performance benchmarking yet but so far it seems snappy enough for my purposes so I am pleased with the setup.  One final caveat I will leave you with is that this setup will not accept a micro drive since that is too thick.

My final assembled XT-IDE 8-bit ISA card

Once I started messing with my IBM PC XT, I realized that there were things I had taken for granted all along since my first PC compatible system was a 386.  I didn’t realize that IDE uses a 16-bit bus and it would take some trickery to use an IDE device in an older 8-bit system like the XT.  I searched around and found that there were in fact 8-bit ISA controllers but they were expensive and rare.  Finding one these days would be a stroke of luck or a dent in the pocket book.  I was about to design my own when I came across the XT-IDE project.  The XT-IDE project is an open source venture where a group of people designed exactly what I needed with fairly common off-the-shelf parts.  I had my friend James to burn the code onto the eeprom for me  because I have no way to put something on a 360K floppy disc but aside from that, the project primarily consists of easy through-hole soldering.

Front side of the unpopulated XT-IDE PCB

I ordered my board the other day from Andrew Lynch who can be found lurking in this huge forum thread.  It was $14 including shipping which I felt was more than fair considering the quality of the board.  It’s a very professional dual-sided PCB with a full solder mask and silkscreen.  It would take me far too much time to attempt to replicate this at home.  It’s also nice that it has all of the settings printed VERY clearly on the board and the url for so I won’t forget where I found this project.

The bill of materials looks a little daunting at first but it’s really not a huge project.  The list below references Jameco part numbers.  There are a few non-critical items and some others that you can pillage from other ISA cards such as an L-bracket, pan screws and shorting blocks (jumpers).  I’m personally going to skip using most of the sockets since I’m fairly confident with my soldering skills and dual-wipe sockets tend to add another point of failure.

1               XT-IDE PCB (get this from Andrew lynch)
10   25523 	CAP,MONO,.1uF,50V,20%
1    1945428 	CAP,RADIAL,47uF,35V
2    45129 	IC,74HCT688
1    46316 	IC,74LS04
1    46607 	IC,74LS138
1    47466 	IC,74LS32
1    287144 	IC,74F245,DIP-20
3    282642 	IC,74F573,DIP-20
1    74827     	Atmel EEPROM IC, 28C64
2    112214 	SOCKET,IC,14PIN,DUAL WIPE
6    112248 	SOCKET,IC,DUAL WIPE,20PIN
1    112272 	SOCKET,IC,DUAL WIPE,28PIN
1    526205 	SOCKET,IC,16 PIN,390261-4
1    690662 	RES,CF,150 OHM,1/4 WATT,5%
6    691104 	RES,CF,10K OHM,1/4 WATT,5%
2    857080 	MOLDED SIP,9PIN,BUSSED,10K,2%
1    333949 	LED,GREEN,572NM,T-1 3/4
1    1939562 	SWITCH,DIP,SPST,8-POS,16-PIN
1    53604 	HEADER,RT MALE,2RW,40 CONT
1    109568 	HEADER,.1 ST MALE,2RW,16PIN
1    109576     HEADER,.1 ST MALE,1RW,3PIN
2    2094389 	SCREW,PAN HEAD,PPN4-40X1/4
1    N/A        Keystone 9202 ISA bracket with 2 PCB mounting tabs.

Once I had all of the parts together, it was time to check out the build instructions.  This project is a VERY easy build.  All of the IC’s are labeled on the PCB, all of the caps are identical except one which is labeled and called out and all of the resistors are the same aside from the one that goes with the LED.  There are only two gotchas that I can think of.  First off, before you solder in the 40 pin IDE connector, you should pull the key pin out from the connector.  Grab an IDE cable and line it up with your connector, you will see which one is the key pin fairly quickly.  Secondly, the default dip switch setting is correct on the back side of the PCB but incorrect in the build instructions.  Set it to 01110111 as stated on the back of the card.  If you need to set this to a different setting, you will need to re-flash the firmware on the eeprom for some reason.  The default seems to work fine however so no big deal.

The original NCL MFM controller that came in my PC XT

Overall this project has cost me about $30.  I’ve learned some new stuff and I can now use my IBM PC XT with a modern IDE hard drive.  My next step will be to try to use the system with a compact flash card.  Now I can install MS-DOS 6.22 and hopefully Xenix at some point without disrupting the original MS-DOS 3.2 file system.

Powered by WordPress. Theme: Motion by 85ideas.