This chapter describes the simple binary output module which can be selected with the -Fvobj option.

Legal
=====

This module is written in 2002-2023 by Volker Barthelmann and is covered by the vasm copyright without modifications.

Additional options for this module
==================================

-vobj2
     Use vobj format version 2 which generally reduces file size.

General
=======

This output module outputs the vobj object format, a simple portable proprietary object file format of vasm.

The Format is defined as follows:

     Header
       .byte 0x56,0x4f,0x42,0x4a
       .byte flags
         Bits 0-1:
          1: BIGENDIAN
          2: LITTLENDIAN
         Bits 2-7:
          VOBJ-Version (0-based)
       .number bitsperbyte
       .number bytespertaddr
       .string cpu
       .number nsections [1-based]
       .number nsymbols [1-based]

     nsymbols
       .string name
       .number type
       .number flags
       .number secindex
       .number val
       .number size

     nsections
       .string name
       .string attr
       .number flags
       .number align
       .number size
       .number nrelocs
       .number databytes
       .byte[databytes]

     nrelocs [standard|special]
     standard
        .number type
        .number byteoffset
        .number bitoffset
        .number size
        .number mask
        .number addend
        .number symbolindex | 0 (sectionbase)

     special
         .number type
         .number size
         .byte[size]

     .number:[taddr]
         .byte 0--127 [0--127]
         .byte 128-191 [x-0x80 bytes little-endian], fill remaining with 0
         .byte 192-255 [x-0xC0 bytes little-endian], fill remaining with 0xff
         (.byte 192-255 is supported by vobj version 2+ only.)

Restrictions
============

None.

Known Problems
==============

Some known problems of this module at the moment:

  - None.

Error Messages
==============

This module has the following error messages:

  - 3010: section <%s>: alignment padding (%lu) not a multiple of %lu at 0x%llx