home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD2.bin
/
bbs
/
dev
/
caz-1.26b.lha
/
CAZ
/
src
/
cazmne.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-01-08
|
16KB
|
278 lines
#include "defs.h"
char *directives[] = { "ORG","EQU","DEFL","DEFB","DEFW","DEFS","DEFM","INCLUDE",
"END","LIST","OFF","ON","COND","ENDC","EJECT","MACLIST",
"HEADING","MACRO","ENDM","DEFBASE",NULL };
/*
* 'Jump Relative' : UNM16+JMPREL (UNM16 to note absolute Position)
* 'IM 0/1/2' are special coded: MNE='IM' + UNM3 + IMODE0/1/2
* 'RST' has an own flag to generate table
*/
/*
* Table Format:
* STRING Mnemomic in Uppercase,
* u_long Type of first Parameter,
* u_long Type of second Parameter,
* u_char Where to code the first Parameter, and the Objectcode length of the Mnemomic,
* u_char Where to code the second Parameter,
* u_char[4] Binary Code of the Mnemomic
*/
struct command cmd[] = {
{"ADC", NBR|REG_A, REG8, NOE+MNELE1, BYTE1+BIT0, 0x88,0x00,0x00,0x00, 4},
{"ADC", NBR|REG_A, UNM8, NOE+MNELE2, BYTE2, 0xCE,0x00,0x00,0x00, 7},
{"ADC", NBR|REG_A, REG_HL+IND, NOE+MNELE1, NOE, 0x8E,0x00,0x00,0x00, 7},
{"ADC", NBR|REG_A, REG_IX+OFF+IND, NOE+MNELE3, BYTE3, 0xDD,0x8E,0x00,0x00,19},
{"ADC", NBR|REG_A, REG_IY+OFF+IND, NOE+MNELE3, BYTE3, 0xFD,0x8E,0x00,0x00,19},
{"ADC", NBR|REG_HL, REG16, NOE+MNELE2, BYTE2+BIT4, 0xED,0x4A,0x00,0x00,15},
{"ADD", NBR|REG_A, REG_HL+IND, NOE+MNELE1, NOE, 0x86,0x00,0x00,0x00, 7},
{"ADD", NBR|REG_A, REG_IX+OFF+IND, NOE+MNELE3, BYTE3, 0xDD,0x86,0x00,0x00,19},
{"ADD", NBR|REG_A, REG_IY+OFF+IND, NOE+MNELE3, BYTE3, 0xFD,0x86,0x00,0x00,19},
{"ADD", NBR|REG_A, UNM8, NOE+MNELE2, BYTE2, 0xC6,0x00,0x00,0x00, 7},
{"ADD", NBR|REG_A, REG8, NOE+MNELE1, BYTE1+BIT0, 0x80,0x00,0x00,0x00, 4},
{"ADD", NBR|REG_HL, REG16, NOE+MNELE1, BYTE1+BIT4, 0x09,0x00,0x00,0x00,11},
{"ADD", NBR|REG_IX, REG_BC+REG_DE+REG_SP,NOE+MNELE2,BYTE2+BIT4,
0xDD,0x09,0x00,0x00,15},
{"ADD", NBR|REG_IX, REG_IX, NOE+MNELE2, NOE, 0xDD,0x29,0x00,0x00,15},
{"ADD", NBR|REG_IY, REG_BC+REG_DE+REG_SP,NOE+MNELE2,BYTE2+BIT4,
0xFD,0x09,0x00,0x00,15},
{"ADD", NBR|REG_IY, REG_IY, NOE+MNELE2, NOE, 0xFD,0x29,0x00,0x00,15},
{"AND", NBR|REG8, NOPAR, BYTE1+BIT0+MNELE1, NOE, 0xA0,0x00,0x00,0x00, 4},
{"AND", NBR|UNM8, NOPAR, BYTE2+MNELE2, NOE, 0xE6,0x00,0x00,0x00, 7},
{"AND", NBR|REG_HL+IND, NOPAR, NOE+MNELE1, NOE, 0xA6,0x00,0x00,0x00, 7},
{"AND", NBR|REG_IX+OFF+IND, NOPAR, BYTE3+MNELE3, NOE, 0xDD,0xA6,0x00,0x00,19},
{"AND", NBR|REG_IY+OFF+IND, NOPAR, BYTE3+MNELE3, NOE, 0xFD,0xA6,0x00,0x00,19},
{"BIT", NBR|UNM3, REG_HL+IND, BYTE2+BIT3+MNELE2, NOE,0xCB,0x46,0x00,0x00,12},
{"BIT", NBR|UNM3, REG_IX+OFF+IND, BYTE4+BIT3+MNELE4, BYTE3+BIT0,
0xDD,0xCB,0x00,0x46,20},
{"BIT", NBR|UNM3, REG_IY+OFF+IND, BYTE4+BIT3+MNELE4, BYTE3+BIT0,
0xFD,0xCB,0x00,0x46,20},
{"BIT", NBR|UNM3, REG8, BYTE2+BIT3+MNELE2, BYTE2+BIT0,
0xCB,0x40,0x00,0x00, 8},
{"CALL",BRA|BRANCH8, UNM16,BYTE1+BIT3+MNELE3, BYTE2,
0xC4,0x00,0x00,0x00, 0x110a},
{"CALL",NBR|UNM16,NOPAR, BYTE2+MNELE3, NOE, 0xCD,0x00,0x00,0x00,17},
{"CCF", NOPAR, NOPAR, NOE+MNELE1, NOE, 0x3F,0x00,0x00,0x00, 4},
{"CP", NBR|REG8, NOPAR, BYTE1+BIT0+MNELE1, NOE,0xB8,0x00,0x00,0x00, 4},
{"CP", NBR|UNM8, NOPAR, BYTE2+MNELE2, NOE,0xFE,0x00,0x00,0x00, 7},
{"CP", NBR|REG_HL+IND, NOPAR, NOE+MNELE1, NOE,0xBE,0x00,0x00,0x00, 7},
{"CP", NBR|REG_IX+OFF+IND, NOPAR, BYTE3+MNELE3, NOE,0xDD,0xBE,0x00,0x00,19},
{"CP", NBR|REG_IY+OFF+IND, NOPAR, BYTE3+MNELE3, NOE,0xFD,0xBE,0x00,0x00,19},
{"CPD", NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xA9,0x00,0x00,16},
{"CPDR",NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xB9,0x00,0x00, 0x1015},
{"CPI", NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xA1,0x00,0x00,16},
{"CPIR",NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xB1,0x00,0x00, 0x1015},
{"CPL", NOPAR, NOPAR, NOE+MNELE1, NOE, 0x2F,0x00,0x00,0x00, 4},
{"DAA", NOPAR, NOPAR, NOE+MNELE1, NOE, 0x27,0x00,0x00,0x00, 4},
{"DEC", NBR|REG8, NOPAR, BYTE1+BIT3+MNELE1, NOE,0x05,0x00,0x00,0x00, 4},
{"DEC", NBR|REG_HL+IND, NOPAR, NOE+MNELE1, NOE,0x35,0x00,0x00,0x00,11},
{"DEC", NBR|REG_IX+OFF+IND, NOPAR, BYTE3+MNELE3, NOE,0xDD,0x35,0x00,0x00,23},
{"DEC", NBR|REG_IY+OFF+IND, NOPAR, BYTE3+MNELE3, NOE,0xFD,0x35,0x00,0x00,23},
{"DEC", NBR|REG16, NOPAR, BYTE1+BIT4+MNELE1, NOE,0x0B,0x00,0x00,0x00, 6},
{"DEC", NBR|REG_IX, NOPAR, NOE+MNELE2, NOE,0xDD,0x2B,0x00,0x00,10},
{"DEC", NBR|REG_IY, NOPAR, NOE+MNELE2, NOE,0xFD,0x2B,0x00,0x00,10},
{"DI", NOPAR, NOPAR, NOE+MNELE1, NOE,0xF3,0x00,0x00,0x00, 4},
{"DJNZ",NBR|UNM16+JMPREL,NOPAR, BYTE2+MNELE2,NOE, 0x10,0x00,0x00,0x00, 0x0d08},
{"EI", NOPAR, NOPAR, NOE+MNELE1, NOE, 0xFB,0x00,0x00,0x00, 4},
{"EX", REG_AF, REG_AF, NOE+MNELE1, NOE, 0x08,0x00,0x00,0x00, 4},
{"EX", REG_DE, REG_HL, NOE+MNELE1, NOE, 0xEB,0x00,0x00,0x00, 4},
{"EX", IND+REG_SP, REG_HL, NOE+MNELE1, NOE, 0xE3,0x00,0x00,0x00,19},
{"EX", IND+REG_SP, REG_IX, NOE+MNELE2, NOE, 0xDD,0xE3,0x00,0x00,23},
{"EX", IND+REG_SP, REG_IY, NOE+MNELE2, NOE, 0xFD,0xE3,0x00,0x00,23},
{"EXX", NOPAR, NOPAR, NOE+MNELE1, NOE, 0xD9,0x00,0x00,0x00, 4},
{"HALT",NOPAR, NOPAR, NOE+MNELE1, NOE, 0x76,0x00,0x00,0x00, 4},
{"IM", NBR|UNM3+IMODE0, NOPAR, NOE+MNELE2, NOE,0xED,0x46,0x00,0x00, 8},
{"IM", NBR|UNM3+IMODE1, NOPAR, NOE+MNELE2, NOE,0xED,0x56,0x00,0x00, 8},
{"IM", NBR|UNM3+IMODE2, NOPAR, NOE+MNELE2, NOE,0xED,0x5E,0x00,0x00, 8},
{"IN", NBR|REG8, REG_C+IND, BYTE2+BIT3+MNELE2,NOE, 0xED,0x40,0x00,0x00,12},
{"IN", NBR|REG_A, UNM8+IND, NOE+MNELE2, BYTE2, 0xDB,0x00,0x00,0x00,11},
{"INC", NBR|REG8, NOPAR, BYTE1+BIT3+MNELE1,NOE, 0x04,0x00,0x00,0x00, 4},
{"INC", NBR|REG16, NOPAR, BYTE1+BIT4+MNELE1,NOE, 0x03,0x00,0x00,0x00, 6},
{"INC", NBR|REG_HL+IND, NOPAR, NOE+MNELE1, NOE, 0x34,0x00,0x00,0x00,11},
{"INC", NBR|REG_IX+OFF+IND, NOPAR, BYTE3+MNELE3, NOE, 0xDD,0x34,0x00,0x00,23},
{"INC", NBR|REG_IY+OFF+IND, NOPAR, BYTE3+MNELE3, NOE, 0xFD,0x34,0x00,0x00,23},
{"INC", NBR|REG_IX, NOPAR, NOE+MNELE2, NOE, 0xDD,0x23,0x00,0x00,10},
{"INC", NBR|REG_IY, NOPAR, NOE+MNELE2, NOE, 0xFD,0x23,0x00,0x00,10},
{"IND", NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xAA,0x00,0x00,16},
{"INDR",NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xBA,0x00,0x00, 0x1015},
{"INI", NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xA2,0x00,0x00,16},
{"INIR",NOPAR, NOPAR, NOE+MNELE2, NOE, 0xED,0xB2,0x00,0x00, 0x1015},
{"JP", NBR|REG_HL+IND, NOPAR, NOE+MNELE1, NOE, 0xE9,0x00,0x00,0x00, 4},
{"JP", NBR|REG_IX+IND, NOPAR, NOE+MNELE2, NOE, 0xDD,0xE9,0x00,0x00, 8},
{"JP", NBR|REG_IY+IND, NOPAR, NOE+MNELE2, NOE, 0xFD,0xE9,0x00,0x00, 8},
{"JP", BRA|BRANCH8,UNM16, BYTE1+BIT3+MNELE3,BYTE2,0xC2,0x00,0x00,0x00, 0x0a0a},
{"JP", NBR|UNM16,NOPAR, BYTE2+MNELE3, NOE, 0xC3,0x00,0x00,0x00,10},
{"JR", BRA|BRANCH4, UNM16+JMPREL,BYTE1+BIT3+MNELE2, BYTE2,
0x20,0x00,0x00,0x00, 0x0c07},
{"JR", NBR|UNM16+JMPREL,NOPAR, BYTE2+MNELE2, NOE,0x18,0x00,0x00,0x00,12},
{"LD", NBR|REG_HL, UNM16+IND, NOE+MNELE3, BYTE2, 0x2A,0x00,0x00,0x00,20},
{"LD", NBR|REG16, UNM16+IND, BYTE2+BIT4+MNELE4,BYTE3,0xED,0x4B,0x00,0x00,20},
{"LD", NBR|REG16, UNM16, BYTE1+BIT4+MNELE3,BYTE2,0x01,0x00,0x00,0x00,10},
{"LD", NBR|REG8, UNM8, BYTE1+BIT3+MNELE2,BYTE2,0x06,0x00,0x00,0x00, 7},
{"LD", NBR|REG8, REG8, BYTE1+BIT3+MNELE1,BYTE1,0x40,0x00,0x00,0x00, 4},
{"LD", NBR|REG_BC+IND, REG_A, NOE+MNELE1, NOE, 0x02,0x00,0x00,0x00, 7},
{"LD", NBR|REG_DE+IND, REG_A, NOE+MNELE1, NOE, 0x12,0x00,0x00,0x00, 7},
{"LD", NBR|REG_HL+IND, UNM8, NOE+MNELE2, BYTE2, 0x36,0x00,0x00,0x00,10},
{"LD", NBR|REG_HL+IND, REG8, NOE+MNELE1, BYTE1, 0x70,0x00,0x00,0x00, 7},
{"LD", NBR|REG8, REG_IX+IND+OFF, BYTE2+BIT3+MNELE3,BYTE3,0xDD,0x46,0x00,0x00,19},
{"LD", NBR|REG8, REG_IY+IND+OFF, BYTE2+BIT3+MNELE3,BYTE3,0xFD,0x46,0x00,0x00,19},
{"LD", NBR|REG_IX+IND+OFF,UNM8, BYTE3+MNELE4, BYTE4, 0xDD,0x36,0x00,0x00,19},
{"LD", NBR|REG_IY+IND+OFF,UNM8, BYTE3+MNELE4, BYTE4, 0xFD,0x36,0x00,0x00,19},
{"LD", NBR|REG_IX+IND+OFF,REG8, BYTE3+MNELE3, BYTE2, 0xDD,0x70,0x00,0x00,19},
{"LD", NBR|REG_IY+IND+OFF,REG8, BYTE3+MNELE3, BYTE2, 0xFD,0x70,0x00,0x00,19},
{"LD", NBR|REG_A, UNM16+IND, NOE+MNELE3, BYTE2, 0x3A,0x00,0x00,0x00,13},
{"LD", NBR|UNM16+IND, REG_A, BYTE2+MNELE3, NOE, 0x32,0x00,0x00,0x00,13},
{"LD", NBR|UNM16+IND, REG16, BYTE3+MNELE4, BYTE2+BIT4,
0xED,0x43,0x00,0x00,20},
{"LD", NBR