E2 file format -- Copyright (C) 1997-1999 Horizon Technologies Note: This was drawn up back in the old days of the Extender uP (the predecessor of the Expander II) but holds mostly true for the new E2. It appears in unmodified form below: Bryan Rittmeyer -=- KB3CYQ bryanr@pair.com http://horizon.pair.com/ ---- Extender uP File Format (proposal) The file system on the Extender uP is very different from the file system that your PC uses, because of limits placed by EEPROM lifetimes and EEPROM organization. Essentially, the 512k of memory space is organized into 2048 pages of 264 bytes each. All pages are used by the current version of the EuP driver. However, future versions may use page 0 to store "customization" information, stating the owner of the EuP, an access password, the driver version, and so on. The first four bytes of the first page of a file are "EUPS" This is the "security" code -- Any page that has this as its first four bytes will be identified as the start of a file. All other pages are all $FF bytes, or contain "EUPC" -- Continuation of a file started on another page. In this fashion, it is impossible for any page to be unintelligable. --- Note that the current driver basically ignores these security codes, instead calculating where the next start page is based on the file size of the previous file. However, the security code system is still used since it allows a simple "folder" system to be setup in the future, with no loss of data on the EuP. --- The fifth byte of a page that contains a file is the beginning of a zero-padded 8 byte string that contains the file name. Finally, the next WORD contains the length of the file data on the Extender uP. This will be processed internally to determine the number of pages that the EuP driver needs to read to get all of the file, and is also used in the directory scan routines to calculate where the next file begins. This method is much faster than the "scan it all" method used by the Expander SF. The data of the file then follows, using however many pages are required. Once the EuP driver reads the total length of the file out of the EuP, it will call appropriate code to establish that file in the TI VAT. Any portion of a page that is unused by data (I.E. the last page of a file) will be read as all 1s ($FF.) ---- Summary: First page of a file: 00-03h "EUPS" (Start of file) 04-0Bh File name, null terminated (8 characters) This is zero padded on the TI-92 and the EuP. 0Ch File Type: 01h - TI-92 Program ; More will be supported later 02h - TI-92 String ; as the driver gets ported ; Other types are supported in Extend92 -- Pictures and Text. ; Notice that in the TI-92, the file type is ALSO stored within ; the file data which comes below - This byte is repetitive, however ; it allows future customization and much faster directory reading. ; Start of file - Verbatim! 0D-0Eh File size in words 0Fh-end of page File data, in direct format from calculator Subsequent Pages (if needed): 00-03h "EUPC" (Continuation of file) 04-XXh File data XX+1h to End of page - $FF (empty bytes) Empty Page: 00-end of page: $FF The EuP may currently be only bulk-erased -- You cannot currently remove a file, since the file system is continous. This is usually not a problem, since I have fit practically every TI-92 program ever written into the EuP with 200k to spare.