XMesaCmplr13h.mesa  23-Aug-87 12:47:00
Jim Foote January 25, 1988 8:26:06 am PST
Mna, April 17, 1991 3:29 pm PDT
<< The driver for three types of regression tests. Currently calls the procedures ModHa, ModHb, and ModHc. ModHa tests assignment and defaulting to VAR PROCEDUREs as well as passing and returning procedures with other procedures. ModHb tests some complicated record constructors. ModHc tests record extractors first with an emphasis on the left hand side and then on the right hand side. >>
DIRECTORY
RunRegressions,
XMesaCmplr10Defs1,
XMesaCmplr13Defs4,
XMesaProcs;
XMesaCmplr13h: PROGRAM
IMPORTS RunRegressions, XMesaCmplr10Defs1, XMesaCmplr13Defs4, XMesaProcs =
BEGIN
filename: LONG STRING ¬ "ModH compiler tests."L;
ModHCall: PROCEDURE =
BEGIN
XMesaProcs.PrintCR[];
XMesaProcs.PrintS[filename];
XMesaProcs.PrintCR[];
ModHa[]; --PROCEDURE variables
ModHb[];   --RECORD constructors
ModHc[]; --RECORD extractors
XMesaProcs.PrintS["Done."L];
XMesaProcs.PrintCR[];
END;
ModHa: PROCEDURE =  --VAR procs, procs as param's, procs as results
BEGIN
XMesaProcs.Isequal[XMesaCmplr13Defs4.DefaultProc1[],1,600,"Def. Procedure 1"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.ReturnProc1[53][],1,601,"Def. Return Type11"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.PassProc1[XMesaCmplr13Defs4.DefaultProc1],1,602,"Def. Pass Type11"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.DefaultProc2[2],6,610,"Def. Procedure 2"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ReturnProc2[53][2],6,611,"Def. Return Type22"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.PassProc2[XMesaCmplr13Defs4.DefaultProc2],6,612, "Def. Pass Type22"];
XMesaCmplr13Defs4.ProcVar1 ¬ XMesaCmplr13Defs4.Type11;
XMesaProcs.Isequal[XMesaCmplr13Defs4.ProcVar1[],1,630,"ProcVar1 ¬ Type11"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.ReturnProc1[1][],1,631,"Return Type11"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.PassProc1[XMesaCmplr13Defs4.Type11],1,632,"Pass Type11"];
XMesaCmplr13Defs4.ProcVar1 ¬ XMesaCmplr13Defs4.Type12;
XMesaProcs.Isequal[XMesaCmplr13Defs4.ProcVar1[],2,640,"ProcVar1 ¬ Type12"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.ReturnProc1[2][],2,641,"Return Type12"];
XMesaProcs.Isequal[XMesaCmplr13Defs4.PassProc1[XMesaCmplr13Defs4.Type12],2,642,"Pass Type12"];
XMesaCmplr13Defs4.ProcVar2 ¬ XMesaCmplr13Defs4.Type21;
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ProcVar2[2],4,650,"ProcVar2 ¬ Type21"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ReturnProc2[1][2],4,651,"Return Type21"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.PassProc2[XMesaCmplr13Defs4.Type21],4,652,"Pass Type21"];
XMesaCmplr13Defs4.ProcVar2 ¬ XMesaCmplr13Defs4.Type22;
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ProcVar2[2],6,660,"ProcVar2 ¬ Type22"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.ReturnProc2[2][2],6,661,"Return Type22"];
XMesaProcs.IsCardequal[XMesaCmplr13Defs4.PassProc2[XMesaCmplr13Defs4.Type22],6,662,"Pass Type22"];
END;
ModHb: PROCEDURE =
BEGIN
aBoringPR: XMesaCmplr13Defs4.PackedRec ¬ [
-- arm1 -- [' ,' ,' ],
-- arm2 -- [1,1,1],
-- arm3 -- [TRUE,TRUE,TRUE],
-- arm4 -- [white,white,white],
-- arm5 -- [[' ,' ,' ],[' ,' ,' ],[' ,' ,' ]]
];
all1PR: XMesaCmplr13Defs4.PackedRec ¬ [
-- arm1 -- ALL['a],
-- arm2 -- ALL[2],
-- arm3 -- ALL[FALSE],
-- arm4 -- ALL[red],
-- arm5 -- ALL[ALL['x]]
];
all2PR: XMesaCmplr13Defs4.PackedRec ¬ [
arm1: ALL[XMesaCmplr10Defs1.Getchar[]],
arm2: all1PR.arm2,
arm3: all1PR.arm3,
arm4: all1PR.arm4,
arm5: [ALL['x], ALL['y], ALL['z]]
];
aBoringRofR: XMesaCmplr13Defs4.RecOfRec ¬ [
-- arm1 -- TRUE,
-- arm2 -- aBoringPR,
-- arm3 -- [' , TRUE, white, aBoringPR]
];
aRofR: XMesaCmplr13Defs4.RecOfRec ¬ [
-- arm1 -- FALSE,
-- arm2 -- [
['c,'c,'c],
[3,3,3],
[FALSE,FALSE,FALSE],
[blue,blue,blue],
[['j,'j,'j], ['k,'k,'k], ['h,'h,'h]]
],
-- arm3 -- [
-- a -- 'm,
-- b -- FALSE,
-- c -- red,
-- PackedRec -- [
-- arm1 -- ['n,'n,'n],
-- arm2 -- [5,5,5],
-- arm3 -- [TRUE,TRUE,FALSE],
-- arm4 -- [red,white,blue],
-- arm5 -- [['k,'e,'v],['i,'n,'&],['t,'w,'o]]
]
]
];
thePR: XMesaCmplr13Defs4.PackedRec ¬ aBoringPR;
theRofR: XMesaCmplr13Defs4.RecOfRec ¬ aBoringRofR;
XMesaProcs.Ischarequal[thePR.arm1[1], ' , 700, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm1[3], ' , 701, "ModHb"L];
IF thePR.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[702, "ModHb"L];
IF thePR.arm2[3] # 1 THEN XMesaProcs.PutFailMessage[703, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[1],TRUE, 704, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[3],TRUE, 705, "ModHb"L];
IF thePR.arm4[1] # white THEN XMesaProcs.PutFailMessage[706, "ModHb"L];
IF thePR.arm4[3] # white THEN XMesaProcs.PutFailMessage[707, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[1][1], ' , 708, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[3][3], ' , 709, "ModHb"L];
thePR ¬ all1PR;
XMesaProcs.Ischarequal[thePR.arm1[1], 'a, 710, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm1[3], 'a, 711, "ModHb"L];
IF thePR.arm2[1] # 2 THEN XMesaProcs.PutFailMessage[712, "ModHb"L];
IF thePR.arm2[3] # 2 THEN XMesaProcs.PutFailMessage[713, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[1],FALSE, 714, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[3],FALSE, 715, "ModHb"L];
IF thePR.arm4[1] # red THEN XMesaProcs.PutFailMessage[716, "ModHb"L];
IF thePR.arm4[3] # red THEN XMesaProcs.PutFailMessage[717, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[1][1], 'x, 718, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[3][3], 'x, 719, "ModHb"L];
thePR ¬ all2PR;
XMesaProcs.Ischarequal[thePR.arm1[1], 'b, 720, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm1[3], 'b, 721, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[1],FALSE, 724, "ModHb"L];
XMesaProcs.Isboolequal[thePR.arm3[3],FALSE, 725, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[1][1], 'x, 728, "ModHb"L];
XMesaProcs.Ischarequal[thePR.arm5[3][3], 'z, 729, "ModHb"L];
Now testing theRofR which was initialized to aBoringRofR above.
XMesaProcs.Isboolequal[theRofR.arm1, TRUE, 740, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[1], ' , 740, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[3], ' , 741, "ModHb"L];
IF theRofR.arm2.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[742, "ModHb"L];
IF theRofR.arm2.arm2[3] # 1 THEN XMesaProcs.PutFailMessage[743, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[1],TRUE, 744, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[3],TRUE, 745, "ModHb"L];
IF theRofR.arm2.arm4[1] # white THEN XMesaProcs.PutFailMessage[746, "ModHb"L];
IF theRofR.arm2.arm4[3] # white THEN XMesaProcs.PutFailMessage[747, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[1][1], ' , 748, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[3][3], ' , 749, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.a, ' , 750, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.b,TRUE, 751, "ModHb"L];
IF theRofR.arm3.c # white THEN XMesaProcs.PutFailMessage[752, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[1], ' , 750, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[3], ' , 751, "ModHb"L];
IF theRofR.arm3.p.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[752, "ModHb"L];
IF theRofR.arm3.p.arm2[3] # 1 THEN XMesaProcs.PutFailMessage[753, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[1],TRUE, 754, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[3],TRUE, 755, "ModHb"L];
IF theRofR.arm3.p.arm4[1] # white THEN XMesaProcs.PutFailMessage[756, "ModHb"L];
IF theRofR.arm3.p.arm4[3] # white THEN XMesaProcs.PutFailMessage[757, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[1][1], ' , 758, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[3][3], ' , 759, "ModHb"L];
theRofR ¬ aRofR;
XMesaProcs.Isboolequal[theRofR.arm1, FALSE, 760, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[1], 'c, 760, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm1[3], 'c, 761, "ModHb"L];
IF theRofR.arm2.arm2[1] # 3 THEN XMesaProcs.PutFailMessage[762, "ModHb"L];
IF theRofR.arm2.arm2[3] # 3 THEN XMesaProcs.PutFailMessage[763, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[1],FALSE, 764, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm2.arm3[3],FALSE, 765, "ModHb"L];
IF theRofR.arm2.arm4[1] # blue THEN XMesaProcs.PutFailMessage[766, "ModHb"L];
IF theRofR.arm2.arm4[3] # blue THEN XMesaProcs.PutFailMessage[767, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[1][1], 'j, 768, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm2.arm5[3][3], 'h, 769, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.a, 'm, 770, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.b,FALSE, 771, "ModHb"L];
IF theRofR.arm3.c # red THEN XMesaProcs.PutFailMessage[772, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[1], 'n, 770, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm1[3], 'n, 771, "ModHb"L];
IF theRofR.arm3.p.arm2[1] # 5 THEN XMesaProcs.PutFailMessage[772, "ModHb"L];
IF theRofR.arm3.p.arm2[3] # 5 THEN XMesaProcs.PutFailMessage[773, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[1],TRUE, 774, "ModHb"L];
XMesaProcs.Isboolequal[theRofR.arm3.p.arm3[3],FALSE, 775, "ModHb"L];
IF theRofR.arm3.p.arm4[1] # red THEN XMesaProcs.PutFailMessage[776, "ModHb"L];
IF theRofR.arm3.p.arm4[3] # blue THEN XMesaProcs.PutFailMessage[777, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[1][1], 'k, 778, "ModHb"L];
XMesaProcs.Ischarequal[theRofR.arm3.p.arm5[3][3], 'o, 779, "ModHb"L];
END;
ModHc: PROCEDURE =
BEGIN
aPSR: XMesaCmplr13Defs4.PointerSizeRec ¬ [2, 'b, 'e];
bPSR: XMesaCmplr13Defs4.PointerSizeRec ¬ [4, 'd, 'j];
aPSRPointer: XMesaCmplr13Defs4.PSRPointer ¬ @aPSR;
arrayOfPSR: XMesaCmplr13Defs4.ArrayOfPSR ¬ ALL[bPSR];
aBoringPR: XMesaCmplr13Defs4.PackedRec ¬ [
-- arm1 -- [' ,' ,' ],
-- arm2 -- [1,1,1],
-- arm3 -- [TRUE,TRUE,TRUE],
-- arm4 -- [white,white,white],
-- arm5 -- [[' ,' ,' ],[' ,' ,' ],[' ,' ,' ]]
];
aBoringRofR: XMesaCmplr13Defs4.RecOfRec ¬ [
-- arm1 -- TRUE,
-- arm2 -- aBoringPR,
-- arm3 -- [' , TRUE, white, aBoringPR]
];
a1,a2,a11: XMesaCmplr13Defs4.PA1;
a3,a4,a12: XMesaCmplr13Defs4.PA2;
a5,a6,a13: XMesaCmplr13Defs4.PA3;
a7,a14: XMesaCmplr13Defs4.PA4;
a9,a15: XMesaCmplr13Defs4.PA5;
b1,b2,b3,b4: BOOLEAN;
c1,c2: XMesaCmplr13Defs4.Color;
ch1,ch2,ch3,ch4,--ch5,ch6,--ch7,ch8, ch9,ch10,ch11: CHAR;
ch12,ch13,ch14,ch15,ch16,ch17,ch18--,ch19,ch20--: CHAR;
i1,--i2,-- i3, i4,i5,i6,i7,i8--,i9--: INTEGER;
lp: LONG POINTER ¬ LOOPHOLE[aPSR]; bogus test
li: LONG INTEGER ¬ LOOPHOLE[bPSR]; bogus test
r1,r2,r3: XMesaCmplr13Defs4.PackedRec;
ReturnPSR: PROCEDURE RETURNS [r: XMesaCmplr13Defs4.PointerSizeRec] = {
RETURN [aPSR];
};
RetPSRPoint: PROCEDURE RETURNS [p: XMesaCmplr13Defs4.PSRPointer] = {
RETURN [aPSRPointer];
};
ReturnBoringPR: PROCEDURE RETURNS [r: XMesaCmplr13Defs4.PackedRec] = {
RETURN [aBoringPR];
};
left hand side emphasis
[a1, a3, a5, a7, a9] ¬ aBoringPR;
[b1, r1, [ch1, b2, c1, r2]] ¬ aBoringRofR;
[b3, r3, [ch2, b4, c2, [a2, a4, a6]]] ¬ aBoringRofR;
XMesaProcs.Ischarequal[a1[1],' ,800, "ModHc"L];
IF a3[1] # 1 THEN XMesaProcs.PutFailMessage[801, "ModHc"L];
XMesaProcs.Isboolequal[a5[1], TRUE, 802, "ModHc"L];
IF a7[1] # white THEN XMesaProcs.PutFailMessage[803, "ModHc"L];
XMesaProcs.Ischarequal[a9[1][1],' ,804, "ModHc"L];
XMesaProcs.Ischarequal[a9[3][3],' ,805, "ModHc"L];
XMesaProcs.Isboolequal[b1, TRUE, 810, "ModHc"L];
XMesaProcs.Ischarequal[r1.arm1[1], ' , 811, "ModHc"L];
IF r1.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[812, "ModHc"L];
XMesaProcs.Isboolequal[r1.arm3[1],TRUE, 813, "ModHc"L];
IF r1.arm4[1] # white THEN XMesaProcs.PutFailMessage[814, "ModHc"L];
XMesaProcs.Ischarequal[r1.arm5[1][1], ' , 815, "ModHc"L];
XMesaProcs.Ischarequal[r1.arm5[3][3], ' , 816, "ModHc"L];
XMesaProcs.Ischarequal[ch1, ' ,817, "ModHc"L];
XMesaProcs.Isboolequal[b2, TRUE, 818, "ModHc"L];
IF c1 # white THEN XMesaProcs.PutFailMessage[819, "ModHc"L];
XMesaProcs.Ischarequal[r2.arm1[1], ' , 820, "ModHc"L];
IF r2.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[821, "ModHc"L];
XMesaProcs.Isboolequal[r2.arm3[1],TRUE, 822, "ModHc"L];
IF r2.arm4[1] # white THEN XMesaProcs.PutFailMessage[823, "ModHc"L];
XMesaProcs.Ischarequal[r2.arm5[1][1], ' , 824, "ModHc"L];
XMesaProcs.Ischarequal[r2.arm5[3][3], ' , 825, "ModHc"L];
XMesaProcs.Isboolequal[b3, TRUE, 830, "ModHc"L];
XMesaProcs.Ischarequal[r3.arm1[1], ' , 831, "ModHc"L];
IF r3.arm2[1] # 1 THEN XMesaProcs.PutFailMessage[832, "ModHc"L];
XMesaProcs.Isboolequal[r3.arm3[1],TRUE, 833, "ModHc"L];
IF r3.arm4[1] # white THEN XMesaProcs.PutFailMessage[834, "ModHc"L];
XMesaProcs.Ischarequal[r3.arm5[1][1], ' , 835, "ModHc"L];
XMesaProcs.Ischarequal[r3.arm5[3][3], ' , 836, "ModHc"L];
XMesaProcs.Ischarequal[ch2, ' ,837, "ModHc"L];
XMesaProcs.Isboolequal[b4, TRUE, 838, "ModHc"L];
IF c2 # white THEN XMesaProcs.PutFailMessage[839, "ModHc"L];
XMesaProcs.Ischarequal[a2[1], ' , 840, "ModHc"L];
IF a4[1] # 1 THEN XMesaProcs.PutFailMessage[841, "ModHc"L];
XMesaProcs.Isboolequal[a6[1],TRUE, 842, "ModHc"L];
right hand side emphasis
[[a11, a12, a13, a14, a15]] ¬ ReturnBoringPR[];
[[i1, ch3, ch4]] ¬ ReturnPSR[];
[i2, ch5, ch6] ¬ LOOPHOLE [lp, XMesaCmplr13Defs4.PointerSizeRec]; This is a bogus test
[i3, ch7, ch8] ¬ IF XMesaCmplr10Defs1.Getb[] THEN aPSR ELSE bPSR;
[i4, ch9, ch10] ¬ RetPSRPoint[]­;
[i5, ch11, ch12] ¬ arrayOfPSR[2];
[i6, ch13, ch14] ¬ XMesaCmplr13Defs4.PointerSizeRec[XMesaCmplr10Defs1.Geti[],
XMesaCmplr10Defs1.Getchar[],XMesaCmplr10Defs1.Getchar[]];
[i7, ch15, ch16] ¬ bPSR ¬ RetPSRPoint[]­; --bPSR is changed to aPSR here
[[i8, ch17, ch18]] ¬ XMesaCmplr13Defs4.InlineRetPSR[aPSR];
[i9, ch19, ch20] ¬ LOOPHOLE [li, XMesaCmplr13Defs4.PointerSizeRec]; bogus test
check for aBoringPR
XMesaProcs.Ischarequal[a11[1],' ,850, "ModHc"L];
IF a12[1] # 1 THEN XMesaProcs.PutFailMessage[851, "ModHc"L];
XMesaProcs.Isboolequal[a13[1], TRUE, 852, "ModHc"L];
IF a14[1] # white THEN XMesaProcs.PutFailMessage[853, "ModHc"L];
XMesaProcs.Ischarequal[a15[1][1],' ,854, "ModHc"L];
XMesaProcs.Ischarequal[a15[3][3],' ,855, "ModHc"L];
aPSR from ReturnPSR
XMesaProcs.Isequal[i1, 2, 860, "ModHc"L];
XMesaProcs.Ischarequal[ch3, 'b, 861, "ModHc"L];
XMesaProcs.Ischarequal[ch4, 'e, 862, "ModHc"L];
aPSR from LOOPHOLE of a LONG POINTER
<<Bogus test
XMesaProcs.Isequal[i2, 2, 870, "ModHc"L];
XMesaProcs.Ischarequal[ch5, 'b, 871, "ModHc"L];
XMesaProcs.Ischarequal[ch6, 'e, 872, "ModHc"L];
>>
bPSR from conditional r.h.s.
XMesaProcs.Isequal[i3, 4, 880, "ModHc"L];
XMesaProcs.Ischarequal[ch7, 'd, 881, "ModHc"L];
XMesaProcs.Ischarequal[ch8, 'j, 882, "ModHc"L];
aPSR from RetPSRPoint­
XMesaProcs.Isequal[i4, 2, 890, "ModHc"L];
XMesaProcs.Ischarequal[ch9, 'b, 891, "ModHc"L];
XMesaProcs.Ischarequal[ch10, 'e, 892, "ModHc"L];
bPSR from arrayOfPSR
XMesaProcs.Isequal[i5, 4, 900, "ModHc"L];
XMesaProcs.Ischarequal[ch11, 'd, 901, "ModHc"L];
XMesaProcs.Ischarequal[ch12, 'j, 902, "ModHc"L];
extract from constructor made by importing the 3 fields
XMesaProcs.Isequal[i6, 2, 910, "ModHc"L];
XMesaProcs.Ischarequal[ch13, 'b, 911, "ModHc"L];
XMesaProcs.Ischarequal[ch14, 'b, 912, "ModHc"L];
aPSR from r.h.s. assignment from RetPSRPoint­
XMesaProcs.Isequal[i7, 2, 920, "ModHc"L];
XMesaProcs.Ischarequal[ch15, 'b, 921, "ModHc"L];
XMesaProcs.Ischarequal[ch16, 'e, 922, "ModHc"L];
aPSR from InlineRetPSR
XMesaProcs.Isequal[i8, 2, 930, "ModHc"L];
XMesaProcs.Ischarequal[ch17, 'b, 931, "ModHc"L];
XMesaProcs.Ischarequal[ch18, 'e, 932, "ModHc"L];
bPSR from LOOPHOLE of a LONG INTEGER
<< Bogus test
XMesaProcs.Isequal[i9, 4, 940, "ModHc"L];
XMesaProcs.Ischarequal[ch19, 'd, 941, "ModHc"L];
XMesaProcs.Ischarequal[ch20, 'j, 942, "ModHc"L];
>>
END;
RunRegressions.RegisterTest[ModHCall, "test13"]
END.