STRE SGLB Misc/Class Reference CLAS 354389 ESBR SORD 2 main data structure LITO 0 state of acknowledge input LITO 1 /o,1,255;Default legend LITO 0 last message sent to display ESBR SORD 5 /e,,,,,,Alarm channels;Channel List ICAL Dummy /*/O,354025;Channel name ICAL Dummy /o,354025;Channel name ESBR SORD 6 LITO 1 ack'd alarm pointer ESBR CMNT SORD 7 (ack'd alarm list) CMNT SORD 8 (unack'd alarm list) SGLB Output/#1 alarm connector list LCON /*+;Alarm output ESBR SGLB Output/#2 new alarm connector list LCON /*+;Unack'd alarm output ESBR SGLB Output/#3 display connector list LCON /*+;Display output ESBR ESTR STRE SGLB Misc/Superclass Reference CLAS 354008 ESBR SGLB General/Initialize for internal class use only CMNT Expects: É ¥ inst/É MACR initialize channels PRIM Heap/Name of self É ¥ name/inst/É PRIM Stack/Pop to aux É/name ¥ inst/É LITO 0 É/name ¥ 0/inst/É LITO 5 É/name ¥ 5/0/inst/É PRIM S_tree/Read É/name ¥ channel_list/inst/É LCAL Init É/name ¥ inst/É PRIM Stack/Push from aux É ¥ name/inst/É PRIM Heap/Set self É ¥ inst/É EMAC MACR initialize outputs LITO 0 É ¥ 0/inst/ GSYM Output/#1 É ¥ #1/0/inst/ PRIM Misc/Send entry É ¥ inst/ LITO 0 É ¥ 0/inst/ GSYM Output/#2 É ¥ #2/0/inst/ PRIM Misc/Send entry É ¥ inst/ EMAC MACR initialize display LITO 2 É ¥ 2/inst/ LITO 2 É ¥ 2/2/inst/ PRIM S_tree/Read É ¥ legend/inst/ GSYM Output/#3 É ¥ #3/legend/inst/ PRIM Misc/Send entry É ¥ inst/ EMAC PRIM Heap/Store self ESBR SGLB Alarm/Acknowledge /3t5,false,true;Select... CMNT Expects: É ¥ inst/arg/É CALL 354063 É ¥ last/arg/inst/É BRFL branch if last=0 BRFL branch if new=0 PRIM Heap/Store self BRTR LITO 8 É ¥ 8/inst/É PRIM S_tree/Test for entry É ¥ rslt/8/inst/É BRFL branch if no unack'd alarms PRIM Stack/Drop É ¥ inst/É LCAL rotate É ¥ inst/É LITO 1 É ¥ 1/inst/É CALL 354065 BRTR LITO 1 É ¥ 1/8/inst/É PRIM Stack/Swap É ¥ 8/1/inst/É PRIM S_tree/Read É ¥ index/inst/É GSYM Alarm/IntAck É ¥ method/index/inst/É CALL 354059 É ¥ inst/É LITO 1 É ¥ 1/inst/É CALL 354065 BRTR BRFL branch if new=0 LITO 0 É ¥ 0/inst/É CALL 354065 BRTR PRIM Heap/Store self ESBR SGLB Alarm/Report for internal class use only CMNT Expects: É ¥ inst/transition/index/É PRIM Stack/Switch É ¥ index/transition/inst/É PRIM Stack/Pop to aux É/index ¥ transition/inst/É STRE transition s-tree SORD 1 from safe to unack'd LITO 8 É/index ¥ 8/inst/É LCAL attach É ¥ rslt/inst/É BRFL branch if no such entry MACR set new alarm output high LITO 1 É ¥ 1/inst/É GSYM Output/#2 É ¥ #2/1/inst/É PRIM Misc/Send entry É ¥ inst/É EMAC LCAL Display É ¥ inst/É LITO 7 É ¥ 7/inst/É PRIM S_tree/Test for entry É ¥ rslt/7/inst/É PRIM Stack/Xdrop É ¥ rslt/inst/É BRFL branch if no such entry LITO 1 É ¥ 1/inst/É GSYM Output/#1 É ¥ #1/1/inst/É PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Store self BRTR PRIM Heap/Store self BRTR PRIM Heap/Store self ESBR SORD 2 from ack'd to safe LITO 7 É/index ¥ 7/inst/É LCAL remove É/index ¥ rslt/inst/É PRIM Stack/Drop from aux É ¥ rslt/inst/É BRFL branch if list removed LITO 8 É ¥ 8/inst/É PRIM S_tree/Test for entry É ¥ rslt/8/inst/É PRIM Stack/Xdrop É ¥ rslt/inst/É BRFL branch if no unack'd entry MACR set alarm output to low LITO 0 É ¥ 0/inst/É GSYM Output/#1 É ¥ #1/0/inst/É PRIM Misc/Send entry É ¥ inst/É EMAC LCAL Display É ¥ inst/É PRIM Heap/Store self BRTR LCAL Display É ¥ inst/É PRIM Heap/Store self BRTR LCAL Display É ¥ inst/É PRIM Heap/Store self ESBR SORD 3 from unack'd to safe LITO 8 É/index ¥ 8/inst/É LCAL remove É/index ¥ rslt/inst/É PRIM Stack/Drop from aux É ¥ rslt/inst/É BRFL branch if list removed LITO 7 É ¥ 7/inst/É PRIM S_tree/Test for entry É ¥ rslt/7/inst/É PRIM Stack/Xdrop É ¥ rslt/inst/É BRFL branch if no ack'd entry MACR Set alarm output to low LITO 0 É ¥ 0/inst/É GSYM Output/#1 É ¥ #1/0/inst/É PRIM Misc/Send entry É ¥ inst/É EMAC MACR Set new alarm output to low LITO 0 É ¥ 0/inst/É GSYM Output/#2 É ¥ #2/0/inst/É PRIM Misc/Send entry É ¥ inst/É EMAC LCAL Display É ¥ inst/É PRIM Heap/Store self BRTR MACR set new alarm output to low LITO 0 É ¥ 0/inst/É GSYM Output/#2 É ¥ #2/0/inst/É PRIM Misc/Send entry É ¥ inst/É EMAC LCAL Display É ¥ inst/É PRIM Heap/Store self BRTR LCAL Display É ¥ inst/É PRIM Heap/Store self ESBR SORD 4 from unack'd to ack'd LITO 8 É/index ¥ 8/inst/É LCAL remove É/index ¥ rslt/inst/É PRIM Stack/Swap É/index ¥ inst/unack'd?/É LITO 7 É/index ¥ 7/inst/unack'd?/É LCAL attach É ¥ rslt/inst/unack'd?/É PRIM Stack/Drop É ¥ inst/unack'd?/É PRIM Stack/Swap É ¥ unack'd?/inst/É BRFL branch if no more unack'd alarms MACR set new alarm output to low LITO 0 É ¥ 0/inst/É GSYM Output/#2 É ¥ #2/0/inst/É PRIM Misc/Send entry É ¥ inst/É EMAC LCAL Display É ¥ inst/É PRIM Heap/Store self BRTR LCAL Display É ¥ inst/É PRIM Heap/Store self ESBR ESTR ESBR SGLB Alarm/Get State /2e85,No Alarms,Ack'd Alarms,Unack'd Alarms CMNT Expects: É ¥ inst/route/É LITO 8 É ¥ 8/inst/route/É PRIM S_tree/Test for entry É ¥ rslt/8/inst/route/É PRIM Stack/Xdrop É ¥ rslt/inst/route/É BRFL branch if no unack'd alarms LITO 7 É ¥ 7/inst/route/É PRIM S_tree/Test for entry É ¥ rslt/7/inst/route/É PRIM Stack/Xdrop É ¥ rslt/inst/route/É CALL 354056 BRTR LITO 2 É ¥ 2/inst/route/É CALL 354056 ESBR ESTR LDEF Init CMNT Initializes all of the channels CMNT Input: É/master ¥ channel_list/inst/É CMNT Output: É/master ¥ inst/É PRIM List/Test for leaf Input: É/master ¥ rslt/channel_list/inst/É BRFL branch if not a leaf PRIM List/Behead É/master ¥ instance/channel_list/inst/É LCAL InitSend É/master ¥ channel_list/inst/É LCAL Init BRTR PRIM List/List to item Input: É/master ¥ instance/inst/É LCAL InitSend EDEF LDEF InitSend CMNT Sends the initialize message CMNT Input: É/master ¥ instance/É CMNT Output: É/master ¥ É LIST É/master ¥ list/instanceÉ GSYM Alarm/Init ELST PRIM List/Add É/master ¥ list'É PRIM Tags/Set delegate É/master ¥ MSGE/É PRIM Stack/Dup from aux É/master ¥ master/MSGE/É PRIM Stack/Swap É/master ¥ MSGE/master/É PRIM Misc/Execute É/master ¥ É EDEF LDEF Legend CMNT Gets the legend number from the channel CMNT Input: É ¥ index/inst/É CMNT Output: É ¥ legend/inst/É PRIM Heap/Name of self É ¥ self/index/inst/É LIST É ¥ list/self/index/inst/É GSYM Alarm/Enquire ELST PRIM Stack/Rotate down É ¥ index/list/self/inst/É PRIM List/Splice É ¥ list'/self/inst/É PRIM Tags/Set delegate É ¥ MSGE/self/inst/É PRIM Misc/Execute É ¥ legend/self/inst/É PRIM Stack/Swap É ¥ self/legend/inst/É PRIM Heap/Set self É ¥ legend/inst/É EDEF LDEF chop CMNT recursive routine for removing the first entry of a specified element CMNT rslt is false if the list was destroyed CMNT Input: É/index ¥ list/É CMNT Output: É/index ¥ rslt/(list')/É PRIM List/Test for leaf É/index ¥ rslt/list/É BRFL branch if end of list PRIM List/Behead É/index ¥ entry/list'/É PRIM Stack/Dup from aux É/index ¥ index/entry/list'/É PRIM Ordinal/Test equal É/index ¥ rslt/entry/list'/É BRFL branch if not equal PRIM Stack/Swap É/index ¥ list'/entry/É LCAL chop É/index ¥ rslt/(list')/entry/É BRFL branch if the list was destroyed PRIM List/Item to list É/index ¥ list/É LITO 1 É/index ¥ 1/list/É BRTR PRIM List/Add É/index ¥ list/É LITO 1 É/index ¥ 1/list/É BRTR PRIM Stack/Drop É/index ¥ list'/É LITO 1 É/index ¥ 1/list'/É BRTR CMNT temp PRIM List/List to item É/index ¥ entry/É PRIM Stack/Dup from aux É/index ¥ index/entry/É PRIM Ordinal/Compare É/index ¥ rslt/entry/É BRFL branch if not equal PRIM List/Item to list É/index ¥ list/É LITO 1 É/index ¥ 1/list/É BRTR PRIM Stack/Drop É/index ¥ É LITO 0 É/index ¥ 0/É EDEF LDEF attach CMNT attaches to the end of, or creates entry CMNT rslt is false if the list was created CMNT Input: É/index ¥ key/inst/É CMNT Output: É ¥ rslt/inst/É PRIM S_tree/Test for entry É/index ¥ rslt/key/inst/É BRFL branch if no such entry PRIM Stack/Push from aux É ¥ index/key/inst/É PRIM List/Item to list É ¥ list/key/inst/É PRIM S_tree/Put É ¥ inst/É LITO 0 É ¥ 0/inst/É BRTR PRIM S_tree/Get exact É/index ¥ list/key/inst/É PRIM Stack/Push from aux É ¥ index/list/key/inst/É CALL 354107 É ¥ list'/key/inst/É PRIM S_tree/Put É ¥ inst/É LITO 1 É ¥ 1/inst/É EDEF LDEF remove CMNT recursive routine for removing the first entry of a specified element CMNT Input: É/index ¥ key/instÉ CMNT Output: É/index ¥ rslt/inst/É PRIM S_tree/Get exact É/index ¥ list/key/inst/É LCAL chop É/index ¥ rslt/(list)/key/inst/É BRFL branch if list destroyed PRIM Stack/Drop É/index ¥ inst/É LITO 0 É/index ¥ 0/inst/É BRTR PRIM S_tree/Put É/index ¥ inst/É LITO 1 É/index ¥ 1/inst/É EDEF LDEF Display CMNT updates the display CMNT Input: É ¥ inst/É CMNT Output: É ¥ inst/É LITO 1 É ¥ 1/inst/É LITO 8 É ¥ 8/1/inst/É PRIM S_tree/Test and read É ¥ rslt/(entry)/inst/É BRFL branch if no unack'd alarms MACR set ptr to 1 LITO 1 É ¥ 1/inst/É LITO 1 É ¥ 1/1/inst/É LITO 6 É ¥ 6/1/1/inst/É PRIM S_tree/Replace É ¥ inst/É EMAC LITO 1 É ¥ 1/inst/É LITO 7 É ¥ 7/1/inst/É PRIM S_tree/Test and read É ¥ rslt/(entry)/inst/É BRFL branch if no alarms LITO 2 É ¥ 2/inst/É LITO 2 É ¥ 2/2/inst/É PRIM S_tree/Read É ¥ default/inst/É LITO 256 É ¥ 256/default/inst/É PRIM Ordinal/Add É ¥ legend'/inst/É LCAL DispEnd BRTR LCAL Legend É ¥ legend/inst/É LITO 512 É ¥ 512/legend/inst/É PRIM Ordinal/Add É ¥ legend'/inst/É LCAL DispEnd BRTR LCAL Legend É ¥ legend/inst/É LITO 768 É ¥ 768/legend/inst/É PRIM Ordinal/Add É ¥ legend'/inst/É LCAL DispEnd EDEF LDEF DispEnd CMNT Completes the Display LCAL CMNT Input: É ¥ legend/inst/É CMNT Output: É ¥ inst/É PRIM Stack/Swap É ¥ inst/legend/É LITO 3 É ¥ 3/inst/legend/É LITO 2 É ¥ 2/3/inst/legend/É PRIM S_tree/Read É ¥ last/inst/legend/É PRIM Stack/Xswap É ¥ last/legend/inst/É PRIM Ordinal/Test equal É ¥ rslt/legend/inst/É BRFL branch if not equal PRIM Stack/Dup down É ¥ legend/inst/legend/É GSYM Output/#3 É ¥ #3/legend/inst/legend/É PRIM Misc/Send entry É ¥ inst/legend/É PRIM Stack/Swap É ¥ legend/inst/É LITO 3 É ¥ 3/legend/inst/É LITO 2 É ¥ 2/3/legend/inst/É PRIM S_tree/Replace É ¥ inst/É BRTR PRIM Stack/Drop É ¥ inst/É EDEF LDEF rotate CMNT Determines the next ack'd alarm CMNT Input: É ¥ inst/É CMNT Output: É ¥ inst/É LITO 1 É ¥ 1/inst/É LITO 6 É ¥ 6/1/inst/É PRIM S_tree/Read É ¥ ptr/inst/É PRIM Stack/Dup to aux É/ptr ¥ ptr/inst/É PRIM Ordinal/Increment É/ptr ¥ ptr+1/inst/É LITO 7 É/ptr ¥ 7/ptr+1/inst/É PRIM S_tree/Test and read É/ptr ¥ rslt/(ref)/inst/É BRFL branch if no such entry PRIM Stack/Push from aux É ¥ ptr/inst/É BRFL branch if ptr=0 PRIM Misc/Idle do nothing BRTR LITO 0 É ¥ 0/inst/É LITO 1 É ¥ 1/0/inst/É LITO 6 É ¥ 6/1/0/inst/É PRIM S_tree/Replace É ¥ inst/É LCAL rotate BRTR PRIM Stack/Swap É/ptr ¥ inst/ref/É PRIM Stack/Push from aux É ¥ ptr/inst/ref/É PRIM Ordinal/Increment É ¥ ptr+1/inst/ref/É LITO 1 É ¥ 1/ptr+1/inst/ref/É LITO 6 É ¥ 6/1/ptr+1/inst/ref/É PRIM S_tree/Replace É ¥ inst/ref/É PRIM Stack/Swap É ¥ ref/inst/É LCAL Legend É ¥ legend/inst/É LCAL DispEnd EDEF CMNT This class is very similar to the first Alarm Handler CMNT The only difference is the addition of the rotate LDEF CMNT In the acknowledge method. CMNT It is not inherited since it will never be used with the original