Calculator Community > Axe

Variable Subroutines

<< < (3/3)

Deep Toaster:
Sorry to keep prodding at this question, but are you copying the program you'd like to run to 9D95h every time? Are you compiling to a program or as an app? (I'm assuming since you can't use New(), you're compiling as an app?)

Terrav:
Well, I tried both. When I try it from a program compilation method, it goes absolutely nuts. First, it looks like it does nothing. Then, when you exit the shell, it returns back to the program selection screen (in my shell). Then, when you try to exit the shell again, it does one of two things. 1) it stays on with a blank screen and executes a seemingly infinite loop. 2) It goes through what I can only describe it as: the calculator is on drugs. The user input is about 1/4-normal; you can point out various misplaced parts of some recognizable menus; and finally, if you hit On and other keys enough, it "burns out" with that weird blue line across the screen (I've seen this before: see the footnote) and resets after about 2 minutes. I've double-checked that the program I'm working with is within the size range (nothing hanging past BFFFh). This seems absolutely nuts, so as soon as I can I will get the MEMKIT Axiom library and use that.

Footnote: That weird blue line on the screen is very frightening and I've seen it before; that is the MAJOR indicator that you have done something horribly wrong. I believe that may be a side effect of executing bad code, that sends absolute nonsense to your LCD, causing it to shut off and display a blue line across your screen. I only call it "burning out" because it's generally what it does after an absolute overload of bad data, and the line fades away in tatters before eventually returning your calculator to a fresh RAM wipe. I have found nothing about this on YouTube.

NonstickAtom785:
Wow okay. For one you are wrong about a lot of things right now. You haven't done anything absolutely wrong. You just don't understand what is going on. Let me first say that the Blue Line of Death is really just the LCD receiving an abnormal amount of energy. It's called test mode. Check out this page for more info on that. I would help you more but I'm busy right now.

Deep Toaster:

--- Quote from: Terrav on January 07, 2021, 01:26:09 pm ---Well, I tried both. When I try it from a program compilation method, it goes absolutely nuts.
--- End quote ---
Terrav, like E37 and I have been saying, this will happen 100% of the time with any program that has any logic (such as any if statements) unless you've done the following:
* copy your shell's code (that's the code you're writing) to a safe RAM location (such as L1) and Goto there
* use New() to clear out space around 9D95h
* copy the program you want to run to 9D95h
* call the program at 9D95hIf you compile as an app, you can skip the first step.
--- Quote from: Terrav on January 07, 2021, 01:26:09 pm ---First, it looks like it does nothing. Then, when you exit the shell, it returns back to the program selection screen (in my shell). Then, when you try to exit the shell again, it does one of two things. 1) it stays on with a blank screen and executes a seemingly infinite loop. 2) It goes through what I can only describe it as: the calculator is on drugs. The user input is about 1/4-normal; you can point out various misplaced parts of some recognizable menus; and finally, if you hit On and other keys enough, it "burns out" with that weird blue line across the screen (I've seen this before: see the footnote) and resets after about 2 minutes.
--- End quote ---
This (or any number of weird effects) is pretty much expected. What your program is doing is equivalent to generating a random address in memory and jumping to it; in fact, you can probably get a similar effect to occur by doing exactly that.
--- Quote from: Terrav on January 07, 2021, 01:26:09 pm ---I've double-checked that the program I'm working with is within the size range (nothing hanging past BFFFh).
--- End quote ---
That's something to worry about later; if you execute any code beyond BFFFh, the effect is just an immediate RAM clear.
--- Quote from: Terrav on January 07, 2021, 01:26:09 pm ---Footnote: That weird blue line on the screen is very frightening and I've seen it before; that is the MAJOR indicator that you have done something horribly wrong. I believe that may be a side effect of executing bad code, that sends absolute nonsense to your LCD, causing it to shut off and display a blue line across your screen. I only call it "burning out" because it's generally what it does after an absolute overload of bad data, and the line fades away in tatters before eventually returning your calculator to a fresh RAM wipe. I have found nothing about this on YouTube.
--- End quote ---
This is called "test mode," or colloquially the "blue line of death" (BLoD). You're right in that it's effectively burning out your LCD; if it happens, the best thing to do is to take out your batteries quickly so no permanent damage occurs.

Like I said, I highly recommend reading Learn TI-83 Plus Assembly in 28 Days. What you're writing is called a shell, and it's one of the more technically involved things you can write in assembly, let alone Axe.

Navigation

[0] Message Index

[*] Previous page

Go to full version