Calculator Community > ASM

Stable offscript for TI-83+

<< < (2/4) > >>

E37:
Warning: Asm can and will crash your calc and reset your ram. Archive anything you care about and ideally back up everything to your PC.

I can't exactly picture how your system works but I'll take that Str0 stuff and run with it. Would deleting Str0 on Offscript work? The assembly for that is very simple. I haven't tested this but it *should* work. It has been a long time since I have messed with TI-Basic strings so I might have messed up the name. Also this won't work if Str0 is archived.

--- Code: ---;Put the (binary) contents of this in appvOFFSCRPT
.org $8001
    ld  hl, name
    RST rMov9ToOP1
    B_CALL ChkFindSym
    ret c
    B_CALL DelVar
    ret

name:
    db StrngObj, tVarStrng, tStr0, 0, 0

--- End code ---

Cholsrea:
Deleting Str0 wouldn't work because checking it will throw an error. But i dont keep that archived so the archiving problem isnt an issue

Yeah the Asm i used i believe was the cause of the crashes, if AppVars dont use Asm though how are they functioning?

Also its hard to give more info without knowing what is needed, but bc TI-basic doesn't have error protection or checking, Str0 just needs to be anything besides A-Z, a-z, 0-9 and 1-10 characters long.

Also i don't know anything about AppVars so sorry for my confusion, im not sure how to even turn the code you supplied into an appvars, or how i would interact/use it or enable it


And yeah ik about the crashing, its happened before i used assembly, so i keep everything archived (including most programs) and just use a few smaller programs i have duplicates of unarchived that archive and unarchive the programs, and important lists only as needed. (I use a simple Asm to allow programs to unarchive and archive other programs)

The only Assemblies i use are enabling lowercase on double alpha, battery check, and "programmer mode" which allow unarchiving and archiving programs within other programs

E37:
You would use a compiler like spasm-ng to compile the asm code. You can put asm code anywhere as long as it is set up correctly to run. To sidestep the problem, can't you just have a prompt on exiting the program that asks the user if they want to log off? I don't remember exactly how to mess with TI-Basic strings. I think they work just like programs. I usually use Axe for stuff like that so I will have to look up how to do it in asm.

Cholsrea:

Each program is sperate, its not a total override of the system, you can still use the calculator as normal but cant use any of the extra features without logging in. So having a prompt on exiting the program would not really work

But thanks for the compiler, ill try to do some more research into how your code works and the asm and maybe figure it out myself

E37:
@Cholsrea
This time I actually did my homework.
I tried modifying Str0 and got it to work as a program but couldn't get it to work as offscript.
So how about deleting a letter variable? Those can be read when deleted. You could set the variable to a special value to mean the login was still valid and if it is 0 then discard it.
I actually tested this and it works for me. You need to run the program SETIY in order for offscript to work. (It is safe to run it multple times) If you have a way to run asm in Basic, you could run FDCB33CE instead.


--- Code: ---;offscript.asm
;compile with ./spasm -I inc -T offscript.asm OFFSCRPT.8xv
;or spasm.exe -I inc -T offscript.asm OFFSCRPT.8xv if you are on windows
;This deletes the letter variable 'A' but all you have to do is change the letter below and compile if you want a different one
#include "ti83plus.inc"

.org $8001
ld hl, name
RST rMov9ToOP1
B_CALL _ChkFindSym
ret c
B_CALL _DelVar
ret

name:
.db RealObj, 'A', 0, 0 ;you can change 'A' to any other letter you want (make sure it is uppercase) to delete that letter instead
.db 0

--- End code ---


--- Code: ---;set_iy.asm
;compile with ./spasm -T set_iy.asm SETIY.8xv //You are free to rename this program to whatever you want either here or on calc
;or spasm.exe -I inc -T set_iy.asm SETIY.8xv if you are on windows
;All this does is set a single bit to true. If that bit is false, the OS won't run offscript even if it exists
.db $BB, $6D
set 1, (iy+33h) ;sets bit 1 of iy+33h to indicate that there is an offscript installed

--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version