- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: COBOL / OpenVMS Override System Date
Operating System - OpenVMS
1752236
Members
4820
Online
108785
Solutions
Forums
Categories
Company
Local Language
back
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Discussions
back
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
Blogs
Information
Community
Resources
Community Language
Language
Forums
Blogs
Go to solution
Topic Options
- 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
04-26-2009 07:32 PM
04-26-2009 07:32 PM
Re: COBOL / OpenVMS Override System Date
John G.,
Linking my modified acc_date program directly, works ok, but now I am working on the FAKE_RTL approach. It has created a REAL_ copy and a FAKE_ copy fo the COBRTL_TV. Where and how to I put my couple of date routines (DCOB$ACC_DATE & DCOB$ACC_DATE_YYYY) into the FAKE_RTL assembly? I have tried linking the FAKE_COBRTL_TV and my objects into a new sharable, but not working from the main calling program. Still executing from the real COBRTL_TV image. I think I'm close, but need a little more direction.
Thanks,
John F.
Linking my modified acc_date program directly, works ok, but now I am working on the FAKE_RTL approach. It has created a REAL_ copy and a FAKE_ copy fo the COBRTL_TV. Where and how to I put my couple of date routines (DCOB$ACC_DATE & DCOB$ACC_DATE_YYYY) into the FAKE_RTL assembly? I have tried linking the FAKE_COBRTL_TV and my objects into a new sharable, but not working from the main calling program. Still executing from the real COBRTL_TV image. I think I'm close, but need a little more direction.
Thanks,
John F.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-27-2009 01:55 PM
04-27-2009 01:55 PM
Re: COBOL / OpenVMS Override System Date
John,
> It has created a REAL_ copy and a FAKE_
> copy fo the COBRTL_TV
You should be working with DEC$COBRTL, not the translated VAX COBRTL image.
FAKE_RTL creates a MACRO32 version of the target RTL. It will be called FAKE_DEC$COBRTL.MAR. By default all routines are replaced by a routine that logs the arguments to the call and vectors through to the corresponding routine in the real RTL. You need to find the routines you want to replace and insert your own code into FAKE_DEC$COBRTL.MAR to build your modified fake image.
If you don't want to implement your routines in MACRO32, you can call out to another routine. For example:
.CALL_ENTRY LABEL=DCOB$ACC_DATE, HOME_ARGS=TRUE, MAX_ARGS=6
CALLG (AP),G^YOUR_DCOB$ACC_DATE
RET
The disadvantage of using other languages is the RTL dependency tree can get complex and confusing. In particular you CANNOT use the language you're faking (for reasons which should be immediately apparent!).
Note there are several DEC$COBRTL routines you should consider hijacking if you want your RTL to be consistent. ACC_DATE, ACC_DAY, ACC_DAY_WEEK and maybe a few others.
It may be worth taking the default FAKE_DEC$COBRTL, turning on argument tracing and running one of your target programs to see what routines it actually calls. This should also help you understand how FAKE_RTL works (you may also want to read the OpenVMS Technical Journal article).
Here's how:
$ @FAKE_RTL ! Setup environment
$ @FAKE_RTL DEC$COBRTL ! create default fake RTL
$ DEFINE FAKE_DUMPARGS TRUE ! enable dumping
$ FAKE_DEC$COBRTL ! symbol to enable fake RTL
$ RUN yourprogram
$ TYPE/PAGE FAKE_ARGDUMP.LOG ! see what was called
Send me mail if you need more detailed advice (my name with at in the middle and dot com on the end).
Please let me know if you have any trouble, or you want to do this on Itanium. I've got a later version which handles 64 bit arguments.
> It has created a REAL_ copy and a FAKE_
> copy fo the COBRTL_TV
You should be working with DEC$COBRTL, not the translated VAX COBRTL image.
FAKE_RTL creates a MACRO32 version of the target RTL. It will be called FAKE_DEC$COBRTL.MAR. By default all routines are replaced by a routine that logs the arguments to the call and vectors through to the corresponding routine in the real RTL. You need to find the routines you want to replace and insert your own code into FAKE_DEC$COBRTL.MAR to build your modified fake image.
If you don't want to implement your routines in MACRO32, you can call out to another routine. For example:
.CALL_ENTRY LABEL=DCOB$ACC_DATE, HOME_ARGS=TRUE, MAX_ARGS=6
CALLG (AP),G^YOUR_DCOB$ACC_DATE
RET
The disadvantage of using other languages is the RTL dependency tree can get complex and confusing. In particular you CANNOT use the language you're faking (for reasons which should be immediately apparent!).
Note there are several DEC$COBRTL routines you should consider hijacking if you want your RTL to be consistent. ACC_DATE, ACC_DAY, ACC_DAY_WEEK and maybe a few others.
It may be worth taking the default FAKE_DEC$COBRTL, turning on argument tracing and running one of your target programs to see what routines it actually calls. This should also help you understand how FAKE_RTL works (you may also want to read the OpenVMS Technical Journal article).
Here's how:
$ @FAKE_RTL ! Setup environment
$ @FAKE_RTL DEC$COBRTL ! create default fake RTL
$ DEFINE FAKE_DUMPARGS TRUE ! enable dumping
$ FAKE_DEC$COBRTL ! symbol to enable fake RTL
$ RUN yourprogram
$ TYPE/PAGE FAKE_ARGDUMP.LOG ! see what was called
Send me mail if you need more detailed advice (my name with at in the middle and dot com on the end).
Please let me know if you have any trouble, or you want to do this on Itanium. I've got a later version which handles 64 bit arguments.
A crucible of informative mistakes
- « Previous
-
- 1
- 2
- Next »
The opinions expressed above are the personal opinions of the authors, not of Hewlett Packard Enterprise. By using this site, you accept the Terms of Use and Rules of Participation.
News and Events
Support
© Copyright 2024 Hewlett Packard Enterprise Development LP