ticalc.org
Basics Archives Community Services Programming
Hardware Help About Search Your Account
   Home :: Archives :: News :: Antidisassemblage Programming Language

Antidisassemblage Programming Language
Posted by Michael on 29 April 2005, 04:00 GMT

Dan Cook has been developing a new programming language for TI calculators. His result is called Antidisassemblage, a high-level language that is portable across the 82, 83, 83+, 85, and 86. In the words of Dan, it is "similar to C++ and Java" but also resembles TI-BASIC in a few regards. SquirrelBox is the compiler for Antidisassemblage, a Java program that should work on any platform (including Windows and Linux).

The best feature of Antidisassemblage (can you tell I love typing that name?) is that you can simply select which calculators you want to compile for - then it does all the work for you. However, the language has some limitations. There are no multiplication or division operators, no floating-point support, and no native string or character variable types. Previous attempts at a compiled BASIC-like language have not proven popular; it will be interesting to see if Antidisassemblage succeeds.

  Reply to this article


The comments below are written by ticalc.org visitors. Their views are not necessarily those of ticalc.org, and ticalc.org takes no responsibility for their content.


1.3 doesn't work....
Kirbykirby Account Info

I tried to run Squirrelbox 1.3, and I got an error that I'm apparently "Missing Main Class." I don't know about all of you, but I don't want a program that doesn't work.

Reply to this comment    14 May 2005, 01:36 GMT

Re: 1.3 doesn't work....
Gergely Patai  Account Info
(Web Page)

You need to recompile it to match your java version. So much about platform independence...

Reply to this comment    14 May 2005, 07:29 GMT


Re: Re: 1.3 doesn't work....
kllr nohj  Account Info

or just use the .jar executable

Reply to this comment    14 May 2005, 20:24 GMT


Re: Re: Re: 1.3 doesn't work....
Gergely Patai  Account Info
(Web Page)

That's what doesn't work, see?

Reply to this comment    15 May 2005, 08:05 GMT


Re: Re: Re: Re: 1.3 doesn't work....
kllr nohj  Account Info

worked fine for me for every version

got the latest JRE?

Reply to this comment    15 May 2005, 15:50 GMT


Re: 1.3 doesn't work....
kllr nohj  Account Info

not sure about 1.3, but in 1.4 the batch file is still trying to find 1.3.jar, not 1.4.jar - which gives the error missing main file

Reply to this comment    15 May 2005, 22:54 GMT

Re: Antidisassemblage Programming Language
kllr nohj  Account Info
(Web Page)

Please note that version 1.4 is now out, and it will be the final core version (excluding possible includes that might be released later. Also, a new tutorial is being written up since the current ones are out-dated)

New features include:
multiplication (its not necessarily the most effecient method tho)
division
InputKeyByte (waits for keypress - all the keys have been mapped and will be uploaded shortly)
GetKeyByte (functions similiar to getkey in basic, again, the keys have been mapped and will be uploaded in the same file as inputkeybyte)

More new stuff is in the include file Stuff.ads

For loops have been removed due to non-functionality, but they can be simulated in while loops.

Please also note that the auther of SquirrelBox has left for a 2 year missionary. So 1.4 will be it for a long time....

see link for the site

Reply to this comment    14 May 2005, 20:32 GMT


Re: Re: Antidisassemblage Programming Language
Gergely Patai  Account Info
(Web Page)

Let's see...

void main() {
word a, b;
a = 20 + b;
a = b + 20;
a = 20 - b;
a = b - 20;
}

The compiler messes up three out of these four simple assignments. Another big problem is that local variables of functions corrupt each other when you call one from the other.

I still don't understand why this thing is released in this state, or why it is claimed to be version 1.x, when it's clearly not functional.

Reply to this comment    15 May 2005, 08:21 GMT

Re: Re: Re: Antidisassemblage Programming Language
kllr nohj  Account Info

#include "ti83plus.ads"
#include "text.ads"

word a, b;

void main() {
.ClrHome();
.HomeUp();
a = 20 + b;
.DispWord(a);
.NewLine();
a = b + 20;
.DispWord(a);
.NewLine();
a = 20 - b;
.DispWord(a);
.NewLine();
a = b - 20;
.DispWord(a);
}

try that and see what shows up on your calculator.

Reply to this comment    15 May 2005, 15:50 GMT


Re: Re: Re: Antidisassemblage Programming Language
kllr nohj  Account Info

"Another big problem is that local variables of functions corrupt each other when you call one from the other."

thats because local variables are ONLY ALLOWED INSIDE THE FUNCTION THEY ORIGINATE FROM!!! use global variables instead.

i ran that code and got:
0
20
65535
65515

with lines 1 and 3 being incorrect. Apparently, there is a problem with variables going second....So i also compiled this code:

