Author Topic: Features Wishlist  (Read 611719 times)

0 Members and 3 Guests 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
Re: Features Wishlist
« Reply #1845 on: February 03, 2011, 01:48:14 pm »
That would use the symbol table which is already limited by 153 entries for labels and static pointers.  If I add named constants, those would have to share that same space and also be limited to 3 characters long.  It would be nice though, I'll think about it.

By the way, a lot of people mentioned switch statements.  I tried before but I couldn't get much optimization.  But just now I remembered a better method for switch statements that was right under my nose the entire time: the same strategy I use already in the parser!  Each check would only take 4 bytes plus 8 bytes for initialization.  The format would be like this:

A->Switch(0,ZER,1,ONE,10,TEN,1000,THO)

Which checks A.  If A is 0 it jumps to ZER, if its 1, it jumps to ONE, etc.  And if its none of them, it continues.  This allows me to create a vector jump table for super space efficiency.  But, there is quite a lot of overhead, so this would be really only useful if you use it a lot.

Code: [Select]
ld   hl,(axv_A)
 ld   de,JT1
 ld   a,4
call JumpTable

JT1:
.dw 0,ZER
.dw 5,FIV
.dw 10,TEN
.dw 1000,THO

JumpTable:
 ld   b,h
 ld   c,l
 ex   de,hl
loop:
 ld   e,(hl)
 inc  hl
 ld   d,(hl)
 inc  hl
 ex   de,hl
 or   a
 sbc  hl,bc
 ex   de,hl
 ld   e,(hl)
 inc  hl
 ld   d,(hl)
 jr   z,done
 inc  hl
 dec  a
 jr   nz,loop
 ret
done:
 pop  hl
 ex   de,hl
 jp   (hl)
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Features Wishlist
« Reply #1846 on: February 03, 2011, 05:08:22 pm »
Sounds like a neat idea :)

I made some optimizations, by the way:
Code: [Select]
ld   hl,(axv_A)
 ld   de,JT1
 ld   b,4
call JumpTable

JT1:
.dw 0,ZER
.dw 5,FIV
.dw 10,TEN
.dw 1000,THO

JumpTable:
loop:
 ld   a,(de)
 cp   l
 inc  de
 jr nz,skip
 ld   a,(de)
 cp   h
skip:
 inc  de
 ld   a,(de)
 inc  de
 jr   z,done
 inc  de
 djnz loop
 ret
done:
 pop  hl
 ld   l,a
 ld   a,(de)
 ld   h,a
 jp   (hl)
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: Features Wishlist
« Reply #1847 on: February 03, 2011, 06:27:18 pm »
Sounds awesome!  I can't wait for switches. ;D

I second the request for the #define command. :)

Offline Calcaholic

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 13
  • Rating: +2/-0
    • View Profile
Re: Features Wishlist
« Reply #1848 on: February 03, 2011, 06:56:52 pm »
I just want to add two very simple proposals hoping that they aren't mentioned yet.

First that the Axe-specific entries in the catalog are implemented in the alphabetical order, so that tey're more easy to find.
And second a option to compile a progam directly using a menu entry for example in the program menu.


By the way I want to enunciate my very thanks for the Axe Parser. I wish having known it before.

Offline Binder News

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 785
  • Rating: +46/-3
  • Zombie of Tomorrow
    • View Profile
Re: Features Wishlist
« Reply #1849 on: February 03, 2011, 07:13:55 pm »
First that the Axe-specific entries in the catalog are implemented in the alphabetical order, so that tey're more easy to find.

I don't remember where, but I think someone asked for this before (I think it was somewhere in this thread). Quigibo said that it would actually be kinda hard. But I might be mistaken.

Second, that's actually a cool idea. But I'm not sure how easy that would be with hooks.
* Binder News looks for a list of hooks to see if there is one for when something is selected in a menu
I know there is a parser hook, but I'm not sure what else there is.

Third, welcome to Omnimaga! You should introduce yourself in our introductions place/sub-forum/thing.
« Last Edit: February 03, 2011, 07:15:18 pm by Binder News »
Spoiler For userbars:







Hacker-in-training!   Z80 Assembly Programmer     Axe Programmer
C++ H4X0R             Java Coder                           I <3 Python!

Perdidisti ludum     Cerebrum non habes

