In fact the first pass reads the initial text and tries to interpret every format and defined object as !#U!, !#2!, !&E!, etc... This first pass creates a table of "Object". This table is stored in the !h_File! structure (!h_objs!, !hobjs! and !nb_objs!). Here is the definition of an "Object":
Each object has a position and a type, some can have some data. So, every picture, link or pretty-print expression is an object. For the text, the definition of an object is a sequence of characters with no change of format. For instance, this is a unique !h_Object!: !"this is a text"!, but there are three !h_Objects! here: !"this #Uis#U a text"! (!"this "! and !"is"! and !" a text"!). The consequence is that each !h_Object! which is a !HOBJECT_TEXT! has is own format.
Other special !h_Object! have been introduced: the Ti-OS line (!HOBJECT_TIOS_LINE!) and the end of text (!HOBJECT_END_TEXT!). Note that theses lines are Ti-OS lines, and not graphical lines, so it is independant of the screen size of the calculator. Note that the !HOBJECT_TIOS_LINE! specify the beginning of a line, not a end of line. So, a bookmark beeing defined for each Ti-OS line, each bookmark will be associated with this type of !h_Object!.