Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
So I was working on a little program that emulates (part of) a TI 84 Plus monochrome on my TI 84 CE. I do not have screenshots, but they will come soon. I thought, if there is a Wabbitemu for other devices, how about a calculator emulator on a calculator?! I have too many glitches in the code. So far, there is the classic light-green-ish color background, a cursor, and the second and alpha keys function by, for now, showing the A and the arrow. I am implementing a second program which has the letter sprites. I will also release the code so far, glitches and all. Once released in order to quit the program, press [alpha] then [X,T,θ,n]. ARCHIVE ALL APPVARS AND DATA IF YOU ARE WILLING TO HELP ME!!! Also, the letters insert ok-ish. I use L1 list to save the characters you type, that's not working either!! But I WILL release it today or tommorow for first testing. IT IS TERRIBLE FOR NOW!
of course it'll be bad code! You just started! I didn't mean this to be rube, if it came off as such, sorry, that was NOT my intention. Usually, firsts in programming are messy Razz
When I get going, and learn more skills, I go back to my old programs and apply them.

So keep going, and just remember: all starting programs will have glitches Razz

Overall, sounds pretty neat! Do you have plans to add Third Party apps (iirc, that would need the app dev's permission to (possibly) convert it to an AppVar for use on the CE, in case you ever think about that)
I was just thinking about writing a program to do that! (In eZ80, even though I don't know it...)

Anyway, it's not much, but if you're trying to emulate the TI-84 Plus, this site could potentially help you.
Emulating TI-84+ on 84PCE!! sounds neat Good Idea .
I would love to help with data saving using Appvars. Smile

Will you be making custom fonts to match TI-84 OS?
How will this be different from 84PCE OS? (in spite the screen color)
Just wondering if this will be an emulator for the actual hardware or if it will be like a simulate to recreate the look and feel of the monochrome calcs on the CE?
TimmyTurner62 wrote:
I thought, if there is a Wabbitemu for other devices, how about a calculator emulator on a calculator?! I have too many glitches in the code. So far, there is the classic light-green-ish color background, a cursor, and the second and alpha keys function by, for now, showing the A and the arrow. I am implementing a second program which has the letter sprites. I will also release the code so far, glitches and all. Once released in order to quit the program, press [alpha] then [X,T,θ,n]. ARCHIVE ALL APPVARS AND DATA IF YOU ARE WILLING TO HELP ME!!! Also, the letters insert ok-ish. I use L1 list to save the characters you type, that's not working either!! But I WILL release it today or tommorow for first testing. IT IS TERRIBLE FOR NOW!


tr1p1ea wrote:

Just wondering if this will be an emulator for the actual hardware or if it will be like a simulate to recreate the look and feel of the monochrome calcs on the CE?


I think TimmyTurner62 is recreating the look on the 84PCE. Smile
Let's watch this one die with the same apathy as this one: https://www.cemetech.net/forum/viewtopic.php?p=254041#254041
MateoConLechuga wrote:
Let's watch this one die with the same apathy as this one: https://www.cemetech.net/forum/viewtopic.php?p=254041#254041

It wont die! I wont give up on it because its not the thing I want to do!
BACKUP RAM before running the program! To exit emulator, press [alpha] followed by [X,T,θ,n]! Cemetech rejected it but I wont give up on it!
HERE IS THE SOURCE FOR NOW:

NOTE:  is the imaginary i.


Code:
TI84PLUS
det(0
sum(0
AsmComp(TI84LTTR
24206→RAMFREE:557056→ARCFREE
0→KEYA→KEY
0→TIMER→VARA
0→XPOS→YPOS
TRASH CODE FOR TYPED DATA, WILL BE IMPROVED SOON...
sum(9,"DATA","r")
sum(1,"DATA","w+")→DATA
0→ALPHAPRESSED→ALPHALOCK
0→SIZE:80→BRIGHTNESS
Lbl RESET
0→TIMER→VARA
0→XPOS→YPOS
det(5,173
Repeat KEYA=2 and KEY=40
THIS IS A FEATURE THAT SETS THE CURSOR TO AN ON STATE WHEN A KEY IS PRESSED
If KEY≠0:1→VARA
0→TIMER:End
CURSOR LOOP,CODE
If VARA=0
det(62,CURSOROFF,XPOS,YPOS,3,3
End
If VARA=1
If KEYA=0
det(62,CURSORON,XPOS,YPOS,3,3
End
If KEYA=2
det(62,CURSORALPHA,XPOS,YPOS,3,3
End
If KEYA=1
det(62,CURSORSECOND,XPOS,YPOS,3,3
End
End
TEST CODE, TRY TO ALLOW UNLIMITED NUMBERS TO BE ADDED TO THE DATA APPVAR
sum(11,SIZE,DATA
sum(14,DATA
FIX BRIGHTNESS BUG
If BRIGHTNESS>255
255→BRIGHTNESS:End
CONSTANT UPDATE OF BRIGHTNESS
rBRIGHTNESS
TIMER+1→TIMER
If TIMER>300
0→TIMER
VARA+1→VARA
If VARA>1:0→VARA:End
End
GETKEY CODE
getKey→KEY
CLEAR KEY CLEARS THE SCREEN
If KEY=15:Goto RESET:End
TEST KEY LOOP. CHECK FOR EXIT BY [alpha]+[X,T,θ,n]
If KEY=54 and KEYA≠1
1→KEYA:0→KEY:End
If KEY=48 and KEYA≠2
1→ALPHAPRESSED
2→KEYA:0→KEY:End
If KEYA=1 and KEY=48
1→ALPHALOCK:End
If ALPHALOCK=1
ALPHALOCK→ALPHAPRESSED:End
If (KEY=54 and KEYA=1) or (KEY=48 and KEYA=2)
0→KEYA:0→KEY:End
BRIGHTNESS KEY COMBINATION INPUT
If KEY=4 and KEYA=1 and BRIGHTNESS-20>0
BRIGHTNESS-20→BRIGHTNESS:End
If KEY=1 and KEYA=1 and BRIGHTNESS+20<255
BRIGHTNESS+20→BRIGHTNESS:End
NUMBER KEY INPUT, IF ALPHA WASNT PRESSED
If ALPHAPRESSED≠0
If KEY=34
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"1",1,1,DATA
det(62,NUMBERA,XPOS,YPOS,3,3
End
If KEY=26
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"2",1,1,DATA
det(62,NUMBERB,XPOS,YPOS,3,3
End
If KEY=18
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"3",1,1,DATA
det(62,NUMBERC,XPOS,YPOS,3,3
End
If KEY=33
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"0",1,1,DATA
det(62,NUMBERJ,XPOS,YPOS,3,3
End
If KEY=34 or KEY=26 or KEY=18 or KEY=33
SIZE+1→SIZE
XPOS+20→XPOS
If XPOS>320
0→XPOS:YPOS+28→YPOS
If YPOS>230
Goto RESET
End:End:End
End
End
det(1
CONSTANTLY UPDATE HOMESCREEN
0→DRAWX→DRAWY
For(TESTVAR,1,sum(16,DATA
sum(5,Str2,1,TESTVAR,DATA
Output(1,1,Str2
Output(2,1,TESTVAR
Pause
Output(1,1,"  "
Output(2,1,"  "
End
det(1:Return
Did you ever stop and look at why Cemetech rejected your program? Or did you just not bother.
OOOHHHH! I found out why!! I need to improve on it some. So I will just post the code. I worked on it yesterday so the code is above!! ^^
So far only numbers can be added (1-3) Alpha doesnt do anything except allow you to exit the program with [X,T,θ,n]
But we have one small situation, when typing numbers, they don't save in the DATA appvar appropriately. When you quit the program, it tells you kind of what's stored in the appvar, but it isn't right. Maybe someone helping me look at my code and fix it so that once you type a number, no matter how many times, it will always be written to that appvar.
UPDATED CODE:


Code:
TI84PLUS
"00000000000000000000FFFFFFFF00000000F355555FB0000000F555555FBB000000F555555FBBBB0000F555555FBBBB0000FFFFFFFFBBBB000033333333BBBB00003FEFEDE3BBBB00003EFEDFD3BBBB00003FEFEDE3BBBB00003EFEFEF3BBB000003FEFEFE3BB0000003EFEFEF3B000000033333333B0000000BBBBBBBBB000"
TI-84 Emulator v1.0.5 By TimmyTurner62
ClrHome
Output(1,0,"Choose Model:"
Output(2,1,"TI-84 Plus SE"
Output(2,0,">"
Output(8,0,"Press (alpha) + (X,T,0,n)"
Output(9,0,"to quit emulator"
Pause
det(0
sum(0
"v1.0.5"→EMUVERSION
AsmComp(TI84LTTR
24206→RAMFREE:557056→ARCFREE
0→KEYA→KEY
0→TIMER→VARA
0→XPOS→YPOS
TRASH CODE FOR TYPED DATA, WILL BE IMPROVED SOON...
sum(9,"DATA","r")
sum(1,"DATA","w+")→DATA
0→ALPHAPRESSED→ALPHALOCK
0→SIZE:120→BRIGHTNESS
ARROW KEYS WILL ALLOW THE CURSOR TO BE MOVED ON ANY CHARACTERS TYPED
0→CURSORPOSVAR
RESET WILL BE CHANGED LATER TO ONLY WORK IF CLEAR KEY IS PRESSED
Lbl RESET
0→TIMER→VARA
0→XPOS→YPOS
det(5,173
Repeat KEYA=2 and KEY=40
THIS IS A FEATURE THAT SETS THE CURSOR TO AN ON STATE WHEN A KEY IS PRESSED
If KEY≠0:1→VARA
0→TIMER:End
CURSOR LOOP,CODE
If VARA=0
det(62,CURSOROFF,XPOS,YPOS,3,3
End
If VARA=1
If KEYA=0
det(62,CURSORON,XPOS,YPOS,3,3
End
If KEYA=2
det(62,CURSORALPHA,XPOS,YPOS,3,3
End
If KEYA=1
det(62,CURSORSECOND,XPOS,YPOS,3,3
End
End
FIX BRIGHTNESS BUG
If BRIGHTNESS>255
255→BRIGHTNESS:End
CONSTANT UPDATE OF BRIGHTNESS
rBRIGHTNESS
TIMER+1→TIMER
If TIMER>500
0→TIMER
VARA+1→VARA
If VARA>1:0→VARA:End
End
GETKEY CODE
getKey→KEY
CLEAR KEY CLEARS THE SCREEN
If KEY=15:Goto RESET:End
det(19,10,200
det(15,CURSORPOSA,1
If KEY≠0
det(20,173
det(21,173
det(19,10,200
det(15,CURSORPOSA,1
det(20,173
det(21,1
det(19,10,200
det(15,CURSORPOSA,1
End
THIS ALLOWS THE CURSOR TO BE MOVED, LATER IT WILL ALLOW ADDING OR CHANGING CHARACTERS
If KEY=2 and CURSORPOSA>0
det(62,CURSOROFF,XPOS,YPOS,3,3
XPOS-20→XPOS
CURSORPOSA-1→CURSORPOSA
If CURSORX>320
300→XPOS:YPOS-28→YPOS
End:End
If KEY=3 and CURSORPOSA<sum(16,DATA
det(62,CURSOROFF,XPOS,YPOS,3,3
XPOS+20→XPOS
CURSORPOSA+1→CURSORPOSA
If CURSORX>320
0→XPOS:YPOS+28→YPOS
End:End
TEST KEY LOOP. CHECK FOR EXIT BY [alpha]+[X,T,θ,n]
If KEY=54 and KEYA≠1
1→KEYA:0→KEY:End
If KEY=48 and KEYA≠2
1→ALPHAPRESSED
2→KEYA:0→KEY:End
If KEYA=1 and KEY=48
1→ALPHALOCK:End
If ALPHALOCK=1
ALPHALOCK→ALPHAPRESSED:End
If (KEY=54 and KEYA=1) or (KEY=48 and KEYA=2)
0→KEYA:0→KEY:End
BRIGHTNESS KEY COMBINATION INPUT
If KEY=1 and KEYA=1 and BRIGHTNESS-20>0
BRIGHTNESS-20→BRIGHTNESS:End
If KEY=4 and KEYA=1 and BRIGHTNESS+20<255
BRIGHTNESS+20→BRIGHTNESS:End
NUMBER KEY INPUT, IF ALPHA WASNT PRESSED
""→Str0
If ALPHAPRESSED≠0
If KEY=34
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"1",1,1,DATA
det(62,NUMBERA,XPOS,YPOS,3,3
End
If KEY=26
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"2",1,1,DATA
det(62,NUMBERB,XPOS,YPOS,3,3
End
If KEY=18
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"3",1,1,DATA
det(62,NUMBERC,XPOS,YPOS,3,3
End
If KEY=33
sum(5,Str0,sum(16,DATA),1,DATA
sum(4,Str0+"0",1,1,DATA
det(62,NUMBERJ,XPOS,YPOS,3,3
End
If KEY=34 or KEY=26 or KEY=18 or KEY=33
CURSORPOSA+1→CURSORPOSA
SIZE+1→SIZE
XPOS+20→XPOS
If XPOS>310
0→XPOS:YPOS+28→YPOS
If YPOS>230
Goto RESET
End:End:End
End
CONSTANTLY UPDATE HOMESCREEN
0→DRAWX→DRAWY
For(TESTVAR,1,sum(16,DATA
sum(5,Str2,TESTVAR,1,DATA
If TEXT=1
det(63,NUMBERA,DRAWX,DRAWY,3,3
End
If TEXT=2
det(63,NUMBERB,DRAWX,DRAWY,3,3
End
If TEXT=3
det(63,NUMBERC,DRAWX,DRAWY,3,3
End
If TEXT=0
det(63,NUMBERJ,DRAWX,DRAWY,3,3
End
DRAWX+20→DRAWX
If DRAWX>320
0→DRAWX:DRAWY+28→DRAWY
If DRAWY>240-20
Goto RESET
End:End:End
End:det(1:Return



I will be out for christmas break, I am in high school. I will post an updated code edit to my program. It includes left and right cursor movement on what you typed. However, the DrawHomescreen
code only draws a 0 instead of what you typed. I mean for it to always run this code as long as you are on the Homescreen. There is a number at the bottom left telling what position the cursor is in. It also features a program icon (for use with Cesium) and program description. The icon looks rather nice I think. But the 0 problem I need help with, I tried everything! Thanks

NOTE: Find CONSTANTLY UPDATE HOMESCREEN in the code, this is what I'm talking about. DRAWX and DRAWY are the positions of the numbers
You really should invest in code blocks.


Code:
it looks like this


Just surround your code with [code] and [/code].

You should also look into sourcecoder 3, which will format your code to make it readable.
Ok. I'm still new here so I learn as much as I can
SM84CE wrote:
of course it'll be bad code! You just started! I didn't mean this to be rube, if it came off as such, sorry, that was NOT my intention. Usually, firsts in programming are messy Razz
When I get going, and learn more skills, I go back to my old programs and apply them.

So keep going, and just remember: all starting programs will have glitches Razz

Overall, sounds pretty neat! Do you have plans to add Third Party apps (iirc, that would need the app dev's permission to (possibly) convert it to an AppVar for use on the CE, in case you ever think about that)


RUBE noun
\ˈrüb \
Definition of rube
1 : an awkward unsophisticated person : RUSTIC
2 : a naive or inexperienced person

Typo or not a typo? Make sense either way. Very Happy Very Happy Very Happy
TI-BASIC is not going to cut it, you're going to run into performance and language issues at every step. If you're making something like https://www.ticalc.org/archives/files/fileinfo/323/32326.html , it 100% has to be written in assembly.
It's written in ICE, not BASIC. And speed isn't really necessary since this isn't an actual emulator, just a look-alike.
Calcuon wrote:
SM84CE wrote:
of course it'll be bad code! You just started! I didn't mean this to be rube, if it came off as such, sorry, that was NOT my intention. Usually, firsts in programming are messy Razz
When I get going, and learn more skills, I go back to my old programs and apply them.

So keep going, and just remember: all starting programs will have glitches Razz

Overall, sounds pretty neat! Do you have plans to add Third Party apps (iirc, that would need the app dev's permission to (possibly) convert it to an AppVar for use on the CE, in case you ever think about that)


RUBE noun
\ˈrüb \
Definition of rube
1 : an awkward unsophisticated person : RUSTIC
2 : a naive or inexperienced person

Typo or not a typo? Make sense either way. Very Happy Very Happy Very Happy


Lol
I meant rude Razz
Hah its fine
I just need help reading strings from an appvar. I want just one character. Let's say I have "ABCDEFGHIJ" saved in an appvar. I want the 1st letter first, then the second, and so forth. I want it to do "A", "B", "C", and so on. Y'all get the point. But things just aren't working... maybe someone give me code for this?
  
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