Skip to content

Latest commit

 

History

History
44 lines (44 loc) · 3.1 KB

Instructions.md

File metadata and controls

44 lines (44 loc) · 3.1 KB

Instructions:

Alias Opcode Description
NOP 0000 Does nothing and wastes a CLK cycle
LDX 0001 Loads a value from operand to Register X
XOUT 0010 Loads value from Register X to Out Register for display
LDY 0011 Loads a value from operand to Register Y
YOUT 0100 Loads value from Register Y to Out Register for display
LDR 0101 Loads a value from operand to Register R
ROUT 0110 Loads value from Register R to Out Register for display
SWP 0111 Swaps the values of Register X and Y

Warning: This will cause the value of R Register be deleted
AOUT 1000 Loads sum of Register X and Y to Out Register for display
SOUT 1001 Loads the difference of Register X and Y to Out Register for display
JMP 1010 Jumps to an address provided in the operand within the same CLK cycle for execution
ATX 1011 Add and store in X register

Warning: This will delete the value in R as R is used for copy
ATY 1100 Add and store in Y register

Warning: This will delete the value in R as R is used for copy
STX 1101 Substract and store in X register

Warning: This will delete the value in R as R is used for copy
STY 1110 Substract and store in Y register

Warning: This will delete the value in R as R is used for copy
XTR 1111 Copy from X to R register
YTR 10000 Copy from Y to R register
RTX 10001 Copy from R to X register
RTY 10010 Copy from R to Y register
ATR 10011 Add and store to R register
STR 10100 Subtract and store to R register
SAD 10101 Store address for a data to be fetched or stored for RAM
XLM 10110 Load a data from the specified address in Address Register to X Register
XTM 10111 Store a data to the specified address in Address Register from X Register
RLM 11000 Load a data from the specified address in Address Register to R Register
RTM 11001 Store a data to the specified address in Address Register from R Register
YLM 11010 Load a data from the specified address in Address Register to Y Register
YTM 11011 Store a data to the specified address in Address Register from Y Register
SADR 11100 Set the Address Register to the value in R Register
SADX 11101 Set the Address Register to the value in X Register
SADY 11110 Set the Address Register to the value in Y Register
CMP 11111 Compares the values in registers X and Y and updates CPU flags accordingly
JNE 100000 Jumps to the immediate address specified if the Negative(N) flag is 1
JZE 100001 Jumps to the immediate address specified if the Zero(Z) flag is 1
JOV 100010 Jumps to the immediate address specified if the Overflow(V) flag is 1
JPE 100011 Jumps to the immediate address specified if the Positive(P) flag is 1
GDRAW 100100 Draws a pixel with thr datas from the X Register(X coord) Y Register(Y coord) and R Resister(Pixel color XTERM-255)
GRESET 100101 Resets the display to all Black (0 in XTERM-255)
PCR 100110 Reads in the current program counter location to R register, to help in returning from functions
JTX 100111 Jumps to the location pointed to by the X register
HLT 10000000 Stops CPU execution