libElysianVMU 1.6.0
Full-featured, accurate, cross-platform library emulating the Dreamcast's Visual Memory Unit
Loading...
Searching...
No Matches
Instruction Opcodes

Macros

#define EVMU_OPCODE_NOP   0x00
 
#define EVMU_OPCODE_BR   0x01
 
#define EVMU_OPCODE_LD   0x02
 
#define EVMU_OPCODE_LD_IND   0x04
 
#define EVMU_OPCODE_CALL   0x08
 
#define EVMU_OPCODE_CALLR   0x10
 
#define EVMU_OPCODE_BRF   0x11
 
#define EVMU_OPCODE_ST   0x12
 
#define EVMU_OPCODE_ST_IND   0x14
 
#define EVMU_OPCODE_CALLF   0x20
 
#define EVMU_OPCODE_JMPF   0x21
 
#define EVMU_OPCODE_MOV   0x22
 
#define EVMU_OPCODE_MOV_IND   0x24
 
#define EVMU_OPCODE_JMP   0x28
 
#define EVMU_OPCODE_MUL   0x30
 
#define EVMU_OPCODE_BEI   0x31
 
#define EVMU_OPCODE_BE   0x32
 
#define EVMU_OPCODE_BE_IND   0x34
 
#define EVMU_OPCODE_DIV   0x40
 
#define EVMU_OPCODE_BNEI   0x41
 
#define EVMU_OPCODE_BNE   0x42
 
#define EVMU_OPCODE_BNE_IND   0x44
 
#define EVMU_OPCODE_BPC   0x48
 
#define EVMU_OPCODE_LDF   0x50
 
#define EVMU_OPCODE_STF   0x51
 
#define EVMU_OPCODE_DBNZ   0x52
 
#define EVMU_OPCODE_DBNZ_IND   0x54
 
#define EVMU_OPCODE_PUSH   0x60
 
#define EVMU_OPCODE_INC   0x62
 
#define EVMU_OPCODE_INC_IND   0x64
 
#define EVMU_OPCODE_BP   0x68
 
#define EVMU_OPCODE_POP   0x70
 
#define EVMU_OPCODE_DEC   0x72
 
#define EVMU_OPCODE_DEC_IND   0x74
 
#define EVMU_OPCODE_BZ   0x80
 
#define EVMU_OPCODE_ADDI   0x81
 
#define EVMU_OPCODE_ADD   0x82
 
#define EVMU_OPCODE_ADD_IND   0x84
 
#define EVMU_OPCODE_BN   0x88
 
#define EVMU_OPCODE_BNZ   0x90
 
#define EVMU_OPCODE_ADDCI   0x91
 
#define EVMU_OPCODE_ADDC   0x92
 
#define EVMU_OPCODE_ADDC_IND   0x94
 
#define EVMU_OPCODE_RET   0xa0
 
#define EVMU_OPCODE_SUBI   0xa1
 
#define EVMU_OPCODE_SUB   0xa2
 
#define EVMU_OPCODE_SUB_IND   0xa4
 
#define EVMU_OPCODE_NOT1   0xa8
 
#define EVMU_OPCODE_RETI   0xb0
 
#define EVMU_OPCODE_SUBCI   0xb1
 
#define EVMU_OPCODE_SUBC   0xb2
 
#define EVMU_OPCODE_SUBC_IND   0xb4
 
#define EVMU_OPCODE_ROR   0xc0
 
#define EVMU_OPCODE_LDC   0xc1
 
#define EVMU_OPCODE_XCH   0xc2
 
#define EVMU_OPCODE_XCH_IND   0xc4
 
#define EVMU_OPCODE_CLR1   0xc8
 
#define EVMU_OPCODE_RORC   0xd0
 
#define EVMU_OPCODE_ORI   0xd1
 
#define EVMU_OPCODE_OR   0xd2
 
#define EVMU_OPCODE_OR_IND   0xd4
 
#define EVMU_OPCODE_ROL   0xe0
 
#define EVMU_OPCODE_ANDI   0xe1
 
#define EVMU_OPCODE_AND   0xe2
 
