HP9826/36 PowerFail option RTC?
Does anyone have any info how the realtime clock in the powerfail option for those computers worked and how it was interfaced to the BIOS? Option 050 as it was called. There is an article in an old issue of the HP Systems Journal that talks a bit about it but not in much detail.
|
|
We had a HP9826 setup with the Powerfail option on the HP8566 production line. It worked very well in keeping the HP9826 running during AC blackouts and to allow the hpl software to have a controlled shutdown of the system at the appropriate time, when the blackout continued almost beyond the battery capacity.
NOTE: The HP9826 we had ran 24/7 for over 100,000 hours (11+ years) along with a HP9134A 5MB Hard Disk, with a minimal amount of shutdowns along the way due to power-outages and/or maintenance. The HP9826 was the data server in a HPIB based network that we used to connect all the HP8566 Test stations together, running hpl. I still have the HP9134A and it still runs fine even after 30+ years. Its internal 5 MB Hard Disk was built by the HP Disk Memory division and it is built like a tank. If memory serves, you would see the Powerfail option listed in the hardware portion of the HP9826 boot screen. But that is the extent of the "BIOS" knowing anything about it. The individual language (i.e. hpl and HPBASIC) had the knowledge/commands on how to use the Powerfail option. The option consisted of installing a battery/board/module into the bottom of the HP9826 / HP9836. I've attached an image showing the panel on the bottom of these computers where the hardware would be installed. I've attached an excerpt from the Hpl operating/programming manual, which talks a bit about the option and how to use it. I have the installation manual for the option and probably HPBASIC usage info as well, but I will need to dig around for the paper copies.
|
|
The Power fail board. I've never mounted it.
On Wed, Jan 8, 2020 at 7:10 PM +0100, "rmb_guru via Groups.Io" <rmb_guru@...> wrote:
|
|
I guess the powerup sequence identifies it pretty much like in identifies all the other peripherals, by scanning the "slots" in memory, looking for a signature. A bit like the way the old IBM PC scanned memory looking for 55 AA. Does anyone know if this scanning is documented anywhere? In this scenario, I am just interested in the RTC part.
|
|
Dave McGuire
On 1/8/20 1:10 PM, rmb_guru via Groups.Io wrote:
We had a HP9826 setup with the Powerfail option on the HP8566 productionAn interesting option. I have one of these in one of my 9826s. It made quite a mess when the batteries went, but I'm pretty sure I can get it cleaned up ok. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
|
|
Anders,
I dug out my HP98270F Powerfail Option Installation manual, scanned it and put it into the files section in the HP9000 S200300 folder. The manual has a theory of operation section, block diagram and schematic of the Powerfail board. The RTC circuit is implemented in discrete ICs with an Intel 8041A microprocessor interface. NOTE: The main clock oscillator for the RTC is a 1813-0226 IC that has a 819200 Hz output. The IC is very scarce and so far I haven't found any information on it, it could be a custom HP created IC. Enjoy,
|
|
David Collins
On Tue, 14 Jan 2020 at 12:29, rmb_guru via Groups.Io <rmb_guru=yahoo.com@groups.io> wrote: Anders,
|
|
Great! Thanks!
|
|
It appears that it communicates through two memory locations. Perhaps one could reverse-engineer the protocol, given enough time. Surely, a breadboard adapter would help...
|
|
On Mon, Jan 13, 2020 at 06:26 PM, David Collins wrote:
Now also loaded into the hpmuseum.net website.Thank you David. I was going to look into how to submit the PDF to the HP museum, but now it is already done. However I just noticed that it has the wrong title. It should say 98270F, not 98207F, the 7 and 0 were reversed :-(
|
|
David Collins
My apologies ! All fixed now..
On Wed, 15 Jan 2020 at 07:22, rmb_guru via Groups.Io <rmb_guru=yahoo.com@groups.io> wrote: On Mon, Jan 13, 2020 at 06:26 PM, David Collins wrote:
|
|
Interesting circuit, very edudcational! :) Might be a bit of an overkill for what I want to do though. All I wanted was for the clock to be set to the right date/time when I start up, so I came up with this brilliant idea:
Have a disk in disk 0. On that disk is an AUTOST that just reads a file RTC.BIN that has the current time and sets the clock.. The disk is not a real disk, but my HPDisk. RTC.BIn is just a 1-sector binary file. HPDisk knows where it is (by reading the directory when mounting the image) so when the 98x6 asks for that sector, it replies with a value from an onboard RTC instead. Setting works the same way, the RTC is updated when the sector is written. I have no RTC on HPDisk right now, but I have already prototyped one for another project.
|
|
On Tue, Jan 14, 2020 at 11:25 PM, Anders wrote:
Interesting circuit, very edudcational! :) Might be a bit of an overkill for what I want to do though. All I wanted was for the clock to be set to the right date/time when I start up, so I came up with this brilliant idea:Anders, Your RTC.Bin solution sounds good for your next generation of HPDisk. I am definitely interested in eventually getting one of your HPDisk setups/boards. So what writes/initializes the RTC.Bin file? On stand-alone HP Disks (LIF, HFS) the OS (i.e. HPBASIC) supplies the file/dir timestamps. On filesystems coming from something like SRM or SRM/UX, the server uses its own clock for setting the file/dir timestamp. I've attached an excerpt from one of our AUTOST files that we did in the past when we had Series 200/300 machines booting from SRM or SRM/UX. We too would create a file on the server and pick-off the timestamp from the file system catalog. NOTE: SRM or SRM/UX stands for Shared Resource Management, which is a network that has a central server providing things like a main filesystem (for booting/reading/storing files) and central printers and/or plotters and tape backup. The network can either be the original old 50pin serial cable version (150 feet max), 50 Ohm coax version (1000 meter max) or in the case of SRM/UX, an ethernet LAN version (unlimited distance) I've also attached a paragraph of the TIMEDATE HPBASIC command for reference, which explains a little bit about how TIMEDATE is set initially. I've also attached some HPBASIC tips that J-F Garnier posted concerning TIMEDATE anomalies.
|
|
On Wed, Jan 15, 2020 at 11:34 AM, rmb_guru wrote:
So what writes/initializes the RTC.Bin file?I think hat one could have a small program that asks for the date/time and writes the file. The RTC on HPDisk will have a lithium battery that will keep it running for years. I originally investigated that for a printer/plotter emulation where having the correct date on the plot/printfiles. There you would set the RTC through a speciallly formatted print command from say a spectrum analyser. I will study the material you sent me.
|
|
Still working on this. I skipped the idea t keep the 98x6 time value in the RTC. It is an ieee real, 64 bits that the DS2417 is 32 bits, but that is no real problem and besides is it far easier to read two integers. I will just decide on an arbitrary zero date. In my case jan 1 2000 and when I set the time I subtract that from the TIMEDATE and write the result as two integers. When reading I do the opposite, read the two integers, combine and add my zero date.
Code is ready, but I seem to have misplaced the three DS2417's I bought three years ago. Easily done as they are really small...
|
|
With fw 0.10 or later you just create a BDAT file on the disk (image). The file needs to be in the first part or the directory as I will only search the first sector of the directory. If that file is present and you have added "RTC 1" to the CFG-file, HPDisk will take note of that and every time you read the BDAT file you will get the data as four integers from the DS2417. If you write four integers to that file, you set the clock. You can then have an AUTOST program that reads the time when you power up your computer and a small program to set time Set time 10 INTEGER B1,B2,B3,B4 20 REAL Start,Now,R1,R2,R3,R4,V 30 CLEAR SCREEN 40 PRINT "WELCOME - PLEASE SET TIME" 50 !CREATE BDAT "RTC",1 60 Start=DATE("1 JAN 2000") 70 LINPUT "ENTER DATE AS 1 JAN 2020",D$ 80 LINPUT "ENTER TIME AS HH:MM:SS",T$ 90 SET TIMEDATE DATE(D$)+TIME(T$) 100 Now=TIMEDATE-Start 110 R4=Now DIV 16777216 120 V=Now MOD 16777216 130 R3=V DIV 65536 140 V=V MOD 655366 150 R2=V DIV 256 160 R1=V MOD 256 161 B4=R4 162 B3=R3 163 B2=R2 164 B1=R1 170 ASSIGN @File TO "RTC" 180 OUTPUT @File,1;B4;B3;B2;B1 190 PRINT "WROTE B4:";B4;" B3:";B3;" B2:";B2;" B1:";B1 200 ASSIGN @File TO * 210 PRINT Now 220 ENDN Autost 1 INTEGER B4,B3,B2,B1 2 REAL Start,Now,R4,R3,R2,R1 10 CLEAR SCREEN 20 PRINT "WELCOME - SETTING TIME" 60 ASSIGN @File TO "RTC" 70 ENTER @File,1;B4;B3;B2;B1T 71 PRINT "READ B4..B1 ";B4;" ";B3;" ";B2;" ";B1 72 Start=DATE("1 JAN 2000") 73 R4=B4 74 R3=B3 75 R2=B2 76 R1=B1 78 Now=Start+R4*16777216+R3*65536+R2*256+R1 80 ASSIGN @File TO * 90 PRINT Now 100 SET TIMEDATE Now 101 PRINT DATE$(TIMEDATE);" ";TIME$(TIMEDATE); 110 ENDN Note that I quite arbitrarily chose Jan 1 2000 as zero to give me a manageable 32-bit value. Internally the 98x6 stores time as a double-precision REAL. I also used four integers as the 98x6 does not have unsigned integers
|
|