Author Topic: Features Wishlist  (Read 689822 times)

0 Members and 8 Guests are viewing this topic.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Features Wishlist
« Reply #15 on: February 02, 2010, 11:50:05 pm »
I never got the send commands in Omnicalc. What's the use of sending a byte to another calculator? What does that bit does that is so much special? It was always cryptic to me, even after having read the manual.

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Features Wishlist
« Reply #16 on: February 02, 2010, 11:55:33 pm »
It was so that you could make multilayer games using the link cables.  You could send a byte (0-255) to the other calculator which would recieve it if it was in get() mode.  You could set up a system where the calculators would be sending bytes back and forth that represent things like keypresses or positions, and have a multiplayer game set up.  I made a couple of games using this as a test, but mostly Basic was just too slow to handle the stress of having to take into account an extra player.  I made a few simple things like two players could move around on a screen and shoot things at eachother, but nothing ever was finished.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Features Wishlist
« Reply #17 on: February 03, 2010, 02:10:21 am »
yeah but how did you check what's the content of the byte? I mean if you wanted to send a keypress? Did you just put the variable name inside the command or could you just send a number from 0-255 to like the receiving calc ans var?

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Features Wishlist
« Reply #18 on: February 03, 2010, 02:56:09 am »
Well the send( command took a number as an argument, which could be any real from 0 to 255.  The get() command would return either a value from 0-255 in ans, or -1 if nothing was being sent at the time. 

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Features Wishlist
« Reply #19 on: February 03, 2010, 03:04:02 am »
aaah ok, so i guess the -1 can be used to detect if the calcs are linked, right?

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Features Wishlist
« Reply #20 on: February 03, 2010, 03:16:45 am »
Yeah, and there was also a feature to have it wait indefinetaly for an incoming byte.  Once you get the calcs syncted up, it makes things a lot easier :)

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Features Wishlist
« Reply #21 on: February 03, 2010, 03:42:55 am »
Ah that's good. I guess in the future it could maybe be a good feature to add in Axe. I think dealing with linking in ASM is incredibly hard, though. Even ASM coders like Iambian or Calc84maniac have trouble with 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: Features Wishlist
« Reply #22 on: February 03, 2010, 05:05:07 am »
Linking is easy.  Syncing is hard.  Really, no matter what routine I write for linking, it is up to the programmer to write code that will properly synchronize the calculators.  Lets say you need to send some critical data from calc A to calc B.  You have to send the byte, but calc B might not be ready to receive a byte, so you have to keep sending until calc B sends a confirmation byte back to calc A. When time is critical, you have to be very cautious about how often the calcs check to see if there are incoming bytes.  It needs to be frequent enough so there aren't long delays between sending, but sparse enough to not slow down the program.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Features Wishlist
« Reply #23 on: February 03, 2010, 10:26:05 am »
Yeah, getting the calculators synced, and making them STAY synced with omnicalc was a real real pain.  I had a system that worked with omnicalc, but it made each program twice as slow because it spent half the time waiting for the other calculator x.x

Offline Galandros

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1140
  • Rating: +42/-10
    • View Profile
Re: Features Wishlist
« Reply #24 on: February 03, 2010, 12:18:20 pm »
Could interrupts be suited to the task?
Implementing interrupts in Axe would be phenomenal.
Hobbing in calculator projects.

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Features Wishlist
« Reply #25 on: February 03, 2010, 03:14:36 pm »
I actualy a command that I would like to see in the next release.  The ability to turn onblocl off.  It's a bit unhappy-making when you accidently get stuck in a loop durring testing and have to pull your bateries

Offline Silver Shadow

  • Beta Tester
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +27/-7
    • View Profile
Re: Features Wishlist
« Reply #26 on: February 03, 2010, 03:17:10 pm »
Its even more horrible on the NSpire: you can't take out the batteries. The calc auto-shuts down before you have the time to do it.
Former Coder of Tomorrow


Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Features Wishlist
« Reply #27 on: February 03, 2010, 03:55:11 pm »
Oh yeah on block off might be a good idea, back in the days I had a basic program where I used an ASM lib that disabled ON and a bug in a getkey loop caused the game exit functions to not work and I lost everything 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: Features Wishlist
« Reply #28 on: February 03, 2010, 04:35:31 pm »
I assume you all mean that when you press the on button, it breaks the program.  Unfortunately this is nearly impossible since you'd have to break out of an unknown amount of subroutines and the stack would not return the program to the home screen.  Now, I could implement something that saves the stack size and creates an interrupt for exiting when the on button is pressed, but it would take up probably around 200 extra bytes or so and be very complicated.

You will be able to poll the [on] key as a direct key input though, so you can always manually check if it needs to exit.

I have a feeling that if I do implement interrupts, it will be towards the end of the development.
___Axe_Parser___
Today the calculator, tomorrow the world!

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 #29 on: February 03, 2010, 04:47:16 pm »
You will be able to poll the [on] key as a direct key input though, so you can always manually check if it needs to exit.
You're not understanding the Why.  The use of Breaking a program allows the programer to exit the code from anywhere, not just where the code checks for it.  Could you have this in there as an option please?  The reason it helps is because basic programmers test on calc, vs using an emulator.  I think it's possible, as the TiOS does it.  Could you backup the Ram into xRam and then rewrite if the user presses On?  Mabey you could use the token ">Dec"  to serve as "Debug (On breaks) Mode On"?
Mostly people that program On calc want security. :)  In my opinion that is the worst thing about Asm, or any program that Blocks On.  Thanks! :D