aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/EmPalmStructs.i
diff options
context:
space:
mode:
Diffstat (limited to 'SrcShared/EmPalmStructs.i')
-rw-r--r--SrcShared/EmPalmStructs.i3709
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) \
+