#define EVMU_OPCODE_AND_IND   0xe4
 
#define EVMU_OPCODE_SET1   0xe8
 
#define EVMU_OPCODE_ROLC   0xf0
 
#define EVMU_OPCODE_XORI   0xf1
 
#define EVMU_OPCODE_XOR   0xf2
 
#define EVMU_OPCODE_XOR_IND   0xf4
 

Detailed Description

First byte of all opcodes.

Collection of defines used to identify the opcode of a particular instruction by its first byte.

Warning
Some opcodes span a range of values and are not just a single byte value. Only use these values when encoding an instruction or when looking at a decoded instruction.

Instruction Set

Macro Definition Documentation

◆ EVMU_OPCODE_ADD

#define EVMU_OPCODE_ADD   0x82

#include <evmu_isa.h>

Add direct byte to accumulator.

Definition at line 76 of file evmu_isa.h.

◆ EVMU_OPCODE_ADD_IND

#define EVMU_OPCODE_ADD_IND   0x84

#include <evmu_isa.h>

Add indirect byte to accumulator.

Definition at line 77 of file evmu_isa.h.

◆ EVMU_OPCODE_ADDC

#define EVMU_OPCODE_ADDC   0x92

#include <evmu_isa.h>

Add direct byte and carry flag to accumulator.

Definition at line 81 of file evmu_isa.h.

◆ EVMU_OPCODE_ADDC_IND

#define EVMU_OPCODE_ADDC_IND   0x94

#include <evmu_isa.h>

Add indirect byte and carry flag to accumualtor.

Definition at line 82 of file evmu_isa.h.

◆ EVMU_OPCODE_ADDCI

#define EVMU_OPCODE_ADDCI   0x91

#include <evmu_isa.h>

Add imediate byte and carry flag to accumulator.

Definition at line 80 of file evmu_isa.h.

◆ EVMU_OPCODE_ADDI

#define EVMU_OPCODE_ADDI   0x81

#include <evmu_isa.h>

Add immediate byte to accumulator.

Definition at line 75 of file evmu_isa.h.

◆ EVMU_OPCODE_AND

#define EVMU_OPCODE_AND   0xe2

#include <evmu_isa.h>

AND direct byte to accumulator.

Definition at line 103 of file evmu_isa.h.

◆ EVMU_OPCODE_AND_IND

#define EVMU_OPCODE_AND_IND   0xe4

#include <evmu_isa.h>

AND indirect byte to accumulator.

Definition at line 104 of file evmu_isa.h.

◆ EVMU_OPCODE_ANDI

#define EVMU_OPCODE_ANDI   0xe1

#include <evmu_isa.h>

AND immediate byte to accumulator.

Definition at line 102 of file evmu_isa.h.

◆ EVMU_OPCODE_BE

#define EVMU_OPCODE_BE   0x32

#include <evmu_isa.h>

Compare direct byte to accumulator and branch near relativa address if equal.

Definition at line 56 of file evmu_isa.h.

◆ EVMU_OPCODE_BE_IND

#define EVMU_OPCODE_BE_IND   0x34

#include <evmu_isa.h>

Compare indirect byte to accumulator and branch near relative address if equal.

Definition at line 57 of file evmu_isa.h.

◆ EVMU_OPCODE_BEI

#define EVMU_OPCODE_BEI   0x31

#include <evmu_isa.h>

Compare immediate byte to accumulator and branch near relative address if equal.

Definition at line 55 of file evmu_isa.h.

◆ EVMU_OPCODE_BN

#define EVMU_OPCODE_BN   0x88

#include <evmu_isa.h>

Branch near relative address if direct bit is zero ("negative")

Definition at line 78 of file evmu_isa.h.

◆ EVMU_OPCODE_BNE

#define EVMU_OPCODE_BNE   0x42

#include <evmu_isa.h>

Compare direct byte to accumulator and branch near relative address if not zero.

Definition at line 60 of file evmu_isa.h.

◆ EVMU_OPCODE_BNE_IND

#define EVMU_OPCODE_BNE_IND   0x44

#include <evmu_isa.h>

