1 " ***********************************************************
2 " * *
3 " * Copyright, C Honeywell Bull Inc., 1987 *
4 " * *
5 " * Copyright, C Honeywell Information Systems Inc., 1982 *
6 " * *
7 " * Copyright c 1972 by Massachusetts Institute of *
8 " * Technology and Honeywell Information Systems, Inc. *
9 " * *
10 " ***********************************************************
11 name parity_check
12
13 entry parity_check
14 entry set_parity_mask
15 entry reset_parity_mask
16
17 " Last Modified by RBSnyder 02/14/73 for follow-on
18
19 "
20 " call parity_checkloc word check
21 "
22 " loc pointer pointer to parity cell
23 " word bit36 contents of cell indicating parity
24 " check fixed bin = 0 if no parity
25 "
26 "
27 " This routine is called to validate the existence of a parity error
28 " by re-accessing the word in question.
29 " It is used by the software to verify that the
30 " condition was in fact a memory parity error.
31 "
32 "
33 "
34 "
35 " call set_parity_mask
36 "
37 " This entry is used to set the parity mask indicator in
38 " the caller's indicators.
39 "
40 "
41 " call reset_parity_mask
42 "
43 " This entry is the reverse of the one above
44 "
45
46 include mc
47 "^L
48
49 parity_check:
50 ldi scu.ir.parm,dl Set mask
51 eppbp ap|2,* Pick up pointer to cell
52 lda bp|0,* Read from cell
53 sta ap|4,* Return contents
54 sti ap|6,* Store indicators into return arg
55 lda scu.ir.par,dl Pick up mask
56 ansa ap|6,* If error occured, will be non-zero
57 short_return
58
59 set_parity_mask:
60 sti sp|0 store the current indicators
61 lda scu.ir.parm,dl Pick up masking bit
62 orsa sp|0 store into stored indicators
63 ldi sp|0 reload indicators
64 short_return
65
66 reset_parity_mask:
67 sti sp|0 save current indicators
68 lca scu.ir.parm+1,dl Form 1-s complement of mask
69 ansa sp|0 and delete the bit
70 ldi sp|0 get new indicators
71 short_return
72
73 end parity_check ^L