Join us on Discord!
You can help CodeWalrus stay online by donating here.

[TI-84+CE] ICE Compiler

Started by PT_, March 25, 2016, 08:14:17 AM

Previous topic - Next topic

0 Members and 6 Guests are viewing this topic.

Dream of Omnimaga

I think 256 values would be enough for randomizing, right? After all, in BASIC we often use stuff like randInt(1,10).
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Snektron

yeah but what if you want more? you could multiply and add, but that will always result in the same number being added (due to r being the number of insructions that have passed)
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Dream of Omnimaga

Yeah true, but that seems like something that would be more needed for a math probability program or something.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

PT_

I wil look into it :)

For anyone who wants to see good speed:

vs

Size without header: 23 bytes vs 56 bytes. Pretty good, right?

Dream of Omnimaga

Nice, but IMHO the TI-OS text routines are not a good way to showcase your language speed. There is a reason why most ASM/C programmers and even some Axe programmers decided to use custom text/font routines instead. I bet your screenshots would have been even faster with custom text display routines. Of course you don't have to implement those, but I'M just saying, since TI's text routines are inneficient.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

PT_

☑ Pause <expression> in ms, 1-256 ms (0=256 ms)




Already fixed some bugs ;)

Dream of Omnimaga

That's a nice addition. I hope in future versions there will be longer delays support, though, so that we don't have to use 8 Pause commands in a row. But accoridng to IRC that will come when 24-bit numbers are supported, right?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

PT_

Quote from: DJ Omnimaga on June 27, 2016, 08:47:17 PM
That's a nice addition. I hope in future versions there will be longer delays support, though, so that we don't have to use 8 Pause commands in a row. But accoridng to IRC that will come when 24-bit numbers are supported, right?
Exactly. In one of the next versions, 24-bits integers will be supported, and then you can pause for either 16.78 s or 16777 s. Not sure if I will do milliseconds or microseconds ;)

Dream of Omnimaga

Milliseconds might be better in terms of useability. I mean, does anyone really need microseconds in a game? O.O
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Snektron

It would be handy if there was a timer function, which you pass like a label and an interval, which then calls the function at that interval.
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Dream of Omnimaga

Would it be interrupt-based? Or do you mean like a command that returns the current time and lets you store the result somewhere? That could be handy to keep frame rate consistent in games.

Also question: For the sake of keeping things simple for the user, would it be possible for 8-bits mode (if that ever gets implemented) to use the xLIBC palette by default?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

PT_

I interpreted his post as "loads the time into register a, and then call a function (address) that pauses a ms". That way you only need to load values in a and call that function when you have more Pauses.
I've zero experience with interrups, so I doubt I will ever implement it  >B)
And yes, when going into 8bpp mode, whenever I will make that possible, the xLIBCE palette is automatically loaded. You should be possible to change an entry of the palette though.

Ivoah

Quote from: PT_ on June 27, 2016, 07:02:57 PM
☑ Pause <expression> in ms, 1-256 ms (0=256 ms)




Already fixed some bugs ;)
It's great to see work continuing on this project. I really hope it takes off like Axe Parser did, and we see a whole slew of games and programs come to the CE because of it.
  • Calculators owned: TI-86 (now broken), TI SR-56, TI-Nspire CX CAS, TI-84+ SE, TI-84+ SE, TI-85, TI-73 Explorer VS, ViewScreen, TI-84+ CSE, TI-83+ SE

Snektron

Quote from: PT_ on June 28, 2016, 04:03:46 PM
I interpreted his post as "loads the time into register a, and then call a function (address) that pauses a ms". That way you only need to load values in a and call that function when you have more Pauses.
I've zero experience with interrups, so I doubt I will ever implement it  >B)
And yes, when going into 8bpp mode, whenever I will make that possible, the xLIBCE palette is automatically loaded. You should be possible to change an entry of the palette though.

I meant like the setInterval method in Javascript, it could be done without interupts as a loop that waits untill a certain time has passed.

Too bad its still not open source. I'd love to help to implement some commands.
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Dream of Omnimaga

Quote from: Ivoah on June 28, 2016, 04:12:24 PM
Quote from: PT_ on June 27, 2016, 07:02:57 PM
☑ Pause <expression> in ms, 1-256 ms (0=256 ms)




Already fixed some bugs ;)
It's great to see work continuing on this project. I really hope it takes off like Axe Parser did, and we see a whole slew of games and programs come to the CE because of it.
While the community is less active overall now than it was when the first versions of Axe came out, as soon as Axe got sprites and getkey support Axe language popularity really took off. I think the first ICE release that supports those should include some mini-game examples, including a space shooter (at least 1v1 battles with just 1 stage), to showcase what the language can do. Many people learn from code examples. But you would also obviously need a list of all commands like with Axe.

I don't know if ICE will be as popular but if well-documented like Axe and stuff, it should eventually have a decent fanbase.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Powered by EzPortal