RE: LZ-Adv: Clearing up some TI-82 confusion.
[Prev][Next][Index][Thread]
RE: LZ-Adv: Clearing up some TI-82 confusion.
-
Subject: RE: LZ-Adv: Clearing up some TI-82 confusion.
-
From: Sam Davies <davies@unix.trilogy.net>
-
Date: Wed, 30 Oct 1996 18:23:24 -0500
-
In-Reply-To: <>
------ =_NextPart_000_01BBC68F.A342AF20
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
----------
From: Martin Hock[SMTP:oxymoron@aimnet.com]
Sent: Tuesday, October 29, 1996 10:50 PM
To: lz-adv@lists.ticalc.org
Subject: RE: LZ-Adv: Clearing up some TI-82 confusion.
Hmm, yeah, except that the edit-lock feature modifies the program file, =
and
therefore the binary image.
Not true, edit lock can only be done on the computer, so it won't =
corrupt it, or anything, and the only thing that is changed to make a =
program edit-locked is the variable type -- from a $05 to an $06, or =
maybe the other way around... whatever.
D'oh! But then again, the 82-Shell could skip
the first part anyway. Dang. All right, I suppose the 82's PROGRAM =
thingy
might be good... except for one thing! Aha! I betcha that some byte
combinations are INVALID! Yep! You can put whatever crap you want in a
string, and as long as the checksum checks out OK, the 85 doesn't give a
turd. But the 82 probably DOES give a turd about the tokens you use, =
and if
it finds some tokens it doesn't like because they are impossible, it
probably balks quite a bit. For example, if the tokens are two bytes =
each,
I'm sure there aren't EXACTLY 65,536 different commands/buttons on the =
82.
It is not true that the 82 says that programs with invalid tokens will =
be rendered invalid. I have done a considerable amount of =
experimentation with this, and I have found that the 82 will accept any =
bytes in a program string, only the ones that weren't meant to be tokens =
will look kinda ugly when the program is edited-- a string of =
nonsensical characters. But, since the 82 has the handy built-in =
feature of edit-lockable programs, there's no problem. They can be any =
length, and can have anything in them! What more could you want? :)
Furthermore, some idiot executing a binary program would be in for a =
nasty
suprise. Of course, the "End" token could be put at the beginning. All
right, all right, this is beginning to sound almost feasable, except for =
the
potential problem of invalid tokens.
Yes, this would be a good idea, so if people happen to run these =
programs through the normal ti-os, then they won't get error messages, =
just a nice "Done" on the screen, and they will realize that it was an =
assembly language progam. :)
> The rest of your mesasage is basically irrelevant ti-82 bashing. The
ti-82 has a wide number of users in many schools, and I'm sure making a
zshell for it would be *very* popular, and worth our discussion time.
Hey, wait a second, you were DOGGING my ass there. That's not very =
nice.
Can't we all just get along, dillhole? Oh, and by the way, it's spelled
MESIGE, not MESASAGE. Cretin.
Oh, come on, it really isn't all that irrelevant. Think about it. The =
82
is basically a "dummy" calculator with weenie users. The 85, on the =
other
hand, is a power calculator that actually has the ability to tokenize =
things
all by itself. Wouldn't it be cool if all you got to type on your =
computer
was upper-case characters and you had to use a retarded kluge in order =
to
get lower-case characters? Wait a second, that would SUCK.
I still think this is pretty irrelevant. Many people *have* to buy 82's =
for school, so why not make a Zshell for them, to make up for them =
getting the calculator against their will (personally, I don't think =
they're that bad at all, if they had a Zshell, I would probably think =
them almost equal to an 85 -- but that's my opinion.)
The 82 has a low display resolution as well. While that may not seem =
tragic
at first, if you think about it, you may notice something awry. It's =
kind
of a weird resolution at 96 x 64 pixels. That means that you can't =
index it
easily. For example, here is a subroutine I'm using for portions of my
upcoming game Insane Game (DOWNLOAD IT SOON! For those of you who care,
I've finished approximately 50% of the game, probably more.):
GetScreenAddr:
ld bc,0 ;10
ld hl,0 ;10
ld a,(YCoord) ;13
ld l,a ;4
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
ld a,(XCoord) ;13
ld c,a ;4
add hl,bc ;11
ld bc,VIDEO_MEM ;10
add hl,bc ;11
ret ;10
;=3D173 T States
Oh boy, actual CODE! Basically, it converts an X and a Y coordinate
pointing to part of a pseudo-16x8 array into their screen equivalent. =
See
all those "add hl,hl" things? (Keep in mind that this is pre-beta and I =
may
turn this into a repeating loop.) Basically, it takes the Y coordinate =
(a
value from 0 to 7) and multiplies it by 128, then adds the X coordinate =
(a
value from 0 to 15). 128 is equal to 16*8; in other words, 16 bytes per =
row
* 8 rows per picture (my pictures are 1 byte by one byte). Numbers like =
128
are very nice, you see, because they can be represented by a power of 2 =
and
therefore a number of SLAs (or in this case, add hl,hl because you can't =
SLA
a 16-bit double register). With 12 bytes per row rather than a nice =
smooth
16, however, the TI-82 would not be able to chug my lovely code (12*8 =
=3D 96 =3D
a number between 2^6 and 2^7). I might end up having to HARDCODE the
information! Horrors! Hardcoding is NOT my friend. Tight little
algorithms are my friends. Those and the talking ponies.
Below is my optimized version of your function, only changed to multiply =
by 96, rather than 128. It's true that this *optimized* function, when =
made to multiply by 128, would be slightly faster (4 or 5 T-states), but =
how can you worry about the speed slow-down of converting to an 82, when =
below is a function that does it in 13 less T-states than yours!!! So =
just take a look at the tightness of your own "Tight little algorithms" =
before complaining about a possibe slow-downs when converted to a =
different screen size!
(the lines with *'s before them, I have changed)
also, YCoord must be followed by a byte which is 0 -- just leave a space =
with no variable after it in TEXT_MEM.
GetScreenAddr:
*ld hl,(YCoord) ;16
*ld c,l ;4
*ld b,h ;4
add hl,hl ;11
*add hl,bc ;11
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
add hl,hl ;11
*ld a,(XCoord) ;13
*ld c,a ;4
add hl,bc ;11
ld bc,VIDEO_MEM ;10
add hl,bc ;11
ret ;10
;=3D160 T States
However, if Mattias wants to continue forging the TI-82 frontier, by all
means he should continue. I'm just a little skeptical about something =
ever
working. I would love to be proven wrong, however, as any TI hack is a =
good
TI hack. And of COURSE I think this whole thing is worth our discussion
time or I wouldn't have contributed to the thread in the first place.
_______________________________________________________________________
|Martin Hock - oxymoron@aimnet.com - Oxymoron at #irchelp on =
EFnet|
|"I'm influenced by television? That's a load of rich creamery =
butter!"|
------ =_NextPart_000_01BBC68F.A342AF20
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64
eJ8+IjIXAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAENgAQAAgAAAAIAAgABBJAG
ADABAAABAAAADAAAAAMAADADAAAACwAPDgAAAAACAf8PAQAAAE0AAAAAAAAAgSsfpL6jEBmdbgDd
AQ9UAgAAAABsei1hZHZAbGlzdHMudGljYWxjLm9yZwBTTVRQAGx6LWFkdkBsaXN0cy50aWNhbGMu
b3JnAAAAAB4AAjABAAAABQAAAFNNVFAAAAAAHgADMAEAAAAYAAAAbHotYWR2QGxpc3RzLnRpY2Fs
Yy5vcmcAAwAVDAEAAAADAP4PBgAAAB4AATABAAAAGgAAACdsei1hZHZAbGlzdHMudGljYWxjLm9y
ZycAAAACAQswAQAAAB0AAABTTVRQOkxaLUFEVkBMSVNUUy5USUNBTEMuT1JHAAAAAAMAADkAAAAA
CwBAOgEAAAACAfYPAQAAAAQAAAAAAAADrTkBCIAHABgAAABJUE0uTWljcm9zb2Z0IE1haWwuTm90
ZQAxCAEEgAEALgAAAFJFOiBMWi1BZHY6IENsZWFyaW5nIHVwIHNvbWUgVEktODIgY29uZnVzaW9u
LgCtDgEFgAMADgAAAMwHCgAeABIAFwAYAAMAPwEBIIADAA4AAADMBwoAHgARACYAHQADAFIBAQmA
AQAhAAAAQTQ4RDgxNTI3QzMyRDAxMTk2NDY0NDQ1NTM1NDAwMDAAsQYBA5AGABAUAAASAAAACwAj
AAAAAAADACYAAAAAAAsAKQAAAAAAAwA2AAAAAABAADkAIB+ZWLnGuwEeAHAAAQAAAC4AAABSRTog
TFotQWR2OiBDbGVhcmluZyB1cCBzb21lIFRJLTgyIGNvbmZ1c2lvbi4AAAACAXEAAQAAABYAAAAB
u8a5WCNSgY2lMnwR0JZGREVTVAAAAAAeAB4MAQAAAAUAAABTTVRQAAAAAB4AHwwBAAAAGAAAAGRh
dmllc0BtYWlsLnRyaWxvZ3kubmV0AAMABhAvntoQAwAHEEcUAAAeAAgQAQAAAGUAAAAtLS0tLS0t
LS0tRlJPTTpNQVJUSU5IT0NLU01UUDpPWFlNT1JPTkBBSU1ORVRDT01TRU5UOlRVRVNEQVksT0NU
T0JFUjI5LDE5OTYxMDo1MFBNVE86TFotQURWQExJU1RTVElDAAAAAAIBCRABAAAAfBIAAHgSAAAg
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
oA==
------ =_NextPart_000_01BBC68F.A342AF20--