PASMO(1)

πŸ’… PASMO β€” the manual page, but make it cute

okay bestie, welcome to pasmo, a.k.a. the Z80 assembler πŸ¦‹βœ¨ (and yeah, it's chill, it's just that it lives in the General Commands Manual, no big deal, iykyk).


✨ SYNOPSIS ✨

pasmo [options] file.asm file.bin [file.sys]

that's the whole vibe. three files, some options, go off πŸ‘‘


🌸 DESCRIPTION 🌸

so this manual page is doing the absolute most β€” it documents the pasmo command briefly. That's it. That's the assignment. πŸ’–

And not me being the responsible friend, but: this manual page was written for the Debian distribution because the original program does not have a manual page 😭. Instead, it has documentation in the html format β€” see below, bestie, it's right there.

pasmo is a multiplatform Z80 cross-assembler, and it is genuinely so easy to compile and so easy to use, no notes πŸ’…. It can generate object code in several formats suitable for many Z80 machines and emulators. Periodt.

🌈 Important vibe check: pasmo generates fixed position code. It can not be used to create relocatable object files for use with linkers. So if that's what you wanted... it's giving not-that. πŸ™ˆ

Now, the compatibility lore: pasmo is compatible with the syntax used in several old assemblers β€” iconic behavior β€” by supporting several styles of numeric and string literals, and by providing several names of the most used directives. Slay. πŸ’…

But (there's always a but 😭): in Pasmo, the Z80 mnemonics, register and flags names, and directives are reserved words. So this may require changes of symbol names conflicting in some programs. Fr fr, watch out for that.

Oh and the plot twist: pasmo can also generate the 8086 equivalent to the z80 assembly code πŸ”₯. It can create COM files for ms-dos by using the binary generation mode, or CMD files for CP/M 86 by using the --cmd option.

⚠️ bestie. Listen. This feature is experimental. Use with care. That's not me being dramatic, that's the manpage. πŸ’€

πŸŽ€ OPTIONS πŸŽ€

okay so before we get into the list: if no options specify another, the object code format is binary without headers. That's the default, no cap. ✨

  • -d β€” Show debug info during assembly. πŸ›
  • -1 β€” Show debug info during assembly, also in first pass. double the debug, double the slay
  • -v β€” Verbose. Show progress information during assembly. she's telling you everything πŸ—£οΈ
  • -I β€” Add directory to the list for searching files in INCLUDE and INCBIN.
  • --hex β€” Generate the object file in Intel HEX format. ⭐
  • --bin β€” Generate the object file in pure binary format without headers. the clean girl aesthetic
  • --prl β€” Generate the object file in the PRL format. Useful for CP/M Plus RSX. πŸ’œ
  • --cmd β€” Generate the object file in CP/M 86 CMD format.
  • --plus3dos β€” Generate the object file with PLUS3DOS header (Spectrum disk). πŸ’Ύ
  • --tap β€” Generate a .tap file for Spectrum emulators (tape image). πŸŽ€
  • --tzx β€” Generate a .tzx file for Spectrum emulators (tape image). πŸŽ€
  • --cdt β€” Generate a .cdt file for Spectrum emulators (tape image). πŸŽ€
  • --tapbas β€” Same as --tap option but adding a Basic loader.
  • --tzxbas β€” Same as --tzx option but adding a Basic loader.
  • --cdtbas β€” Same as --cdt option but adding a Basic loader.
  • --amsdos β€” Generate the object file with Amsdos header (Amstrad CPC disk). 🌈
  • --msx β€” Generate the object file with header for use with BLOAD in MSX Basic. πŸ‘‘
  • --public β€” The symbol table listing will include only symbols declared as PUBLIC.
  • --name β€” Name for the header in the formats that use it. If unspecified, the object file name will be used.
  • --err β€” Direct error messages to standard output instead of error output (except for errors in options). πŸ™ˆ
  • --nocase β€” Make identifiers case insensitive. she doesn't care about your caps lock πŸ’…
  • --alocal β€” Autolocal mode: the labels that begin with a '_' are locals, and their ambit finishes in the next no local label or in the next PROC, LOCAL or MACRO directive.
  • -B, --bracket β€” Bracket only mode: parenthesis are reserved for expressions. 🫢
  • -E, --equ β€” Predefine a label.
  • -8, --w8080 β€” Show warnings when using Z80 instructions that do not exist in 8080. ⚠️
  • --86 β€” Generate 8086 code. πŸ”₯

πŸ’– AUTHOR πŸ’–

This manual page was written by Joost Yervante Damad joost@lumatec.be for the Debian system (but may be used by others, she's generous like that 🫢). It is just a rerendering of the original documentation as a manual page.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation. πŸ“œβœ¨

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.


and that's the whole page, bestie β€” it came straight outta the General Commands Manual, page PASMO(1), and honestly it ate πŸ’…πŸ‘‘ bye ily, go assemble something iconic πŸ¦‹

πŸ“¦ where this page comes from