• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

visrealm/hbc-56: Homebrew 6502 on a backplane computer

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

visrealm/hbc-56

开源软件地址:

https://github.com/visrealm/hbc-56

开源编程语言:

Assembly 49.1%

开源软件介绍:

HBC-56

A homebrew 8-bit computer on a (56 pin) backplane.

Initially supporting the 6502 CPU, TMS9918A VDP and Dual AY-3-8910 PSG's. With plans to add support for Z80 and perhaps other CPUs in the future.

Current cards:

  • 6502 CPU card
  • Triple-mode clock card (based on James Sharman's design)
  • RAM/ROM card (32KB of each)
  • LCD display card (supports regular character LCD and 12864B graphics LCD)
  • TMS9918A display card (composite output)
  • Dual AY-3-8910 sound card
  • PS/2 keyboard and dual NES controller card

All source code and schematics are available in this repository.

HBC-56

The hand-wired cards are currently being replaced by custom PCB's thanks to the support of PCBWay.

See schematics/6502 for the first example.

New 65C02 CPU card

Emulator

I have also included an emulator for this system. The emulator supports:

  • Realtime execution of code (at 4MHz).
  • Step through disassembled code with labels.
  • Examine CPU and VDP registers, RAM and VRAM.
  • Full support for all TMS9918A display modes. See my TMS9918 emulator here: github.com/visrealm/vrEmuTms9918
  • Support for the dual AY-3-8910 audio, keyboard and NES controller.

The emulator is also available for Web (Beta). HBC-56 Emulator Online

Full details on the Emulator and source code here: emulator

Running the demos

There are several ways to build ad run the demos. They are set up with makefiles, so it is preferred to have MAKE installed and in your PATH environment variable.

VSCode

  1. Open the code/6502 directory in VSCode
  2. For each test/demo program (eg. basic, invaders, tests\tms, tests\sfx, etc.) navigate to the .asm file and hit <Ctrl>+<F5>. This will build and run the program in the emulator. <Ctrl>+<Shift>+<B> to just build the ROM image without running.

Command-line (MAKE)

For each path (basic, invaders, tests/tms,tests/sfx):

  1. Open a console to the path
  2. Type make (this will build the default program and run it in the emulator:

Make the demos

  • Type make all to build and run all demos in the directory
  • Type make <basefile> (filename without extension) to build and run a specific demo eg:
cd code/6502/tests/inp
make kbtest

HBC-56 Emulator

Manually building a demo (without MAKE)

Example: invaders

cd code\6502\invaders
..\..\..\tools\acme\acme -I ..\lib -I ..\kernel -o invaders.o -l invaders.o.lmap invaders.asm

Manually running a demo (without MAKE)

Example: invaders

cd code\6502\invaders
..\..\..\emulator\bin\Hbc56Emu.exe --rom invaders.o

HBC-56 Emulator

Example: basic

cd code\6502\basic
..\..\..\emulator\bin\Hbc56Emu.exe --rom basic_tms.o

HBC-56 Emulator

Memory map

THe HBC-56 has 64KB addressable memory divided into RAM, ROM and IO as follows:

From To Purpose
$0000 $7eff RAM
$7f00 $7fff I/O
$8000 $ffff ROM

The RAM and ROM is further divided by the HBC-56 Kernel:

From To Size Purpose
$0000 $00ff 256 bytes Zero page
$0100 $01ff 256 bytes Stack
$0200 $79ff 30 kilobytes User RAM
$7a00 $7eff 1280 bytes Kernel RAM
$7f00 $7fff 256 bytes I/O
$8000 $dfff 24 kilobytes User ROM
$e000 $ffff 8 kilobytes Kernel ROM

Thanks

Thanks to PCBWay for supporting this project.

PCBWay

Videos

Backplane 6502 + TMS9918: Breakout

Backplane 6502 + TMS9918: Invaders

6502 8-bit homebrew with backplane. Troy's HBC-56 project preview.

License

This code is licensed under the MIT license




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap