0 Members and 3 Guests are viewing this topic.
[ASCII] PRG\0 // Compatibility[Asm] B CodeStart // Compatibility[ASCII] STDNDLESS // Used to identify that the Ndless Standard is being used[Headers] [Header data] // Metadata[ASCII] M_END // End of metadata[Asm] .CodeStart // Label to jump to[Raw Data] [Executable] // Actual program contentsThe format for headers would be as follows:[ASCII] H_START // Signifies the start of a header[ASCII] [Header Name] // Used to identify which header this is (null terminated)[Raw Data] [Header data] // The actual header dataThese would be the required Ndless headers (required if following this format, not if otherwise):Name: NDLESS_M_VERDescription: The minimum required version of NdlessData: ASCII representation of the version number (ex. "1.7")Name: NDLESS_T_VERDescription: The target version of Ndless. (The one that this file was built with)Data: ASCII representation of the version number (ex. "1.7")Name: SUPPORTED_HWDescription: All versions of the TI-Nspire supportedData: Null-terminated list of supported hardware versions Hardware Versions: 0x01: TI-Nspire Clickpad 0x02: TI-Nspire Clickpad CAS 0x03: TI-Nspire Touchpad 0x04: TI-Nspire Touchpad CAS
struct header { char[8] "NdlessEx"; // Identifies program as Ndless executable void (*main)(); // Pointer to main entry point, or 0 if no basic main entry point is specified void *relocationData; // Pointer to relocation data block, or 0 if no relocation data is present void *metadata; // Pointer to meta-data block, or 0 if no meta-data is present void *debugSymbols; // Pointer to table of debugging information, or 0 if no debugging information is present int 0; // Specifies that no additional pointers are present in the header block};