* WalrusIRC

You need to have 5 posts and not be part of restricted usergroups in order to use the WalrusIRC embedded shoutbox. However, you can also access our IRC channel called #CodeWalrus via EFnet.

Author Topic: ICE Compiler  (Read 30266 times)

0 Members and 2 Guests are viewing this topic.

Online Snektron

  • Lvl 69 Russian Snake
  • CodeWalrus Staff
  • Super User
  • Topic Management
  • Join Date: Dec 2014
  • Location: Netherlands
  • Posts: 3164
  • Post Rating Ratio: +32/-0
  • SSSssssss.....
    • RobinDeWalvis
    • Kzyrox
    • RobinDeWalvis
    • quantuminfinity
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #30 on: April 09, 2016, 07:16:53 am »
Will you implement a modulo operator? (it's been one of the more usefull things in Axe :P)
In the meantime, has someone a good code in ASM to get all the programs or should I write it myself?
What do you mean?
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Offline PT_

  • Full User
  • Join Date: Mar 2016
  • Location:
  • Posts: 267
  • Post Rating Ratio: +11/-0
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #31 on: April 09, 2016, 08:05:18 am »
Will you implement a modulo operator? (it's been one of the more usefull things in Axe :P)
In the meantime, has someone a good code in ASM to get all the programs or should I write it myself?
What do you mean?
The CE has the token remainder( for that, and I will try to implement it yes.
For my question, I've received some code from Mateo, so I don't need it anymore. :) What I tried to say, was that ICE recognizes programs that starts with a special token, and search them in the VAT.

Offline PT_

  • Full User
  • Join Date: Mar 2016
  • Location:
  • Posts: 267
  • Post Rating Ratio: +11/-0
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #32 on: April 09, 2016, 12:52:18 pm »
Today I've 'worked' on creating the logo, here is my result:

or


Which one is better (I prefer the black background)

Online Snektron

  • Lvl 69 Russian Snake
  • CodeWalrus Staff
  • Super User
  • Topic Management
  • Join Date: Dec 2014
  • Location: Netherlands
  • Posts: 3164
  • Post Rating Ratio: +32/-0
  • SSSssssss.....
    • RobinDeWalvis
    • Kzyrox
    • RobinDeWalvis
    • quantuminfinity
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #33 on: April 09, 2016, 02:29:53 pm »
I actually prefer white, maybe because snow etc is white too
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Offline 123outerme

  • Super User
  • Join Date: Jan 2015
  • Location: In spaaace! Well, the Earth is anyhow.
  • Posts: 617
  • Post Rating Ratio: +5/-0
  • Professional Unpaid Intern
    • 113/11355
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #34 on: April 09, 2016, 03:43:42 pm »
If you could remove the black outlines on just the holes in the text, I think I'd like the white version a lot better, for the same reason as said above. Or maybe you want to go a light blue route?
  • Calculators owned: TI-84+CSE, TI-nspire Clickpad, TI-84+SE

Offline Jkolade936

  • All Around Coolio
  • Super User
  • Join Date: Jan 2016
  • Location: Horseheads, NY
  • Posts: 1515
  • Post Rating Ratio: +9/-1
  • I'm an unknown loner. I try to change that.
    • Jkolade936
    • My Sprites and Walrii Collection
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #35 on: April 09, 2016, 07:31:10 pm »
I like the black background, but I agree with @123outerme 's outline suggestion.
Or you could do something like this:



but with a gradient with lighter blues at the bottom.
  • Calculators owned: None of them. :'(
Does this qualify as a signature? 
The answer is "Sure."


Offline xlibman

  • Omni founder & CW co-founder
  • CodeWalrus Staff
  • Super User
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Quebec, Canada
  • Posts: 18601
  • Post Rating Ratio: +95/-4
    • dj_omnimaga
    • DJOmnimaga.music
    • @DJOmnimaga
    • dj_omnimaga
    • @DJOmnimaga
    • /u/DJ_Omnimaga
    • DJOmnimaga
    • 112/11286
    • @djomnimaga
    • @DJOmnimaga
    • DJ Omnimaga music store
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #36 on: April 09, 2016, 10:20:22 pm »
Actually, I wonder if keeping a background, but making it tiled (Minecraft style) would be feasible and still look nice? It could be an ice background based on the other one, but made of 16*16 blocks. Otherwise I kinda like the white background.
  • Calculators owned: TI-57, 73, TI-80 (broken), TI-81, TI-82, TI-83, TI-83+ (broken), TI-83+ (broken), TI-83+SE (broken), TI-84+, TI-84+CSE, TI-84+CE, TI-85, TI-86, TI-89T, TI-92, TI-Nspire, TI-Nspire CX (semi-broken), HP 39gII, HP Prime, Casio fx-7000G, fx-7400G+, fx-7700GE, fx-9750G+, fx-9750GII, fx-9860G, cfx-9850G, FX-1.0+, fx-CG10, fx-CP400
  • Consoles, mobile devices and vintage computers owned: Samsung i5510, Nexus 5, Atari 2600, Lynx, SMS, Game Gear, Genesis, Dreamcast, NES, SNES, N64, GCN, Wii, Wii U, GBA, DS, 3DS, PS2, PS3, PS4, PSP, PSVita, XBox 360, XBOne

Bandcamp|Reverbnation|Facebook|Youtube|Twitter
Retired Omnimaga admin (2001-11) and editor (2012-14)

Online Snektron

  • Lvl 69 Russian Snake
  • CodeWalrus Staff
  • Super User
  • Topic Management
  • Join Date: Dec 2014
  • Location: Netherlands
  • Posts: 3164
  • Post Rating Ratio: +32/-0
  • SSSssssss.....
    • RobinDeWalvis
    • Kzyrox
    • RobinDeWalvis
    • quantuminfinity
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #37 on: April 10, 2016, 07:06:27 am »
That seems like a cool idea, dj. How big is the screenshot now as is?
  • Calculators owned: TI-84+
Legends say if you spam more than DJ Omnimaga, you will become a walrus...


Offline PT_

  • Full User
  • Join Date: Mar 2016
  • Location:
  • Posts: 267
  • Post Rating Ratio: +11/-0
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #38 on: April 11, 2016, 06:35:46 am »
Actually, I wonder if keeping a background, but making it tiled (Minecraft style) would be feasible and still look nice? It could be an ice background based on the other one, but made of 16*16 blocks. Otherwise I kinda like the white background.
So, just like how xLIBC[E] background work? With a kind of spritesheet etc?
That seems like a cool idea, dj. How big is the screenshot now as is?
Now my whole program is 16K, which means the logo+background is about 15.5K

Offline Jkolade936

  • All Around Coolio
  • Super User
  • Join Date: Jan 2016
  • Location: Horseheads, NY
  • Posts: 1515
  • Post Rating Ratio: +9/-1
  • I'm an unknown loner. I try to change that.
    • Jkolade936
    • My Sprites and Walrii Collection
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #39 on: April 11, 2016, 12:55:35 pm »
Or could you do a cracked ice background? Like DJ's suggestion, but slanted in places?
  • Calculators owned: None of them. :'(
Does this qualify as a signature? 
The answer is "Sure."


Offline xlibman

  • Omni founder & CW co-founder
  • CodeWalrus Staff
  • Super User
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Quebec, Canada
  • Posts: 18601
  • Post Rating Ratio: +95/-4
    • dj_omnimaga
    • DJOmnimaga.music
    • @DJOmnimaga
    • dj_omnimaga
    • @DJOmnimaga
    • /u/DJ_Omnimaga
    • DJOmnimaga
    • 112/11286
    • @djomnimaga
    • @DJOmnimaga
    • DJ Omnimaga music store
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #40 on: April 11, 2016, 04:01:03 pm »
Actually, I wonder if keeping a background, but making it tiled (Minecraft style) would be feasible and still look nice? It could be an ice background based on the other one, but made of 16*16 blocks. Otherwise I kinda like the white background.
So, just like how xLIBC[E] background work? With a kind of spritesheet etc?
That seems like a cool idea, dj. How big is the screenshot now as is?
Now my whole program is 16K, which means the logo+background is about 15.5K
Yep, like a tile map.
  • Calculators owned: TI-57, 73, TI-80 (broken), TI-81, TI-82, TI-83, TI-83+ (broken), TI-83+ (broken), TI-83+SE (broken), TI-84+, TI-84+CSE, TI-84+CE, TI-85, TI-86, TI-89T, TI-92, TI-Nspire, TI-Nspire CX (semi-broken), HP 39gII, HP Prime, Casio fx-7000G, fx-7400G+, fx-7700GE, fx-9750G+, fx-9750GII, fx-9860G, cfx-9850G, FX-1.0+, fx-CG10, fx-CP400
  • Consoles, mobile devices and vintage computers owned: Samsung i5510, Nexus 5, Atari 2600, Lynx, SMS, Game Gear, Genesis, Dreamcast, NES, SNES, N64, GCN, Wii, Wii U, GBA, DS, 3DS, PS2, PS3, PS4, PSP, PSVita, XBox 360, XBOne

Bandcamp|Reverbnation|Facebook|Youtube|Twitter
Retired Omnimaga admin (2001-11) and editor (2012-14)

Offline PT_

  • Full User
  • Join Date: Mar 2016
  • Location:
  • Posts: 267
  • Post Rating Ratio: +11/-0
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #41 on: April 30, 2016, 03:17:57 pm »
Sooo.....

Long time no post of this project. I'm sorry for that, I am pretty busy with exams and the study next year after the exams, but that doesn't mean I haven't worked on it. As you may know is the Shunting-Yard-Algorithm already done, which means I've started with the part to evaluate the RPN notation stuff. Not very easy, because I want to optimize the output very well, but that also means more statements, and stuff, bla bla bla.... For each operator, there are 4 possibilities:
- <number> <number> <operator>
- <number> <variable> <operator>
- <variable> <number> <operator>
- <variable> <variable> <operator>
Both numbers, is just popping the numbers and operator from the stack, and push the result. And for the other cases, I've written routines to evaluate them and add the output to the program data. For now, it's pretty optimized, and I'm finally happy that I've a screenshot now :D







I've only implemented + and - yet, and I'm busy with *. I hope to make good progress! :)

P.S. Now that I'm posting this post, I see that <number> - <variable> can be shorter:
Code: [Select]
ld a, <number> / ld hl, <variable> / sub a, (hl)

Offline xlibman

  • Omni founder & CW co-founder
  • CodeWalrus Staff
  • Super User
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Quebec, Canada
  • Posts: 18601
  • Post Rating Ratio: +95/-4
    • dj_omnimaga
    • DJOmnimaga.music
    • @DJOmnimaga
    • dj_omnimaga
    • @DJOmnimaga
    • /u/DJ_Omnimaga
    • DJOmnimaga
    • 112/11286
    • @djomnimaga
    • @DJOmnimaga
    • DJ Omnimaga music store
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #42 on: April 30, 2016, 04:04:58 pm »
Good to see this still alive and kicking. :) Will this auto-optimize certain additions and substractions like explained by Axe Parser's auto-opt text documentation?
  • Calculators owned: TI-57, 73, TI-80 (broken), TI-81, TI-82, TI-83, TI-83+ (broken), TI-83+ (broken), TI-83+SE (broken), TI-84+, TI-84+CSE, TI-84+CE, TI-85, TI-86, TI-89T, TI-92, TI-Nspire, TI-Nspire CX (semi-broken), HP 39gII, HP Prime, Casio fx-7000G, fx-7400G+, fx-7700GE, fx-9750G+, fx-9750GII, fx-9860G, cfx-9850G, FX-1.0+, fx-CG10, fx-CP400
  • Consoles, mobile devices and vintage computers owned: Samsung i5510, Nexus 5, Atari 2600, Lynx, SMS, Game Gear, Genesis, Dreamcast, NES, SNES, N64, GCN, Wii, Wii U, GBA, DS, 3DS, PS2, PS3, PS4, PSP, PSVita, XBox 360, XBOne

