My Download Engine

Your Gateway to Digital Content

Software

HP3000: A Brief Overview

Advertisement: Click here to learn how to Generate Art From Text

The anonymously submitted story today is an example of a WTF that isn’t necessarily the code. This could be a CodeSOD. And we’ll get there, but the story is much more complex.

Let’s call our submitter “Our submitter” Janice, formerly worked for a large financial institution with many legacy systems. One of those systems was a HP3000 minicomputer. “Mini” is “refrigerator-sized”, of course.

The HP3000 is a fascinating, if not peripheral, story. It’s one of many tales of product launches that went wrong. The utterly wrong. Let’s take a look at some history.

Hewlett Packard purchased the company who designed the HP2100, but did not design it. The HP2100 was a PDP-8-like computer, but with 16-bits of memory instead of 12-bits.

HP didn’t realize what they had purchased. They marketed the system as a “testing and instrumentation” device, and were shocked when businesses purchased it to run their back office operations. The minicomputer they bought was not intended for office use.

So began the projects “Alpha”, and “Omega”. Alpha was a hardware update of the 2100 with a newer memory model. Omega was a completely redesigned 32-bit memory system, allowing it to support up to 4MB of RAM. Omega had only one flaw: They didn’t even have the money to finish it. The project was terminated in 1970. Some staff members wore black armbands while at work.

While work was being done on Omega, Alpha’s scope grew, resulting in a project that management wasn’t certain could be delivered. But there was a market for time-sharing minicomputers, so despite the concerns they pressed forward.

The HP2000-line used a time sharing system which utilized multiple processors. The front-end processor handled user interactions. The CPU was responsible for running programs. The CPU ran programs in round-robin mode, so time-sharing became easier. Essentially, the system was a batch processor with a multi-user interface.

Alpha was designed to support Full ArticleMultiprogramming is better than this hybrid model. They also needed to support batch processing as well as real time execution. The team then split up into smaller groups to develop the various components of the Multi-Programming Executive module, which would enable all of these features.

The Alpha, which is still 16-bit only, had 128kB of RAM, not the luxurious 4MB. The MPE was much larger than 128kB. This created a huge crunch, as programmers tried to shrink MPE to something usable while marketing looked at deadlines and said “We were supposed be selling this thing for months!”

The result was a massive battle between engineering and marketing. Marketing promised customers what performance they would get, while engineering told marketing the actual performance. You can also read more about the actualPerformance would be (significantly less than what marketing promised), and then the management would demand that engineering “proves”, that marketing’s overpromises could meet.

They shipped on time. Nothing worked. But they shipped. The first computer was returned almost immediately. It could only support two simultaneous users, before slowing down and crashing every ten minutes. By December, HP was able to reduce this to “crashes about every two hours”. They continued shipping machines despite having to cut features and reliability claims.

