.title handler ; ; reserved floating point operand handler for fdmp ; ; here we expect two arrays, passed by length, more or less ; ; the first one is the signal argument vector, which describes ; things like the PC and PSL ; ; the second is the mechanism argument vector, which describes ; the saved state of the process ; $ssdef .psect $data,rd,nowrt,shr,pic,noexe reserved_message1: .ascid /There was an invalid floating point number in the/ reserved_message2: .ascid /record below. The value was set to zero. You should/ reserved_message3: .ascid /examine the record in hex to see the value in error./ blank: .ascid / / .psect $code,rd,nowrt,shr,pic,exe .entry handler,^m movl 4(ap),r2 ; get address of sigarg array movl 8(ap),r3 ; get address of mecharg array cmpl 4(r2),#ss$_roprand ; see if this is a reserved op bneq nofix pushaq blank calls #1,g^lib$put_output ; send message to user pushaq reserved_message1 calls #1,g^lib$put_output ; send message to user pushaq reserved_message2 calls #1,g^lib$put_output ; send message to user pushaq reserved_message3 calls #1,g^lib$put_output ; send message to user pushaq blank calls #1,g^lib$put_output ; send message to user movf #0,@12(r3) movl #ss$_continue,r0 ; signal continue ret nofix: movl #ss$_resignal,r0 ; no fix here, resignal error ret .end