[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference iosg::all-in-1_v30

Title:*OLD* ALL-IN-1 (tm) Support Conference
Notice:Closed - See Note 4331.l to move to IOSG::ALL-IN-1
Moderator:IOSG::PYE
Created:Thu Jan 30 1992
Last Modified:Tue Jan 23 1996
Last Successful Update:Fri Jun 06 1997
Number of topics:4343
Total number of notes:18308

2795.0. "Help! %SYSTEM-F-ROPRAND, reserved operand fault" by HLDG00::LAMAN () Wed Jun 02 1993 21:58

Hi,

  We ran into a nasty problem, which we just cannot tackle. ALL-IN-1
  frequently crashes with the following error message.

  %SYSTEM-F-ROPRAND, reserved operand fault at PC=0026344E, PSL=03C00000

    This happens at random, so we do not have any idea on where to look.
  The application we are developping uses INSTALL/EXECUTE, but there is no
  reason to believe this has any relation to the problem, since it can happen
  any time, when no EXECUTE is performed.
    But the reason I mention it, is that EXECUTE has a kind of strange
  behavior, since it performs fast the first time it is called, and for all
  'odd' times, and significantly slower for all 'even' times it is called.
  This just don't make any sense to me. I can imagine that a first call to an
  installed routine performs less fast than all subsequent calls, because the
  code must be mapped into memory, but this behavior I find very weird.
    I don't know whether it has something to do with it.

  Anyone ever struggled with the same problem? All suggestions are welcome.

  Paul Laman

  Cross-posted in ASIAGO::ALL-IN-1_CLI    
T.RTitleUserPersonal
Name
DateLines
2795.1could we know?AIMTEC::WICKS_AJune 7-13 Real Football in the U.SWed Jun 02 1993 22:337
    Paul,
    
    version of ALL-IN-1 including patch level please.
    
    regards,
    
    Andrew.D.wicks
2795.2ALL-IN-1 V2.4, PPL8C/ 7-JUN-1990HLDG00::LAMANThu Jun 03 1993 09:356
    Oei, forgot to mention it!

    ALL-IN-1 V2.4, PPL8C/ 7-JUN-1990

Paul
2795.3Difficult at the best of times...IOSG::CHINNICKgone walkaboutThu Jun 03 1993 11:3745
    
    Hi Paul,
    
    the place to start tracking this problem down is to find out where it
    is crashing. That means working out what the ROPRAND PC value
    corresponds to. 
    
    I'd guess it is in your INSTALLed code image and so you might want to
    check using $ ANALYZE/SYSTEM and then SHOW PROCESS/IMAGE for the
    process which runs it. Unfortunately, you have to run this before it
    exits to DCL.
    
    Alternatively, you could just try getting a process dump using $ SET
    PROCESS/DUMP - assuming ALL-IN-1 is crashing out to DCL level when you
    get the error. Then you can analyze the dump (OAUSER:OA$MAIN.DMP) to see
    what image the PC value is in. I don't think its OA$MAIN - too high up
    in memory for that.
    
    Either of these would let you figure out what image the crash is occuring
    in and what relative PC value it dies at, which is a good starting
    point for figuring out what is going wrong.
    
    A ROPRAND usually means that you are executing garbage instructions and
    so it often points to a problem with calling sequence whereby an
    address is wrong.
    
    Next question is where does the install image come from - is it yours
    or from somewhere else. How is it being installed - with CALLBACK ?
    
    If it is your image, then I'd check carefully to make sure it is linked
    correctly. What language is it written in? INSTALL and EXECUTE require
    shareable images which can have problems from some languages. [I
    recently saw a problem where because of the way external references
    were used in 'C', 2 fixup vector entries were generated for one .ADDRESS
    reference and that caused real problems.]
    
    Of course, it may be totally unconnected to the INSTALL/EXECUTE, but
    frankly I'd bet that it's related somehow. It could be just some
    general memory corruption, although if so, it could prove extremely
    difficult to find.
    
    Good Luck,
    
    Paul.
    
2795.4And the question about patches?AIMTEC::WICKS_AJune 7-13 Real Football in the U.SThu Jun 03 1993 15:5511
    Paul (the author of .0)
    
    you didn't say about patches (they don't change <VERSION)
    
    the version is always important - K602 contained some fixes for
    VM corruption related to INSTALL?EXECUTE so I would apply that
    if it's not already installed.
    
    Regards,
    
    Andrew.D.Wicks
2795.5Yep - K602 is a good idea.IOSG::CHINNICKgone walkaboutFri Jun 04 1993 13:3612
    
    Good point Andy... K602 does indeed contain a fix, but it would only
    affect cases where more than 8 INSTALL command entries were created.
    [This is not 8 images but 8 entry points and command names.]
    
    Also, I think that the symptom would usually be a LIB$FREE_VM failure
    error and on very rare occasions an ACCVIO, but I guess it is possible
    that some corruption could be happening if the 'multiple of 8' command
    verbs criteria is met.
    
    Paul�
    
