36
Chapter 7: Flash Application Layout
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
7.1.7. Signature
The signature protects everything from the beginning of the certificate header to
the end of the application from changes.
7.2. Layout in Memory
The OS creates an Application Control Block (ACB) for each app in the calculator
whether it is one of the built-in apps that come preinstalled from the factory or
installed later as a Flash app.
Routine
EV_getAppID
returns the ID of an app given its internal name. By
design, the app ID is also the handle to the app’s ACB. Dereference the handle
to get a pointer to the app’s ACB.
ACB * pacb = (ACB *)HeapDeref(EV_getAppID(name));
ACBs form a linked list in memory. Global OS variable OO_firstACB contains a
handle to the first ACB. Routines
OO_NextACB
and
OO_PrevACB
are used to
traverse the list of ACBs.
The Application Control Block contains information about the current state of the
app. Here is a description of the ACB structure.
USHORT
flags
— Application control flags:
0x0001 — ACB_BUILTIN, the app is a built-in
application.
0x0002 — ACB_INSTALLED, the OS sets this flag
when app installation is complete.
0x0004 — ACB_LOCALIZER, the app is a
language localizer, i. e. its name
appears in the MODE screen as a
language choice.
0x0008 — ACB_LOCK, reserved.
0x0010 — ACB_JT_VERSION, jump table version
mismatch, do not show on the APPS
pop-up menu.
0x0020 — ACB_SELECTED, app is selected in
the VAR-LINK screen.
0x0800 — ACB_COLLAPSE, collapse view of
TI_BASIC extension functions and
commands in the VAR_LINK screen.