Author Topic: Axe for Dummies (like me)  (Read 15609 times)

0 Members and 2 Guests are viewing this topic.

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Axe for Dummies (like me)
« on: February 28, 2010, 06:35:05 pm »
You can only see the word FastCopy so many times before you feel like a retard.

If anyone could put some of the commands in layman's terms...?
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Axe for Dummies (like me)
« Reply #1 on: February 28, 2010, 07:12:48 pm »
well lets see fast copy i believe is the command that updates the graph buffer(the screen b4 it gets updated) to the lcd (what we actually see)
so it basically just updates the screen



what else ???

also i am confused on teh whole L1 L2 L3 thing at the bottom of the commands page what are they exactly ??

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: Axe for Dummies (like me)
« Reply #2 on: February 28, 2010, 07:16:38 pm »
FastCopy is just a name of an assembly routine.  It has nothing to do with Axe Parser itself other than that Axe uses this routine (err.. it doesn't anymore, it used to).

The instruction set lists it in the documentation as:

DispGraph - Draws the buffer on the screen.

I think its a pretty straightforward command.  Do you have any questions in particular?  I haven't made an Axe tutorial yet and I don't think I will even get started until its more stable.  The best thing to do is look at the source code for the example programs and play around with it.

EDIT:
L1-L6 are just locations in RAM.  When you write {L1+4} you are saying "The byte that is 4 bytes after the location of L1" just like you would do L1(5) in basic.  It would be 5 instead of 4 in basic because you start counting at 1 instead of 0.
« Last Edit: February 28, 2010, 07:20:08 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Axe for Dummies (like me)
« Reply #3 on: February 28, 2010, 07:22:42 pm »
The new pointer function, in particular.
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Axe for Dummies (like me)
« Reply #4 on: February 28, 2010, 07:22:59 pm »
L1 is not a list in the traditional sense that we think of lists in Basic.  In Asm, memory is memory, there is no difference between pictures, sprites, and strings.  L1 is not a list, because Asm deals only with memory. L1 is a pointer. What that means is that in the calculator, there are places of memory that are unused, and that are free to be used my you, an axe programmer.  Each list pointer hold the location of these 'safe' places, and allows you to write and read to them.  For example L1 points to the locations know to asm programmers as 'SaveScreen'.  All we need to know is that its a 714 byte space of free memory to use :) It has essentially 714 element, each holding a single byte.  So to write to the first element, you would do:

:#->{L1}

because L1 represents the 1st element of the 'SaveScreen' chunk of memory.  To write to other locations in the PlotScreen, you would just add a number to the location.  Like to store to the 3rd, you would add 2 to L1.

:#->{L1+2}

EDIT: Ninja'ed :P

Does that make more sense?  The pointers readme in the documentation might help a bit if you are still confused.  And if I am wrong Quigibo, please inform me! ;D
« Last Edit: February 28, 2010, 07:43:08 pm by Builderboy »

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: Axe for Dummies (like me)
« Reply #5 on: February 28, 2010, 07:30:04 pm »
That's correct, but you started mixing up the words "SaveScreen" and "PlotsScreen".  L1 is "SaveScreen".

But like Builderboy said, you don't need to concern yourself with the names, just know that there's are about 700 bytes there you can use for reading and writing.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Axe for Dummies (like me)
« Reply #6 on: February 28, 2010, 07:35:21 pm »
ok that actually helps a lot XD

opne last small question for me then i think i get most of it we con only count up to 255 in 1 byte of space right  or what can we store in 1 byte of space as that is a bit confusing as well X.x

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: Axe for Dummies (like me)
« Reply #7 on: February 28, 2010, 07:52:34 pm »
Yeah, just one byte 0 to 255 (or -128 to +127 if you subtract 128 after reading the byte)

Lets say this were in base 10.  If I had a 4 digit number like 5827 but I can only fit 2 digits in a byte, then only the low order part, the "27", would be stored and the "58" would be ignored.  The 16-bit numbers that Axe uses can be broken into a 4 digit number in base 16, hexadecimal.  So in a number like 2A7C, only the "7C" would get stored into the byte.

It is possible to store a 16 bit number (0 to 65535) into 2 bytes using a routine like this:
:A/256->{L1}
:A^256->{L1+1}

And reading the 2 byte number could be like this:
:{L1}*256+{L1+1}->A
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Axe for Dummies (like me)
« Reply #8 on: February 28, 2010, 08:45:11 pm »
alright that helps alot ty quigbo and builderboy :)

actually one more question how would i say read the ans var in a program for say i wanted to make a subroutine for a basic game ??

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Axe for Dummies (like me)
« Reply #9 on: February 28, 2010, 08:52:22 pm »
alright that helps alot ty quigbo and builderboy :)

actually one more question how would i say read the ans var in a program for say i wanted to make a subroutine for a basic game ??
Code: [Select]
:Asm(EFD74AEFEF4AEBYou can then store to a variable.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Axe for Dummies (like me)
« Reply #10 on: February 28, 2010, 09:28:56 pm »
so i would put that in the program and it basically points to ans for me ??????????
« Last Edit: February 28, 2010, 09:30:47 pm by calc84maniac »

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Axe for Dummies (like me)
« Reply #11 on: February 28, 2010, 09:31:09 pm »
so i would put that in the program and it basically points to ans for me ??????????
It converts Ans to an integer (must be from 0-9999) and then you can do :->A to store it to A

And sorry, hit Modify on your post instead of quote :(
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline Geekboy1011

  • The Oneironaut
  • Donator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2031
  • Rating: +119/-2
  • Dream that Awakening dream
    • View Profile
Re: Axe for Dummies (like me)
« Reply #12 on: February 28, 2010, 09:33:49 pm »
lol thats ok

and ty that will help alot as i think i might use axe to help make a few simple and fast routines for crimson as it should be faster than doing it in basic
:)

Offline miotatsu

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 332
  • Rating: +11/-1
    • View Profile
Re: Axe for Dummies (like me)
« Reply #13 on: February 28, 2010, 09:40:56 pm »
could someone go in-depth on these things, such as:
:Asm(EFD74AEFEF4AEB <-what exactly is this asm routine doing? EDIT: was already answered while typing, skip this one :X

:A/256->{L1} <- is "A" 2 bytes in size? and why exactly are we doing these two things :{O
:A^256->{L1+1}
:{L1}*256+{L1+1}->A <- and what exactly are we doing here?
I have yet to try Axe, but i am curious of these things, and have been following it closely :X

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Axe for Dummies (like me)
« Reply #14 on: February 28, 2010, 09:43:52 pm »
Hmm, that's interesting.
How would you access lists/strings/matricies? And how hard would it be to return a variable to ans?
Also I was wondering, since L1-L6 are pointers in memory, does that mean you can access all areas of ram? But by entering different values to call different areas?
/e