| Thanks for Your answer!
In the meantime, I asked the customer 3 questions and receives his
answers:
1. Q: Did the program crashes also in other places?
A: Yes. ->appendix 1 (all tracebacks are from an Alpha)
2. Q: Can You extract me the useful output of BASIC/LIST?
A: ->appendix 2
3. Q: Do You use 'blank Basic'? (no system routines, library routines
or routines of an other language?)
A: I use only BASIC and RTL functions.
Appendix 1:
============================================================================
%OTS-F-INTDATCOR, internal data corrupted in Run-Time Library
%TRACE-F-TRACEBACK, symbolic stack dump follows
Image Name Module Name Routine Name Line Number rel PC
abs PC
0 804417F4
804417F4
DEC$BASRTL 0 0000E7C0
004D27C0
----- above condition handler called with exception 0017801C:
%OTS-F-INTDATCOR, internal data corrupted in Run-Time Library
----- end of exception message
0 842682BC
842682BC
DEC$BASRTL 0 0003A730
004FE730
DEC$BASRTL 0 00035DA4
004F9DA4
DEC$BASRTL 0 0000D3B8
004D13B8
----- above condition handler called with exception 001A805C:
%BAS-F-ENDFILDEV, End of file on device
-BAS-I-ON_CHAFIL, on channel 116 for file DISK$SIMS:[SIMS.DAT]SP.DAT;1
at user
-RMS-E-EOF, end of file detected
----- end of exception message
0 842682BC
842682BC
DEC$BASRTL 0 0004A9F8
0050E9F8
DEC$BASRTL 0 0003D124
00501124
DEC$BASRTL 0 000462FC
0050A2FC
PROSP AST_HANDLER_EIN AST_HANDLER_EIN 535 00000610
0005FF30
0 800825A4
800825A4
DEC$BASRTL 0 0003AD94
004FED94
DEC$BASRTL 0 0003A52C
004FE52C
DEC$BASRTL 0 00035548
004F9548
DEC$BASRTL 0 00035320
004F9320
PROSP PROSP PRTLOG 2260 000014AC
000514AC
PROSP PROSP DO_WHOLE_STACK 3423 0000E53C
0005E53C
PROSP PROSP PROSP 3616 00000F38
00050F38
0 84366170
84366170
SIMS job terminated at 6-FEB-1997 00:46:42.83
<CR><LF> Accounting information:
Buffered I/O count: 67326 Peak working set size:
8128
Direct I/O count: 314503 Peak page file size:
55104
Page faults: 3265 Mounted volumes:
0
Charged CPU time: 0 00:07:41.28 Elapsed time: 2
14:52:08.46
----------------------------------------------------------------------------
%OTS-F-INTDATCOR, internal data corrupted in Run-Time Library
%TRACE-F-TRACEBACK, symbolic stack dump follows
Image Name Module Name Routine Name Line Number rel PC
abs PC
0 804417F4
804417F4
DEC$BASRTL 0 0000E7C0
004D27C0
----- above condition handler called with exception 0017801C:
%OTS-F-INTDATCOR, internal data corrupted in Run-Time Library
----- end of exception message
0 842682BC
842682BC
DEC$BASRTL 0 0003A730
004FE730
DEC$BASRTL 0 00035DA4
004F9DA4
DEC$BASRTL 0 0000D3B8
004D13B8
----- above condition handler called with exception 001A84DC:
%BAS-F-RECNOTFOU, Record not found
-BAS-I-ON_CHAFIL, on channel 12 for file
DISK$SIMS:[SIMS.DAT]PATIENTEN.DAT;4
at
-RMS-E-RNF, record not found
----- end of exception message
0 842682BC
842682BC
DEC$BASRTL 0 0004A9F8
0050E9F8
DEC$BASRTL 0 0003D4F0
005014F0
DEC$BASRTL 0 00046684
0050A684
PROSP SP_EINTRITT GETDATA 1549 000013C8
00082BC8
PROSP SP_EINTRITT TESTING 1608 00001C30
00083430
PROSP SP_EINTRITT SP_EINTRITT 2111 0000044C
00081C4C
PROSP AST_HANDLER_EIN AST_HANDLER_EIN 540 000007E0
00060100
0 800825A4
800825A4
DEC$BASRTL 0 0003AD8C
004FED8C
DEC$BASRTL 0 0003A52C
004FE52C
DEC$BASRTL 0 00035548
004F9548
DEC$BASRTL 0 00035320
004F9320
PROSP PROSP PRTLOG 2260 000014AC
000514AC
PROSP PROSP DO_WHOLE_STACK 3475 0000EE0C
0005EE0C
PROSP PROSP PROSP 3616 00000F38
00050F38
0 84366170
84366170
SIMS job terminated at 3-FEB-1997 09:53:32.09
<CR><LF> Accounting information:
Buffered I/O count: 69276 Peak working set size:
8496
Direct I/O count: 336666 Peak page file size:
55488
Page faults: 1401 Mounted volumes:
0
Charged CPU time: 0 00:08:34.92 Elapsed time: 4
16:52:53.57
----------------------------------------------------------------------------
%OTS-F-INTDATCOR, internal data corrupted in Run-Time Library
%TRACE-F-TRACEBACK, symbolic stack dump follows
Image Name Module Name Routine Name Line Number rel PC
abs PC
0 804417F4
804417F4
DEC$BASRTL 0 0000E7C0
004D27C0
----- above condition handler called with exception 0017801C:
%OTS-F-INTDATCOR, internal data corrupted in Run-Time Library
----- end of exception message
0 842682BC
842682BC
DEC$BASRTL 0 0003A730
004FE730
DEC$BASRTL 0 00035DA4
004F9DA4
DEC$BASRTL 0 0000D3B8
004D13B8
----- above condition handler called with exception 001A84DC:
%BAS-F-RECNOTFOU, Record not found
-BAS-I-ON_CHAFIL, on channel 12 for file
DISK$SIMS:[SIMS.DAT]PATIENTEN.DAT;4
at
-RMS-E-RNF, record not found
----- end of exception message
0 842682BC
842682BC
DEC$BASRTL 0 0004A9F8
0050E9F8
DEC$BASRTL 0 0003D4F0
005014F0
DEC$BASRTL 0 00046684
0050A684
PROSP SP_EINTRITT GETDATA 1549 000013C8
00082BC8
PROSP SP_EINTRITT TESTING 1608 00001C30
00083430
PROSP SP_EINTRITT SP_EINTRITT 2111 0000044C
00081C4C
PROSP AST_HANDLER_EIN AST_HANDLER_EIN 540 000007E0
00060100
0 800825A4
800825A4
DEC$BASRTL 0 0003ADA0
004FEDA0
DEC$BASRTL 0 0003A52C
004FE52C
DEC$BASRTL 0 00035548
004F9548
DEC$BASRTL 0 00035320
004F9320
PROSP PROSP PRTLOG 2260 000014AC
000514AC
PROSP PROSP DO_WHOLE_STACK 3475 0000EE0C
0005EE0C
PROSP PROSP PROSP 3616 00000F38
00050F38
0 84366170
84366170
SIMS job terminated at 29-JAN-1997 17:00:02.21
<CR><LF> Accounting information:
Buffered I/O count: 46552 Peak working set size:
7536
Direct I/O count: 173026 Peak page file size:
54592
Page faults: 1666 Mounted volumes:
0
Charged CPU time: 0 00:04:40.91 Elapsed time: 2
02:04:06.32
============================================================================
Appendix 2:
============================================================================
1538 DEF BYTE GETDATA( LONG keynum, STRING keystr)
1539
1540 WHEN ERROR IN
1541 GETDATA = TRUE
1542 GET #CHNPAT, KEY #keynum EQ keystr ,REGARDLESS
1543 USE
1544 SELECT ERR
1545 CASE 155%
1546 GETDATA = FALSE
1547 CASE ELSE
1548 EXIT HANDLER
1549 END SELECT
1550 END WHEN
1551
1552 END DEF
.
.
.
.
1592 DEF INTEGER TESTING
1593
1594 DECLARE BYTE record_found
1595
1596 TESTING = SS$_NORMAL
1597
1598 IF SP$EDIFACT_MASK > 0% AND SPS::USERNAME =
"EDIFACT"
THEN
1599
1600 SELECT SPS::COMMAND_ID ! what
command
1601 CASE SP$EINTRITT !
Admission
1602 IF GETDATA( PAT$K_NUMMER, SPS::ID +
SPS::PATIENT_NUMBER) THEN ! check patient number
1603 IF NOT SPS::REENTRY THEN
1604 RETURN_VALUE = SPS::PATIENT_NUMBER
1605 TESTING = SIMS$MSG_PATNUM_USED ! This
patient
number is occupied
1606 ELSE
1607 IF SPS::ID = SP$ID_MIETER THEN
1608 CALL DBG_MSG( DBG$ERROR,
SPS::SP$NODE, "SP",
"SP_EINTRITT/CLEAR_OLD_PID" &
1609 ,"Reentry of Tendant with contract
Nr. " +
sps::patient_number,"")
1610 ELSE
1611 CALL DBG_MSG( DBG$ERROR,
SPS::SP$NODE, "SP",
"SP_EINTRITT/CLEAR_OLD_PID" &
1612 ,"Reentry of Patient with Patient
Nr. " +
sps::patient_number,"")
1613 END IF
1614 END IF
1615 ELSE !
number not
used
1616 IF SPS::CARD_CODE <> "0" AND SPS::PHONE
THEN
1617 IF GETDATA( PAT$K_CODE, SPS::CARD_CODE)
THEN
1618 TESTING = Check_Card !
check, is
card free
1619 END IF
1620 END IF
1621 END IF
1622 CASE SP$CHANGE_CARD !
Change Card
1623 IF GETDATA( PAT$K_NUMMER, SPS::ID +
SPS::PATIENT_NUMBER) THEN
1624 SPS::OLD_CODE = pat::code
1625 END IF
1626 IF GETDATA( PAT$K_CODE, SPS::CARD_CODE)
THEN
1627 TESTING = Check_Card !
check, card
is free
1628 END IF
1629 END SELECT
1630 END IF
1631
1632 END DEF ! testing
.
.
.
2089 ! Main Program
*********************************************************************
2090
2091 WHEN ERROR USE Error_Handler
2092
2093 ZEROTIME::HL, ZEROTIME::LL = 0%
2094 SYS_STATUS = SYS$BINTIM( SP$LOCK_CARD + "
00:00:00.01",
LOCK_CARD)
2095
2096 RSET SPS::CARD_CODE = NUM1$( INTEGER(
SPS::CARD_CODE))
2097 SPS::DWDN = FORMAT$( INTEGER( SPS::DWDN),
"<0>######")
2098
2099 CALL DBG_MSG( DBG$INFO, SPS::SP$NODE,
"SP","SP_EINTRITT"
&
2100 ,GETMSG( SIMS$DBG_EINTRITT,
SPS::CARD_CODE)
,"")
2101
2102 LOCKED% = FALSE
2103 MARKED = FALSE
2104
2105 RETURN_STATUS = TESTING
2106
2107 IF RETURN_STATUS = SS$_NORMAL THEN
2108
2109 WHEN ERROR IN
2110 PAT_STATUS = RMS$_NORMAL
2111 RETURN_VALUE = SPS::CARD_CODE
2112 RETURN_STATUS = SS$_NORMAL
2113 GET #CHNPAT , KEY #PAT$K_CODE EQ SPS::CARD_CODE
!
2114 USE
2115 SELECT ERR
2116 CASE 155%
! new
patient code
2117 PAT_STATUS = VMSSTATUS
2118 CASE ELSE
2119 RETURN_STATUS = VMSSTATUS
2120 END SELECT
2121 END WHEN
2122
2123 IF RETURN_STATUS = SS$_NORMAL THEN
! ok
2124 RETURN_STATUS = LOCK_FREE_DWDN
2125 IF RETURN_STATUS = SS$_NORMAL THEN
! ok
2126
2127 SELECT SP$MODE
2128 CASE "1"
2129 SUB_STATUS = GET_SUBLEVEL_MODE1
2130 CASE "2"
2131 IF NOT SPS::REENTRY THEN
2132 SUB_STATUS = GET_SUBLEVEL_MODE2
2133 ELSE
2134 SUB_STATUS = GET_TBI_RECORD_FOR_REENTRY
2135 END IF
2136 END SELECT
2137
2138 SELECT SUB_STATUS
2139 CASE RMS$_NORMAL
! dn
expired
2140 CALL DBG_MSG( DBG$INFO, SPS::SP$NODE,
"SP"
&
2141 ,"SP_EINTRITT/GET_SUBLEVEL"
&
2142 ,"Sublevel " + NUM1$( TBI::SUBLEVEL)
+ "
expired","")
2143
2144 return_status = send_to_tax
2145 IF return_status = SS$_NORMAL THEN
2146 Y = UPDATE_DN_BUFFER
! get
the values
2147 UPDATE #CHNTEI
!
overwritte the old dn
2148 Y = UPDATE_FREE_DWDN( EIN)
2149 Y = HANDLE_PATIENT
2150 Y = MIETER
2151 END IF
2152 CASE RMS$_RNF
2153 CALL DBG_MSG( DBG$INFO, SPS::SP$NODE,
"SP"
&
2154 ,"SP_EINTRITT/GET_SUBLEVEL"
&
2155 ,"Create new Sublevel " + NUM1$(
TBI::SUBLEVEL),"")
2156
2157 return_status = send_to_tax
2158 IF return_status = SS$_NORMAL THEN
2159 Y = UPDATE_DN_BUFFER
! get
the values
2160 PUT #CHNTEI
! put
a new record
2161 Y = UPDATE_FREE_DWDN( EIN)
2162 Y = HANDLE_PATIENT
2163 Y = MIETER
2164 END IF
2165 CASE ELSE
!
unexpected error
2166 RETURN_STATUS = SUB_STATUS
2167 END SELECT
2168 y = Clear_Old_PID
2169 END IF
2170 END IF
2171 END IF
2172
2173 IF RETURN_STATUS = SS$_NORMAL THEN
2174 CALL DBG_MSG( DBG$INFO, SPS::SP$NODE,
"SP","SP_EINTRITT"
&
2175 , GETMSG3( RETURN_STATUS,
RETURN_VALUE), "")
2176
2177 CALL DBG_MSG( DBG$ALWAYS, SPS::SP$NODE, "SM",""
&
2178 , "Eintritt "
&
2179 + "Patnr : " + SPS::CARD_CODE
&
2180 + " Name : " + NEW_PANAM
&
2181 + " Dwdn : " + NEW_PANUM, "")
2182
2183 ELSE
2184
2185 SAV_RETURN_VALUE = RETURN_VALUE
2186 Y = UPDATE_FREE_DWDN( AUS)
2187 RETURN_VALUE = SAV_RETURN_VALUE
2188
2189 CALL DBG_MSG( DBG$ERROR, SPS::SP$NODE,
"SP","SP_EINTRITT" &
2190 , GETMSG3( RETURN_STATUS,
RETURN_VALUE ),
"")
2191
2192 EDI::BUFF = ""
2193 SYS_STATUS = PRTMSG( EDI$PRINTER, RETURN_STATUS,
RETURN_VALUE, SPS::USERNAME &
2194 , EDI::BUFF BY REF, SPS::BUFF BY
REF, "",
0%)
2195
2196 END IF
2197 SP_EINTRITT = RETURN_STATUS ! return status
to
caller
2198
2199 END WHEN
2200
2201 HANDLER Error_Handler
2202
2203 CALL DBG_MSG( DBG$ERROR, "0", "SP",
"SP_EINTRIT/ERROR_HANDLER" &
2204 ," Vmsstatus : " + GETMSG(
VMSSTATUS, ),
"")
2205
2206 SP_EINTRITT = VMSSTATUS
2207
2208 END HANDLER
2209
2210 UNLOCK #CHNTEI
2211 UNLOCK #CHNPAT
2212 UNLOCK #CHNFDN
2213
2214 IF SP$EDIFACT_MASK > 0% AND SP$MODE = "1" AND
SPS::USERNAME = "EDIFACT" THEN
2215
2216 ! unlock resource "get_free_dwdn"
2217 SYS_STATUS = SYS$ENQW(,LCK$K_NLMODE BY VALUE
!
lock mode &
2218 ,FDN$LKSB
! lock
id & status &
2219 ,LCK$M_CONVERT BY VALUE
!
convert lock &
2220 ,,,,,,,)
2221
2222 CALL LIB$STOP( SYS_STATUS BY VALUE) IF
(SYS_STATUS AND
1%) = 0%
2223 CALL LIB$STOP( FDN$LKSB::VMS_STATUS BY VALUE) IF
(FDN$LKSB::VMS_STATUS AND 1%) = 0%
2224
2225 END IF
2226
2227 END FUNCTION ! End of FUNCTION SP_EINTRITT
Allocation information for DEF GETDATA Offset based on (R10)
Name Offset Size Type
Parameters:
KEYNUM 115 4 Long
KEYSTR 111 8 Dynamic string
Result:
GETDATA 126 1 Byte
Allocation information for DEF TESTING Offset based on (R10)
Name Offset Size Type
Result:
TESTING 123 4 Long
============================================================================
|