Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: AngelFish on January 24, 2011, 01:57:37 am

Title: Antenora
Post by: AngelFish on January 24, 2011, 01:57:37 am
Are you an expert at Intercal?
Do you think Malbolge is for wimps?
Can you program Brainf*ck in your sleep?
Do you not value your sanity?

If you answered yes to any of these questions, congratulations, you are officially insane. You're also a perfect candidate for Antenora. Antenora is a language designed specifically to fix the flaws found in Malbolge that allowed the creation of the famous Hello World program by Andrew Cooke. It attempts to tread the thin line between allowing programs to theoretically be written and being impossible to use, all while making actual programs no more than a pipe dream.

Here is the first language specification that I am currently implementing:

Programs will be run by a very simple process. First, programs must be written in base 5i (that is the imaginary number i, not a variable) and will be converted at load time to quinary. Then, the interpreter will divide the converted source into multiple sections of 160 bits and encrypt each of them using a SHA-1 cryptographic hash. The encrypted data will then be treated as executable code and executed by the interpreter.

Antenora is heavily based on Malbolge and thus has a very similar design. One aspect carried over from Malbolge are the three registers, renamed to A, B, and P. A and B are general purpose registers which can contain any data recognized by the interpreter. The third register, P, is a pointer register and points to the location of the current instruction as well as the current cell in the data array. Unlike in the normal variant of Malbolge, P also has no official limitation on size, although it will due to physical constraints for this implementation. The data array itself is an array of equal size as the program and each cell has a corresponding instruction associated with it.

Any Malbolge programmer should become quickly acquainted with the instruction set, which includes ten instructions:

{ : sets B equal to A
] : Sets the value of the cell currently pointed to by P equal to the quinwise addition of registers A and B.
∫ : Sets P to the value of the cell pointed to by the current value of P. In other words, an absolute jump.
¿ : Sets P to the value of the cell pointed to by the value of the cell currently pointed to. A jump using indirect addressing.
@ : Sets the value of A equal to the value of the current cell pointed to by P.
△ : Stores the value of the next instruction in the cell currently pointed to by P and increments P by 2.
↑ : Sets the value of the instruction currently pointed to by P to the value of the cell currently pointed to by P.
► : Performs a "schizophrenic" operation. Takes the operation of the instruction pointed to by the cell currently pointed to by P, then changes the value of the cell to the location of the original instruction in another array.
⇒ : Reads the value of the current cell in the array and ouputs it into the screen at the location pointed to by the contents of A (Y) and B (x).
° : Rotates the value of the cell right Quinwise a number of times equal to the value of the cell pointed to by P+1, then jumps to the location pointed to by the value of the cell pointed to by P+1, treating the instruction P+1 as a ∫ operation.

Keep in mind that all Antenora operations are done in Quinary and that any invalid instruction will immediately result in a RAM clear or otherwise crash. The only way to end a program is to reach its last instruction, which will exit provided that the instruction is not a jump instruction.

Let me know if anyone thinks I should add anything or if they see any security flaws in Antenora.

It is truly evil  >:D
Title: Re: Antenora
Post by: DJ Omnimaga on January 24, 2011, 02:04:03 am
After seeing Malbolge, I doubt I'll understand that stuff. X.x Sorry D:

Will you post example programs and the TI-BASIC/Axe/z80 equivalent?
Title: Re: Antenora
Post by: z80man on January 24, 2011, 02:04:15 am
Ah a language so complex, obfuscated and evil it will make even malbolge look like basic. It would surely bring death to anyone who dared to code in its unforgiving syntax :evillaugh:
Title: Re: Antenora
Post by: AngelFish on January 24, 2011, 02:04:58 am
Example programs  :o

I think I'll let everyone else figure it out  >:D
Title: Re: Antenora
Post by: z80man on January 24, 2011, 02:08:10 am
At least you won't have to worry about anyone stealing your source code.
Title: Re: Antenora
Post by: AngelFish on January 24, 2011, 02:09:25 am
If they've even heard of base 5i, let alone be fluent in it, they can take have the source.
Title: Re: Antenora
Post by: DJ Omnimaga on January 24, 2011, 02:39:00 am
Example programs  :o

I think I'll let everyone else figure it out  >:D
Mk, then D:
Title: Re: Antenora
Post by: AngelFish on January 24, 2011, 01:51:50 pm
Just for future reference, it's pronounced An-tora, not Ant-nora or Ante-nora. I figured that I may as well screw with English while I was at it  ;D
Title: Re: Antenora
Post by: Michael_Lee on January 24, 2011, 03:01:20 pm
/me edges slowly away from the madness, and is curious how you can have bases that are not whole, positive integers greater then 1
Title: Re: Antenora
Post by: Ashbad on January 24, 2011, 03:05:36 pm
/me thinks it looks fun
Title: Re: Antenora
Post by: AngelFish on January 24, 2011, 03:19:36 pm
/me edges slowly away from the madness, and is curious how you can have bases that are not whole, positive integers greater then 1
/me straps Michael down to the table to prevent him from getting away

It's actually quite simple and elegant. Take a number such as 123 in base 10. That's the same as (((1*10^2)+2*10^1)+3*10^0), right? Well, you can replace the 10 by the base of your choice. In base 5i, 123 would thus mean -22+10i. As it turns out, there's a regular repeating pattern with the higher powers of complex bases which make it easy to represent any real number without sign digits.
Title: Re: Antenora
Post by: jnesselr on January 24, 2011, 07:03:46 pm
I'm curious as to how you even tested this.
Title: Re: Antenora
Post by: Binder News on January 24, 2011, 11:23:52 pm
So am I. It still looks fun though!
Title: Re: Antenora
Post by: AngelFish on January 25, 2011, 12:51:08 am
I'm curious as to how you even tested this.

The instructions?

Well, it involves tapeworms in mazes...
Title: Re: Antenora
Post by: z80man on January 25, 2011, 01:49:05 am
So are you trying to make some sort of interpreter for antenora. If so is this a comp or calc project?
Title: Re: Antenora
Post by: AngelFish on January 25, 2011, 01:50:19 am
Yes, it will be an on-calc interpreter.
Title: Re: Antenora
Post by: z80man on January 25, 2011, 01:57:52 am
Hmm anyone that mskes a HELLO WORLD program in this will forever have my respect. Anyone that makes an antenora game will be a [there is no word in the English language that could fill this void] to me.  O.O
Title: Re: Antenora
Post by: AngelFish on January 25, 2011, 01:59:58 am
Writing anything that didn't crash could probably be put on your resume  >:D

Believe it or not, I actually toned down the language to make it a bit easier.

I can imagine it: Antenora programmer, God among Malbolge programmers.
Title: Re: Antenora
Post by: z80man on January 25, 2011, 02:07:45 am
Wasn't the first malbolge program ever, made by a supercomputer or something like that.
Title: Re: Antenora
Post by: AngelFish on January 25, 2011, 02:10:03 am
It was solved by applying pretty intensive cryptographic methods to crack the encryption table. Antenora uses an even more difficult initial encryption which is still barely cracked. That's just to load the program. The actual program itself is still as difficult as Malbolge.
Title: Re: Antenora
Post by: AngelFish on April 04, 2011, 11:20:05 pm
Dead.
Title: Re: Antenora
Post by: DJ Omnimaga on April 04, 2011, 11:21:49 pm
This sucks, you aren't killing all your projects, aren't you? :/