Menu

How add new cpu opcodes at source code level

To add new cpu opcodes we need only to change two files: simulate.h and simulate.c
So we have to proceed with these steps:

(1) modify the file simulate.h

Go to the bottom of this file under the comment //New Opcodes and add your new opcode ABC as last and before the end_ops constant.
For example:
//New Opcodes
MDIV , // MDIV R, 10, M : (S>D) -- Calc Modulus and Division putting them into destination Registers
STX , // STX 0xFF , M : (S>D) -- Store immed. value into contents of [MemoryAddress] pointed by Register
+ ABC , // short description

(2) modify the file simulate.c

Go at line 325 of this file under the comment //New Opcodes and add your macro that represent the opcode ABC
For example:
#define ABC_opcode _cpuREG( cpuIMM_ARG(1) ) = cpuIMM_ARG(2); \
currPC_add( x )

For example:
Go at line 482 of this file under the comment //New Opcodes and add your macro that represent the opcode ABC
__def_opcall( ABC );

For example:
Go at line 569 of this file under the comment //New Opcodes and add your initialisation group that represent the opcode ABC
+ { __Opcode_Struct( ABC , 3 , "#RR" ) },

Go at line 730 inside the simugoto() routine and add your address constant:
For example:
&&do_MDIV, &&do_STX, &&do_ABC, // new opcodes

Go at line 858 inside the simugoto() routine and add your address constant:
For example:
__def_goto_Label( ABC );

Posted by Davide Ug. Lini 2018-05-20

Anonymous
Anonymous

Add attachments
Cancel