Assembler Pseudo Operations - ksherlock/merlin-wiki GitHub Wiki


* merlin-64 is equivalent to merlin
* merlin-128 is equivalent to merlin-pro
* expr* = expr[,expr]*
* label* = label[,label]*
* string is ascii string ('-delimited)
* d-string uses any delimiter (except ];0-9a-fA-F as of merlin 16+). (merlin-32 only supports ' or ")

* Directives

label EQU  expr
label =    expr

label ENT                    ; merlin pro
      ENT  label*            ; merlin 16

label EXD                    ; merlin 16+
      EXD  label*            ; merlin 16+

label EXT                    ; merlin pro
      EXT  label*            ; merlin 16

      ORG  expr
      OBJ  expr
      REL                    ; merlin pro
      PUT  filename
      VAR  expr*
      SAV  filename
      DSK  filename
      TYP  expr              ; merlin pro
      TYP  typename          ; merlin 8/16
      END
      DUM  expr              ; merlin pro
      DEND



* Formatting

      LST  ON | OFF | null
      LST  RTN               ; merlin 8/16
      LST  FILE,filename     ; merlin 16+
      LSTDO OFF | null       ; merlin pro
      EXP  ON | OFF | null
      EXP  ONLY              ; merlin pro
      PAU
      PAG
      AST  expr
      SKP  expr
      TR   ON | OFF | null
      TR   ADR               ; merlin 8/16
      DAT                    ; merlin pro
      DAT  expr              ; merlin 16+
      CYC  OFF | AVE | null  ; merlin pro
      CYC  FLAGS             ; merlin 8/16
      TTL  string            ; merlin 16, merlin-128

* Strings
* as of merlin-pro, hexbyte data may be included after the d-string
* as of merlin 16+, hexbyte data may be interspersed with d-strings.
* ASC # (merlin 16+) may also include ', ", or > modifiers.

      ASC  d-string
      ASC  #expr             ; merlin 16+
      DCI  d-string
      INV  d-string 
      FLS  d-string 
      REV  d-string 
      STR  d-string          ; merlin pro
      ASI  d-string          ; merlin 64/128 only
      TXT  d-string          ; merlin 64/128 only
      STRL d-string          ; merlin 16+

* Data and Allocating

      DA   expr*
      DW   expr*             ; merlin pro
      DDB  expr*
      DFB  expr*
      DB   expr*             ; merlin pro
      HEX  hexbytes*
      DS   expr
      DS   expr,expr         ; merlin pro
      DS   \                 ; merlin pro
      DS   \,expr            ; merlin pro
      FLO  string            ; merlin 16+
      FLO  expr              ; merlin-128
      ADR  expr*             ; merlin 16
      ADRL expr*             ; merlin 16
      DL   expr*             ; merlin 16+ 4.10

* Miscellaneous

label KBD
label KBD  d-string          ; merlin pro
      LUP  expr
      CHK
      ERR  expr
      ERR  \expr             ; merlin pro
      SW                     ; merlin 8 only
      XC                     ; merlin pro
      XC   OFF               ; merlin 16+
      MX   expr              ; merlin pro                    
      USR  ...
      CAS  IN | SE | null    ; merlin 16+

* Conditionals

      DO   expr
      ELSE
      FIN
      IF   char,]var
      IF   char=]var
      IF   mx-expr           ; merlin 16

* Macros

label MAC
      EOM
      <<<
      PMC  macro [; expr]*
      >>>  macro [; expr]*


* Merlin-32

      PUTBIN filename
      
* QAsm

      TBX  ON | OFF | LC | UC | null
      DUP  ON | OFF | null
      SYM
label RND
label PEK  expr
      MTX  d-string*
      LIB  filename
      BEL
      XC-
      BYT  expr*
      BTR                    ; bne alias
      BFL                    ; beq alias
      IF   xc-expr