"We are humans first, no matter what."
"Fame is a vapor, popularity an accident, and riches take wings. Only one thing endures, and that is character."
Spoiler For Test Results:





Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Features Wishlist
« Reply #1850 on: February 03, 2011, 07:23:34 pm »
He did already lol. And IIRC, changing the catalog would be pretty hard. Also, I second the request to have the last-compile program at the top of the screen :)

Ashbad

  • Guest
Re: Features Wishlist
« Reply #1851 on: February 03, 2011, 07:26:16 pm »
maybe a possible Lite-Axe program that compiles very simple programs on the fly O.o

Actually, that would be cool.  Kinda like how Dr. Java is a lite version of the real Java compiler.  Though, maybe someone besides quigibo should make this, he's already busy with normal axe :P

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Features Wishlist
« Reply #1852 on: February 03, 2011, 11:02:33 pm »
First that the Axe-specific entries in the catalog are implemented in the alphabetical order, so that tey're more easy to find.

I don't remember where, but I think someone asked for this before (I think it was somewhere in this thread). Quigibo said that it would actually be kinda hard. But I might be mistaken.

Yeah that was me, because it might be hard to find some such as Rect, for example. However he said it would be hard. I don't remember why but I suspect it would require an entire new page that contains the order of every single command, like the language localization apps.

Offline Compynerd255

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 336
  • Rating: +53/-4
  • Betafreak Games
    • View Profile
    • Betafreak Games
Re: Features Wishlist
« Reply #1853 on: February 04, 2011, 10:20:21 am »
I think that the switch idea as it shows sounds really cool. If you are concerned about overhead for a lot of these commands, start eating into saveSScreen or appBackupSScreen if you aren't already. You could even create an Appvar buffer if needs be.

Quigibo doesn't have to do this, but I think it would be cool if someone made an app kind of like TI 83 Plus Catalog Help, except with Axe commands instead of TI-Basic. (As a review, this program installs a keyhook to the (+) key that brings up the command syntax for that command highlighted in the Catalog or function menus, and then lets you edit it in the top line and paste it back in the previous location). This would help people code using commands they don't usually use.
« Last Edit: February 04, 2011, 10:22:19 am by Compynerd255 »
The Slime: On Hold, preparing to add dynamic tiles

Axe Eitrix: DONE

Betafreak Games: Fun filled games for XBox and PC. Check it out at http://www.betafreak.com



Offline Munchor

  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6199
  • Rating: +295/-121
  • Code Recycler
    • View Profile
Re: Features Wishlist
« Reply #1854 on: February 04, 2011, 10:21:40 am »
Sounds awesome!  I can't wait for switches. ;D

I second the request for the #define command. :)

What would it do?

Offline jnesselr

  • King Graphmastur
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2270
  • Rating: +81/-20
  • TAO == epic
    • View Profile
Re: Features Wishlist
« Reply #1855 on: February 04, 2011, 10:25:22 am »
Sounds awesome!  I can't wait for switches. ;D

I second the request for the #define command. :)

What would it do?
Defines stuff.  No, seriously, it just defines stuff as existing.  It's a strange command, to me.  It has some interesting uses, though.

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: Features Wishlist
« Reply #1856 on: February 04, 2011, 10:30:45 am »
Like if you didn't want to remember a number like E848E, you could #define a name for it.




Ashbad

  • Guest
Re: Features Wishlist
« Reply #1857 on: February 04, 2011, 01:46:31 pm »
Like if you didn't want to remember a number like E848E, you could #define a name for it.

Like #Define($848E, SAUSAGE), so that SAUSAGE = $848E

Offline Munchor

  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6199
  • Rating: +295/-121
  • Code Recycler
    • View Profile
Re: Features Wishlist
« Reply #1858 on: February 04, 2011, 02:09:36 pm »
Like if you didn't want to remember a number like E848E, you could #define a name for it.

Like #Define($848E, SAUSAGE), so that SAUSAGE = $848E

The register $848E..... I see, then we'd have more control over our programs, I like it ;D

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: Features Wishlist
« Reply #1859 on: February 04, 2011, 02:31:23 pm »
I got a random idea this morning--4*4 sprites.  Instead of it always having to be 8*8 and doing, say, [F09090F000000000], something like [F99F] would be just a square, and only a square.
Vy'o'us pleorsdti thl'e gjaemue