IBM 5155/5160 - Adding a DS1216E Real-Time Clock (RTC) Module
Acknowledgements: Mike Brutman, 'RailDavid', and Zenith Data Systems
The motherboard of the IBM 5155 (IBM Portable PC) and IBM 5160 (IBM XT) contains no battery supported real-time clock (RTC) functionality. Thus, every time that those computers are powered on, the clock in DOS defaults to 01JAN1980 00:00:00, needing to be manually set to the current date and time.
The traditional way to add battery supported RTC functionality to a 5155 or 5160 is to add an expansion card that contains that functionality. The DS1216E is an alternative solution to a card. The DS1216E is a module that contains a battery supported RTC clock. It gets positioned between the U18 BIOS ROM chip and the U18 socket (photo), and software gets run at computer power-on that copies the date and time within the DS1216E into the clock within DOS.
STEP 1: Acquire a DS1216E
Verify that you have the 'E' version of the DS1216. Click here to see a verification method.
WARNING: See here for a concern regarding the battery.
STEP 2: Fit the DS1216E to the motherboard
WARNING: All DS1216E modules that I purchased, have fragile pins. Yours may be the same.
Fit the DS1216E to the motherboard. It fits between the U18 BIOS ROM chip and its socket. The reason we use U18 rather than U19 is due to a requirement of the software that we will be using later.
1. Carefully remove chip U18 from its socket.
2. In its place, insert the DS1216E, observing correct orientation (notch in DS1216E aligns with notch in socket).
3. Into the DS1216E, insert chip U18, observing correct orientation (notch in U18 aligns with notch in DS1216E).
A photo of the result is here.
STEP 3: Acquire the supporting software
Get it from Mike Brutman's web site: The file is DS1216E.ZIP and is at the page at here.
From DS1216E.ZIP, extract the program named CLOCK.EXE, then copy it to somewhere that the IBM 5155/5160 can run it.
I have a hard drive in my 5160, and I chose to copy CLOCK.EXE into a directory named 'RTC' on the hard drive.
STEP 4: Run CLOCK.EXE
If presented is, "Invalid response from Real-Time Clock!", then something is wrong.
If instead, a date and time (although incorrect) is presented, then things are as expected - proceed.
STEP 5: Set the clock in the DS1216E to the current date and time
The clock in the DS1216E presently has the incorrect date and time. We will correct it now.
We do this by running CLOCK.EXE again, but this time, specifying the current date and time.
As I am writing this, it is 3:22 PM on Saturday, the 25th of June, 2016.
So what I specify to CLOCK.EXE is:
C:\RTC\> clock 06/25/16 15:22:00 saturday
STEP 6: Test #1
What we will do now is verify that CLOCK.EXE can fetch the date and time stored in the DS1216E (correct) and set that into the DOS clock.
C:\RTC\> date <---- This command will show the date in the DOS clock
Current date is Sat 6-25-2016
Enter new date (mm-dd-yy): 05-05-1999 <---- Setting date in DOS clock to 05-05-1999; something other than the current date
Current date is Wed 5-05-1999 <---- Verification that the date within the DOS clock is now 05-05-1999
Enter new date (mm-dd-yy):
Date: Saturday 06/25/2016 Time: 15:23:10.41 <---- Current date and time being fetched from the DS1216E, then that being put into the DOS clock
Current date is Sat 6-25-2016 <---- Verification that the date within the DS1216E was put into the DOS clock
Enter new date (mm-dd-yy):
STEP 7: Configure computer so that CLOCK.EXE runs at power-on
Use whatever means you have to edit the AUTOEXEC.BAT file to include CLOCK.EXE
For example, in my AUTOEXEC.BAT, I added the line: C:\RTC\CLOCK
STEP 8: Test #2
The 'acid test'.
Power off your computer. Wait 5 minutes. Power it on. You now expect that the clock in DOS is set to the current date and time.