Bandcamp|Reverbnation|Facebook|Youtube|Twitter
Retired Omnimaga admin (2001-11) and editor (2012-14)

Offline PT_

  • Full User
  • Join Date: Mar 2016
  • Location:
  • Posts: 267
  • Post Rating Ratio: +11/-0
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #43 on: May 17, 2016, 09:28:17 am »
Small post despite my final exams: I've 'implemented' an API. That is, when running ICE from an ASM program, it will skip the header and directly search and compile the program. An example would be this:
Code: [Select]
  ld hl, ICEname
  call _Mov9ToOP1
  call _ChkFindSym
  ex de, hl
  ; skip header
  inc hl
  inc hl
  push hl    ; save for later
    ld hl, varname
    call _Mov9ToOP1
  pop hl
  ld (callAdress), hl
callAdress = $+1
  call $000000
  ; continue
Of course, you can modify it for your own, but the program name should be in OP1 and to skip the ICE header, increment twice the starting data point.
My ICE program would look like this:
Code: [Select]
  jr noAPI
  jr APIContinue
noAPI:
  header....
APIContinue:
  call _ChkFindSym
etc

Offline xlibman

  • Omni founder & CW co-founder
  • CodeWalrus Staff
  • Super User
  • Original 5
  • CodeWalrus Supporter
  • *
  • Join Date: Nov 2014
  • Location: Quebec, Canada
  • Posts: 18601
  • Post Rating Ratio: +95/-4
    • dj_omnimaga
    • DJOmnimaga.music
    • @DJOmnimaga
    • dj_omnimaga
    • @DJOmnimaga
    • /u/DJ_Omnimaga
    • DJOmnimaga
    • 112/11286
    • @djomnimaga
    • @DJOmnimaga
    • DJ Omnimaga music store
  • Gender: Male
