Ndless and Emulators: Difference between pages

From Hackspire
(Difference between pages)
Jump to navigation Jump to search
mNo edit summary
 
No edit summary
 
Line 1: Line 1:
Ndless combines a resident program and utilities to open the TI-Nspire to third-party C and assembly development. Ndless is distributed under the Open Source [https://en.wikipedia.org/wiki/Mozilla_Public_License Mozilla Public License].
=Current programs=
 
==Firebird==
The installation of Ndless on a TI-Nspire is required to be able to run [[Assembly_programs|assembly programs]].
'''Firebird''' is a fork of nspire_emu. It runs natively on Windows, Linux, Mac, Android, and iOS, thanks to a Qt-based GUI. It is still in development, but is available [https://github.com/nspire-emus/firebird/releases/latest on GitHub].<br/>
 
Added/Changed features compared to nspire_emu are mainly improvements to the emulator core to make it more powerful as well as a fully-featured GUI to go along more user-friendly additions.<br/>
Find help for any Ndless related question or issue on [https://www.omnimaga.org/index.php?board=136.0 Omnimaga's forum] and the [https://github.com/ndless-nspire/Ndless/issues issue tracker].
Like nspire_emu, use [https://tiplanet.org/forum/archives_voir.php?id=3829 PolyDumper] to dump the ''boot1.img.tns'' and ''boot2.img.tns'' from your TI-Nspire. Diags and Manuf can also be dumped and used in Firebird (see the flash creation feature)
 
=Obsolete programs=
'''Latest stable release: [http://ndless.me/ v3.6]
==nspire_emu==
 
'''nspire_emu''' is a TI-Nspire Clickpad/TouchPad/LabStation/CX (CAS) emulator, and was the first one made. It only supports Windows, but is compatible with [https://www.winehq.org/ Wine] on other OSes. You can download it [https://tiplanet.org/modules/archives/download.php?id=10068 here] or [https://www.omnimaga.org/ti-nspire-projects/ti-nspire-emulator/?action=dlattach;attach=14364 here]. Its official discussion thread is on [https://www.omnimaga.org/ti-nspire-projects/ti-nspire-emulator/ Omnimaga].
Previous release: [http://www.unsads.com/projects/nsptools/downloader/download/release/9 v3.1]
Most TI-Nspire emulators derive from ''nspire_emu''. Note that these custom versions are not always kept up-to-date with the latest version of ''nspire_emu''.
 
'''Setup:'''
==Developing with Ndless==
*Use [https://tiplanet.org/forum/archives_voir.php?id=3829 PolyDumper] to dump the ''boot1.img.tns'' and ''boot2.img.tns'' from your TI-Nspire.
Tutorials and general information are available in the [[Main_Page#Development_resources|Development resources]] section.
*Open a DOS console
 
*Follow [https://www.omnimaga.org/ti-nspire-projects/ti-nspire-emulator/msg279905/#msg279905 these instructions]
===Version upgrade===
==Ncubate==
The executable format, the conventions and the header files are currently being defined and prone to change. Some changes are forced by This section describes the upgrade steps between the different releases of Ndless.
'''[https://www.omnimaga.org/other-calculator-discussion-and-news/ncubate-enhanced-ti-nspire-emulator/ Ncubate]''' is a derived version of ''nspire_emu'' enhanced with features useful to developers, such as state saving/reloading, additional debugger commands and [[Debugging programs#Ncubate's GDB support|support for the GDB debugger]].
 
It is not compatible with OS v3.x.
====Between v3.1, v3.6, and v3.9====
==Xspire==
*Should work directly for most programs if they don't contain any OS-version specific addresses (SYSCALL_CUSTOM(), hooks, etc.)
'''Xspire''' is a port of ''nspire_emu'' for the GTK+ GUI library, compatible with Windows and Linux. This port also supports skins. You can download it from the [http://www.unitedti.org/forum/index.php?showtopic=8191&st=720 United-TI thread] (account required). Note that a more recent version may be available further in the thread. The GDK/GTK+ libraries are required for it to work (Windows users should use the [http://sourceforge.net/projects/gtk-win/ Windows port]).
 
==Nspire Memory Editor==
====From v2.0 to v3.1====
The '''Nspire Memory Editor''' plugs itself into ''nspire_emu'' to offer advanced memory-related features, such as hexadecimal memory edition, string and binary search, memory chunks read and write, and string or instruction-based breakpoints. Download it from the [http://www.unitedti.org/forum/index.php?showtopic=8191&st=720 United-TI thread] (account required). Note that a more recent version may be available further in the thread.
*Programs must be rebuilt to work on TI-Nspire CX because of several hardware changes. Programs with low-level accesses to hardware must also be slightly adapted: some hardware controllers have changed and their registers are laid out differently. The [[libndls#Hardware|IO() macro]] can be used to select the address corresponding to the TI-Nspire model.
**The LCD control register of the [[Memory-mapped_I/O_ports#C0000000_-_LCD_controller|LCD controller]] has moved from C000001C to C0000018. Use IO_LCD_CONTROL instead.
**The [[Memory-mapped_I/O_ports#900D0000_-_Second_timer|timer module]] has changed and has completely different registers
**Programs are run in color mode. Add ''clrscr(); lcd_ingray();'' at the beginning of a program ported from classic TI-Nspire to CX (the ''clrscr()'' avoids displaying color data that remains in screen buffer)
**Keep the TI-Nspire classic user base in mind: make your programs compatible with both color and grayscale mode with the help of ''has_color'' . The color screen buffer is in [[Memory-mapped_I/O_ports#A4000000_-_Internal_SRAM|R5G6B5 mode]].
*Programs which use ''show_msgbox()'' must be rebuilt with the new SDK, even for TI-NSpire classic
*SYSCALL_CUSTOM(): the first parameter should now only contain [[Ndless_features_and_limitations#Syscalls|OS v3.1 addresses]].
 
====From v1.7 to v2.0====
* Touchpad key map support: rebuild your programs with the SDK of v2.0, which includes an updated <tt>isKeyPressed()</tt> function. Make sure that the programs do not depend on keys specific to the Clickpad.
 
====From v1.1.x to v1.7====
 
C and assembly programs:
* The syscall convention has changed, programs built with Ndless < v1.7 need to be rebuilt without any change to the code. This format should be compatible with the new OS versions once supported by Ndless, as long as backward compatibility can be kept.
* Custom syscalls should be defined using SYSCALL_CUSTOM (see above)
* The "PRG\0" signature before main() isn't required anymore, you can remove it
* MakeTNS doesn't exist anymore. You must objcopy directly to the .tns file in your Makefile.
* The program format is not specific to an hardware model anymore. You can now build your programs only once without defining NSPIRE_HARDWARE.
* OS v1.1 is not supported anymore. Check that your programs still work on OS v1.7.
* The program path is passed to the main function by following the C calling convention instead of using register r9
 
Assembly programs:
* The way to call syscalls has changed: replace 'oscall <os_function>' with 'syscall(<os_function>)'
 
====From v1.0 to v1.1====
 
C and assembly programs:
* Install the toolchain as described above. Your project doesn't need to follow the Ndless file tree anymore.
* Adapt your Makefile based on src/arm/Makefile or src/arm/demo/Makefile
* You may upgrade to the latest version of YAGARTO. Don't forget to delete any remaining *.o file before rebuilding a project.
 
Pure-assembly programs:
* Make sure that the file extensions is in uppercase (.S)
* Add the "main" symbol as described in the previous section
* You do not need to define the symbol "_start" anymore

Latest revision as of 14:11, 21 June 2019

Current programs

Firebird

Firebird is a fork of nspire_emu. It runs natively on Windows, Linux, Mac, Android, and iOS, thanks to a Qt-based GUI. It is still in development, but is available on GitHub.
Added/Changed features compared to nspire_emu are mainly improvements to the emulator core to make it more powerful as well as a fully-featured GUI to go along more user-friendly additions.
Like nspire_emu, use PolyDumper to dump the boot1.img.tns and boot2.img.tns from your TI-Nspire. Diags and Manuf can also be dumped and used in Firebird (see the flash creation feature)

Obsolete programs

nspire_emu

nspire_emu is a TI-Nspire Clickpad/TouchPad/LabStation/CX (CAS) emulator, and was the first one made. It only supports Windows, but is compatible with Wine on other OSes. You can download it here or here. Its official discussion thread is on Omnimaga. Most TI-Nspire emulators derive from nspire_emu. Note that these custom versions are not always kept up-to-date with the latest version of nspire_emu. Setup:

Ncubate

Ncubate is a derived version of nspire_emu enhanced with features useful to developers, such as state saving/reloading, additional debugger commands and support for the GDB debugger. It is not compatible with OS v3.x.

Xspire

Xspire is a port of nspire_emu for the GTK+ GUI library, compatible with Windows and Linux. This port also supports skins. You can download it from the United-TI thread (account required). Note that a more recent version may be available further in the thread. The GDK/GTK+ libraries are required for it to work (Windows users should use the Windows port).

Nspire Memory Editor

The Nspire Memory Editor plugs itself into nspire_emu to offer advanced memory-related features, such as hexadecimal memory edition, string and binary search, memory chunks read and write, and string or instruction-based breakpoints. Download it from the United-TI thread (account required). Note that a more recent version may be available further in the thread.