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

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - iconmaster

#1
I fixed the drone.io to give you the old Source. Currently, I'm working on the new Source compiler (you can see it on the "v2" branch on GitHub). Source 2 is even less done than Source 1, so yeah.

Quote from: Cumred_Snektron on March 27, 2015, 10:23:32 AM
EDIT3: out of curiosity, i've been looking at the asm, but i don't get why function a() and b() are both compiled to r?()

That's the HPPL obfuscator at work! The ?s are high-codepage Unicode characters. a and b compiled to functions beginning with an r, but ending with two different characters. You should be seeing characters other than ?s; that's your text viewer not seeing the Unicode encoding properly.

Quote from: DJ Omnimaga on March 28, 2015, 04:27:29 PM
Ok, but can you easily change your settings so you can swap between both?

Yes! I, myself, have something to alter my %JAVA_HOME% when I need to use Java 7.
#2
Quote from: Cumred_Snektron on March 26, 2015, 08:27:19 PM
Wait- this is a language on a virtual machine? wouldn't it be possible to port it to other calculators and make a common programming language? O.O
i've always wanted to code a higher virtual machine than my brainbleep compiler... though i don't have mcuh experience and don't really get some of the opcodes...

The name of LLVM is a misnomer. It is not a virtual machine; is compiles code using LLVM IR, a virtual language, as an intermediate. When Source compiles to LLVM, it will be a fully compiled language.

In other news, I'm finalizing pointer operations in Source. What syntax looks better to you guys?

one() is a function that returns a pointer to a local. two() returns the value inside that pointer, dereferencing it.


//idea 1
function one() as ptr[int] {
local a = 2
return a.ptr
}

function two(b as ptr[int]) as int {
return b.value
}



//idea 2
function one() as $[int] {
local a = 2
return $a
}

function two(b as $[int]) as int {
return b$
}
#3
Hello, everyone! Glad you've been interested in Source. I updated the OP, so now it describes Source a little better.

Quote from: Juju on March 25, 2015, 05:20:07 AM
Yep, shoulda try it out. By the way, is there any way to use it with LLVM (since you mentioned it in the thread)?

There WILL be a way to, but the LLVM platform for Source is not usable yet. In time, I hope LLVM to be the primary compilation target for Source.

Quote from: Cumred_Snektron on March 25, 2015, 11:10:36 AM
isnt there already a LLVM to Z80 compiler? also i did a click google on it some time ago and i saw some Cemetech posts about it

There is the one LLVM Z80 project I know of, but it hasn't been worked on for several years, apparently. It doesn't look working yet, but I have hopes.

Right now, I discovered some mechanics in the core Source engine that need rewritten, so I'm seriously considering rewriting the Source compiler from scratch. If I do this, it might be a while before Source becomes usable. It would be for the better, however; my old code can be a bit hard to follow.
#4
Quote from: DJ Omnimaga on March 11, 2015, 11:03:27 AM
Btw have you worked on this recently?

In the past few weeks, I've done some minor changes to the compiler, yes. Mostly, though, I've had to take time to deal with other obligations.

When I have time, I need to rewrite the HPPL output platform, so expect large changes when they do happen...
#5
Games / Re: [HP Prime] HP Prime Tunnel (2013)
February 06, 2015, 08:03:28 PM
I remember this from when the Prime just came out. It's a quality game, what can I say!

I'm excited to see what more advance things we can do, seeing this was made very early in the Prime's existence.
#6
As I found out in my speed testing, MAKELIST should be faster than FOR loops (unless the lists generated and thrown away take up too much memory, so testing is still needed). So, I suggest you try this to improve speed, perhaps:


