BB816 Computer YouTube Series
Re: 65C816 Computer YouTube Series
A0CBM wrote:
I am curious...
Re: 65C816 Computer YouTube Series
Will there be a tutorial on how to set up my Macbook Pro with Apple hardware. It looks like PALAsm is being used to program a number of devices. I'm new with my Macbook Pro and need help in this area.
...And thanks so much for putting out this Youtube series.
...And thanks so much for putting out this Youtube series.
Re: 65C816 Computer YouTube Series
will there be new updates to the series ?
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: 65C816 Computer YouTube Series
Hi everyone! I'm back after a few months of break.
I just published an update to the channel https://youtu.be/q37AN7B6SzQ.
The TL;DW is:
- I will resume work on this series with the aim of getting to a completed PCB.
- My short term goals are:
Glad to be back and eager to make progress on this
I just published an update to the channel https://youtu.be/q37AN7B6SzQ.
The TL;DW is:
- I will resume work on this series with the aim of getting to a completed PCB.
- My short term goals are:
- finish interrupt-based serial comms
- implement u/BigDumbDinosaur's Supermon816
- replace my Teensy in-circuit programmer by I2C-to-GPIO ICs, using the I2C interface in my USB IC
- design a proper expansion bus
Glad to be back and eager to make progress on this
Re: 65C816 Computer YouTube Series
Sounds great - welcome back!
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: BB816 Computer YouTube Series
Haven't had much energy for editing these days unfortunately, I still want to complete the current project, but I'm not so sure about keeping up with making videos. I have this self imposed requirement to not do anything with these breadboards unless it is on video, to prevent continuity problems, but it has been a bit frustrating.
So, at the moment, I'm having some fun working with CPLDs and building new ideas there. Naturally, I'm thinking about a new computer based on what I learned from the current project.
Here are the highlights of what I'm thinking about:
- 14MHz 65C816, PLCC or SMD ICs, only new and available parts
- Single cable operation from my computer (power supply, interacting through serial console, programming the CPLD, programming the EEPROM, accessing any device on the bus)
- 65C816 CPU
- 1M of RAM, 512k of ROM (copied to RAM at boot)
- FTDI FT4232H to provide 2 USB-to-UART interfaces, 1 USB-to-SPI interface and 1 USB-to-JTAG interface
- ATF1508 glue logic, programmed through FTDI chip (no external programmer needed)
- Dual-channel UART based on the 16C550C (eg 16C552). One channel for the main program, one channel for machine language monitor. Fast, FIFOs and Auto Hardware Flow Control
- MC23S17 SPI-to-GPIO to provide full control of the bus and control signals through USB, including single stepping the clock, breakpoints and tracing execution, programming the EEPROM and reading/writing I/O devices
- For I/O, a VIA and an RTC, keeping it simple
- And finally, an expansion bus based on PCIe x16 connectors, with 5V/3V3 selectable logic levels to be compatible with FPGAs (future video/sound project). All signals and busses exposed.
Here is a diagram
It's still quite a bit early in the design phase, but I've started on some of the building blocks of the hardware. My passion lies with building circuits so writing a complete OS for all of this might not happen. Still, I think it is a pretty neat design, especially the focus on single cable integration with the computer for iterating on code and logic.
Feedback welcome!
So, at the moment, I'm having some fun working with CPLDs and building new ideas there. Naturally, I'm thinking about a new computer based on what I learned from the current project.
Here are the highlights of what I'm thinking about:
- 14MHz 65C816, PLCC or SMD ICs, only new and available parts
- Single cable operation from my computer (power supply, interacting through serial console, programming the CPLD, programming the EEPROM, accessing any device on the bus)
- 65C816 CPU
- 1M of RAM, 512k of ROM (copied to RAM at boot)
- FTDI FT4232H to provide 2 USB-to-UART interfaces, 1 USB-to-SPI interface and 1 USB-to-JTAG interface
- ATF1508 glue logic, programmed through FTDI chip (no external programmer needed)
- Dual-channel UART based on the 16C550C (eg 16C552). One channel for the main program, one channel for machine language monitor. Fast, FIFOs and Auto Hardware Flow Control
- MC23S17 SPI-to-GPIO to provide full control of the bus and control signals through USB, including single stepping the clock, breakpoints and tracing execution, programming the EEPROM and reading/writing I/O devices
- For I/O, a VIA and an RTC, keeping it simple
- And finally, an expansion bus based on PCIe x16 connectors, with 5V/3V3 selectable logic levels to be compatible with FPGAs (future video/sound project). All signals and busses exposed.
Here is a diagram
Code: Select all
D0-7 A0-23 CTRL
┃ ┃ ┃
┌───────────────┐ ┃ ┃ ┃ ┌───────────────┐
│ MCP23S17 │◀─────▶┃ ┃ ┃ │ 512k ROM │
┌─────────────────▶│ │◀──────╋────▶┃ ┃ │ │
│ │ SPI-to-GPIO │◀──────╋─────╋────▶┃ │mirrored to RAM│
│ └───────────────┘ ┃ ┃ ┃ └───────────────┘
│ ┃ ┃ ┃
┌────SPI────────┘ ┃ ┃ ┃
│ ┌───────────────┐ ┃ ┃ ┃ ┌───────────────┐
│ │ │◀──────╋─────╋────▶┃ │ │
│ ┌───────────▶│ ATF1508 CPLD │ ┃ ┃ ┃ │ 1M SRAM │
│ │ │ │◀──────╋────▶┃ ┃ │ │
│ ┌──────JTAG──┘ └───────────────┘ ┃ ┃ ┃ └───────────────┘
│ │ ┃ ┃ ┃
│ │ ┃ ┃ ┃
┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┃ ┃ ┃ ┌───────────────┐
│ │ │ │◀─────UART Program───▶│ 2ch UARTT │ ┃ ┃ ┃◀─────▶│ │
│USB (Computer) │─────▶│ FT4232H 4ch │ │ │ ┃ ◀─────╋──────▶│ 65C816 CPU │
│ │ │ │◀─────UART Monitor───▶│ TL16C552 │ ┃◀────╋─────╋──────▶│ │
└───────────────┘ └───────────────┘ └───────────────┘ ┃ ┃ ┃ └───────────────┘
┃ ┃ ┃
┃ ┃ ┃
┌───────────────┐ ┃ ┃ ┃ ┌───────────────┐
│ │ ┃ ┃ ┃ │ │
│ 65C22 VIA │ ┃ ┃ ┃ │ RTC │
│ │ ┃ ┃ ┃ │ │
└───────────────┘ ┃ ┃ ┃ └───────────────┘
▼ ▼ ▼
┌────────────────────────────┐
│ To Expansion Bus... │
│ │
│ PCIe x16 Connector │
│ Selectable 5V/3V3 │
│ (74LVC16T245) │
└────────────────────────────┘ Feedback welcome!
Re: BB816 Computer YouTube Series
akohlbecker wrote:
It's still quite a bit early in the design phase, but I've started on some of the building blocks of the hardware. My passion lies with building circuits so writing a complete OS for all of this might not happen. Still, I think it is a pretty neat design, especially the focus on single cable integration with the computer for iterating on code and logic.
Feedback welcome!
Feedback welcome!
To make that work it would need an underlying OS which is vaguely Acorn compatible.
The crux is a filing system. Right now it's FAT32 running on the ATmega on my Ruby board (SPI SD card) - in your system? could be emulated via a serial line to the host PC...
Food for thought, anyway...
-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Re: BB816 Computer YouTube Series
Since W65C02 and W65C816 have very similar pinout and you are using CPLD, you can support both CPU with one board design.
You can put a small bootstrap ROM in CPLD to boot and load from serial port so you really don’t need ROM.
In fact with ATF1508 having internal serial port, I would argue VIA and 16C550 are not necessary so your design simplified to RAM, CPLD, and 6502/65816.
Assuming it is just RAM, CPLD, and 65xxx, it can be overclocked easily to 30Mhz.
I think a series of videos about that may be popular.
Bill
PS, add a dual port RAM, then you can have VGA and keyboard with just 4 chips.
You can put a small bootstrap ROM in CPLD to boot and load from serial port so you really don’t need ROM.
In fact with ATF1508 having internal serial port, I would argue VIA and 16C550 are not necessary so your design simplified to RAM, CPLD, and 6502/65816.
Assuming it is just RAM, CPLD, and 65xxx, it can be overclocked easily to 30Mhz.
I think a series of videos about that may be popular.
Bill
PS, add a dual port RAM, then you can have VGA and keyboard with just 4 chips.
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: BB816 Computer YouTube Series
drogon wrote:
akohlbecker wrote:
It's still quite a bit early in the design phase, but I've started on some of the building blocks of the hardware. My passion lies with building circuits so writing a complete OS for all of this might not happen. Still, I think it is a pretty neat design, especially the focus on single cable integration with the computer for iterating on code and logic.
Feedback welcome!
Feedback welcome!
To make that work it would need an underlying OS which is vaguely Acorn compatible.
The crux is a filing system. Right now it's FAT32 running on the ATmega on my Ruby board (SPI SD card) - in your system? could be emulated via a serial line to the host PC...
Food for thought, anyway...
-Gordon
plasmo wrote:
Since W65C02 and W65C816 have very similar pinout and you are using CPLD, you can support both CPU with one board design.
You can put a small bootstrap ROM in CPLD to boot and load from serial port so you really don’t need ROM.
In fact with ATF1508 having internal serial port, I would argue VIA and 16C550 are not necessary so your design simplified to RAM, CPLD, and 6502/65816.
Assuming it is just RAM, CPLD, and 65xxx, it can be overclocked easily to 30Mhz.
I think a series of videos about that may be popular.
Bill
PS, add a dual port RAM, then you can have VGA and keyboard with just 4 chips.
You can put a small bootstrap ROM in CPLD to boot and load from serial port so you really don’t need ROM.
In fact with ATF1508 having internal serial port, I would argue VIA and 16C550 are not necessary so your design simplified to RAM, CPLD, and 6502/65816.
Assuming it is just RAM, CPLD, and 65xxx, it can be overclocked easily to 30Mhz.
I think a series of videos about that may be popular.
Bill
PS, add a dual port RAM, then you can have VGA and keyboard with just 4 chips.
You know, I've been prototyping things in WinCUPL, and I think my 1508 is already strapped for pins. I've been considering replacing the MC23S17s with logic inside the 1508 and that gets me over the line at the moment - because it then needs to pull in all the status bits, plus data bus bits, etc. I also like that the 16C550 family ICs have FIFOs and auto hardware flow control, allowing me to slow down the CPU clock easily without loosing any serial data.
We'll see how it goes!
Re: BB816 Computer YouTube Series
akohlbecker wrote:
Interesting idea, of trying to make it compatible with an existing OS. I must admit I'm not familiar with BCPL, do you have a link I could look at?
Everything about it is here: https://www.cl.cam.ac.uk/~mr10/
The compiler outputs a bytecode (Called CINTCODE - Compact INTermediate CODE) and that's then interpreted on the target hardware. My cintcode vm is 16KB is size. The OS behind that is about 10KB of 6502 code. (Plus the ATmega side). I can run the compiler directly on my board which has 512KB of RAM.
-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
Re: BB816 Computer YouTube Series
akohlbecker wrote:
You know, I've been prototyping things in WinCUPL, and I think my 1508 is already strapped for pins. I've been considering replacing the MC23S17s with logic inside the 1508 and that gets me over the line at the moment - because it then needs to pull in all the status bits, plus data bus bits, etc. I also like that the 16C550 family ICs have FIFOs and auto hardware flow control, allowing me to slow down the CPU clock easily without loosing any serial data.
We'll see how it goes!
Welcome to the world of CPLD. I like your CPLD prototype boards for solderless breadboard, viewtopic.php?f=4&t=7631#p100968 I think it is a great start for the exploration of CPLD.
Bill
Edit, this is a particular mixture of functions and features possible with ATF1508-like CPLD: Z80all is a 4-chip + CF standalone Z80 SBC with text VGA and PS2 keyboard. https://www.retrobrewcomputers.org/doku ... 0allr1quad
Re: BB816 Computer YouTube Series
drogon wrote:
BCPL is the fore-runner to C.
Everything about it is here: https://www.cl.cam.ac.uk/~mr10/
[...]
I can run the compiler directly on my board which has 512KB of RAM.
Everything about it is here: https://www.cl.cam.ac.uk/~mr10/
[...]
I can run the compiler directly on my board which has 512KB of RAM.
It would be great to see BCPL featuring in some other '816 projects - like BB816 for example!
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: BB816 Computer YouTube Series
drogon wrote:
akohlbecker wrote:
Interesting idea, of trying to make it compatible with an existing OS. I must admit I'm not familiar with BCPL, do you have a link I could look at?
Everything about it is here: https://www.cl.cam.ac.uk/~mr10/
The compiler outputs a bytecode (Called CINTCODE - Compact INTermediate CODE) and that's then interpreted on the target hardware. My cintcode vm is 16KB is size. The OS behind that is about 10KB of 6502 code. (Plus the ATmega side). I can run the compiler directly on my board which has 512KB of RAM.
-Gordon
plasmo wrote:
Welcome to the world of CPLD. I like your CPLD prototype boards for solderless breadboard, viewtopic.php?f=4&t=7631#p100968 I think it is a great start for the exploration of CPLD.
plasmo wrote:
Edit, this is a particular mixture of functions and features possible with ATF1508-like CPLD: Z80all is a 4-chip + CF standalone Z80 SBC with text VGA and PS2 keyboard. https://www.retrobrewcomputers.org/doku ... 0allr1quad
- akohlbecker
- Posts: 282
- Joined: 24 Jul 2021
- Contact:
Re: BB816 Computer YouTube Series
Next episode in the series is up, talking about interrupts, a bit of theory overview, and implementing handlers and a jump table in my kernel https://youtu.be/jxoe_QPqOJc. It also showcases how I use my Teensy as a debugger with setting breakpoints and tracing execution, as I do some live coding and troubleshooting. Hopefully someone finds this interesting! 