Omnimaga

Omnimaga => News => Topic started by: Hot_Dog on May 18, 2011, 10:51:18 pm

Title: Crabcake for Axe
Post by: Hot_Dog on May 18, 2011, 10:51:18 pm
You can now use Crabcake to turn Axe programs into ASM programs that will run at more than 8KB.  You will need to compile your Axe program under a shell such as Ion.

If you want only Crabcake for Axe, you can get it here:

http://www.omnimaga.org/index.php?action=dlattach;topic=7373.0;attach=7891


However, I made some important fixes to the original Crabcake, so you can get the whole kitten-kaboodle here:

http://www.omnimaga.org/index.php?action=downloads;sa=downfile&id=665

You are allowed to use this axiom for the axe contest.  However, it requires a lot of program space, so don't use it unless you know for sure that your ASM program will need more than 8KBs.
Title: Re: Crabcake for Axe
Post by: ralphdspam on May 18, 2011, 10:53:49 pm
Thanks, Hot_Dog.  This looks awesome!  :D
Title: Re: Crabcake for Axe
Post by: ztrumpet on May 18, 2011, 10:54:06 pm
That it ridiculously simple.  Wow.  Wonderful work, Hot Dog.  Well done. :)
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 18, 2011, 10:54:48 pm
That it ridiculously simple. 

Good to know. 8)
Title: Re: Crabcake for Axe
Post by: Stefan Bauwens on May 19, 2011, 02:41:00 am
Since I'm not a z80 programmer and I only read about axe and such stuff my knowledge might be not so brilliant. So forgive me if this question sounds stupid:
Why would you want to convert an axe program to asm?
Title: Re: Crabcake for Axe
Post by: Quigibo on May 19, 2011, 02:50:47 am
Compiled axe programs are already asm.  :)

Hot_Dog, why do you need the AxesOff?  Couldn't you do something similar to what I do with the app header where you call the main program as a subroutine.  Something like this:

Code: [Select]
AxesOn:
  #asm code here
  call mainprog
AxesOff:
  #asm code here
  ret
MainProg:

That way you only need one command at the beginning and the users could use ret just like they're used to.  I don't know how the source looks though, so maybe there is something preventing this I don't know about?  Anyway, nice job!

Title: Re: Crabcake for Axe
Post by: TIfanx1999 on May 19, 2011, 03:10:48 am
Very nice to see this out. =)
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 19, 2011, 10:29:54 am
Hot_Dog, why do you need the AxesOff?  Couldn't you do something similar to what I do with the app header where you call the main program as a subroutine.  Something like this:

Code: [Select]
AxesOn:
  #asm code here
  call mainprog
AxesOff:
  #asm code here
  ret
MainProg:

That way you only need one command at the beginning and the users could use ret just like they're used to.  I don't know how the source looks though, so maybe there is something preventing this I don't know about?  Anyway, nice job!



Because I didn't think about that.  It certainly would have saved me--and programmers--a lot of trouble.  I'll definitely have to fix that...

In the meantime, it works quite well, so I'll wait until after the contest and post an "update".  Every calculator programmer releases something better and easier after a time, so I don't see a reason to "rush" the update.
Title: Re: Crabcake for Axe
Post by: JustCause on May 19, 2011, 11:32:20 am
Holy crap. You are my hero. You are a GOD.
Title: Re: Crabcake for Axe
Post by: ikemike on May 19, 2011, 10:07:49 pm
I'm not sure exactly how relavent this is, but when I compile a game for a shell (which Crabcake requires, so this is somewhat relavent) it replaces the letters in the text with random garbage.
Title: Re: Crabcake for Axe
Post by: DJ Omnimaga on May 20, 2011, 12:03:49 am
Wow awesome! O.O

I hope I have time to provide a ZIP file of every allowed Axiom latest versions in the contest news soon.
Title: Re: Crabcake for Axe
Post by: Compynerd255 on May 20, 2011, 10:39:01 am
This is really great, Hot_Dog! I like how someone has finally set out to fix this.

However, when I tried it on my 83 Plus (OS 1.19), on Eitrix (9100 bytes with Crabcake, 8700 bytes without), the game crashed immediately when it started running, as if it had broken the fourth wall already. Could you please look into this?
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 20, 2011, 11:34:02 am
This is really great, Hot_Dog! I like how someone has finally set out to fix this.

