Flight Unlimited Log Utility Version F1;4S ---------------------------- Jesper Hansen July 1995 CIS: 100335,3165 internet: jeha@hk.enator.se ---------------------------- Contents Disclaimer Requirements Installation Files in Archive What will it do ? How to do it Format of the log file Version History Comments and suggestions ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Disclaimer This program is a Public Domain program. You are allowed to freely use, copy and redistribute the program, and the docu- mentation, PROVIDED : - that you make take no money for doing so, other than a reasonable copying/diskette fee, - that you redistribute the archive file in its entirety, including this copyright/licence notice, and - that you do not modify any of its contents. This software is the property of the copyright holders. This software is provided "as is", and I assume no responsi- bility for any damage or injury resulting from its use, whether direct or indirect. Copyright (C) 1995, Jesper Hansen, Sweden. All rights reserved. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Requirements : If you can already run Flight Unlimited on your PC, you can also run FULOG ! The program has been designed and tested with the log file format used by Flight Unlimited Version F1;4S. It has been designed to be upgradable by simply adding data to the program data files. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Installation : þ As you have already unpacked the program, we can skip that part. þ Copy all files into the ..\LOGS directory under the directory where you installed Flight Unlimited. þ Done ! ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Files in Archive: The FULOG.ZIP file should contain the following files : þ FULOG.EXE - Executable program þ FULOG.CPP - Program Source þ PLANES.FUL - Planes data file þ AIRPORTS.FUL - Airports data file þ LESSONS.FUL - Lessons data file þ README.TXT - This file ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ What will it do ? : The FULOG program gives you a more detailed view of the log file created by Flight Unlimited. You can Include or Exclude specific planes, airports or flight dates and modify the listing to see only those fields you are interested in. It will give you the flight time totals of the listed entries as well as the total logged flight time. It will also give extended statistics on the use of each plane and airfield and will give you detailed information about your flight lesson status and score. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ How to do it : Easy, just run the program. The command syntax : fulog [-options] [filename] [-options] note that options can be placed either before or after the filename, and can be prefixed with either '-' or '/'. filename are the name of a Flight Unlimited pilot log file. If no filename are specified, 'PILOT000.LOG' will be used as default. Options : -i[,string]... - include only fields contai- ning the given strings. -e[,string]... - exclude fields containing the given strings. -s[dpiatc] - skip the fields indicated. (d=date,p=plane e.t.c.) -t - include only entries of the given type. Types are : 1 - Lessons 2 - Solo Flights 3 - Hoops Courses 4 - Certifications -d - display extended statistics. -p - pause on each screen. -f - skip delay at program start. -? or -h - display program help. The program output can be redirected to a file or printer with the DOS redirection character '>'. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Format of the Log File : This documentation on based on the results of my own debug sessions. If any of the information is not correct, you have only me to blame, not Looking Glass Technologies. The information is not complete at this point, as a number of entries in the log file are unknown, but they are not of any use to the log program (I hope). The log file is in two main parts - a header and a number of log records. Header ------ Offset Contents Length Type (hex) (dec) 0000 Pilot Name 40 Zero terminated string 0028 Index Table 1024 dword's 0428 Unknown 1536 ? 0A28 Last index 4 dword 0A2C ? 4 ? 0A30 Terminator 4 dword The Index table are a table of 256 dwords, each containing the index of the first record of each record type. Known record types (hex) : 01 - Lessons 02 - Solo Flights 03 - Hoops Courses 04 - Certification 80 - Lesson Scores 81 - Program Settings 82 - Personal Data 83 - not sure yet Last Index are the index of the last used log record in the file. There might be some more records, bu these seem to be some empty list for the rest of the log page or something. Records ------- All records contains the same sub-header : Offset Contents Length Type/Use (hex) (dec) 0000 Record Type 1 byte 0001 Next same 4 dword 0005 Previous same 4 dword The next and previous fields contains the index of the next or previous entry of the same type. For the record types 80,81,82 and 83 these fields are set to -1 (0xFFFFFFFF). First the special records : Record type 80 Lesson Scores Offset Contents Length Type/Use (hex) (dec) 0000 Subheader 9 dword's 0009 Lesson Score 140 words 0095 Unknown 107 ? The Lesson scores for the currently 35 different lessons, are stored in each word as lesson_score * 10. This means that a score of 8.3 is represented by the value 83 (or 53 hex). Lessons in which you do not interactively participate, are given a score of 9.9 ( just like we get on all other lessons, right ? ). Note that the Flight Fundamentals are lesson number 35 ! Also note that lesson number 34 does not exist !, and contains the score 0.0 ! The Unknown field contains some values which I have not yet determined. These seems to change a lot. Perhaps some checksum or log/score validation ? Record type 81 Program Settings Offset Contents Length Type/Use (hex) (dec) 0000 Subheader 9 dword's 0009 Unknown 247 ? Record Type 82 Personal Data Offset Contents Length Type/Use (hex) (dec) 0000 Subheader 9 dword's 0009 Pilot Sex 40 Zero terminated string 0031 Pilot Height 40 Zero terminated string 0059 Pilot Birthday 40 Zero terminated string 0081 Unused 127 ? Record Type 83 Unknown Record Type Offset Contents Length Type/Use (hex) (dec) 0000 Subheader 9 dword's 0009 Unknown 247 ? I don't know what this is yet. My log file contains the following data (log files with fewer flight contains less entries) : 00 00 6F 18 00 00 6C 18 00 00 6E 18 00 00 6A 18 00 00 6B 18 00 00 6D 18 ; 6 entries ? 00 00 00-00 ; and then zeros for the rest Record Type 01-04 Logbook Entries Offset Contents Length Type/Use (hex) (dec) 0000 Subheader 9 dword's 0009 Next Entry 4 dword 000D Prev. Entry 4 dword 0011 Date of Flight 4 UTC date format 0015 Flight Duration 4 Seconds 0019 Plane Used 2 word 001B Plane Designat. 6 Zero terminated string 0021 Flight Comment 128 ? Zero terminated string 00A1 Unused 4 ? 00A5 Airport used 2 word 00A7 Maneuver/Group # 2 word 00A9 Award flag 2 word 00AB Certificate # 2 word 00AD Unused 83 ? The next and previous fields contains as in the subheader, the index of the next or previous entry in the log array. Termination of the list are indicated by a value of -1 (0xFFFFFFFF). Date of Flight are in UTC format i.e. the time since the 1'st of January 1970. Planes Used can currently be one of the following values : 0 - Extra 1 - Bellanca 2 - Pitts 3 - Sukhoi 4 - Grob Airport Used can currently be one of the following values : 0 - Denali 1 - Sugarloaf 2 - Sedona 3 - Springfield 4 - Skybryce 5 - Dinan Maneuver/Group Number, Award flag and Certificate # are used together. If given a certificate, the Award flag flag is 0, and Maneuver/Group Number contains the number of the lesson completed. If given an award, the Award flag is 1 and Maneuver/Group Number contains the number of the Lesson Group completed. In both cases, Certificate # field contains some internal number. Well, that's it. If you go debugging on your own, let me know about any new findings. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Version History: þ Version F1;4S, July 1995 þ Initial version. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Comments and suggestions : I'd be happy to hear of any improvements you'd like to see, as well as any bug reports. This being the first release, there will probably be one or more of these nasty creatures sneaking around. So, comments welcome. Send them to : Jesper Hansen Compuserve 100335,3165 Internet jeha@hk.enator.se Or snail mail to : Takpannevagen 183 186 36 Vallentuna Sweden ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