 |
HARDWARE_PARM_BLOCK |
Type (Structure) |
Structure describing the calculator hardware.
The hardware parameter block contains a description of the calculator hardware.
This structure is mainly used with the FL_getHardwareParmBlock function.
Some fields of the HARDWARE_PARM_BLOCK structure are not available in earlier
versions of the calculator. Only the len and hardwareID fields are available in all boot
code versions. It is important to check the value of len before accessing any
values after hardwareID. You can use offsetof to
determine if a particular field is present.
The TI-89 and TI-92 Plus allocate the same amount of memory for the LCD.
However, the TI-89 cannot display as much as the TI-92 Plus.
LCDBitsWide and LCDBitsTall reflect how much of the calculator's
LCD memory the user can see.
If len is 24 or more, gateArray contains a hardware version number
(currently 1 (HW1) or 2 (HW2)). Otherwise, the calculator is certainly a HW1 calculator.
Here is an example (called "Hardware Parameters") which returns the
complete hardware parameter block as a list:
// Return the hardware parameter block as a list
#define USE_TI89 // Compile for TI-89
#define USE_TI92PLUS // Compile for TI-92 Plus
#define USE_V200 // Compile for V200
#define RETURN_VALUE // Return Pushed Expression
#define MIN_AMS 100 // Compile for AMS 1.00 or higher
#include <tigcclib.h> // Include All Header Files
// Main Function
void _main(void)
{
const HARDWARE_PARM_BLOCK *hpb = FL_getHardwareParmBlock ();
const unsigned long *curptr;
push_END_TAG ();
for (curptr = (const unsigned long *) &(hpb->hardwareID) + hpb->len / 4 - 1; (unsigned long) curptr > (unsigned long) hpb; curptr--)
{
push_quantum (*curptr);
push_quantum (1);
push_quantum (POSINT_TAG);
}
push_quantum (hpb->len);
push_quantum (1);
push_quantum (POSINT_TAG);
push_LIST_TAG ();
}
See also: FL_getHardwareParmBlock