This chapter documents the backend for the "Hans" processor from the "Hans" project.

Legal
=====

This module is written in 2023-2024 by Yannik Stamm and is covered by the vasm copyright without modifications.

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

General
=======

This backend is made as part of a hobby project "Hans" which includes a custom processor with a custom instruction set. The project is open source under: https://github.com/Byter64/Hans (most part is German).

The instructions as well as all data is exactly 32-Bit, which is equal to 1 Byte on our system. Therefore, the target address size is also 32-Bit.

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

Some known problems of this module at the moment:

  - None.

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

This module has the following error messages:

  - 2001: data size of "%d" bits is not supported

  - 2002: value does not fit into immediate. Allowed range is [-32768:32767]. Value is %i

  - 2003: destination address (immediate value) is to far away. Allowed distance/immediate value is [-32768:32767]. Actual distance/immediate value is %i

  - 2004: congratulations. Your jump distance (%i) actually goes beyond the scope of [-33,554,432:33,554,431]. We, the creators of Hans, are so proud of you for writing 33 million instructions. You should maybe take a break :D

  - 2005: immediate is %i but allowed range is %s for %s