Author Topic: Features Wishlist  (Read 690383 times)

0 Members and 6 Guests are viewing this topic.

Offline Silver Shadow

  • Beta Tester
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +27/-7
    • View Profile
Re: Features Wishlist
« Reply #180 on: March 02, 2010, 03:44:57 pm »
You absolutely need to add 15 MHz mode!
Compatibility isn't really a problem, if somebody really needs to make it work on the 8 MHz one,he could have 2 versions or a frame skip option...
« Last Edit: March 02, 2010, 03:47:21 pm by Silver Shadow »
Former Coder of Tomorrow


Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Features Wishlist
« Reply #181 on: March 02, 2010, 04:26:23 pm »
that could work
you could use the compiler commands I suggested for that so that it will compile the correct version on calc :)
/e

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 #182 on: March 02, 2010, 04:38:29 pm »
By the way, I added a 15MHz mode in the next version and its incredible!  Why didn't I know about this when making pyoro?  I could've had 8 level grayscale or something!  But the downside is that if you use this mode, your games will run 3 times slower with an 83+ than with the other calculators so compatibility becomes an issue.
Can we chose to have 6mhz if we want?  This would allow games to run the same, when speed is not an issue.

Could we do something like
.6MHZ
and
.15MHZ
to control the speed at the beginning?

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 #183 on: March 02, 2010, 04:52:31 pm »
I've already added it, this is how it works.  You will use the command "Full" found in the modes page and it stands for full speed mode.  However, the command also returns a value.  It will be false (zero) if the calculator does not support 15MHz and true (non-zero) if it does.  So if you had a game you only wanted to be able to run on 15MHz calcs, you can do this:

:!If Full
:Return
:End

That would quit the game if the Full command failed.  If you don't care about the type of calc, then you just use it normally like this:

:Full

The command "Normal" returns to regular speed and doesn't return a value since it can never fail.
___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 #184 on: March 02, 2010, 04:53:52 pm »
I've already added it, this is how it works.  You will use the command "Full" found in the modes page and it stands for full speed mode.  However, the command also returns a value.  It will be false (zero) if the calculator does not support 15MHz and true (non-zero) if it does.  So if you had a game you only wanted to be able to run on 15MHz calcs, you can do this:

:!If Full
:Return
:End

That would quit the game if the Full command failed.  If you don't care about the type of calc, then you just use it normally like this:

:Full

The command "Normal" returns to regular speed and doesn't return a value since it can never fail.
Awesome!
I can't wait for 0.0.7... ;D

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Features Wishlist
« Reply #185 on: March 02, 2010, 05:20:14 pm »
ah cool
well this does work, but it doesn't allow for what I had in mind. I was thinking something like this:
Code: [Select]
!If full
-code1-
Else
-code2-
End
would compile to -code1- on a 15MHZ calc and -code2- on a 6MHZ calc. This would allow for using different versions of code to allow for speed differences.
/e

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 #186 on: March 02, 2010, 05:26:33 pm »
I think the above way you just wrote is better.  Having a different program for each type of calculator is more annoying in my opinion than a single, insignificantly larger program that works for every calculator.  I might add a command that returns the exact type of calculator and operating system version, not just 15MHz support.
« Last Edit: March 02, 2010, 05:27:35 pm by Quigibo »
___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 #187 on: March 02, 2010, 06:32:22 pm »
I think the above way you just wrote is better.  Having a different program for each type of calculator is more annoying in my opinion than a single, insignificantly larger program that works for every calculator.  I might add a command that returns the exact type of calculator and operating system version, not just 15MHz support.
Cool.  I think there should be compiler directives.  Maybe something like a "CIf" statement:
CIf OS=2.53
code here compiled if OS=2.53
Else
other code here compiled if OS!=2.53
End

Would this work?

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Features Wishlist
« Reply #188 on: March 02, 2010, 06:39:37 pm »
That's kind of what I had in mind. We could use .If .Else .End and such fir that. How about also adding variables that the compiler uses? Like .VER would return te version of the device that it was compiled on? That would make some more nice little modifications to code possible. Also a Date one would work too so it would tell you what date it was compiled on (of course that would be 15MHZ only). 

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 #189 on: March 02, 2010, 07:16:31 pm »
Could there be a command to swap the buffers instead of just copying them?  That way one wouldnt have to be destroyed in the process.

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Features Wishlist
« Reply #190 on: March 02, 2010, 07:20:04 pm »
I was also wondering if you could add a third back-buffer, or have a buffer in the program (so like have a blank splash screen in the program that we can edit/read :D, although you would have to put checks in place so we don't accidentally corrupt the program with overflow from it)
/e

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 #191 on: March 02, 2010, 08:12:48 pm »
Hmm yeah, maybe instead of having plotSScreen always be the draw area, add a command to set a different buffer to draw to. You would only need to change immediate loads of plotSScreen to loads from a variable in memory. Heck, maybe you could use Theta for this purpose, and have it be accessible like a normal variable.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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 #192 on: March 02, 2010, 10:11:40 pm »
That would be very useful as well.  This made me thinking, since the LCD isn't memory mapped (right? D:) swapping buffers would be as simple as changing a pointer in the safeCopy routine right?  Or do I not know what I am talking about? ;D

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 #193 on: March 02, 2010, 10:26:17 pm »
That would be very useful as well.  This made me thinking, since the LCD isn't memory mapped (right? D:) swapping buffers would be as simple as changing a pointer in the safeCopy routine right?  Or do I not know what I am talking about? ;D
You are quite correct. And it should only be 6 extra clock cycles per call when using a variable instead of a constant, which is not enough to make a difference.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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 #194 on: March 03, 2010, 01:55:38 pm »
That's actually a really good idea to use some variables as variable pointers that are looked up by some routines.  Maybe I will use the "u" "v" "w" variables for this since I'll probably need more than 1 of them.  The only problem with this is that the variables have to be initialized before the program starts.  Otherwise, it will just be something random.  The parser could do it automatically, but then its just adding extra bytes in case you decide to change it again to anything but the default.  It would be really annoying to start every program with L6->u to do any drawing and it might not make sense for beginners.

I could always make the variable location part of the self modifying code so it already starts initialized without using extra memory, but then that means it can never compile as an app.  Although I'm still not sure how feasible it is to compile apps on-calc.  Have other programmers been able to do it?

All those precompile headers use variables that have to be set somewhere.  That means I would also need preprossesor variables which would be very difficult to add and I'm already running out of memory.  There is no reason that the same program should compile differently on different calculators since only the executable would be distributed ideally.
« Last Edit: March 03, 2010, 01:56:36 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!