%ZTER ; ISC-SF.SEA/JLI - KERNEL ERROR TRAP TO LOG ERRORS ;08/02/2011
Source file <ZTER.m>
| Name | Comments | DBIA/ICR reference | 
|---|---|---|
| ETXT() | ;Return the Text of the error | |
| UNWIND | ;Unwind stack for new error trap. Called by app code. | 
 
 | 
| SUBS | ;Save sub-nodes | |
| ERR | ;Handle an error in %ZTER | |
| UCI() | ;Return the UCI, Changed to Box:Volume p431 | |
| POST | ;Do the post-init | |
| LIN | ;Find the line of the error | |
| UNW | ||
| APPERROR(%ZTERNM) | ;Caller gives name to Error. p431 | 
 
 | 
| ECNT | ;Add to the error count | |
| FMT(%ZTE) | ;Format the error text | |
| ENC(%ZT1) | ;Encode a string with control char in \027 format | |
| ABORT | ;Pop the stack all the way. | |
| EXIT | ; | |
| GLOB | ; save off a list of global subtrees, %ZT is passed in subscripted by name ; %ZTERCNT passed in to count the nodes we traverse ; %ZTERNOD the nodes through which we $QUERY ; %ZTERNAM the names of the global subtrees we're saving ; %ZTEROPN is %ZTERNAM, evaluated, without close paren for $PIECEing | |
| SCREEN(ERR,%ZT3) | ;Screen out certain errors. | |
| VAR | ||
| NEWERR() | ;Does this OS support the M95 error trapping | 
 
 | 
