You can help CodeWalrus stay online by donating here. | New CodeWalrus | Old (dark mode) | Old (light) | Discord server

CBS6000 - an 8-bit 6510 computer

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

0
b/Hardware publicado por u/Keoni29 December 20, 2014, 05:27:59 PM
What is the cbs6000?

The CBS6000 is an 6510-based system with lots of interface options including: ADC, UART, FSK modem, Line Printer, Seven segment display.
The system contains 128KB of ram as well as an 8kb eeprom which holds the firmware

The operating system is a customized version of the woz monitor. Added features are:
ACIA input/output, casette load/save, serial load and a seven segment display driver.

Project page:
http://8times8.eeems.me/project/computers/65xx/cbs/

Current state:
http://codewalr.us/index.php?topic=116.msg17284#msg17284

Old news:
Spoiler

CBS6000 stands for Cartridge Based System 6000 (KB)
The original idea was to make the computer run code from cartridges, but that changed. Now the computer has a built in rom with a bootloader on it.
Specs:

       
  • Cpu: MOS6510 @1MHz (base 2MHz divided /2)
  • Ram: 128KB (at the moment only 50k accessible)
  • Rom: 8KB
  • I/O: 6 pins built in cpu, 16 pins in CIA

Today I finished building and debugging the base-system on a piece of prototyping perfboard.

What's working?
The base-system consists of CPU, ROM, RAM and the bootloader software. Everything you need to make an LED blink! This was the first demo program I loaded on the computer.
What is not working yet?
I/O: I still have to wire up the CIA. After that I can make the I/O board with various devices such as a Digital-Analog converter and a Serial RS232 port.
Last Edit: July 01, 2015, 02:36:45 PM by Keoni29
Inicia sesión o crea una cuenta para dejar un comentario
u/Dream of Omnimaga December 20, 2014, 05:44:14 PM
I thought CBS meant Columbia Broadcasting System? :P

Kidding aside this is coming along pretty nicely. Is the 6510 close to Atari and SNES architecture, by the way, or is it vastly different? Also do you have plans for external storage?
u/Keoni29 December 20, 2014, 06:33:44 PM
It uses the exact same CPU core as the atari2600. The 6510 can address more memory because it has more address pins. The NES uses a custom 6502 with a soundchip, I/O port and timers built in.
u/Dream of Omnimaga December 20, 2014, 09:19:21 PM
Cool.I wonderif this could run ET if you hooked up a screen on this?
u/Keoni29 December 20, 2014, 11:10:18 PM
I'd have to wire up 2 additional IC's from an atari2600 as well as re-wire some of the address decoder for that. It could be done, but I don't intend to make this into a video game machine.
u/Dream of Omnimaga December 21, 2014, 12:20:52 AM
Aah ok. Having to hook up that Atari hardware would defeat the point of making 100% custom computer running Atari games anyway x.x

However, the world's laws require that every device that has a screen runs DOOM or a clone of it. :P
u/Keoni29 December 21, 2014, 09:35:40 AM
So therefore this device does not have a screen :P
u/Dream of Omnimaga December 21, 2014, 05:43:38 PM
Quote from: keoni29 on December 21, 2014, 09:35:40 AM
So therefore this device does not have a screen :P
You are scrapping the screen feature so you don't have to get DOOM to run on it? :trollface:
u/Keoni29 December 21, 2014, 10:50:45 PM
Exactly :)

I just installed the chip that handles all I/O operations. It has 16 programmable I/O pins as well as some handshaking lines and a serial port.
u/Dream of Omnimaga December 22, 2014, 12:34:09 AM
Cool to hear :D
u/Keoni29 December 22, 2014, 09:50:12 PM
I wired up the interrupt line from the CIA to the cpu. I have been experimenting with the CIA timers. You can make them trigger an interrupt. I made another blinky LED program that uses timers.

For those interested:
.const DISROM = 16
.const BANKSEL = 32
.const CIA = $D000
.const ledpin = 1
.const delay = 6553//5

.const TAL = CIA + $4
.const TAH = CIA + $5
.const ICR = CIA + $D
.const CRA = CIA + $E
.const CRB = CIA + $F

.pc = $0200

init: lda #$FF
sta CIA + 3 // Set port to all Outputs

lda #DISROM // Disable the ROM
sta $00
ora $01
sta $01

lda #<isr // Set interrupt vector
sta $FFFE
lda #>isr
sta $FFFF

lda #<delay // Set timer delay
sta TAL
lda #>delay
sta TAH
lda #%10000001 // Enable timer A underflow interrupts
sta ICR
lda #%00010001 // Start timer in continuous mode
sta CRA
ldy #0
cli // Enable interrupts
loop: jmp loop

isr: ldx ICR // Acknowledge interrupt
iny
sty CIA + 1 // Blink LED
rti
u/Dream of Omnimaga December 23, 2014, 11:20:52 AM
Darn this ASM looks different from Z80 ASM for sure. Again I don't really understand Z80 ASM but I recognizes certain instructions so it doesn't give me as much of a brain aneuvrism as other ASM forms. >.<

Good thing on those old CPUs you don't have to write your ASM using only binary. O.O
u/novenary December 23, 2014, 08:05:45 PM
Welp, this looks pretty cool, I like the board color. Can we see the backside tho ? :P
u/Keoni29 December 23, 2014, 08:18:13 PM
The address and data bus are tidy, but the control lines go all over the place because I built my own address decoder. I could have used programmable logic for the decoder, but I don't have those.
u/novenary December 23, 2014, 08:21:18 PM
Wow that's quite some wiring and solder routing work. O.O

At least it doesn't look like this :
Start a Discussion

b/Hardware

Building a robot, some old-school handheld or other piece of hardware? This is the section to showcase it.

56
Topics
Explore Board
Website statistics


MyCalcs | Ticalc.org | Cemetech | Omnimaga | TI-Basic Developer | MaxCoderz | TI-Story | Casiocalc.org | Casiopeia | The Museum of HP Calculators | HPCalc.org | CnCalc.org | Music 2000 Community | TI Education | Casio Education | HP Calcs | NumWorks | SwissMicros | Sharp Calculators
Powered by EzPortal