| HARDWARE_PARM_BLOCK | Type (Structure)

flash.h

typedef struct {
| unsigned short len; /* length of parameter block */
| unsigned long hardwareID; /* 1 = TI-92 Plus, 3 = TI-89 */
| unsigned long hardwareRevision; /* hardware revision number */
| unsigned long bootMajor; /* boot code version number */
| unsigned long bootRevision; /* boot code revision number */
| unsigned long bootBuild; /* boot code build number */
| unsigned long gateArray; /* gate array version number */
| unsigned long physDisplayBitsWide; /* display width */
| unsigned long physDisplayBitsTall; /* display height */
| unsigned long LCDBitsWide; /* visible display width */
| unsigned long LCDBitsTall; /* visible display height */
} HARDWARE_PARM_BLOCK;

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