Author Topic: Axiom SDK For Developers  (Read 12955 times)

0 Members and 1 Guest are viewing this topic.

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Axiom SDK For Developers
« on: June 27, 2010, 03:01:01 am »
This is for all assembly programmers who want to develop Axioms for Axe, you can post your questions, related bugs, and other concerns here.  Although I have not actually finished the Axiom feature, I have finished a template for the format I am most likely to use.  It is possible that there could be some very minor changes, but you will easily be able to compensate for those.  I just want to release this now so people can start writing their routines in preparation for this feature.

I included the SDK as well as an example Axiom that shows how some of the current functions could be written as Axioms.  Unfortunately, I realized that it will not be possible to redefine the token names as I was planning since the hook would take too long to search through the program to figure out which Axioms are used in that source and then search through those appvars every time a token is displayed in the editor.  The slowdowns would be too great especially for larger libraries.

Anyway, happy programming!
« Last Edit: June 27, 2010, 04:46:07 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Axiom SDK For Developers
« Reply #1 on: June 27, 2010, 03:04:22 am »
This shall be interesting. People, though, just need to remember that those are against the programming contest rules, though, so do not use them in your entry.

In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline Ikkerens

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 378
  • Rating: +28/-9
  • JavaScript Magician
    • View Profile
    • Walotech
Re: Axiom SDK For Developers
« Reply #2 on: June 27, 2010, 04:10:37 am »
This shall be interesting. People, though, just need to remember that those are against the programming contest rules, though, so do not use them in your entry.



What if Quigibo finishes this in a reasonable time?
And: Will it be able to be a data container?
For example all maps:
Code: [Select]
MyMap:
       .db $00,$45
       .db $01,$FF
« Last Edit: June 27, 2010, 04:14:00 am by Ikkerens »

Splut for Android [----------]
Paused/halted indefinitely, might be abandoned, our graphic designer quit and the rest of us simply doesn't have the time to work on it...

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axiom SDK For Developers
« Reply #3 on: June 27, 2010, 04:12:40 am »
No, this can't be used in the contest because this is assembly code which is against the rules.  These are not the Axe libraries, these are the assembly libraries.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Ikkerens

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 378
  • Rating: +28/-9
  • JavaScript Magician
    • View Profile
    • Walotech
Re: Axiom SDK For Developers
« Reply #4 on: June 27, 2010, 04:15:40 am »
No, this can't be used in the contest because this is assembly code which is against the rules.  These are not the Axe libraries, these are the assembly libraries.

What about data containers? (Edited my previous post)

Splut for Android [----------]
Paused/halted indefinitely, might be abandoned, our graphic designer quit and the rest of us simply doesn't have the time to work on it...

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Axiom SDK For Developers
« Reply #5 on: June 27, 2010, 04:31:47 am »
Yeah the contest is meant to push the Axe language to its limits without any usage of ASM, BASIC, Doors (well, except launching the game from the APP of course), BBC Basic or anything that isn't Axe. Inline ASM is disallowed too. Else that defeats the purpose and goal of the contest if people starts cheating by using ASM in their programs
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axiom SDK For Developers
« Reply #6 on: June 27, 2010, 04:45:55 am »
In addition, your idea doesn't make any sense.  How could you use an inline command to store data?  The regular methods for Axe data storage involves moving data to the end of the program and gives you a pointer but the assembly is inserted directly at the place you put it.  Its like saying you would rather use Asm(Data) to store your data instead of [Data] since both store hex values into the program.  The difference is that the first one executes the data and the later is just storage.  Although technically its possible to store data in Axioms, its much less efficient and requires difficult assembly to make it usable as data.  Such assembly would be against the rules anyway.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Re: Axiom SDK For Developers
« Reply #7 on: June 27, 2010, 11:37:12 am »
i'm not sure if this would be the right place to ask, but could someone make an axiom to store string data into a BASIC string var?


Offline Galandros

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1140
  • Rating: +42/-10
    • View Profile
Re: Axiom SDK For Developers
« Reply #8 on: June 27, 2010, 02:01:49 pm »
Excellent idea Quigibo. This will make possible endless addons to Axe Parser.

I read the Axiom should be an appvar. You just compile as a program and convert it to program on calc. CelticIII can be a solution.
But with an hex editor is as simple as editing the variable type byte to an appvar? Curious to know and for me is easier than installing CelticIII and learn the command usage.
Hobbing in calculator projects.

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axiom SDK For Developers
« Reply #9 on: June 27, 2010, 04:37:36 pm »
Yes, turning it into an appvar is as simple as changing the program type byte from $05 to $15 and renaming the file with the extension .8xv instead of .8xp

EDIT: I'd also like to make a correction to one part of the SDK, I think I uploaded the wrong version.  I am going to upload the correct version.  The initial routine section should read:

Code: [Select]
;On the other hand, if this is a subroutine with 1 or 0 arguments then this
;part of the Axiom must be ignored since there is no popping needed.
« Last Edit: June 27, 2010, 04:45:01 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Axiom SDK For Developers
« Reply #10 on: June 27, 2010, 09:00:00 pm »
A bit lost here: What is Axiom going to be? Is it a library for the Axe language or for ASM itself, and how would it be used? Sorry, I couldn't find any page describing it.




Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Axiom SDK For Developers
« Reply #11 on: June 27, 2010, 11:14:28 pm »
Yes, turning it into an appvar is as simple as changing the program type byte from $05 to $15 and renaming the file with the extension .8xv instead of .8xp
Thanks for that tip. Can the former be easily done through CalcSys?
« Last Edit: June 27, 2010, 11:14:43 pm by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2898
  • Rating: +467/-17
    • View Profile
    • TI-Boy CE
Re: Axiom SDK For Developers
« Reply #12 on: June 27, 2010, 11:44:18 pm »
Yes, turning it into an appvar is as simple as changing the program type byte from $05 to $15 and renaming the file with the extension .8xv instead of .8xp
Thanks for that tip. Can the former be easily done through CalcSys?
Yeah, you have to find the program in the VAT (press 6,1,1 from the main menu iirc). Select its entry and press Alpha+V. The hex editor should then be pointing directly at the byte to change
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55865
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Axiom SDK For Developers
« Reply #13 on: June 27, 2010, 11:52:54 pm »
Aaah ok, thanks for the info :)
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline Galandros

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1140
  • Rating: +42/-10
    • View Profile
Re: Axiom SDK For Developers
« Reply #14 on: June 28, 2010, 05:09:10 am »
A bit lost here: What is Axiom going to be? Is it a library for the Axe language or for ASM itself, and how would it be used? Sorry, I couldn't find any page describing it.
It is a library for Axe Parser in assembly. In the Axiom you define what token will make use of an assembly routine coded into the appvar.
In the source code (Axe Parser) you use the token you assigned to a certain routine (tilemapper, math...) just like another command.
In the compiled program the assembly routine is included.

With this you don't need to make inline assembly because it is actually an addin into the Axe Parser compiler.
It has the advantage over inline assembly for readability and any casual coder won't notice he is using an assembly library, he just sent an appvar into his calc, read the documentation and uses it. Still breaks the rules to the contest because it would allow cheating with hand written assembly, but maybe in the future some contests will allow certain Axioms. (Axe Parser with Axioms)

Quigibo, you really know how to give cool names. (Axioms and Axe Hax) :P Where did the Axioms came from? It sounds a bit like Axe.
« Last Edit: June 28, 2010, 05:10:48 am by Galandros »
Hobbing in calculator projects.