Yup! It's here! Windows 10 update for the TI-84 Plus CE!



The program is set to not respond to any keys for about twenty seconds. Then you can press a key to exit.

I still have to work on the rolling circles animation.

I'm not affiliated with or sponsered by or associated with Microsoft. Please behave yourselves.

Download (as I'm writing this, pending approval): https://www.cemetech.net/downloads/files/2097/x2234
Make the shell already. Laughing
In C or ASM, is it not possible to change the font? But that update screen gives me flashbacks to the annoyances when Windows updates.
Actually, that'd be a good idea: to use Microsoft's Segoe UI font for the update screen.

I have to keep learning how to use the toolchain's C libraries, though. There's still a lot I want to learn: text boxes, custom fonts, storing stuff as AppVars, communicating between calculators...
I see quite a few topics asking for help with the C library. I'm wondering, if I have the time, should I write some tutorials about the parts of the C library that I'm comfortable with?

Haha when (if?) in-person classes resume at my school, I going to go to our math department with my calc stuck on this screen...



Removed the timer, instead made the update continue until a certain key combination is pressed.
Sorry about the stuttering, my laptop is really starting to show its age...
Also, I notice that apps run much faster on my calculator than in CEmu. My calc is hardware revision O, so is the speed difference because CEmu is emulating a pre-M calc?
More tutorials are always welcome, especially if it's to help out people just getting into calc programming!

The TI-84 Plus CE hardware revision doesn't make any speed difference in ASM programs. Although your screenshot doesn't show the CEmu emulation speed, my guess is that it's less than 100%. Go to 'Docks', select 'Settings', then select 'Emulation' in the settings dock. Be sure the Throttle is set to 100%, frame skip is at 0, and 'Emulate physical LCD SPI drawing' is not selected. This is what it should look like:


If the settings are already set this way, then your computer must be too slow to run CEmu (how old is that thing?!). One way to improve performance is increase the frame skip. This will make motion on the screen more choppy but it should keep the program emulated at higher speeds.
You can see how fast the emulation is running in the bottom left corner. If it says "Emulated Speed: 50%", that means it's running at half the speed it would on a physical calculator.

I'd also recommend using CEmu's built-in screen recording (Capture > Record Animated PNG), rather than an external one. That should make the recording run at the correct speed, regardless of how slowly CEmu is running.

It's possible to change the font in graphx, but it's better to use fontlibc instead.
Thanks for the tips!
Yeah, I noticed those settings.
I've found that slowing down the emulation is quite useful for debugging games, especially when it's combined with print debugging.
Though sometimes my laptop does struggle with recording the screen and running CEmu at the same time. If you're curious, it's a budget HP Pavilion g6 from mid-2013, with an AMD A6. The fans are never quiet and the keyboard gets unusually hot while compiling (XSensors tells me that CPU exceeds sixty degrees Celcius).
Anyway... with that rant aside...
Is there a built-in way to record the keypad as well as the screen? I want to be able to show people how to interact with my calculator programs. (in this case, pressing the key combination to exit from Windows Update)
As slow and stuttery as it can be on my computer, I'm glad that CEmu exists! Knowing that my (untested, buggy, and inefficent) programs won't crash CEmu is quite reassuring. Smile

I'm also wondering about making the code rain, like one in The Matrix. That'd be cool to do on the CE. What else screams HACKER! more than a whole spectrum of devices all featuring code rain?
Spent a bit of time on the rolling circles animation... who said calculus is useless?

Eventually, I figured out how to vary the speed of the circles depending on where they are. So the circles move faster near the bottom and they move slower near the top.

Fittingly enough, I used my TI-84 Plus CE to graph the functions I used and check my work.

Here's a small demo in Javascript that I quickly clacked out from my keyboard:


Now... to figure out how to hide the circles so that they "appear" and "disappear".

Oh -- and here's the source for that demo:

Code:

<!DOCTYPE html>
<html>
    <head>
        <title>Rolling circle</title>
        <meta charset="utf-8" />
    </head>
    <body>
        <canvas style="background-color: dodgerblue;"></canvas>
        <script>
            var canvas  = document.querySelector("canvas");
            var context = canvas.getContext("2d");
           
            canvas.width = 320, canvas.height = 240;
           
            var angle = 0;
            var ticks = 0;
           
            // var angles = [0, 0.029127, 0.058485, 0.088302, 0.11881];
            var angles = [
                0,
                Math.PI / 12,
                Math.PI / 6,
                Math.PI / 4,
                Math.PI / 3
            ];
            var frames = [0, 5, 10, 15, 20];
           
            function f(x) {
                return (Math.PI / 4) * Math.pow(Math.sin(Math.PI * 5 / 48 * x), 2) + (Math.PI / 12);
            }
           
            function animate() {
                ticks++;
               
                // angle += f((ticks / 9)) / 9;
               
                for (var c = 0; c < 5; c++) {
                    angles[c] += f((ticks + frames[c]) / 9) / 9;
                }
               
                context.clearRect(0, 0, 320, 240);
                context.fillStyle = "white";
                for (var a = 0; a < 5; a++) {
                    // draw a circle
                    var draw_x = 160 + Math.sin(angles[a]) * 40;
                    var draw_y = 110 - Math.cos(angles[a]) * 40;
                    context.beginPath();
                    context.arc(draw_x, draw_y, 3, 0, Math.PI * 2);
                    context.closePath();
                    context.fill();
                }
                   
                requestAnimationFrame(animate);
            }
           
            requestAnimationFrame(animate);
        </script>
    </body>
</html>


Edit: figured out how to hide the circles!

Yes, I am using var in Javascript in 2020. There is a difference between var and let (block scope and all that) but it's subtle and "var" is just in my muscle memory. That's just what happens when everything I learned about programmming comes from outdated books from the public library. (but they're good books, nonetheless.)

Now... time to port it to C... and hope that unlike the real thing, this version of Windoze Update doesn't crash the calculator...

Edit #2: It's done!
Download link (pending approval): http://ceme.tech/DL2097
Source code and a readme are included in the package.
"I used the update the update the update."



Added the new font and redid the drawing code, so now the program redraws only the circles and not the text. And then the update became too fast, so I had to slow it down. The nice bonus of doing this is a smoother animation on a physical calc, but that also slowed the animation to a crawl in CEmu. For the recording above, I had to throttle CEmu to 350% in order to get to near-calc speeds. It's probably my computer's habit of turning everything into a stuttery mess, but whatever. Rolling Eyes

Anyway... here's the (pending) download link: https://www.cemetech.net/downloads/files/2097/x2261
  
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 GMT - 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