| Z1 | ||
| Z2 | ||
| SAVE(%ZTERN,%ZTERV) | ;Save name and value into global, use special variables | 
| Name | Line Occurrences (* Changed, ! Killed) | 
|---|---|
| ^%ZOSF("LOAD" | LIN+5 | 
| ^%ZOSF("OS" | Z2+17, Z2+22 | 
| ^%ZOSF("TEST" | LIN+4 | 
| ^%ZTER(1 - [#3.075] | Z1+4, Z1+5, Z2, Z2+1, Z2+2*, Z2+3*, Z2+4, Z2+6, Z2+28, Z2+29* , ERR+1* | 
| ^%ZTER(2 - [#3.076] | LIN+10, SCREEN+14, SCREEN+17, SCREEN+19 | 
| ^%ZTER(3.077 - [#3.077] | ECNT+2, ECNT+3, ECNT+5, ECNT+6, ECNT+7*, ECNT+9, ECNT+11*, ECNT+12*, ECNT+13*, SCREEN+6 | 
| ^TMP("$ZE" | %ZTER+3*, %ZTER+4*, %ZTER+5*, %ZTER+6*, %ZTER+7, Z1+1, Z2+9, EXIT+3, EXIT+4!, APPERROR+1* , APPERROR+2*, APPERROR+3*, APPERROR+4* | 
| ^TMP($J | LIN+3!, LIN+6, LIN+7, LIN+8! | 
| ^XTV(8989.3 - [#8989.3] | SCREEN+9 | 
| Name | Line Occurrences | 
|---|---|
| $$ENC | Z2+9 | 
| $$ETXT | Z2+13 | 
| $$FMT | ECNT+1, SCREEN+4 | 
| $$SCREEN | Z1+2 | 
| $$UCI | Z2+10 | 
| ECNT | EXIT+1 | 
| EXIT | Z1+2 | 
| GLOB | Z2+26 | 
| SAVE | Z2+16, Z2+18, Z2+20, VAR, SUBS+4 | 
| SUBS | Z2+25 | 
| VAR | Z2+25 | 
| Z1 | APPERROR+6 | 
| Z2 | Z2 | 
| Name | Field # of Occurrence | 
|---|---|
| ^( | Z2+28*, LIN+6, LIN+10 | 
| ^("GR" | Z2+5* | 
| ^("J" | Z2+11* | 
| ^("L" | SAVE+4* | 
| ^("ZE" | Z2+5* | 
| ^(0 | ECNT+5*, ECNT+9*, SCREEN+14 | 
| ^(2 | SCREEN+14 | 
| ^(3 | SCREEN+19* | 
| >> | Not killed explicitly | 
| * | Changed | 
| ! | Killed | 
| ~ | Newed | 
| Name | Field # of Occurrence | 
|---|---|
| %ZT | EXIT+7! | 
| %ZT( | GLOB+7 | 
| %ZT("^XUTL(""XQ"",$J)" | Z1+1* | 
| %ZT1 | ENC~, ENC+2 | 
| %ZT3 | SCREEN~, SCREEN+18 | 
| %ZTA | SCREEN+1~, SCREEN+7* | 
| %ZTB | ENC+1~*, ENC+2*, ENC+3 | 
| %ZTC | ENC+1~, ENC+2* | 
| %ZTE | FMT~, FMT+1*, FMT+2*, FMT+3*, FMT+4, SCREEN+1~, SCREEN+4*, SCREEN+6, SCREEN+11*, SCREEN+14* , SCREEN+17*, SCREEN+19 | 
| %ZTER111 | EXIT+5! | 
| %ZTER112 | EXIT+5! | 
| %ZTER11A | Z2+22!, EXIT+5!, ECNT+1*, ECNT+2, ECNT+3, ECNT+7 | 
| %ZTER11B | Z2+22!, EXIT+5! | 
| %ZTER11C | Z2+1*, Z2+2, Z2+7! | 
| %ZTER11D | EXIT+5! | 
| %ZTER11H | EXIT+5!, ECNT+10*, ECNT+11 | 
| %ZTER11I | Z2+10*, Z2+11, EXIT+5! | 
| %ZTER11L | EXIT+5! | 
| %ZTER11N | Z1+5*, Z2*, Z2+2, Z2+3, Z2+4, Z2+5, Z2+29, EXIT+5!, ERR+1, ECNT+1* , ECNT+3*, ECNT+4, ECNT+5*, ECNT+6*, ECNT+7, ECNT+9, ECNT+11, ECNT+12, ECNT+13 | 
| %ZTER11Q | EXIT+5! | 
| %ZTER11S | EXIT+5!, SUBS+1*, SUBS+3*, SUBS+4*, ECNT+10*, ECNT+11 | 
| %ZTER11Z | EXIT+5! | 
| %ZTER12A | Z2+7!, Z2+9*, Z2+12, EXIT+6! | 
| %ZTER12B | Z2+7!, Z2+9*, Z2+12, EXIT+6! | 
| %ZTER13A | %ZTER+10*, EXIT+2, EXIT+6! | 
| >> %ZTERAPP | Z2+5, APPERROR+5* | 
| %ZTERCNT | Z2+14*, Z2+27, EXIT+7!, SAVE+1*, SAVE+2, SAVE+4, SAVE+6, GLOB+12*, GLOB+13, GLOB+14 | 
| %ZTERH1 | Z1+4*, Z1+5, Z2, Z2+1, Z2+2, Z2+3, Z2+4, Z2+6, Z2+28, Z2+29 , EXIT+7!, ERR+1 | 
| %ZTERI | SAVE+5~, SAVE+6* | 
| %ZTERLGR | %ZTER+9, Z1+1*, Z2+5! | 
| %ZTERN | SAVE~, SAVE+1 | 
| %ZTERNAM | GLOB+5~, GLOB+6*, GLOB+7*, GLOB+8, GLOB+13 | 
| %ZTERNM | APPERROR~, APPERROR+2 | 
| %ZTERNOD | GLOB+5~, GLOB+8*, GLOB+9, GLOB+11*, GLOB+13, GLOB+14 | 
| %ZTEROPN | GLOB+5~, GLOB+9*, GLOB+11, GLOB+13 | 
| %ZTERROR | Z2+13*, LIN+10*, EXIT+6! | 
| %ZTERRT | Z2+4*, Z2+5, Z2+11, Z2+12, Z2+19*, Z2+27, LIN+9, EXIT+7!, SAVE+1, SAVE+2 , SAVE+4, SAVE+6, GLOB+13, GLOB+14 | 
| %ZTERSUB | EXIT+6!, SUBS+2* | 
| %ZTERV | SAVE~, SAVE+2, SAVE+4, SAVE+6* | 
| %ZTERVAP | EXIT+6!, SUBS+2* | 
| %ZTERVAR | Z2+24*, Z2+25*, EXIT+6!, VAR, SUBS+1, SUBS+2, SUBS+3 | 
| %ZTERX | LIN+1*, LIN+2, LIN+5, LIN+6, LIN+7, EXIT+7! | 
| %ZTERY | LIN+1*, LIN+4, LIN+5*, LIN+6, LIN+7, EXIT+7! | 
| %ZTERZE | Z1+1*, Z1+2, Z2+5, LIN+1, EXIT+6!, ETXT+1, ECNT+1 | 
| %ZTH | SCREEN+1~, SCREEN+4*, SCREEN+6 | 
| %ZTI | ENC+1~, ENC+2*, SCREEN+1~, SCREEN+6*, SCREEN+11*, SCREEN+13, SCREEN+14*, SCREEN+17, SCREEN+19 | 
| %ZTJ | SCREEN+1~, SCREEN+6*, SCREEN+7*, SCREEN+9, SCREEN+13*, SCREEN+14, SCREEN+18 | 
| %ZTR | SCREEN+1~, SCREEN+6*, SCREEN+7 | 
| %ZTZLIN | LIN+6*, LIN+7*, LIN+9! | 
| >> D0 | %ZTER+9 | 
| >> DA | %ZTER+9 | 
| >> DI | %ZTER+9 | 
| >> DIC | %ZTER+9 | 
| >> DIE | %ZTER+9 | 
| DIF | LIN+3~, LIN+5* | 
| >> DISYS | %ZTER+9 | 
| DT | %ZTER+9 | 
| DUZ | %ZTER+9 | 
| ERR | SCREEN~, SCREEN+1*, SCREEN+2, SCREEN+4, SCREEN+14 | 
| IO | %ZTER+9 | 
| IO("ZIO" | Z2+12 | 
| >> IOBS | %ZTER+9 | 
| IOF | %ZTER+9 | 
| IOM | %ZTER+9 | 
| ION | %ZTER+9 | 
| >> IOS | %ZTER+9 | 
| IOSL | %ZTER+9 | 
| IOST | %ZTER+9 | 
| >> IOT | %ZTER+9 | 
| >> IOXY | %ZTER+9 | 
| U | %ZTER+9 | 
| X | LIN+3~, LIN+4*, LIN+6*, LIN+7* | 
| XCNP | LIN+3~, LIN+5* | 
| >> XQAUDIT | %ZTER+9 | 
| >> XQDIC | %ZTER+9 | 
| >> XQPSM | %ZTER+9 | 
| >> XQPT | %ZTER+9 | 
| >> XQVOL | %ZTER+9 | 
| >> XQXFLG | %ZTER+9 | 
| >> XQY | %ZTER+9 | 
| >> XQY0 | %ZTER+9 | 
| >> XRTL | %ZTER+9 | 
| XUALLOC | %ZTER+8, Z1! | 
| Y | UCI+1~*, UCI+2*, UCI+3 | 
| >> ZTQUEUED | %ZTER+9 | 
| >> ZTREQ | %ZTER+9 | 
| >> ZTSTOP | %ZTER+9 |