WHILE 1 DO
BLIT_P(G9,0,0,320,240,G3,0,0,320,240);
MAKELIST(MAKELIST(BLIT_P(G9,mapTileX-A, mapTileY, mapTileX+16-A, mapTileY+16, G1,112,0,128,16,#666666),mapTileY,0,240,16),mapTileX,0,320,16);
A := A+1;
IF A>16 THEN
  A := 0;
END;
BLIT_P(G0,0,0,320,240,G9,0,0,160,120);
END;


EDIT: I also wonder if replacing your A:=A+1 code with A:= (A=1) MOD 16 and ditching the IF would be faster. I don't know.
#7
Drawing & Animation / Re: Super Walrii Land Level idea
January 25, 2015, 06:29:04 PM
If you want a tilemap editor without the RPG maker stuff, may I suggest Tiled? It's free software to make tilemaps, and it's a lot more flexible than RPG Maker.

In level design, I would worry about making single maps too large. The Prime has limited RAM for your use, after all.
#8
I'm creating tutorials for those who want to get up to date on the syntax of Source on the wiki here. I suggest you check it out!

Quote from: DJ Omnimaga on January 22, 2015, 04:05:00 AM
I'm also glad that you are still planning PC support. It would be nice to be able to make games for both calcs and the computer simultaneously. Maybe eventually you could also compile to Ndless C?

If LLVM can be compiled to ARM assembly, I'd assume you could get something working on the NSpire in short order. It'd take some work, though, but its quite possible.
#9
Quote from: DJ Omnimaga on January 22, 2015, 02:11:21 PM
Awesome to hear. :D By the way, just a question: Since the HP Prime has issues keeping highscores and saves if you accidentally recompile your program, could using the program launcher trick (having a very small program launch the bigger program as sub-program) result into the compiling issues you got with this game?

This looks quite nice by the way. I'll need to give this a try soon :)

I don't think SV_DATA caused the error, as I still use the SV_DATA trick in the merged version.

And thanks a bunch!
#10
Quote from: Eiyeron on January 22, 2015, 01:44:15 PM
Do you have a piece chooser close to the original game (look at it, it's a bag-based algo)? Will you implement the hold option?

It's bag-based, yes. No complex piece-choosing functions, sorry.

Piece holding/next piece would be a nice addition. I don't know if I'll continue working on this program, though.
#11
I got it working again by merging everything into one file. So, feel free to check out the attached file, and also these screenshots:

#12
After Tetris, I want on to start another game. It was called Starvault, and it was going to be a short sci-fi roguelike sort of game.

I had the bright idea to separate the game into multiple HPPRGM files for my programing convenience. Well, as it turns out, this is a very bad idea. I eventually made a cyclic dependency in the code. As it turns out, if one of the dependants has a syntax error, none of the other dependants will ever compile again. As a result, this code can never run again, as one can never fix the bug that causes every check to fail. This proved to be the end of Starvault development.

I decided Source would be a better use of my time.

Anyways, the program does some cool graphical effects, so I suggest you check out the source code to see it. Maybe you can learn something from it?? I've attached the source code and assets.


I really wish I had made screenshots when it was working. Oh well.
#13
I was working on this a while ago. I don't think I have the time to keep working on this project, but here it is anyways.

IconusCalc is a calculator written in Java. It's biggest feature is something I call AutoRPN. It can accept input in all 3 major notation formats: Infix, polish, and reverse polish. Of course, this means sometimes you have to use parenthesis in RPN expression ('sacrilege,' RPN enthusiasts cry), but it's generally a lot more convenient than any one input method.

Screenshots



Features


  • AutoRPN: Input things in ALL 3 input modes at once!
  • Do some basic math functions!
  • Symbolic math! Create and simplify variable expressions!
  • Variables! Also with a file system for your variables!
  • Multiple windows!
  • Customizable screen size and color schemes!

Download

Get IconusCalc here! Note that this program requires Java 8 to run.

Source Code

IconusCalc is open source! Look at the source code here.
#14
HP TETRIS!


This was my first HP Prime game. It's none too shabby, if I do say so myself. Of course, I haven't really made any other games yet (Source and all eating up my time), but I plan on making other cool things in the future.


Screenshots:





Features:



  • Classic Tetris gameplay
  • Accurate piece rotation
  • Both soft-drop and hard-drop keys
  • Adjustable difficulty level
  • Original Tetris scoring rules
  • High-score tables - challenge your friends!


Download:


Get this program here!
#15
Once upon a time, I was writing programs for the HP Prime in HPPL. The more I worked in HPPL, the more I became dissatisfied with the language. I mean, it was usable, but I wanted better.

So I decided to make something better. I started work on Source. It's a programming language.

Source is a procedural, statically-typed bytecode-compiled language that can either compile to whatever platform you need or interpret directly on your computer. Currently, it compiles to HPPL.

Source gives you control. It's statically typed, so you can read your code more easily. It can assume types, so it's not needlessly verbose. You can control how it compiles through directives.

Source is flexible. It provides data structures and user types. You can define methods for data types anywhere. You can organise your code into packages. Source even can handle cyclic dependencies!

Source has tools. Compile it into HPPL from the command line, or use SourceBench to write and compile code on the fly. Use SourceBox to run your code on your PC. Run SourceLine to interactively execute Source code.

Source isn't done yet. The core libraries still need implemented, not to mention a bunch of features such as custom structs and classes. In the future, it will be able to compile to a bunch of places, not just HPPL. I wouldn't describe it as 'usable' yet. But stay tuned!

Anyways, the important bit: The link. Check out the source code at:

https://github.com/iconmaster5326/Source

Want to download Source? Want to learn more? Check out the wiki at:

https://github.com/iconmaster5326/Source/wiki

The wiki has downloads, documentation, and tutorials.
Powered by EzPortal