On 3/30/2016 7:05 AM, Scott Ford wrote:
I have a need to create message table, with the following attributes:
1. MSGID = 9 chars
2. Length of msg
3. Message
I would like this "tab;e" in loose terms to be external. I have never done
external dsects. Am in right i can do that , create a external message
table, bring it into
storage and index into it to find messages ? If so where can I find a
example ..
For example:
MsgEntry DSECT ,
MsgId DS CL9
MsgSize DS XL1
MsgText DS CL80
MsgLenth EQU *-MsgEntry
Code LOCTR , Switch to code
...
LOAD EPNAME==CL8'MSGTABLE' Load external message table
NILH R1,X'7FFF' Turn off AMODE indicators
NILL R1,X'FFFE' (same)
STG R1,MsgTable Save clean table address
...
LLGH R4,MsgNum Get message number
AGHI R4,-1 Make relative to zero
MGHI R4,MsgLenth Compute offset into table
AG R4,MsgTable Point to message entry
USING MsgEntry,R4 <Synchronize MsgEntry DSECT
LAY R1,OutArea Point to output area
MVC 0(L'MsgId,R1),MsgId Copy message id
MVI L'MsgId(R1),C' ' Set blank separator
LA R15,L'MsgID+1(,R1) Point where MsgText goes
LLGC R14,MsgSize Get size of message
AGHI R14,-1 Make relative to zero
EX R14,MoveTxt Copy the message text
Constant LOCTR , Switch to constants
MoveTxt MVC 0(*-*,R15),MsgText Dummy for execute
Code LOCTR , Switch back to code
LA R0,1(R14,R15) Compute total msg length
SGR R0,R1 in R0 for WriteMsg service.
JAS R14,WriteMsg R1 = TextPtr, R0 = TextgLen
DROP R4 <Drop MsgEntry DSECT
...
--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/