Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for 8080, make "common 8080" and "8080 with bit extensions" common targets #118

Open
Bananattack opened this issue Feb 18, 2021 · 0 comments

Comments

@Bananattack
Copy link
Collaborator

Bananattack commented Feb 18, 2021

There is support for the Z80 and the Game Boy. It would be nice to round that off by supporting their common predecessor, the Intel 8080 CPU.

Used by:

  • Altair 8800 and other 70s microcomputers.
  • Space Invaders arcade game
  • ???

Potentially, this could also support a "binary-compatible" subset of 8080 that compiles on Intel 8080, Z80, and GB. In this mode, it would possible to write code that uses only registers and instructions that are available to all 3 platforms. This would make it possible to write certain libraries such as memory utilities, math, etc that work on all systems without changes. There would only a small performance penalty sacrificed by not using more capable instructions. This could make some common code that reaps the speed benefits of assembly but doesn't need maximum performance by using enhanced instructions and addressing modes.

Something else that could be useful is a "8080 with bitwise extensions" intersection of Z80 + GB. This would allow sharing of code between Z80 and Game Boy projects so long as they speak in terms of common operations and registers.

This is low priority, especially as not many game systems used the 6800, but would be nice to have it for the shared platform subset. This would allow the same kind of cross-compatibility currently possible between different CPUs within the 6502 family.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant