After working a lot on TI-BASIC, I came back to play with Axe. However, I also learnt much thanks to Eeems' Learn Assembly in 28 Days (Kudos to him !)
I'm currently porting a big project from BASIC to Axe, and I needed to store flags (for account managing). That's when I realized that Axe lacks bit support ({A}e0 works fine, but there's nothing like 1->{A}e0 to set / reset flags) So I finally wrote an Axe library (which turned to be composed of assembly code by 99%), then an Axiom.
It allows to write to and read from 3 groups of 8 flags each using hl. (asm programmers : these are asm_flags1 to 3, as you must have guessed)
The code almost works, but there are two problems : one is that one function behaves incorrectly, the other is that the token hook doesn't work... And I don't know why. Before posting here the final version, I ask help, mainly for the second problem. I don't understand why the token hook doesn't work at all.
Hello Notepad++ users that are also z80 programmers, ISSOtm here !
I launched myself into assembly programming, and chose Npp as an editor because Windows default Notepad is too "default". However, I missed the syntaxic coloration, and although choosing "Assembly" language properly colored the comments, the instructions were black.
Thanks to version 6.0 (5.0 ? Don't remember), we are now able to define languages by ourselves.
Quote from: Kevin
That already existed before 6.0 !
Yes, but it used to be extremely basic, sorry. Now we can define keywords as "prefixes", and much more.
So, if you use Notepad++, here are 5541 bytes for you : the z80 coloration file. Do the following when you have downloaded the file :
Open Npp
In the Language menu, select "Define your language"
In the dialogue box, press "Import..." and find the xml file
Restart Npp
Now you can access "Asm z80" at the bottom of the Language list !
If you're not happy with the name I've given, re-open the dialogue box, and select Language : Asm z80 Press "Rename", and enter the new name. Restart Npp to load changes.
I've put all instructions (including stuff like sll), and compiler instructions (like #define or .org). However tell me if you want me to add more. Redistribution ? Of course you can ! As long as you mention my name.
Here is a screenshot taken of me working with the coloration on :
Hello guys, yesterday I was asked a very important question : "When will the next Friday, 13th be ? How many times will it occur next year ?" I didn't know the answer, I didn't have any calendar near me, but I had my calculator...
So, there it is, FRIDAY 13 FINDER ! How it works :
Launch it
Enter today's date :
Select the number to change
Press Enter
Enter the new value
Select "Confirm"
Scroll the list with the left and right keys, hit Enter to validate
Press any key
Press any key to skip to next month, or Clear to quit.
And that's pretty much everything about it !
One known bug : when editing a value on the date screen, the display isn't updated, but internally it is.
Features to implement soon :
Limiting the day value as the months do
Adding an "Auto Scan" mode which only displays the affected months
For those of you who hate math lessons (I know I already said that in the topic name ), here is another game to have on your calc ! If you have already finished all the Flappy Bird clones (tell me how you did if you have, these games are supposed to be infinite ), pwned every single opponent on Matrefeytontias' Worms, etc etc... Well I have a completely new game that is gonna crush your mind !! (No actually, it is pretty simple and there are only 5 levels but I am working on it... during my math lessons)
Well, at least, this should be some game you haven't played for a while (blame me if I am wrong)
FEATURES :
5 levels and more incoming !
Much fun (I hope)
7413 bytes "only" !
Only one bug isn't fixed !
COMING SOON :
More levels (give me ideas below !)
Spoiler For Screenshots:
[EDIT] There are no screenshots, because Wabbitemu is terribly laggy since its last update. Sorry for this [EDIT 2] TileM worked fine, so let's get started !
Level 1 (part of)
Level 2
Level 3
Level 4
Yeah, there it (finally) is !
Spoiler For Walkthrough:
Spoiler For Level 1:
Actually, you just need to scroll the text. If you look at this right now, maybe you should play something else
Spoiler For Level 2:
Spoiler For Level 3:
Actually, as there is no predefined pattern, I can't make a walkthrough. Sorry
Spoiler For Level 4:
If you have questions, post them ! I'll be happy to answer. You are also welcome if you want me to add some levels, give your ideas below (I have no more ideas...)
Spoiler For FAQ:
Spoiler For General FAQ:
QUESTION : What do I need to run this game ? ANSWER : Actually, nothing. It is an assembly game, so you'll need to run it sing the Asm( command, or to use an app like NoShell or zStart.
QUESTION : Do I need any particular skill to play this game ? ANSWER : No, but I recommend being intelligent , because you will need much logic... Also, please, do NOT tell me "how to go through this level ?". I will upload a walkthrough soon !
QUESTION : Is there any easter egg in your game ? ANSWER : Yep ! It is in the source code. Although it is some raw data, you may find what it is quite quickly, it is exactly like another data block next to it.
Spoiler For Little FAQ about the new version IDs:
QUESTION : What are "generations" and "version ID"s ? ANSWER : "Generations" is a word I use to describe games which use different "version ID"s. There are currently two generations (generation 0, which is some kind of "Alpha", and generation 1, which is more a "Beta" generation) The "version ID"s are used internally to find if the appvar structure is compatible with the game.
QUESTION : Is my current version compatible with the next ones ? ANSWER : No, and this is why I've created a tool to migrate appvars, it will be updated at each appvar structure update.
QUESTION : Why did you add version IDs ? ANSWER : In order to make versions with different data structure not compatible.
QUESTION : Why ? ANSWER : Because making data compatible is something hard to do and sometimes impossible. Generation 0 is a good example : when I released it, I wasn't thinking about changing data structure. But then I figured out that I may be adding features in next generations that would need to be saved, and I found that it would be a good idea to make a version ID to avoid data corruption. It is also easy to corrupt data while using a game with a data structure it doesn't understand. As an example, using a v1 appvar with a v0 (= without version ID) game would corrupt data, as then the version ID would be misinterpreted as level ID. On the other hand, using a v0 appvar with a v1 game would say "Appvar version is incorrect"... as long as the level (as of generation 0) is not 1. Generation 0 compatibility is nonexistent, because it writes its level counter where other generations read the version ID, and easily corrupts data. So please, do not use generation 0 but convert you appvar to generation 1.
QUESTION : Will the migration tool work for the next generations ? ANSWER : No, the tool is currently designed to migrate v0 to v1. You will have to download a new version to support (future) v2 conversion. But the program designed for v2 will convert v1 AND v0 to v2
You are also welcome if you report some bugs. They will go into this spoiler \/
Spoiler For Known bugs:
(sorted by levels)
General
The NEW GAME option makes you restart at the end of the game, but the save IS reset to 1
FIXED : I errorneously put ->{Y1T} instead of ->{Y1T}r ...
General
When no save file exists, select New File / Continue, and when asked, press any key but Enter. Press then Continue, and you may access any level (including glitch levels 0 and 8-255, which behave exactly like the ending screen, but do not make you leave. You loop like this until you passing level 0 makes you enter level 1).
FIXED : The save file is created with a level set to 1, instead of not being set (and the default value is... 0)
Level 3
Sometimes the rocks' hitbox glitches out, and you can't move when you should be able to.
Looks like this only happens when you are in a certain distance from the rock. It is (still) unclear on how to fix this issue, which is quitereally annoying.
Level 5
When the choosen number > 32767, the game's logic is inverted.
FIXED : The GUESS A NUMBER is now limited to 32767 instead of 65535
Color code : FIXED (also means it will be removed from the table soon) Not a big problem Quite annoying Makes game unplayable