Instruction ClassesHeritage/1 instructions are divided into "classes". The instruction class is the 4-bits number given by the most significant nibble of the operational code.
Class numbers are not arbitrary but closely related to the way instructions are decoded by the CPU circuitry. So far classes 1 to 11 have been defined; classes 12 to 14 are reserved for future use and class 15 represents a "class extension".
Class 15 instructions utilizes the next nibble (D9-12) to hold the "subclass". Remaining bits are conveniently encoded for the best use of decoding circuitry.
Following is a list of Heritage/1 Instruction Classes.
============================================================================
HERITAGE/1 INSTRUCTION CLASSES AND SUBCLASSES
Note: Even classes and even subclasses require an Operand Fetch cycle
following the Operational Code Fetch Cycle.
============================================================================
CLASS EXT OPND INSTRUCTIONS ADDRESSING MODE
============================================================================
1 . mov r,s reg (ota=0 )
stox r,s indirect (ota<>0 )
jpx r jmp indirect unc. (ld=PC )
jprx r jmp relative indirect unc. (ld=1011)
----------------------------------------------------------------------------
2 x mvi r, value inmediate
sto r, addr direct
jp addr jmp direct unc.
jpr offset jmp relative direct unc.
----------------------------------------------------------------------------
3 . ldx r,s indirect
----------------------------------------------------------------------------
4 x ld r, addr direct
----------------------------------------------------------------------------
5 . add a, r ALU reg
----------------------------------------------------------------------------
6 x adi a, value ALU inmmediate
----------------------------------------------------------------------------
7 . addx a, r ALU indirect
----------------------------------------------------------------------------
8 x addd a, addr ALU direct
----------------------------------------------------------------------------
9 . inc r n/a
dec r
incm r,s
decm r,s
indec r,s
indec implicit
----------------------------------------------------------------------------
10 x jnz addr jmp direct cond.
jnzr offset jmp relative direct cond.
----------------------------------------------------------------------------
11 . jnzx r jmp indirect cond.
jnzrx r jmp relative indirect cond.
----------------------------------------------------------------------------
CLASS EXTENSIONS
----------------------------------------------------------------------------
15 1 . callx call indirect
callrx call relative indirect
----------------------------------------------------------------------------
15 2 x call addr call direct
callr offset call relative direct
----------------------------------------------------------------------------
15 3 . ret n/a
reti
----------------------------------------------------------------------------
15 5 . int vector n/a
----------------------------------------------------------------------------
15 7 . push r stack
pop r stack
----------------------------------------------------------------------------
15 9 . hlt n/a
clrf n/a
di n/a
ei n/a
dt n/a
et n/a
----------------------------------------------------------------------------
|