Or, for really evil results, you can execute your embedded code in place - I think. I have'nt tried this on a MT, but it works a treat
on TI CC-40's & TI-74's, 8-bitters of a similar vintage. Of course you have to keep track of where your code is in memory... I actually wrote a tool once (in QB) that would take a .lst file and turn the opcodes into DATA statements, with offsets & jumps in the right places; a TI-BASIC DATA statement length is 80 Bytes max, not 255, so more than one is sometimes needed, & there's some overhead in the jumps, but an EXEC statement is pretty fast... Too much fun... "8) ... On 5/30/18, Stephen Adolph <[email protected]> wrote: > I often want to embed ML into basic programs. There are 2 ways that I use > 1) make a string of binary and assign it to a basic string variable. (use > VARPTR) > 2) include data statements that contain the ML binary, with some encoding, > and use a routine to poke into memory > > regarding (2) > I've seen 2 methods > 1) encode data as decimal numbers > ex. Data 125, 34, 56 etc > > 2) encode data as hex characters > ex. Data C9F501 etc > > Neither of these are really optimal because they expand the size of the > code by 2 -3 x > > I've come up with an alternative to this which I'm now using. The raw > binary, with some code changes, can be directly embedded in data > statements, in quotes. > > ex. Data "$%#(Lop" etc > > gotchas: > 1) all binary codes <=32 must be mapped to special sequences to avoid > problems with BASIC > 2) the " character has to be mapped to a different sequence otherwise you > confuse BASIC > > I use the "/" as a special symbol to mean "special sequence" and I map all > characters <=32, + " + / by adding 64d to each character. > > Ex. if the code 0Dh is encountered in the binary, it would get transformed > to "/" + chr$(13+64). > > Decoding is straightforward - look for / and subtract 64 from the next > character. > > Anyhow the net result is very compact with a minimal poke routine. I > compile my machine code into Intel HEX format, run a simple program to > encode the data into sets of DATA statements, and copy the resulting text > into a .DO file. >
