Join us on Discord!
You can help CodeWalrus stay online by donating here.

CBS6000 emulator

Started by Keoni29, November 19, 2015, 02:00:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Keoni29

CBS6000 Emulator
I always wanted to write an emulator, but pretty much every device has been emulated already.
Then I thought to myself: Why not emulate the computer that I designed and built myself.

About the CBS6000
The CBS6000 is an 8 bit microcomputer with a 1MHz 6502 cpu at its core. The user interacts with it using a terminal.

About the emulator
I did not feel like re-inventing the wheel with the CPU emulator, so I based my emulator on a 6502 emulator written by Gianluca Ghettini.
The emulator features a custom terminal emulator, modem emulation trough sockets,

Original post: https://hackaday.io/project/4406-cbs6000-8-bit-computer/log/28096-more-about-the-emulator
The 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!
If you like my work, why not give me an internet?

novenary

Cool to see an emulator for it, you really pushed that homebrew computer far into completion. :)

Dream of Omnimaga

It would definitively be interesting to be able to try stuff that you write for this computer. Also I'm glad to see you back in action, programming-wise :walrii:
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Keoni29

Most of the things I wrote for the computer have been integrated into the operating system. I have not written too many user programs for it yet. It can run most apple 1 software with a few modifications though. I want to get an assembler and a text editor to work on it, so that's what I'm gonna try tonight.
If you like my work, why not give me an internet?

Dream of Omnimaga

I see. Good luck. Will those also be integrated into the OS?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

alexgt

Cool, Keoni :) Good luck implementing further stuff ;)
  • Calculators owned: Ti-84+, Ti-Nspire, Hp Prime, Broken HP Prime, HP 48SX

Keoni29

Quote from: DJ Omnimaga on November 19, 2015, 07:33:59 PM
I see. Good luck. Will those also be integrated into the OS?
I am porting an assembler to the cbs6000 right now. It is not likely to be included into the OS, since the assembler is a separate program. That does not mean it won't be included in the rom of the device.
If you like my work, why not give me an internet?

Keoni29

#7
Done it. I have succesfully ported the KRUSADER assembler to the CBS6000. It was a lot of work, but I finally cracked the code!
I have added a lot of debug features to my CBS6000 emulator, so I could figure out why some things were not working.

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
If you like my work, why not give me an internet?

Dream of Omnimaga

Wow, you did that fast Keoni29 :D. That reminds me, would the TI-84+ be fast enough for such emulator?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Keoni29

I modified a stand-alone disassembler program and made it into a live assembler class. I can pass 3 bytes of code to it and it will return a string of the disassembled code. I want to have breakpoints and a full memory monitor as well.

The speed of the TI84+ would not be the issue: it's the screen real estate. On the pc you got all the debug info in front of you, so that's a more useful tool. I'd also have to write the cpu emulator and test suite from scratch. I'd rather keep adding features to the pc emulator.
If you like my work, why not give me an internet?

Powered by EzPortal