This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Format lib OMF-166

Hi!
I paid attention to the new update of compiler for С166. OMF-166 library file format (*.lib) has been changed. Where could I find materials about this new format? Or with whom could the new

  • What specifically do you need to know?

  • For instance, there are old format file fragments of rtx166*.lib library. This file coincides with description from http://www.keil.com/support/docs/93.htm. The other one is a file than I'm interested in.


    Old format

    00000000: BA 08 00 00 05 00 20 00 16 00 03 80 20 00 1E 43  є ... …Ђ . C
    00000010: 4F 50 59 52 49 47 48 54 5F 4B 45 49 4C 5F 45 4C  OPYRIGHT_KEIL_EL
    00000020: 45 4B 54 52 4F 4E 49 4B 5F 31 39 39 36 76 88 0D  EKTRONIK_1996v€
    00000030: 00 00 80 41 31 36 36 20 56 33 2E 30 35 D1 88 0C  ..ЂA166 V3.05С€
    00000040: 00 4B 80 52 49 47 48 54 2E 4C 53 54 02 E7 02 00  .KЂRIGHT.LST з .
    00000050: 00 17 96 02 00 00 68 8A 02 00 00 74 80 1F 00 1D  .– ..hЉ ..tЂ¬.
    00000060: 52 54 58 31 36 36 5F 54 49 4E 59 5F 4C 49 42 5F  RTX166_TINY_LIB_
    00000070: 5F 56 45 52 53 49 4F 4E 5F 33 50 30 30 AA 88 0D  _VERSION_3P00Є€
    00000080: 00 00 80 41 31 36 36 20 56 33 2E 30 35 D1 88 0B  ..ЂA166 V3.05С€
    00000090: 00 4B 80 56 45 52 53 2E 4C 53 54 41 E7 02 00 00  .KЂVERS.LSTAз ..
    000000A0: 17 96 02 00 00 68 8A 02 00 00 74 80 14 00 12 54  – ..hЉ ..tЂ . T
    000000B0: 49 4E 59 5F 4D 4F 44 45 4C 5F 4C 49 42 52 41 52  INY_MODEL_LIBRAR
    000000C0: 59 D2 88 0D 00 00 80 41 31 36 36 20 56 33 2E 30  YТ€..ЂA166 V3.0
    000000D0: 35 D1 88 0C 00 4B 80 4D 4F 44 45 4C 2E 4C 53 54  5С€.KЂMODEL.LST
    000000E0: 0F E7 02 00 00 17 96 02 00 00 68 8A 02 00 00 74  з ..– ..hЉ ..t
    000000F0: 80 0C 00 0A 52 54 58 31 36 36 54 49 4E 59 8B 88  Ђ.RTX166TINY‹€
    00000100: 0D 00 00 80 41 31 36 36 20 56 33 2E 30 35 D1 88  ..ЂA166 V3.05С€
    00000110: 0E 00 4B 80 52 54 58 31 36 36 54 2E 4C 53 54 8F  .KЂRTX166T.LSTЏ
    00000120: E7 02 00 02 15 E3 06 00 01 00 FF FF 00 18 96     з .  г ..яя.–
    


    New format

    00000000: BA 08 00 00 06 00 44 00 2B 00 C9 80 20 00 1E 43  є .. .D.+.ЙЂ . C
    00000010: 4F 50 59 52 49 47 48 54 5F 4B 45 49 4C 5F 45 4C  OPYRIGHT_KEIL_EL
    00000020: 45 4B 54 52 4F 4E 49 4B 5F 32 30 30 34 89 88 0D  EKTRONIK_2004‰€
    00000030: 00 00 80 41 31 36 36 20 56 35 2E 30 30 D4 9A 13  ..ЂA166 V5.00Фљ
    00000040: 00 01 00 00 09 72 69 67 68 74 2E 61 36 36 00 7E  ...right.a66.~
    00000050: F9 9D 40 DC 9A 13 00 02 00 01 09 72 69 67 68 74  щќ@Ьљ . .right
    00000060: 2E 4C 53 54 00 B8 9B 9E 40 D7 D2 07 00 01 00 00  .LST.ё›ћ@ЧТ...
    00000070: 00 00 00 26 96 02 00 00 68 8A 02 00 00 74 80 1F  ...&– ..hЉ ..tЂ¬
    00000080: 00 1D 52 54 58 31 36 36 5F 54 49 4E 59 5F 4C 49  .RTX166_TINY_LI
    00000090: 42 5F 5F 56 45 52 53 49 4F 4E 5F 35 50 30 30 A8  B__VERSION_5P00Ё
    000000A0: 88 0D 00 00 80 41 31 36 36 20 56 35 2E 30 30 D4  € ..ЂA166 V5.00Ф
    000000B0: 9A 12 00 01 00 00 08 76 65 72 73 2E 61 36 36 00  љ ... vers.a66.
    000000C0: 7C F9 9D 40 3E 9A 12 00 02 00 01 08 76 65 72 73  |щќ@>љ . . vers
    000000D0: 2E 4C 53 54 00 B8 9B 9E 40 37 D2 07 00 01 00 00  .LST.ё›ћ@7Т...
    000000E0: 00 00 00 26 96 02 00 00 68 8A 02 00 00 74 80 14  ...&– ..hЉ ..tЂ
    000000F0: 00 12 54 49 4E 59 5F 4D 4F 44 45 4C 5F 4C 49 42  . TINY_MODEL_LIB
    00000100: 52 41 52 59 D2 88 0D 00 00 80 41 31 36 36 20 56  RARYТ€ ..ЂA166 V
    00000110: 35 2E 30 30 D4 9A 13 00 01 00 00 09 6D 6F 64 65  5.00Фљ ...mode
    00000120: 6C 2E 61 36 36 00 52 F9 9D 40 15 9A 13 00 02 00  l.a66.Rщќ@ љ . .
    00000130: 01 09 6D 6F 64 65 6C 2E 4C 53 54 00 B8 9B 9E 40  model.LST.ё›ћ@
    

  • Also that in occasion of a format ?

  • Again, What specifically do you need to know?

    Unless you're building your own library tools, surely this should be just a private matter for the Librarian?

    If you are developing add-on tools, I imagine you would be better off negotiating directly with Keil - rather than posting in a public forum...?

  • Thank you for the information.
    I create GUI utility (analog of lib166.exe) for operanion with 166 libraries.
    While testing program with remote beta-tester а library was received with new record types. Ther is no description of them in the manual.
    I put examples of some:

    00000030: 00 00 80 41 31 36 36 20 56 35 2E 30 30 D4 9A 13  ..ЂA166 V5.00Фљ
    00000040: 00 01 00 00 09 72 69 67 68 74 2E 61 36 36 00 7E  ...right.a66.~
    00000050: F9 9D 40 DC 9A 13 00 02 00 01 09 72 69 67 68 74  щќ@Ьљ . .right
    


    9A 13 00 01 00 00 09 72 69 67 68 74 2E 61 36 36 00 7E F9 9D 40 DC


    000000D0: 2E 4C 53 54 00 B8 9B 9E 40 37 D2 07 00 01 00 00  .LST.ё›ћ@7Т...
    000000E0: 00 00 00 26 96 02 00 00 68 8A 02 00 00 74 80 14  ...&– ..hЉ ..tЂ
    

    D2 07 00 01 00 00 00 00 00 26
    ....................................
    etc.


    Where and how can I get description of new (in comparison with the one at http://www.keil.com/support/docs/93.htm
    (OMF-166 object module format for object modules)) new RECORD types.

  • There are a number of proprietary record types in all object module formats. They "secret" records contain dependency information, source browser details, and so on. This information is not available to the general public.

    The record length and a checksum are encoded into each record so you can safely verify that a record is valid and you can skip over the ones you don't know how to interpret.

    Jon