Check:
PUBLIC
PROC ~ {
Description of the procedure.
prevPagePhiAd: CARD32 ← SoftcardBDVM.RealFromAddress[[commStart]];
IF prevFirstPhiAd=0 THEN prevFirstPhiAd ← prevPagePhiAd
ELSE IF prevFirstPhiAd#prevPagePhiAd THEN Mismatch;
FOR realAd:
CARD32 ← commStart+softcardWordPageSize, realAd+softcardWordPageSize
UNTIL realAd>=commStart+commLength
DO
thisPagePhiAd: CARD32 ← SoftcardBDVM.RealFromAddress[[realAd]];
IF thisPagePhiAd#prevPagePhiAd+2*softcardWordPageSize THEN Mismatch;
prevPagePhiAd ← thisPagePhiAd;
ENDLOOP;
};