Libndls: Difference between revisions

From Hackspire
Jump to navigation Jump to search
(→‎Screen: clrscr)
(→‎Keyboard: Add any_key_pressed)
Line 19: Line 19:


==Keyboard==
==Keyboard==
<tt>isKeyPressed(key)</tt>: non-blocking key press test. <tt>key</tt> must be one of the <tt>KEY_NSPIRE_*</tt> constants defined in ''ndls.h''.
*<tt>BOOL any_key_pressed(void)</tt>: non-blocking key press test. Returns <tt>TRUE</tt> if one or more keys are being pressed.
*<tt>BOOL isKeyPressed(key)</tt>: non-blocking key press test. <tt>key</tt> must be one of the <tt>KEY_NSPIRE_*</tt> constants defined in ''include/libndls.h''.


==Hardware==
==Hardware==

Revision as of 12:29, 28 December 2010

libndls is a set of macros and functions available as a static library when building with Ndless. The library is automatically linked by nspire-ld if required.

These definitions are available in Ndless 1.7. Definitions marked with (C) are only available in C. Definitions marked with (asm) are only available in assembly.

Common types

  • typedef enum bool {FALSE = 0, TRUE = 1} BOOL;

Math

  • number abs(number)
  • number min(number, number)
  • number max(number, number)

Screen

  • SCREEN_BASE_ADDRESS: address of the screen buffer. Each grayscaled pixel is 4-bit long. 1111 is white, 0000 is black.
  • SCREEN_BYTES_SIZE: size of the screen buffer
  • SCREEN_WIDTH: screen width in pixels
  • SCREEN_HEIGHT: screen height in pixels
  • void clrscr(void): clears the screen

Keyboard

  • BOOL any_key_pressed(void): non-blocking key press test. Returns TRUE if one or more keys are being pressed.
  • BOOL isKeyPressed(key): non-blocking key press test. key must be one of the KEY_NSPIRE_* constants defined in include/libndls.h.

Hardware

BOOL is_touchpad : TRUE on a TI-Nspire Touchpad.

Time

  • void idle(void): switch to low-power state until the next interrupt occurs. The use of this function is encouraged when waiting in loops for an event to save the batteries.
  • void sleep(unsigned m): delay for a specified amount of time. The CPU is regularly switched to low-power state while blocking.

Debugging

  • void halt(void): stops the execution flow with an endless loop. If you are using the Ncubate emulator, use the j debugger command to jump over the instruction.
  • halt (asm) (macro): similar to halt()