Ignore:
Timestamp:
Apr 24, 2025, 10:12:32 PM (2 weeks ago)
Author:
chronos
Message:
  • Added: More CPU instructions.
  • Added: Mouse device.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/bigint/Instructions.pas

    r7 r12  
    7878  AddNew(inLoadMem, 'LDM', [ptIndirect, ptIndirect2], 'Loads value from one indirect memory location to another.');
    7979  AddNew(inStoreMem, 'STM', [ptIndirect2, ptIndirect], 'Stotes value to indirect memory location from source location.');
    80   AddNew(inInc, 'INC', [ptIndirect], 'Increments value in specified register.');
    81   AddNew(inDec, 'DEC', [ptIndirect], 'Decrements value in specified register.');
     80  AddNew(inIncrement, 'INC', [ptIndirect], 'Increments value in specified register.');
     81  AddNew(inDecrement, 'DEC', [ptIndirect], 'Decrements value in specified register.');
    8282  AddNew(inInput, 'IN', [ptIndirect, ptIndirect], 'Reads value from input port to register.');
    8383  AddNew(inOutput, 'OUT', [ptIndirect, ptIndirect], 'Writes value from register to output port.');
    8484  AddNew(inJump, 'JP', [ptNumber], 'Unconditional absolute jump to defined address.');
    85   AddNew(inJumpZero, 'JPZ', [ptIndirect, ptNumber], 'Jumps to given address if value of register is zero');
    86   AddNew(inJumpNotZero, 'JPNZ', [ptIndirect, ptNumber], 'Jumps to given address if value of register is not zero');
     85  AddNew(inJumpZero, 'JPZ', [ptIndirect, ptNumber], 'Jumps to absolute address if value of register is zero');
     86  AddNew(inJumpNotZero, 'JPNZ', [ptIndirect, ptNumber], 'Jumps to absolute address if value of register is not zero');
     87  AddNew(inJumpRel, 'JR', [ptNumber], 'Unconditional relative jump to defined address.');
     88  AddNew(inJumpRelZero, 'JRZ', [ptIndirect, ptNumber], 'Jumps to relative address if value of register is zero');
     89  AddNew(inJumpRelNotZero, 'JRNZ', [ptIndirect, ptNumber], 'Jumps to relative address if value of register is not zero');
    8790  AddNew(inPush, 'PUSH', [ptIndirect], 'Push memory location onto stack.');
    8891  AddNew(inPop, 'POP', [ptIndirect], 'Pop item from stack and store it into memory location.');
    8992  AddNew(inCall, 'CALL', [ptNumber], 'Call subroutine.');
    90   AddNew(inRet, 'RET', [], 'Return from subrotine.');
     93  AddNew(inReturn, 'RET', [], 'Return from subrotine.');
     94  AddNew(inAdd, 'ADD', [ptIndirect, ptIndirect, ptIndirect], 'Addition of two numbers.');
     95  AddNew(inSubtract, 'Sub', [ptIndirect, ptIndirect, ptIndirect], 'Subtraction of two numbers.');
     96  AddNew(inAnd, 'AND', [ptIndirect, ptIndirect, ptIndirect], 'Logical AND operation.');
     97  AddNew(inOr, 'OR', [ptIndirect, ptIndirect, ptIndirect], 'Logical OR operation.');
     98  AddNew(inXor, 'XOR', [ptIndirect, ptIndirect, ptIndirect], 'Logical XOR operation.');
     99  AddNew(inShiftLeft, 'SHL', [ptIndirect, ptIndirect, ptIndirect], 'Bitwise shift to the left.');
     100  AddNew(inShiftRight, 'SHR', [ptIndirect, ptIndirect, ptIndirect], 'Bitwise shift to the right.');
     101  AddNew(inBitSet, 'SET', [ptIndirect, ptIndirect, ptIndirect], 'Set specific bit.');
     102  AddNew(inBitReset, 'RES', [ptIndirect, ptIndirect, ptIndirect], 'Reset specific bit.');
     103  AddNew(inBitTest, 'BIT', [ptIndirect, ptIndirect, ptIndirect], 'Test of specific bit.');
    91104end;
    92105
Note: See TracChangeset for help on using the changeset viewer.