grendel-1.0.0a7/backup/
grendel-1.0.0a7/bin/
grendel-1.0.0a7/boards/
grendel-1.0.0a7/clans/
grendel-1.0.0a7/documentation/todo/
grendel-1.0.0a7/help/
grendel-1.0.0a7/logs/
grendel-1.0.0a7/players/
grendel-1.0.0a7/progs/
grendel-1.0.0a7/races/
grendel-1.0.0a7/src/contrib/
grendel-1.0.0a7/src/modules/speller/
grendel-1.0.0a7/src/modules/status/
grendel-1.0.0a7/src/tests/
grendel-1.0.0a7/src/tests/dunit/
unit gasmdef;

interface

type
  opcode_trans = record
                   keyword : string;
                   opcode : byte;
                 end;

const
  _NOP = $70;
  _HALT = $71;
  _TRAP = $72;
	_SLEEP = $73;
	_WAIT = $74;
	_SIGNAL = $75;

	_ADD = $80;
	_SUB = $81;
	_MUL = $82;
	_DIV = $83;

	_AND = $90;
	_OR = $91;
	_LT = $92;
	_GT = $93;
	_LTE = $94;
	_GTE = $95;
	_EQ = $96;
	_NOT = $97;

	_JMP = $A0;
	_JNZ = $A1;
	_JZ = $A2;
	_CALL = $A3;
  _CALLE = $A4;
  _RET = $A5;

	_PUSHI = $B0;
  _PUSHF = $B1;
	_PUSHS = $B2;
	_PUSHDISP = $B3;
	_POPDISP = $B4;
  _PUSHR = $B5;
	_POPR = $B6;
  _GET = $B7;

  _TOF = $D0;
  _TOI = $D1;
	_TOS = $D2;
	
	_PUSHBP = $E0;
	_POPBP = $E1;
	_MBPSP = $E2;
	_MSPBP = $E3;
	_ADDSP = $E4;
	_SUBSP = $E5;
	_MTSD = $E6;

  opcodeNum = 42;
	
	opcodes : array[1..opcodeNum] of opcode_trans = (
                                                (keyword:'NOP'; opcode:_NOP),
                                                (keyword:'HALT'; opcode:_HALT),
                                                (keyword:'TRAP'; opcode:_TRAP),
                                                (keyword:'SLEEP'; opcode:_SLEEP),
                                                (keyword:'WAIT'; opcode:_WAIT),
                                                (keyword:'SIGNAL'; opcode:_SIGNAL),

                                                (keyword:'ADD'; opcode:_ADD),
                                                (keyword:'SUB'; opcode:_SUB),
                                                (keyword:'MUL'; opcode:_MUL),
                                                (keyword:'DIV'; opcode:_DIV),

                                                (keyword:'AND'; opcode:_AND),
                                                (keyword:'OR'; opcode:_OR),
                                                (keyword:'LT'; opcode:_LT),
                                                (keyword:'GT'; opcode:_GT),
                                                (keyword:'LTE'; opcode:_LTE),
                                                (keyword:'GTE'; opcode:_GTE),
                                                (keyword:'EQ'; opcode:_EQ),
                                                (keyword:'NOT'; opcode:_NOT),

																								(keyword:'JMP'; opcode:_JMP),
																								(keyword:'JNZ'; opcode:_JNZ),
																								(keyword:'JZ'; opcode:_JZ),
                                                (keyword:'CALL'; opcode:_CALL),
                                                (keyword:'CALLE'; opcode:_CALLE),
                                                (keyword:'RET'; opcode:_RET),

																								(keyword:'PUSHI'; opcode:_PUSHI),
																								(keyword:'PUSHF'; opcode:_PUSHF),
																								(keyword:'PUSHS'; opcode:_PUSHS),
																								(keyword:'PUSHDISP'; opcode:_PUSHDISP),
																								(keyword:'POPDISP'; opcode:_POPDISP),
																								(keyword:'PUSHR'; opcode:_PUSHR),
																								(keyword:'POPR'; opcode:_POPR),
                                                (keyword:'GET'; opcode:_GET),

																								(keyword:'TOF'; opcode:_TOF),
																								(keyword:'TOI'; opcode:_TOI),
																								(keyword:'TOS'; opcode:_TOS),

																								(keyword:'PUSHBP'; opcode:_PUSHBP),
																								(keyword:'POPBP'; opcode:_POPBP),
																								(keyword:'MBPSP'; opcode:_MBPSP),
																								(keyword:'MSPBP'; opcode:_MSPBP),
																								(keyword:'ADDSP'; opcode:_ADDSP),
																								(keyword:'SUBSP'; opcode:_SUBSP),
																								(keyword:'MTSD'; opcode:_MTSD)
                                                );


implementation

end.