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 - Jim Bauwens

Pages: [1] 2 3 4
News / Community based HP Prime connectivity toolkit under development
« on: November 10, 2013, 05:47:25 am »
Although the HP Prime is a newcomer to the calculator scene, it has already drawn quite some attention. This probably due to the fact that it's the most powerful handheld calculator to date and that it comes with a touchscreen interface.

Last week critor announced that he and Lionel Debroux succesfully managed to patch the HP Prime firmware. This demonstrated that native code execution might not be far away if the needed time is spend on it :D

Yesterday Lionel announced yet again some great news, he has been building an open source toolkit for communicating with the HP Prime! Libhpcalcs is built with the same design principles as the libticalcs toolkit that he has been maintaining and improving over the last years. While he has only been developing for three weeks, it should already be stable enough to be beta-tested on both Linux and Windows.

So if you have an HP Prime and are willing to help its development community grow, you should go help beta test this software now!

I want to personally thank Lionel and Critor for their dedication to the HP-Prime platform and their work to open it up ;D

Site Feedback and Questions / Transparency regarding donations
« on: October 20, 2013, 09:20:21 am »
Hi all,

I decided to create this topic after stumbling on the donation button once again (well, it's just that I don't visit the front page that often, more directly other pages). In the beginning when Omnimaga added the option to donate to support the site it showed how much was donated and by who. This was a good thing that suddenly vanished. Personally I think that a site that accepts donations from members should also be transparent towards those members on how much money is put into the site and for what it is used. I'm not saying there should be a list of all the people who donated but generally that there should be some more output towards the members on what's going on. That's in my opinion showing some respect towards the members that put effort into supporting the site.

This is just my opinion of course and is something that I wanted to say before but forgot to do so.

TI-Nspire / LuaTerm v2.0 - An interactive Lua prompt for your TI-Nspire
« on: September 09, 2013, 04:03:33 pm »
Hi all,

As some of you might remember, in the very beginning of the TI-Nspire Lua era I released LuaTerm. It was the very first tool that allowed you to enter and run Lua code directly on your calculator.

Now more than two years later (yes, it has been that long) I am proud to announce a new release of LuaTerm!
So what's new ?
  • OOP design
  • Monospace font using a custom font routine
  • Multi-line syntax
  • Cursor support so you can easily edit your command
  • Built using a special session engine that allows cooperative multitasking
  • New build system

The session engine is the biggest change to LuaTerm. This engine is not only useful for LuaTerm, but other projects can take advantage of it as well.

Spoiler For Large screenshot made from TINCS:

LuaTerm functions and Session API
Code: [Select]
-- LuaTerm spefic functions --

print(...)      : print to the console
clear()         : clear the console
sleep(n)        : sleep n seconds. Please note that this lets the execSession sleep, so if you want to sleep another session use yourSession:sleep(n)
readLine([str]) : reads console input. Please note, that just as sleep this is linked to the session execSession, don't use it in other sessions. If str is specified, it will be preinserted in the input stream.

gcct()          : List all (registered) sessions
browse([tbl])   : Browse the global enviroment. If tbl is specified, browse that instead.
getConsole() : returns the Console object
getSession() : returns the execSession Session object

The following documentation is not needed to use LuaTerm; it just describes the internal classes used by LuaTerm.
But you can also use them from within the console.

-- Sessions --

There are two sessions used by default:
luaTermSession and execSession.

luaTermSession implements the entire input handling and terminal functionality.
After the user enters a command, it will dynamically generate the execSession, suspend itself, pass control to execSession.
After execSession is completed, it will resume luaTermSession and pass the results to it.

-- Console class --

Console()                     : create a new Console object

.cursorX                      : cursor column
.cursorY                      : cursor row
.cursorVisisble               : boolean, show/hide the cursor
.height                       : height (in px) of the console
.width                        : width (in px) of the console
.rows                         : amount of rows
.cols                         : amount of collumns
.linesMoved                   : how many lines the console shifted during its lifecycle
.lineBuffer                   : table representing the console buffer

:fit([w], [h])                : resize the console. If parameters ommited it will use the display size
:draw(gc)                     : draw the console to the specified graphical context
:moveUp()                     : shift the console buffer one line. Internally used by :write
:write(str, [ignoreCursor])   : write str to the console (at the location of the cursor). If ignoreCursor is specied and true, the cursor position will not be updated after writing.
:print(...)                   : print the arguments to the console plus a new line
:clear()                      : clear the console
:read(session)                : reads one character. You need to supply a session; and you may only call it from within that session. (otherwise the world can collapse)
:readLine(session, [str])     : reads a line. You can prefill the line with str. Same session restrictions as read
:dataIn(str)                  : used to send data to the console. This data will eventually be parsed by read[Line]
:cursorBack()                 : move the cursor back
:cursorForward()              : move the cursor forward

--           Session class             --
-- implements cooperative multitasking --

Session(console, func, [callback], [commandTable])
                               : create a new Session from func with console as console. If specified, callback will get called when the Session object ends. The thread state and result will be passed as argument to the function. commandTable is used to define functions that can be called using :sendCommand to the Session object.
Session.addSession(session)    : register a Session object
Session.removeSession(session) : unregister a Session object
Session.updateSessions()       : 'tick' all registered Session objects
Session.getSessions()          : return the registered Session object table. Warning: this is a reference! Don't mess with it.

.thread                        : the coroutine behind everything
.console                       : the sessions Console object
.callback                      : the callback function
.commandTable                  : the commandTable
.started                       : true if the Session object has been started
.suspended                     : true if the Session object has been suspended
.nextTick                      : time when the Session may resume its thread

:checkSession(state, ...)      : internally used the check the thread state
:start([run])                  : start the session. If run is specified and true, the session will wait until the next global tick to start the thread
:suspend()                     : suspend the session
:interrupt()                   : interrupt the session
:triggerResume()               : session will resume on next tick
:sleep(n)                      : let the session sleep for n seconds
:tick([forcetick])             : tick the session. If forcetick is true, it will tick regardless if the session is suspended or nextTick isn't due yet
:sendCommand(command, ...)     : call command out of commandTable and pass the arguments. Warning, this is not thread safe!

-- Aliases to the console functions

I have attached the latest build to this post (LuaTerm v2.0beta). I would really appreciate if people could test it and report any bugs they can find :)
Please note that I haven't tried it on 3.1, although it *should* work as I've implemented some compatibility options.

Site Feedback and Questions / Unsecure bb code video blocks
« on: July 29, 2013, 06:45:06 am »
As I demostrated here,, you can easily manipulate the URL that gets loaded inside the vimeo player (just an iframe). Although you're still limited to the domain (you can load any site on that domain) I think here should be some added protections. The same issue with Nico video player, you can load any JS script from the domain. While this still is very restricted, it's important to remember that if Vimeo or Nico change something on their website, those stuff might be used to exploit stuff here.

Humour and Jokes / This is amazing
« on: July 29, 2013, 06:03:30 am »

(autoplaying video)
Don't you agree :)

News / C++ on the TI-Nspire
« on: June 16, 2013, 04:34:09 pm »
ExtendeD is still working on Ndless, and has just solved technical issues that prevented C++ support from being implemented in Ndless.
Here you go for a brand new version of Ndless :)

The first C++ programs for Nspire have been coded by tangrs a while ago, but the issue was that elf2flt was not handling some relocations with recent GCC versions for ARM. This caused issues with hoffa's nSDL, and was reducing the number of programs you could port for the Nspire.

Now that the issue has been identified, ExtendeD patched elf2flt and published :

Here's a preview of the new features of a direct port (with small changes to adapt to the platform itself, like keyboard, resolution...) showing what c++ with nSDL can provide, with a quick  port of Advanced Tetris by GDO, by Extended :

Have fun with Ndless, even if TI tries to prevent us from opening the Nspire - they have more to lose than we do :)

Source and downloads: & ExtendeD for tip

Cross posted from TI-Planet

TI-BASIC / My z80 basic palprime algorithm
« on: May 13, 2013, 03:46:54 pm »
While I only participated in the TI-Nspire section for the palprime contest, I made a z80 basic version too (which I did not enter). It's my first basic program for z80 based calculators.
It finds the 42nd palprime in 16 seconds (TI-84 Plus)

Here is the code
Code: [Select]
:Ans→N    --- find the AnsTh palprime
:While 1
:If prod(Ans-{1,3,7,9
:If fPart(F/3:Then
:While Ans{^2}≤F and fPart(F/Ans) and fPart(F/(Ans+2
:If Ans{^2}>F
:If A=N:Stop
The result will be stored in F.

Beware I'm using some end tokens to quickly jump again to the start of the loop, so there is start/end of block 'mismatching' ;P.
While I'm not really going to continue this I'd like to know if I still can optimise it more (the code, not the algorithm)^^

Edit: I forgot, it can not find the first 5 palprimes, not implemented because I was first focusing on the algorithm

This has been something on my mind for some time now, so I thought it would be best to organize a poll about it.
Would you be interested in joining a calculator event in Europe if it would be big enough? The calculator community is huge, and as far as I know there haven't been big meetups before. Having a large meeting will benefit the community and can be a very interesting experience.

This is a serious question, because I'm willing to organize something if I get enough positive responses. I don't have any big plans yes, just want to know your guys opinions :)

Cemetech thread:

Other Calculators / MOVED: Mini vMac for the TI-Nspire
« on: April 13, 2013, 08:22:01 am »
This topic has been moved to News.

News / Mini vMac for the TI-Nspire
« on: April 13, 2013, 07:22:37 am »
Today, I'm proud to release a port of Mini vMac for the TI-Nspire! Now you can run Mac System 7 on handheld, use applications such as MacPaint and more!

Recently Mini vMac was ported to SDL, which allowed me to port it to the TI-Nspire using nSDL. This is another good example showing the power of nSDL.

EDIT: Touchpad support for mouse control

Download it here:
Mini vMac for the TI-Nspire
TI-Planet news article

News / An Nspire audio player!
« on: March 03, 2013, 01:12:03 pm »
A couple of days ago Vogtinator released an audio player for the TI-Nspire.

The audio player utilizes the GPIO pins at the dock connector, allowing it to achieve a sample rate of 10kHz! This is already quite impressive, as you can see in the video below.

At the moment you can load WAV files of max 2MB, and there are still several bugs. But Vogtinator is still working on it, and he even said that higher sample rate are possible!
Not only is this a milestone in calculator audio history, but it's also the first time that the GPIO ports have been used. The GPIO ports don't only allow audio, but a great range of things are possible with them.

Other Calculators / MOVED: TI-Concours 2013 !
« on: January 31, 2013, 01:10:07 pm »
This topic has been moved to News.

TI-Nspire / [Lua] CHIP-8 emulator
« on: December 08, 2012, 02:54:57 pm »
A couple of days ago I started to port a Lua based CHIP-8 emulator I found online to the TI-Nspire.
Yesterday I got it working, and after fixing some emulator bugs and improving/optimizing the overall code I can say that it's already quite decent.

As you can see in the video, there are still some issues with screen flickering (well, actually invaders is the only game that really has a problem with that).
Space Invaders runs a little slow, but it's one of the more complex CHIP-8 games.
Blitz, Tetris, Brix, Vbrix and some other games I tested run basically at full speed.

I'm still going to try to optimize the screen drawing part, but I'm already very happy with the result :)

News / OmnomIRC will be down for unspecified time
« on: September 20, 2012, 10:29:24 am »
Hi all,

The server hosting OmnomIRC is/was experiencing HW problems.
I've switched temporarily to another server, and to make sure everything stays running fine, I can not take the burden for hosting OmnomIRC (it's a big resource hog).
I don't know when I'll be able to host it again :[

Sorry for the inconvenience.

Lua / Look what my Nspire can do
« on: September 13, 2012, 06:01:12 pm »
Over the last few days I've worked together with Adriweb to bring the web to our Nspire's.

Here is our first major result:

What you see here is my Nspire requesting a webpage. The PC responds, and sends the data to my handheld.
There a web browser I created parses the html and displays it.
It's entire coded in Lua, and the heavy parsing work is al on calc. No Ndless here :)

The PC side is built with libti*, but Adrien is integrating the stuff into nRemote, so all platforms are supported.

So, what do you think ?

Pages: [1] 2 3 4