Menu

#885 R800 (Z80 variant) simulator

None
closed
None
5
2024-04-06
2023-07-28
No

To be able to add an r800 port to SDCC, we want uCsim to support the R800.
The R800

  • Supports the official Z80 instructions
  • Supports the iyl/iyh/ixl/ixh instructions (unofficial on Z80, official on eZ80 in Z80 mode)
  • Supports a few of the Z280 multiplication instructions (those at opcodes ed c3, ed f3, ed c1, ed c9, ed d1, ed d8).
  • Executes instruction in fewer cycles than Z80.

Instruction set documentation (in Japanese, but still useable without knowing Japanese) can be found at https://archive.org/details/MsxTurboR/page/n173/mode/2up
Personally, I think we should just use Z280 menmonics, instead of what that documentation uses, though. Also, Z280 documentation (see Z280 e.g. preliminary technical manual from https://oldcomputers.dyndns.org/public/pub/rechner/zilog/z280/manual/index.html) is more detailed wrt. flags on the multiplication instructions. So we could just use the Japanese docs for the R800 cycle counts, and Z280 documentation for everything else.

P.S.: I'm creating an r800 branch for this work now.

Related

Feature Requests: #882

Discussion

  • Philipp Klaus Krause

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -7,3 +7,5 @@
    
     Instruction set documentation (in Japanese, but still useable without knowing Japanese) can be found at https://archive.org/details/MsxTurboR/page/n173/mode/2up
     Personally, I think we should just use Z280 menmonics, instead of what that documentation uses, though. Also, Z280 documentation (see Z280 e.g. preliminary technical manual from https://oldcomputers.dyndns.org/public/pub/rechner/zilog/z280/manual/index.html) is more detailed wrt. flags on the multiplication instructions. So we could just use the Japanese docs for the R800 cycle counts, and Z280 documentation for everything else.
    +
    +P.S.: I'm creating an r800 branch for this work now.
    
    • Group: -->
     
  • Philipp Klaus Krause

    There are two more difference between the Z80 and the R800 (though these are unlikely to ever be used by SDCC):

    • The undocumented (for both Z80 and R800) sll instructions behave differently: On the R800, they behave just like the official sla instructions.
    • Undocumented (for both Z80 and R800) bits 3 and 5 in the flag register behave differently.
     
  • Philipp Klaus Krause

    In the r800 branch, today I implemented (very basic, but sufficient to pass our regression tests) support for multu and multuw.

     
    • Philipp Klaus Krause

      The r800 branch has been merged to trunk yesterday.

       
  • Daniel Drotos

    Daniel Drotos - 2024-02-02
    • assigned_to: Daniel Drotos
     
  • Daniel Drotos

    Daniel Drotos - 2024-04-06
    • status: open --> closed
     

Log in to post a comment.

MongoDB Logo MongoDB