Compare indirect byte to accumulator and branch near relative address if not zero.

Definition at line 61 of file evmu_isa.h.

◆ EVMU_OPCODE_BNEI

#define EVMU_OPCODE_BNEI   0x41

#include <evmu_isa.h>

Compare immediate byte to accumulator and branch near relative address if not zero.

Definition at line 59 of file evmu_isa.h.

◆ EVMU_OPCODE_BNZ

#define EVMU_OPCODE_BNZ   0x90

#include <evmu_isa.h>

Branch near relative address if accumulator is not zero.

Definition at line 79 of file evmu_isa.h.

◆ EVMU_OPCODE_BP

#define EVMU_OPCODE_BP   0x68

#include <evmu_isa.h>

Branch near relative address if direct bit is one ("positive")

Definition at line 70 of file evmu_isa.h.

◆ EVMU_OPCODE_BPC

#define EVMU_OPCODE_BPC   0x48

#include <evmu_isa.h>

Branch near relative address if direct bit is one ("positive") and clear.

Definition at line 62 of file evmu_isa.h.

◆ EVMU_OPCODE_BR

#define EVMU_OPCODE_BR   0x01

#include <evmu_isa.h>

Branch near relative address.

Definition at line 41 of file evmu_isa.h.

◆ EVMU_OPCODE_BRF

#define EVMU_OPCODE_BRF   0x11

#include <evmu_isa.h>

Branch far relative address.

Definition at line 46 of file evmu_isa.h.

◆ EVMU_OPCODE_BZ

#define EVMU_OPCODE_BZ   0x80

#include <evmu_isa.h>

Branch near relative address if accumulator is zero.

Definition at line 74 of file evmu_isa.h.

◆ EVMU_OPCODE_CALL

#define EVMU_OPCODE_CALL   0x08

#include <evmu_isa.h>

Near absolute subroutine call.

Definition at line 44 of file evmu_isa.h.

◆ EVMU_OPCODE_CALLF

#define EVMU_OPCODE_CALLF   0x20

#include <evmu_isa.h>

Far absolute subroutine call.

Definition at line 49 of file evmu_isa.h.

◆ EVMU_OPCODE_CALLR

#define EVMU_OPCODE_CALLR   0x10

#include <evmu_isa.h>

Far relative subroutine call.

Definition at line 45 of file evmu_isa.h.

◆ EVMU_OPCODE_CLR1

#define EVMU_OPCODE_CLR1   0xc8

#include <evmu_isa.h>

Clear direct bit.

Definition at line 96 of file evmu_isa.h.

◆ EVMU_OPCODE_DBNZ

#define EVMU_OPCODE_DBNZ   0x52

#include <evmu_isa.h>

Decrement direct byte and branch near relative address if indirect byte is not zero.

Definition at line 65 of file evmu_isa.h.

◆ EVMU_OPCODE_DBNZ_IND

#define EVMU_OPCODE_DBNZ_IND   0x54

#include <evmu_isa.h>

Decrement indirect byte and branch near relative address if indirect byte is not zero.

Definition at line 66 of file evmu_isa.h.

◆ EVMU_OPCODE_DEC

#define EVMU_OPCODE_DEC   0x72

#include <evmu_isa.h>

Decrement direct byte.

Definition at line 72 of file evmu_isa.h.

◆ EVMU_OPCODE_DEC_IND

#define EVMU_OPCODE_DEC_IND   0x74

#include <evmu_isa.h>

Decrement indirect byte.

Definition at line 73 of file evmu_isa.h.

◆ EVMU_OPCODE_DIV

#define EVMU_OPCODE_DIV   0x40

#include <evmu_isa.h>

Divide accumulator and C register by B register.

Definition at line 58 of file evmu_isa.h.

◆ EVMU_OPCODE_INC

#define EVMU_OPCODE_INC   0x62

#include <evmu_isa.h>

Increment direct byte.

Definition at line 68 of file evmu_isa.h.

◆ EVMU_OPCODE_INC_IND

#define EVMU_OPCODE_INC_IND   0x64

#include <evmu_isa.h>

Increment indirect byte.

