[A83] Re: Windows 2000 SP3


[Prev][Next][Index][Thread]

[A83] Re: Windows 2000 SP3




Still missing some zeros... On an exact duplicate compile.. between 41h
and 45h are zeros. But, on yours the zeros only go to 43h. There needs
to be two more zeros in there. Otherwise, it is perfect. I figured the
problem would be the checksum, but it is that the variable name field is
2 bytes longer on the 8xp than an 83p. This patch will have to be
applied overtop the previous patch.

--- bin2var.c.orig      2002-08-06 18:58:06.000000000 -0500
+++ bin2var.c   2002-08-06 19:40:27.000000000 -0500
@@ -160,7 +160,7 @@
   if ((ext == E_82P) || (ext == E_83P))
     i = n + 17;
   else if (ext == E_8XP)
-         i = n + 19;
+         i = n + 21;
   else if (ext == E_85S)
     i = n + 10 + strlen(str);
   else
@@ -194,9 +194,11 @@
   if ((ext == E_85S) || (ext == E_86P) || (ext == E_86S))
     cfwrite(&i, 1, fp, &chk);
   cfwrite(str, i, fp, &chk);
-  memset(str, 0, 8);
-  if (ext != E_85S)
+  memset(str, 0, 10);
+  if (ext != E_85S && ext != E_8XP)
     cfwrite(str, 8 - i, fp, &chk);
+  else if(ext == E_8XP)
+    cfwrite(str, 10 - i, fp, &chk);
   if (ext == E_8XP)
   {
        i = n + 4;

--
Scott Dial
scott@scottdial.com
AIM GeekMug : ICQ# 3608935

-----Original Message-----
From: assembly-83-bounce@lists.ticalc.org
[mailto:assembly-83-bounce@lists.ticalc.org] On Behalf Of David Phillips
Sent: Tuesday, August 06, 2002 4:50 PM
To: assembly-83@lists.ticalc.org
Subject: [A83] Re: Windows 2000 SP3


Can you be more specific?

I just did a quick verification of the source code with the format
published
here:

http://gladstone.uoregon.edu/~tsinger/link/TI-83+/fformat.html

The only error I see is that the first 2 bytes of the variable entry
should
be 0x0d instead of 0x0b.  Is there anything else?  Another possible
issue is
that the variable type ID is 0x06 (edit locked program) when it possibly
should be 0x05 (program).  Does it need to be changed?

The length values are weird and don't exactly match the specification,
but I
remember doing a lot of tests and comparisons when I wrote the code, so
it
is likely to be correct.

The rewrite of Bin2Var 2.0 will follow that specification exactly and
the
layout of the source code will make it trivial to verify that it is
correct
according to the specification.

The following patch should correct the first problem:

--- bin2var.c.orig      2002-08-06 16:20:53.000000000 -0500
+++ bin2var.c   2002-08-06 16:32:02.000000000 -0500
@@ -162,8 +162,10 @@
   else
     i = n + 18;
   fwrite(&i, 2, 1, fp);
-  if ((ext == E_82P) || (ext == E_83P) || (ext == E_8XP))
+  if ((ext == E_82P) || (ext == E_83P))
     cfwrite("\x0b\0x00", 2, fp, &chk);
+  else if (ext == E_8XP)
+    cfwrite("\x0d\0x00", 2, fp, &chk);
   else if (ext == E_85S)
   {
     i = 4 + strlen(str);

> Yes, but Bin2Var does not make _proper_ 8xps. Most software doesn't
> care, but the TI Flash Debugger will lock up if you try and send one
to
> it.







References: