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.

Topics - benedikt.muessig

Pages: [1]

I have been very busy lately, developing a complete replacement main board that will fit into the empty shell of a TI-84+. This will enable you to build your completely own, Linux powered, TI-84+
You almost can't differenciate the original from a modded one.

It features an ATmega328P-AU Arduino Uno compatible keyboard processor and power management controller and real time clock (to keep the time running, while the Pi is turned off).
This will be a two board solution. There will be an upper and a lower board.
On the upper board, there is space for fitting a Raspberry Pi Zero (W) and a 128x64 monochrome/grayscale LCD that I would provide. The bottom half of the board (including keypad matrix, RTC, Uno and the Adafruit PowerBoost500 for LiPo operation) will be attachable to the upper board through a few solder links. Therefore you can decide whether you want to provide your own single board computer or if you want to go for a Pi Zero and my preferred, matching LCD.
The headphone/Link jack will either expose the Pi Zero's analog video signal plus one GPIO pin or the  I2C bus, depending on solder jumper configuration. The Uno is connected to the Pi via SPI and UART. You should be able to reflash the Uno from the Pi, if you disable the Linux console on the serial port.
Otherwise, the serial console will be displayed on boot in a serial terminal mode of the Uno.
The Uno is also connected to the 128x64 screen and will go into high impendance mode to let the Pi access the screen, once the Pi is booted and ready.

I guess I can already warrant a sneak peak at the keypad matrix ;)

I hope there is demand, and if there is I may offer a kit or the bare PCBs.
If someone does not like to solder SMD, I could also offer individual assembly of the boards.
There is also need for a good name. Currently I have settled for "Pi84--", but feel free to post any suggestions if don't like the name.

From a price perspective, the bottom board with all components (except for the Adafruit PowerBoost 500) may end up costing around 12€. The power boost is available for about 15€ and a matching battery will cost under 10€.
The top board may probably cost around 18€ (not including the Pi Zero (W), but including the screen).

Dead TI-84+'es are often available at your school/uni for free or just a tiny fee, if there is a renting program available. On eBay, used TI-84+'s with a broken screen can be bought for as little as 10€.

So, in total, you will probably be paying about 65€ for your own, Linux enabled, fully hackable, state of the art, calculator.

And of course could you run one of the TI-84+ emulators on there if you wanted to ;)

Note, that this is the actual, project releated topic, while my original post was posted in another topic here.


For the last year, I have been working on Claw, a development system for embedded devices.
It has a very small RAM footprint and can run on systems with as few as 2 KB of RAM.
The VM's own memory footprint is tiny and most of the RAM remains to be used by the applications.
Claw will probably support multitasking in it's operating system releases and also support CEFS (Claw embedded read-only file system) and FAT32 for loading (and storing) files from and to.
The files are streamed and therefore can be as large as 4 GB (on 32 bit VM's) or 64 KB (per executable) on 16 bit systems. 64 bit is supported as well, though 4 and 8 bit is not.
Claw features and assembly language and an high-level language that will compile to CXE executables that Claw can execute. On any platform, as Claw executables are binary compatible!
So you focus on your code and write and compile it once. Claw will deal with libraries and device specific hardware! But this freedom is of course still limited by hardware factors (e.g. it needs a screen to display graphics, or processor speed and RAM size).

Claw is entirely stack-based and uses three main stacks. There is a call-stack which stores the source address every time you call another function. As Claw has file system support built-in you can of course call functions from libraries dynamically. Dynamic linking is performed by Claw automatically, so you don't need to worry about library versions. The next stack is the work stack. It stores the function arguments, is used for arithmetic and other instructions and is arbitrarily accessible. The third stack is the array pool which programs use to allocate parts of memory to store data to. New memory can be allocated at any time but as in a stack, only the last array can be deallocated at a time. There cannot be holes in the memory map.

Supported platforms
The architectures and systems that I will port Claw to include but are not limited to 32- and 64-bit Intel and AMD computers running Windows, Linux or BSD; AVR (especially Arduino Uno and Mega); MIPS (routers); ARM and XTensa (ESP8266). Somebody might want to do a port the TI-84+CE and I might do a port to the TI-84+ if I find time.

Online IDE
There is also a planned online IDE that includes an online compiler as well as a standalone, offline compiler and assembler that runs on Windows, Linux, and BSD. The assembler also works for Mac OSX.

Open source
Claw is an open source project and is on GitHub:
The chosen license is as permissive as it gets: The "new" / "revised" 3-clause BSD license.
This means Claw can be used free of charge, can be modified and used in closed source and commercial projects, as long as the name is not miss-used and I get credited appropriately.

Development status
I have completed most of the assembler so far and a good part of the VM. The compiler is just a draft so far, but will be started soon.  Most parts of Claw that are not yet made are already documented and planned but just not yet written.

Have fun!

TI Z80 / TwoStep - The challenging puzzle game!
« on: January 29, 2015, 07:31:16 am »

About the game:
The game is a challenging and addictive making puzzle game.
The goal of the game is it, to reach a platform, but you only have two steps, so choose wise, in which direction you go!
You will even be able to make your own textures and levels for it and have highscore tables.
The game is and will be available for PC, Android, TI-84+ and TI-83+

Project status:
We're in beta now, the game mechanics are pretty much fully implemented, BUT right now highscores, texturepacks, leveleditor, settings, etc. aren't made yet. The project is real big, we started it weeks ago, working every day at home and at school, have big real physical, and digital folders full of source code, assembly and axe listings, drafts, textures. One of my friends (Fabian Sölch) is helping me with the ideas, textures, levels and how the gameplay is going to be.

Everything is written in Axe (with some assembly parts)
I'm using C / SFML style rendering code and the whole engine is built C styled like I would do in a modern environment, but everything is maxed out in speed and efficency. I'm using a main loop, dynamic callbacks, compression and decompression and more advanced stuff.

Current Version: z80-150404-a (download)

Latest Screenshot:

Keys, UI and explanation:
(Enter) = Select during menu
(Clear) = Exit
(Up)/(Down)/(Left)/(Right) = Move Cursor
The goal is to collect all black tiles with the least amount of overall steps.
But you have to reach any portal or black tile within two steps. The screen wraps. If you can't reach a safe place after the 2nd step, you will loose one live and the level will restart. If you loose all lives, you have to restart from level 1.

Below is a list and explanation of the blocks in the game:
- This is just plain void. Don't land on it with your 2nd step or you'll die!
- This is a tile. You have to land on each of them with your 2nd step (and all checkpoints) to solve a level. Once you stepped on one, it will disappear afterwards and turn into void.
- This is a solid wall. You can't step on or interact with it.
- This is a checkpoint. You have to land on all of them with your 2nd step (and all tiles) to solve a level. Once you stepped on one of them, it will turn into a platform.
- This is a platform. You can safely land on it. It won't disappear.
- This is a portal entrance. As soon as you land on it with your 2nd step, you will be teleported to a random one of its outputs. There are two portal channels, which look the same, but only teleport you to one of its child outputs.
- This is a portal output. You can step on it, but nothing will happen. It will just behave like a platform.
- This is a door. There can be multiple doors in one level, but when you step on a switch, only one random door will open and turn into void.
- This is a key. There can be multiple keys in one level; if you step on one, a random door will be opened.

- And finally, this is you!

If anybody wants to be a tester, just download the latest beta version and if you encounter any errors or feature requests, just write them down here.

- Portals
- Checkpoints (done in b050215)
- Platforms (done in b050215)
- Level decompression and compressed write (fixed in b050215)
- BCD level and data reading routines (fixed in b050215)
- Step limit
- Screen wrapping
- Level rendering
- Level changing (fixed in b050215)
- Basic program structure (redone in b050215)
- Doors (added in b090215, fixed in b300315x)
- Buttons (added in b090215)
- Toggleable tiles (added in b090215)
- Normal Platforms (added in b090215)
- Konami code (fixed in b300315x)

In Progress:
- Textures (pretty done with 'em actually)
- Keybindings (a few tweaks needed)
- UI (started in b110215, redone until b150404-a)
- Dialogs (redone in b300315x); some UI elements still missing (input box, etc.)
- Settings Menu (started in b110215)
- Levelpack structure (v3 in progress)
- Levelpack scripting language
- More levels! (last ones added in b300315x)
- Highscore table (started in b150404-a)
- Time limit (started in b150404-a)

- Synchronize high score tables over I/O, stats, and hs tables, new file format v3
- Pause menu

- Customizable keybindings
- Option to add a walkthorugh to every level

Feel free to visit my project page.

TI Z80 / Kenny Game [CANCELLED]
« on: May 29, 2014, 07:31:23 pm »
I was developing a project, where you could have played as Kenny McCormick from South Park and could have solved levels.
It was going to be a side scroller.


The Axe Parser Project / Variable Help
« on: May 29, 2014, 12:23:14 pm »

Hello,Theres no proper documentation for axe, no good tutorial.  :banghead:
I need help!!!!

I'm making a game and want to name vars.
I heard about naming vars with 5 letters.
How can I do this,
e.g. KNN0X and KNN0Y
I have multiple sprites and want have the format nameofspriteX and ~Y.
I have just no idea how to deal with variables i need more than A-Z and a need no constants.

Pages: [1]