This article has not yet been rated on Wikipedia's content assessment scale. |
Disentangling HP BASIC
editHm. A quick search at HP's and Agilent's sites gives some hits on "HP BASIC", such as HP BASIC for Windows (HP) and E2045C HP BASIC/UX for S/700 Workstations (Agilent). The latter document states, among other things, that the BASIC covered is "Compatible with other HP BASIC platforms" -- which I'd guess means the DEC-inherited ones. I wonder if Compaq/HP built in such compatibility of their own BASIC with DEC's after acquiring DEC, or if DEC itself developed the compatibility as part of the continuing evolution of their BASIC on various platforms.
My question becomes: should we cover all of them in one article, HP BASIC, or perhaps in two, HP BASIC and VAX BASIC? The latter would be the best if the DEC-originated BASICs aren't directly related to the HP ones.
--Wernher 19:56, 22 Jan 2005 (UTC)
While I do not know if "HP BASIC/UX" is related to "HP BASIC for Windows", I do know that "HP BASIC for OpenVMS" is a totally different product. Some people on news group COMP.OS.VMS have speculated that HP should have renamed "Compaq BASIC for OpenVMS" to "OpenVMS BASIC" just to avoid this kind of confusion.
http://h71000.www7.hp.com/doc/basic.html
-- Neilrieck 00:21, 24 Jan 2005 (UTC)
I don't know anything about BASIC implementations created by the old DEC. But I can speak some about BASIC from the old HP. From what I understand:
HP created "Rocky Mountain BASIC" (RMB) as a software environment to support their automated test equipment. I've read that RMB was first created on DEC PDP hardware, but HP quickly moved it over to their then brand-new HP 9000 series (what is today PA-RISC and HP/UX). RMB implementations from HP have been called "HP BASIC", "HP BASIC/UX", and "HP Instrument BASIC". Another company, TransEra, cloned HP BASIC with their HT BASIC ("High Tech BASIC"). To confuse things further, for a time, HP licensed TransEra's product and called it "HP BASIC for Windows". Then they discontinued it, and now just sent people to TransEra directly. When HP spun off Agilent, Agilent got the leftovers of RMB.
If nobody comes forward with a better idea and/or more information, here is what I will do: I'll create a "Rocky Mountain Basic" article. The "HP BASIC" article will be changed from a simple redirect to a disambig with refs to "Rocky Mountain Basic" and "HP BASIC for OpenVMS". I'll add notes to both articles mentioning the other. I'll add a ref to "Rocky Mountain Basic" to the existing "RMB" disambig article.
--DragonHawk 18:23, 1 November 2005 (UTC)
Okay, I'm going ahead as described. I've already created the Rocky Mountain BASIC article, and I'm working on refactoring all the various articles on DEC-derived BASICs into this one.
--DragonHawk 01:14, 9 November 2005 (UTC)
I think I've got all the major clean-up, refactoring, and merging done. Hopefully this will clear up confusion and let people contribute their knowledge about each of the respective dialects. I'm getting the impression there's a lot of little-known history here that I'd hate to see get lost. On that note, does anyone know anything about something called BASIC-11? From what I can tell from mentions on Wikipedia and Google, I suspect it was the predecesor to BASIC-PLUS. Anyone have firm info on that?
--DragonHawk 19:57, 9 November 2005 (UTC)
- No, BASIC-11 was an interpreter program that was run (like many other interpreter programs executed from a command line). From RT-11 you would .R BASIC and it would "look" like BASIC-PLUS (Ready, New-or-Old:), but there is pretty much where the similarity ends. You write your code, type save, and when your done you say: system (I probably still have a copy laying around). Check current information in Talk:BASIC-PLUS and below for more on BASIC-PLUS. Bbump 05:34, 13 August 2007 (UTC)
2018 Proposed Changes due to Corporate Shuffles:
1) VSI (VMS Software Inc.) was created on 2014-July-31 with an agreement from HP to become the sole supporter of OpenVMS and OpenVMS code, including related products (eg. compilers, editors, open source offerings). This included qualifying OpenVMS on newer Itanium2 processors (Poulson and Kittson) as well as porting to x86-64.
2) HP split into two new companies (HP and HPE) on 2015-Nov-1 with HPE carrying the bulk of (perhaps all?) the enterprise products including ownership of OpenVMS
So at this point one wonders if this article should be renamed "HPE BASIC for OpenVMS" or just "VMS BASIC"
BASIC-PLUS
editMy recent merge from the BASIC-PLUS article to this one were reverted by Atlant, with the comment "BASIC/Plus has very little to do with *ANY* VAX BASIC; un-refactored.".
First, please note that I didn't just nuke this article; I tried to carefully refactor all the information into HP BASIC for OpenVMS.
Now, let me address Atlant's comment: BASIC/Plus has very little to do with *ANY* VAX BASIC
Well, the information in this and the related articles is limited, but from what I can tell, "very little to do" is certainly inaccurate. The names alone demonstrate that, and there is a fair bit more then the names to go on. Looking at the information in the articles, and knowing the progression of DEC's hardware and OSes, it seems reasonable to draw this line:
BASIC-11 -> BASIC-PLUS -> BASIC-PLUS 2 -> VAX BASIC -> DEC BASIC -> Compaq BASIC for OpenVMS -> HP BASIC for OpenVMS
It appears (again, from the content in the articles) that it was a steady evolution of DEC's full-featured BASIC environment. First an implementation of BASIC for the PDP, which was then enhanced ("PLUS"). The ability to compile to object code was introduced, that's a major deal, so BASIC-PLUS-2. VAX BASIC was PDP BASIC ported to VAX/VMS. The name became DEC BASIC when the Alpha chip meant it wasn't just VAX any more. Then there are the Compaq/HP marketing renames.
**If** my take is accurate, I don't see the point of having separate articles. We don't have separate articles for K&R C, C89, and C99. The articles will just be giant duplicates of each other. They'll have the same syntax descriptions, commentary on features, historical information, and so on.
If, on the other hand, this isn't the way things are, I think that's useful information, too. What *are* the connections between all these BASIC dialects? There are obviously at least some: The naming; the DEC origin and platforms; source compatibility between at least some of them. Where does that hold, and where does it break down? I see from Atlant's profile that he is certainly in a position to know about this stuff; hopefully he can contribute?
I do have a theory of operation I'm following here. I try to see things as a reader will. A reader looking for information on BASIC implementations for DEC systems doesn't care about the single-article/multiple-article distinction for the sake of itself. They want the information in the form that best delivers it. That information may be technical, in which case syntax, semantic, and implementation details will be wanted. I would think it is easier to maintain that information in one article vs many, if most of the information is the same. Or, the reader may be trying to get some DEC BASIC software working. In that case, the context of what implementations have what features on what platforms is useful. Or the reader may be interested in computer history, in which case the combination into one article is ideal. On the other hand, what does keeping them as separate articles gain us?
So, perhaps BASIC-PLUS belongs in a separate article, perhaps not, but I think it deserves a little more discussion then a simple denial. :)
--DragonHawk 01:40, 10 November 2005 (UTC)
- I'm sorry but for whatever reason I didn't see this discussion until just now. So here's my 2 cents. (It would have been $1.02, but apparently I'm a day late and a dollar short.)
- I really meant what I said; there's really very little in common between BASIC+ and the other DEC BASICs. The similarities that exist are in some of the language syntax but mostly in the marketing that DEC wrapped around BASIC-PLUS-TWO.
- BASIC+ was a captive language developed by the RSTS/E engineering group. It was a compact, semi-compiled language that was then interpreted by the BASIC+ run time system. The entire language (compilation and interpretation) fit into the 16KB or so run time system. A notable feature of BASIC+ was that it allowed interactive execution of BASIC commands so if a program was STOPped, you could type things like "PRINT SQR(A)" and the run time system would do it for you. This created a very powerful, simple environment for debugging. You never needed to resort to XDT or any other "external" debugger (unless you were debugging the Run Time System itself).
- By comparison, BP2 was developed by DEC's Languages and Tools group (probably called TLE -- "Technical Languages and Environments" at the time). BP2 was developed for the RSX-11 run time environment and it was a fully-compiled language that then executed via threaded code. Objects (.OBJ files) produced by the compiler than had to be passed through the RSX taskbuilder (TKB) to produced an executable image. No interactive debugging using BASIC was possible; you had to use one of the standard RSX debugging tools or PRINT statements and repeated compilation cycles.
- Personally, I found BP2 a stultifying environment after having enjoyed for years the easy interactive experience of RSTS/E and BASIC+. I tried to move some of my projects to BP2 and didn't enjoy the experience at all (and don't remember being all that successful in the allotted time). As I recall, there were some syntax features that didn't translate well and I'm not just referring to the use of syscalls, FIRQBs, and XRBs (although my codes did a lot of that).
- VAX BASIC, also developed by TLE, was an improvement over BP2, but still didn't offer interactive debugging in BASIC (at least not in its early releases; I don't know about the most-modern releases). Luckily, like all the rest of the VMS languages, it at least used the VAX linker rather than the RSX taskbuilder. And its syntax was much more compatible back to BP2 than BP2 had been back to BASIC+.
- Really, BASIC+ was a much different animal than BP2 (and that's why I feel strongly that the articles shouldn't be merged). I think Digital made a significant marketing error in not providing a more-compatible follow-on environment. I know that I never cared for the follow-on BASIC environments at all. It's only with my transition into the Unix world and Perl (and to a lesser degree, C) that I feel I finally am back in an environment that's as easily-expressive of complex problems as was BASIC+.
- (Very late to the game) This is slightly incorrect, and I would atleast partly agree with DragonHawk.
- BASIC+ is in a sense a very different product from BASIC+2 or VAX-Basic. They originate from completely different groups, and are completely different implementations.
- However, BASIC+2 tried very hard to be compatible with BASIC+. To the point that lots of BASIC+ functionality is in there, but flagged as obsolete, deprecated, you get warnings for them, but they work. SYS() calls, if run under RSTS/E works exactly the same as in BASIC+.
- Also, you can run in BASIC+2 in interactive mode, which is similar to what you have in BASIC+. There are differences, especially in that you do not retain the context of a program you run when it stops. Neither does the effects from one immediate statement keep around for the next one.
- But, if we talk about debugging, you still have an integrated debugger, which is even there for compiled programs. You do not need ODT or other external debuggers. And the integrated debugger allows you to print and modify variables, and so on, pretty much as in the normal interactive environment.
- With that said, the interactive mode, as well as the debugger were optional, and system managers could opt to not include these when installing. Maybe Atlant were subjected to such conditions where he tried? But that should not be the basis for an article about the language.
- VAX-Basic then is pretty much the further development of BASIC+2 under VMS, which leads to the state today. VAX-Basic even implemented a subset of the SYS() calls from RSTS/E, to retain compatibility.
- So, in the end, the relationship is really strong. They are, all three, different implementations, but with a clear intent to be a compatible evolution. I would agree the relationship is as strong as between the different versions of the C standard.
- But, with all that said, I would still prefer to keep the pages separated, since BASIC+ on RSTS/E had a rather unique relationship with the whole operating system, which you can't really say for any of the other variants.
- Sillbit (talk) 17:14, 13 December 2020 (UTC)
I agree with the original poster. Basic-Plus and VAX basic might as well be as different as Turbo Pascal and VAX Pascal. They have similar names but are not the same language. Basic-Plus (and Basic-Plus 2) are from different environments and different constraints. There are things one would do with Basic-Plus due to the limitations inherent on RSTS/E which were not present on the VAX/VMS environment. I used - and still occasionally use, I have a running version of RSTS/E on my computer - Basic Plus for years. While I never worked on VAX computers directly, (I read the vax USENET newsgroup for years), from what Atlant is saying, Basic Plus is equivalent to Visual Basic while running in the IDE, and VAX Basic is equivalent to a compiled program which has no debugging capability. And I believe the syntax for both is different. (The manuals for Basic Plus are around on the Internet and I presume HP has its VAX Basic manuals on-line, so it wouldn't be that hard to check.)
A program in Basic Plus, even a "compiled" program that you could not edit, could be interactively debugged at the command line (except a priveleged program, which would evacuate if the program quit). This feature is not possible in a compiled Basic Plus 2 program, and presumably is unavailable (from Atlant's comments) in VAX Basic.
So having used Basic Plus and having read about VAX Basic I would also argue the languages are different and the articles should not be merged. Cross-linking would be a good ides, but merging them would be too confusing for someone wanting to learn about the two different languages. Paul Robinson (Rfc1394) 17:49, 15 June 2006 (UTC)
- This is incorrect. You can interactively debug a BASIC+2 compiled program. The BASIC+2 environment/runtime system includes an interactive debugger of its own.
- Sillbit (talk) 17:14, 13 December 2020 (UTC)
Sample code 'stub' size
editHonestly, I think the sample code section is far, far too large for a Wikipedia article (although, by all means, it gives a nice overview of the language). Perhaps the contributor who added the sample, or someone else, could find a reasonably sized alternative.
--Wernher 18:06, 23 Jan 2005 (UTC)
I posted the example in questions for two reasons: (1) I wanted to demostrate that this language could directly handle multi-key indexed files (2) I wanted to demonstrate the way that WHEN-ERROR blocks change the look and feel of the BASIC code. You are probably right about the code size. Maybe I'll make this program smaller and point people to my web site for the full one.
-- Neilrieck 00:21, 24 Jan 2005 (UTC)
I deleted the giant example program, and replaced it with some very simple ones. I'm kind of sorry to see such a well-crafted example program go like this, but like User:Wernher said, it was *way* to big for a Wikipedia article. I am also working on a major refectoring of DEC BASIC and VAX BASIC and BASIC-PLUS into this article, and the giant sample code made this article too unweildy. The link to User:Neilrieck's site is good -- hopefully, interested people will follow it.
--DragonHawk 01:12, 9 November 2005 (UTC)
Unfortunately, I know next to nothing about DEC BASIC, so I can only post rather horribly generic examples. (In fact, I'm considering deleted them, they could be any BASIC dialect.) I think it would be real nice to have some snipets highlighting the unique language features of DEC BASIC. I suggest focusing on the language, rather then VMS features. The conditional modifiers, exception handling, matrix ops, all that stuff sounds neat, and likely would be compact.
OpenVMS Product Names
editMaybe HP should rename this product one more time to just "OpenVMS BASIC" so we can cover future ports to other technologies like x86-64.
About BASIC-PLUS
edit1976 Pheripherals handbook says:
- BASIC-11 -- An extended version of Darthmouth Standard BASIC is available for the PTS-11, CAPS-11 and RT-11. Many applications such as signal processing and graphics are accessed by the user through extensions to this simple yet powerful language. A multiuser version is available under PTS-11 and RT-11.
BASIC-PLUS was developed together with RSTS, as a way to use a simple PDP-11/20 with multiple terminals to run timesharing basic. It was originally an integral part of RSTS, and RSTS could not do anything else than run BASIC-PLUS. I think BASIC-11 and BASIC-PLUS are two completely different things.
BASIC-PLUS is written in MACRO-11, and was in the same address space as RSTS/E even up to version 4. It was not a tokenizing basic, but instead the program source was not kept in memory, and only the compiled version was. The source code was written to a temporary file in the user's directory. The result of this is that it executed much faster than interpreted basics. And when doing RUN, there was no compilation time, and executing started immediately. The compilation to internal code was when done line by line, when the program was typed in, or doing an OLD of a program stored to disk. When running a "compiled" program, there was no compilation time when loading, which is why compiled programs started much faster, but executed with the same speed.
I think BASIC-11 might have been a more common tokenizing or even fully interpreted basic. I once tried a basic, which was probably BASIC-11 on one XXDP diagnostic disk, and found it to be something completely different and much more primitive. Maybe BASIC-11 was based on DEC-10 basic. BASIC-PLUS appears to be an original idea.
Karolinali 16:16, 14 December 2006 (UTC)
- I think BASIC-11 and BASIC-PLUS are two completely different things.
- Yes, BASIC-11 and BASIC-PLUS are completely different. If I were to guess, I'd guess that the various BASIC-11 dialects evolved from the BASICs that were available on OS/8, but it may have been a clean-sheet implementation. I think I vaguely remember the XXDP BASIC; and I think I decided rather quickly that it, like the rest of XXDP, was just a waste of time.
- If I get a chance, I'll invite someone who probably knows about the origins of BASIC-PLUS to comment.
- If this were a discussion about merging all of the different flavors of BASIC and then explaining the differences in the dialects of the language, then I would be in favor of a merge. A lot of the syntax is the same across different platforms, from different companies, and different architectures. BASIC-11 is interpreted, BP2 is compiled, AmigaBasic runs in a gui and can create sprites. But the environments, the execution and the experience between them, are all completely different. RSTS/E was an environment in which you could run other emulated operating systems. An individual who had used RT-11, RSX-11, and yes BASIC-11 could find themselves quite at home inside these surroundings. The experienced technician on the other hand, 'KNEW' the differences and what these environments could and could not do. BASIC-PLUS 'IS' really it's own operating system within this environment and can only be explained by experiencing it. And yes, XXDP was a waste of time. That is why it was improved to XXDP+ ... and field service gave them away ... it was a waste of time too. Bbump 05:34, 13 August 2007 (UTC)
Mish-mash about RSTS/E
editThere seem to be a lot of erroneous references to RSTS/E in regard to BASIC-PLUS. As I understand and remember it, BASIC-PLUS ran on RSTS-11. We had a PDP-11/35 running RSTS-11 version 4B, with BASIC-PLUS, then later upgraded to a version 7, at which point it was RSTS/E, and BASIC-PLUS2. I believe that RSTS became RSTS/E at version 5 (which, of course, we skipped), and I really don't know when BASIC-PLUS2 came in; perhaps early RSTS/E's also ran BASIC-PLUS. The key difference with RSTS/E vs. RSTS-11 was that RSTS/E introduced virtual memory, so the statements in the article about how much virtual memory BASIC-PLUS programs had available is meaningless in the earlier RSTS-11 versions. We most definitely had no virtual memory, just 32K of physical memory, of which, between RSTS and BASIC-PLUS, 25K was used up by the system, leaving only 7K available for your basic program, and *that* had to be swapped between different jobs. I'm going to try to touch up the article, but someone who knows the details a little better than I will probably do a better job. —Preceding unsigned comment added by 131.107.0.73 (talk) 00:00, 30 May 2008 (UTC)
Parallel article
editThere is a second, parallel article here: http://en.wikipedia.org/wiki/BASIC-PLUS Sputnik2008 (talk) 15:07, 15 October 2013 (UTC)
Edit: I have now seen the discussion above. Sputnik2008 (talk) 15:10, 15 October 2013 (UTC)
This BASIC gets another name change?
editBack in 2014 before HP split into HP and HPE, HP sold the rights to maintain/develop OpenVMS software to a new company named VSI (VMS Software Inc). For a few years there existed a parallel effort by both VSI and HPE to support OpenVMS products but this all changed in 2018 when HPE announced that they would be exiting all OpenVMS business by the end of 2020. Since OpenVMS licenses from HP/HPE are not valid in the VSI ecosystem, it should surprise no one that VSI renamed all their OpenVMS products, including "HP-BASIC for OpenVMS" which is now known as "VSI BASIC for OpenVMS". ( https://www.vmssoftware.com/docs/VSI_OpenVMS_layered_products/VSI_basic_spd.pdf ).
HISTORY: this product began life on PDP-11 as BASIC-Plus but was renamed VAX BASIC when DEC (Digital Equipment Corporation) ported it from their 16-bit PDP (OS: RSX-11M) to the 32-bit VAX (OS: VMS). Around this time, a considerable amount of stuff was added to VAX BASIC making it more of BASIC with FORTRAN and COBOL extensions so I think a good case could be made for (possibly) having two Wikipedia articles. VAX BASIC didn't change as much when DEC moved it again to the 64-bit Alpha (this was around the time that "32-bit only" VMS became 64-bit OpenVMS). At that time, VAX BASIC was relabeled (for marketing and licensing pruposes) to "DEC-BASIC for VAX" and "DEC-BASIC for Alpha". Compaq purchased DEC in 1998 which meant that this language, including all the others, got a new name change: "DEC" was replaced with "Compaq". HP and Compaq merged in 2002 which meant product prefixes changed once again. "HP-BASIC for OpenVMS" went through a major cleanup in 2005 while preparing it for release on OpenVMS Itanium but hardly any new features were added other than support for 64-bit integers (QUAD).
Since all the BASIC products after PDP-11 could only run on VMS or OpenVMS, "I think" a good case could be made for this article being relabeled VMS-BASIC.
Neilrieck (talk) 11:36, 21 June 2019 (UTC)
- Was there a product called VMS-BASIC? At the moment the name is confusing when looking at categories and expecting to find something like DECBASIC, VAXBASIC or BASIC-PLUS and HP BASIC etc whatevs et al completely doesn't register... Still, I guess at least it continues in the fine tradition of DEC marketing! --Vometia (talk) 13:06, 1 August 2019 (UTC)