Undecided overlay options

A project log for YGREC8

A byte-wide stripped-down version of the YGREC16 architecture

Yann Guidon / YGDESYann Guidon / YGDES 11/12/2021 at 01:550 Comments

Work is progressing nicely on the new assembler. This also allows me to find some corner cases that I didn't consider carefully yet. Let's look at the existing disassembler:

    if OPC=Op_CALL and SND=Reg_PC then
      if Imm9="111111111" then
        result(1 to 3):="HLT";
    result(1 to 7):="OVL " & SLV_to_Hex(Imm8) & "h";
-- /!\ bit 11 not used ?
      end if;
    end if;

The HLT (halt) opcode uses all the 9 bits but the OVL (overlay) only uses 8, since only a byte can be managed by the overly register.

The 11th bit is not handled so there are 3 ideas that come to mind :

  1. extend the immediate field to work with IMM9 like IN/OUT (simplest)
  2. consider the R/I bit so the OVL instruction can use a register argument as well (useful to deal with multiple or indirect overlay numbers)
  3. create a new instruction that provides another functionality (which ?)

 The jury is still out.