- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-14-2009 07:22 AM
тАО03-14-2009 07:22 AM
$ dtr
DATATRIEVE V7.3
Digital Query and Report System
Type HELP for help
DTR> print fn$bas_edit(" abc ",255)
FN$BAS
EDIT
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=0000000021EF78F4, PC=0000000000000016, PS=00000000
On the current system it works properly:
$ dtr
DEC DATATRIEVE V7.2
Digital Query and Report System
Type HELP for help
DTR> print fn$bas_edit(" abc ",255)
FN$BAS
EDIT
ABC
The DTR function is copied from the working one:
$DTR$FUN_DEF FN$BAS_EDIT, BAS$EDIT, 3
$DTR$FUN_OUT_ARG TYPE = FUN$K_STATUS
$DTR$FUN_IN_ARG TYPE = FUN$K_TEXT , OUT_PUT = TRUE
$DTR$FUN_IN_ARG TYPE = FUN$K_DESC, DTYPE = DSC$K_DTYPE_T, ORDER = 1
$DTR$FUN_IN_ARG TYPE = FUN$K_VALUE, DTYPE = DSC$K_DTYPE_L, ORDER = 2
$DTR$FUN_END_DEF
The DTRBLD procedure completes successfully, the new executables are installed as on the old system.
Any help would be appreciated.
Cheers,
Art
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-14-2009 07:30 AM
тАО03-14-2009 07:30 AM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
$DTR$FUN_DEF FN$SCG_ASCII, LIB$ICHAR, 1
$DTR$FUN_HEADER HDR = <"Ascii"/"Value">
$DTR$FUN_EDIT_STRING ^\ZZ9\
$DTR$FUN_OUT_ARG TYPE = FUN$K_VALUE, DTYPE = DSC$K_DTYPE_L
$DTR$FUN_IN_ARG TYPE = FUN$K_DESC, DTYPE = DSC$K_DTYPE_T, ORDER = 1
$DTR$FUN_END_DEF
DTR> print FN$SCG_ASCII("a")
Ascii
Value
97
Art
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-14-2009 08:19 AM
тАО03-14-2009 08:19 AM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
I've used BAS$EDIT ages ago, but not with DTR 7.3. Maybe I'll try.
Our friend Bart Lederman wrote an example for it which you can find for example here:
http://wwwvms.mppmu.mpg.de/vmssig/src/C/bas$edit.txt
The defintion Bart uses is a little more explicit. For example it mentions $DTR$FUN_NOOPTIMIZE
(I agree, you should never optimize FUN, Fun should be accepted and enjoyed as it comes :-)
Can you run with the debugger, set module to the share, set breakpoint on BAS$EDIT, verify the arguments on entry and exit?
fwiw,
Hein.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-14-2009 11:34 AM
тАО03-14-2009 11:34 AM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
Art
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-15-2009 06:44 AM
тАО03-15-2009 06:44 AM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
Did I mention I'm not a programmer? ;-)
Cheers,
Art
ps. should you really have more than an optimal amount of fun? Isn't that how heart attacks happen? ;-)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-15-2009 11:47 AM
тАО03-15-2009 11:47 AM
SolutionI talked to Art.
He also upgraded BASIC from 1.3 to 1.6 when upgrading DTR.
With that BAS$EDIT becomes DBASIC$EDIT
This should be resolved in DEC$BASRTL.EXE
So I recommend moving forward replacing all BAS$xxxxx funtions used by the corresponding DBASIC$ in DTRFND.MAR.
Compile, replact in DTRFUN.OLB
Cleans the DTRBLD.COM from BASRTL*_TV references and add the line
cluster=basrtl,,,sys$common:[syslib]dec$basrtl.exe/shareable
Put that right after FDVSHR.
That's where I put it in a test, and it worked.
Rebuid
Note: I reduced DTRBLD.COM to just the DTRSHR link command, with output to a private directory at first.
Define a logical to a bad name and see $DATA fail, just to be sure.
Then define to the new executable and try it!
Good Luck!
Hein.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-15-2009 02:27 PM
тАО03-15-2009 02:27 PM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
After we got off the phone, I had to go out but of course thought about this all the while and it all came back to me. Back in June of last year when I was doing all this setup (yes we're moving at a glacial pace here!) I was getting undefined symbols during the DTRBLD procedure referencing the BAS$xxx functions. eg:
%LINK-W-USEUNDEF, undefined symbol BAS$EDIT referenced
in psect $LINKAGE offset %X00000100
in module DTRFND file SYS$COMMON:[DTR]DTRFUN.OLB;1
I hacked around and found they were in the BASRTL_D56_TV.EXE and I looked at the difference between the new DTRBLD.COM and the existing one - it had the references to the TV images - and put two and two together - viola - no more undefined symbols!
It was only this past week that the application folks started testing things in earnest and found these couple of functions didn't work.
So I did as you directed - removing the BASRTL TV image specifications and using the current DEC$BASRTL file where suggested and changed the references to DBASIC$ from BAS$ of course it all works as expected.
DTR> print fn$bas_date("39074")
FN$BAS
DATE
15-Mar-09
WooHoo!
Hein reply again, you deserve at least an additional 10 points!
Thank you so much for your help!!
Oh and by the way, all those "weak references" are gone from the build now too! The only complaints left are three:
%LINK-W-TIRLNGTH, object command data record length illegal (0.)
record 1 in module EXT_LEVEL_FORM file SYS$COMMON:[DTR]DTRLIB.OLB;2
Cheers,
Art
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-26-2009 07:10 AM
тАО03-26-2009 07:10 AM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-26-2009 07:32 AM
тАО03-26-2009 07:32 AM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
http://h71000.www7.hp.com/doc/82final/5433/5433pro_010.html#tide
Cheers,
Art
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО03-26-2009 08:03 AM
тАО03-26-2009 08:03 AM
Re: Datatrieve w/ BASIC RTL extensions - SYSTEM-F-ACCVIO
http://wwwvms.mppmu.mpg.de/vmssig/src/C/
To see what BAS$EDIT can do (and what you'll need to pass in), see the EDIT mechanism over in the BASIC documentation.
http://h71000.www7.hp.com/doc/82final/5433/5433pro_010.html#tide
Depending on what you're up to with the character set encoding, the OpenVMS RTL routine lib$movtc can be used here, too. And C has various routines that are on-point here, too, the older isprint and isspace and other such pieces and the "newer" iconv pieces.
If you're working with old-style ASCII, this stuff is (usually) easy via BAS$EDIT or lib$movtc or such. If you're using newer character sets and newer encoding, this can get somewhat more slippery.
If you're locked onto OpenVMS, then there is another (archived, obsolete, obscure) option:
http://h71000.www7.hp.com/doc/73final/documentation/pdf/OVMS_NCS_UTIL.pdf