2795.6Some more info\can't get an image dump.HLDG00::LAMANMon Jun 07 1993 10:1431
Hi,

    Thinking it over during the weekend didn't bring me any further so here's
    some more information about the envrironment we're running it in.

    As said, it's ALL-IN-1 V2.4, and it's unpatched (as far as I can see).
    The VMS version is V5.5-1. The sharable image contains a number of local
    routines and four global routines, of which 3 have a universal symbol
    created by the LINK command (so it's 3 EXECUTable routines.
    The routines have been written in PASCAL V4.3-76. There are no global
    variables involved. When a callable routine completes it executes a
    callback that creates two or three ALL-IN-1 symbols, by dispatching the
    ALL-IN-1 command:

    'GET #sem_status = <number>\GET #sem_display_message = <message>'

    The idea is that the calling script or names data checks #sem_status and
    if it is not 0 it displays text from #sem_display_message, which has been
    neatly created by an condition handler which was activated through
    LIB$SIGNAL. The strange thing, however is, that calling the routine
    interactively numerous times does not cause a problem. IF the sharable
    image/routines are the cause of all trouble, it must be though memory
    corruption, since it sometimes the problem occurres a number of steps past
    the EXECUTE command, sometimes even at a completely different form...?

    I tried to get an image dump as .3 suggested, but none was created. Is
    there some kind of SYSGEN parameter involved to create a dump? Or
    privileges?

    Paul�.
2795.7Just captured a A1TRACE.LOGHLDG00::LAMANMon Jun 07 1993 11:04737
Just discovered somehing more.

    It makes a difference whether a trace is written to the logfile
    A1TRACE.LOG or not. Without no problem occurs, but with TRACE on the
    ROPRAND error always occurs at the same point (so far it appeared at
    random to me).
    The trace shows that EXECUTE has been invoked five times. Then two more
    successful ALL-IN-1 commands are executed: OA$VAL_SET_VALID and GET.
    Then the ROPRAND occurs. My conclusion is that the XOP that must be
    executed next is causing the problem, since although the first line to be
    executed in the XOP sub-routine is the EXECUTE, it should first evaluate
    the command line (GET #sem_tmp). The GET does not appear in the log, so
    the image must have died beforehand instead of during execution of the
    shared routine..

    Since I cannot get a process dump (althought I get a stack dump on the
    terminal and return to DCL), the above is hard to prove.

    Below I will include (the rather complex) named data of the form that
    errs and an excerpt of the trace log file (Note that it contains the error
    12 ! times, of which 2 were displayed on the terminal as well - maybe the
    others were over written?):
  
    Paul�


;;.TYPE;;

ARG /OVERLAY
/GET=DRAFTED_BY,#sem_drafted_by;EXTENSION,#sem_extension;DATE,#sem_date;
 SUBJECT,#sem_subject
/PRE='XOP "~~PRE~~"'
/HARD=#sem_hrd_sem

;;~~PRE~~;;

.IF #sem_display_forwarded_by EQ 1 THEN XOP "~~FILL_OLD_REMARKS~~"
 ELSE
  XOP "~~FILL_REMARKS~~" \
FOR FIRST sem$data$remarks:remarks_inverted_nr WITH .remarks_old EQS #sem_y DO
  GET FORWARDED1 = .FORWARDED_BY \\
  GET FORWARDED2 = "    " .REMARKS1 \\
  GET FORWARDED3 = "    " .REMARKS2 \\
  GET FORWARDED4 = "    " .REMARKS3

;;~~FILL_OLD_REMARKS~~;;

FOR FIRST sem$data$remarks:remarks_inverted_nr WITH .remarks_old EQS #sem_y DO
  GET REMARKS1 = .REMARKS1 \\
  GET REMARKS2 = .REMARKS2 \\
  GET REMARKS3 = .REMARKS3 \\
  GET REMARKS4 = .REMARKS4

;;~~FILL_REMARKS~~;;

FOR FIRST sem$data$remarks WITH .remarks_old EQS #sem_n DO
  GET REMARKS1 = .REMARKS1 \\
  GET REMARKS2 = .REMARKS2 \\
  GET REMARKS3 = .REMARKS3 \\
  GET REMARKS4 = .REMARKS4

;;REMARKS1;;

/OPTIONAL
/RECOG=<GET OA$DISPLAY = OA$_NRFLD
/VALID=<GET #sem_tmp = REMARKS1 \XOP "~~VALIDATE_REMARKS~~"
/HARD=#sem_hrd_remarks

;;REMARKS2;;

/OPTIONAL
/RECOG=<GET OA$DISPLAY = OA$_NRFLD
/VALID=<GET #sem_tmp = REMARKS2 \XOP "~~VALIDATE_REMARKS~~"
/HARD=#sem_hrd_remarks

;;REMARKS3;;

/OPTIONAL
/RECOG=<GET OA$DISPLAY = OA$_NRFLD
/VALID=<GET #sem_tmp = REMARKS3 \XOP "~~VALIDATE_REMARKS~~"
/HARD=#sem_hrd_remarks

;;REMARKS4;;

/OPTIONAL
/RECOG=<GET OA$DISPLAY = OA$_NRFLD
/VALID=<GET #sem_tmp = REMARKS4 \XOP "~~VALIDATE_REMARKS~~"
/HARD=#sem_hrd_remarks

;;~~VALIDATE_REMARKS~~;;

EXECUTE SEM$SCAN #sem_tmp \
.IF #sem_status EQ 1 THEN 
  OA$VAL_SET_VALID
 ELSE
  GET OA$DISPLAY = #sem_display_message

;;.PC NEXT SCREEN;;

GET #sem_tmp = "" \
FOR FIRST sem$data$remarks WITH .remarks_old EQS #sem_y DO GET #sem_tmp = 1 \
.IF #sem_tmp NE 1 THEN
  GET OA$DISPLAY = #sem_nonextscrn 
 ELSE
  MERGE sem_read_forwarded_by.blp,oauser:sem_read_forwarded_by_out.wpl \\
  FORM oa$list LIST /CAPTIVE /MORE=sem$list$cab$options /OVERLAY=LIST_Status
       /DATA=$SEM_CURDOC /PRE='FORCE' /HARD=OA$_LIST_HRD_LIST_DOC 
       <FORMAT 'oauser:sem_read_forwarded_by_out.wpl','','VT100',-2,1,1,0

;;.GOLD V;;

OA$FAO #sem_prepmsg,"OA$DISPLAY",#sem_reading \FORCE \
XOP "~~DEFINE_REMARK_VALUES~~" \
LIST <MERGE SEM_VIEW_SEM_FORMAT.WPL

;;~~DEFINE_REMARK_VALUES~~;;

GET #sem_remarks1 = REMARKS1 \
GET #sem_remarks2 = REMARKS2 \
GET #sem_remarks3 = REMARKS3 \
GET #sem_remarks4 = REMARKS4

;;.CR;;

XOP "~~RETURN~~"

;;.ENTER;;

XOP "~~RETURN~~"

;;.GOLD F;;

.IF #sem_no_gold_file EQ 1 THEN XOP "~~RETURN~~"
 ELSE XOP "~~GOLD_FILE~~"

;;~~GOLD_FILE~~;;

XOP "~~RETURN_VALIDATE~~" \
IFSTATUS \
.IF #sem_actual_create EQ 1 THEN XOP "~~GOLD_FILE_CREATE~~"
 ELSE
  .IF #sem_folder EQS #sem_drafts_folder THEN XOP "~~GOLD_FILE_CREATE~~"
   ELSE
    XOP "~~GOLD_FILE_EDIT~~"

;;~~GOLD_FILE_CREATE~~;;

YESNO_PROMPT #sem_saveasmodel \OA$FLD_STAY \
.IF OA$PROMPT_DISPOSE NE 2 THEN
  GET OA$STATUS = 0
 ELSE
  GET OA$STATUS = 1 \
IFSTATUS \
.IF OA$PROMPT_TEXT:1 EQS #sem_y THEN
  GET #sem_gold_file_model = 1 \\
  GET #sem_gold_file_draft = "" \\
  GET #sem_fc_folder = #sem_models_folder
 ELSE
  GET #sem_gold_file_model = "" \\
  GET #sem_gold_file_draft = 1 \\
  GET #sem_fc_folder = #sem_drafts_folder \
XOP "~~CHANGE_REMARK_RECORD~~" \
OA$FLD_DONE

;;~~GOLD_FILE_EDIT~~;;

YESNO_PROMPT #sem_saveasdraft \OA$FLD_STAY \
.IF OA$PROMPT_DISPOSE NE 2 THEN
  GET OA$STATUS = 0
 ELSE
  GET OA$STATUS = 1 \
IFSTATUS \
.IF OA$PROMPT_TEXT:1 EQS #sem_y THEN
  GET #sem_gold_file_model = "" \\
  GET #sem_gold_file_draft = 1 \\
  GET #sem_fc_folder = #sem_drafts_folder \
 ELSE
  GET #sem_gold_file_model = 1 \\
  GET #sem_gold_file_draft = "" \\
  GET #sem_fc_folder = #sem_models_folder
XOP "~~CHANGE_REMARK_RECORD~~" \
OA$FLD_DONE

;;~~CHANGE_REMARK_RECORD~~;;

GET #sem_tmp = "" \
FOR FIRST sem$data$remarks WITH .remarks_old EQS #sem_n DO GET #sem_tmp = 1 \
.IF #sem_tmp NE 1 THEN
  FOR FIRST sem$data$remarks:remarks_inverted_nr DO 
      GET #sem_remarks_key = .remarks_nr \\
  .IF #sem_remarks_key EQ "" THEN GET #sem_remarks_key = 0 \\ 
  COMPUTE #sem_remarks_key = #sem_remarks_key + 1 \\
  GET #sem_tmp = #sem_remarks_key \\
  XOP "~~FORMAT_REMARKS_KEY~~" \\
  GET #sem_remarks_key = #sem_tmp \\
  COMPUTE #sem_tmp = 10000 - #sem_remarks_key \\
  XOP "~~FORMAT_REMARKS_KEY~~" \\
  WRITE ADD sem$data$remarks REMARKS_NR = #sem_remarks_key,
        remarks_inverted_nr = #sem_tmp,
        remarks_old = #sem_n \
XOP "~~DEFINE_REMARK_VALUES~~" \
WRITE CHANGE sem$data$remarks REMARKS_NR = #sem_remarks_key,
      REMARKS1 = #sem_remarks1,
      REMARKS2 = #sem_remarks2,
      REMARKS3 = #sem_remarks3,
      REMARKS4 = #sem_remarks4

;;~~FORMAT_REMARKS_KEY~~;;

.IF #sem_tmp LT 10 THEN GET #sem_tmp = "   " #sem_tmp
 ELSE
  .IF #sem_tmp LT 100 THEN GET #sem_tmp = "  " #sem_tmp
   ELSE
    .IF #sem_tmp LT 1000 THEN GET #sem_tmp = " " #sem_tmp

;;.PC EXIT;;

.IF #sem_ask_exit_screen EQS "" THEN OA$FLD_EXIT
 ELSE
  XOP "~~EXIT_SCREEN~~"

;;.GOLD Q;;

.IF #sem_ask_exit_screen EQS "" THEN OA$FLD_EXIT
 ELSE
  XOP "~~EXIT_SCREEN~~"

;;.GOLD K;;

.IF #sem_ask_exit_screen EQS "" THEN OA$FLD_EXIT
 ELSE
  XOP "~~EXIT_SCREEN~~"

;;.KEY 0;;

.IF #sem_ask_exit_screen EQS "" THEN OA$FLD_EXIT
 ELSE
  XOP "~~EXIT_SCREEN~~"

;;~~EXIT_SCREEN~~;;

YESNO_PROMPT #sem_ask_exit_screen \OA$FLD_STAY \
.IF OA$PROMPT_DISPOSE EQ 2 AND OA$PROMPT_TEXT:1 EQS #sem_y THEN
  GET #sem_gold_file_model = "" \\
  GET #sem_gold_file_draft = "" \\
  OA$FLD_EXIT

;;~~RETURN~~;;

XOP "~~RETURN_VALIDATE~~" \
IFSTATUS \
XOP "~~CHANGE_REMARK_RECORD~~" \
.IF #sem_actual_create EQ 1 THEN 
  GET #sem_gold_file_model = "" \\
  GET #sem_gold_file_draft = 1 \\
  GET #sem_fc_folder = #sem_drafts_folder
 ELSE
  GET #sem_gold_file_model = "" \\
  GET #sem_gold_file_draft = "" \
OA$FLD_DONE

;;~~RETURN_VALIDATE~~;;

FOR OA$TABLE:"1,2,3,4" DO 
  IFEXIT \\
  GET #sem_tmp = "REMARKS" .%key \\
  .IF @#sem_tmp NES "" THEN XOP "~~VALIDATE_REMARKS~~" \\
  .IF #sem_status NE 1 THEN OA$FLD_EXIT \
.IF #sem_status EQ 1 THEN
  GET OA$STATUS = 1
 ELSE
  GET OA$FUNCTION = 'OA$FLD_STAY ' #sem_tmp \\
  GET OA$STATUS = 0

211     ! [SCP/TRACE] FORM sem$mail$saveforsend << sem_readnewdraft 0087
211     ! %OA-I-LOGFUN, Function: FORM            sem$mail$saveforsend
211       ! OA$FRM_DISPATCH: Dispatching sem$mail$saveforsend
211       !  
211       ! ----------- CURRENT FORM INFORMATION ------------
211       !        CURRENT FIELD INDEX = 13
211       ! FORM                           DSAB     WORKSPACE PRIOR_DSAB
212       ! SEM$MAIN                       002E59B0 0000063C  00000000
212       ! FORM:SEM$MAIL$SAVEFORSEND
212       ! OA$FRM_OPEN: Starting SEM$MAIL$SAVEFORSEND
212         ! OA$FMS_OPEN: Opening form  "SEM$MAIL$SAVEFORSEND" (002E6388)
212         ! OAFLC: Compiling form SEM$MAIL$SAVEFORSEND           
227         ! GET Symbol: OA$_NRFLD
227         !      Value: You cannot use FIND or GOLD EMBEDDED SEARCH here
228         ! GET Symbol: OA$_NRFLD
228         !      Value: You cannot use FIND or GOLD EMBEDDED SEARCH here
230         ! GET Symbol: OA$_NRFLD
230         !      Value: You cannot use FIND or GOLD EMBEDDED SEARCH here
231         ! GET Symbol: OA$_NRFLD
231         !      Value: You cannot use FIND or GOLD EMBEDDED SEARCH here
236         ! OAFLC: Compiled  form SEM$MAIL$SAVEFORSEND           
236         ! OA$FLO_OPEN_FORM: Opening form - SEM$MAIL$SAVEFORSEND
236         !         in DUA4:[SEM.PROJECT.SOFTWARE.LLV.NO_CMS]SEM.FLB;
242       ! %OA-I-LOGFUN, Function: OA$FORM_ARG     
242       ! %OA-I-LOGFUN, Function: XOP             "~~PRE~~"
243       ! GET Symbol: "~~PRE~~"
243       !      Value: ~~PRE~~
243       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_display_forwarded_by EQ 1 THEN XOP "~~FILL_OLD_REMARKS~~" ELSE  XOP "~~FILL_REMARKS~~"
243       ! [SCP/TRACE] .IF #sem_display_forwarded_by EQ 1 THEN XOP "~~FILL_OLD_REMARKS~~" ELSE  XOP "~~FILL_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
243       ! GET Symbol: #SEM_DISPLAY_FORWARDED_BY
243       !      Value: 1
243       ! GET Symbol: 1
243       !      Value: 1
244       ! [SCP/TRACE]  XOP "~~FILL_OLD_REMARKS~~"  << Form= SEM$MAIL$SAVEFORSEND
244       ! %OA-I-LOGFUN, Function: XOP             "~~FILL_OLD_REMARKS~~"
244       ! GET Symbol: "~~FILL_OLD_REMARKS~~"
244       !      Value: ~~FILL_OLD_REMARKS~~
244       ! %OA-I-LOGFUN, Function: FOR             FIRST sem$data$remarks:remarks_inverted_nr WITH .remarks_old EQS #sem_y DO  GET REMARKS1 = .REMARKS1\   GET REMARKS2 = .REMARKS2\   GET REMARKS3 = .REMARKS3\   GET REMARKS4 = .REMARKS4
244       ! GET Symbol: #SEM_Y
244       !      Value: Y
245       ! OAFLC: Compiling form SEM$DATA$REMARKS               
247       ! OAFLC: Compiled  form SEM$DATA$REMARKS               
247       ! OA$FLO_OPEN_FORM: Opening form - SEM$DATA$REMARKS
247       !         in DUA4:[SEM.PROJECT.SOFTWARE.LLV.NO_CMS]SEM.FLB;
248       ! DSAB Name: SEM$DATA$REMARKS                Requests : OPEN
250       ! DSAB Name: SEM$DATA$REMARKS                Requests : GET_NEXT
251       ! GET Symbol: .REMARKS_OLD
251       !      Value: Y
251       ! %OA-I-LOGFUN, Function: GET             REMARKS1 = .REMARKS1
252       ! OA$FLD_PUT: 4 
252         ! OA$FMS_PUT: Putting "And this is the remarks1" to field  "REMARKS1" (4) on page 1
252       ! GET Symbol: REMARKS1 = .REMARKS1
252       !      Value: And this is the remarks1
252       ! %OA-I-LOGFUN, Function: GET             REMARKS2 = .REMARKS2
253       ! OA$FLD_PUT: 5 
253         ! OA$FMS_PUT: Putting "REmarks2" to field  "REMARKS2" (5) on page 1
253       ! GET Symbol: REMARKS2 = .REMARKS2
253       !      Value: REmarks2
253       ! %OA-I-LOGFUN, Function: GET             REMARKS3 = .REMARKS3
253       ! OA$FLD_PUT: 6 
254         ! OA$FMS_PUT: Putting "Remarks3" to field  "REMARKS3" (6) on page 1
254       ! GET Symbol: REMARKS3 = .REMARKS3
254       !      Value: Remarks3
254       ! %OA-I-LOGFUN, Function: GET             REMARKS4 = .REMARKS4
254       ! OA$FLD_PUT: 7 
254         ! OA$FMS_PUT: Putting "Remarks4" to field  "REMARKS4" (7) on page 1
255       ! GET Symbol: REMARKS4 = .REMARKS4
255       !      Value: Remarks4
256       ! %OA-I-LOGFUN, Function: FOR             FIRST sem$data$remarks:remarks_inverted_nr WITH .remarks_old EQS #sem_y DO  GET FORWARDED1 = .FORWARDED_BY\   GET FORWARDED2 = "    " .REMARKS1\   GET FORWARDED3 = "    " .REMARKS2\   GET FORWARDED4 = "    " .REMARKS3
256       ! GET Symbol: #SEM_Y
256       !      Value: Y
256       ! DSAB Name: SEM$DATA$REMARKS                Requests : GET_NEXT
257       ! GET Symbol: .REMARKS_OLD
257       !      Value: Y
257       ! %OA-I-LOGFUN, Function: GET             FORWARDED1 = .FORWARDED_BY
257       ! OA$FLD_PUT: 8 
258         ! OA$FMS_PUT: Putting " Simon Eijs Simon Eijs Simon Eijs Simon Eijs Simon Eijs Simon Eijs Simon Eijs S" to field  "FORWARDED1" (8) on page 1
258       ! GET Symbol: FORWARDED1 = .FORWARDED_BY
258       !      Value:  Simon Eijs Simon Eijs Simon Eijs Simon Eijs Simon Eijs Simon Eijs Simon Eijs S
258       ! %OA-I-LOGFUN, Function: GET             FORWARDED2 = "    " .REMARKS1
258       ! OA$FLD_PUT: 9 
258         ! OA$FMS_PUT: Putting "    And this is the remarks1" to field  "FORWARDED2" (9) on page 1
259       ! GET Symbol: FORWARDED2 = "    " .REMARKS1
259       !      Value:     And this is the remarks1
259       ! %OA-I-LOGFUN, Function: GET             FORWARDED3 = "    " .REMARKS2
259       ! OA$FLD_PUT: 10 
259         ! OA$FMS_PUT: Putting "    REmarks2" to field  "FORWARDED3" (10) on page 1
259       ! GET Symbol: FORWARDED3 = "    " .REMARKS2
260       !      Value:     REmarks2
260       ! %OA-I-LOGFUN, Function: GET             FORWARDED4 = "    " .REMARKS3
260       ! OA$FLD_PUT: 11 
260         ! OA$FMS_PUT: Putting "    Remarks3" to field  "FORWARDED4" (11) on page 1
261       ! GET Symbol: FORWARDED4 = "    " .REMARKS3
261       !      Value:     Remarks3
261       ! GET Symbol: #sem_drafted_by
261       !      Value: Simon Eijs
261       ! OA$FLD_PUT: 0 
261         ! OA$FMS_PUT: Putting "Simon Eijs" to field  "DRAFTED_BY" (0) on page 1
262       ! GET Symbol: #sem_extension
262       !      Value: 
262       ! OA$FLD_PUT: 1 
263       ! GET Symbol: #sem_date
263       !      Value: 03/06/93
263       ! OA$FLD_PUT: 2 
263         ! OA$FMS_PUT: Putting "03/06/93" to field  "DATE" (2) on page 1
263       ! GET Symbol: #sem_subject
263       !      Value: Test for a usefull Text
264       ! OA$FLD_PUT: 3 
264         ! OA$FMS_PUT: Putting "Test for a usefull Text" to field  "SUBJECT" (3) on page 1
264         ! OA$FLD_PRE_PROCESS: -- 00000678
264       ! OA$FLD_GET_FIELD-- 4
264         ! OA$FMS_GET: Getting user input from field  "REMARKS1" (4) on page 1
264         ! OA$FLO_DISPW: Displaying SEM$MAIL$SAVEFORSEND (00000678)
{CR}
266         ! OA$FMS_GET_KEYPAD: Key value {CR} "REMARKS1" (4) on page 1
266       ! %OA-I-LOGFUN, Function: XOP             "~~RETURN~~"
266       ! GET Symbol: "~~RETURN~~"
267       !      Value: ~~RETURN~~
267       ! %OA-I-LOGFUN, Function: XOP             "~~RETURN_VALIDATE~~"
267       ! GET Symbol: "~~RETURN_VALIDATE~~"
267       !      Value: ~~RETURN_VALIDATE~~
267       ! %OA-I-LOGFUN, Function: FOR             OA$TABLE:"1,2,3,4" DO   IFEXIT\   GET #sem_tmp = "REMARKS" .%key\   .IF @#sem_tmp NES "" THEN XOP "~~VALIDATE_REMARKS~~"\   .IF #sem_status NE 1 THEN OA$FLD_EXIT
268       ! %OA-I-LOGFUN, Function: IFEXIT          
268       ! %OA-I-LOGFUN, Function: GET             #SEM_TMP = "REMARKS" .%KEY
268       ! GET Symbol: #SEM_TMP = "REMARKS" .%KEY
268       !      Value: REMARKS1
269       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~"
269       ! [SCP/TRACE] .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
269       ! GET Symbol: ""
269       !      Value: 
269       ! GET Symbol: #SEM_TMP
269       !      Value: REMARKS1
269       ! OA$FLD_RTN: return field-contents 
269         ! OA$FMS_RTN: Returned "And this is the remarks1                                             " from field "REMARKS1" (4) on page 1
270       ! GET Symbol: @#SEM_TMP
270       !      Value: And this is the remarks1
271       ! [SCP/TRACE]  XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
271       ! %OA-I-LOGFUN, Function: XOP             "~~VALIDATE_REMARKS~~"
271       ! GET Symbol: "~~VALIDATE_REMARKS~~"
271       !      Value: ~~VALIDATE_REMARKS~~
271       ! %OA-I-LOGFUN, Function: EXECUTE         SEM$SCAN #sem_tmp
271       ! GET Symbol: #sem_tmp
271       !      Value: REMARKS1
274       ! %OA-I-LOGFUN, Function: GET             #sem_status=1
274       ! GET Symbol: #sem_status=1
274       !      Value: 1
495       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message
495       ! [SCP/TRACE] .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message << Form= SEM$MAIL$SAVEFORSEND
496       ! GET Symbol: #SEM_STATUS
496       !      Value: 1
496       ! GET Symbol: 1
496       !      Value: 1
496       ! [SCP/TRACE]    OA$VAL_SET_VALID  << Form= SEM$MAIL$SAVEFORSEND
496       ! %OA-I-LOGFUN, Function: OA$VAL_SET_VALI 
496       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT
496       ! [SCP/TRACE] .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT << Form= SEM$MAIL$SAVEFORSEND
497       ! GET Symbol: #SEM_STATUS
497       !      Value: 1
497       ! GET Symbol: 1
497       !      Value: 1
497       ! %OA-I-LOGFUN, Function: IFEXIT          
497       ! %OA-I-LOGFUN, Function: GET             #SEM_TMP = "REMARKS" .%KEY
498       ! GET Symbol: #SEM_TMP = "REMARKS" .%KEY
498       !      Value: REMARKS2
498       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~"
498       ! [SCP/TRACE] .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
498       ! GET Symbol: ""
498       !      Value: 
498       ! GET Symbol: #SEM_TMP
498       !      Value: REMARKS2
498       ! OA$FLD_RTN: return field-contents 
499         ! OA$FMS_RTN: Returned "REmarks2                                                             " from field "REMARKS2" (5) on page 1
499       ! GET Symbol: @#SEM_TMP
499       !      Value: REmarks2
499       ! [SCP/TRACE]  XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
499       ! %OA-I-LOGFUN, Function: XOP             "~~VALIDATE_REMARKS~~"
499       ! GET Symbol: "~~VALIDATE_REMARKS~~"
499       !      Value: ~~VALIDATE_REMARKS~~
499       ! %OA-I-LOGFUN, Function: EXECUTE         SEM$SCAN #sem_tmp
500       ! GET Symbol: #sem_tmp
500       !      Value: REMARKS2
502       ! %OA-I-LOGFUN, Function: GET             #sem_status=1
502       ! GET Symbol: #sem_status=1
502       !      Value: 1
502       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message
503       ! [SCP/TRACE] .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message << Form= SEM$MAIL$SAVEFORSEND
503       ! GET Symbol: #SEM_STATUS
503       !      Value: 1
503       ! GET Symbol: 1
503       !      Value: 1
503       ! [SCP/TRACE]    OA$VAL_SET_VALID  << Form= SEM$MAIL$SAVEFORSEND
503       ! %OA-I-LOGFUN, Function: OA$VAL_SET_VALI 
503       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT
504       ! [SCP/TRACE] .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT << Form= SEM$MAIL$SAVEFORSEND
504       ! GET Symbol: #SEM_STATUS
504       !      Value: 1
504       ! GET Symbol: 1
504       !      Value: 1
504       ! %OA-I-LOGFUN, Function: IFEXIT          
504       ! %OA-I-LOGFUN, Function: GET             #SEM_TMP = "REMARKS" .%KEY
505       ! GET Symbol: #SEM_TMP = "REMARKS" .%KEY
505       !      Value: REMARKS3
505       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~"
505       ! [SCP/TRACE] .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
506       ! GET Symbol: ""
506       !      Value: 
506       ! GET Symbol: #SEM_TMP
506       !      Value: REMARKS3
506       ! OA$FLD_RTN: return field-contents 
506         ! OA$FMS_RTN: Returned "Remarks3                                                             " from field "REMARKS3" (6) on page 1
506       ! GET Symbol: @#SEM_TMP
506       !      Value: Remarks3
506       ! [SCP/TRACE]  XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
506       ! %OA-I-LOGFUN, Function: XOP             "~~VALIDATE_REMARKS~~"
507       ! GET Symbol: "~~VALIDATE_REMARKS~~"
507       !      Value: ~~VALIDATE_REMARKS~~
507       ! %OA-I-LOGFUN, Function: EXECUTE         SEM$SCAN #sem_tmp
507       ! GET Symbol: #sem_tmp
507       !      Value: REMARKS3
510       ! %OA-I-LOGFUN, Function: GET             #sem_status=1
510       ! GET Symbol: #sem_status=1
510       !      Value: 1
510       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message
510       ! [SCP/TRACE] .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message << Form= SEM$MAIL$SAVEFORSEND
510       ! GET Symbol: #SEM_STATUS
510       !      Value: 1
510       ! GET Symbol: 1
510       !      Value: 1
510       ! [SCP/TRACE]    OA$VAL_SET_VALID  << Form= SEM$MAIL$SAVEFORSEND
510       ! %OA-I-LOGFUN, Function: OA$VAL_SET_VALI 
511       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT
511       ! [SCP/TRACE] .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT << Form= SEM$MAIL$SAVEFORSEND
511       ! GET Symbol: #SEM_STATUS
511       !      Value: 1
511       ! GET Symbol: 1
511       !      Value: 1
511       ! %OA-I-LOGFUN, Function: IFEXIT          
511       ! %OA-I-LOGFUN, Function: GET             #SEM_TMP = "REMARKS" .%KEY
512       ! GET Symbol: #SEM_TMP = "REMARKS" .%KEY
512       !      Value: REMARKS4
512       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~"
512       ! [SCP/TRACE] .IF @#SEM_TMP NES "" THEN XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
512       ! GET Symbol: ""
512       !      Value: 
512       ! GET Symbol: #SEM_TMP
512       !      Value: REMARKS4
512       ! OA$FLD_RTN: return field-contents 
513         ! OA$FMS_RTN: Returned "Remarks4                                                             " from field "REMARKS4" (7) on page 1
513       ! GET Symbol: @#SEM_TMP
513       !      Value: Remarks4
513       ! [SCP/TRACE]  XOP "~~VALIDATE_REMARKS~~" << Form= SEM$MAIL$SAVEFORSEND
513       ! %OA-I-LOGFUN, Function: XOP             "~~VALIDATE_REMARKS~~"
513       ! GET Symbol: "~~VALIDATE_REMARKS~~"
513       !      Value: ~~VALIDATE_REMARKS~~
514       ! %OA-I-LOGFUN, Function: EXECUTE         SEM$SCAN #sem_tmp
514       ! GET Symbol: #sem_tmp
514       !      Value: REMARKS4
517       ! %OA-I-LOGFUN, Function: GET             #sem_status=1
517       ! GET Symbol: #sem_status=1
517       !      Value: 1
717       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message
717       ! [SCP/TRACE] .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message << Form= SEM$MAIL$SAVEFORSEND
718       ! GET Symbol: #SEM_STATUS
718       !      Value: 1
718       ! GET Symbol: 1
718       !      Value: 1
718       ! [SCP/TRACE]    OA$VAL_SET_VALID  << Form= SEM$MAIL$SAVEFORSEND
718       ! %OA-I-LOGFUN, Function: OA$VAL_SET_VALI 
718       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT
718       ! [SCP/TRACE] .IF #SEM_STATUS NE 1 THEN OA$FLD_EXIT << Form= SEM$MAIL$SAVEFORSEND
719       ! GET Symbol: #SEM_STATUS
719       !      Value: 1
719       ! GET Symbol: 1
719       !      Value: 1
719       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_status EQ 1 THEN  GET OA$STATUS = 1 ELSE  GET OA$FUNCTION = 'OA$FLD_STAY ' #sem_tmp\   GET OA$STATUS = 0
720       ! [SCP/TRACE] .IF #sem_status EQ 1 THEN  GET OA$STATUS = 1 ELSE  GET OA$FUNCTION = 'OA$FLD_STAY ' #sem_tmp\   GET OA$STATUS = 0 << Form= SEM$MAIL$SAVEFORSEND
720       ! GET Symbol: #SEM_STATUS
720       !      Value: 1
720       ! GET Symbol: 1
720       !      Value: 1
720       ! [SCP/TRACE]   GET OA$STATUS = 1  << Form= SEM$MAIL$SAVEFORSEND
721       ! %OA-I-LOGFUN, Function: GET             OA$STATUS = 1
721       ! GET Symbol: OA$STATUS = 1
721       !      Value: 1
721       ! %OA-I-LOGFUN, Function: IFSTATUS        
721       ! %OA-I-LOGFUN, Function: XOP             "~~CHANGE_REMARK_RECORD~~"
721       ! GET Symbol: "~~CHANGE_REMARK_RECORD~~"
721       !      Value: ~~CHANGE_REMARK_RECORD~~
721       ! %OA-I-LOGFUN, Function: GET             #sem_tmp = ""
721       ! GET Symbol: #sem_tmp = ""
722       !      Value: 
722       ! %OA-I-LOGFUN, Function: FOR             FIRST sem$data$remarks WITH .remarks_old EQS #sem_n DO GET #sem_tmp = 1
722       ! GET Symbol: #SEM_N
722       !      Value: N
722       ! DSAB Name: SEM$DATA$REMARKS                Requests : GET_NEXT
722       ! GET Symbol: .REMARKS_OLD
723       !      Value: Y
723       ! DSAB Name: SEM$DATA$REMARKS                Requests : GET_NEXT
723       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_tmp NE 1 THEN  FOR FIRST sem$data$remarks:remarks_inverted_nr DO       GET #sem_remarks_key = .remarks_nr\   .IF #sem_remarks_key EQ "" THEN GET #sem_remarks_key = 0\    COMPUTE #sem_remarks_key = #sem_remarks_key + 1\   GET #sem_tmp = #sem_remarks_key\   XOP "~~FORMAT_REMARKS_KEY~~"\   GET #sem_remarks_key = #sem_tmp\   COMPUTE #sem_tmp = 10000 - #sem_remarks_key\   XOP "~~FORMAT_REMARKS_KEY~~"\   WRITE ADD sem$data$remarks REMARKS_NR = #sem_rema
723       ! [SCP/TRACE] .IF #sem_tmp NE 1 THEN  FOR FIRST sem$data$remarks:remarks_inverted_nr DO       GET #sem_remarks_key = .remarks_nr\   .IF #sem_remarks_key EQ "" THEN GET #sem_remarks_key = 0\    COMPUTE #sem_remarks_key = #sem_remarks_key + 1\   GET #sem_tmp = #sem_remarks_key\   XOP "~~FORMAT_REMARKS_KEY~~"\   GET #sem_remarks_key = #sem_tmp\   COMPUTE #sem_tmp = 10000 - #sem_remarks_key\   XOP "~~FORMAT_REMARKS_KEY~~"\   WRITE ADD sem$data$remarks REMARKS_NR = #sem_remarks_key,        remarks_inve
723       ! GET Symbol: #SEM_TMP
723       !      Value: 
723       ! GET Symbol: 1
723       !      Value: 1
724       ! [SCP/TRACE]   FOR FIRST sem$data$remarks:remarks_inverted_nr DO       GET #sem_remarks_key = .remarks_nr\   .IF #sem_remarks_key EQ "" THEN GET #sem_remarks_key = 0\    COMPUTE #sem_remarks_key = #sem_remarks_key + 1\   GET #sem_tmp = #sem_remarks_key\   XOP "~~FORMAT_REMARKS_KEY~~"\   GET #sem_remarks_key = #sem_tmp\   COMPUTE #sem_tmp = 10000 - #sem_remarks_key\   XOP "~~FORMAT_REMARKS_KEY~~"\   WRITE ADD sem$data$remarks REMARKS_NR = #sem_remarks_key,        remarks_inverted_nr = #sem_tmp,   
724       ! %OA-I-LOGFUN, Function: FOR             FIRST sem$data$remarks:remarks_inverted_nr DO       GET #sem_remarks_key = .remarks_nr
724       ! DSAB Name: SEM$DATA$REMARKS                Requests : GET_NEXT
724       ! %OA-I-LOGFUN, Function: GET             #SEM_REMARKS_KEY = .REMARKS_NR
725       ! GET Symbol: #SEM_REMARKS_KEY = .REMARKS_NR
725       !      Value:    1
725       ! %OA-I-LOGFUN, Function: .               .IF #sem_remarks_key EQ "" THEN GET #sem_remarks_key = 0
725       ! [SCP/TRACE] .IF #sem_remarks_key EQ "" THEN GET #sem_remarks_key = 0 << Form= SEM$MAIL$SAVEFORSEND
725       ! GET Symbol: #SEM_REMARKS_KEY
725       !      Value:    1
725       ! GET Symbol: ""
725       !      Value: 
726       ! %OA-I-LOGFUN, Function: COMPUTE         #sem_remarks_key = #sem_remarks_key + 1
726       ! GET Symbol: #SEM_REMARKS_KEY
726       !      Value:    1
727       ! %OA-I-LOGFUN, Function: GET             #sem_tmp = #sem_remarks_key
727       ! GET Symbol: #sem_tmp = #sem_remarks_key
727       !      Value: 2
727       ! %OA-I-LOGFUN, Function: XOP             "~~FORMAT_REMARKS_KEY~~"
727       ! GET Symbol: "~~FORMAT_REMARKS_KEY~~"
727       !      Value: ~~FORMAT_REMARKS_KEY~~
727       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_tmp LT 10 THEN GET #sem_tmp = "   " #sem_tmp ELSE  .IF #sem_tmp LT 100 THEN GET #sem_tmp = "  " #sem_tmp   ELSE    .IF #sem_tmp LT 1000 THEN GET #sem_tmp = " " #sem_tmp
727       ! [SCP/TRACE] .IF #sem_tmp LT 10 THEN GET #sem_tmp = "   " #sem_tmp ELSE  .IF #sem_tmp LT 100 THEN GET #sem_tmp = "  " #sem_tmp   ELSE    .IF #sem_tmp LT 1000 THEN GET #sem_tmp = " " #sem_tmp << Form= SEM$MAIL$SAVEFORSEND
727       ! GET Symbol: #SEM_TMP
727       !      Value: 2
727       ! GET Symbol: 10
728       !      Value: 10
728       ! [SCP/TRACE]  GET #sem_tmp = "   " #sem_tmp  << Form= SEM$MAIL$SAVEFORSEND
728       ! %OA-I-LOGFUN, Function: GET             #sem_tmp = "   " #sem_tmp
728       ! GET Symbol: #sem_tmp = "   " #sem_tmp
728       !      Value:    2
728       ! %OA-I-LOGFUN, Function: GET             #sem_remarks_key = #sem_tmp
728       ! GET Symbol: #sem_remarks_key = #sem_tmp
729       !      Value:    2
729       ! %OA-I-LOGFUN, Function: COMPUTE         #sem_tmp = 10000 - #sem_remarks_key
729       ! GET Symbol: #SEM_REMARKS_KEY
729       !      Value:    2
730       ! %OA-I-LOGFUN, Function: XOP             "~~FORMAT_REMARKS_KEY~~"
730       ! GET Symbol: "~~FORMAT_REMARKS_KEY~~"
730       !      Value: ~~FORMAT_REMARKS_KEY~~
730       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_tmp LT 10 THEN GET #sem_tmp = "   " #sem_tmp ELSE  .IF #sem_tmp LT 100 THEN GET #sem_tmp = "  " #sem_tmp   ELSE    .IF #sem_tmp LT 1000 THEN GET #sem_tmp = " " #sem_tmp
730       ! [SCP/TRACE] .IF #sem_tmp LT 10 THEN GET #sem_tmp = "   " #sem_tmp ELSE  .IF #sem_tmp LT 100 THEN GET #sem_tmp = "  " #sem_tmp   ELSE    .IF #sem_tmp LT 1000 THEN GET #sem_tmp = " " #sem_tmp << Form= SEM$MAIL$SAVEFORSEND
731       ! GET Symbol: #SEM_TMP
731       !      Value: 9998
731       ! GET Symbol: 10
731       !      Value: 10
731       ! [SCP/TRACE]  .IF #sem_tmp LT 100 THEN GET #sem_tmp = "  " #sem_tmp   ELSE    .IF #sem_tmp LT 1000 THEN GET #sem_tmp = " " #sem_tmp << Form= SEM$MAIL$SAVEFORSEND
731       ! GET Symbol: #SEM_TMP
731       !      Value: 9998
731       ! GET Symbol: 100
731       !      Value: 100
732       ! [SCP/TRACE]    .IF #sem_tmp LT 1000 THEN GET #sem_tmp = " " #sem_tmp << Form= SEM$MAIL$SAVEFORSEND
732       ! GET Symbol: #SEM_TMP
732       !      Value: 9998
732       ! GET Symbol: 1000
732       !      Value: 1000
732       ! %OA-I-LOGFUN, Function: WRITE           ADD sem$data$remarks REMARKS_NR = #sem_remarks_key,        remarks_inverted_nr = #sem_tmp,        remarks_old = #sem_n
735       ! GET Symbol: #sem_remarks_key
735       !      Value:    2
735       ! GET Symbol: #sem_tmp
735       !      Value: 9998
735       ! GET Symbol: #sem_n
735       !      Value: N
736       ! DSAB Name: SEM$DATA$REMARKS                Requests : PUT_RECORD
738       ! DSAB Name: SEM$DATA$REMARKS                Requests : DEACCESS
738       ! %OA-I-LOGFUN, Function: XOP             "~~DEFINE_REMARK_VALUES~~"
738       ! GET Symbol: "~~DEFINE_REMARK_VALUES~~"
738       !      Value: ~~DEFINE_REMARK_VALUES~~
738       ! %OA-I-LOGFUN, Function: GET             #sem_remarks1 = REMARKS1
738       ! OA$FLD_RTN: return field-contents 
738         ! OA$FMS_RTN: Returned "And this is the remarks1                                             " from field "REMARKS1" (4) on page 1
739       ! GET Symbol: #sem_remarks1 = REMARKS1
739       !      Value: And this is the remarks1
739       ! %OA-I-LOGFUN, Function: GET             #sem_remarks2 = REMARKS2
739       ! OA$FLD_RTN: return field-contents 
739         ! OA$FMS_RTN: Returned "REmarks2                                                             " from field "REMARKS2" (5) on page 1
739       ! GET Symbol: #sem_remarks2 = REMARKS2
740       !      Value: REmarks2
740       ! %OA-I-LOGFUN, Function: GET             #sem_remarks3 = REMARKS3
740       ! OA$FLD_RTN: return field-contents 
740         ! OA$FMS_RTN: Returned "Remarks3                                                             " from field "REMARKS3" (6) on page 1
740       ! GET Symbol: #sem_remarks3 = REMARKS3
740       !      Value: Remarks3
741       ! %OA-I-LOGFUN, Function: GET             #sem_remarks4 = REMARKS4
741       ! OA$FLD_RTN: return field-contents 
741         ! OA$FMS_RTN: Returned "Remarks4                                                             " from field "REMARKS4" (7) on page 1
741       ! GET Symbol: #sem_remarks4 = REMARKS4
741       !      Value: Remarks4
741       ! %OA-I-LOGFUN, Function: WRITE           CHANGE sem$data$remarks REMARKS_NR = #sem_remarks_key,      REMARKS1 = #sem_remarks1,      REMARKS2 = #sem_remarks2,      REMARKS3 = #sem_remarks3,      REMARKS4 = #sem_remarks4
742       ! GET Symbol: #sem_remarks_key
742       !      Value:    2
742       ! DSAB Name: SEM$DATA$REMARKS                Requests : GET_BY_KEY
743       ! GET Symbol: #sem_remarks1
743       !      Value: And this is the remarks1
743       ! GET Symbol: #sem_remarks2
743       !      Value: REmarks2
743       ! GET Symbol: #sem_remarks3
743       !      Value: Remarks3
744       ! GET Symbol: #sem_remarks4
744       !      Value: Remarks4
744       ! DSAB Name: SEM$DATA$REMARKS                Requests : UPDATE
744       ! DSAB Name: SEM$DATA$REMARKS                Requests : DEACCESS
744       ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_actual_create EQ 1 THEN   GET #sem_gold_file_model = ""\   GET #sem_gold_file_draft = 1\   GET #sem_fc_folder = #sem_drafts_folder ELSE  GET #sem_gold_file_model = ""\   GET #sem_gold_file_draft = ""
744       ! [SCP/TRACE] .IF #sem_actual_create EQ 1 THEN   GET #sem_gold_file_model = ""\   GET #sem_gold_file_draft = 1\   GET #sem_fc_folder = #sem_drafts_folder ELSE  GET #sem_gold_file_model = ""\   GET #sem_gold_file_draft = "" << Form= SEM$MAIL$SAVEFORSEND
744       ! GET Symbol: #SEM_ACTUAL_CREATE
745       !      Value: 
745       ! GET Symbol: 1
745       !      Value: 1
745       ! [SCP/TRACE]  GET #sem_gold_file_model = ""\   GET #sem_gold_file_draft = "" << Form= SEM$MAIL$SAVEFORSEND
745       ! %OA-I-LOGFUN, Function: GET             #sem_gold_file_model = ""
745       ! GET Symbol: #sem_gold_file_model = ""
745       !      Value: 
746       ! %OA-I-LOGFUN, Function: GET             #sem_gold_file_draft = ""
746       ! GET Symbol: #sem_gold_file_draft = ""
746       !      Value: 
746       ! %OA-I-LOGFUN, Function: OA$FLD_DONE     
746       ! OA$FLD_DONE: 4
746         ! OA$FLD_POST_PROCESS: -- 00000678
746           ! OA$FMS_RTN: Returned "REmarks2                                                             " from field "REMARKS2" (5) on page 1
747         ! %OA-I-LOGFUN, Function: GET             #sem_tmp = REMARKS2
747         ! OA$FLD_RTN: return field-contents 
747           ! OA$FMS_RTN: Returned "REmarks2                                                             " from field "REMARKS2" (5) on page 1
747         ! GET Symbol: #sem_tmp = REMARKS2
747         !      Value: REmarks2
747         ! %OA-I-LOGFUN, Function: XOP             "~~VALIDATE_REMARKS~~"
747         ! GET Symbol: "~~VALIDATE_REMARKS~~"
747         !      Value: ~~VALIDATE_REMARKS~~
748         ! %OA-I-LOGFUN, Function: EXECUTE         SEM$SCAN #sem_tmp
748         ! GET Symbol: #sem_tmp
748         !      Value: REmarks2
751         ! %OA-I-LOGFUN, Function: GET             #sem_status=1
751         ! GET Symbol: #sem_status=1
751         !      Value: 1
751         ! %OA-I-LOGFUN, Function: OA$SCP_DISPATCH .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message
751         ! [SCP/TRACE] .IF #sem_status EQ 1 THEN   OA$VAL_SET_VALID ELSE  GET OA$DISPLAY = #sem_display_message << Form= SEM$MAIL$SAVEFORSEND
751         ! GET Symbol: #SEM_STATUS
751         !      Value: 1
751         ! GET Symbol: 1
751         !      Value: 1
752         ! [SCP/TRACE]    OA$VAL_SET_VALID  << Form= SEM$MAIL$SAVEFORSEND
752         ! %OA-I-LOGFUN, Function: OA$VAL_SET_VALI 
752           ! OA$FMS_RTN: Returned "Remarks3                                                             " from field "REMARKS3" (6) on page 1
752         ! %OA-I-LOGFUN, Function: GET             #sem_tmp = REMARKS3
752         ! OA$FLD_RTN: return field-contents 
753           ! OA$FMS_RTN: Returned "Remarks3                                                             " from field "REMARKS3" (6) on page 1
753         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
754         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
754         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
755         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
755         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
756         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
756         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
757         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
757         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
757         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
758         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
758         ! %OA-I-LOGERROR, %SYSTEM-F-ROPRAND, reserved operand fault at PC=00263393, PSL=03C00000
774         ! OA$FLO_ALL_NDISP: Undisplay all workspaces
2795.8Needs some investigationIOSG::CHINNICKgone walkaboutMon Jun 07 1993 19:2533
    Hi Paul...
    
    well, looking at the TRACE, I might revise my views on it being in
    OA$MAIN - the PC could be in the main image depending on what you have
    linked in.
    
    If its a memory corruption, it's probably going to be a stinker to
    track down, so I think we'll ignore that and come back to it once other
    things are exhausted.
    
    I'm surprised that you aren't getting .DMP files - if you are being
    dropped out to DCL after the ROPRAND errors you should be getting an
    OA$MAIN.DMP in the ALL-IN-1 subdirectory. Perhaps you might try
    defining SYS$PROCDMP to point to a directory which you can definitely
    write into. Also, you may need a lot of diskquota and space - the .DMP
    could be 20k blocks easily.
    
    You can still try to track down the ROPRAND PC by checking a DEBUG
    image of OA$MAIN. You need to run the A1LNKDRV procedure specifying
    OPTIONS D on the command line and it will create one:
    
    $ SET DEFAULT OA$BUILD_SHARE:
    $ @OA$BUILD:A1LNKDRV OPTIONS D
    
    Then you can run OA$MAIN and SET MODULE/ALL before examining the PC
    value to see what is there using EXAM/INSTR.
    
    I'll have a bit more of a look at the TRACE and ND and see if anything
    springs to mind tomorrow.
    
    'til then,
    
    Paul�
2795.9EUREKA - problem has been solvedHLDG00::LAMANTue Jun 08 1993 13:2934
Eureka! and
Shame on me!

    Finally I found and corrected the problem. It was indeed caused by my
    sharable image modules. So, what did I do (maybe someone can take
    advantage of my fault - or am I the only one this stupid?)

    To have ALL-IN-1 execute the correct callback functions, I set up a string
    which performs two GETs:

    GET #sem_status = 1\GET #sem_display_message = ""

    When my routine terminates it uses LIB$CALLG to invoke the callback
    routine of ALL-IN-1. As an argument a descriptor of the ALL-IN-1
    command(s) to be executed is expected. And here's where the trouble was
    caused: I used the descriptor that initially pointed to the input string,
    which was receive from ALL-IN-1, since I figured I didn't need that any
    more. Fool that I was! That's the way to corrupt memory, since in the case
    that the ALL-IN-1 command string length exceeds the length of the input
    string, part of the memory is overwritten! That's why I got the ROPRAND
    error and also sometimes got thing like 'FUNCTION "'" not implemented in
    this version' or 'FUNCTION "�" not implemented in this version'. ALL-IN-1
    was just reading rubbish from memory. The reason why it worked fine many
    times was, that ALL-IN-1 did not yet use the corruped memory yet or that
    the input string was longer than the ALL-IN-1 command string.

    Anyway, I want to thank anyone who contributed to get to the final
    solution. This really has caused some kind of stomac ache to me (and my
    project leader). Don't panic INSTALL/EXECUTE works fine ... no bugs.


    Groetjes,
    Paul�
2795.10Hint for debugin shareble imagesUTRTSC::EISINKNo pay, no cure !Tue Jun 15 1993 16:0114
    		Paul,
    
    maybe late but it wass a hell lot of time that a read this notefile.
    
    The problem with shareble images is that they are hard to debug. What
    I've done several times it to patch the main entry point in the
    shareble image. Mostly I put a jmp address to its own address. When I
    invoke the main image in the debuf mode, or swap the debug bit in the
    image header, wait untill it starts looping at hit ^c to get into the
    debug prompt. Then this will give you the advantage to debug your own
    code without knowung the base address of the mapped shareble routine.
    Use the deposit pc to branch over the loop  and set your breakpoints.
    
    		regards Rob