1 "  ******************************************************
 2 "  *                                                    *
 3 "  *                                                    *
 4 "  * Copyright (c) 1972 by Massachusetts Institute of   *
 5 "  * Technology and Honeywell Information Systems, Inc. *
 6 "  *                                                    *
 7 "  *                                                    *
 8 "  ******************************************************
 9 
10 "  ******************************************************
11 "  *                                                    *
12 "  *                                                    *
13 "  *    Copyright, (C) Honeywell Information Systems    *
14 "  *    Inc., 1980.                                     *
15 "  *                                                    *
16 "  *                                                    *
17 "  ******************************************************
18 
19 "This routine ckecks an MLR that failed when placing the fill character
20 "across a page boundary.
21 
22 "If the MLR fails, a DRL fault is forced.
23 "Successful execution of the MLR is checked by using a CMPC AND a LDAQ/CMPAQ
24 "to verify that the CMPC worked correctly. If the CMPC and LDAQ/CMPAQ results
25 "agree, then the DRL fault is signaled if they sensed a failure. If they
26 "disagree then a MME4 is forced to denote that the CMPC failed. If both the MLR
27 "AND CMPC failed a MME1 is forced.
28 
29 
30           name      mlrstern
31           entry     mlrstern
32           temp      eis_misc
33           temp      ou_misc
34 mlrstern: push
35           epplb     ap|2,*
36           epplb     lb|0,*    "get ptr to test_data1_
37           eppsb     ap|4,*
38           eppsb     sb|0,*    "get ptr to test_cpu temp seg
39           stz       eis_misc
40           stz       ou_misc
41           lda       =o235253,dl
42           ldq       =o167773,dl
43           eax7      6
44           eax6      5
45 
46           mlr       (pr,rl,al),(pr,rl,ql),fill(040)
47           desc9a    lb|-1(3),x6
48           desc9a    sb|0,x7
49 
50           cmpc      (pr,rl,al),(pr,rl,ql),fill(040)
51           desc9a    lb|-1(3),x6
52           desc9a    sb|0,x7
53           tnz       fail1
54 ou_check:
55           ldaq      sb|15358
56           cmpaq     constant1
57           tnz       fail2
58           ldaq      sb|15360
59           cmpaq     constant2
60           tnz       fail2
61 validate:
62           lda       eis_misc
63           cmpa      ou_misc
64           tnz       eis_failed          "either the mlr or cmpc failed
65           ldq       0,dl
66           cmpq      eis_misc
67           tnz       mlr_failed
68           epbpsb    sp|0
69           return
70 
71 fail1:    aos       eis_misc            "remember cmpc miscompared
72           tra       ou_check            "now validate with std instrs
73 fail2:    aos       ou_misc             "remember ldaq/cmpaq miscompared
74           tra       validate
75 
76           even
77 constant1:
78           oct       000000000165
79           oct       166167170171
80 constant2:
81           oct       040000000000
82           oct       0
83 cmpc_failed:
84           mme4
85 
86 mlr_failed:
87           drl
88 
89 eis_failed:
90           lda       ou_misc
91           cmpa      0,dl
92           tze       cmpc_failed
93           mme1                          "MLR and CMPC failed
94           end