-
She's back!
10/20/2019 at 15:10 • 0 commentsToday I fixed the damaged I/O board and I am happy to announce the CBS6000 is alive and rEAdY!
First a bit of background. I built this computer back in 2014 while I was in college. Back then I took great interest in retro computing especially Commodore 64 computers. Some of these computers did not work, so they would be repaired or scrapped for parts. I had a spare 6510 CPU, two 6526 CIA's and assorted logic IC's. Combined with parts I could salvage from the dumpster at the college electronics lab I could make this microcomputer.
The computer consists of a CPU board and an I/O board. The CPU board is a self contained microcomputer and can work without the I/O board attached. At some point the I/O board stopped working, preventing the CPU board to work whenever it was attached. For a few years this computer has been sitting on a shelf collecting dust due to an unknown fault in the wiring somewhere. Today I finally managed to pinpoint the fault to a single ground wire that had melted and become open circuit. I replaced it along with some of the other ground wiring for good measure. This solved the issue!I intend to tidy up the backplane, revise the power routing and perhaps develop peripherals for this computer. It is a miracle this thing works in the first place with the ratsnest wiring. I am glad I was able to restore it!
-
Emulator debug features
11/20/2015 at 23:28 • 0 commentsThere's a ton of new debug features in the emulator! I was porting [Ken Wessen]'s Assembler to the CBS6000 and I added debug features to help me figure out why my modifications to the program kept crashing it. After a day of porting and debugging I finally managed to assemble programs on the emulator.
Here's a picture of the result of my hard work:
As you can see there's a zero page monitor, register monitor, live disassembler, debug console, speed control and single-stepping. This weekend I will probably be prettifying the interface. The modified source for the assembler can be found here: https://github.com/keoni29/cbs6000/blob/master/user/krusader1.3CBS.asm
-
More about the emulator
11/19/2015 at 13:51 • 2 commentsThe emulator is really starting to take shape. It has a terminal emulator, variable execution speed, single stepping (but no monitor yet), tcp socket for loading and saving files as well as connecting to the internet (soon.) The next items on the agenda are emulating the CIA , Bankswitching, Printer port, Seven segment display and Interrupts.
I open-sourced the project, so you can have a look at it on my github page: https://github.com/keoni29/mos6502
Here's a screenshot of the emulator in action!
-
Emulating the CBS6000
11/16/2015 at 23:40 • 0 commentsEmulators are great for automated testing and debugging. Therefore I decided to write a CBS6000 computer emulator. I based mine off the 6502 emulator written by [Gianluca Ghettini] https://github.com/gianlucag/mos6502. It is really quite simple to interface with the CPU emulator. It uses two callback functions for reading and writing in memory. In those functions I put my address decoder code.
My emulator is still in early stages of development, but I already managed to boot the operating system. It boots the same binary as the one found in the CBS6000's EEPROM. Right now I am working on the terminal emulator. Right after that I will add a debugger which allows me to step trough programs one instruction at a time.
-
Ram unlocked. Achievement get.
07/01/2015 at 14:56 • 0 commentsI finally got around to implement stable bankswitching routines. I have a routine on the ROM that copies data from one ram bank to the other, so there can be executable code there before a switch occurs. If this were not the case any bank switching action in a user program would cause the system to crash.
I also made new back-boards for the computer. These do the same, but instead of stacking the boards I layed them side by side for a flatter form-factor. This allows me to build these into a case with perhaps a keyboard on top. The biggest problem I faced with the old back-boards was the lack of space. The board on the left will have the (relatively) slow peripherals on it such as serial flash roms, realtime clocks, character display drivers and so on.