class TIFlashHeader(Dock): (source)
Known subclasses: tivars.types.flash.TIApp
, tivars.types.flash.TICertificate
, tivars.types.flash.TILicense
, tivars.types.flash.TIOperatingSystem
Constructor: TIFlashHeader(init, magic, revision, binary_format, ...)
Parser for flash headers
A flash file can contain up to three headers, though usually only one.
Class |
|
Raw bytes container for TIFlashHeader |
Class Method | get |
Gets the subclass corresponding to a type ID if one is registered |
Class Method | open |
Creates a new header from a file given a filename |
Class Method | register |
Registers a subtype with this class for coercion |
Static Method | next |
Helper function to determine the length of the next flash header in a bytestream |
Method | __init__ |
Creates an empty flash header with specified meta and data values |
Method | __len__ |
No summary |
Method | binary |
Whether this flash header's data is in binary (0x00) or Intel (0x01) format |
Method | bytes |
No summary |
Method | calc |
The data stored in the flash header |
Method | coerce |
Coerces this header to a subclass if possible using the header's type ID |
Method | data |
The data stored in the flash header as either raw binary or Intel blocks |
Method | date |
The date attached to the flash header as a 3-tuple |
Method | device |
The (first) device targeted by the flash header |
Method | devices |
The devices targeted by the flash header |
Method | extension |
Determines the header's file extension given a targeted model |
Method | filename |
Determines the header's filename given a targeted model |
Method | load |
Loads a byte string or bytestream into this header |
Method | load |
Loads this header from a file given a file pointer and offset |
Method | magic |
The file magic for the flash header |
Method | name |
The name or basecode attached to the flash header |
Method | object |
The object type of the flash header |
Method | product |
The product ID for the header |
Method | revision |
The revision of the flash header |
Method | save |
Saves this header to the current directory given a filename and targeted model |
Method | type |
The (first) type ID of the flash header |
Class Variable | extensions |
The file extension used for this header per-model |
Instance Variable | raw |
Undocumented |
Property | calc |
The length of the data stored in the flash header, measured in chars |
Property | checksum |
The checksum for the flash header |
Property | name |
The length of the name or basecode attached to the flash header |
Method | __init |
Undocumented |
Class Variable | _type |
Undocumented |
Class Variable | _type |
Undocumented |
Instance Variable | _has |
Undocumented |
Inherited from Dock
:
Method | load |
Loads data into an instance by delegating to Loader methods based on the input's type |
Class Variable | loaders |
Undocumented |
Gets the subclass corresponding to a type ID if one is registered
Parameters | |
typeint | The type ID to search by |
Returns | |
type[ | A subclass of TIFlashHeader with corresponding type ID or None |
Creates a new header from a file given a filename
Parameters | |
filename:str | A filename to open |
Returns | |
Self | The (first) header stored in the file |
Registers a subtype with this class for coercion
Parameters | |
vartype[ | The TIFlashHeader subtype to register |
override:int | A type ID to use for registry that differs from that of the var type |
str
= '**TIFL**', revision: str
= '0.0', binary_format: bool
= False, object_type: int
= 136, date: tuple[ int, int, int]
= (str
= 'UNNAMED', device_type: int
= 115, product_id: int
= 0, data: bytes
= b':00000001FF'):
(source)
¶
Creates an empty flash header with specified meta and data values
Parameters | |
init | Values to initialize the header's data (defaults to None) |
magic:str | File magic at the start of the header (defaults to **TIFL**) |
revision:str | The header's revision number (defaults to 0.0) |
binarybool | Whether the header's data is stored in binary format (defaults to False) |
objectint | The header's object type (defaults to $88) |
date:tuple[ | The header's stored date as a tuple (dd, mm, yyyy) (defaults to null) |
name:str | The name of the headers (defaults to UNNAMED) |
deviceint | The device type of the header (defaults to $73, the 83+ series) |
productint | The targeted model's product ID (defaults to $00) |
data:bytes | The header's data (defaults to empty) |
Coerces this header to a subclass if possible using the header's type ID
Valid types must be registered to be considered for coercion.
The data stored in the flash header as either raw binary or Intel blocks
If binary_flag == $01, the data is returned as list[TIFlashBlock]. Otherwise, the data is returned as bytes.
The devices targeted by the flash header
Each device is a (device_type, type_id) tuple. The type_id should be constant throughout. Only licenses may be expected to have more than one device.
Determines the header's filename given a targeted model
The filename is the concatenation of the header name and extension (see TIFlashHeader.extension
).
Parameters | |
model:TIModel | A model to target (defaults to TI_84PCE) |
Returns | |
str | The header's filename |
The product ID for the header
While used to identify the model the var was created on, it has no actual functional ramifications. Furthermore, it does not constitute a 1-to-1 mapping to distinct models.
tivars.types.flash.TIApp
, tivars.types.flash.TICertificate
, tivars.types.flash.TILicense
, tivars.types.flash.TIOperatingSystem
The file extension used for this header per-model
The checksum for the flash header
This is equal to the lower 2 bytes of the sum of all bytes in the header.
tivars.types.flash.TIApp
, tivars.types.flash.TICertificate
, tivars.types.flash.TILicense
, tivars.types.flash.TIOperatingSystem
Undocumented