; Opcode = -=(word)=-
;----------------------

  ; Операции для if*
  ravno   = 0
  bolshe  = 1
  menshe  = 2
  neravno = 3
  bolshe_ili_ravno = 4
  menshe_ili_ravno = 5


; Команда вывода сообщения на экран
;
; ОПИСАНИЕ:
; Opcode: 0x0000 (word)
;         строка...[0]
macro message msg
{
    dw  0x0000
    db  msg,0
}


; Команда очистки сообщений
;
; ОПИСАНИЕ:
; Opcode: 0x0001 (word)
macro clrscr msg
{
    dw  0x0001
}


; Команда очистки меню
;
; ОПИСАНИЕ:
; Opcode: 0x0002 (word)
macro clearmenu msg
{
    dw  0x0002
}


; Команда добавления пункта меню
;
; ОПИСАНИЕ:
; Opcode: 0x0003 (word)
;         строка...[0]
;         метка истины (word)
macro addmenuitem msg, labl
{
    dw  0x0003
    db  msg,0
    dw  labl
}


; Команда получения значения пункта меню
;
; ОПИСАНИЕ:
; Opcode: 0x0004 (word)
macro getmenuitem
{
    dw  0x0004
}


; Команда завершения квеста
;
; ОПИСАНИЕ:
; Opcode: 0x0005 (word)
macro EndQuest
{
    dw  0x0005
}


; Команда перехода
;
; ОПИСАНИЕ:
; Opcode: 0x0006 (word)
;         метка  (word)
macro xgoto labl
{
    dw  0x0006
    dw  labl
}


; Команда присвоения переменной
;
; ОПИСАНИЕ:
; Opcode: 0x0007     (word)
;         переменная (word)
;         значение   (word)
macro prisvoit var,value
{
    dw  0x0007
    dw  var
    dw  value
}


; Команда проверки условия [переменная, число]
;
; ОПИСАНИЕ:
; Opcode: 0x0008     (word)
;         переменная (word)
;         операция   (word)
;         значение   (word)
;         метка      (word)
; if (var [=,>,<,<>,>=,<=] value) then goto labl
macro ifpervalue var,oper,value,labl
{
    dw  0x0008
    dw  var
    dw  oper
    dw  value
    dw  labl
}


; Команда проверки условия [переменная, переменная]
;
; ОПИСАНИЕ:
; Opcode: 0x0009     (word)
;         переменная (word)
;         операция   (word)
;         переменная (word)
;         метка      (word)
; if (var [=,>,<,<>,>=,<=] value) then goto labl
macro ifperper var1,oper,var2,labl
{
    dw  0x0009
    dw  var1
    dw  oper
    dw  var2
    dw  labl
}