X86VMS-BASIC-X0108-5-1 FT

OpenVMS x86 native compilers, cross compilers news and questions.

Topic author
earlem
Visitor
Posts: 1
Joined: Fri Mar 29, 2024 6:11 am
Reputation: 0
Status: Offline

X86VMS-BASIC-X0108-5-1 FT

Post by earlem » Fri Mar 29, 2024 6:19 am

1) The IVP fails on initial installation due to the BASIC command not being present on the first install of a BASIC compiler. The IVP works after logout and log back in.

2) The last page of the PDF release notes references the COBOL manual. The release notes are also poorly formatted.

3) My source code makes heavy use of 'include from cdd' for record definitions. Is there a FT available of the TDD/CDD for X86?

- Earle

User avatar

cct
Master
Posts: 125
Joined: Sat Aug 15, 2020 9:00 am
Reputation: 0
Location: Cambridge, UK
Status: Offline

Re: X86VMS-BASIC-X0108-5-1 FT

Post by cct » Fri Mar 29, 2024 7:27 am

The IVP works for me. Installed on VMS9.2-2 with latest patches:

Code: Select all

%VMSINSTAL-I-DOIVP, Executing the VSI BASIC X1.8-005 Installation Verification Procedure


%VMSINSTAL-I-IVPSUCCESS, VSI BASIC X1.8 Installation test PASSED

The VSI BASIC X1.8-005 IVP has succeeded!

%PCSI-I-IVPSUCCESS, test procedure completed successfully
--
Chris


hb
Valued Contributor
Posts: 77
Joined: Mon May 01, 2023 12:11 pm
Reputation: 0
Status: Offline

Re: X86VMS-BASIC-X0108-5-1 FT

Post by hb » Fri Mar 29, 2024 8:00 am

The IVP also works for me. After PCSI is done, the BASIC command is not defined, it's not in your process' DCL tables. This is a known feature of installing a product. Logout and log in fixes this. But you can also updated the DCL tables.:

Code: Select all

$ basic
%DCL-W-IVVERB, unrecognized command verb - check validity and spelling
 \BASIC\
$ 
Or if you have DCL$PATH pointing to SYS$SYSTEM:

Code: Select all

$ basic
%CLI-F-SYNTAX, error parsing 'VERSION'
-CLI-E-ENTNF, specified entity not found in command tables
...

Code: Select all

$ set command /table=sys$library:dcltables
$ basic
_File:

User avatar

arne_v
Master
Posts: 344
Joined: Fri Apr 17, 2020 7:31 pm
Reputation: 0
Location: Rhode Island, USA
Status: Offline
Contact:

Re: X86VMS-BASIC-X0108-5-1 FT

Post by arne_v » Fri Mar 29, 2024 8:42 am

earlem wrote:
Fri Mar 29, 2024 6:19 am
3) My source code makes heavy use of 'include from cdd' for record definitions. Is there a FT available of the TDD/CDD for X86?
I am in the happy position that I have not used CDD for 3 decades.

:-)

But I believe that:
* CDD is nowadays an Oracle product and part of the Rdb family (and Rdb is not yet available for VMS x86-64)
* VSI has announced that they are planning a replacement (not tied to Rdb) called VDD

I don't know the status of VDD.

Anyone from VSI that can comment?
Arne
arne@vajhoej.dk
VMS user since 1986

User avatar

cct
Master
Posts: 125
Joined: Sat Aug 15, 2020 9:00 am
Reputation: 0
Location: Cambridge, UK
Status: Offline

Re: X86VMS-BASIC-X0108-5-1 FT

Post by cct » Fri Mar 29, 2024 11:03 am

Installed on VMS9.2-2 with latest patches.

Initial compile of some trivial code - no errors, linked OK

However it looks as if INKEY$ is not seeing any key presses at all - it is just stuck in a loop. This is on an FTA terminal, and is te same on the console device.

The release notes are fairly light - is there a fuller list of known issues?

CHris
--
Chris

User avatar

neilrieck
Contributor
Posts: 21
Joined: Tue Jan 10, 2023 10:41 am
Reputation: 0
Location: Waterloo, Ontario, Canada
Status: Offline
Contact:

Re: X86VMS-BASIC-X0108-5-1 FT

Post by neilrieck » Fri Mar 29, 2024 1:23 pm

This was a trivial install with everything working as expected, including the IVP

I had intended to test a large (+50K lines) program but forgot that it links against a MariaDB Client library from Mark Berryman so I just downloaded a fresh version from here https://theberrymans.com/php_kits/

Then I remembered that Mark's code is glued to my BASIC program via some c routines I wrote a long while ago so went back to the portal to download a c compiler.

So much fun with so little time 8-)

update: Mark's client package only contains executables. Time to reach out to him
Last edited by neilrieck on Fri Mar 29, 2024 2:07 pm, edited 2 times in total.

User avatar

cct
Master
Posts: 125
Joined: Sat Aug 15, 2020 9:00 am
Reputation: 0
Location: Cambridge, UK
Status: Offline

