Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Oberon-2 on VMS

144 views
Skip to first unread message

Arne Vajhøj

unread,
Dec 29, 2022, 7:55:00 PM12/29/22
to
Probably not something in great demand.

:-)

But here it is how to get it working:

1) get Gardens Point Component Pascal (despite the name
then it is Oberon-2) for JVM version 1.3.16 (that version
works on VMS Alpha not just VMS Itanium)
2) move to VMS and unpack
3) stuff gpcp.com and gpcpdef.com in the bin dir (files
are below)
4) @gpcpdef

gpcp.com

$ ctx = f$environment("PROCEDURE")
$ jroot = "/" + f$parse(ctx,,,"DEVICE") - ":"
$ temp = f$parse(ctx,,,"DIRECTORY") - "[" - "]"
$ ix = 0
$ loop:
$ part = f$element(ix, ".", temp)
$ jroot = jroot + "/" + part
$ ix = ix + 1
$ if part .nes. "gpcp-JVM" then goto loop
$ endloop:
$ if f$file("''p2'.cp","rfm") .nes. "STMLF"
$ then
$ write sys$output "Converting ''p2'.cp to RFM:STMLF"
$ convert /fdl="record; format stream_lf" 'p2'.cp 'p2'.cp
$ endif
$ if p1 .eqs. "COMPILE" then java
"-DCPSYM=.:''jroot'/libs:''jroot'/libs/JvmSystem" -cp .:'jroot'
"CP.gpcp.gpcp" "''p2'.cp"
$ if p1 .eqs. "RUN" then java
"-DCPSYM=.:''jroot'/libs:''jroot'/libs/JvmSystem" -cp .:'jroot'
"CP.''p2'.''p2'" 'p3' 'p4 'p5' 'p6' 'p
7 'p8'
$ exit

gpcpdef.com

$ ctx = f$environment("PROCEDURE")
$ loc = f$parse(ctx,,,"DEVICE") + f$parse(ctx,,,"DIRECTORY")
$ define/nolog gpcpbinpath 'loc'
$ gpcpc :== @gpcpbinpath:gpcp compile
$ gpcp :== @gpcpbinpath:gpcp run
$ exit

Arne


Arne Vajhøj

unread,
Dec 29, 2022, 7:56:08 PM12/29/22
to
On 12/29/2022 7:54 PM, Arne Vajhøj wrote:
> Probably not something in great demand.
>
> :-)
>
> But here it is how to get it working:
>
> 1) get Gardens Point Component Pascal (despite the name
>    then it is Oberon-2) for JVM version 1.3.16 (that version
>    works on VMS Alpha not just VMS Itanium)
> 2) move to VMS and unpack
> 3) stuff gpcp.com and gpcpdef.com in the bin dir (files
>    are below)
> 4) @gpcpdef

$ type Hello.cp
MODULE Hello;
IMPORT CPmain, Console;

BEGIN
Console.WriteString("Hello world!");
Console.WriteLn;
END Hello.
$ gpcpc "Hello"
#gpcp: <Hello> No errors
$ gpcp "Hello"
Hello world!
$ type Fac.cp
MODULE Fac;
IMPORT CPmain, Console;

PROCEDURE F(n : INTEGER) : INTEGER;

BEGIN
IF n < 2 THEN
RETURN 1;
ELSE
RETURN n * F(n - 1);
END;
END F;

PROCEDURE Test(upplim : INTEGER);

VAR
i : INTEGER;

BEGIN
FOR i := 1 TO upplim DO
Console.WriteInt(i, 1);
Console.WriteString(" : ");
Console.WriteInt(F(i),1);
Console.WriteLn;
END;
END Test;

BEGIN
Test(8);
END Fac.
$ gpcpc "Fac"
#gpcp: <Fac> No errors
$ gpcp "Fac"
1 : 1
2 : 2
3 : 6
4 : 24
5 : 120
6 : 720
7 : 5040
8 : 40320

Arne


Chris Townley

unread,
Dec 30, 2022, 11:07:01 AM12/30/22
to
Sounds interesting.

Any idea where to get the alpha version of java, and how to install?

--
Chris

Arne Vajhøj

unread,
Dec 30, 2022, 12:43:36 PM12/30/22
to
On 12/30/2022 11:06 AM, Chris Townley wrote:
> On 30/12/2022 00:56, Arne Vajhøj wrote:
>> On 12/29/2022 7:54 PM, Arne Vajhøj wrote:
>>> Probably not something in great demand.
>>>
>>> :-)
>>>
>>> But here it is how to get it working:
>>>
>>> 1) get Gardens Point Component Pascal (despite the name
>>>     then it is Oberon-2) for JVM version 1.3.16 (that version
>>>     works on VMS Alpha not just VMS Itanium)
>>> 2) move to VMS and unpack
>>> 3) stuff gpcp.com and gpcpdef.com in the bin dir (files
>>>     are below)
>>> 4) @gpcpdef

> Sounds interesting.
>
> Any idea where to get the alpha version of java, and how to install?

It used to be available from HPE. But all VMS is probably gone from
HPE web site.

It was a PCSI kit so just PROD INSTALL.

Arne

Chris Townley

unread,
Dec 30, 2022, 12:56:36 PM12/30/22
to
Correct, the HPE address is not found. Shame that VSI don't publish it!

--
Chris

Arne Vajhøj

unread,
Dec 30, 2022, 1:10:24 PM12/30/22
to
> Correct, the HPE address is not found. Shame that VSI don't publish it!

VSI dropped the Java they got from HP and switched to OpenJDK.

I don't think any details was ever given.

But I have always assumed that HP/HPE had a commercial Java
license agreement with SUN/Oracle covering VMS, HP-UX
and NonSTOP. And that VSI found it easier to grab
practically the same code base under GPL with classpath
exception in the form of OpenJDK than to do a commercial
agreement with Oracle. And that OpenJDK did have an
Itanium JIT but not an Alpha JIT. So no OpenJDK for
VMS Alpha.

Arne


Ben Lambert

unread,
Jan 3, 2023, 6:13:23 AM1/3/23
to
I still have it, I've shared it in my Google Drive here for you:

https://drive.google.com/file/d/1NBzcwC1VmxgdB0jbLNMH2VnEMVzInmD8/view?usp=sharing

HTH

Ben.

Chris Townley

unread,
Jan 3, 2023, 6:19:15 AM1/3/23
to
Thanks, but I got it from Arne

Chris
--
Chris

0 new messages