wsgac / go-cpu-simulator

An implementation of a simple CPU simulator taken from a programming contest at my workplace
BSD 3-Clause "New" or "Revised" License
0 stars 1 forks source link

Used your project as a start to learn Fyne GUI framework and Go #1

Open cjr29 opened 2 months ago

cjr29 commented 2 months ago

I've recently started to learn Go and a GUI framework from Fyne.io. Having an interest in microprocessors from my early career (Z80, 1802), I found your cpu-simulator project in Go a great starting point for me to learn Go and integrate a GUI framework. If you are interested, I created a fork of your repo and built a simple CPU monitor on top of it.

Located at git@github.com:cjr29/go-cpu-simulator.git

Fork my repo and cd to go-cpu-simulator and run simplesimulator.go

Requires version 2.4 of the Fyne.io library to be installed.

I plan to add file I/O and improve the GUI with dropdowns and data validation. For now, it is quite primitive. Your go tests all still run, but I had to make some changes to be able to integrate goroutines and channels. Hope you approve. I can submit a pull request if you want to add this to your project.

Regards, Chris Riddick

wsgac commented 2 months ago

Hi Chris,

I was pleasantly surprised to see someone take interest in my code. I've never used Fyne.io myself, nor do I have much experience with GUIs so this might be a learning opportunity for me as well. So far I managed to run your version successfully, but I need some some time (probably this week) to have a closer look at the code.

I'll gladly take a PR with your changes - either now or once you've put in those other changes you mentioned. I suggest adding a screenshot to the README file so that people know what to expect visually.

Your message comes as a funny coincidence to me, as I've just completed the first part of the Nand2Tetris course and it might just have rekindled my interest in low-level stuff.

Regards, Wojtek

cjr29 commented 2 months ago

Glad you were able to run it. Adding a screenshot of the dashboard is a good idea. I’ll do a little more cleanup and then post a PR to your repo. I was impressed with the simplicity of your CPU architecture and instruction set. Great starting point for someone who wants to learn this stuff.

Before I retired two years ago, I was doing mostly server-side Java and big-data processing with Hadoop and some other things. The thing I miss most about working is being able to share ideas with other developers.

Mid-career, I was caught up in project management. I finally got out of management and back to software engineering about five years ago. I started out my career writing assembly code for z80 processors for embedded data collection systems. We were doing digital signal processing on the z80 with a multiplier chip to speed up the FFTs. Also did a lot of coding built-in tests for navigation systems for ships. Hence my interest in the low-level programming.

I like forward to collaborating with you on this. I hope it can become something teachers can use with intro courses in computer science and architecture.

Chris On Apr 29, 2024 at 09:16 -0400, Wojciech S. Gac @.***>, wrote:

Hi Chris, I was pleasantly surprised to see someone take interest in my code. I've never used Fyne.io myself, nor do I have much experience with GUIs so this might be a learning opportunity for me as well. So far I managed to run your version successfully, but I need some some time (probably this week) to have a closer look at the code. I'll gladly take a PR with your changes - either now or once you've put in those other changes you mentioned. I suggest adding a screenshot to the README file so that people know what to expect visually. Your message comes as a funny coincidence to me, as I've just completed the first part of the Nand2Tetris course and it might just have rekindled my interest in low-level stuff. Regards, Wojtek — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>