Ignore:
Timestamp:
Jul 6, 2022, 1:05:27 AM (23 months ago)
Author:
chronos
Message:
  • Modified: Code parsing and execution improvements.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UltimatOS/UCpu.pas

    r30 r31  
    99  TInstruction = (inNop, inHalt, inSet, inInput, inOutput, inInc, inDec, inJp,
    1010    inJpz, inJpnz, inAdd, inSub, inCall, inRet, inPush, inPop, inCopy,
    11     inShl, inShr, inLoad, inStore, inMul, inAnd, inOr, inXor);
     11    inShl, inShr, inLoad, inLoadi, inStore, inMul, inAnd, inAndi, inOr, inXor);
    1212  TAddress = Integer;
    1313  PAddress = ^TAddress;
     
    107107      R[RegIndex] := PData(@Memory.Data[R[RegIndex2]])^;
    108108    end;
     109    inLoadi: begin
     110      RegIndex := ReadByte;
     111      Address := ReadAddress;
     112      R[RegIndex] := PData(@Memory.Data[Address])^;
     113    end;
    109114    inStore: begin
    110115      RegIndex := ReadByte;
     
    194199      RegIndex2 := ReadByte;
    195200      R[RegIndex] := R[RegIndex] and R[RegIndex2];
     201    end;
     202    inAndi: begin
     203      RegIndex := ReadByte;
     204      R[RegIndex] := R[RegIndex] and ReadData;
    196205    end;
    197206    inOr: begin
Note: See TracChangeset for help on using the changeset viewer.