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.
|
|
Re: Antidisassemblage Programming Language
|
Ben Phillips
|
Rather than judge the language on its preliminary release how about we wait until its major bugs are fixed?
C sucked too when it was first released because the compilers were slow and had poor optimizations. Now look where C (and C++) are today. The compilers are very efficient and produce good code. Give the maker of this language a break.
|
Reply to this comment
|
2 May 2005, 21:21 GMT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Re: Re: Re: Re: Re: Re: Re: Antidisassemblage Programming Language
|
kllr nohj
|
Not at all, but in early stages, i think is a good idea to stay close to the recommended.
I used the compiler on the website, i used the .jar executable, not the applet version, and i added .disp() before and after "a = a + b;" so that i would know wheather or not it was executing right (i do not know any assembly, so far i have only programmed in ti-basic). That was the only change to the code, and then i used TASM to compile, and ti-connect to send it to my 84+SE, and it ran just fine, and did exactly what it was supposed to do. I do not know why it doesn't work for you, but it works just fine for me, that is all i know.
I am not apart of the developement team, i merely saw it posted on the front page, so i checked it out. I do not have "behind the scenes" access to a newer version, nor did i change the source code.
|
Reply to this comment
|
8 May 2005, 02:56 GMT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Re: Re: Re: Re: Re: Re: Re: Re: Antidisassemblage Programming Language
|
Gergely Patai
(Web Page)
|
I see, it means you added 0 to 0, and the result was 0, right? Try this then with the necessary disps added:
word a, b;
void main() { a = -1000; b = 2000; a = a + b; a = 20 + b; }
TASM has the tendency of simply ignoring invalid instructions and assembling anyway--a bad habit--, but it should give a warning ('unrecognised argument' or something). It is okay if you don't know asm, but you could still read the output of the assembler. Anyway, if you don't understand the code, why are you telling me it's flawless?
Also, just for your information, even code copied right from the tutorial doesn't compile, not even by SquirrelBox's standards.
|
Reply to this comment
|
8 May 2005, 06:18 GMT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Antidisassemblage Programming Language
|
kllr nohj
|
this code:
#include "ti83plus.ads"
#include "text.ads"
word a, b;
void main() {
.ClrHome();
.HomeUp();
a = 1000;
.Disp(a,1,1);
b = 2000;
.Disp(b,2,1);
a = a + b;
.Disp(a,3,1);
a = 20 + b;
.Disp(a,4,1);
}
Generated this ASM:
.nolist
#include "ti83plus.inc"
.list
.org userMem-2
.db t2ByteTok,tAsmCmp
func_main:
B_CALL(_ClrScrnFull)
B_CALL(_HomeUp)
LD HL,1000
LD (global_a),HL
LD A,1
LD (CurRow),A
LD A,1
LD (CurCol),A
LD HL,(global_a)
B_CALL(_DispHL)
LD HL,2000
LD (global_b),HL
LD A,2
LD (CurRow),A
LD A,1
LD (CurCol),A
LD HL,(global_b)
B_CALL(_DispHL)
LD HL,(global_a)
ADD HL,(global_b)
LD (global_a),HL
LD A,3
LD (CurRow),A
LD A,1
LD (CurCol),A
LD HL,(global_a)
B_CALL(_DispHL)
LD A,20
ADD A,(global_b)
LD (global_a),A
LD A,4
LD (CurRow),A
LD A,1
LD (CurCol),A
LD HL,(global_a)
B_CALL(_DispHL)
RET
global_a: ; word a
.DB 0,0
global_b: ; word b
.DB 0,0
.END
.END
Which errors out in TASM, don't know why
line 0027: unrecognized argument (HL,(global_b))
line 0036: Unused data in MS byte of argument. (9d)
|
Reply to this comment
|
8 May 2005, 18:39 GMT
|
|
Other Options
|
coinmanz
(Web Page)
|
Well, this seems to interest people.. I'm only disappointed QASM had no fan base. I can't get squirrelbox to work and am not sure if we can include asm code withinj the C-style sources... Back to my QASM rant - see link - it was limited, yes, and had a strict syntax, but was otherwise flawless and very useful for newbs. Of main importance: it was easy to expand with macros and supported asm code within sources -> all for personal optimization :-) I'll have to learn this new one long enough to get frustrated, then resort back to pure z80. These "high level" asm languages are NO MORE THAN A STEPPING STONE to the true beauty of pure bit-by-bit coding. BTW: few projects sadly ever seem to go past v1.5, even by the best authors. Good luck to Dan Cook :-)
|
Reply to this comment
|
6 May 2005, 03:38 GMT
|
|
Re: Antidisassemblage Programming Language
|
kllr nohj
|
just so ya'll know, 1.2 is now out...(1.1 came out yesterday, 1.2 came out today to address a few minor bugs that poped up)...
its still just OK, but looking better
|
Reply to this comment
|
12 May 2005, 23:53 GMT
|
|
Re: Antidisassemblage Programming Language
|
kllr nohj
|
I STRONGLY urge everyone to try this out again. A vast majority of the bugs have been fixed, and it is functioning just fine now. One of the bugs came from the .Disp macro, so it has been split into 2 seperate ones now, DispWord and DispByte (same syntax as before).
This code that i posted that didn't work:
#include "ti83plus.ads"
#include "text.ads"
word a, b;
void main() {
.ClrHome();
.HomeUp();
a = 1000;
.DispWord(a,1,1);
b = 2000;
.DispWord(b,2,1);
a = a + b;
.DispWord(a,3,1);
a = 20 + b;
.DispWord(a,4,1);
}
now compiles and runs just fine (no TASM errors either)...
|
Reply to this comment
|
13 May 2005, 17:18 GMT
|
|
1 2 3 4 5 6
You can change the number of comments per page in Account Preferences.
|