I love Ubuntu, am familiar with bash, and love learning new things (I can only guarantee having time to do stuff if it's more interesting than all my other projects though ).
:X→{Y}+GBDZ What this code does is store the value of X into the byte pointed to by Y, and then adds GDBZ to Y and does nothing with it. I think what you want is X→{Y+GDBZ}.
Thanks to a suggestion from calc84maniac, I have optimized the routine that is used for both *^ and ** to be 25-50% faster. In addition, every use of *^ would be 2 bytes smaller.
The OS didn't actually interrupt your code. If your code exits with onInterrupt,(iy+onFlags) set, then the break error automatically shows up after your program exits.
Edit: and the flag is automatically set when ON is pressed in B_CALL(_GetKey).
Edit 2: ...so all you have to do is put res onInterrupt,(iy+onFlags) before you return.
B_CALL(_GetKey) returns with a = 0 when the ON key is pressed. In order to use it again you need to res onInterrupt,(iy+onFlags). Unfortunately, 2nd+ON can still exit the program during a B_CALL(_GetKey). Fortunately, you can use B_CALL(_GetKeyRetOff) (which is what Axe uses) which returns kOff when 2nd+ON is pressed. There might still be a link-port-related way to exit the program, but I don't know for sure.
The string that is pointed to is drawn at the current pen location to the main buffer, back buffer, or specified buffer respectively. See Fix 0 and Fix 1 commands for drawing details.
Char(CHAR) Char(CHAR)r Char(CHAR,BUF)
Key:ZYmin
The ASCII character is drawn at the current pen location to the main buffer, back buffer, or specified buffer respectively. See Fix 0 and Fix 1 commands for drawing details.
EXP▶Int EXP▶Intr
Key:ZYmax
Converts the number to an unsigned or signed integer respectively and returns the pointer to that string.
EXP▶Fixed EXP▶Fixedr
Key:ZYscl
Converts the number to an unsigned or signed 8.8 fixed point number respectively and returns the pointer to that string.
EXP▶Token
Key:ZXres
Converts the 1 or 2 byte token to a string and returns a pointer to that string.
PTR▶Tokenr
Key:ZXres
Converts the 1 or 2 byte token that is pointed to to a string and returns a pointer to that string.
The only reason inData( would return the index of the 0, is if you were searching for 0.
Edit: If you wanted 0 if byte is 0, you could do BYTE?inData(,PTR). Also, I can't help but mention that inData(BYTE,PTR)-29??0,+29 optimizes to inData(BYTE,PTR)-29?+29.
Edit 2: Alternatively, if BYTE can not be 255, you can do inData(BYTE+1,PTR), where every byte in PTR has been incremented by 1.
This program fixes archived 8xp files made with TILP, so that they will work with other software (e.g. Wabbitemu, TI Connect). To use, just drag-and-drop 8xp files on 8xpfix.exe. Note: other 8x* files might work too.