However, when I tried it on my 83 Plus (OS 1.19), on Eitrix (9100 bytes with Crabcake, 8700 bytes without), the game crashed immediately when it started running, as if it had broken the fourth wall already. Could you please look into this?

I can definitely look into it.  I'm assuming that your game worked perfectly fine before you put crabcake on?  Also, can I see your source?
Title: Re: Crabcake for Axe
Post by: Aichi on May 21, 2011, 02:23:39 pm
Awesome tool, thanks. I just wonder how to use AxesOnr/Offr. Axe Parser says "Bad Symbol".
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 21, 2011, 03:32:03 pm
Awesome tool, thanks. I just wonder how tu use AxesOnr/Offr. Axe Parser says "Bad Symbol".

I think that's my fault.  I forgot to test that before the release :(

Title: Re: Crabcake for Axe
Post by: Compynerd255 on May 23, 2011, 10:31:31 am
This is really great, Hot_Dog! I like how someone has finally set out to fix this.

However, when I tried it on my 83 Plus (OS 1.19), on Eitrix (9100 bytes with Crabcake, 8700 bytes without), the game crashed immediately when it started running, as if it had broken the fourth wall already. Could you please look into this?

I can definitely look into it.  I'm assuming that your game worked perfectly fine before you put crabcake on?  Also, can I see your source?

Both the source and the executable are available for download on ticalc.org (http://www.ticalc.org/archives/files/fileinfo/436/43633.html). To integrate Crabcake, I added AxesOn after the Icon and Axiom lines (making it the first line of actual code), and, in my Quit code, I moved the existing prep code to the end, under a Lbl END:
Code: (Crabcake Axe) [Select]
...
Goto END
...
Lbl END
Fix 4
Archive Str9
AxesOff

I don't know, but I have the slight feeling that you did not do extensive testing on code that broke the 8811 byte limit, because the test program that came with Crabcake is a heck of a lot smaller than that.
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 23, 2011, 07:06:46 pm
Both the source and the executable are available for download on ticalc.org (http://www.ticalc.org/archives/files/fileinfo/436/43633.html). To integrate Crabcake, I added AxesOn after the Icon and Axiom lines (making it the first line of actual code), and, in my Quit code, I moved the existing prep code to the end, under a Lbl END:
Code: (Crabcake Axe) [Select]
...
Goto END
...
Lbl END
Fix 4
Archive Str9
AxesOff

I don't know, but I have the slight feeling that you did not do extensive testing on code that broke the 8811 byte limit, because the test program that came with Crabcake is a heck of a lot smaller than that.

If I find something that I did wrong, I'll fix it.  However, I swear that I did ALL my testing on code that broke the 8811 KB limit.
Title: Re: Crabcake for Axe
Post by: DJ Omnimaga on May 23, 2011, 08:09:03 pm
/me hopes the current version works at all x.x since any update would not be allowed in the contest at this point x.x
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 23, 2011, 09:12:53 pm
/me hopes the current version works at all x.x since any update would not be allowed in the contest at this point x.x

In that case, it won't be allowed.  I did find the bug that Compynerd255 was talking about, but as you're pointing out, the newest version is a day too late.
Title: Re: Crabcake for Axe
Post by: Builderboy on May 23, 2011, 09:19:15 pm
Yikes D: I hope this doesn't set back Sir from his entry, since he was basing his engine around being able to use it D:
Title: Re: Crabcake for Axe
Post by: yunhua98 on May 23, 2011, 09:21:40 pm
Yikes D: I hope this doesn't set back Sir from his entry, since he was basing his engine around being able to use it D:


good luck sir.

also, isn't Ashbad using crabcake too?
Title: Re: Crabcake for Axe
Post by: DJ Omnimaga on May 23, 2011, 09:23:46 pm
Darn this sucks. I guess maybe I could extend the date for this one, since it's like an Omni axiom, but then I fear people would beg so every other Axiom gains a deadline extension. :/
Title: Re: Crabcake for Axe
Post by: ztrumpet on May 23, 2011, 09:30:43 pm
I will not be using it, but I think it's only fair that it gets an extension so it may be used in the contest by whoever whould like to use it.
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 23, 2011, 09:43:39 pm
Not in my defense, but in defense of those who are using it:  There's only one small issue left to fix, and then it's perfect, so I and everyone else would be greatful for an extension.  The axiom was done, but it was those 2 accidental issues 3 days before the deadline that messed things up

Title: Re: Crabcake for Axe
Post by: TIfanx1999 on May 24, 2011, 05:30:27 am
I will not be using it, but I think it's only fair that it gets an extension so it may be used in the contest by whoever whould like to use it.
++
I'd have to agree with this. :)
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 24, 2011, 12:17:18 pm
Crabcake for Axe has been updated  http://www.omnimaga.org/index.php?action=dlattach;topic=7373.0;attach=7891

1. Fixed 83+ BE bug
2. AxesOn/Off with the r modifier work now

It will be up to DJ_O and the rest of the contest designers on the basis of this update being allowed for the Axe Contest
Title: Re: Crabcake for Axe
Post by: Aichi on May 24, 2011, 02:12:45 pm
Glad to hear that using r is possible now. :)
How will you be called in the Special Thanks? Is 'Hot_Dog' ok?
Title: Re: Crabcake for Axe
Post by: Hot_Dog on May 24, 2011, 03:15:26 pm
Glad to hear that using r is possible now. :)
How will you be called in the Special Thanks? Is 'Hot_Dog' ok?