#include "ti83plus.ads"
#include "text.ads"

byte a, b;

void main() {
.ClrHome();
.HomeUp();
a = 20 + b;
.DispByte(a);
.NewLine();
a = b + 20;
.DispByte(a);
.NewLine();
a = 20 - b;
.DispByte(a);
.NewLine();
a = b - 20;
.DispByte(a);
}

and get:
20
20
20
236

which is all correct

so words variables have more bugs than bytes....how much does that affect things?

Reply to this comment    15 May 2005, 17:54 GMT


Re: Re: Re: Re: Antidisassemblage Programming Language
Gergely Patai  Account Info
(Web Page)

*sigh*

1. You can't call a function from the other without their local variables corrupting each other. Period. That makes them completely unusable for pretty much anything. Using global variables only is a ridiculous non-solution. Taking me for some kind of moron who doesn't know what he's talking about neither.

2. I don't care about running the code when I can already spot the error in the source. Try initialising b with something other than zero and you'll have three wrong results.

a) a = 20 + b will perform a = b + b
b) a = b + 20 will be correct
c) a = 20 - b will perform either a = 0 or a = 65535
d) a = b - 20 will perform either a = b - 20 or a = b - 21

The last actions depend on value of b. I've never ran the code since I don't have a working link cable, but it's quite easy to see what it does.

3. Well, pure byte arithmetic works, but it doesn't have too much use in itself.

Here's this piece of code:

word a = 1000, b = 2000;
byte c = 30, d = 40;

void main() {
a = 20 + b;
a = b + 20; // correct
a = 20 - b;
a = b - 20; // 50%
a = b + c; // correct
a = c + b;
a = c + d;
a = b - c; // 50%
a = c - b;
a = c - d;
}

The two lines marked will always produce correct result. Those marked with '50%' can be either correct or off by one. The rest only by chance. As you can see, it's very far from having most bugs ironed out. I haven't even tried control structures and other features, but in the light of the previous developments I don't feel the urge at all.

By the way, could someone explain why SquirrelBox got such a positive review? It seems to me that the reviewer didn't get farther than the readme...

Reply to this comment    15 May 2005, 19:31 GMT

1.4 doesn't work for me either.(Same error)
Kirbykirby Account Info

I have the latest version of JRE, and it STILL doesn't work! .JAR files are suppported on my Windows XP SP2. Then again, I'm not sure whether Java Web Start and JRE are the same thing.

Reply to this comment    16 May 2005, 04:03 GMT


Re: 1.4 doesn't work for me either.(Same error)
kllr nohj  Account Info
(Web Page)

check the URL for the link to the Java software you need.

And did you try using the bat file to start it instead of double-clicking the .jar?

Reply to this comment    16 May 2005, 12:21 GMT


Re: Re: 1.4 doesn't work for me either.(Same error)
Kirbykirby Account Info

The .bat file still goes to try to find the 1.3 version.
And I downloaded the most recent JRE already. JRE 1.8.8.008 is what I'm using.

Reply to this comment    16 May 2005, 21:58 GMT


Re: Re: Re: 1.4 doesn't work for me either.(Same error)
Kirbykirby Account Info

Oops, I meant 1.1.8.008. And the error still persists...

Reply to this comment    16 May 2005, 21:59 GMT


Re: Re: Re: Re: 1.4 doesn't work for me either.(Same error)
kllr nohj  Account Info
(Web Page)

the latest version of JRE is 5.0 (also known as 1.5). SquirrelBox REQUIRES VERSION 1.4.2 OR HIGHER OF JRE!!!!

once again, link to the download is in the URL

Reply to this comment    18 May 2005, 01:19 GMT


Re: Re: Re: Re: Re: 1.4 doesn't work for me either.(Same error)
Kirbykirby Account Info

Heh, oops.
Anyway, which link are you describing? The link in the tutorial points to java(dot)sun(dot)com.(done to prevent spammers.)

Reply to this comment    18 May 2005, 22:32 GMT


Re: Re: Re: Re: Re: Re: 1.4 doesn't work for me either.(Same error)
Kirbykirby Account Info

nvm, I know what you mean now.

Reply to this comment    18 May 2005, 22:46 GMT

Re: Antidisassemblage Programming Language
shkaboinka  Account Info
(Web Page)

I just want to note that there are macros for * / % operations and that there ARE string and character usage in Antidisassemblage, if the statement that these are lacking turned anybody off. PLUS, I just uploaded SquirrelBox 1.5, which is much better than the old versions of the compiler. SPREAD THE WORD!!

Reply to this comment    7 June 2007, 17:02 GMT
1  2  3  4  5  6  

You can change the number of comments per page in Account Preferences.

  Copyright © 1996-2012, the ticalc.org project. All rights reserved. | Contact Us | Disclaimer