diff options
author | Benjamin Barenblat <bbarenblat@gmail.com> | 2021-11-23 23:13:26 -0500 |
---|---|---|
committer | Benjamin Barenblat <bbarenblat@gmail.com> | 2021-11-23 23:13:26 -0500 |
commit | e5df1aafb6d1346207343ccb858fa373e6b86301 (patch) | |
tree | fb26f0091dda7dd69d48d6b06169ea618332b99e /SrcShared/EmPalmStructs.i |
Check in the Palm OS Emulator, version 3.5 (2001). These files come from
the tarball present in the Debian archives [1]. The SHA-256 digest of
the tarball, c5e0d23424e88525bfba0ecdf0a432a8d93c885d04740df06a9eeee44e5f25e4,
matches the digest preserved in the FreeBSD ports tree [2], giving
further confidence that these files are as distributed by upstream.
[1] http://archive.debian.org/debian/pool/contrib/p/pose/
[2] https://svnweb.freebsd.org/ports/head/palm/pose/distinfo?revision=271305&view=markup&pathrev=282162
Diffstat (limited to 'SrcShared/EmPalmStructs.i')
-rw-r--r-- | SrcShared/EmPalmStructs.i | 3709 |
1 files changed, 3709 insertions, 0 deletions
diff --git a/SrcShared/EmPalmStructs.i b/SrcShared/EmPalmStructs.i new file mode 100644 index 0000000..728d945 --- /dev/null +++ b/SrcShared/EmPalmStructs.i @@ -0,0 +1,3709 @@ +/* -*- mode: C++; tab-width: 4 -*- */ +/* ===================================================================== *\ + Copyright (c) 2000-2001 Palm, Inc. or its subsidiaries. + All rights reserved. + + This file is part of the Palm OS Emulator. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. +\* ===================================================================== */ + +// This file contains the macros that define the fields of structs in a +// way that allows us to create wrapper classes that access those fields +// in a binary-compatible, cross-platform fashion. +// +// This file is #included by EmPalmStructs.h. The macros are stored in +// this separate .i file merely because of problems trying to edit them +// if they're stored in EmPalmStructs.h. Visual Studio's editor seems +// to get bogged down when trying to edit a source file containing many +// large macros. It frequently "goes to lunch" for a second or so, +// making editing, selecting, scrolling, etc., very frustrating. Placing +// the macros in a .i file -- which the editor doesn't seem to try to +// parse -- eliminates this problem. + + +// Define macros that allow us to iterate over all the fields in a struct. +// The various columns are: +// +// 1: field offset +// 2: field type +// 3: field name + +/* + # Format the first column + find ¥; replace -c ° /(¶tDO_TO_FIELD ¶([0-9]Ç1,1È,)¨1[¶t]+(Å)¨2/ "¨1¶t¶t¨2" + find ¥; replace -c ° /(¶tDO_TO_FIELD ¶([0-9]Ç2,4È,)¨1[¶t]+(Å)¨2/ "¨1¶t¨2" + + # Format the second column + find ¥; replace -c ° /(Å,[¶t]+[_a-z0-9]Ç1,2È,)¨1[¶t]+(Å)¨2/ "¨1¶t¶t¶t¶t¶t¶t¶t¨2" + find ¥; replace -c ° /(Å,[¶t]+[_a-z0-9]Ç3,6È,)¨1[¶t]+(Å)¨2/ "¨1¶t¶t¶t¶t¶t¶t¨2" + find ¥; replace -c ° /(Å,[¶t]+[_a-z0-9]Ç7,10È,)¨1[¶t]+(Å)¨2/ "¨1¶t¶t¶t¶t¶t¨2" + find ¥; replace -c ° /(Å,[¶t]+[_a-z0-9]Ç11,14È,)¨1[¶t]+(Å)¨2/ "¨1¶t¶t¶t¶t¨2" + find ¥; replace -c ° /(Å,[¶t]+[_a-z0-9]Ç15,18È,)¨1[¶t]+(Å)¨2/ "¨1¶t¶t¶t¨2" + find ¥; replace -c ° /(Å,[¶t]+[_a-z0-9]Ç19,22È,)¨1[¶t]+(Å)¨2/ "¨1¶t¶t¨2" + find ¥; replace -c ° /(Å,[¶t]+[_a-z0-9]Ç23,99È,)¨1[¶t]+(Å)¨2/ "¨1¶t¨2" + + # Format the third column + find ¥; replace -c ° /(,[¶t]+[_a-z0-9]Ç1,2ȶ))¨5[¶t]+\/ "¨5¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(,[¶t]+[_a-z0-9]Ç3,6ȶ))¨5[¶t]+\/ "¨5¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(,[¶t]+[_a-z0-9]Ç7,10ȶ))¨5[¶t]+\/ "¨5¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(,[¶t]+[_a-z0-9]Ç11,14ȶ))¨5[¶t]+\/ "¨5¶t¶t¶t¶t\" + find ¥; replace -c ° /(,[¶t]+[_a-z0-9]Ç15,18ȶ))¨5[¶t]+\/ "¨5¶t¶t¶t\" + find ¥; replace -c ° /(,[¶t]+[_a-z0-9]Ç19,22ȶ))¨5[¶t]+\/ "¨5¶t¶t\" + find ¥; replace -c ° /(,[¶t]+[_a-z0-9]Ç23,99ȶ))¨5[¶t]+\/ "¨5¶t\" + + # Format the #define lines + find ¥; replace -c ° /(¶#define [¶t]Ç1,3È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç4,7È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç8,11È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç12,15È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç16,19È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç20,23È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç24,27È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç28,31È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç32,35È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç36,39È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç40,43È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç44,47È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç48,51È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç52,55È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç56,59È)¨1[¶t]+\/ "¨1¶t¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç60,63È)¨1[¶t]+\/ "¨1¶t¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç64,67È)¨1[¶t]+\/ "¨1¶t¶t\" + find ¥; replace -c ° /(¶#define [¶t]Ç68,99È)¨1[¶t]+\/ "¨1¶t\" +*/ + +// ======================================== +// ===== generic ===== +// ======================================== + +#define FOR_generic_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (generic, 16, FOR_generic_FIELDS) + +#define FOR_generic_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, datum) \ + + +// ======================================== +// ===== penUp ===== +// ======================================== + +#define FOR_penUp_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (penUp, 8, FOR_penUp_FIELDS) + +#define FOR_penUp_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, PointType, start) \ + DO_TO_FIELD (4, PointType, end) \ + + +// ======================================== +// ===== keyDown ===== +// ======================================== + +#define FOR_keyDown_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (keyDown, 6, FOR_keyDown_FIELDS) + +#define FOR_keyDown_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, WChar, chr) \ + DO_TO_FIELD (2, UInt16, keyCode) \ + DO_TO_FIELD (4, UInt16, modifiers) \ + + +// ======================================== +// ===== winEnter ===== +// ======================================== + +#define FOR_winEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (winEnter, 8, FOR_winEnter_FIELDS) + +#define FOR_winEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, enterWindow) \ + DO_TO_FIELD (4, emuptr, exitWindow) \ + + +// ======================================== +// ===== winExit ===== +// ======================================== + +#define FOR_winExit_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (winExit, 8, FOR_winExit_FIELDS) + +#define FOR_winExit_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, enterWindow) \ + DO_TO_FIELD (4, emuptr, exitWindow) \ + + +// ======================================== +// ===== tsmConfirm ===== +// ======================================== + +#define FOR_tsmConfirm_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (tsmConfirm, 6, FOR_tsmConfirm_FIELDS) + +#define FOR_tsmConfirm_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, yomiText) \ + DO_TO_FIELD (4, UInt16, formID) \ + + +// ======================================== +// ===== tsmFepButton ===== +// ======================================== + +#define FOR_tsmFepButton_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (tsmFepButton, 2, FOR_tsmFepButton_FIELDS) + +#define FOR_tsmFepButton_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, buttonID) \ + + +// ======================================== +// ===== tsmFepMode ===== +// ======================================== + +#define FOR_tsmFepMode_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (tsmFepMode, 2, FOR_tsmFepMode_FIELDS) + +#define FOR_tsmFepMode_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, mode) \ + + +// ======================================== +// ===== ctlEnter ===== +// ======================================== + +#define FOR_ctlEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ctlEnter, 6, FOR_ctlEnter_FIELDS) + +#define FOR_ctlEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, controlID) \ + DO_TO_FIELD (2, emuptr, pControl) \ + + +// ======================================== +// ===== ctlSelect ===== +// ======================================== + +#define FOR_ctlSelect_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ctlSelect, 10, FOR_ctlSelect_FIELDS) + +#define FOR_ctlSelect_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, controlID) \ + DO_TO_FIELD (2, emuptr, pControl) \ + DO_TO_FIELD (6, Boolean, on) \ + DO_TO_FIELD (7, UInt8, reserved1) \ + DO_TO_FIELD (8, UInt16, value) \ + + +// ======================================== +// ===== ctlRepeat ===== +// ======================================== + +#define FOR_ctlRepeat_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ctlRepeat, 12, FOR_ctlRepeat_FIELDS) + +#define FOR_ctlRepeat_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, controlID) \ + DO_TO_FIELD (2, emuptr, pControl) \ + DO_TO_FIELD (6, UInt32, time) \ + DO_TO_FIELD (10, UInt16, value) \ + + +// ======================================== +// ===== ctlExit ===== +// ======================================== + +#define FOR_ctlExit_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ctlExit, 6, FOR_ctlExit_FIELDS) + +#define FOR_ctlExit_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, controlID) \ + DO_TO_FIELD (2, emuptr, pControl) \ + + +// ======================================== +// ===== fldEnter ===== +// ======================================== + +#define FOR_fldEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (fldEnter, 6, FOR_fldEnter_FIELDS) + +#define FOR_fldEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, fieldID) \ + DO_TO_FIELD (2, emuptr, pField) \ + + +// ======================================== +// ===== fldHeightChanged ===== +// ======================================== + +#define FOR_fldHeightChanged_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (fldHeightChanged, 10, FOR_fldHeightChanged_FIELDS) + +#define FOR_fldHeightChanged_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, fieldID) \ + DO_TO_FIELD (2, emuptr, pField) \ + DO_TO_FIELD (6, Int16, newHeight) \ + DO_TO_FIELD (8, UInt16, currentPos) \ + + +// ======================================== +// ===== fldChanged ===== +// ======================================== + +#define FOR_fldChanged_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (fldChanged, 6, FOR_fldChanged_FIELDS) + +#define FOR_fldChanged_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, fieldID) \ + DO_TO_FIELD (2, emuptr, pField) \ + + +// ======================================== +// ===== fldExit ===== +// ======================================== + +#define FOR_fldExit_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (fldExit, 6, FOR_fldExit_FIELDS) + +#define FOR_fldExit_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, fieldID) \ + DO_TO_FIELD (2, emuptr, pField) \ + + +// ======================================== +// ===== lstEnter ===== +// ======================================== + +#define FOR_lstEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (lstEnter, 8, FOR_lstEnter_FIELDS) + +#define FOR_lstEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, listID) \ + DO_TO_FIELD (2, emuptr, pList) \ + DO_TO_FIELD (6, Int16, selection) \ + + +// ======================================== +// ===== lstExit ===== +// ======================================== + +#define FOR_lstExit_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (lstExit, 6, FOR_lstExit_FIELDS) + +#define FOR_lstExit_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, listID) \ + DO_TO_FIELD (2, emuptr, pList) \ + + +// ======================================== +// ===== lstSelect ===== +// ======================================== + +#define FOR_lstSelect_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (lstSelect, 8, FOR_lstSelect_FIELDS) + +#define FOR_lstSelect_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, listID) \ + DO_TO_FIELD (2, emuptr, pList) \ + DO_TO_FIELD (6, Int16, selection) \ + + +// ======================================== +// ===== tblEnter ===== +// ======================================== + +#define FOR_tblEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (tblEnter, 10, FOR_tblEnter_FIELDS) + +#define FOR_tblEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, tableID) \ + DO_TO_FIELD (2, emuptr, pTable) \ + DO_TO_FIELD (6, Int16, row) \ + DO_TO_FIELD (8, Int16, column) \ + + +// ======================================== +// ===== tblExit ===== +// ======================================== + +#define FOR_tblExit_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (tblExit, 10, FOR_tblExit_FIELDS) + +#define FOR_tblExit_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, tableID) \ + DO_TO_FIELD (2, emuptr, pTable) \ + DO_TO_FIELD (6, Int16, row) \ + DO_TO_FIELD (8, Int16, column) \ + + +// ======================================== +// ===== tblSelect ===== +// ======================================== + +#define FOR_tblSelect_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (tblSelect, 10, FOR_tblSelect_FIELDS) + +#define FOR_tblSelect_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, tableID) \ + DO_TO_FIELD (2, emuptr, pTable) \ + DO_TO_FIELD (6, Int16, row) \ + DO_TO_FIELD (8, Int16, column) \ + + +// ======================================== +// ===== frmLoad ===== +// ======================================== + +#define FOR_frmLoad_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (frmLoad, 2, FOR_frmLoad_FIELDS) + +#define FOR_frmLoad_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + + +// ======================================== +// ===== frmOpen ===== +// ======================================== + +#define FOR_frmOpen_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (frmOpen, 2, FOR_frmOpen_FIELDS) + +#define FOR_frmOpen_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + + +// ======================================== +// ===== frmGoto ===== +// ======================================== + +#define FOR_frmGoto_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (frmGoto, 14, FOR_frmGoto_FIELDS) + +#define FOR_frmGoto_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + DO_TO_FIELD (2, UInt16, recordNum) \ + DO_TO_FIELD (4, UInt16, matchPos) \ + DO_TO_FIELD (6, UInt16, matchLen) \ + DO_TO_FIELD (8, UInt16, matchFieldNum) \ + DO_TO_FIELD (10, UInt32, matchCustom) \ + + +// ======================================== +// ===== frmClose ===== +// ======================================== + +#define FOR_frmClose_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (frmClose, 2, FOR_frmClose_FIELDS) + +#define FOR_frmClose_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + + +// ======================================== +// ===== frmUpdate ===== +// ======================================== + +#define FOR_frmUpdate_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (frmUpdate, 4, FOR_frmUpdate_FIELDS) + +#define FOR_frmUpdate_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + DO_TO_FIELD (2, UInt16, updateCode) \ + + +// ======================================== +// ===== frmTitleEnter ===== +// ======================================== + +#define FOR_frmTitleEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (frmTitleEnter, 2, FOR_frmTitleEnter_FIELDS) + +#define FOR_frmTitleEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + + +// ======================================== +// ===== frmTitleSelect ===== +// ======================================== + +#define FOR_frmTitleSelect_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (frmTitleSelect, 2, FOR_frmTitleSelect_FIELDS) + +#define FOR_frmTitleSelect_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + + +// ======================================== +// ===== attnIndicatorEnter ===== +// ======================================== + +#define FOR_attnIndicatorEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (attnIndicatorEnter, 2, FOR_attnIndicatorEnter_FIELDS) + +#define FOR_attnIndicatorEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + + +// ======================================== +// ===== attnIndicatorSelect ===== +// ======================================== + +#define FOR_attnIndicatorSelect_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (attnIndicatorSelect, 2, FOR_attnIndicatorSelect_FIELDS) + +#define FOR_attnIndicatorSelect_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, formID) \ + + +// ======================================== +// ===== daySelect ===== +// ======================================== + +#define FOR_daySelect_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (daySelect, 8, FOR_daySelect_FIELDS) + +#define FOR_daySelect_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, pSelector) \ + DO_TO_FIELD (4, Int16, selection) \ + DO_TO_FIELD (6, Boolean, useThisDate) \ + DO_TO_FIELD (7, UInt8, reserved1) \ + + +// ======================================== +// ===== menu ===== +// ======================================== + +#define FOR_menu_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (menu, 2, FOR_menu_FIELDS) + +#define FOR_menu_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, itemID) \ + + +// ======================================== +// ===== popSelect ===== +// ======================================== + +#define FOR_popSelect_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (popSelect, 16, FOR_popSelect_FIELDS) + +#define FOR_popSelect_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, controlID) \ + DO_TO_FIELD (2, emuptr, controlP) \ + DO_TO_FIELD (6, UInt16, listID) \ + DO_TO_FIELD (8, emuptr, listP) \ + DO_TO_FIELD (12, Int16, selection) \ + DO_TO_FIELD (14, Int16, priorSelection) \ + + +// ======================================== +// ===== sclEnter ===== +// ======================================== + +#define FOR_sclEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (sclEnter, 6, FOR_sclEnter_FIELDS) + +#define FOR_sclEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, scrollBarID) \ + DO_TO_FIELD (2, emuptr, pScrollBar) \ + + +// ======================================== +// ===== sclExit ===== +// ======================================== + +#define FOR_sclExit_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (sclExit, 10, FOR_sclExit_FIELDS) + +#define FOR_sclExit_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, scrollBarID) \ + DO_TO_FIELD (2, emuptr, pScrollBar) \ + DO_TO_FIELD (6, Int16, value) \ + DO_TO_FIELD (8, Int16, newValue) \ + + +// ======================================== +// ===== sclRepeat ===== +// ======================================== + +#define FOR_sclRepeat_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (sclRepeat, 14, FOR_sclRepeat_FIELDS) + +#define FOR_sclRepeat_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, scrollBarID) \ + DO_TO_FIELD (2, emuptr, pScrollBar) \ + DO_TO_FIELD (6, Int16, value) \ + DO_TO_FIELD (8, Int16, newValue) \ + DO_TO_FIELD (10, Int32, time) \ + + +// ======================================== +// ===== menuCmdBarOpen ===== +// ======================================== + +#define FOR_menuCmdBarOpen_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (menuCmdBarOpen, 2, FOR_menuCmdBarOpen_FIELDS) + +#define FOR_menuCmdBarOpen_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Boolean, preventFieldButtons) \ + DO_TO_FIELD (1, UInt8, reserved) \ + + +// ======================================== +// ===== menuOpen ===== +// ======================================== + +#define FOR_menuOpen_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (menuOpen, 4, FOR_menuOpen_FIELDS) + +#define FOR_menuOpen_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, menuRscID) \ + DO_TO_FIELD (2, Int16, cause) \ + + +// ======================================== +// ===== gadgetEnter ===== +// ======================================== + +#define FOR_gadgetEnter_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (gadgetEnter, 6, FOR_gadgetEnter_FIELDS) + +#define FOR_gadgetEnter_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, gadgetID) \ + DO_TO_FIELD (2, emuptr, gadgetP) \ + + +// ======================================== +// ===== gadgetMisc ===== +// ======================================== + +#define FOR_gadgetMisc_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (gadgetMisc, 12, FOR_gadgetMisc_FIELDS) + +#define FOR_gadgetMisc_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, gadgetID) \ + DO_TO_FIELD (2, emuptr, gadgetP) \ + DO_TO_FIELD (6, UInt16, selector) \ + DO_TO_FIELD (8, emuptr, dataP) \ + + +// ======================================== +// ===== AbsRectType ===== +// ======================================== + +#define FOR_AbsRectType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (AbsRectType, 8, FOR_AbsRectType_FIELDS) + +#define FOR_AbsRectType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Coord, left) \ + DO_TO_FIELD (2, Coord, top) \ + DO_TO_FIELD (4, Coord, right) \ + DO_TO_FIELD (6, Coord, bottom) \ + + +// ======================================== +// ===== BitmapTypeV2 ===== +// ======================================== + +#define FOR_BitmapTypeV2_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (BitmapTypeV2, 16, FOR_BitmapTypeV2_FIELDS) + +#define FOR_BitmapTypeV2_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, width) \ + DO_TO_FIELD (2, Int16, height) \ + DO_TO_FIELD (4, UInt16, rowBytes) \ + DO_TO_FIELD (6, UInt16, flags) \ + DO_TO_FIELD (8, UInt8, pixelSize) \ + DO_TO_FIELD (9, UInt8, version) \ + DO_TO_FIELD (10, UInt16, nextDepthOffset) \ + DO_TO_FIELD (12, UInt8, transparentIndex) \ + DO_TO_FIELD (13, UInt8, compressionType) \ + DO_TO_FIELD (14, UInt16, reserved) \ + + +// ======================================== +// ===== BitmapTypeV3 ===== +// ======================================== + +#define FOR_BitmapTypeV3_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (BitmapTypeV3, 24, FOR_BitmapTypeV3_FIELDS) + +#define FOR_BitmapTypeV3_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, width) \ + DO_TO_FIELD (2, Int16, height) \ + DO_TO_FIELD (4, UInt16, rowBytes) \ + DO_TO_FIELD (6, UInt16, flags) \ + DO_TO_FIELD (8, UInt8, pixelSize) \ + DO_TO_FIELD (9, UInt8, version) \ + DO_TO_FIELD (10, UInt8, size) \ + DO_TO_FIELD (11, UInt8, pixelFormat) \ + DO_TO_FIELD (12, UInt8, unused) \ + DO_TO_FIELD (13, UInt8, compressionType) \ + DO_TO_FIELD (14, UInt16, density) \ + DO_TO_FIELD (16, UInt32, transparentValue) \ + DO_TO_FIELD (20, UInt32, nextDepthOffset) \ + + +// ======================================== +// ===== BreakpointType ===== +// ======================================== + +#define FOR_BreakpointType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (BreakpointType, 6, FOR_BreakpointType_FIELDS) + +#define FOR_BreakpointType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, addr) \ + DO_TO_FIELD (4, Boolean, enabled) \ + DO_TO_FIELD (5, Boolean, installed) \ + + +// ======================================== +// ===== CardHeaderType ===== +// ======================================== + +#define FOR_CardHeaderType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (CardHeaderType, 256, FOR_CardHeaderType_FIELDS) + +#define FOR_CardHeaderType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, initStack) \ + DO_TO_FIELD (4, UInt32, resetVector) \ + DO_TO_FIELD (8, UInt32, signature) \ + DO_TO_FIELD (12, UInt16, hdrVersion) \ + DO_TO_FIELD (14, UInt16, flags) \ + DO_TO_FIELD (16, UInt8, name) \ + DO_TO_FIELD (48, UInt8, manuf) \ + DO_TO_FIELD (80, UInt16, version) \ + DO_TO_FIELD (82, UInt32, creationDate) \ + DO_TO_FIELD (86, UInt16, numRAMBlocks) \ + DO_TO_FIELD (88, UInt32, blockListOffset) \ + DO_TO_FIELD (92, UInt32, readWriteParmsOffset) \ + DO_TO_FIELD (96, UInt32, readWriteParmsSize) \ + DO_TO_FIELD (100, UInt32, readOnlyParmsOffset) \ + DO_TO_FIELD (104, UInt32, bigROMOffset) \ + DO_TO_FIELD (108, UInt32, checksumBytes) \ + DO_TO_FIELD (112, UInt16, checksumValue) \ + DO_TO_FIELD (114, UInt32, readWriteWorkingOffset) \ + DO_TO_FIELD (118, UInt32, readWriteWorkingSize) \ + DO_TO_FIELD (122, UInt32, halCodeOffset) \ + + +// ======================================== +// ===== CardInfoType ===== +// ======================================== + +#define FOR_CardInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (CardInfoType, 48, FOR_CardInfoType_FIELDS) + +#define FOR_CardInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, baseP) \ + DO_TO_FIELD (4, UInt32, size) \ + DO_TO_FIELD (8, UInt32, firstRAMBlockSize) \ + DO_TO_FIELD (12, UInt32, targetROMShift) \ + DO_TO_FIELD (16, UInt32, cardHeaderOffset) \ + DO_TO_FIELD (20, UInt32, rsvSpace) \ + DO_TO_FIELD (24, UInt32, dynHeapSpace) \ + DO_TO_FIELD (28, emuptr, ramStoreP) \ + DO_TO_FIELD (32, UInt16, numRAMHeaps) \ + DO_TO_FIELD (34, emuptr, ramHeapOffsetsP) \ + DO_TO_FIELD (38, UInt16, numROMHeaps) \ + DO_TO_FIELD (40, emuptr, romHeapOffsetsP) \ + DO_TO_FIELD (44, UInt32, cardOffsetMask) \ + + +// ======================================== +// ===== ClipboardItem ===== +// ======================================== + +#define FOR_ClipboardItem_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ClipboardItem, 6, FOR_ClipboardItem_FIELDS) + +#define FOR_ClipboardItem_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, item) \ + DO_TO_FIELD (4, UInt16, length) \ + + +// ======================================== +// ===== ControlAttrType ===== +// ======================================== + +#define FOR_ControlAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ControlAttrType, 2, FOR_ControlAttrType_FIELDS) + +#define FOR_ControlAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, flags) \ + + +// ======================================== +// ===== ControlType ===== +// ======================================== + +#define FOR_ControlType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ControlType, 20, FOR_ControlType_FIELDS) + +#define FOR_ControlType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, id) \ + DO_TO_FIELD (2, RectangleType, bounds) \ + DO_TO_FIELD (10, emuptr, text) \ + DO_TO_FIELD (14, ControlAttrType, attr) \ + DO_TO_FIELD (16, ControlStyleType, style) \ + DO_TO_FIELD (17, FontID, font) \ + DO_TO_FIELD (18, UInt8, group) \ + DO_TO_FIELD (19, UInt8, reserved) \ + + +// ======================================== +// ===== DatabaseDirEntryType ===== +// ======================================== + +#define FOR_DatabaseDirEntryType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DatabaseDirEntryType, 4, FOR_DatabaseDirEntryType_FIELDS) + +#define FOR_DatabaseDirEntryType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, LocalID, baseID) \ + + +// ======================================== +// ===== DatabaseDirType ===== +// ======================================== + +#define FOR_DatabaseDirType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DatabaseDirType, 10, FOR_DatabaseDirType_FIELDS) + +#define FOR_DatabaseDirType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, LocalID, nextDatabaseListID) \ + DO_TO_FIELD (4, UInt16, numDatabases) \ + DO_TO_FIELD (6, DatabaseDirEntryType, databaseID) \ + + +// ======================================== +// ===== DatabaseHdrType ===== +// ======================================== + +#define FOR_DatabaseHdrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DatabaseHdrType, 78, FOR_DatabaseHdrType_FIELDS) + +#define FOR_DatabaseHdrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, name) \ + DO_TO_FIELD (32, UInt16, attributes) \ + DO_TO_FIELD (34, UInt16, version) \ + DO_TO_FIELD (36, UInt32, creationDate) \ + DO_TO_FIELD (40, UInt32, modificationDate) \ + DO_TO_FIELD (44, UInt32, lastBackupDate) \ + DO_TO_FIELD (48, UInt32, modificationNumber) \ + DO_TO_FIELD (52, LocalID, appInfoID) \ + DO_TO_FIELD (56, LocalID, sortInfoID) \ + DO_TO_FIELD (60, UInt32, type) \ + DO_TO_FIELD (64, UInt32, creator) \ + DO_TO_FIELD (68, UInt32, uniqueIDSeed) \ + DO_TO_FIELD (72, RecordListType, recordList) \ + + +// ======================================== +// ===== DlkDBCreatorList ===== +// ======================================== + +#define FOR_DlkDBCreatorList_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DlkDBCreatorList, 6, FOR_DlkDBCreatorList_FIELDS) + +#define FOR_DlkDBCreatorList_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, count) \ + DO_TO_FIELD (2, emuptr, listH) \ + + +// ======================================== +// ===== DlkServerSessionType ===== +// ======================================== + +#define FOR_DlkServerSessionType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DlkServerSessionType, 146, FOR_DlkServerSessionType_FIELDS) + +#define FOR_DlkServerSessionType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, htalLibRefNum) \ + DO_TO_FIELD (2, UInt32, maxHtalXferSize) \ + DO_TO_FIELD (6, emuptr, eventProcP) \ + DO_TO_FIELD (10, UInt32, eventRef) \ + DO_TO_FIELD (14, emuptr, canProcP) \ + DO_TO_FIELD (18, UInt32, canRef) \ + DO_TO_FIELD (22, emuptr, condFilterH) \ + DO_TO_FIELD (26, UInt8, dlkDBID) \ + DO_TO_FIELD (27, UInt8, reserved1) \ + DO_TO_FIELD (28, emuptr, dbR) \ + DO_TO_FIELD (32, UInt16, cardNo) \ + DO_TO_FIELD (34, UInt32, dbCreator) \ + DO_TO_FIELD (38, Char, dbName) \ + DO_TO_FIELD (70, UInt16, dbOpenMode) \ + DO_TO_FIELD (72, Boolean, created) \ + DO_TO_FIELD (73, Boolean, isResDB) \ + DO_TO_FIELD (74, Boolean, ramBased) \ + DO_TO_FIELD (75, Boolean, readOnly) \ + DO_TO_FIELD (76, LocalID, dbLocalID) \ + DO_TO_FIELD (80, UInt32, initialModNum) \ + DO_TO_FIELD (84, UInt32, curRecIndex) \ + DO_TO_FIELD (88, DlkDBCreatorList, creatorList) \ + DO_TO_FIELD (94, UInt8, syncState) \ + DO_TO_FIELD (95, Boolean, complete) \ + DO_TO_FIELD (96, Boolean, conduitOpened) \ + DO_TO_FIELD (97, Boolean, logCleared) \ + DO_TO_FIELD (98, Boolean, resetPending) \ + DO_TO_FIELD (99, Boolean, gotCommand) \ + DO_TO_FIELD (100, UInt8, cmdTID) \ + DO_TO_FIELD (101, UInt8, reserved2) \ + DO_TO_FIELD (102, UInt16, cmdLen) \ + DO_TO_FIELD (104, emuptr, cmdP) \ + DO_TO_FIELD (108, emuptr, cmdH) \ + DO_TO_FIELD (112, UInt16, wStateFlags) \ + DO_TO_FIELD (114, DmSearchStateType, dbSearchState) \ + + +// ======================================== +// ===== DmAccessType ===== +// ======================================== + +#define FOR_DmAccessType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DmAccessType, 16, FOR_DmAccessType_FIELDS) + +#define FOR_DmAccessType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, next) \ + DO_TO_FIELD (4, UInt16, mode) \ + DO_TO_FIELD (6, emuptr, openP) \ + DO_TO_FIELD (10, UInt32, savedModNum) \ + DO_TO_FIELD (14, UInt8, openType) \ + DO_TO_FIELD (15, UInt8, reserved) \ + + +// ======================================== +// ===== DmOpenInfoType ===== +// ======================================== + +#define FOR_DmOpenInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DmOpenInfoType, 36, FOR_DmOpenInfoType_FIELDS) + +#define FOR_DmOpenInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, next) \ + DO_TO_FIELD (4, UInt16, openCount) \ + DO_TO_FIELD (6, UInt32, ownerTaskID) \ + DO_TO_FIELD (10, UInt16, flags) \ + DO_TO_FIELD (12, LocalID, hdrID) \ + DO_TO_FIELD (16, emuptr, hdrH) \ + DO_TO_FIELD (20, emuptr, hdrP) \ + DO_TO_FIELD (24, UInt16, cardNo) \ + DO_TO_FIELD (26, UInt16, numRecords) \ + DO_TO_FIELD (28, emuptr, hdrMasterP) \ + DO_TO_FIELD (32, emuptr, handleTableP) \ + + +// ======================================== +// ===== DmSearchStateType ===== +// ======================================== + +#define FOR_DmSearchStateType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (DmSearchStateType, 32, FOR_DmSearchStateType_FIELDS) + +#define FOR_DmSearchStateType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, info) \ + + +// ======================================== +// ===== EventTypeData ===== +// ======================================== + +#define FOR_EventTypeData_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (EventTypeData, 16, FOR_EventTypeData_FIELDS) + +#define FOR_EventTypeData_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, generic, generic) \ + DO_TO_FIELD (0, penUp, penUp) \ + DO_TO_FIELD (0, keyDown, keyDown) \ + DO_TO_FIELD (0, winEnter, winEnter) \ + DO_TO_FIELD (0, winExit, winExit) \ + DO_TO_FIELD (0, tsmConfirm, tsmConfirm) \ + DO_TO_FIELD (0, tsmFepButton, tsmFepButton) \ + DO_TO_FIELD (0, tsmFepMode, tsmFepMode) \ + DO_TO_FIELD (0, ctlEnter, ctlEnter) \ + DO_TO_FIELD (0, ctlSelect, ctlSelect) \ + DO_TO_FIELD (0, ctlRepeat, ctlRepeat) \ + DO_TO_FIELD (0, ctlExit, ctlExit) \ + DO_TO_FIELD (0, fldEnter, fldEnter) \ + DO_TO_FIELD (0, fldHeightChanged, fldHeightChanged) \ + DO_TO_FIELD (0, fldChanged, fldChanged) \ + DO_TO_FIELD (0, fldExit, fldExit) \ + DO_TO_FIELD (0, lstEnter, lstEnter) \ + DO_TO_FIELD (0, lstExit, lstExit) \ + DO_TO_FIELD (0, lstSelect, lstSelect) \ + DO_TO_FIELD (0, tblEnter, tblEnter) \ + DO_TO_FIELD (0, tblExit, tblExit) \ + DO_TO_FIELD (0, tblSelect, tblSelect) \ + DO_TO_FIELD (0, frmLoad, frmLoad) \ + DO_TO_FIELD (0, frmOpen, frmOpen) \ + DO_TO_FIELD (0, frmGoto, frmGoto) \ + DO_TO_FIELD (0, frmClose, frmClose) \ + DO_TO_FIELD (0, frmUpdate, frmUpdate) \ + DO_TO_FIELD (0, frmTitleEnter, frmTitleEnter) \ + DO_TO_FIELD (0, frmTitleSelect, frmTitleSelect) \ + DO_TO_FIELD (0, attnIndicatorEnter, attnIndicatorEnter) \ + DO_TO_FIELD (0, attnIndicatorSelect, attnIndicatorSelect) \ + DO_TO_FIELD (0, daySelect, daySelect) \ + DO_TO_FIELD (0, menu, menu) \ + DO_TO_FIELD (0, popSelect, popSelect) \ + DO_TO_FIELD (0, sclEnter, sclEnter) \ + DO_TO_FIELD (0, sclExit, sclExit) \ + DO_TO_FIELD (0, sclRepeat, sclRepeat) \ + DO_TO_FIELD (0, menuCmdBarOpen, menuCmdBarOpen) \ + DO_TO_FIELD (0, menuOpen, menuOpen) \ + DO_TO_FIELD (0, gadgetEnter, gadgetEnter) \ + DO_TO_FIELD (0, gadgetMisc, gadgetMisc) \ + + +// ======================================== +// ===== EventType ===== +// ======================================== + +#define FOR_EventType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (EventType, 24, FOR_EventType_FIELDS) + +#define FOR_EventType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, eType) \ + DO_TO_FIELD (2, Boolean, penDown) \ + DO_TO_FIELD (3, UInt8, tapCount) \ + DO_TO_FIELD (4, Int16, screenX) \ + DO_TO_FIELD (6, Int16, screenY) \ + DO_TO_FIELD (8, EventTypeData, data) \ + + +// ======================================== +// ===== ExgGoToType ===== +// ======================================== + +#define FOR_ExgGoToType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ExgGoToType, 16, FOR_ExgGoToType_FIELDS) + +#define FOR_ExgGoToType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, dbCardNo) \ + DO_TO_FIELD (2, LocalID, dbID) \ + DO_TO_FIELD (6, UInt16, recordNum) \ + DO_TO_FIELD (8, UInt32, uniqueID) \ + DO_TO_FIELD (12, UInt32, matchCustom) \ + + +// ======================================== +// ===== ExgSocketType ===== +// ======================================== + +#define FOR_ExgSocketType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ExgSocketType, 60, FOR_ExgSocketType_FIELDS) + +#define FOR_ExgSocketType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, libraryRef) \ + DO_TO_FIELD (2, UInt32, socketRef) \ + DO_TO_FIELD (6, UInt32, target) \ + DO_TO_FIELD (10, UInt32, count) \ + DO_TO_FIELD (14, UInt32, length) \ + DO_TO_FIELD (18, UInt32, time) \ + DO_TO_FIELD (22, UInt32, appData) \ + DO_TO_FIELD (26, UInt32, goToCreator) \ + DO_TO_FIELD (30, ExgGoToType, goToParams) \ + DO_TO_FIELD (46, UInt16, flags) \ + DO_TO_FIELD (48, emuptr, description) \ + DO_TO_FIELD (52, emuptr, type) \ + DO_TO_FIELD (56, emuptr, name) \ + + +// ======================================== +// ===== FieldUndoType ===== +// ======================================== + +#define FOR_FieldUndoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FieldUndoType, 12, FOR_FieldUndoType_FIELDS) + +#define FOR_FieldUndoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UndoMode, mode) \ + DO_TO_FIELD (1, UInt8, reserved) \ + DO_TO_FIELD (2, UInt16, start) \ + DO_TO_FIELD (4, UInt16, end) \ + DO_TO_FIELD (6, UInt16, bufferLen) \ + DO_TO_FIELD (8, emuptr, buffer) \ + + +// ======================================== +// ===== FixedGlobalsType ===== +// ======================================== + +#undef memCardInfoP + +#define FOR_FixedGlobalsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FixedGlobalsType, 650, FOR_FixedGlobalsType_FIELDS) + +#define FOR_FixedGlobalsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, memCardSlots) \ + DO_TO_FIELD (1, UInt8, dbgWasEntered) \ + DO_TO_FIELD (2, emuptr, memCardInfoP) \ + DO_TO_FIELD (6, UInt32, memSemaphoreID) \ + DO_TO_FIELD (10, UInt16, memDebugMode) \ + DO_TO_FIELD (12, emuptr, dmOpenList) \ + DO_TO_FIELD (16, UInt8, dbgInDebugger) \ + DO_TO_FIELD (17, UInt8, dbgTracing) \ + DO_TO_FIELD (18, emuptr, dbgGlobalsP) \ + DO_TO_FIELD (22, emuptr, dbgSerGlobalsP) \ + DO_TO_FIELD (26, emuptr, sysAppInfoP) \ + DO_TO_FIELD (30, emuptr, sysKernelDataP) \ + DO_TO_FIELD (34, emuptr, sysDispatchTableP) \ + DO_TO_FIELD (38, UInt32, sysOwnerIDsInUse) \ + DO_TO_FIELD (42, emuptr, sysAMXAppInfoP) \ + DO_TO_FIELD (46, UInt32, sysClockFreq) \ + DO_TO_FIELD (50, emuptr, sysHardKeyCreators) \ + DO_TO_FIELD (54, Int16, sysBatteryCheckTimer) \ + DO_TO_FIELD (56, UInt8, sysBatteryMinThreshold) \ + DO_TO_FIELD (57, UInt8, hwrBatteryLevel) \ + DO_TO_FIELD (58, UInt16, sysNextBatteryAlertTimer) \ + DO_TO_FIELD (60, UInt8, sysBatteryWarnThreshold) \ + DO_TO_FIELD (61, UInt8, sysDispatchTableRev) \ + DO_TO_FIELD (62, UInt16, sysDispatchTableSize) \ + DO_TO_FIELD (64, emuptr, sysLibTableP) \ + DO_TO_FIELD (68, UInt16, sysLibTableEntries) \ + DO_TO_FIELD (70, emuptr, sysConsoleStackChunkP) \ + DO_TO_FIELD (74, emuptr, sysUIShellAppInfoP) \ + DO_TO_FIELD (78, UInt32, sysTimerID) \ + DO_TO_FIELD (82, UInt32, sysAutoOffEvtTicks) \ + DO_TO_FIELD (86, UInt16, sysAutoOffSeconds) \ + DO_TO_FIELD (88, Int32, sysRandomSeed) \ + DO_TO_FIELD (92, emuptr, slkGlobalsP) \ + DO_TO_FIELD (96, emuptr, serGlobalsP) \ + DO_TO_FIELD (100, emuptr, scrGlobalsP) \ + DO_TO_FIELD (104, emuptr, fplGlobalsP) \ + DO_TO_FIELD (108, emuptr, penGlobalsP) \ + DO_TO_FIELD (112, emuptr, sysEvtMgrGlobalsP) \ + DO_TO_FIELD (116, emuptr, sndGlobalsP) \ + DO_TO_FIELD (120, emuptr, timGlobalsP) \ + DO_TO_FIELD (124, emuptr, almGlobalsP) \ + DO_TO_FIELD (128, emuptr, ftrGlobalsP) \ + DO_TO_FIELD (132, emuptr, grfGlobalsP) \ + DO_TO_FIELD (136, emuptr, keyGlobalsP) \ + \ + DO_TO_FIELD (140, UIGlobalsType, uiGlobals) \ + DO_TO_FIELD (140, UIGlobalsTypeCommon, uiGlobalsCommon) \ + DO_TO_FIELD (140, UIGlobalsTypeV1, uiGlobalsV1) \ + DO_TO_FIELD (140, UIGlobalsTypeV2, uiGlobalsV2) \ + DO_TO_FIELD (140, UIGlobalsTypeV3, uiGlobalsV3) \ + DO_TO_FIELD (140, UIGlobalsTypeV31, uiGlobalsV31) \ + DO_TO_FIELD (140, UIGlobalsTypeV32, uiGlobalsV32) \ + DO_TO_FIELD (140, UIGlobalsTypeV35, uiGlobalsV35) \ + \ + DO_TO_FIELD (316, emuptr, uiExtensionsP) \ + DO_TO_FIELD (320, emuptr, curUIAppInfoP) \ + DO_TO_FIELD (324, UInt32, nextUIAppDBID) \ + DO_TO_FIELD (328, UInt16, nextUIAppCmd) \ + DO_TO_FIELD (330, emuptr, nextUIAppCmdPBP) \ + DO_TO_FIELD (334, UInt8, nextUIAppCardNo) \ + DO_TO_FIELD (335, Int8, memDataWELevel) \ + DO_TO_FIELD (336, UInt16, hwrWakeUp) \ + DO_TO_FIELD (338, UInt8, hwrCPUDutyCycle) \ + DO_TO_FIELD (339, UInt8, hwrPenDown) \ + DO_TO_FIELD (340, UInt32, hwrCurTicks) \ + DO_TO_FIELD (344, UInt32, hwrTotalRAMSize) \ + DO_TO_FIELD (348, UInt32, hwrDozeSubTicks) \ + DO_TO_FIELD (352, UInt32, sndOffTicks) \ + DO_TO_FIELD (356, UInt8, sysResetFlags) \ + DO_TO_FIELD (357, UInt8, sysBatteryKind) \ + DO_TO_FIELD (358, UInt32, memMinDynHeapFree) \ + DO_TO_FIELD (362, UInt16, sysPrefFlags) \ + DO_TO_FIELD (364, emuptr, sysGlobalsP) \ + DO_TO_FIELD (368, UInt16, sysMiscFlags) \ + DO_TO_FIELD (370, UInt16, sysLibNet) \ + DO_TO_FIELD (372, emuptr, netPktFreeQ) \ + DO_TO_FIELD (376, UInt32, sysEvGroupID) \ + DO_TO_FIELD (380, emuptr, irq3GlobalsP) \ + DO_TO_FIELD (384, UInt32, sysLastBatteryWarning) \ + DO_TO_FIELD (388, UInt32, sysLowMemChecksum) \ + DO_TO_FIELD (392, UInt16, hwrHardwareRev) \ + DO_TO_FIELD (394, emuptr, dmProtectListH) \ + DO_TO_FIELD (398, UInt16, hwrMiscFlags) \ + DO_TO_FIELD (400, UInt32, sysProfileRefcon) \ + DO_TO_FIELD (404, emuptr, sysProfileProcP) \ + DO_TO_FIELD (408, UInt32, flpSoftFPSCR) \ + DO_TO_FIELD (412, emuptr, irLibGlobalsP) \ + DO_TO_FIELD (416, UInt16, exgActiveLib) \ + DO_TO_FIELD (418, UInt16, uiBusyCount) \ + DO_TO_FIELD (420, emuptr, irq1GlobalsP) \ + DO_TO_FIELD (424, emuptr, irq2GlobalsP) \ + DO_TO_FIELD (428, emuptr, irq6GlobalsP) \ + DO_TO_FIELD (432, emuptr, intlMgrGlobalsP) \ + DO_TO_FIELD (436, UInt16, inlineStart) \ + DO_TO_FIELD (438, UInt16, inlineEnd) \ + DO_TO_FIELD (440, Boolean, inlineActive) \ + DO_TO_FIELD (441, UInt8, inlineDefTerm) \ + DO_TO_FIELD (442, emuptr, tsmFepLibStatusP) \ + DO_TO_FIELD (446, UInt16, tsmFepLibRefNum) \ + DO_TO_FIELD (448, UInt16, inlineHighlightLen) \ + DO_TO_FIELD (450, emuptr, sysBatteryDataP) \ + DO_TO_FIELD (454, emuptr, sysBatteryValidKindsP) \ + DO_TO_FIELD (458, Boolean, sysInShutdown) \ + DO_TO_FIELD (459, UInt8, sysMinWakeupThreshold) \ + DO_TO_FIELD (460, UInt32, hwrMiscFlagsExt) \ + DO_TO_FIELD (464, Boolean, sysUseCritWarnTimer) \ + DO_TO_FIELD (465, Boolean, sysCritWarnTimerRunning) \ + DO_TO_FIELD (466, Int16, sysCritWarnRTCDayStarted) \ + DO_TO_FIELD (468, Int32, sysCritWarnTickTimer) \ + DO_TO_FIELD (472, UInt32, sysCritWarnLastTick) \ + DO_TO_FIELD (476, Boolean, sysCharging) \ + DO_TO_FIELD (477, Boolean, sysUpdateVoltageLevel) \ + DO_TO_FIELD (478, emuptr, notifyGlobalsH) \ + DO_TO_FIELD (482, UInt32, expGlobalsP) \ + DO_TO_FIELD (486, UInt32, vfsGlobalsP) \ + DO_TO_FIELD (490, UInt32, sysReserved31DWord3) \ + DO_TO_FIELD (494, UInt32, sysReserved31DWord4) \ + DO_TO_FIELD (498, emuptr, ramGlobalsP) \ + DO_TO_FIELD (502, emuptr, hwrBatteryGlobalsP) \ + DO_TO_FIELD (506, UInt8, hwrBatteryPercent) \ + DO_TO_FIELD (507, UInt8, commActivityFlags) \ + DO_TO_FIELD (508, emuptr, uart328GlobalsP) \ + DO_TO_FIELD (512, UInt32, sysOEMGlobal1) \ + DO_TO_FIELD (516, UInt32, sysOEMGlobal2) \ + DO_TO_FIELD (520, UInt16, hwrBatteryStepsPerVolt) \ + DO_TO_FIELD (522, emuptr, sysPendingStackFrees) \ + DO_TO_FIELD (526, UInt16, sysDayCounter) \ + DO_TO_FIELD (528, Int16, sysBatteryCheckPeriod) \ + DO_TO_FIELD (530, UInt16, hwrJerryPldShadow) \ + DO_TO_FIELD (532, emuptr, radioGlobalsP) \ + DO_TO_FIELD (536, emuptr, fatalAlertTemplateP) \ + DO_TO_FIELD (540, UInt16, fatalAlertBtnWidth) \ + DO_TO_FIELD (542, emuptr, silkscreenInfoP) \ + DO_TO_FIELD (546, UInt16, inlineDefChecksum) \ + DO_TO_FIELD (548, emuptr, inlineDefField) \ + DO_TO_FIELD (552, Boolean, notifyBroadcastPending) \ + DO_TO_FIELD (553, UInt8, sysReserved35Byte1) \ + DO_TO_FIELD (554, UInt32, hwrOEMCompanyID) \ + DO_TO_FIELD (558, UInt32, hwrOEMDeviceID) \ + DO_TO_FIELD (562, UInt32, hwrOEMHALID) \ + DO_TO_FIELD (566, emuptr, sysUpdateGlobalsP) \ + DO_TO_FIELD (570, UInt16, smallROMChecksum) \ + DO_TO_FIELD (572, emuptr, sysNotifyInterruptGlobalsP) \ + DO_TO_FIELD (576, emuptr, sysAppSubFontListPtr) \ + DO_TO_FIELD (580, UInt16, sysUSBConfiguration) \ + DO_TO_FIELD (582, emuptr, intlDispatchTableP) \ + DO_TO_FIELD (586, Boolean, sysAutoLockUponPowerOff) \ + DO_TO_FIELD (588, UInt32, sysHardPowerEvtTicks) \ + DO_TO_FIELD (592, UInt32, sysAutoLockTimeoutSecs) \ + DO_TO_FIELD (596, emuptr, attnGlobalsP) \ + DO_TO_FIELD (600, emuptr, expVfsSharedGlobalsP) \ + DO_TO_FIELD (604, emuptr, btExgLibGlobalsP) \ + DO_TO_FIELD (608, emuptr, testHarnessGlobalsP) \ + DO_TO_FIELD (612, emuptr, pwrManagerGlobalsP) \ + DO_TO_FIELD (616, UInt16, inlineClauseOffset) \ + DO_TO_FIELD (618, emuptr, btLibGlobalsP) \ + DO_TO_FIELD (622, Boolean, sysSetPwdTimeoutAllowed) \ + DO_TO_FIELD (624, UInt32, sysSetPwdTimeoutSecs) \ + DO_TO_FIELD (628, UInt32, sysSetPwdTimeoutTicks) \ + DO_TO_FIELD (632, UInt16, dbgLockout) \ + DO_TO_FIELD (634, UInt32, sysReserved40DWord1) \ + DO_TO_FIELD (638, UInt32, sysReserved40DWord2) \ + DO_TO_FIELD (642, UInt32, sysReserved40DWord3) \ + DO_TO_FIELD (646, UInt32, sysReserved40DWord4) \ + + +// ======================================== +// ===== FieldAttrType ===== +// ======================================== + +#define FOR_FieldAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FieldAttrType, 2, FOR_FieldAttrType_FIELDS) + +#define FOR_FieldAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + + +// ======================================== +// ===== FieldType ===== +// ======================================== + +#define FOR_FieldType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FieldType, 40, FOR_FieldType_FIELDS) + +#define FOR_FieldType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, RectangleType, rect) \ + DO_TO_FIELD (10, FieldAttrType, attr) \ + DO_TO_FIELD (12, emuptr, text) \ + DO_TO_FIELD (16, emuptr, textHandle) \ + DO_TO_FIELD (20, emuptr, lines) \ + DO_TO_FIELD (24, UInt16, textLen) \ + DO_TO_FIELD (26, UInt16, textBlockSize) \ + DO_TO_FIELD (28, UInt16, maxChars) \ + DO_TO_FIELD (30, UInt16, selFirstPos) \ + DO_TO_FIELD (32, UInt16, selLastPos) \ + DO_TO_FIELD (34, UInt16, insPtXPos) \ + DO_TO_FIELD (36, UInt16, insPtYPos) \ + DO_TO_FIELD (38, FontID, fontID) \ + DO_TO_FIELD (39, UInt16, maxVisibleLines) \ + + +// ======================================== +// ===== FormBitmapType ===== +// ======================================== + +#define FOR_FormBitmapType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormBitmapType, 8, FOR_FormBitmapType_FIELDS) + +#define FOR_FormBitmapType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, FormObjAttrType, attr) \ + DO_TO_FIELD (2, PointType, pos) \ + DO_TO_FIELD (6, UInt16, rscID) \ + + +// ======================================== +// ===== FormFrameType ===== +// ======================================== + +#define FOR_FormFrameType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormFrameType, 14, FOR_FormFrameType_FIELDS) + +#define FOR_FormFrameType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, FormObjAttrType, attr) \ + DO_TO_FIELD (4, RectangleType, rect) \ + DO_TO_FIELD (12, UInt16, frameType) \ + + +// ======================================== +// ===== FormGadgetAttrType ===== +// ======================================== + +#define FOR_FormGadgetAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormGadgetAttrType, 2, FOR_FormGadgetAttrType_FIELDS) + +#define FOR_FormGadgetAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + + +// ======================================== +// ===== FormGadgetType ===== +// ======================================== + +#define FOR_FormGadgetType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormGadgetType, 20, FOR_FormGadgetType_FIELDS) + +#define FOR_FormGadgetType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, FormGadgetAttrType, attr) \ + DO_TO_FIELD (4, RectangleType, rect) \ + DO_TO_FIELD (12, emuptr, data) \ + DO_TO_FIELD (16, emuptr, handler) \ + + +// ======================================== +// ===== FormLabelType ===== +// ======================================== + +#define FOR_FormLabelType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormLabelType, 14, FOR_FormLabelType_FIELDS) + +#define FOR_FormLabelType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, PointType, pos) \ + DO_TO_FIELD (6, FormObjAttrType, attr) \ + DO_TO_FIELD (8, FontID, fontID) \ + DO_TO_FIELD (9, UInt8, reserved) \ + DO_TO_FIELD (10, emuptr, text) \ + + +// ======================================== +// ===== FormLineType ===== +// ======================================== + +#define FOR_FormLineType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormLineType, 10, FOR_FormLineType_FIELDS) + +#define FOR_FormLineType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, attr) \ + DO_TO_FIELD (2, PointType, point1) \ + DO_TO_FIELD (6, PointType, point2) \ + + +// ======================================== +// ===== FormObjAttrType ===== +// ======================================== + +#define FOR_FormObjAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormObjAttrType, 2, FOR_FormObjAttrType_FIELDS) + +#define FOR_FormObjAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + + +// ======================================== +// ===== FormObjListType ===== +// ======================================== + +#define FOR_FormObjListType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormObjListType, 6, FOR_FormObjListType_FIELDS) + +#define FOR_FormObjListType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, FormObjectKind, objectType) \ + DO_TO_FIELD (1, UInt8, reserved) \ + DO_TO_FIELD (2, emuptr, object) \ + + +// ======================================== +// ===== FormPopupType ===== +// ======================================== + +#define FOR_FormPopupType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormPopupType, 4, FOR_FormPopupType_FIELDS) + +#define FOR_FormPopupType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, controlID) \ + DO_TO_FIELD (2, UInt16, listID) \ + + +// ======================================== +// ===== FormRectangleType ===== +// ======================================== + +#define FOR_FormRectangleType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormRectangleType, 10, FOR_FormRectangleType_FIELDS) + +#define FOR_FormRectangleType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, FormObjAttrType, attr) \ + DO_TO_FIELD (2, RectangleType, rect) \ + + +// ======================================== +// ===== FormTitleType ===== +// ======================================== + +#define FOR_FormTitleType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormTitleType, 12, FOR_FormTitleType_FIELDS) + +#define FOR_FormTitleType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, RectangleType, rect) \ + DO_TO_FIELD (8, emuptr, text) \ + + +// ======================================== +// ===== FormType ===== +// ======================================== + +#define FOR_FormType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormType, 68, FOR_FormType_FIELDS) + +#define FOR_FormType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, WindowType, window) \ + DO_TO_FIELD (40, UInt16, formId) \ + DO_TO_FIELD (42, FormAttrType, attr) \ + DO_TO_FIELD (46, emuptr, bitsBehindForm) \ + DO_TO_FIELD (50, emuptr, handler) \ + DO_TO_FIELD (54, UInt16, focus) \ + DO_TO_FIELD (56, UInt16, defaultButton) \ + DO_TO_FIELD (58, UInt16, helpRscId) \ + DO_TO_FIELD (60, UInt16, menuRscId) \ + DO_TO_FIELD (62, UInt16, numObjects) \ + DO_TO_FIELD (64, emuptr, objects) \ + + +// ======================================== +// ===== FrameBitsType ===== +// ======================================== + +#define FOR_FrameBitsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FrameBitsType, 2, FOR_FrameBitsType_FIELDS) + +#define FOR_FrameBitsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + + +// ======================================== +// ===== FrmGraffitiStateType ===== +// ======================================== + +#define FOR_FrmGraffitiStateType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FrmGraffitiStateType, 4, FOR_FrmGraffitiStateType_FIELDS) + +#define FOR_FrmGraffitiStateType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, PointType, pos) \ + + +// ======================================== +// ===== GraphicControlType ===== +// ======================================== + +#define FOR_GraphicControlType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (GraphicControlType, 20, FOR_GraphicControlType_FIELDS) + +#define FOR_GraphicControlType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, RectangleType, bounds) \ + DO_TO_FIELD (10, DmResID, bitmapID) \ + DO_TO_FIELD (12, DmResID, selectedBitmapID) \ + DO_TO_FIELD (14, ControlAttrType, attr) \ + DO_TO_FIELD (16, ControlStyleType, style) \ + DO_TO_FIELD (17, UInt8, unused) \ + DO_TO_FIELD (18, UInt8, group) \ + DO_TO_FIELD (19, UInt8, reserved) \ + + +// ======================================== +// ===== GraphicStateTypeV1 ===== +// ======================================== +// Used in Palm OS 1.0 - 2.0. + +#define FOR_GraphicStateTypeV1_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (GraphicStateTypeV1, 20, FOR_GraphicStateTypeV1_FIELDS) + +#define FOR_GraphicStateTypeV1_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, ScrOperation, grafMode) \ + DO_TO_FIELD (1, Boolean, patternMode) \ + DO_TO_FIELD (2, PatternType, pattern) \ + DO_TO_FIELD (4, UInt16, customPtn) \ + DO_TO_FIELD (12, FontID, fontId) \ + DO_TO_FIELD (14, emuptr, font) \ + DO_TO_FIELD (18, UnderlineModeType, underlineMode) \ + + +// ======================================== +// ===== GraphicStateTypeV2 ===== +// ======================================== +// Used in Palm OS 3.0 - 3.3. + +#define FOR_GraphicStateTypeV2_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (GraphicStateTypeV2, 28, FOR_GraphicStateTypeV2_FIELDS) + +#define FOR_GraphicStateTypeV2_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, ScrOperation, grafMode) \ + DO_TO_FIELD (1, Boolean, patternMode) \ + DO_TO_FIELD (2, PatternType, pattern) \ + DO_TO_FIELD (4, UInt16, customPtn) \ + DO_TO_FIELD (12, FontID, fontId) \ + DO_TO_FIELD (14, emuptr, font) \ + DO_TO_FIELD (18, UnderlineModeType, underlineMode) \ + DO_TO_FIELD (20, RGBColorType, foreColor) \ + DO_TO_FIELD (24, RGBColorType, backColor) \ + + +// ======================================== +// ===== GraphicStateTypeV3 ===== +// ======================================== +// Used in Palm OS 3.5 and later. + +#define FOR_GraphicStateTypeV3_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (GraphicStateTypeV3, 12, FOR_GraphicStateTypeV3_FIELDS) + +#define FOR_GraphicStateTypeV3_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, drawStateP) \ + DO_TO_FIELD (4, emuptr, drawStateStackP) \ + DO_TO_FIELD (8, Int16, drawStateIndex) \ + DO_TO_FIELD (10, UInt16, screenLockCount) \ + + +// ======================================== +// ===== FormAttrType ===== +// ======================================== + +#define FOR_FormAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (FormAttrType, 4, FOR_FormAttrType_FIELDS) + +#define FOR_FormAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, flags) \ + + +// ======================================== +// ===== HostDirEntType ===== +// ======================================== + +#define FOR_HostDirEntType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HostDirEntType, 256, FOR_HostDirEntType_FIELDS) + +#define FOR_HostDirEntType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int8, d_name) \ + + +// ======================================== +// ===== HostGremlinInfoType ===== +// ======================================== + +#define FOR_HostGremlinInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HostGremlinInfoType, 220, FOR_HostGremlinInfoType_FIELDS) + +#define FOR_HostGremlinInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int32, fFirstGremlin) \ + DO_TO_FIELD (4, Int32, fLastGremlin) \ + DO_TO_FIELD (8, Int32, fSaveFrequency) \ + DO_TO_FIELD (12, Int32, fSwitchDepth) \ + DO_TO_FIELD (16, Int32, fMaxDepth) \ + DO_TO_FIELD (20, Int8, fAppNames) \ + + +// ======================================== +// ===== HostStatType ===== +// ======================================== + +#define FOR_HostStatType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HostStatType, 56, FOR_HostStatType_FIELDS) + +#define FOR_HostStatType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int32, st_dev_) \ + DO_TO_FIELD (4, Int32, st_ino_) \ + DO_TO_FIELD (8, Int32, st_mode_) \ + DO_TO_FIELD (12, Int32, st_nlink_) \ + DO_TO_FIELD (16, Int32, st_uid_) \ + DO_TO_FIELD (20, Int32, st_gid_) \ + DO_TO_FIELD (24, Int32, st_rdev_) \ + DO_TO_FIELD (28, HostTimeType, st_atime_) \ + DO_TO_FIELD (32, HostTimeType, st_mtime_) \ + DO_TO_FIELD (36, HostTimeType, st_ctime_) \ + DO_TO_FIELD (40, Int32, st_size_) \ + DO_TO_FIELD (44, Int32, st_blksize_) \ + DO_TO_FIELD (48, Int32, st_blocks_) \ + DO_TO_FIELD (52, Int32, st_flags_) \ + + +// ======================================== +// ===== HostTmType ===== +// ======================================== + +#define FOR_HostTmType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HostTmType, 36, FOR_HostTmType_FIELDS) + +#define FOR_HostTmType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int32, tm_sec_) \ + DO_TO_FIELD (4, Int32, tm_min_) \ + DO_TO_FIELD (8, Int32, tm_hour_) \ + DO_TO_FIELD (12, Int32, tm_mday_) \ + DO_TO_FIELD (16, Int32, tm_mon_) \ + DO_TO_FIELD (20, Int32, tm_year_) \ + DO_TO_FIELD (24, Int32, tm_wday_) \ + DO_TO_FIELD (28, Int32, tm_yday_) \ + DO_TO_FIELD (32, Int32, tm_isdst_) \ + + +// ======================================== +// ===== HostUTimeType ===== +// ======================================== + +#define FOR_HostUTimeType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HostUTimeType, 12, FOR_HostUTimeType_FIELDS) + +#define FOR_HostUTimeType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, HostTimeType, crtime_) \ + DO_TO_FIELD (4, HostTimeType, actime_) \ + DO_TO_FIELD (8, HostTimeType, modtime_) \ + + +// ======================================== +// ===== HwrBatCmdReadType ===== +// ======================================== + +#define FOR_HwrBatCmdReadType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HwrBatCmdReadType, 4, FOR_HwrBatCmdReadType_FIELDS) + +#define FOR_HwrBatCmdReadType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, mVolts) \ + DO_TO_FIELD (2, UInt16, abs) \ + + +// ======================================== +// ===== HwrJerryPLDType ===== +// ======================================== + +#define FOR_HwrJerryPLDType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HwrJerryPLDType, 20, FOR_HwrJerryPLDType_FIELDS) + +#define FOR_HwrJerryPLDType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, dspOn) \ + DO_TO_FIELD (1, UInt8, unused1) \ + DO_TO_FIELD (2, UInt8, chargeOn) \ + DO_TO_FIELD (3, UInt8, unused2) \ + DO_TO_FIELD (4, UInt8, refOn) \ + DO_TO_FIELD (5, UInt8, unused3) \ + DO_TO_FIELD (6, UInt8, pipaBiasEnable) \ + DO_TO_FIELD (7, UInt8, unused4) \ + DO_TO_FIELD (8, UInt8, dspReset) \ + DO_TO_FIELD (9, UInt8, unused5) \ + DO_TO_FIELD (10, UInt8, ezToDsl) \ + DO_TO_FIELD (11, UInt8, unused6) \ + DO_TO_FIELD (12, UInt8, rs232Shdn) \ + DO_TO_FIELD (13, UInt8, unused7) \ + DO_TO_FIELD (14, UInt8, spareOut) \ + DO_TO_FIELD (15, UInt8, unused8) \ + DO_TO_FIELD (16, UInt16, dTo3Sln) \ + DO_TO_FIELD (17, UInt16, iXtrnl2) \ + + +// ======================================== +// ===== HwrLAPType ===== +// ======================================== + +#define FOR_HwrLAPType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HwrLAPType, 0x64, FOR_HwrLAPType_FIELDS) + +#define FOR_HwrLAPType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0x000, UInt32, control) \ + DO_TO_FIELD (0x010, UInt32, status) \ + DO_TO_FIELD (0x040, UInt32, timing0) \ + DO_TO_FIELD (0x050, UInt32, timing1) \ + DO_TO_FIELD (0x060, UInt32, timing2) \ + + +// ======================================== +// ===== HwrMediaQ11xxType ===== +// ======================================== + +#define FOR_HwrMediaQ11xxType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HwrMediaQ11xxType, 0x2000, FOR_HwrMediaQ11xxType_FIELDS) + +#define FOR_HwrMediaQ11xxType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0x000, UInt32, ccREG) \ + DO_TO_FIELD (0x080, UInt32, mmREG) \ + DO_TO_FIELD (0x100, UInt32, inREG) \ + DO_TO_FIELD (0x180, UInt32, gcREG) \ + DO_TO_FIELD (0x200, UInt32, geREG) \ + DO_TO_FIELD (0x280, UInt32, ssREG) \ + DO_TO_FIELD (0x300, UInt32, spREG) \ + DO_TO_FIELD (0x380, UInt32, dcREG) \ + DO_TO_FIELD (0x400, UInt32, pcREG) \ + DO_TO_FIELD (0x500, UInt32, uhREG) \ + DO_TO_FIELD (0x600, UInt32, fpREG) \ + DO_TO_FIELD (0x800, UInt32, cpREG) \ + DO_TO_FIELD (0xC00, UInt32, sfREG) \ + DO_TO_FIELD (0x1000,UInt32, udREG) \ + + +// ======================================== +// ===== HwrPalmI705PLDType ===== +// ======================================== + +#define FOR_HwrPalmI705PLDType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HwrPalmI705PLDType, 42, FOR_HwrPalmI705PLDType_FIELDS) + +#define FOR_HwrPalmI705PLDType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, todsln3) \ + DO_TO_FIELD (2, UInt16, green_led) \ + DO_TO_FIELD (4, UInt16, pin_notify_enable) \ + DO_TO_FIELD (6, UInt16, red_led) \ + DO_TO_FIELD (8, UInt16, acpr) \ + DO_TO_FIELD (10, UInt16, low_batt) \ + DO_TO_FIELD (12, UInt16, dto3svc_irq) \ + DO_TO_FIELD (14, UInt16, dsp_irq_enable) \ + DO_TO_FIELD (16, UInt16, dsp_irq_polarity) \ + DO_TO_FIELD (18, UInt16, charging_in_progress) \ + DO_TO_FIELD (20, UInt16, charging_in_prog2) \ + DO_TO_FIELD (22, UInt16, charging_in_prog_OE) \ + DO_TO_FIELD (24, UInt16, twister_irq_wake) \ + DO_TO_FIELD (26, UInt16, low_batt_mask) \ + DO_TO_FIELD (28, UInt16, acpr_mask) \ + DO_TO_FIELD (30, UInt16, acpr_polarity) \ + DO_TO_FIELD (32, UInt16, usb_int) \ + DO_TO_FIELD (34, UInt16, usb_int_mask) \ + DO_TO_FIELD (36, UInt16, bullet_det) \ + DO_TO_FIELD (38, UInt16, bullet_det_mask) \ + DO_TO_FIELD (40, UInt16, bullet_det_pol) \ + + +// ======================================== +// ===== HwrSymbolASICType ===== +// ======================================== + +#define FOR_HwrSymbolASICType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (HwrSymbolASICType, 256, FOR_HwrSymbolASICType_FIELDS) + +#define FOR_HwrSymbolASICType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, S24IO) \ + DO_TO_FIELD (128, UInt8, S24Attribute) \ + DO_TO_FIELD (160, UInt8, UART8251MacroSelect) \ + DO_TO_FIELD (165, UInt8, ScannerDecoderControl) \ + DO_TO_FIELD (247, UInt8, Control) \ + DO_TO_FIELD (253, UInt8, GPIOData) \ + DO_TO_FIELD (255, UInt8, GPIODirection) \ + + +// ======================================== +// ===== ListAttrType ===== +// ======================================== + +#define FOR_ListAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ListAttrType, 2, FOR_ListAttrType_FIELDS) + +#define FOR_ListAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + + +// ======================================== +// ===== ListType ===== +// ======================================== + +#define FOR_ListType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ListType, 32, FOR_ListType_FIELDS) + +#define FOR_ListType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, RectangleType, bounds) \ + DO_TO_FIELD (10, ListAttrType, attr) \ + DO_TO_FIELD (12, emuptr, itemsText) \ + DO_TO_FIELD (16, Int16, numItems) \ + DO_TO_FIELD (18, Int16, currentItem) \ + DO_TO_FIELD (20, Int16, topItem) \ + DO_TO_FIELD (22, FontID, font) \ + DO_TO_FIELD (23, UInt8, reserved) \ + DO_TO_FIELD (24, emuptr, popupWin) \ + DO_TO_FIELD (28, emuptr, drawItemsCallback) \ + + +// ======================================== +// ===== LowMemHdrType ===== +// ======================================== + +#define FOR_LowMemHdrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (LowMemHdrType, 828, FOR_LowMemHdrType_FIELDS) + +#define FOR_LowMemHdrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, M68KExcTableType, vectors) \ + DO_TO_FIELD (256, FixedGlobalsType, globals) \ + + +// ======================================== +// ===== M68KExcTableType ===== +// ======================================== + +#define FOR_M68KExcTableType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (M68KExcTableType, 256, FOR_M68KExcTableType_FIELDS) + +#define FOR_M68KExcTableType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, initStack) \ + DO_TO_FIELD (4, UInt32, initPC) \ + DO_TO_FIELD (8, UInt32, busErr) \ + DO_TO_FIELD (12, UInt32, addressErr) \ + DO_TO_FIELD (16, UInt32, illegalInstr) \ + DO_TO_FIELD (20, UInt32, divideByZero) \ + DO_TO_FIELD (24, UInt32, chk) \ + DO_TO_FIELD (28, UInt32, trap) \ + DO_TO_FIELD (32, UInt32, privilege) \ + DO_TO_FIELD (36, UInt32, trace) \ + DO_TO_FIELD (40, UInt32, aTrap) \ + DO_TO_FIELD (44, UInt32, fTrap) \ + DO_TO_FIELD (48, UInt32, reserved12) \ + DO_TO_FIELD (52, UInt32, coproc) \ + DO_TO_FIELD (56, UInt32, formatErr) \ + DO_TO_FIELD (60, UInt32, unitializedInt) \ + DO_TO_FIELD (96, UInt32, spuriousInt) \ + DO_TO_FIELD (100, UInt32, autoVec1) \ + DO_TO_FIELD (104, UInt32, autoVec2) \ + DO_TO_FIELD (108, UInt32, autoVec3) \ + DO_TO_FIELD (112, UInt32, autoVec4) \ + DO_TO_FIELD (116, UInt32, autoVec5) \ + DO_TO_FIELD (120, UInt32, autoVec6) \ + DO_TO_FIELD (124, UInt32, autoVec7) \ + + +// ======================================== +// ===== M68KRegsType ===== +// ======================================== + +#define FOR_M68KRegsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (M68KRegsType, 74, FOR_M68KRegsType_FIELDS) + +#define FOR_M68KRegsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, d) \ + DO_TO_FIELD (32, UInt32, a) \ + DO_TO_FIELD (60, UInt32, usp) \ + DO_TO_FIELD (64, UInt32, ssp) \ + DO_TO_FIELD (68, UInt32, pc) \ + DO_TO_FIELD (72, UInt16, sr) \ + + +// ======================================== +// ===== NetHostInfoBufType ===== +// ======================================== + +#define FOR_NetHostInfoBufType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetHostInfoBufType, 568, FOR_NetHostInfoBufType_FIELDS) + +#define FOR_NetHostInfoBufType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, NetHostInfoType, hostInfo) \ + DO_TO_FIELD (16, Char, name) \ + DO_TO_FIELD (272, emuptr, aliasList) \ + DO_TO_FIELD (280, Char, aliases) \ + DO_TO_FIELD (536, emuptr, addressList) \ + DO_TO_FIELD (552, NetIPAddr, address) \ + + +// ======================================== +// ===== NetHostInfoType ===== +// ======================================== + +#define FOR_NetHostInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetHostInfoType, 16, FOR_NetHostInfoType_FIELDS) + +#define FOR_NetHostInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, nameP) \ + DO_TO_FIELD (4, emuptr, nameAliasesP) \ + DO_TO_FIELD (8, UInt16, addrType) \ + DO_TO_FIELD (10, UInt16, addrLen) \ + DO_TO_FIELD (12, emuptr, addrListP) \ + + +// ======================================== +// ===== NetIOParamType ===== +// ======================================== + +#define FOR_NetIOParamType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetIOParamType, 18, FOR_NetIOParamType_FIELDS) + +#define FOR_NetIOParamType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, addrP) \ + DO_TO_FIELD (4, UInt16, addrLen) \ + DO_TO_FIELD (6, emuptr, iov) \ + DO_TO_FIELD (10, UInt16, iovLen) \ + DO_TO_FIELD (12, emuptr, accessRights) \ + DO_TO_FIELD (16, UInt16, accessRightsLen) \ + + +// ======================================== +// ===== NetIOVecType ===== +// ======================================== + +#define FOR_NetIOVecType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetIOVecType, 6, FOR_NetIOVecType_FIELDS) + +#define FOR_NetIOVecType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, bufP) \ + DO_TO_FIELD (4, UInt16, bufLen) \ + + +// ======================================== +// ===== NetServInfoBufType ===== +// ======================================== + +#define FOR_NetServInfoBufType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetServInfoBufType, 70, FOR_NetServInfoBufType_FIELDS) + +#define FOR_NetServInfoBufType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, NetServInfoType, servInfo) \ + DO_TO_FIELD (14, Char, name) \ + DO_TO_FIELD (30, emuptr, aliasList) \ + DO_TO_FIELD (38, Char, aliases) \ + DO_TO_FIELD (53, Char, protoName) \ + DO_TO_FIELD (69, UInt8, reserved) \ + + +// ======================================== +// ===== NetServInfoType ===== +// ======================================== + +#define FOR_NetServInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetServInfoType, 14, FOR_NetServInfoType_FIELDS) + +#define FOR_NetServInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, nameP) \ + DO_TO_FIELD (4, emuptr, nameAliasesP) \ + DO_TO_FIELD (8, UInt16, port) \ + DO_TO_FIELD (10, emuptr, protoP) \ + + +// ======================================== +// ===== NetSocketAddrINType ===== +// ======================================== + +#define FOR_NetSocketAddrINType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetSocketAddrINType, 8, FOR_NetSocketAddrINType_FIELDS) + +#define FOR_NetSocketAddrINType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, family) \ + DO_TO_FIELD (2, UInt16, port) \ + DO_TO_FIELD (4, NetIPAddr, addr) \ + + +// ======================================== +// ===== NetSocketAddrRawType ===== +// ======================================== + +#define FOR_NetSocketAddrRawType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetSocketAddrRawType, 8, FOR_NetSocketAddrRawType_FIELDS) + +#define FOR_NetSocketAddrRawType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, family) \ + DO_TO_FIELD (2, UInt16, ifInstance) \ + DO_TO_FIELD (4, UInt32, ifCreator) \ + + +// ======================================== +// ===== NetSocketAddrType ===== +// ======================================== + +#define FOR_NetSocketAddrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (NetSocketAddrType, 16, FOR_NetSocketAddrType_FIELDS) + +#define FOR_NetSocketAddrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, family) \ + DO_TO_FIELD (2, UInt8, data) \ + + +// ======================================== +// ===== PenBtnInfoType ===== +// ======================================== + +#define FOR_PenBtnInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (PenBtnInfoType, 14, FOR_PenBtnInfoType_FIELDS) + +#define FOR_PenBtnInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, RectangleType, boundsR) \ + DO_TO_FIELD (8, WChar, asciiCode) \ + DO_TO_FIELD (10, UInt16, keyCode) \ + DO_TO_FIELD (12, UInt16, modifiers) \ + + +// ======================================== +// ===== PointType ===== +// ======================================== + +#define FOR_PointType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (PointType, 4, FOR_PointType_FIELDS) + +#define FOR_PointType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Coord, x) \ + DO_TO_FIELD (2, Coord, y) \ + + +// ======================================== +// ===== RecordEntryType ===== +// ======================================== + +#define FOR_RecordEntryType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (RecordEntryType, 8, FOR_RecordEntryType_FIELDS) + +#define FOR_RecordEntryType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, LocalID, localChunkID) \ + DO_TO_FIELD (4, UInt8, attributes) \ + DO_TO_FIELD (5, UInt8, uniqueID) \ + + +// ======================================== +// ===== RecordListType ===== +// ======================================== + +#define FOR_RecordListType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (RecordListType, 6, FOR_RecordListType_FIELDS) + +#define FOR_RecordListType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, LocalID, nextRecordListID) \ + DO_TO_FIELD (4, UInt16, numRecords) \ + DO_TO_FIELD (6, RecordEntryType, records) \ + DO_TO_FIELD (6, RsrcEntryType, resources) \ + + +// ======================================== +// ===== RectangleType ===== +// ======================================== + +#undef topLeft + +#define FOR_RectangleType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (RectangleType, 8, FOR_RectangleType_FIELDS) + +#define FOR_RectangleType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, PointType, topLeft) \ + DO_TO_FIELD (4, PointType, extent) \ + + +// ======================================== +// ===== RGBColorType ===== +// ======================================== + +#define FOR_RGBColorType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (RGBColorType, 6, FOR_RGBColorType_FIELDS) + +#define FOR_RGBColorType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, LocalID, index) \ + DO_TO_FIELD (4, UInt8, r) \ + DO_TO_FIELD (6, UInt8, g) \ + DO_TO_FIELD (6, UInt8, b) \ + + +// ======================================== +// ===== RsrcEntryType ===== +// ======================================== + +#define FOR_RsrcEntryType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (RsrcEntryType, 10, FOR_RsrcEntryType_FIELDS) + +#define FOR_RsrcEntryType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, type) \ + DO_TO_FIELD (4, UInt16, id) \ + DO_TO_FIELD (6, LocalID, localChunkID) \ + + +// ======================================== +// ===== ScrollBarAttrType ===== +// ======================================== + +#define FOR_ScrollBarAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ScrollBarAttrType, 2, FOR_ScrollBarAttrType_FIELDS) + +#define FOR_ScrollBarAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + + +// ======================================== +// ===== ScrollBarType ===== +// ======================================== + +#define FOR_ScrollBarType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ScrollBarType, 24, FOR_ScrollBarType_FIELDS) + +#define FOR_ScrollBarType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, RectangleType, bounds) \ + DO_TO_FIELD (8, UInt16, id) \ + DO_TO_FIELD (10, ScrollBarAttrType, attr) \ + DO_TO_FIELD (12, Int16, value) \ + DO_TO_FIELD (14, Int16, minValue) \ + DO_TO_FIELD (16, Int16, maxValue) \ + DO_TO_FIELD (18, Int16, pageSize) \ + DO_TO_FIELD (20, Int16, penPosInCar) \ + DO_TO_FIELD (22, Int16, savePos) \ + + +// ======================================== +// ===== SED1375RegsType ===== +// ======================================== + +#define FOR_SED1375RegsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SED1375RegsType, 32, FOR_SED1375RegsType_FIELDS) + +#define FOR_SED1375RegsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, productRevisionCode) \ + DO_TO_FIELD (1, UInt8, mode0) \ + DO_TO_FIELD (2, UInt8, mode1) \ + DO_TO_FIELD (3, UInt8, mode2) \ + DO_TO_FIELD (4, UInt8, horizontalPanelSize) \ + DO_TO_FIELD (5, UInt8, verticalPanelSizeLSB) \ + DO_TO_FIELD (6, UInt8, verticalPanelSizeMSB) \ + DO_TO_FIELD (7, UInt8, FPLineStartPosition) \ + DO_TO_FIELD (8, UInt8, horizontalNonDisplayPeriod) \ + DO_TO_FIELD (9, UInt8, FPFRAMEStartPosition) \ + DO_TO_FIELD (10, UInt8, verticalNonDisplayPeriod) \ + DO_TO_FIELD (11, UInt8, MODRate) \ + DO_TO_FIELD (12, UInt8, screen1StartAddressLSB) \ + DO_TO_FIELD (13, UInt8, screen1StartAddressMSB) \ + DO_TO_FIELD (14, UInt8, screen2StartAddressLSB) \ + DO_TO_FIELD (15, UInt8, screen2StartAddressMSB) \ + DO_TO_FIELD (16, UInt8, screen1StartAddressMSBit) \ + DO_TO_FIELD (17, UInt8, memoryAddressOffset) \ + DO_TO_FIELD (18, UInt8, screen1VerticalSizeLSB) \ + DO_TO_FIELD (19, UInt8, screen1VerticalSizeMSB) \ + DO_TO_FIELD (20, UInt8, unused1) \ + DO_TO_FIELD (21, UInt8, lookUpTableAddress) \ + DO_TO_FIELD (22, UInt8, unused2) \ + DO_TO_FIELD (23, UInt8, lookUpTableData) \ + DO_TO_FIELD (24, UInt8, GPIOConfigurationControl) \ + DO_TO_FIELD (25, UInt8, GPIOStatusControl) \ + DO_TO_FIELD (26, UInt8, scratchPad) \ + DO_TO_FIELD (27, UInt8, portraitMode) \ + DO_TO_FIELD (28, UInt8, lineByteCountRegister) \ + DO_TO_FIELD (29, UInt8, unused3) \ + DO_TO_FIELD (30, UInt8, unused4) \ + DO_TO_FIELD (31, UInt8, unused5) \ + + +// ======================================== +// ===== SED1376RegsType ===== +// ======================================== + +#define FOR_SED1376RegsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SED1376RegsType, 0xB4, FOR_SED1376RegsType_FIELDS) + +#define FOR_SED1376RegsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0x00, UInt8, productRevisionCode) \ + DO_TO_FIELD (0x01, UInt8, displayBufferSize) \ + DO_TO_FIELD (0x02, UInt8, configurationReadback) \ + DO_TO_FIELD (0x04, UInt8, memoryClockConfiguration) \ + DO_TO_FIELD (0x05, UInt8, pixelClockConfiguration) \ + DO_TO_FIELD (0x08, UInt8, lutWriteBlue) \ + DO_TO_FIELD (0x09, UInt8, lutWriteGreen) \ + DO_TO_FIELD (0x0A, UInt8, lutWriteRed) \ + DO_TO_FIELD (0x0B, UInt8, lutWriteAddress) \ + DO_TO_FIELD (0x0C, UInt8, lutReadBlue) \ + DO_TO_FIELD (0x0D, UInt8, lutReadGreen) \ + DO_TO_FIELD (0x0E, UInt8, lutReadRed) \ + DO_TO_FIELD (0x0F, UInt8, lutReadAddress) \ + DO_TO_FIELD (0x10, UInt8, panelType) \ + DO_TO_FIELD (0x11, UInt8, MODRate) \ + DO_TO_FIELD (0x12, UInt8, horizontalTotal) \ + DO_TO_FIELD (0x14, UInt8, horizontalPeriod) \ + DO_TO_FIELD (0x16, UInt8, horizontalPeriodStart0) \ + DO_TO_FIELD (0x17, UInt8, horizontalPeriodStart1) \ + DO_TO_FIELD (0x18, UInt8, verticalTotal0) \ + DO_TO_FIELD (0x19, UInt8, verticalTotal1) \ + DO_TO_FIELD (0x1C, UInt8, verticalPeriod0) \ + DO_TO_FIELD (0x1D, UInt8, verticalPeriod1) \ + DO_TO_FIELD (0x1E, UInt8, verticalPeriodStart0) \ + DO_TO_FIELD (0x1F, UInt8, verticalPeriodStart1) \ + DO_TO_FIELD (0x20, UInt8, FPLINEPulseWidth) \ + DO_TO_FIELD (0x22, UInt8, FPLINEPulseStart0) \ + DO_TO_FIELD (0x23, UInt8, FPLINEPulseStart1) \ + DO_TO_FIELD (0x24, UInt8, FPFRAMEPulseWidth) \ + DO_TO_FIELD (0x26, UInt8, FPFRAMEPulseStart0) \ + DO_TO_FIELD (0x27, UInt8, FPFRAMEPulseStart1) \ + DO_TO_FIELD (0x28, UInt8, DTFD_GCPIndex) \ + DO_TO_FIELD (0x2C, UInt8, DTFD_GCPData) \ + DO_TO_FIELD (0x70, UInt8, displayMode) \ + DO_TO_FIELD (0x71, UInt8, specialEffects) \ + DO_TO_FIELD (0x74, UInt8, mainStartAddress0) \ + DO_TO_FIELD (0x75, UInt8, mainStartAddress1) \ + DO_TO_FIELD (0x76, UInt8, mainStartAddress2) \ + DO_TO_FIELD (0x78, UInt8, mainLineAddressOffset0) \ + DO_TO_FIELD (0x79, UInt8, mainLineAddressOffset1) \ + DO_TO_FIELD (0x7C, UInt8, ovlyStartAddress0) \ + DO_TO_FIELD (0x7D, UInt8, ovlyStartAddress1) \ + DO_TO_FIELD (0x7E, UInt8, ovlyStartAddress2) \ + DO_TO_FIELD (0x80, UInt8, ovlyLineAddressOffset0) \ + DO_TO_FIELD (0x81, UInt8, ovlyLineAddressOffset1) \ + DO_TO_FIELD (0x84, UInt8, ovlyStartXPosition0) \ + DO_TO_FIELD (0x85, UInt8, ovlyStartXPosition1) \ + DO_TO_FIELD (0x88, UInt8, ovlyStartYPosition0) \ + DO_TO_FIELD (0x89, UInt8, ovlyStartYPosition1) \ + DO_TO_FIELD (0x8C, UInt8, ovlyEndXPosition0) \ + DO_TO_FIELD (0x8D, UInt8, ovlyEndXPosition1) \ + DO_TO_FIELD (0x90, UInt8, ovlyEndYPosition0) \ + DO_TO_FIELD (0x91, UInt8, ovlyEndYPosition1) \ + DO_TO_FIELD (0xA0, UInt8, powerSaveConfiguration) \ + DO_TO_FIELD (0xA1, UInt8, reserved) \ + DO_TO_FIELD (0xA2, UInt8, SoftwareReset) \ + DO_TO_FIELD (0xA4, UInt8, scratchPad0) \ + DO_TO_FIELD (0xA5, UInt8, scratchPad1) \ + DO_TO_FIELD (0xA8, UInt8, GPIOConfiguration0) \ + DO_TO_FIELD (0xA9, UInt8, GPIOConfiguration1) \ + DO_TO_FIELD (0xAC, UInt8, GPIOStatusControl0) \ + DO_TO_FIELD (0xAD, UInt8, GPIOStatusControl1) \ + DO_TO_FIELD (0xB0, UInt8, PWMClockCVPulseControl) \ + DO_TO_FIELD (0xB1, UInt8, PWMClockCVPulseConfig) \ + DO_TO_FIELD (0xB2, UInt8, CVPulseBurstLength) \ + DO_TO_FIELD (0xB3, UInt8, PWMOutDutyCycle) \ + + +// ======================================== +// ===== SliderControlType ===== +// ======================================== + +#define FOR_SliderControlType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SliderControlType, 30, FOR_SliderControlType_FIELDS) + +#define FOR_SliderControlType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, RectangleType, bounds) \ + DO_TO_FIELD (10, DmResID, thumbID) \ + DO_TO_FIELD (12, DmResID, backgroundID) \ + DO_TO_FIELD (14, ControlAttrType, attr) \ + DO_TO_FIELD (16, ControlStyleType, style) \ + DO_TO_FIELD (17, UInt8, reserved) \ + DO_TO_FIELD (18, UInt16, minValue) \ + DO_TO_FIELD (20, UInt16, maxValue) \ + DO_TO_FIELD (22, UInt16, pageSize) \ + DO_TO_FIELD (24, UInt16, value) \ + DO_TO_FIELD (26, emuptr, activeSliderP) \ + + +// ======================================== +// ===== SlkPktFooterType ===== +// ======================================== + +#define FOR_SlkPktFooterType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SlkPktFooterType, 2, FOR_SlkPktFooterType_FIELDS) + +#define FOR_SlkPktFooterType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, crc16) \ + + +// ======================================== +// ===== SlkPktHeaderType ===== +// ======================================== + +#define FOR_SlkPktHeaderType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SlkPktHeaderType, 10, FOR_SlkPktHeaderType_FIELDS) + +#define FOR_SlkPktHeaderType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, signature1) \ + DO_TO_FIELD (2, UInt8, signature2) \ + DO_TO_FIELD (3, UInt8, dest) \ + DO_TO_FIELD (4, UInt8, src) \ + DO_TO_FIELD (5, UInt8, type) \ + DO_TO_FIELD (6, UInt16, bodySize) \ + DO_TO_FIELD (8, UInt8, transId) \ + DO_TO_FIELD (9, SlkPktHeaderChecksum, checksum) \ + + +// ======================================== +// ===== SndCommandType ===== +// ======================================== + +#define FOR_SndCommandType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SndCommandType, 10, FOR_SndCommandType_FIELDS) + +#define FOR_SndCommandType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, cmd) \ + DO_TO_FIELD (1, UInt8, reserved) \ + DO_TO_FIELD (2, Int32, param1) \ + DO_TO_FIELD (6, UInt16, param2) \ + DO_TO_FIELD (8, UInt16, param3) \ + + +// ======================================== +// ===== StorageHeaderType ===== +// ======================================== + +#define FOR_StorageHeaderType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (StorageHeaderType, 76, FOR_StorageHeaderType_FIELDS) + +#define FOR_StorageHeaderType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, signature) \ + DO_TO_FIELD (4, UInt16, version) \ + DO_TO_FIELD (6, UInt16, flags) \ + DO_TO_FIELD (8, UInt8, name) \ + DO_TO_FIELD (40, UInt32, creationDate) \ + DO_TO_FIELD (44, UInt32, backupDate) \ + DO_TO_FIELD (48, UInt32, heapListOffset) \ + DO_TO_FIELD (52, UInt32, initCodeOffset1) \ + DO_TO_FIELD (56, UInt32, initCodeOffset2) \ + DO_TO_FIELD (60, LocalID, databaseDirID) \ + DO_TO_FIELD (64, UInt32, rsvSpace) \ + DO_TO_FIELD (68, UInt32, dynHeapSpace) \ + DO_TO_FIELD (72, UInt32, firstRAMBlockSize) \ + + +// ======================================== +// ===== SysAppInfoType ===== +// ======================================== + +#define FOR_SysAppInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysAppInfoType, 60, FOR_SysAppInfoType_FIELDS) + +#define FOR_SysAppInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Int16, cmd) \ + DO_TO_FIELD (2, emuptr, cmdPBP) \ + DO_TO_FIELD (6, UInt16, launchFlags) \ + DO_TO_FIELD (8, UInt32, taskID) \ + DO_TO_FIELD (12, emuptr, codeH) \ + DO_TO_FIELD (16, emuptr, dbP) \ + DO_TO_FIELD (20, emuptr, stackP) \ + DO_TO_FIELD (24, emuptr, globalsChunkP) \ + DO_TO_FIELD (28, UInt16, memOwnerID) \ + DO_TO_FIELD (30, emuptr, dmAccessP) \ + DO_TO_FIELD (34, Err, dmLastErr) \ + DO_TO_FIELD (36, emuptr, errExceptionP) \ + DO_TO_FIELD (40, emuptr, a5Ptr) \ + DO_TO_FIELD (44, emuptr, stackEndP) \ + DO_TO_FIELD (48, emuptr, globalEndP) \ + DO_TO_FIELD (52, emuptr, rootP) \ + DO_TO_FIELD (56, emuptr, extraP) \ + + +// ======================================== +// ===== SysBatteryDataStructV1 ===== +// ======================================== + +#define FOR_SysBatteryDataStructV1_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysBatteryDataStructV1, 50, FOR_SysBatteryDataStructV1_FIELDS) + +#define FOR_SysBatteryDataStructV1_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, sysBattDataStructVersion) \ + DO_TO_FIELD (2, UInt16, sysBattMildWrngVoltage) \ + DO_TO_FIELD (4, UInt16, sysBattSevereWrngVoltage) \ + DO_TO_FIELD (6, UInt16, sysBattShutdownEnVoltage) \ + DO_TO_FIELD (8, UInt16, sysBattShutdownDisVoltage) \ + DO_TO_FIELD (10, UInt16, sysBattMinIRVoltage) \ + DO_TO_FIELD (12, UInt32, sysBattMildWrngTimeout) \ + DO_TO_FIELD (16, UInt32, sysBattSevereWrngTimeout) \ + DO_TO_FIELD (20, UInt16, sysBattCritWarnOffDays) \ + DO_TO_FIELD (22, UInt32, sysBattCritWarnOnTicks) \ + DO_TO_FIELD (26, UInt16, sysBattStepsPerVolt) \ + DO_TO_FIELD (28, Int16, sysBattVoltageStepOffset) \ + DO_TO_FIELD (30, UInt32, sysBattReserved1) \ + DO_TO_FIELD (34, UInt32, sysBattReserved2) \ + DO_TO_FIELD (38, UInt16, sysBattVoltageCurve) \ + + +// ======================================== +// ===== SysBatteryDataStructV2 ===== +// ======================================== + +#define FOR_SysBatteryDataStructV2_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysBatteryDataStructV2, 54, FOR_SysBatteryDataStructV2_FIELDS) + +#define FOR_SysBatteryDataStructV2_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, sysBattDataStructVersion) \ + DO_TO_FIELD (2, UInt16, sysBattMildWrngVoltage) \ + DO_TO_FIELD (4, UInt16, sysBattSevereWrngVoltage) \ + DO_TO_FIELD (6, UInt16, sysBattMildWrngPercent) \ + DO_TO_FIELD (8, UInt16, sysBattSevereWrngPercent) \ + DO_TO_FIELD (10, UInt16, sysBattShutdownEnVoltage) \ + DO_TO_FIELD (12, UInt16, sysBattShutdownDisVoltage) \ + DO_TO_FIELD (14, UInt16, sysBattMinIRVoltage) \ + DO_TO_FIELD (16, UInt32, sysBattMildWrngTimeout) \ + DO_TO_FIELD (20, UInt32, sysBattSevereWrngTimeout) \ + DO_TO_FIELD (24, UInt16, sysBattCritWarnOffDays) \ + DO_TO_FIELD (26, UInt32, sysBattCritWarnOnTicks) \ + DO_TO_FIELD (30, UInt16, sysBattStepsPerVolt) \ + DO_TO_FIELD (32, Int16, sysBattVoltageStepOffset) \ + DO_TO_FIELD (34, UInt32, sysBattReserved1) \ + DO_TO_FIELD (38, UInt32, sysBattReserved2) \ + DO_TO_FIELD (42, UInt16, sysBattVoltageCurve) \ + + +// ======================================== +// ===== SysBatteryDataStructV3 ===== +// ======================================== + +#define FOR_SysBatteryDataStructV3_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysBatteryDataStructV3, 38, FOR_SysBatteryDataStructV3_FIELDS) + +#define FOR_SysBatteryDataStructV3_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, sysBattDataStructVersion) \ + DO_TO_FIELD (2, UInt16, sysBattShutdownEnVoltage) \ + DO_TO_FIELD (4, UInt16, sysBattShutdownDisVoltage) \ + DO_TO_FIELD (6, UInt16, sysBattTableFlags) \ + DO_TO_FIELD (8, UInt16, sysBattCritWarnOffDays) \ + DO_TO_FIELD (10, UInt32, sysBattCritWarnOnTicks) \ + DO_TO_FIELD (14, UInt16, sysBattStepsPerVolt) \ + DO_TO_FIELD (16, Int16, sysBattVoltageStepOffset) \ + DO_TO_FIELD (18, UInt32, sysBattReserved1) \ + DO_TO_FIELD (22, UInt32, sysBattReserved2) \ + DO_TO_FIELD (26, UInt16, sysBattVoltageCurve) \ + + +// ======================================== +// ===== SysLibTblEntryType ===== +// ======================================== + +#define FOR_SysLibTblEntryType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysLibTblEntryType, 10, FOR_SysLibTblEntryType_FIELDS) + +#define FOR_SysLibTblEntryType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, dispatchTblP) \ + DO_TO_FIELD (4, emuptr, globalsP) \ + DO_TO_FIELD (8, LocalID, dbID) \ + DO_TO_FIELD (12, emuptr, codeRscH) \ + + +// ======================================== +// ===== SysKernelInfoType ===== +// ======================================== + +#define FOR_SysKernelInfoType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysKernelInfoType, 62, FOR_SysKernelInfoType_FIELDS) + +#define FOR_SysKernelInfoType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, selector) \ + DO_TO_FIELD (1, UInt8, reserved) \ + DO_TO_FIELD (2, UInt32, id) \ + DO_TO_FIELD (6, kernel_info_task, task) \ + DO_TO_FIELD (6, kernel_info_semaphore, semaphore) \ + DO_TO_FIELD (6, kernel_info_timer, timer) \ + + +// ======================================== +// ===== kernel_info_task ===== +// ======================================== + +#define FOR_kernel_info_task_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (kernel_info_task, 56, FOR_kernel_info_task_FIELDS) + +#define FOR_kernel_info_task_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, id) \ + DO_TO_FIELD (4, UInt32, nextID) \ + DO_TO_FIELD (8, UInt32, tag) \ + DO_TO_FIELD (12, UInt32, status) \ + DO_TO_FIELD (16, UInt32, timer) \ + DO_TO_FIELD (20, UInt32, timeSlice) \ + DO_TO_FIELD (24, Int16, priority) \ + DO_TO_FIELD (26, UInt32, attributes) \ + DO_TO_FIELD (30, Int16, pendingCalls) \ + DO_TO_FIELD (32, UInt32, senderTaskID) \ + DO_TO_FIELD (36, UInt32, msgExchangeID) \ + DO_TO_FIELD (40, UInt32, tcbP) \ + DO_TO_FIELD (44, UInt32, stackP) \ + DO_TO_FIELD (48, UInt32, stackStart) \ + DO_TO_FIELD (52, UInt32, stackSize) \ + + +// ======================================== +// ===== kernel_info_semaphore ===== +// ======================================== + +#define FOR_kernel_info_semaphore_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (kernel_info_semaphore, 22, FOR_kernel_info_semaphore_FIELDS) + +#define FOR_kernel_info_semaphore_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, id) \ + DO_TO_FIELD (4, UInt32, nextID) \ + DO_TO_FIELD (8, UInt32, tag) \ + DO_TO_FIELD (12, Int16, initValue) \ + DO_TO_FIELD (14, Int16, curValue) \ + DO_TO_FIELD (16, Int16, nestLevel) \ + DO_TO_FIELD (18, UInt32, ownerID) \ + + +// ======================================== +// ===== kernel_info_timer ===== +// ======================================== + +#define FOR_kernel_info_timer_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (kernel_info_timer, 24, FOR_kernel_info_timer_FIELDS) + +#define FOR_kernel_info_timer_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, id) \ + DO_TO_FIELD (4, UInt32, nextID) \ + DO_TO_FIELD (8, UInt32, tag) \ + DO_TO_FIELD (12, UInt32, ticksLeft) \ + DO_TO_FIELD (16, UInt32, period) \ + DO_TO_FIELD (20, UInt32, proc) \ + + +// ======================================== +// ===== SysNVParamsType ===== +// ======================================== + +#define FOR_SysNVParamsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysNVParamsType, 30, FOR_SysNVParamsType_FIELDS) + +#define FOR_SysNVParamsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, rtcHours) \ + DO_TO_FIELD (4, UInt32, rtcHourMinSecCopy) \ + DO_TO_FIELD (8, UInt8, swrLCDContrastValue) \ + DO_TO_FIELD (9, UInt8, swrLCDBrightnessValue) \ + DO_TO_FIELD (10, emuptr, splashScreenPtr) \ + DO_TO_FIELD (14, emuptr, hardResetScreenPtr) \ + DO_TO_FIELD (18, UInt16, localeLanguage) \ + DO_TO_FIELD (20, UInt16, localeCountry) \ + DO_TO_FIELD (22, UInt32, sysNVOEMStorage1) \ + DO_TO_FIELD (26, UInt32, sysNVOEMStorage2) \ + + +// ======================================== +// ===== SysPktBodyType ===== +// ======================================== + +#define FOR_SysPktBodyType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktBodyType, sysPktMaxBodySize, FOR_SysPktBodyType_FIELDS) + +#define FOR_SysPktBodyType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt8, data) \ + + +// ======================================== +// ===== SysPktContinueCmdType ===== +// ======================================== + +#define FOR_SysPktContinueCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktContinueCmdType, 90, FOR_SysPktContinueCmdType_FIELDS) + +#define FOR_SysPktContinueCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, M68KRegsType, regs) \ + DO_TO_FIELD (76, Boolean, stepSpy) \ + DO_TO_FIELD (77, UInt8, reserved) \ + DO_TO_FIELD (78, UInt32, ssAddr) \ + DO_TO_FIELD (82, UInt32, ssCount) \ + DO_TO_FIELD (86, UInt32, ssCheckSum) \ + + +// ======================================== +// ===== SysPktDbgBreakToggleCmdType ===== +// ======================================== + +#define FOR_SysPktDbgBreakToggleCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktDbgBreakToggleCmdType, 2, FOR_SysPktDbgBreakToggleCmdType_FIELDS) + +#define FOR_SysPktDbgBreakToggleCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktDbgBreakToggleRspType ===== +// ======================================== + +#define FOR_SysPktDbgBreakToggleRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktDbgBreakToggleRspType, 4, FOR_SysPktDbgBreakToggleRspType_FIELDS) + +#define FOR_SysPktDbgBreakToggleRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, Boolean, newState) \ + DO_TO_FIELD (3, UInt8, reserved) \ + + +// ======================================== +// ===== SysPktFindCmdType ===== +// ======================================== + +#define FOR_SysPktFindCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktFindCmdType, sysPktMaxBodySize, FOR_SysPktFindCmdType_FIELDS) + +#define FOR_SysPktFindCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt32, firstAddr) \ + DO_TO_FIELD (6, UInt32, lastAddr) \ + DO_TO_FIELD (10, UInt16, numBytes) \ + DO_TO_FIELD (12, Boolean, caseInsensitive) \ + DO_TO_FIELD (13, UInt8, padding) \ + DO_TO_FIELD (14, UInt8, data) \ + + +// ======================================== +// ===== SysPktFindRspType ===== +// ======================================== + +#define FOR_SysPktFindRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktFindRspType, 8, FOR_SysPktFindRspType_FIELDS) + +#define FOR_SysPktFindRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, emuptr, addr) \ + DO_TO_FIELD (6, UInt8, found) \ + DO_TO_FIELD (7, UInt8, padding) \ + + +// ======================================== +// ===== SysPktGetBreakpointsCmdType ===== +// ======================================== + +#define FOR_SysPktGetBreakpointsCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktGetBreakpointsCmdType, 2, FOR_SysPktGetBreakpointsCmdType_FIELDS) + +#define FOR_SysPktGetBreakpointsCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktEmptyRspType ===== +// ======================================== + +#define FOR_SysPktEmptyRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktEmptyRspType, 2, FOR_SysPktEmptyRspType_FIELDS) + +#define FOR_SysPktEmptyRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktGetBreakpointsRspType ===== +// ======================================== + +#define FOR_SysPktGetBreakpointsRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktGetBreakpointsRspType, 38, FOR_SysPktGetBreakpointsRspType_FIELDS) + +#define FOR_SysPktGetBreakpointsRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, BreakpointType, bp) \ + + +// ======================================== +// ===== SysPktGetTrapBreaksCmdType ===== +// ======================================== + +#define FOR_SysPktGetTrapBreaksCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktGetTrapBreaksCmdType, 2, FOR_SysPktGetTrapBreaksCmdType_FIELDS) + +#define FOR_SysPktGetTrapBreaksCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktGetTrapBreaksRspType ===== +// ======================================== + +#define FOR_SysPktGetTrapBreaksRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktGetTrapBreaksRspType, 12, FOR_SysPktGetTrapBreaksRspType_FIELDS) + +#define FOR_SysPktGetTrapBreaksRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt16, trapBP) \ + + +// ======================================== +// ===== SysPktGetTrapConditionsCmdType ===== +// ======================================== + +#define FOR_SysPktGetTrapConditionsCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktGetTrapConditionsCmdType, 2, FOR_SysPktGetTrapConditionsCmdType_FIELDS) + +#define FOR_SysPktGetTrapConditionsCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktGetTrapConditionsRspType ===== +// ======================================== + +#define FOR_SysPktGetTrapConditionsRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktGetTrapConditionsRspType, 12, FOR_SysPktGetTrapConditionsRspType_FIELDS) + +#define FOR_SysPktGetTrapConditionsRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt16, trapParam) \ + + +// ======================================== +// ===== SysPktReadMemCmdType ===== +// ======================================== + +#define FOR_SysPktReadMemCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktReadMemCmdType, 8, FOR_SysPktReadMemCmdType_FIELDS) + +#define FOR_SysPktReadMemCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, emuptr, address) \ + DO_TO_FIELD (6, UInt16, numBytes) \ + + +// ======================================== +// ===== SysPktReadMemRspType ===== +// ======================================== + +#define FOR_SysPktReadMemRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktReadMemRspType, sysPktMaxBodySize, FOR_SysPktReadMemRspType_FIELDS) + +#define FOR_SysPktReadMemRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, char, data) \ + + +// ======================================== +// ===== SysPktReadRegsCmdType ===== +// ======================================== + +#define FOR_SysPktReadRegsCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktReadRegsCmdType, 2, FOR_SysPktReadRegsCmdType_FIELDS) + +#define FOR_SysPktReadRegsCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktReadRegsRspType ===== +// ======================================== + +#define FOR_SysPktReadRegsRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktReadRegsRspType, 76, FOR_SysPktReadRegsRspType_FIELDS) + +#define FOR_SysPktReadRegsRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, M68KRegsType, reg) \ + + +// ======================================== +// ===== SysPktRPC2Type ===== +// ======================================== + +#define FOR_SysPktRPC2Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktRPC2Type, sysPktMaxBodySize, FOR_SysPktRPC2Type_FIELDS) + +#define FOR_SysPktRPC2Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt16, trapWord) \ + DO_TO_FIELD (4, UInt32, resultD0) \ + DO_TO_FIELD (8, UInt32, resultA0) \ + DO_TO_FIELD (12, UInt16, resultException) \ + DO_TO_FIELD (14, UInt8, DRegMask) \ + DO_TO_FIELD (15, UInt8, ARegMask) \ + DO_TO_FIELD (16, UInt32, Regs) \ + DO_TO_FIELD (1, UInt16, numParams) \ + DO_TO_FIELD (1, char, param) \ + + +// ======================================== +// ===== SysPktRPCParamType ===== +// ======================================== + +#define FOR_SysPktRPCParamType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktRPCParamType, 6, FOR_SysPktRPCParamType_FIELDS) + +#define FOR_SysPktRPCParamType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, byRef) \ + DO_TO_FIELD (1, UInt8, size) \ + DO_TO_FIELD (2, UInt8, asByte) \ + DO_TO_FIELD (2, UInt16, asShort) \ + DO_TO_FIELD (2, UInt32, asLong) \ + + +// ======================================== +// ===== SysPktRPCType ===== +// ======================================== + +#define FOR_SysPktRPCType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktRPCType, sysPktMaxBodySize, FOR_SysPktRPCType_FIELDS) + +#define FOR_SysPktRPCType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt16, trapWord) \ + DO_TO_FIELD (4, UInt32, resultD0) \ + DO_TO_FIELD (8, UInt32, resultA0) \ + DO_TO_FIELD (12, UInt16, numParams) \ + DO_TO_FIELD (14, char, param) \ + + +// ======================================== +// ===== SysPktRtnNameCmdType ===== +// ======================================== + +#define FOR_SysPktRtnNameCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktRtnNameCmdType, 6, FOR_SysPktRtnNameCmdType_FIELDS) + +#define FOR_SysPktRtnNameCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, emuptr, address) \ + + +// ======================================== +// ===== SysPktRtnNameRspType ===== +// ======================================== + +#define FOR_SysPktRtnNameRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktRtnNameRspType, (14 + sysPktMaxNameLen), FOR_SysPktRtnNameRspType_FIELDS) + +#define FOR_SysPktRtnNameRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, emuptr, address) \ + DO_TO_FIELD (6, emuptr, startAddr) \ + DO_TO_FIELD (10, emuptr, endAddr) \ + DO_TO_FIELD (14, char, name) \ + + +// ======================================== +// ===== SysPktSetBreakpointsCmdType ===== +// ======================================== + +#define FOR_SysPktSetBreakpointsCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktSetBreakpointsCmdType, 38, FOR_SysPktSetBreakpointsCmdType_FIELDS) + +#define FOR_SysPktSetBreakpointsCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, BreakpointType, bp) \ + + +// ======================================== +// ===== SysPktSetBreakpointsRspType ===== +// ======================================== + +#define FOR_SysPktSetBreakpointsRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktSetBreakpointsRspType, 2, FOR_SysPktSetBreakpointsRspType_FIELDS) + +#define FOR_SysPktSetBreakpointsRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktSetTrapBreaksCmdType ===== +// ======================================== + +#define FOR_SysPktSetTrapBreaksCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktSetTrapBreaksCmdType, 12, FOR_SysPktSetTrapBreaksCmdType_FIELDS) + +#define FOR_SysPktSetTrapBreaksCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt16, trapBP) \ + + +// ======================================== +// ===== SysPktSetTrapConditionsCmdType ===== +// ======================================== + +#define FOR_SysPktSetTrapConditionsCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktSetTrapConditionsCmdType, 12, FOR_SysPktSetTrapConditionsCmdType_FIELDS) + +#define FOR_SysPktSetTrapConditionsCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, UInt16, trapParam) \ + + +// ======================================== +// ===== SysPktSetTrapConditionsRspType ===== +// ======================================== + +#define FOR_SysPktSetTrapConditionsRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktSetTrapConditionsRspType, 2, FOR_SysPktSetTrapConditionsRspType_FIELDS) + +#define FOR_SysPktSetTrapConditionsRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktStateCmdType ===== +// ======================================== + +#define FOR_SysPktStateCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktStateCmdType, 2, FOR_SysPktStateCmdType_FIELDS) + +#define FOR_SysPktStateCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktStateRspType ===== +// ======================================== + +#define FOR_SysPktStateRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktStateRspType, 188, FOR_SysPktStateRspType_FIELDS) + +#define FOR_SysPktStateRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, Boolean, resetted) \ + DO_TO_FIELD (3, UInt8, reserved1) \ + DO_TO_FIELD (4, UInt16, exceptionId) \ + DO_TO_FIELD (6, M68KRegsType, reg) \ + DO_TO_FIELD (80, UInt16, inst) \ + DO_TO_FIELD (110, BreakpointType, bp) \ + DO_TO_FIELD (146, emuptr, startAddr) \ + DO_TO_FIELD (150, emuptr, endAddr) \ + DO_TO_FIELD (154, char, name) \ + DO_TO_FIELD (186, UInt8, trapTableRev) \ + DO_TO_FIELD (187, UInt8, reserved2) \ + + +// ======================================== +// ===== SysPktWriteMemCmdType ===== +// ======================================== + +#define FOR_SysPktWriteMemCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktWriteMemCmdType, sysPktMaxBodySize, FOR_SysPktWriteMemCmdType_FIELDS) + +#define FOR_SysPktWriteMemCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, emuptr, address) \ + DO_TO_FIELD (6, UInt16, numBytes) \ + DO_TO_FIELD (8, char, data) \ + + +// ======================================== +// ===== SysPktWriteMemRspType ===== +// ======================================== + +#define FOR_SysPktWriteMemRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktWriteMemRspType, 2, FOR_SysPktWriteMemRspType_FIELDS) + +#define FOR_SysPktWriteMemRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +// ======================================== +// ===== SysPktWriteRegsCmdType ===== +// ======================================== + +#define FOR_SysPktWriteRegsCmdType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktWriteRegsCmdType, 76, FOR_SysPktWriteRegsCmdType_FIELDS) + +#define FOR_SysPktWriteRegsCmdType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + DO_TO_FIELD (2, M68KRegsType, reg) \ + + +// ======================================== +// ===== SysPktWriteRegsRspType ===== +// ======================================== + +#define FOR_SysPktWriteRegsRspType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (SysPktWriteRegsRspType, 2, FOR_SysPktWriteRegsRspType_FIELDS) + +#define FOR_SysPktWriteRegsRspType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, command) \ + DO_TO_FIELD (1, UInt8, _filler) \ + + +/* Note: Several of the following structures have a numeral in their + name. These serve to distinguish the separate versions, + and are roughly related to the version of the ROM heap when + the particular variant was introduced. */ + + +// ======================================== +// ===== ROMCardHeader5Type ===== +// ======================================== + +#define FOR_ROMCardHeader5Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMCardHeader5Type, 256, FOR_ROMCardHeader5Type_FIELDS) + +#define FOR_ROMCardHeader5Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, initStack) \ + DO_TO_FIELD (4, UInt32, resetVector) \ + DO_TO_FIELD (8, UInt32, signature) \ + DO_TO_FIELD (12, UInt16, hdrVersion) \ + DO_TO_FIELD (14, UInt16, flags) \ + DO_TO_FIELD (16, char, cardName) \ + DO_TO_FIELD (48, char, cardManuf) \ + DO_TO_FIELD (80, UInt16, cardVersion) \ + DO_TO_FIELD (82, UInt32, cardTime) \ + DO_TO_FIELD (86, UInt16, unknown1) \ + DO_TO_FIELD (88, UInt32, ramlist) \ + DO_TO_FIELD (92, UInt32, rwoffset) \ + DO_TO_FIELD (96, UInt32, rwlength) \ + DO_TO_FIELD (100, UInt32, rooffset) \ + DO_TO_FIELD (104, UInt32, bigrom) \ + DO_TO_FIELD (108, UInt32, checksumLength) \ + DO_TO_FIELD (112, UInt16, checksumValue) \ + DO_TO_FIELD (114, UInt32, rwwoffset) \ + DO_TO_FIELD (118, UInt32, rwwlength) \ + DO_TO_FIELD (122, UInt32, halDispatch) \ + DO_TO_FIELD (126, UInt32, companyID) \ + DO_TO_FIELD (130, UInt32, halID) \ + DO_TO_FIELD (134, UInt32, romVersionNumber) \ + DO_TO_FIELD (138, char, romVersionString) \ + DO_TO_FIELD (170, char, reserved) \ + + +// ======================================== +// ===== ROMStoreHeader4Type ===== +// ======================================== + +#define FOR_ROMStoreHeader4Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMStoreHeader4Type, 256, FOR_ROMStoreHeader4Type_FIELDS) + +#define FOR_ROMStoreHeader4Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, signature) \ + DO_TO_FIELD (4, UInt16, version) \ + DO_TO_FIELD (6, UInt16, flags) \ + DO_TO_FIELD (8, char, name) \ + DO_TO_FIELD (40, UInt32, creationDate) \ + DO_TO_FIELD (44, UInt32, backupDate) \ + DO_TO_FIELD (48, UInt32, heapAddr) \ + DO_TO_FIELD (52, UInt32, initAddr1) \ + DO_TO_FIELD (56, UInt32, initAddr2) \ + DO_TO_FIELD (60, UInt32, dbLID) \ + DO_TO_FIELD (64, UInt32, reserved) \ + DO_TO_FIELD (68, UInt32, heapSize) \ + DO_TO_FIELD (72, UInt32, ramSize) \ + + +// ======================================== +// ===== ROMHeapHeader3Type ===== +// ======================================== + +#define FOR_ROMHeapHeader3Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMHeapHeader3Type, 16, FOR_ROMHeapHeader3Type_FIELDS) + +#define FOR_ROMHeapHeader3Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + DO_TO_FIELD (2, UInt32, size) \ + DO_TO_FIELD (6, UInt32, freeChunk) \ + DO_TO_FIELD (10, UInt16, masterPointers) \ + DO_TO_FIELD (12, UInt32, nextMasterTable) \ + + +// ======================================== +// ===== ROMHeapHeader2Type ===== +// ======================================== + +#define FOR_ROMHeapHeader2Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMHeapHeader2Type, 12, FOR_ROMHeapHeader2Type_FIELDS) + +#define FOR_ROMHeapHeader2Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + DO_TO_FIELD (2, UInt32, size) \ + DO_TO_FIELD (6, UInt16, masterPointers) \ + DO_TO_FIELD (8, UInt32, nextMasterTable) \ + + +// ======================================== +// ===== ROMHeapHeader1Type ===== +// ======================================== + +#define FOR_ROMHeapHeader1Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMHeapHeader1Type, 8, FOR_ROMHeapHeader1Type_FIELDS) + +#define FOR_ROMHeapHeader1Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + DO_TO_FIELD (2, UInt16, size) \ + DO_TO_FIELD (4, UInt16, masterPointers) \ + DO_TO_FIELD (6, UInt16, nextMasterTable) \ + + +// ======================================== +// ===== ROMDBDir1Type ===== +// ======================================== + +#define FOR_ROMDBDir1Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMDBDir1Type, 6, FOR_ROMDBDir1Type_FIELDS) + +#define FOR_ROMDBDir1Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, nextTable) \ + DO_TO_FIELD (4, UInt16, count) \ + DO_TO_FIELD (6, UInt32, dbLID) \ + + +// ======================================== +// ===== ROMDBRecordHeader1Type ===== +// ======================================== + +#define FOR_ROMDBRecordHeader1Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMDBRecordHeader1Type, 8, FOR_ROMDBRecordHeader1Type_FIELDS) + +#define FOR_ROMDBRecordHeader1Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, chunkLID) \ + DO_TO_FIELD (4, UInt32, recordID) \ + + +// ======================================== +// ===== ROMDBResourceHeader1Type ===== +// ======================================== + +#define FOR_ROMDBResourceHeader1Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMDBResourceHeader1Type, 10, FOR_ROMDBResourceHeader1Type_FIELDS) + +#define FOR_ROMDBResourceHeader1Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, type) \ + DO_TO_FIELD (4, UInt16, id) \ + DO_TO_FIELD (6, UInt32, chunkLID) \ + + +// ======================================== +// ===== ROMDBHeader1Type ===== +// ======================================== + +#define FOR_ROMDBHeader1Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMDBHeader1Type, 78, FOR_ROMDBHeader1Type_FIELDS) + +#define FOR_ROMDBHeader1Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, char, name) \ + DO_TO_FIELD (32, UInt16, flags) \ + DO_TO_FIELD (34, UInt16, version) \ + DO_TO_FIELD (36, UInt32, creationTime) \ + DO_TO_FIELD (40, UInt32, modificationTime) \ + DO_TO_FIELD (44, UInt32, backupTime) \ + DO_TO_FIELD (48, UInt32, modificationNumber) \ + DO_TO_FIELD (52, UInt32, appinfoLID) \ + DO_TO_FIELD (56, UInt32, sortinfoLID) \ + DO_TO_FIELD (60, UInt32, type) \ + DO_TO_FIELD (64, UInt32, creator) \ + DO_TO_FIELD (68, UInt32, uniqueIDSeed) \ + DO_TO_FIELD (72, UInt32, extensionHeader) \ + DO_TO_FIELD (76, UInt16, recordCount) \ + DO_TO_FIELD (78, ROMDBRecordHeader1Type, records) \ + DO_TO_FIELD (78, ROMDBResourceHeader1Type, resources) \ + + +// ======================================== +// ===== ROMHeapChunkHdr2Type ===== +// ======================================== + +#define FOR_ROMHeapChunkHdr2Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMHeapChunkHdr2Type, 8, FOR_ROMHeapChunkHdr2Type_FIELDS) + +#define FOR_ROMHeapChunkHdr2Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, long1) \ + DO_TO_FIELD (4, UInt32, long2) \ + + +// ======================================== +// ===== ROMHeapChunkHdr1Type ===== +// ======================================== + +#define FOR_ROMHeapChunkHdr1Type_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (ROMHeapChunkHdr1Type, 6, FOR_ROMHeapChunkHdr1Type_FIELDS) + +#define FOR_ROMHeapChunkHdr1Type_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, size) \ + DO_TO_FIELD (2, UInt8, lockOwner) \ + DO_TO_FIELD (3, UInt8, flags) \ + DO_TO_FIELD (4, UInt16, hOffset) \ + + +// ======================================== +// ===== ROMFtrFeatureType ===== +// ======================================== + +#define FOR_ROMFtrFeatureType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT(ROMFtrFeatureType, 6, FOR_ROMFtrFeatureType_FIELDS) + +#define FOR_ROMFtrFeatureType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, num) \ + DO_TO_FIELD (2, UInt32, value) \ + + +// ======================================== +// ===== ROMFtrCreatorType ===== +// ======================================== + +#define FOR_ROMFtrCreatorType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT(ROMFtrCreatorType, 6, FOR_ROMFtrCreatorType_FIELDS) + +#define FOR_ROMFtrCreatorType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, creator) \ + DO_TO_FIELD (4, UInt16, numEntries) \ + DO_TO_FIELD (6, ROMFtrFeatureType, feature) \ + + +// ======================================== +// ===== ROMFtrTableType ===== +// ======================================== + +#define FOR_ROMFtrTableType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT(ROMFtrTableType, 2, FOR_ROMFtrTableType_FIELDS) + +#define FOR_ROMFtrTableType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, numEntries) \ + DO_TO_FIELD (2, ROMFtrCreatorType, creator) \ + + +// ======================================== +// ===== TableAttrType ===== +// ======================================== + +#define FOR_TableAttrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT(TableAttrType, 2, FOR_TableAttrType_FIELDS) + +#define FOR_TableAttrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, flags) \ + + +// ======================================== +// ===== TableType ===== +// ======================================== + +#define FOR_TableType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT(TableType, 74, FOR_TableType_FIELDS) + +#define FOR_TableType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, id) \ + DO_TO_FIELD (2, RectangleType, bounds) \ + DO_TO_FIELD (10, TableAttrType, attr) \ + DO_TO_FIELD (12, Int16, numColumns) \ + DO_TO_FIELD (14, Int16, numRows) \ + DO_TO_FIELD (16, Int16, currentRow) \ + DO_TO_FIELD (18, Int16, currentColumn) \ + DO_TO_FIELD (20, Int16, topRow) \ + DO_TO_FIELD (22, emuptr, columnAttrs) \ + DO_TO_FIELD (26, emuptr, rowAttrs) \ + DO_TO_FIELD (30, emuptr, items) \ + DO_TO_FIELD (34, FieldType, currentField) \ + + +// ======================================== +// ===== TimGlobalsType ===== +// ======================================== + +#define FOR_TimGlobalsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT(TimGlobalsType, 24, FOR_TimGlobalsType_FIELDS) + +#define FOR_TimGlobalsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt32, rtcHours) \ + DO_TO_FIELD (4, UInt32, alarmSeconds) \ + DO_TO_FIELD (8, Boolean, rtcBugWorkaround) \ + DO_TO_FIELD (9, Boolean, rtcBugAsleep) \ + DO_TO_FIELD (10, UInt32, rtcBugAlarm) \ + DO_TO_FIELD (14, UInt32, rtcBugSeconds) \ + DO_TO_FIELD (18, UInt32, rtcBugLastSeconds) \ + DO_TO_FIELD (22, Boolean, rtcBugFastMinuteCalc) \ + DO_TO_FIELD (23, UInt8, reserved) \ + + +// ======================================== +// ===== UIColorStateType ===== +// ======================================== + +#define FOR_UIColorStateType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIColorStateType, 12, FOR_UIColorStateType_FIELDS) + +#define FOR_UIColorStateType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, colorTableP) \ + DO_TO_FIELD (4, emuptr, colorTableStackP) \ + DO_TO_FIELD (8, Int16, colorTableStackIndex) \ + DO_TO_FIELD (10, Boolean, tablesDirty) \ + DO_TO_FIELD (11, UInt8, reserved) \ + + +// ======================================== +// ===== UIGlobalsType ===== +// ======================================== +// Universal type; contains only parts up to where +// different versions diverge. + +#define FOR_UIGlobalsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsType, 56, FOR_UIGlobalsType_FIELDS) + +#define FOR_UIGlobalsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV1, gStateV1) \ + DO_TO_FIELD (28, GraphicStateTypeV2, gStateV2) \ + DO_TO_FIELD (28, GraphicStateTypeV3, gStateV3) \ + + +// ======================================== +// ===== UIGlobalsTypeCommon ===== +// ======================================== +// Mostly Universal type. Can be used on anything except 1.0. Skips over +// a gap if shifting fields between the gState and uiCurrentFontID fields, +// does include uiCurrentMenuRscID and uiDecimalSeparator, but doesn't +// include allFormsClosing, uiOptions and menuCmdBarCurrent fields. + +#define FOR_UIGlobalsTypeCommon_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsTypeCommon, 163, FOR_UIGlobalsTypeCommon_FIELDS) + +#define FOR_UIGlobalsTypeCommon_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV1, gStateV1) \ + DO_TO_FIELD (28, GraphicStateTypeV2, gStateV2) \ + DO_TO_FIELD (28, GraphicStateTypeV3, gStateV3) \ + /* Gap of shifting fields */ \ + DO_TO_FIELD (98, UInt8, uiCurrentFontID) \ + DO_TO_FIELD (99, Int16, _unused2) \ + DO_TO_FIELD (100, emuptr, currentForm) \ + DO_TO_FIELD (104, Boolean, insPtIsEnabled) \ + DO_TO_FIELD (105, Boolean, insPtOn) \ + DO_TO_FIELD (106, PointType, insPtLoc) \ + DO_TO_FIELD (110, Int16, insPtHeight) \ + DO_TO_FIELD (112, Int32, insPtLastTick) \ + DO_TO_FIELD (116, emuptr, insPtBitsBehind) \ + /* array of 3 ClipboardItems */ \ + DO_TO_FIELD (120, ClipboardItem, clipboard) \ + DO_TO_FIELD (138, emuptr, uiCurrentMenu) \ + DO_TO_FIELD (142, UInt16, uiCurrentMenuRscID) \ + DO_TO_FIELD (144, FieldUndoType, undoGlobals) \ + DO_TO_FIELD (156, UInt8, gsiState) \ + DO_TO_FIELD (157, Boolean, gsiIsEnabled) \ + DO_TO_FIELD (158, PointType, gsiLocation) \ + DO_TO_FIELD (162, Char, uiDecimalSeparator) \ + + +// ======================================== +// ===== UIGlobalsTypeV1 ===== +// ======================================== +// Used in Palm OS 1.0. + +#define FOR_UIGlobalsTypeV1_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsTypeV1, 160, FOR_UIGlobalsTypeV1_FIELDS) + +#define FOR_UIGlobalsTypeV1_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV1, gState) \ + DO_TO_FIELD (48, emuptr, eventQ) \ + DO_TO_FIELD (52, UInt16, eventQIndex) \ + DO_TO_FIELD (54, UInt16, eventQLength) \ + DO_TO_FIELD (56, Int16, lastScreenX) \ + DO_TO_FIELD (58, Int16, lastScreenY) \ + DO_TO_FIELD (60, Boolean, lastPenDown) \ + DO_TO_FIELD (61, UInt8, _unused1) \ + DO_TO_FIELD (62, Int32, needNullTickCount) \ + DO_TO_FIELD (66, emuptr, uiCurrentFontPtr) \ + /* array of 7 emuptrs */ \ + DO_TO_FIELD (70, emuptr, uiFontTable) \ + DO_TO_FIELD (98, UInt8, uiCurrentFontID) \ + DO_TO_FIELD (99, Int16, _unused2) \ + DO_TO_FIELD (100, emuptr, currentForm) \ + DO_TO_FIELD (104, Boolean, insPtIsEnabled) \ + DO_TO_FIELD (105, Boolean, insPtOn) \ + DO_TO_FIELD (106, PointType, insPtLoc) \ + DO_TO_FIELD (110, Int16, insPtHeight) \ + DO_TO_FIELD (112, Int32, insPtLastTick) \ + DO_TO_FIELD (116, emuptr, insPtBitsBehind) \ + /* array of 3 ClipboardItems */ \ + DO_TO_FIELD (120, ClipboardItem, clipboard) \ + DO_TO_FIELD (138, emuptr, uiCurrentMenu) \ + DO_TO_FIELD (142, FieldUndoType, undoGlobals) \ + DO_TO_FIELD (154, UInt8, gsiState) \ + DO_TO_FIELD (155, Boolean, gsiIsEnabled) \ + DO_TO_FIELD (156, PointType, gsiLocation) \ + + +// ======================================== +// ===== UIGlobalsTypeV2 ===== +// ======================================== +// Used in Palm OS 2.0. +// Inserts uiCurrentMenuRscID and adds uiDecimalSeparator. + +#define FOR_UIGlobalsTypeV2_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsTypeV2, 163, FOR_UIGlobalsTypeV2_FIELDS) + +#define FOR_UIGlobalsTypeV2_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV1, gState) \ + DO_TO_FIELD (48, emuptr, eventQ) \ + DO_TO_FIELD (52, UInt16, eventQIndex) \ + DO_TO_FIELD (54, UInt16, eventQLength) \ + DO_TO_FIELD (56, Int16, lastScreenX) \ + DO_TO_FIELD (58, Int16, lastScreenY) \ + DO_TO_FIELD (60, Boolean, lastPenDown) \ + DO_TO_FIELD (61, UInt8, _unused1) \ + DO_TO_FIELD (62, Int32, needNullTickCount) \ + DO_TO_FIELD (66, emuptr, uiCurrentFontPtr) \ + /* array of 7 emuptrs */ \ + DO_TO_FIELD (70, emuptr, uiFontTable) \ + DO_TO_FIELD (98, UInt8, uiCurrentFontID) \ + DO_TO_FIELD (99, Int16, _unused2) \ + DO_TO_FIELD (100, emuptr, currentForm) \ + DO_TO_FIELD (104, Boolean, insPtIsEnabled) \ + DO_TO_FIELD (105, Boolean, insPtOn) \ + DO_TO_FIELD (106, PointType, insPtLoc) \ + DO_TO_FIELD (110, Int16, insPtHeight) \ + DO_TO_FIELD (112, Int32, insPtLastTick) \ + DO_TO_FIELD (116, emuptr, insPtBitsBehind) \ + /* array of 3 ClipboardItems */ \ + DO_TO_FIELD (120, ClipboardItem, clipboard) \ + DO_TO_FIELD (138, emuptr, uiCurrentMenu) \ + DO_TO_FIELD (142, UInt16, uiCurrentMenuRscID) \ + DO_TO_FIELD (144, FieldUndoType, undoGlobals) \ + DO_TO_FIELD (156, UInt8, gsiState) \ + DO_TO_FIELD (157, Boolean, gsiIsEnabled) \ + DO_TO_FIELD (158, PointType, gsiLocation) \ + DO_TO_FIELD (162, Char, uiDecimalSeparator) \ + + +// ======================================== +// ===== UIGlobalsTypeV3 ===== +// ======================================== +// Used in Palm OS 3.0. +// Uses V2 GraphicStateType, replaces uiFontTable with uiSysFontTablePtr...uiUnused2. + +#define FOR_UIGlobalsTypeV3_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsTypeV3, 163, FOR_UIGlobalsTypeV3_FIELDS) + +#define FOR_UIGlobalsTypeV3_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV2, gState) \ + DO_TO_FIELD (56, emuptr, eventQ) \ + DO_TO_FIELD (60, UInt16, eventQIndex) \ + DO_TO_FIELD (62, UInt16, eventQLength) \ + DO_TO_FIELD (64, Int16, lastScreenX) \ + DO_TO_FIELD (66, Int16, lastScreenY) \ + DO_TO_FIELD (68, Boolean, lastPenDown) \ + DO_TO_FIELD (69, UInt8, _unused1) \ + DO_TO_FIELD (70, Int32, needNullTickCount) \ + DO_TO_FIELD (74, emuptr, uiCurrentFontPtr) \ + DO_TO_FIELD (78, emuptr, uiSysFontTablePtr) \ + DO_TO_FIELD (82, emuptr, uiAppFontTablePtr) \ + DO_TO_FIELD (86, UInt16, uiNumSysFonts) \ + DO_TO_FIELD (88, UInt16, uiNumAppFonts) \ + DO_TO_FIELD (90, UInt32, uiUnused1) \ + DO_TO_FIELD (94, UInt32, uiUnused2) \ + DO_TO_FIELD (98, UInt8, uiCurrentFontID) \ + DO_TO_FIELD (99, Int16, _unused2) \ + DO_TO_FIELD (100, emuptr, currentForm) \ + DO_TO_FIELD (104, Boolean, insPtIsEnabled) \ + DO_TO_FIELD (105, Boolean, insPtOn) \ + DO_TO_FIELD (106, PointType, insPtLoc) \ + DO_TO_FIELD (110, Int16, insPtHeight) \ + DO_TO_FIELD (112, Int32, insPtLastTick) \ + DO_TO_FIELD (116, emuptr, insPtBitsBehind) \ + /* array of 3 ClipboardItems */ \ + DO_TO_FIELD (120, ClipboardItem, clipboard) \ + DO_TO_FIELD (138, emuptr, uiCurrentMenu) \ + DO_TO_FIELD (142, UInt16, uiCurrentMenuRscID) \ + DO_TO_FIELD (144, FieldUndoType, undoGlobals) \ + DO_TO_FIELD (156, UInt8, gsiState) \ + DO_TO_FIELD (157, Boolean, gsiIsEnabled) \ + DO_TO_FIELD (158, PointType, gsiLocation) \ + DO_TO_FIELD (162, Char, uiDecimalSeparator) \ + + +// ======================================== +// ===== UIGlobalsTypeV31 ===== +// ======================================== +// Used in Palm OS 3.1. +// Replaces uiUnused1 with uiFontListPtr. + +#define FOR_UIGlobalsTypeV31_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsTypeV31, 163, FOR_UIGlobalsTypeV31_FIELDS) + +#define FOR_UIGlobalsTypeV31_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV2, gState) \ + DO_TO_FIELD (56, emuptr, eventQ) \ + DO_TO_FIELD (60, UInt16, eventQIndex) \ + DO_TO_FIELD (62, UInt16, eventQLength) \ + DO_TO_FIELD (64, Int16, lastScreenX) \ + DO_TO_FIELD (66, Int16, lastScreenY) \ + DO_TO_FIELD (68, Boolean, lastPenDown) \ + DO_TO_FIELD (69, UInt8, _unused1) \ + DO_TO_FIELD (70, Int32, needNullTickCount) \ + DO_TO_FIELD (74, emuptr, uiCurrentFontPtr) \ + DO_TO_FIELD (78, emuptr, uiSysFontTablePtr) \ + DO_TO_FIELD (82, emuptr, uiAppFontTablePtr) \ + DO_TO_FIELD (86, UInt16, uiNumSysFonts) \ + DO_TO_FIELD (88, UInt16, uiNumAppFonts) \ + DO_TO_FIELD (90, UInt32, uiFontListPtr) \ + DO_TO_FIELD (94, UInt32, uiUnused2) \ + DO_TO_FIELD (98, UInt8, uiCurrentFontID) \ + DO_TO_FIELD (99, Int16, _unused2) \ + DO_TO_FIELD (100, emuptr, currentForm) \ + DO_TO_FIELD (104, Boolean, insPtIsEnabled) \ + DO_TO_FIELD (105, Boolean, insPtOn) \ + DO_TO_FIELD (106, PointType, insPtLoc) \ + DO_TO_FIELD (110, Int16, insPtHeight) \ + DO_TO_FIELD (112, Int32, insPtLastTick) \ + DO_TO_FIELD (116, emuptr, insPtBitsBehind) \ + /* array of 3 ClipboardItems */ \ + DO_TO_FIELD (120, ClipboardItem, clipboard) \ + DO_TO_FIELD (138, emuptr, uiCurrentMenu) \ + DO_TO_FIELD (142, UInt16, uiCurrentMenuRscID) \ + DO_TO_FIELD (144, FieldUndoType, undoGlobals) \ + DO_TO_FIELD (156, UInt8, gsiState) \ + DO_TO_FIELD (157, Boolean, gsiIsEnabled) \ + DO_TO_FIELD (158, PointType, gsiLocation) \ + DO_TO_FIELD (162, Char, uiDecimalSeparator) \ + + +// ======================================== +// ===== UIGlobalsTypeV32 ===== +// ======================================== +// Used in Palm OS 3.2. +// Replaces uiUnused2 with rootWindow. + +#define FOR_UIGlobalsTypeV32_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsTypeV32, 163, FOR_UIGlobalsTypeV32_FIELDS) + +#define FOR_UIGlobalsTypeV32_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV2, gState) \ + DO_TO_FIELD (56, emuptr, eventQ) \ + DO_TO_FIELD (60, UInt16, eventQIndex) \ + DO_TO_FIELD (62, UInt16, eventQLength) \ + DO_TO_FIELD (64, Int16, lastScreenX) \ + DO_TO_FIELD (66, Int16, lastScreenY) \ + DO_TO_FIELD (68, Boolean, lastPenDown) \ + DO_TO_FIELD (69, UInt8, _unused1) \ + DO_TO_FIELD (70, Int32, needNullTickCount) \ + DO_TO_FIELD (74, emuptr, uiCurrentFontPtr) \ + DO_TO_FIELD (78, emuptr, uiSysFontTablePtr) \ + DO_TO_FIELD (82, emuptr, uiAppFontTablePtr) \ + DO_TO_FIELD (86, UInt16, uiNumSysFonts) \ + DO_TO_FIELD (88, UInt16, uiNumAppFonts) \ + DO_TO_FIELD (90, UInt32, uiFontListPtr) \ + DO_TO_FIELD (94, UInt32, rootWindow) \ + DO_TO_FIELD (98, UInt8, uiCurrentFontID) \ + DO_TO_FIELD (99, Int16, _unused2) \ + DO_TO_FIELD (100, emuptr, currentForm) \ + DO_TO_FIELD (104, Boolean, insPtIsEnabled) \ + DO_TO_FIELD (105, Boolean, insPtOn) \ + DO_TO_FIELD (106, PointType, insPtLoc) \ + DO_TO_FIELD (110, Int16, insPtHeight) \ + DO_TO_FIELD (112, Int32, insPtLastTick) \ + DO_TO_FIELD (116, emuptr, insPtBitsBehind) \ + /* array of 3 ClipboardItems */ \ + DO_TO_FIELD (120, ClipboardItem, clipboard) \ + DO_TO_FIELD (138, emuptr, uiCurrentMenu) \ + DO_TO_FIELD (142, UInt16, uiCurrentMenuRscID) \ + DO_TO_FIELD (144, FieldUndoType, undoGlobals) \ + DO_TO_FIELD (156, UInt8, gsiState) \ + DO_TO_FIELD (157, Boolean, gsiIsEnabled) \ + DO_TO_FIELD (158, PointType, gsiLocation) \ + DO_TO_FIELD (162, Char, uiDecimalSeparator) \ + + +// ======================================== +// ===== UIGlobalsTypeV35 ===== +// ======================================== +// Used in Palm OS 3.5. +// Replaces GraphicStateTypeV2 with GraphicStateTypeV3, uicState, and +// lastTapTime, replaces _unused1 with tapCount, replaces _unused2 with +// allFormsClosing, added uiOptions and menuCmdBarCurrent. + +#define FOR_UIGlobalsTypeV35_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UIGlobalsTypeV35, 168, FOR_UIGlobalsTypeV35_FIELDS) + +#define FOR_UIGlobalsTypeV35_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, activeWindow) \ + DO_TO_FIELD (4, emuptr, displayWindow) \ + DO_TO_FIELD (8, emuptr, drawWindow) \ + DO_TO_FIELD (12, emuptr, firstWindow) \ + DO_TO_FIELD (16, emuptr, exitWindowID) \ + DO_TO_FIELD (20, emuptr, enterWindowID) \ + DO_TO_FIELD (24, emuptr, exitedWindowID) \ + DO_TO_FIELD (28, GraphicStateTypeV3, gState) \ + DO_TO_FIELD (40, UIColorStateType, uicState) \ + DO_TO_FIELD (52, UInt32, lastTapTime) \ + DO_TO_FIELD (56, emuptr, eventQ) \ + DO_TO_FIELD (60, UInt16, eventQIndex) \ + DO_TO_FIELD (62, UInt16, eventQLength) \ + DO_TO_FIELD (64, Int16, lastScreenX) \ + DO_TO_FIELD (66, Int16, lastScreenY) \ + DO_TO_FIELD (68, Boolean, lastPenDown) \ + DO_TO_FIELD (69, UInt8, tapCount) \ + DO_TO_FIELD (70, Int32, needNullTickCount) \ + DO_TO_FIELD (74, emuptr, uiCurrentFontPtr) \ + DO_TO_FIELD (78, emuptr, uiSysFontTablePtr) \ + DO_TO_FIELD (82, emuptr, uiAppFontTablePtr) \ + DO_TO_FIELD (86, UInt16, uiNumSysFonts) \ + DO_TO_FIELD (88, UInt16, uiNumAppFonts) \ + DO_TO_FIELD (90, UInt32, uiFontListPtr) \ + DO_TO_FIELD (94, UInt32, rootWindow) \ + DO_TO_FIELD (98, UInt8, uiCurrentFontID) \ + DO_TO_FIELD (99, Int16, allFormsClosing) \ + DO_TO_FIELD (100, emuptr, currentForm) \ + DO_TO_FIELD (104, Boolean, insPtIsEnabled) \ + DO_TO_FIELD (105, Boolean, insPtOn) \ + DO_TO_FIELD (106, PointType, insPtLoc) \ + DO_TO_FIELD (110, Int16, insPtHeight) \ + DO_TO_FIELD (112, Int32, insPtLastTick) \ + DO_TO_FIELD (116, emuptr, insPtBitsBehind) \ + /* array of 3 ClipboardItems */ \ + DO_TO_FIELD (120, ClipboardItem, clipboard) \ + DO_TO_FIELD (138, emuptr, uiCurrentMenu) \ + DO_TO_FIELD (142, UInt16, uiCurrentMenuRscID) \ + DO_TO_FIELD (144, FieldUndoType, undoGlobals) \ + DO_TO_FIELD (156, UInt8, gsiState) \ + DO_TO_FIELD (157, Boolean, gsiIsEnabled) \ + DO_TO_FIELD (158, PointType, gsiLocation) \ + DO_TO_FIELD (162, Char, uiDecimalSeparator) \ + DO_TO_FIELD (163, UInt8, uiOptions) \ + DO_TO_FIELD (164, emuptr, menuCmdBarCurrent) \ + + +// ======================================== +// ===== UsbHwrType ===== +// ======================================== + +#define FOR_UsbHwrType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (UsbHwrType, 4, FOR_UsbHwrType_FIELDS) + +#define FOR_UsbHwrType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt8, data) \ + DO_TO_FIELD (1, UInt8, ___filler0) \ + DO_TO_FIELD (2, UInt8, command) \ + DO_TO_FIELD (3, UInt8, ___filler1) \ + + + +// ======================================== +// ===== WindowFlagsType ===== +// ======================================== + +#define FOR_WindowFlagsType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (WindowFlagsType, 2, FOR_WindowFlagsType_FIELDS) + +#define FOR_WindowFlagsType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, UInt16, flags) \ + + +// ======================================== +// ===== WindowType ===== +// ======================================== + +#define FOR_WindowType_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (WindowType, 40, FOR_WindowType_FIELDS) + +#define FOR_WindowType_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, Coord, displayWidthV20) \ + DO_TO_FIELD (2, Coord, displayHeightV20) \ + DO_TO_FIELD (4, emuptr, displayAddrV20) \ + DO_TO_FIELD (8, WindowFlagsType, windowFlags) \ + DO_TO_FIELD (10, RectangleType, windowBounds) \ + DO_TO_FIELD (18, AbsRectType, clippingBounds) \ + DO_TO_FIELD (26, emuptr, bitmapP) \ + DO_TO_FIELD (30, FrameBitsType, frameType) \ + DO_TO_FIELD (32, emuptr, drawStateP) \ + DO_TO_FIELD (36, emuptr, nextWindow) \ + + +// ======================================== +// ===== cjxln ===== +// ======================================== + +#define FOR_cjxln_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (cjxln, 8, FOR_cjxln_FIELDS) + +#define FOR_cjxln_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, emuptr, xlnnext) \ + DO_TO_FIELD (4, emuptr, xlnprev) \ + + +// ======================================== +// ===== cj_xgbh ===== +// ======================================== + +#define FOR_cj_xgbh_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (cj_xgbh, 28, FOR_cj_xgbh_FIELDS) + +#define FOR_cj_xgbh_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, cjxln, xgbhln) \ + DO_TO_FIELD (8, cjxln, xgbhwait) \ + DO_TO_FIELD (16, Int16, xgbhpry) \ + DO_TO_FIELD (18, UInt8, xgbhmod) \ + DO_TO_FIELD (19, Int8, xgbhidkey) \ + DO_TO_FIELD (20, UInt32, xgbhtag) \ + DO_TO_FIELD (24, UInt32, xgbhdjp) \ + + +// ======================================== +// ===== cj_xsmb ===== +// ======================================== + +#define FOR_cj_xsmb_STRUCT(DO_TO_STRUCT) \ + DO_TO_STRUCT (cj_xsmb, 48, FOR_cj_xsmb_FIELDS) + +#define FOR_cj_xsmb_FIELDS(DO_TO_FIELD) \ + DO_TO_FIELD (0, cj_xgbh, xsmh) \ + DO_TO_FIELD (28, emuptr, xsmowner) \ + DO_TO_FIELD (32, Int32, xsmival) \ + DO_TO_FIELD (36, Int32, xsmval) \ + DO_TO_FIELD (40, Int32, xsmuse) \ + DO_TO_FIELD (44, Int32, xsmrsv) \ + |