Files
sigmaker-ida/idasdk76/ldr/pilot/pilot.hpp
2021-10-31 21:20:46 +02:00

149 lines
5.3 KiB
C++

/*
* Interactive disassembler (IDA).
* Copyright (c) 1990-98 by Ilfak Guilfanov.
* ALL RIGHTS RESERVED.
* E-mail: ig@estar.msk.su
* FIDO: 2:5020/209
*
*/
#ifndef __PILOT_H
#define __PILOT_H
#pragma pack(push, 1)
#include <time.h>
#define PRC_68K "PalmPilot program file (68K)"
#define PRC_ARM "PalmPilot program file (ARM)"
// Regular resources:
#define PILOT_RSC_CODE 0x65646F63L // "code\0\0\0\1" program code
#define PILOT_RSC_PREF 0x66657270L // "pref\0\0\0\0" preferences (not used yet)
#define PILOT_RSC_DATA 0x61746164L // "data\0\0\0\0" image of global data
#define PILOT_RSC_LIBR 0x7262696CL // "libr" SysLib-type shared library code
#define PILOT_RSC_GLIB 0x62694C47L // "GLib" PRC-Tools GLib-type shared library code
#define PILOT_RSC_RLOC 0x636F6C72L // "rloc" PRC-Tools and Multilink relocations
#define PILOT_RSC_ARMC 0x434D5241L // "ARMC" ARM native code
#define PILOT_RSC_ARMCL 0x636D7261L // "armc" ARM native code
// UI resources:
#define PILOT_RSC_MBAR 0x5241424DL // "MBAR" Menu bar
#define PILOT_RSC_MENU 0x554E454DL // "MENU" Menu options
#define PILOT_RSC_ICON 0x4E494174L // "tAIN" Application icon name
#define PILOT_RSC_AIB 0x42494174L // "tAIB" Application icon bitmap
#define PILOT_RSC_AIS 0x53494174L // "tAIS" Application information string
#define PILOT_RSC_ALERT 0x746C6154L // "Talt" Alert
#define PILOT_RSC_BITMAP 0x706D6254L // "Tbmp" Bitmap
#define PILOT_RSC_BUTTON 0x4E544274L // "tBTN" Button
#define PILOT_RSC_CHECK 0x58424374L // "tCBX" Check box
#define PILOT_RSC_FBM 0x4D424674L // "tFBM" Form bitmap
#define PILOT_RSC_FIELD 0x444C4674L // "tFLD" Field
#define PILOT_RSC_FORM 0x4D524674L // "tFRM" Form
#define PILOT_RSC_GADGET 0x54444774L // "tGDT" Gadget
#define PILOT_RSC_GRAFF 0x49534774L // "tGSI" Graffiti Shift
#define PILOT_RSC_LABEL 0x4C424C74L // "tLBL" Label
#define PILOT_RSC_LIST 0x54534C74L // "tLST" List box
#define PILOT_RSC_PUSH 0x4E425074L // "tPBN" Push button
#define PILOT_RSC_POPUPL 0x4C555074L // "tPUL" Popup list
#define PILOT_RSC_POPUPT 0x54555074L // "tPUT" Popup trigger
#define PILOT_RSC_REPEAT 0x50455274L // "tREP" Repeating control
#define PILOT_RSC_SELECT 0x544C5374L // "tSLT" Selector trigger
#define PILOT_RSC_STRING 0x52545374L // "tSTR" String
#define PILOT_RSC_TABLE 0x4C425474L // "tTBL" Table
#define PILOT_RSC_TITLE 0x4C545474L // "tTTL" Title
#define PILOT_RSC_VER 0x72657674L // "tver" Version number string
typedef uchar Byte;
typedef ushort Word;
typedef uint32 DWord;
typedef DWord LocalID;
//
// Header of PRC file:
//
struct DatabaseHdrType
{
Byte name[32]; // name of database
#define PILOT_CREATOR_PILA 0x616C6950L // "Pila"
Word attributes; // database attributes
#define dmHdrAttrResDB 0x0001 // Resource database
#define dmHdrAttrReadOnly 0x0002 // Read Only database
#define dmHdrAttrAppInfoDirty 0x0004 // Set if Application Info block is dirty
// Optionally supported by an App's conduit
#define dmHdrAttrBackup 0x0008 // Set if database should be backed up to PC if
// no app-specific synchronization conduit has
// been supplied.
#define dmHdrAttrOpen 0x8000 // Database not closed properly
Word version; // version of database
DWord creationDate; // creation date of database
DWord modificationDate; // latest modification date
DWord lastBackupDate; // latest backup date
DWord modificationNumber; // modification number of database
LocalID appInfoID; // application specific info
LocalID sortInfoID; // app specific sorting info
DWord type; // database type
#define PILOT_TYPE_APPL 0x6C707061L // "appl"
DWord id; // program id
DWord uniqueIDSeed; // used to generate unique IDs.
// Note that only the low order
// 3 bytes of this is used (in
// RecordEntryType.uniqueID).
// We are keeping 4 bytes for
// alignment purposes.
LocalID nextRecordListID; // local chunkID of next list
Word numRecords; // number of records in this list
};
//
// Each resource has the following entry:
//
struct ResourceMapEntry
{
uint32 fcType;
ushort id;
uint32 ulOffset;
};
// Pilot bitmap format (also format of icon)
struct pilot_bitmap_t
{
ushort cx;
ushort cy;
ushort cbRow;
ushort ff;
ushort ausUnk[4];
};
/*
* code0000[long 0] nBytesAboveA5
* code0000[long 1] nBytesBelowA5
*/
struct code0000_t
{
uint32 nBytesAboveA5;
uint32 nBytesBelowA5;
};
// pref0000
struct pref0000_t
{
ushort flags;
#define sysAppLaunchFlagNewThread 0x0001
#define sysAppLaunchFlagNewStack 0x0002
#define sysAppLaunchFlagNewGlobals 0x0004
#define sysAppLaunchFlagUIApp 0x0008
#define sysAppLaunchFlagSubCall 0x0010
uint32 stack_size;
uint32 heap_size;
};
#pragma pack(pop)
#endif // __PILOT_H