"Hot_Dog" is perfect
Title: Re: Crabcake for Axe
Post by: DJ Omnimaga on May 24, 2011, 03:34:42 pm
"Credits: 'Hot_Dog' is perfect" or "Credits: 'Hot_Dog'"? O.O Narcissism, much? :P <_<
Title: Re: Crabcake for Axe
Post by: DJ Omnimaga on June 01, 2011, 03:21:21 pm
Btw I think you should update the file in the download section because it is still the old one.
Title: Re: Crabcake for Axe
Post by: Darl181 on June 08, 2011, 03:20:29 pm
Is it safe to use subroutines and/or subprograms with this?
Title: Re: Crabcake for Axe
Post by: ztrumpet on June 08, 2011, 03:22:36 pm
Is it safe to use subroutines and/or subprograms with this?
Yes, I believe so.  I can't think of a reason why it wouldn't work. :)
Good luck!
Title: Re: Crabcake for Axe
Post by: Hot_Dog on June 08, 2011, 03:35:09 pm
Btw I think you should update the file in the download section because it is still the old one.

I do indeed.

Is it safe to use subroutines and/or subprograms with this?

Yes.  However, subroutines and subprograms MUST return first
Title: Re: Crabcake for Axe
Post by: Darl181 on June 08, 2011, 07:01:15 pm
Is it safe to use subroutines and/or subprograms with this?
Yes.  However, subroutines and subprograms MUST return first
...so they end up in the main program in the end?  Makes sense, cool.
Title: Re: Crabcake for Axe
Post by: Hot_Dog on June 08, 2011, 07:49:00 pm
Is it safe to use subroutines and/or subprograms with this?
Yes.  However, subroutines and subprograms MUST return first
...so they end up in the main program in the end?  Makes sense, cool.

In fact, thanks for pointing that out.  I need to update that in the manuals.
Title: Re: Crabcake for Axe
Post by: Hayleia on August 05, 2011, 06:01:44 am
Maybe it is a noob question but I didn't very understand the limit question.
The 8KB limit is about code or code+data ?
Now, how much can we write of code and/or data ?
Title: Re: Crabcake for Axe
Post by: JosJuice on August 05, 2011, 06:05:31 am
Maybe it is a noob question but I didn't very understand the limit question.
The 8KB limit is about code or code+data ?
Now, how much can we write of code and/or data ?
The 8K limit is actually only about code, but old versions of Axe sometimes tried to put data before the 8K limit and code after the 8K limit, instead of placing the code before it and data after it.
Title: Re: Crabcake for Axe
Post by: Hayleia on August 05, 2011, 06:15:43 am
So I can have as much data as I want ?
And with CrabCake, how much code can I have (if not 8K) ?
Title: Re: Crabcake for Axe
Post by: TIfanx1999 on August 05, 2011, 07:32:13 am
Crabcake removes the limit entirely, so you could use the entire RAM if you liked.
Title: Re: Crabcake for Axe
Post by: Hot_Dog on August 05, 2011, 11:20:55 am
Indeed...I actually tested a program where the entire 19 KB program was code, not data, and it worked perfectly.
Title: Re: Crabcake for Axe
Post by: Hayleia on August 05, 2011, 12:44:23 pm
Ok (so I just have to make the game fit in the RAM)
Thank you !
/me goes to write a huge program
In fact, I was just wondering if I had to worry about optimization or if that could wait a bit ;D