Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - jo-thijs

Pages: [1] 2
1
The Axe Parser Project / Re: Assembly Programmers - Help Axe Optimize!
« on: October 31, 2013, 12:02:41 pm »
I found this in the Commands.inc file of axe1.2.2a:
p_IntNe:
   .db 8
   xor   a
   sbc   hl,de
   jr   z,$+5
   ld   hl,1

I can't find the purpose of xor a.

2
The Axe Parser Project / Re: Features Wishlist
« on: October 30, 2013, 05:48:42 pm »
I've just noticed the use of rp_Ans and rp_Byte in the Commands.inc file, it's brillant!
when I saw, it, a question arose however: what if it would be possible to find another start code
that is followed by a label, where axe will go to the label and copy the code that is there in the final code
and then return? could this free some space in axe, without slowing axe too much down?
an example would be:
p_ShiftLeftFast:         ;16982 cycles, 44 bytes
   .db __ShiftLeftFast_SubEnd-1-$
   ld   hl,plotSScreen+768
x_ShiftLeftFastEntry:
   ld   b,64
__ShiftLeftFast_Loop:
   dec   hl
   sla   (hl)
__ShiftLeftFast_SubEnd:
   .db copy_subfunc
   .dw _ShiftLeftFast_End
   .db 0,copy_subfunc
   .dw _ShiftLeftFast_End
   .db 6
   dec   hl
   rl   (hl)
   djnz   __ShiftLeftFast_Loop
   ret
__ShiftLeftFast_End:
   .db 15
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)

which would be 6 bytes smaller if I'm correct.
another example:
p_NEN2:
   .db 1
   inc   l
   .db copy_subfunc
   .dw p_NEN1
        .db 0

which would save 3 bytes.
another example:
p_NE2:
   .db 1
   dec   l
   .db copy_subfunc
   .dw p_NE1
   .db 0

which would save 4 bytes.
and so on.

this is probably just a crazy idea I got, but I wanted to post it anyway.

3
The Axe Parser Project / Re: Features Wishlist
« on: September 21, 2013, 03:00:33 pm »
Perhaps a command that draws a triangle with coordinates: (x1,y1),(x1,y2),(x2,y2)
And perhaps a command that creates a bit map of a random triangle,
which might be done by filling it completely and then erasing the edges by the previous proposed command.
I think this would be a great base for jobs like drawing skewed sprites (defined by 4 random points and a sprite).

4
The Axe Parser Project / Re: Features Wishlist
« on: August 02, 2013, 04:09:34 pm »
I think I've had a similar problem a while ago.
It happened to me when I wanted to download an OS on my calculator (TI84+ SE) with TI Connect.
It always kept failing and I couldn't get any OS on it.
eventually, I tried to do it through another pc (a 32-bit laptop instead of a 64-bit desktop, though that has nothing do with it I think) and then suddenly it did work.
So, I'd recommend trying to get the OS on your calculator through another pc, or by reinstalling the linking program you use and stuff like that, eventually I think it will work again.
also check the status of your cable and the usb port.

5
The Axe Parser Project / Re: Features Wishlist
« on: July 26, 2013, 05:18:16 pm »
also, i think I've found a smaller code for ee14 (if it isn't changed already).
now it takes 7 bytes, but it can be done with 6 bytes only too with as code:
xor a
add hl,hl
add hl,hl
ld h,a
rla
ld l,a

I thought I found a better way for ee15 too, but it seems the auto opts file was wrong about that.

6
The Axe Parser Project / Re: Features Wishlist
« on: July 26, 2013, 01:12:44 pm »
I don't know whatever this is possible, but I was thinking about an option where you can precompile a file, so that if it is called by another file that is being compiled, it compiles faster.
so you can precompile everything, except the level design part and then only recompile that for faster testing.

