DCJ11Hack+ – 基于DEC PDP/11的自制电脑
DCJ11Hack+ – DEC PDP/11 based homebrew computer

原始链接: https://codeberg.org/TechPaula/DCJ11HackPlus

Paula Maddox 发布了基于 DCJ11 的电脑板设计,灵感来自 Beent Hilpert 的 PDP11 Hack,但采用了模块化背板以实现扩展性。该项目包含 CPU、RAM/ROM 和文本显示板的原理图和 PCB 文件(使用 KiCAD 创建),以及必要的 PAL 文件。 该系统具有 16x16 点阵显示屏,具有两个亮度级别,利用 32K RAM、16K ROM 的内存映射,以及为显示屏和未来扩展保留的空间。它目前启动到“ODT”模式进行实验,通过 115200 波特率的串口进行通信。 提供了示例代码,包括“Hello World!”、“霹雳游侠”动画和终端测试。作者使用 PDP11 模拟器([https://programmer209.wordpress.com/2011/08/14/pdp-11-assembly-language-simulator/](https://programmer209.wordpress.com/2011/08/14/pdp-11-assembly-language-simulator/)) 进行代码开发和测试。 重要提示:该板仅支持 16 位字宽的读/写。该项目是一个业余爱好项目,未来开发不确定,并已从 GitHub 迁移到 Codeberg。

黑客新闻 新的 | 过去的 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 DCJ11Hack – 基于DEC PDP/11的自制电脑 (codeberg.org/techpaula) 5 分,来自 zdw 1小时前 | 隐藏 | 过去的 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:
相关文章

原文

DCJ11 Hack+ related boards, PAL code and example code by Paula Maddox http://maddoxp.pro

I've decided to share my DCJ11 based board. It's based heavily on the word done by Beent Hilpert http://madrona.ca/e/pdp11hack/ but I wanted to able to add and remove functionality via a back plane.

I've long admired this chip for no other reason than it looks so freekin' cool, I mean just look at it, it's gorgeous. Picture of DCJ11 PCB

The Boards

So far There is the main CPU board and also the RAM, ROM and text display board. You'll find the schematics and PCB files here and they were made in KiCAD. I've also included the PAL files for each of the PALs on the board (one on each board). Hopefully this will give you enough to get going. The text displays are mounted on the opposite side to the RAM/ROM chips as I wanted to be able to see the text and also be able to turn it to see the DCJ11 chip (did I say how gorgeous this chip is?).

Picture of Displays PCB

Now there's a 16x16 Dot Matrix display, it does have two levels of brightness (just two overlapping portions of 32 bytes of RAM), but the difference between dim and bright isn't very much.

Picture of Displays PCB

I got my backplane from eBay here - https://www.ebay.co.uk/itm/284367015211 and the same seller also does backplanes with more slots.

When it powers up the chip jumps to it's "ODT" mode rather than running code, this was done to allow me to play around with thinngs and get an understanding of the chip. The default baud rate is 115200 and uses 8bits, 1 stop and no parity.

Memory Map

My memory map is as follows and was updated on 07/04/2024;

HEX

  • 0x0000 - 0x7FFE = RAM (32K)
  • 0x6000 - 0x7FFE = Text Display (shadowed in RAM as it's WRITE only)
  • 0x8000 - 0xBFFE = ROM (16K)
  • 0xC000 - 0xDFFE = Matrix display
  • 0xE000 - 0xFFFE = Future

OCTAL (has to end on a multiple of 2)

  • 000 000 - 077 776 - RAM
  • 060 000 - 060 020 - Text Display (repeated multiple times)
  • 100 000 - 137 776 - ROM
  • 140 000 - 157 776 - Matrix Display
  • 160 000 - 177 776 - Future

Code examples

The code examples are for a basic "Hello World!" which just writes characters to the display memory, there's also a more intelligent one. I've also included a "Knight Rider" (or Cylon if you prefer) bit of code and finally a terminal test code which spits "B" to the console (hit the halt switch to stop it).

You'll find the .asm files and the .oct files.

I use the pdp11 simulator found here https://programmer209.wordpress.com/2011/08/14/pdp-11-assembly-language-simulator/ to compile and test my code, there are others but this is a lot easier to copy and paste code into :)

There is also a pretty good guide to the PDP11 instruction set here - https://programmer209.wordpress.com/2011/08/03/the-pdp-11-assembly-language/

of note, this board ONLY supports 16bit wide read/writes, i.e. "word" only, if you use byte commands it will destroy one half of the memory, in the same way as the PDP11 Hack board does, this is less than ideal but it simplifies the circuitry needed a lot.

I user TeraTerm to upload the code, I use a 10mS character and line feed delay, just to give the CPU a chance to respond when it sees the "/".

The future

Finally, I do this for a hobby and for fun, so I don't know when I will add more code or do the third board.

Status

  • 2026-03-26 - Moved away from github to Codeberg
联系我们 contact @ memedata.com