Definition at line 69 of file evmu_isa.h.

◆ EVMU_OPCODE_JMP

#define EVMU_OPCODE_JMP   0x28

#include <evmu_isa.h>

Jump near absolute address.

Definition at line 53 of file evmu_isa.h.

◆ EVMU_OPCODE_JMPF

#define EVMU_OPCODE_JMPF   0x21

#include <evmu_isa.h>

Jump far absolute address.

Definition at line 50 of file evmu_isa.h.

◆ EVMU_OPCODE_LD

#define EVMU_OPCODE_LD   0x02

#include <evmu_isa.h>

Load direct byte to accumulator.

Definition at line 42 of file evmu_isa.h.

◆ EVMU_OPCODE_LD_IND

#define EVMU_OPCODE_LD_IND   0x04

#include <evmu_isa.h>

Load indirect byte to accumulator.

Definition at line 43 of file evmu_isa.h.

◆ EVMU_OPCODE_LDC

#define EVMU_OPCODE_LDC   0xc1

#include <evmu_isa.h>

Load code byte relative to TRR to accumulator.

Definition at line 93 of file evmu_isa.h.

◆ EVMU_OPCODE_LDF

#define EVMU_OPCODE_LDF   0x50

#include <evmu_isa.h>

Load from Flash.

Definition at line 63 of file evmu_isa.h.

◆ EVMU_OPCODE_MOV

#define EVMU_OPCODE_MOV   0x22

#include <evmu_isa.h>

Move direct data to indirect byte.

Definition at line 51 of file evmu_isa.h.

◆ EVMU_OPCODE_MOV_IND

#define EVMU_OPCODE_MOV_IND   0x24

#include <evmu_isa.h>

Move immediate data to indirect byte.

Definition at line 52 of file evmu_isa.h.

◆ EVMU_OPCODE_MUL

#define EVMU_OPCODE_MUL   0x30

#include <evmu_isa.h>

Multiply accumulator and C register by B register.

Definition at line 54 of file evmu_isa.h.

◆ EVMU_OPCODE_NOP

#define EVMU_OPCODE_NOP   0x00

#include <evmu_isa.h>

No operation.

Definition at line 40 of file evmu_isa.h.

◆ EVMU_OPCODE_NOT1

#define EVMU_OPCODE_NOT1   0xa8

#include <evmu_isa.h>

Not direct bit.

Definition at line 87 of file evmu_isa.h.

◆ EVMU_OPCODE_OR

#define EVMU_OPCODE_OR   0xd2

#include <evmu_isa.h>

OR direct byte to accumulator.

Definition at line 99 of file evmu_isa.h.

◆ EVMU_OPCODE_OR_IND

#define EVMU_OPCODE_OR_IND   0xd4

#include <evmu_isa.h>

OR indirect byte to accumulator.

Definition at line 100 of file evmu_isa.h.

◆ EVMU_OPCODE_ORI

#define EVMU_OPCODE_ORI   0xd1

#include <evmu_isa.h>

OR immediate byte to accumulator.

Definition at line 98 of file evmu_isa.h.

◆ EVMU_OPCODE_POP

#define EVMU_OPCODE_POP   0x70

#include <evmu_isa.h>

Pop direct byte from stack.

Definition at line 71 of file evmu_isa.h.

◆ EVMU_OPCODE_PUSH

#define EVMU_OPCODE_PUSH   0x60

#include <evmu_isa.h>

Push direct byte to stack.

Definition at line 67 of file evmu_isa.h.

◆ EVMU_OPCODE_RET

#define EVMU_OPCODE_RET   0xa0

#include <evmu_isa.h>

Return from subroutine.

Definition at line 83 of file evmu_isa.h.

◆ EVMU_OPCODE_RETI

#define EVMU_OPCODE_RETI   0xb0

#include <evmu_isa.h>

Return from interrupt.

Definition at line 88 of file evmu_isa.h.

◆ EVMU_OPCODE_ROL

#define EVMU_OPCODE_ROL   0xe0

#include <evmu_isa.h>

Rotate accumulator left.

Definition at line 101 of file evmu_isa.h.