Re: ICE - an interpreter/compiler of CE-BASIC
« Reply #44 on: May 17, 2016, 04:19:27 pm »
When do your finals end by the way?

Also I am unsure if I understand your post. Is that header thing so that people can compile ICE programs from any ASM program they want?
  • Calculators owned: TI-57, 73, TI-80 (broken), TI-81, TI-82, TI-83, TI-83+ (broken), TI-83+ (broken), TI-83+SE (broken), TI-84+, TI-84+CSE, TI-84+CE, TI-85, TI-86, TI-89T, TI-92, TI-Nspire, TI-Nspire CX (semi-broken), HP 39gII, HP Prime, Casio fx-7000G, fx-7400G+, fx-7700GE, fx-9750G+, fx-9750GII, fx-9860G, cfx-9850G, FX-1.0+, fx-CG10, fx-CP400
  • Consoles, mobile devices and vintage computers owned: Samsung i5510, Nexus 5, Atari 2600, Lynx, SMS, Game Gear, Genesis, Dreamcast, NES, SNES, N64, GCN, Wii, Wii U, GBA, DS, 3DS, PS2, PS3, PS4, PSP, PSVita, XBox 360, XBOne

Bandcamp|Reverbnation|Facebook|Youtube|Twitter
Retired Omnimaga admin (2001-11) and editor (2012-14)

 


You can also use the following HTML or bulletin board code to share it on your page or forum signature!


Also do not forget to check our affiliates below.
Planet Casio TI-Planet Calc.news BroniesQC BosaikNet Velocity Games