Re: X86VMS-BASIC-X0108-5-1 FT

Post by cct » Fri Mar 29, 2024 2:23 pm

I tried to creaye a reproducer for the INKEY$ issue, but it ccom[piles and link OK, then crashes with a memory management violation

Test code:

Code: Select all

PROGRAM TEST$MAIN

DECLARE                                         &
        LONG                                    &
                ctr,                            &
        STRING                                  &
                keyp

    keyp = ""
    ctr = 0%

    WHILE keyp = ""
        WHEN ERROR IN
            keyp = INKEY$ (0%, WAIT 1%)
        USE
            keyp = ""
        END WHEN
        PRINT ctr

    NEXT

    PRINT "Key was "; keyp

END PROGRAM
and error:

Code: Select all

$ run test
%BAS-F-MEMMANVIO, Memory management violation
-BAS-I-USEPC_PSL, at user PC=7C0325CA, PSL=0000001B
-SYSTEM-F-ACCVIO, access violation, reason mask=14, virtual address=FFFFFFFF8940B260, PC=000000007C0325CA, PS=0000001B
-BAS-I-FROMOD, In module TEST$MAIN
%TRACE-F-TRACEBACK, symbolic stack dump follows
image     module    routine               line      rel PC           abs PC
                                             0 FFFF830007DCE445 FFFF830007DCE445
LIBRTL  $1$DGA8345:[LIBRTL_4.SRC]LIBCALLG.MAR;1
                                          #181 00000000800EA639 FFFF830009D37639
DEC$BASRTL                                   0 0000000080013DAD 000000007C037DAD
                                             0 FFFF830007FEC687 FFFF830007FEC687
----- Above condition handler called with exception 0000000C
%SYSTEM-F-ACCVIO, access violation, reason mask=14, virtual address=000000008940B260, PC=000000007C0325CA, PS=0000001B
----- End of Exception message
                                             0 FFFF830007FF6F74 FFFF830007FF6F74
DEC$BASRTL                                   0 000000008000E5CA 000000007C0325CA
TEST  TEST$MAIN  TEST$MAIN                  14 0000000000000145 0000000080000145
                                             0 FFFF8300085FC2E6 FFFF8300085FC2E6
DCL                                          0 000000008006780B 000000007ADFF80B
%TRACE-I-LINENUMBER, Leading '#' specifies a source file record number.
%TRACE-I-END, end of TRACE stack dump
%SYSTEM-F-ACCVIO, access violation, reason mask=14, virtual address=FFFFFFFF8940AD20, PC=000000007C032A1C, PS=0000001B
--
Chris


craigberry
Contributor
Posts: 23
Joined: Fri Nov 17, 2023 11:27 am
Reputation: 1
Status: Offline

Re: X86VMS-BASIC-X0108-5-1 FT

Post by craigberry » Fri Mar 29, 2024 3:07 pm

cct wrote:
Fri Mar 29, 2024 2:23 pm

Code: Select all

%SYSTEM-F-ACCVIO, access violation, reason mask=14, virtual address=FFFFFFFF8940AD20, PC=000000007C032A1C, PS=0000001B
I don't remember seeing a reason mask of 14 before. I wonder if it's for real. That would mean ...

Code: Select all

$ perl -e "printf '%b', 14;"
1110
bits 1, 2, and 3 are set, which in turn means, according to HELP/MESSAGE ACCVIO, that all of these things went wrong: " referenced the process page table (bit 1), attempted a read/modify operation (bit 2), was a vector operation on an improperly aligned vector element (bit 3)."


hb
Valued Contributor
Posts: 77
Joined: Mon May 01, 2023 12:11 pm
Reputation: 0
Status: Offline

Re: X86VMS-BASIC-X0108-5-1 FT

Post by hb » Fri Mar 29, 2024 3:44 pm

It's real, only the VA of the access is (incorrectly) sign-extended. It is 000000008940AD20 and that address is not mapped. That is, with the shown source, this error/problem is easy to reproduce.

Try this:

Code: Select all

$ install replace sys$share:DEC$BASRTL/share=noaddress
$ r test
 0 
 0 
Key was x
$ 
Last edited by hb on Fri Mar 29, 2024 3:54 pm, edited 1 time in total.

User avatar

cct
Master
Posts: 125
Joined: Sat Aug 15, 2020 9:00 am
Reputation: 0
Location: Cambridge, UK
Status: Offline

Re: X86VMS-BASIC-X0108-5-1 FT

Post by cct » Fri Mar 29, 2024 4:34 pm

That is interesting

What is the significance of doing it, aprt from increasing runtime IO and CPU?
I note it is shown in VMSIMAGES.DAT as /OPEN /HEADER /SHARED=ADDRESS_DATA so changing will be reset on reboot

My initial test then works, as does INKEY$
Last edited by cct on Fri Mar 29, 2024 4:49 pm, edited 1 time in total.
--
Chris

Post Reply