{
  "macro-as-pasmo": {
    "prefix": "macro",
    "body": [
      "${1:label}:\tmacro",
      "\t\t$0",
      "\tendm"
    ],
    "description": "AS/Pasmo macro"
  },
  "macro-sjasm-rasm": {
    "prefix": "macro",
    "body": [
      "macro ${1:name}",
      "$0",
      "endm"
    ],
    "description": "SjASM/rasm macro"
  },
  "rept": {
    "prefix": "rept",
    "body": [
      "rept ${1:n}",
      "$0",
      "endm"
    ],
    "description": "repeat macro"
  },
  "repeat": {
    "prefix": "repeat",
    "body": [
      "repeat ${1:n}${3:,${2:name}}",
      "$0",
      "rend"
    ],
    "description": "repeat count[,counter] by rasm"
  },
  "dup-sjasm": {
    "prefix": "dup",
    "body": [
      "dup ${1:n}",
      "$0",
      "edup"
    ],
    "description": "SjASM repeat macro"
  },
  "module-sjasm": {
    "prefix": "module",
    "body": [
      "module ${1:name}",
      "$0",
      "endmodule"
    ],
    "description": "SjASM module"
  },
  "align": {
    "prefix": "align",
    "body": [
      "align\t${1|2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768|}",
      "$0"
    ],
    "description": "fills zero or more bytes until the new address modulo <expression>."
  },
  "binclude-as": {
    "prefix": "binclude",
    "body": [
      "binclude \"${1:file}\"${5:,${2:offset}${4:,${3:length}}}",
      "$0"
    ],
    "description": "binclude <file>[,offset[,length]]\nembed binary data into the code generated by AS Macroassembler"
  },
  "incbin": {
    "prefix": "incbin",
    "body": [
      "incbin \"${1:file}\"${5:,${2:offset}${4:,${3:length}}}",
      "$0"
    ],
    "description": "incbin <file>[,offset[,length]]\nembed binary data into the code generated by SjASM"
  },
  "include": {
    "prefix": "include",
    "body": [
      "include \"${1:file}\"",
      "$0"
    ],
    "description": "include another sourcefile given as a parameter into the current"
  },
  "output-sjasm": {
    "prefix": "output",
    "body": [
      "output \"${1:file}\"${3:,${2|t,r,a|}}",
      "$0",
      "outend"
    ],
    "description": "output <file>[,mode]\nfollowing source code will be assembled into the file"
  },
  "savebin-sjasm": {
    "prefix": "savebin",
    "body": [
      "savebin \"${1:file}\",${2:begin},${3:length}",
      "$0"
    ],
    "description": "save block of RAM into the file"
  },
  "savetrd-sjasm": {
    "prefix": "savetrd",
    "body": [
      "${1|savetrd,savehob|} \"${2:image}\",\"${3:filename}\",${4:begin},${5:length}",
      "$0"
    ],
    "description": "save block of RAM into the TR-DOS image or Hobeta block for ZX-Spectrum emulators"
  },
  "emptytrd-sjasm": {
    "prefix": "emptytrd",
    "body": [
      "emptytrd \"${2:image}\"",
      "$0"
    ],
    "description": "create the empty TR-DOS image for ZX-Spectrum emulators"
  },
  "savesna-sjasm": {
    "prefix": "savesna",
    "body": [
      "savesna \"${1:file}\",${2:start}",
      "$0"
    ],
    "description": "save the snapshot for ZX-Spectrum emulators"
  },
  "savetap-sjasm": {
    "prefix": "savetap",
    "body": [
      "savetap \"${1:file}\",${2|BASIC,CODE,NUMBERS,CHARS,HEADLESS|}${4:,\"${3:tapheader}\"},${5:start},${6:length}",
      "$0"
    ],
    "description": "save the tape file for ZX-Spectrum emulators"
  },
  "tapout-sjasm": {
    "prefix": "tapout",
    "body": [
      "tapout \"${1:file}\"${2:,${3:flag}}",
      "$0",
      "tapend"
    ],
    "description": "output block to tape file for ZX-Spectrum emulators"
  },
  "emptytap-sjasm": {
    "prefix": "emptytap",
    "body": [
      "emptytap \"${2:file}\"",
      "$0"
    ],
    "description": "empty the tape file for ZX-Spectrum emulators"
  },
  "cpu-as": {
    "prefix": "cpu",
    "body": [
      "cpu\tz80undoc",
      "relaxed\ton",
      "page\t0",
      "$0"
    ],
    "description": "AS Macroassembler CPU definiton"
  },
  "device-sjasm": {
    "prefix": "device",
    "body": [
      "device\t${1|none,zxspectrum48,zxspectrum128,zxspectrum256,zxspectrum512,zxspectrum1024|}",
      "$0"
    ],
    "description": "SjASM device definition"
  },
  "setcpc-rasm": {
    "prefix": "cpc",
    "body" : [
      "setcpc ${1|0,1,2,3,4,5,6|}"
    ],
    "description": "CPC choice in SNA by rasm.\n0: CPC 464\n1: CPC 664\n2: CPC 6128\n4: 464 Plus\n5: 6128 Plus\n6: GX-4000"
  },
  "while-rasm": {
    "prefix": "while",
    "body": [
      "while ${1:test}",
      "$0",
      "wend"
    ],
    "description": "WHILE loop by rasm"
  },
  "protect-rasm": {
    "prefix": "prot",
    "body" : [
      "protect ${1:start} ${2:end}"
    ],
    "description": "PROTECT start end by rasm"
  },
  "struct-rasm": {
    "prefix": "struct",
    "body": [
      "struct ${1:name}",
      "$0",
      "endstruct"
    ],
    "description": "Structure creation by rasm"
  }
}