Search   
Home  Print View  

 

Programmer's Manual

Branch Content

Instruction Classes

Heritage/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
----------------------------------------------------------------------------

Homebuilt CPUs WebRing

JavaScript by Qirien Dhaela

Join the ring?

David Brooks, the designer of the Simplex-III homebrew computer, has founded the Homebuilt CPUs Web Ring. To join, drop David a line, mentioning your page's URL. He will then add it to the list.
You will need to copy this code fragment into your page.

Project start date: May 13 of 2009