VR16 CPU Home Page

VR16-ISA v.0.1.1 🔗

THIS IS SUBJECT TO CHANGE, I’M EXPERIMENTING ENTIRELY.

Working for this 🔗

So instead of having a definite IS Format: 0000 00 00 00 00 0000, this would keep changing based on the opcode mentioned.

For this the entire ISA has to be designed.

  1. add:
    0000 | 00 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | operand_two | dont_care_values
    
  2. addi:
    0001 | 00 | 0000000000
    opcode | store_at | ten_bit_immediate_value
    
  3. sub:
    0010 | 00 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | operand_two | dont_care_values
    
  4. subi:
    0001 | 00 | 0000000000
    opcode | store_at | ten_bit_immediate_value
    
  5. mul:
    0010 | 00 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | operand_two | dont_care_values
    
  6. muli:
    0001 | 00 | 0000000000
    opcode | store_at | ten_bit_immediate_value
    
  7. div:
    0010 | 00 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | operand_two | dont_care_values
    
  8. divi:
    0001 | 00 | 0000000000
    opcode | store_at | ten_bit_immediate_value
    
  9. Extra opcode present, will implement a function soon.

  10. jump: Core functionality has to implemented in the code, so until then this won’t work when testing.
    1001 | 000000000000
    opcode | jump_to_twelve_bit_address
    
  11. delete:
    1010 | 00 | xxxxxxxxxx
    opcode | delete_at | dont_care_values
    
  12. and:
    0010 | 00 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | operand_two | dont_care_values
    
  13. or:
    0010 | 00 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | operand_two | dont_care_values
    
  14. not:
    0010 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | dont_care_values
    
  15. xor:
    0010 | 00 | 00 | 00 | 00 | xxxx
    opcode | store_at | operand_one | operand_two | dont_care_values
    
  16. halt:
    1111 | xxxxxxxxxxxx
    opcode | dont_care_values
    

Kept only basic logic operations as others can be done from these.

Dilemma 🔗

Since the immediate operations handle the function of storei it has been removed. To replace this opcode, I’m gonna need something useful!

“What will that be?” will remain a questions for now 🗿.