I think I'll stick to a yearly cadence for calculator projects. This project started out on several Amtrak trips with inconsistent wifi, and I've gotten it up to a more functional state over the last few weeks. I waited until now to make this post out of a desire to avoid the "I made a post about this project that I will abandon in a few weeks" trap that I've fallen into before. At this point, I think I'll stick with the project until I hit a performance wall that halts my progress.

Currently, it finishes the startup sequence before infinite looping at the BASIC interpreter while it waits for a keyboard input that has not yet been coded. I recommend building with debug enabled so you can see the traces print out on CEmu because that is the most enjoyment you will get from the code right now. Did I mention that graphics are not included, either? If you enable tracing from the beginning of execution, make sure to unlock CEmu's emulation speed because I removed the opcode optimization to help aid with debugging.

Obligatory "I have not tested this on real hardware yet so test on real calculators at your own risk"

Link to GitHub repo
This sounds like a really cool project! I can't wait to see how it further develops and I'll certainly be following the project as it gets updated in the future! Good luck Smile
This is really cool I suggested something like this in the past and I wanted to do it but my coding knowledge is VERY limited. Now I can finally play a proper version of PETSCII Robots.
I had meant to get more progress on this done to celebrate 10 years of programming calculators, but that deadline has come and gone. Instead, I spent my snowy Saturday throwing out lots of premature optimization to get to a point where it can print text to the screen and take in user input. Screenie is below, showing a Hello World program running in realtime. I'm pleasantly surprised with the speed of the program, especially since all of the CPU instructions are part of a large switch statement for readability purposes. My current preferred cheat for performance does not use the actual C64 font capabilities (as seen by the incorrect color palette) and instead takes the desired character and draws it using the toolchain's font library.
How have I not seen this yet?!

When it boots to the C64 prompt, amazing.

Great job!
I have implemented reading from the C64's character ROM and making the cursor blink, so each character is now authentic and not reliant on the font library while also implementing the blinking cursor so you can see where your typing will go.
This project has come so far this is amazing I cant wait to try it out. Very Happy
This is simply amazing! I was wondering about Apple II emulators on a graphing calculator, considering it is very possible, and you port C64 to the TI-84+CE! I can't wait to test this out. Amazing work! Very Happy
This is a great emulator! Unfortunately, there's no way to type "$", which is very important in c64 BASIC. I'm kind of a noob; is there a way to add this in?
I'm not familiar enough with C64 software to know if it's used elsewhere, but from looking at the source and reading some reference material I can see that this emulator generates input by pushing bytes into the keyboard buffer on each interrupt (via the scankey function). Oddly, that function looks at whether the 2nd key on the calculator is pressed but doesn't do anything with it- possibly that was intended to be used as the shift key (so you might be able to press 2nd+Alpha+4 to type $) but it didn't get implemented.
Whoops, my bad! I'll raise a Github issue and try to get to it. You can tell I haven't done anything too involved in BASIC, hence the existence of the 2nd key check but the lack of its use anywhere.
Just to prove to myself that it was possible to do that way, I've written a patch that allows you to type $ with 2nd+Alpha+4, combining how Alpha is used to type numbers with 2nd as a shift key.
This project is genuinely outstanding! Smile By the way, does C648x support non-BASIC programs? If it doesn't, do you ever plan on supporting them in the future?
Thanks! In theory, it should support them, although I have not emulated a disk drive feature. I have it on the backburner to write a UI to manage ROMs and appvars into the disk drive.
Longer term, I'm not sure how much more speed I can eke out of the C code, but we'll see how it goes.
Thanks for the fix! Great emu Good Idea
I learned enough c to understand the code now, found out you can just change a symbol with 2 keys assigned to it to a different one and it's super easy lol
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement