|
|
|
@ -374,13 +374,25 @@ begin
|
|
|
|
|
RP := RP + 1; |
|
|
|
|
end |
|
|
|
|
//Shl |
|
|
|
|
else if Op = 2 then R [X] := R [X] shl 1 |
|
|
|
|
else if Op = 2 then begin |
|
|
|
|
if Y = 0 then R [X] := R [X] shl 4 |
|
|
|
|
else R [X] := R [X] shl Y; |
|
|
|
|
end |
|
|
|
|
//Shr |
|
|
|
|
else if Op = 3 then R [X] := R [X] shr 1 |
|
|
|
|
else if Op = 3 then begin |
|
|
|
|
if Y = 0 then R [X] := R [X] shr 4 |
|
|
|
|
else R [X] := R [X] shr Y; |
|
|
|
|
end |
|
|
|
|
//Rol |
|
|
|
|
else if Op = 4 then R [X] := RolByte (R [X]) |
|
|
|
|
else if Op = 4 then begin |
|
|
|
|
if Y = 0 then R [X] := RolByte (R [X], 4) |
|
|
|
|
else R [X] := RolByte (R [X], Y); |
|
|
|
|
end |
|
|
|
|
//Ror |
|
|
|
|
else if Op = 5 then R [X] := RorByte (R [X]) |
|
|
|
|
else if Op = 5 then begin |
|
|
|
|
if Y = 0 then R [X] := RorByte (R [X], 4) |
|
|
|
|
else R [X] := RorByte (R [X], Y); |
|
|
|
|
end |
|
|
|
|
//Nand |
|
|
|
|
else if Op = 6 then R [X] := not (R [X] and R [Y]) |
|
|
|
|
//And |
|
|
|
|