7
The Axe Parser Project / Re: Features Wishlist
« on: July 12, 2013, 12:24:14 pm »
Can the fill( function be auto opted when the byte it should fill with is a predetermined constant?
And can it be optimised even further if the size is less than 256?
I think it would look like this:
0<size<256:
bytesize: 7
ld b,*
ld(hl),*
inc hl
djnz -5

size>=256
bytesize: 15
xor a
ld bc,**
ld(hl),*
inc hl
djnz -5
ld b,255
dec c
cp c
jr z,-11

and I think the current code has a size of 18 bytes.
I don't know if the code I gave is as optimised as it can be (nor have I tested it yet), but it is smaller.

8
The Axe Parser Project / Re: Features Wishlist
« on: February 20, 2013, 04:25:38 pm »
3. Is likely Mathprints fault. It causes some wonky display issues when turned on. I'd wait for an official answer to be sure, but that's likely the case.
I know, but I just reported some specific issues with it.

1. I'm quite certain Axe already does this.
Nope, it doesn't, because I tested both methods for a couple of values and it returned a different size.

2. If you want to sign extend Aʳ just do sign{°A}.
If this takes only 4 bytes, I don't need that feature request anymore.
This seems good to me, I should really search more before asking such requests...

9
The Axe Parser Project / Re: Features Wishlist
« on: February 20, 2013, 03:53:11 pm »
I've got 3 more things to ask.
1. I think I've found an optimisation for comparing an expression with a constant, to check whatever it is bigger or equal to it, or whatever it is smaller. This should be a start of it:
≥≥B should be the same (but larger) as -B<(32768-B) where I use 2 times a minus simple to substract, not to invert, and where 32768-B is being calculated at compile time, since b is a constant.
now, since <<B is the opposite, it should be the same as -B≥(32768-B)
This comprimises a few bytes, however, check whatever this may indeed be done first.
2. I'd like a function that makes a signed 2 byte value out of a 1 byte signed value.
I know this can be easily done by, for example, the following structure:
→Ae0?A+65380→A
and then A holds the value, but I'd like a more compact version of it that can be written in 1 function and only costs 4 bytes of space.
The assembly would look like this:
ld a,l
add a,a
sbc a,a
ld h,a
This would be a feature I would use all the time, because I save a lot of data, like speed, in a single byte, but need to add it to a double byte value, the position
3. It seems that the Disp command doesn't work very well if you have MATHPRINT turned on.
When trying to draw a number, it draws it kind of diagonally and it only draws the first character of strings.
This is at least what I've made up out of some tests.

10
The Axe Parser Project / Re: Features Wishlist
« on: February 15, 2013, 08:27:58 am »
@Hayleia, I can't use rabbitsign on it, since I was trying to get the application from my calculator to my computer
using a static appvar to save space is a good idea, but I would like it more if my application isn't dependant on whatever some appvar exists and contains the right information.
@Matrefeytontias, I really want them to be in app form, it is the only convenient way to play my games for my friends.

Also, ignore the thing about my calculator don't want to transfer my game to my pc, some wierd things just happened on my calculator and after that it worked again after 2 tries.

11
The Axe Parser Project / Re: Features Wishlist
« on: February 13, 2013, 02:31:24 pm »
Oh, so that's what the multi page feature means? being able to make apps larger than 16kb with axe.
I don't really understand what the complications are that come with multiple pages,
I tried to search, but found few information about it.
I would love to have the multi page feature, since I'm working on a big project,
not knowing I can't exceed 16kb and I've almost reached the limits (about 15.5kb).
also, could it be that there comes problems if I try to upload big axe made applications to my pc through ti connect?
for some reason he wouldn't download it, no matter what I did, while everything else was being uploaded perfectly.
it always throws up the error: packet length not valid

12
The Axe Parser Project / Re: Features Wishlist
« on: February 12, 2013, 05:16:46 am »
so, that'd be an assembly version of this?
foo-bar?ee0?65535,1

EDIT:
about axe being thight on space, I understand that it can give problems for some people if axe would exceed the size of about 16kb,
but it wouldn't be a problem to me and I would find it a bit sad if axe couldn't expand only for that reason,
so would it be practically possible to add 2 axe versions in the zip file, a lite and a pro version of axe,
where one has a low size and the other has all kind of possible features?

13
The Axe Parser Project / Re: Bug Reports
« on: February 03, 2013, 03:45:43 pm »
then that'll be the problem, I didn't use an I/O port, but the USB.
I'll try out the effect when I use the other port (at least if I find a cable for that).
Thanks!

14
The Axe Parser Project / Re: Bug Reports
« on: February 03, 2013, 02:27:33 pm »
I've got 3 issues:
- at some random momments axe will throw up an invalid token error when trying to compile an app from which the source is in archive. I've done some tests, and I think that it keeps throwing that error if you don't change anything, but if you unarchive it, it works perfectly, but even unarchiving and rearchiving sometimes seems to solve the problem.
- for some reason my multiplayer game (with 2 calculators) can't make connections between 2 calculaters. I check whatever the other calculator is waiting, if so, start the game, else, start a loop where you keep checking whatever the other calculator has already started this game. Now, the loops just start at both calculators, which shouldn't appear. I didn't use the port variable, since I don't really understand what it does. I've tried to make connection between a TI84+ silver edition with the latest os (2.55) and a normal ti84+ with the same os, and I use the ports to the right.
- it seems that at the latest os, the input function has a slight difference when in MATHPRINT or in CLASSIC modus: in MATHPRINT, it doesn't clear the screen before execution, while it does in the other modus. this isn't an important issue though.

15
The Axe Parser Project / Re: Features Wishlist
« on: February 03, 2013, 02:11:23 pm »
I've got another 2 requests:
- making an option so that you can easily make screenshots of your game, I can't find any other way besides using emulators.
- the syntax +→ and -→ to add/substract an expression to/from a variable or position in memmory pointed to.

Pages: [1] 2