|
@@ -108,9 +108,9 @@ BEGIN
|
|
|
IF NOT (12 IN Scanner.scanOpt) THEN Errors.AskContinue(v) END;
|
|
IF NOT (12 IN Scanner.scanOpt) THEN Errors.AskContinue(v) END;
|
|
|
END GetRangeBase;
|
|
END GetRangeBase;
|
|
|
(* proc24 @0038 — kind-4 with word3 > 2. Name TBD (audit). *)
|
|
(* proc24 @0038 — kind-4 with word3 > 2. Name TBD (audit). *)
|
|
|
-PROCEDURE Proc24(t: RecordPtr): BOOLEAN;
|
|
|
|
|
|
|
+PROCEDURE Proc24(t: NodePtr): BOOLEAN;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
- RETURN (t^.word4 = 4) AND (CARDINAL(t^.word3) > 2);
|
|
|
|
|
|
|
+ RETURN (t^.w4 = 4) AND (CARDINAL(t^.w3) > 2);
|
|
|
END Proc24;
|
|
END Proc24;
|
|
|
(* proc26 @001a — kind-11 with word5 = CharType. *)
|
|
(* proc26 @001a — kind-11 with word5 = CharType. *)
|
|
|
PROCEDURE IsPointer(t: RecordPtr): BOOLEAN;
|
|
PROCEDURE IsPointer(t: RecordPtr): BOOLEAN;
|
|
@@ -156,9 +156,23 @@ BEGIN HALT; END OpSetTest;
|
|
|
(* proc29 @01eb stub — ~ParseActualList (0-arg; TBD by MCD audit). *)
|
|
(* proc29 @01eb stub — ~ParseActualList (0-arg; TBD by MCD audit). *)
|
|
|
PROCEDURE ParseActualList;
|
|
PROCEDURE ParseActualList;
|
|
|
BEGIN HALT; END ParseActualList;
|
|
BEGIN HALT; END ParseActualList;
|
|
|
-(* proc28 @009e — ~EmitAddress (takes head). *)
|
|
|
|
|
|
|
+(* proc28 @009e — ~EmitAddress. *)
|
|
|
PROCEDURE EmitAddress(d: HeadPtr);
|
|
PROCEDURE EmitAddress(d: HeadPtr);
|
|
|
-BEGIN HALT; END EmitAddress;
|
|
|
|
|
|
|
+VAR k: CARDINAL; (* local-2 *)
|
|
|
|
|
+BEGIN
|
|
|
|
|
+ IF d^.mode = 0 THEN
|
|
|
|
|
+ CodeGen.QueueConst(Scanner.StrLen(d^.value, 128) - 1);
|
|
|
|
|
+ ELSE
|
|
|
|
|
+ IF CARDINAL(d^.typ^.w2) = 0 THEN
|
|
|
|
|
+ k := d^.kind;
|
|
|
|
|
+ IF k = 5 THEN k := 0 END;
|
|
|
|
|
+ IF CARDINAL(d^.value) # 0 THEN k := 4 END;
|
|
|
|
|
+ CodeGen.SetPendingOp(1, k, CARDINAL(d^.value), d^.extra - 2);
|
|
|
|
|
+ ELSE
|
|
|
|
|
+ CodeGen.QueueConst(d^.typ^.w2^.high - d^.typ^.w2^.low);
|
|
|
|
|
+ END;
|
|
|
|
|
+ END;
|
|
|
|
|
+END EmitAddress;
|
|
|
(* proc22 stub — ~CheckAndStore (VALUE ADDRESS: proc20 passes ADR(sel),
|
|
(* proc22 stub — ~CheckAndStore (VALUE ADDRESS: proc20 passes ADR(sel),
|
|
|
proc15 passes curDesc pointer; TBD by MCD audit). *)
|
|
proc15 passes curDesc pointer; TBD by MCD audit). *)
|
|
|
PROCEDURE CheckAndStore(a: ADDRESS);
|
|
PROCEDURE CheckAndStore(a: ADDRESS);
|