◆ EVMU_OPCODE_ROLC

#define EVMU_OPCODE_ROLC   0xf0

#include <evmu_isa.h>

Rotate accumulator left through carry flag.

Definition at line 106 of file evmu_isa.h.

◆ EVMU_OPCODE_ROR

#define EVMU_OPCODE_ROR   0xc0

#include <evmu_isa.h>

Rotate accumulator right.

Definition at line 92 of file evmu_isa.h.

◆ EVMU_OPCODE_RORC

#define EVMU_OPCODE_RORC   0xd0

#include <evmu_isa.h>

Rotate accumulator right through the carry flag.

Definition at line 97 of file evmu_isa.h.

◆ EVMU_OPCODE_SET1

#define EVMU_OPCODE_SET1   0xe8

#include <evmu_isa.h>

Set direct bit.

Definition at line 105 of file evmu_isa.h.

◆ EVMU_OPCODE_ST

#define EVMU_OPCODE_ST   0x12

#include <evmu_isa.h>

Store direct byte from accumulator.

Definition at line 47 of file evmu_isa.h.

◆ EVMU_OPCODE_ST_IND

#define EVMU_OPCODE_ST_IND   0x14

#include <evmu_isa.h>

Store indirect byte from accumulator.

Definition at line 48 of file evmu_isa.h.

◆ EVMU_OPCODE_STF

#define EVMU_OPCODE_STF   0x51

#include <evmu_isa.h>

Store to Flash.

Definition at line 64 of file evmu_isa.h.

◆ EVMU_OPCODE_SUB

#define EVMU_OPCODE_SUB   0xa2

#include <evmu_isa.h>

Subtract direct byte from accumulator.

Definition at line 85 of file evmu_isa.h.

◆ EVMU_OPCODE_SUB_IND

#define EVMU_OPCODE_SUB_IND   0xa4

#include <evmu_isa.h>

Subtract indirect byte from accumulator.

Definition at line 86 of file evmu_isa.h.

◆ EVMU_OPCODE_SUBC

#define EVMU_OPCODE_SUBC   0xb2

#include <evmu_isa.h>

Subtract direct byte and carry flag from accumulator.

Definition at line 90 of file evmu_isa.h.

◆ EVMU_OPCODE_SUBC_IND

#define EVMU_OPCODE_SUBC_IND   0xb4

#include <evmu_isa.h>

Subtract indirect byte and carry flag from accumulator.

Definition at line 91 of file evmu_isa.h.

◆ EVMU_OPCODE_SUBCI

#define EVMU_OPCODE_SUBCI   0xb1

#include <evmu_isa.h>

Subtract immediate byte and carry flag from accumulator.

Definition at line 89 of file evmu_isa.h.

◆ EVMU_OPCODE_SUBI

#define EVMU_OPCODE_SUBI   0xa1

#include <evmu_isa.h>

Subtract immediate byte from accumulator.

Definition at line 84 of file evmu_isa.h.

◆ EVMU_OPCODE_XCH

#define EVMU_OPCODE_XCH   0xc2

#include <evmu_isa.h>

Exchange direct byte with accumulator.

Definition at line 94 of file evmu_isa.h.

◆ EVMU_OPCODE_XCH_IND

#define EVMU_OPCODE_XCH_IND   0xc4

#include <evmu_isa.h>

Exchange indirect byte with accumulator.

Definition at line 95 of file evmu_isa.h.

◆ EVMU_OPCODE_XOR

#define EVMU_OPCODE_XOR   0xf2

#include <evmu_isa.h>

XOR direct byte to accumulator.

Definition at line 108 of file evmu_isa.h.

◆ EVMU_OPCODE_XOR_IND

#define EVMU_OPCODE_XOR_IND   0xf4

#include <evmu_isa.h>

XOR indirect byte to accumulator

Definition at line 109 of file evmu_isa.h.

◆ EVMU_OPCODE_XORI

#define EVMU_OPCODE_XORI   0xf1

#include <evmu_isa.h>

XOR immediate byte to accumulator.

Definition at line 107 of file evmu_isa.h.