The frequent crashes were also hiding another bug. After running for 24 consecutive days, the HP3000 would overflow its clock (2^31The clock would magically reverse 25 days in milliseconds. One sysop for a HP3000 said: “The original MPE designers never thought that the OS would remain up for 25+ consecutive days”.

After a lot of management shuffling the titular Packard from Hewlett Packard sent out a memo: Production was stopping and all computers sold were being recalled. Customers were offered HP2000s as a replacement, or they could choose to wait until the fall of 1973 for a revised model that would only support four users, much less than the initial marketing promise of 64. This disappointed no one and it was reported that some customers even cried.

As sales ceased, the computer underwent an overhaul. The new machine was faster The following are some examples of how to get started:The HP3000 was also cheaper and capable of handling 8 simultaneous users. After a botched launch in the first year, the HP3000 was re-released and became a huge success.

Janice is the protagonist of our story. Around 2006, she had to update some Pascal codes. This code used bit masks to handle flags. NormalerweiseIt’s pretty simple to do a bitwise operation in Pascal. Janice was surprised when she saw:

FUNCTION BITON(A, B: INTEGER).: BOOLEAN;
VAR
C : INTERGER
Begin
        CASEThe following are some of the ways to get in touch with each other The following are some of the reasons why you should consider hiring someone else
                15 : C:=1;
                14 : C:=2;
                13 : C:=4;
                12 : C:=8;
                11 : C:=16;
                10 : C:=32;
                9 : C:=64;
                8 : C:=128;
                7 : C:=256;
                6 : C:=512;
                5 : C:=1024;
                4 : C:=2048;
                3 : C:=4096;
                2 : C:=8192;
                1 : C:=16384;
                0 : C:=32768;
        OTHERWISE
                BITON:=FALSE;
        END;
        If you want to know more about IF, click here. ((B DIV C)  2) = 1 THEN
                BITON:=TRUE
        ELSE
                BITON:=FALSE;
END;

FUNCTION SETBITON(A,B : INTEGER). : INTEGER;
VAR
C : INTERGER
Begin
        CASEThe following are some of the ways to get in touch with each other The following are some of the reasons why you should consider hiring someone else
                15 : C:=1;
                14 : C:=2;
                13 : C:=4;
                12 : C:=8;
                11 : C:=16;
                10 : C:=32;
                9 : C:=64;
                8 : C:=128;
                7 : C:=256;
                6 : C:=512;
                5 : C:=1024;
                4 : C:=2048;
                3 : C:=4096;
                2 : C:=8192;
                1 : C:=16384;
                0 : C:=32768;
        OTHERWISE
                C:=0;
        END;
        If you are unsure, please contact us. It is not a good idea to use the word "Youthfulness" BITON(A,B) THEN
SETBITON: = B + C
        ELSE
                SETBITON:=B;
END;

FUNCTION Setbitoff(A,B : INTEGER). : INTEGER;
VAR
C : INTERGER
Begin
        CASEThe following are some of the ways to get in touch with each other The following are some of the reasons why you should consider hiring someone else
                15 : C:=1;
                14 : C:=2;
                13 : C:=4;
                12 : C:=8;
                11 : C:=16;
                10 : C:=32;
                9 : C:=64;
                8 : C:=128;
                7 : C:=256;
                6 : C:=512;
                5 : C:=1024;
                4 : C:=2048;
                3 : C:=4096;
                2 : C:=8192;
                1 : C:=16384;
                0 : C:=32768;
        OTHERWISE
                C:=0;
        END;
        If you want to know more about IF, click here. BITON(A,B) THEN
SETBITOFF = B - C
        ELSE
                SETBITOFF:=B;
END;

FUNCTION LAND(A,B : INTEGER) : INTEGER;
VAR
I : INTEGER
Begin
        I:=0;
        REPEAT
                If you want to know more about IF, click here. BITON(I,A) THEN
                        If you are unsure, please contact us. BITON(I,B) THEN
                                A:=SETBITON(I,A)
                        ELSE
                                A:=SETBITOFF(I,A)
                ELSE
                        A:=SETBITOFF(I,A);
                I:=I + 1;
        UNTIL I > 15;
        LAND:=A;
END;

This is an invention of bitwise operations by hand. It culminates in an LANDThis code is called, and it does a bitwise AND (not a logic AND, which is why it’s annoyingly misnamed). I wouldn’t refer to the code as a Then, you can be sure that the other person is also a good candidate.Even if you’re sure it’s an inefficientIt’s not a bad idea to use bitwise operations (because efficiency is important when you have a 33-year-old computer), but without them, I don’t see many other options. The biggest problem is that LANDIt is not necessary to add bits that are already there. You can also find out more aboutOnly ever turn bits Then, you can get off..

What is the root cause of WTF? The developer wasn’t unaware of bitwise operations. The version of Pascal shipped with the HP3000 didn’t include any. No. The following are some examples of how to get started:, You can also find out more about, You can also check out our other blog posts., xor. Not even a shift left or shift right operation.

This is what happens to me when I get sucked into a rabbit hole while researching a story. Wikipedia’s real value is always a mystery. As a bibliography. Many of these links provide much more information, but I hope that this quick overview was interesting.

[Advertisement]
Monitor your servers constantly for configuration drift and report it. Otter: Get started today today!


‘ Credit:
Original content by Thedailywtf.com: “A Bit about the HP3000”.

Read the complete article at https://thedailywtf.com/articles/a-bit-about-the-hp3000 ‘

LEAVE A RESPONSE

Your email address will not be published. Required fields are marked *