PDA

View Full Version : Compaq Portable clock calendar adapter driver



EddieDX4
August 14th, 2010, 01:16 PM
I just received a Compaq Portable clock calendar (and serial port) adapter card, albeit poorly packaged and the PCB slightly warped (grrr), but it seems to be working... At least the Serial port seems to be.

However, I remember there being some sort of driver or utility that is loaded during system startup to enable the clock calendar. Does anyone have this that would be so kind as to zip it up and make it available to me? :)

I'm running MS-DOS 6.22 on my Portable, not the original Compaq DOS, so I'm lacking all of these tools.

Thanks in advance!

P.S. I checked with a DMM and the battery seems to be in operating order. The machine is definitely not keeping time, though... Hoping it's just this driver/utility missing.

Lorne
August 14th, 2010, 01:28 PM
Can you post a photo of it?
Who was the manufacturer?
I have a similar thing (real time clock card with IEEE 488 conn) for the Osborne 1 - who knows, maybe they were manufactured by the same company.

EddieDX4
August 14th, 2010, 01:38 PM
Can you post a photo of it?
Who was the manufacturer?
I have a similar thing (real time clock card with IEEE 488 conn) for the Osborne 1 - who knows, maybe they were manufactured by the same company.

http://i854.photobucket.com/albums/ab110/hotchalupa/Compaq%20Portable/IMAG0264.jpg

Full card pic, here (http://i854.photobucket.com/albums/ab110/hotchalupa/Compaq%20Portable/IMAG0263.jpg).

Chuck(G)
August 14th, 2010, 02:10 PM
The National Semi MM58167 was used on a number of early PC XT-type cards. Fortunately, the datasheet is online, so all you need to do is determine what I/O port it's mapped to and you can write your own clock routine. Easy.

EddieDX4
August 14th, 2010, 02:19 PM
The National Semi MM58167 was used on a number of early PC XT-type cards. Fortunately, the datasheet is online, so all you need to do is determine what I/O port it's mapped to and you can write your own clock routine. Easy.

I just found a "clock.sys" file within a Compaq DOS 3.31 disk image file. I'm going to give that a go in config.sys and see what comes out of it. If not, perhaps I should go hunting for that IO port address and see if I can make you proud.

EddieDX4
August 14th, 2010, 02:27 PM
Just wanted to add, on a different disk image I just found setclock.com. I'm thinking clock.sys will load the clock/calendar information into the DOS clock, and setclock.com sets the current time from DOS to the RTC... These are all assumptions, but I'll confirm what happens.

If they do work in this manner, if anyone is in need of these files let me know. I had actually "lost" these disk images in my file server, but just found them (reason why I created this thread).

EddieDX4
August 14th, 2010, 03:10 PM
Here's my findings...

- CLOCK.SYS is definitely the right driver.

- It requires Compaq DOS 3.31 to be loaded. Under DOS 6.22, it started then complained about the DOS version being used not being the correct version.

- SETCLOCK.COM is the same thing as the DATE command. Nothing fancy.

I do like Compaq DOS 3.31... It adds a subtle, audible CLICK through the speaker when you press keyboard keys. I think that's a nice touch...

So, in later versions of DOS (5 and above, if I remember), you have the ability to fool executables into thinking they're running under a different version of DOS. Is this possible for drivers loaded via DEVICE= in config.sys? If not possible, I'll keep using DOS 3.31. I don't think I'll be doing anything with the Compaq that requires a version of DOS newer than that.

EDIT:

Ahhh, and after the fact, I find this page...

http://www.seasip.info/VintagePC/compaq.html

With the following, useful information:

Real Time Clock
The serial card in the Deskpro has a battery-backed real time clock. A custom CLOCK.SYS is provided to communicate with it. From the code, I would guess that the clock chip is an MM58167, mapped between ports 02C0h and 02DFh.

CLOCK.SYS detects the clock by checking that the top 7 bits of the value read from port 02D4h are zero [This is the 'status bit' register on an MM58167]. All values held in the clock are BCD, and get converted to and fro in reads and writes.

The MM58167 has 8 bytes of memory, which in the Compaq are used thus:

Register Meaning
08 Status flag? If this is not either 0C0h or 0D0h it is set
to 0C0h. It also seems to be used by the leap year check.
09 The month last time the clock was checked. If this is
greater than the current month then the year has rolled over
(the MM58167 does not check for year rollover)
0A Year (presumably minus 1980).
0B Set to 0DEh when the status flag is reset.


UPDATE: Okay, I've been really rusty on DOS as of late. I realized that SETVER works for .SYS drivers/programs as well. A simple SETVER CLOCK.SYS 3.31 did the trick.

My Portable is happily reporting the correct date under DOS 6.22. :)

james1095
September 8th, 2010, 04:18 PM
I recall using the AST SixPakPlus clock drivers on a number of different clock boards back in the day. IIRC it worked fine on DOS 6.2, although I recently played with a machine that had one of those cards and found it seemed not to be Y2K compliant.