dump_dip: add a Sitel SC144xx DIP Disassembler
git-svn-id: https://dedected.org/svn/trunk@75 8d8ab74c-27aa-4a3d-9bde-523a2bc1f624
This commit is contained in:
parent
8311d7bb7b
commit
bf83516eb0
|
@ -0,0 +1,136 @@
|
|||
//----
|
||||
// DIP codes, partially explained
|
||||
//----
|
||||
|
||||
BR label : branch to label
|
||||
JMP label : jump to subroutine label
|
||||
JMP1 label : jump to subroutine label if true (whatever)
|
||||
RTN : return from subroutine
|
||||
WNT x : wait x slots
|
||||
WT x : wait x dect-clocks
|
||||
U_INT0 : raise interrupt 0
|
||||
U_INT1 : raise interrupt 1
|
||||
U_INT2 : raise interrupt 2
|
||||
U_INT3 : raise interrupt 3
|
||||
U_PSC
|
||||
U_VINT
|
||||
P_EN : enable portbits
|
||||
P_LDH x : set selected portbits to high
|
||||
P_LDL x : set selected portbits to low
|
||||
P_LD x : load portbit ???
|
||||
P_SC
|
||||
M_WR : start transfer over microwire-output
|
||||
M_RST : stop transfer over microwire-output
|
||||
M_INI0
|
||||
M_INI1
|
||||
MEN1N : set microwire enable 1 low
|
||||
MEN1 : set microwire enable 1 high
|
||||
MEN2N : set microwire enable 2 low
|
||||
MEN2 : set microwire enable 2 high
|
||||
MEN3N : set microwire enable 3 low
|
||||
MEN3 : set microwire enable 3 high
|
||||
RFEN : enable clk output
|
||||
RFDIS : disable clk output
|
||||
D_ON : enable xor with DSC
|
||||
D_OFF : disable xor with DSC
|
||||
D_LDK : Load DSC Key
|
||||
D_PREP : DSC Prepare
|
||||
D_WRS : writes internal DSC state
|
||||
D_LDS : load DSC state
|
||||
D_RST : DSC Reset
|
||||
BK_C : set upper address nibble
|
||||
LD_PTR
|
||||
BK_A
|
||||
A_RST
|
||||
A_LDR
|
||||
A_LDW
|
||||
A_MUTE : ADPCM mute
|
||||
A_MTOFF : ADPCM mute off
|
||||
BK_A1
|
||||
A_RST1
|
||||
A_LDR1
|
||||
A_LDW1
|
||||
A_MUTE1 : ADPCM1 mute
|
||||
A_MTOFF1 : ADPCM1 mute off
|
||||
B_RST : reset rx stuff
|
||||
B_XOFF : disable B field CRC
|
||||
B_XON : enable B field CRC
|
||||
SLOTZERO : wait until in slot zero (partly understood)
|
||||
|
||||
|
||||
//----
|
||||
// missing / unknown mnemonics
|
||||
//----
|
||||
|
||||
WNTM1
|
||||
WNTP1
|
||||
|
||||
B_ST2
|
||||
B_XT
|
||||
B_BTFU
|
||||
UNLCK
|
||||
B_SR
|
||||
B_XR
|
||||
EN_SL_ADJ
|
||||
B_BRFU
|
||||
B_RINV
|
||||
B_RON
|
||||
|
||||
|
||||
B_ST
|
||||
B_AT
|
||||
B_RC
|
||||
B_BT
|
||||
B_BTFP
|
||||
B_AT2
|
||||
B_WRS
|
||||
B_AR
|
||||
B_BR
|
||||
B_BRFP
|
||||
B_AR2
|
||||
|
||||
WSC
|
||||
|
||||
RCK_INT
|
||||
RCK_EXT
|
||||
B_WB_OFF
|
||||
B_WB_ON
|
||||
CLK1
|
||||
CLK3
|
||||
U_CK8
|
||||
U_CK4
|
||||
U_CK2
|
||||
U_CK1
|
||||
|
||||
A_RCV0
|
||||
A_RCV36
|
||||
A_RCV30
|
||||
A_RCV24
|
||||
A_RCV18
|
||||
A_RCV12
|
||||
A_RCV6
|
||||
A_RCV33
|
||||
A_RCV27
|
||||
A_RCV21
|
||||
A_RCV15
|
||||
A_RCV9
|
||||
A_RCV3
|
||||
|
||||
M_RD
|
||||
|
||||
M_WRS
|
||||
|
||||
A_STOFF
|
||||
A_ALAW
|
||||
A_DT
|
||||
A_NORM
|
||||
A_LIN
|
||||
A_STON
|
||||
A_DT1
|
||||
|
||||
A_STRN
|
||||
C_ON
|
||||
C_OFF
|
||||
|
||||
C_LD
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
CFLAGS=-Wall -O2 -I..
|
||||
PROGS=coa_syncsniff pcap2cchan dump_eeprom
|
||||
PROGS=coa_syncsniff pcap2cchan dump_eeprom dump_dip
|
||||
PCAP_PROGS=pcapstein dect_cli
|
||||
all:$(PROGS) $(PCAP_PROGS)
|
||||
|
||||
|
|
|
@ -0,0 +1,321 @@
|
|||
/*
|
||||
* dump_dip - simple disassembler for sc144xx DIP codes
|
||||
*
|
||||
* usage: dump_dip [options] <files>
|
||||
* options:
|
||||
* -b byteswap
|
||||
*
|
||||
* example:
|
||||
* dump_dip ../WinCD/install/M* > win_cd_dip.asm
|
||||
*
|
||||
* authors:
|
||||
* (c) 2009 Matthias Wenzel - dect /at/ mazzoo /dot/ de
|
||||
*
|
||||
* license:
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/mman.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "dump_dip.h"
|
||||
|
||||
|
||||
uint32_t current_CPUs;
|
||||
int files_done = 0;
|
||||
|
||||
int opt_byteswap = 0;
|
||||
|
||||
#define OP_CODE_SIZE 2 /* 16 bit DIP opcodes */
|
||||
#define THRESHOLD 50 /* min number of sequential opcodes before dumping */
|
||||
#define MAX_LABELS 4096
|
||||
|
||||
|
||||
struct op_code * get_op_code(uint8_t c)
|
||||
{
|
||||
struct op_code * ret = NULL;
|
||||
struct op_code * p = dip_op_code;
|
||||
|
||||
while (p->mnemonic)
|
||||
{
|
||||
if (p->code == c)
|
||||
return p;
|
||||
p++;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dump_fw(uint8_t * fw, int fwsz)
|
||||
{
|
||||
int i, j;
|
||||
struct op_code * op;
|
||||
|
||||
int nlabel=0; /* total number of labels in a FW */
|
||||
uint8_t label[MAX_LABELS];
|
||||
|
||||
/* first run: collect labels */
|
||||
for (i=0; i<fwsz; i+=2)
|
||||
{
|
||||
op = get_op_code(fw[i]);
|
||||
if (!op)
|
||||
{
|
||||
printf("; !!! internal ERROR :(\n");
|
||||
exit(1);
|
||||
}
|
||||
if (op->param_type == PARAM_LABEL)
|
||||
label[nlabel++] = fw[i+1];
|
||||
if (nlabel == MAX_LABELS)
|
||||
{
|
||||
printf("; !!! MAX_LABELS reached.\n");
|
||||
printf("; !!! aborting current firmware\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* second run: emit .asm code with labels */
|
||||
for (i=0; i<fwsz; i+=2)
|
||||
{
|
||||
op = get_op_code(fw[i]);
|
||||
if (!op)
|
||||
{
|
||||
printf("; !!! internal ERROR :(\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* see if we need to label the address */
|
||||
for (j=0; j<nlabel; j++){
|
||||
if (i/2 == label[j])
|
||||
{
|
||||
printf("label_%2.2x:\n", label[j]);
|
||||
goto label_done;
|
||||
}
|
||||
}
|
||||
label_done:
|
||||
|
||||
printf("\t%s", op->mnemonic);
|
||||
switch (op->param_type)
|
||||
{
|
||||
case PARAM_NONE:
|
||||
break;
|
||||
case PARAM_LABEL:
|
||||
printf("\tlabel_%2.2x", fw[i+1]);
|
||||
break;
|
||||
case PARAM_HEX:
|
||||
printf("\t0x%2.2x", fw[i+1]);
|
||||
break;
|
||||
case PARAM_DEC:
|
||||
printf("\t %3.1d", fw[i+1]);
|
||||
break;
|
||||
default:
|
||||
printf("; !!! internal ERROR :(\n");
|
||||
exit(1);
|
||||
}
|
||||
printf("\n");
|
||||
current_CPUs &= op->cpu;
|
||||
}
|
||||
}
|
||||
|
||||
void handle_mmap(uint8_t * map, int size, char * fname, int fcount)
|
||||
{
|
||||
uint8_t * p = map;
|
||||
int op_count = 0;
|
||||
int rest = size;
|
||||
|
||||
struct op_code * op;
|
||||
uint8_t * pstart;
|
||||
int FW_count = 0;
|
||||
|
||||
while (rest>0)
|
||||
{
|
||||
pstart = p;
|
||||
while( (op = get_op_code(*p)) )
|
||||
{
|
||||
p += OP_CODE_SIZE;
|
||||
op_count++;
|
||||
}
|
||||
|
||||
if (op_count > THRESHOLD)
|
||||
{
|
||||
current_CPUs =
|
||||
M_14400 |
|
||||
M_14401 |
|
||||
M_14402 |
|
||||
M_14404 |
|
||||
M_14405 |
|
||||
M_14420 |
|
||||
M_14421 |
|
||||
M_14422 |
|
||||
M_14424;
|
||||
printf("; ----------------------------------------\n");
|
||||
printf("; firmware_%d_%d offset %d size %d bytes\n; file %s\n",
|
||||
fcount,
|
||||
FW_count,
|
||||
pstart - map,
|
||||
op_count * OP_CODE_SIZE,
|
||||
fname);
|
||||
printf("; ----------------------------------------\n");
|
||||
printf("\n");
|
||||
|
||||
dump_fw(pstart, op_count * OP_CODE_SIZE);
|
||||
|
||||
printf("\n");
|
||||
printf("; the above firmware is supported by the following CPUs:\n");
|
||||
int i=0;
|
||||
while (current_CPUs)
|
||||
{
|
||||
printf("; %s\n", cpu_name[i++]);
|
||||
current_CPUs>>=1;
|
||||
}
|
||||
printf("\n");
|
||||
printf("\n");
|
||||
|
||||
FW_count++;
|
||||
}
|
||||
|
||||
pstart += op_count * OP_CODE_SIZE;
|
||||
|
||||
rest -= op_count * OP_CODE_SIZE;
|
||||
rest --;
|
||||
p++;
|
||||
|
||||
op_count = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void handle_file(char * fn)
|
||||
{
|
||||
int ret;
|
||||
ret = open(fn, O_RDONLY);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("; !!! couldn't open(\"%s\"): %s\n",
|
||||
fn,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int f = ret;
|
||||
|
||||
ret = lseek(f, 0, SEEK_END);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("; !!! couldn't lseek(SEEK_END): %s\n",
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int fsz = ret;
|
||||
|
||||
uint8_t * pf = NULL;
|
||||
pf = mmap(NULL, fsz, PROT_READ, MAP_PRIVATE, f, 0);
|
||||
if (pf == (void *) -1)
|
||||
{
|
||||
#if 0
|
||||
/* most commonly directories */
|
||||
printf("!!! couldn't mmap(%s): %s\n",
|
||||
fn,
|
||||
strerror(errno));
|
||||
#endif
|
||||
}else{
|
||||
uint8_t * map;
|
||||
if (opt_byteswap){
|
||||
map = malloc(fsz);
|
||||
if (!map)
|
||||
{
|
||||
printf("; !!! ERROR: couln't malloc()\n");
|
||||
exit(1);
|
||||
}
|
||||
int i;
|
||||
for (i=0; i<fsz; i+=2)
|
||||
{
|
||||
map[i+1] = pf[i+0];
|
||||
map[i+0] = pf[i+1];
|
||||
}
|
||||
}else
|
||||
map = pf;
|
||||
|
||||
handle_mmap(map, fsz, fn, files_done);
|
||||
|
||||
if (opt_byteswap)
|
||||
free(map);
|
||||
|
||||
files_done++;
|
||||
ret = munmap(pf, fsz);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("; !!! couldn't munmap(\"%s\"): %s\n",
|
||||
fn,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
ret = close(f);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("; !!! couldn't close(\"%s\"): %s\n",
|
||||
fn,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void usage(void)
|
||||
{
|
||||
printf("dump_dip - simple disassembler for sc144xx DIP codes\n");
|
||||
printf("\n");
|
||||
printf("usage: dump_dip [options] <files>\n");
|
||||
printf("options:\n");
|
||||
printf(" -b byteswap\n");
|
||||
printf("\n");
|
||||
printf("example:\n");
|
||||
printf(" dump_dip ../WinCD/install/M* > win_cd_dip.asm\n");
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int main(int argc, char ** argv){
|
||||
int n=1;
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
usage();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
while (argv[n][0] == '-')
|
||||
{
|
||||
switch (argv[n][1]){
|
||||
case 'b':
|
||||
opt_byteswap = 1;
|
||||
break;
|
||||
default:
|
||||
printf("; !!! ERROR: unknown option %c\n", argv[n][1]);
|
||||
usage();
|
||||
exit(1);
|
||||
}
|
||||
n++;
|
||||
if (!argv[n])
|
||||
{
|
||||
usage();
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
while (argv[n])
|
||||
handle_file(argv[n++]);
|
||||
|
||||
printf("; +++ processed %d input files\n", files_done);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,225 @@
|
|||
/*
|
||||
* dump_dip - simple disassembler for sc144xx DIP codes
|
||||
*
|
||||
* usage: dump_dip [options] <files>
|
||||
* options:
|
||||
* -b byteswap
|
||||
*
|
||||
* example:
|
||||
* dump_dip ../WinCD/install/M* > win_cd_dip.asm
|
||||
*
|
||||
* authors:
|
||||
* (c) 2009 Matthias Wenzel - dect /at/ mazzoo /dot/ de
|
||||
* (c) 1999 Alfred Arnold
|
||||
*
|
||||
* license:
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
#ifndef DUMP_DIP_H
|
||||
#define DUMP_DIP_H
|
||||
|
||||
#define M_14400 (1 << 0)
|
||||
#define M_14401 (1 << 1)
|
||||
#define M_14402 (1 << 2)
|
||||
#define M_14404 (1 << 3)
|
||||
#define M_14405 (1 << 4)
|
||||
#define M_14420 (1 << 5)
|
||||
#define M_14421 (1 << 6)
|
||||
#define M_14422 (1 << 7)
|
||||
#define M_14424 (1 << 8)
|
||||
|
||||
#define PARAM_NONE 0
|
||||
#define PARAM_HEX 1
|
||||
#define PARAM_DEC 2
|
||||
#define PARAM_LABEL 3
|
||||
|
||||
char * cpu_name[] =
|
||||
{
|
||||
"sc14400",
|
||||
"sc14401",
|
||||
"sc14402",
|
||||
"sc14404",
|
||||
"sc14405",
|
||||
"sc14420",
|
||||
"sc14421",
|
||||
"sc14422",
|
||||
"sc14424",
|
||||
};
|
||||
|
||||
struct op_code {
|
||||
char * mnemonic;
|
||||
uint8_t code;
|
||||
uint32_t cpu;
|
||||
uint32_t param_type;
|
||||
};
|
||||
|
||||
struct op_code dip_op_code[] =
|
||||
{
|
||||
{"BR" , 0x01, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_LABEL},
|
||||
{"BRK" , 0x6e, M_14402 | M_14404 | M_14405 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"JMP" , 0x02, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_LABEL},
|
||||
{"JMP1" , 0x03, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_LABEL},
|
||||
{"RTN" , 0x04, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"WNT" , 0x08, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_DEC },
|
||||
{"WT" , 0x09, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_DEC },
|
||||
{"WSC" , 0x48, M_14404 | M_14405 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"RFEN" , 0x0b, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"RFDIS" , 0x0a, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"BK_A" , 0x0e, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"BK_A1" , 0x05, M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"BK_C" , 0x0f, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"SLOTZERO" , 0x0d, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"EN_SL_ADJ", 0x2c, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"WNTP1" , 0x07, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"WNTM1" , 0x06, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"LD_PTR" , 0x0c, M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"UNLCK" , 0x28, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RX" , 0x49, M_14404 | M_14405 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"A_TX" , 0x4a, M_14404 | M_14405 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"A_MUTE" , 0xc1, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_MTOFF" , 0xc9, M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_MUTE1" , 0xca, M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_MTOFF1" , 0xcb, M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_STOFF" , 0xc2, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_STON" , 0xcc, M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV0" , 0x80, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV36" , 0x82, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV30" , 0x83, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV24" , 0x84, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV18" , 0x85, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV12" , 0x86, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV6" , 0x87, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV33" , 0x8a, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV27" , 0x8b, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV21" , 0x8c, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV15" , 0x8d, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV9" , 0x8e, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RCV3" , 0x8f, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_NORM" , 0xc5, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_RST" , 0xc0, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_LDR" , 0xc6, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"A_LDW" , 0xc7, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"A_RST1" , 0xeb, M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"A_LDR1" , 0xce, M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"A_LDW1" , 0xcf, M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"A_ST18" , 0xe1, M_14402 , PARAM_NONE },
|
||||
{"B_ST" , 0x31, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_ST2" , 0x21, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_PPT" , 0x22, M_14404 | M_14405 | M_14424, PARAM_NONE },
|
||||
{"B_ZT" , 0x22, M_14400 , PARAM_NONE },
|
||||
{"B_ZR" , 0x2a, M_14400 , PARAM_NONE },
|
||||
{"B_AT" , 0x32, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_AT2" , 0x37, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BT" , 0x34, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BTFM" , 0x23, M_14404 | M_14405 | M_14424, PARAM_HEX },
|
||||
{"B_BTFU" , 0x25, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BTFP" , 0x35, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BTDU" , 0x71, M_14404 | M_14405 | M_14424, PARAM_HEX },
|
||||
{"B_BTDP" , 0x72, M_14404 | M_14405 | M_14424, PARAM_HEX },
|
||||
{"B_XON" , 0x27, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_XOFF" , 0x26, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_SR" , 0x29, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_AR" , 0x3a, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_AR2" , 0x3f, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_RON" , 0x2f, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_RINV" , 0x2e, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_BR" , 0x3c, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BRFU" , 0x2d, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BRFP" , 0x3d, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BRFD" , 0x2a, M_14404 | M_14405 | M_14424, PARAM_HEX },
|
||||
{"B_BRDU" , 0x79, M_14404 | M_14405 | M_14424, PARAM_HEX },
|
||||
{"B_BRDP" , 0x7a, M_14404 | M_14405 | M_14424, PARAM_HEX },
|
||||
{"B_XR" , 0x2b, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_XT" , 0x24, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_WB_ON" , 0x65, M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_WB_OFF" , 0x64, M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_WRS" , 0x39, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_RC" , 0x33, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_RST" , 0x20, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"B_DIV1" , 0x4f, M_14405 , PARAM_NONE },
|
||||
{"B_DIV2" , 0x4e, M_14405 , PARAM_NONE },
|
||||
{"B_DIV4" , 0x4d, M_14405 , PARAM_NONE },
|
||||
{"C_LD" , 0xfa, M_14401 | M_14402 | M_14420 | M_14421 | M_14422 , PARAM_HEX },
|
||||
{"C_ON" , 0xee, M_14420 | M_14421 | M_14422 , PARAM_NONE },
|
||||
{"C_OFF" , 0xef, M_14420 | M_14421 | M_14422 , PARAM_NONE },
|
||||
{"C_LD2" , 0xba, M_14424, PARAM_HEX },
|
||||
{"C_ON2" , 0xae, M_14424, PARAM_NONE },
|
||||
{"C_OFF2" , 0xaf, M_14424, PARAM_NONE },
|
||||
{"D_LDK" , 0x50, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"D_PREP" , 0x44, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"D_WRS" , 0x5f, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"D_LDS" , 0x57, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"D_RST" , 0x40, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"M_WR" , 0xb9, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"M_RST" , 0xa9, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"M_INI0" , 0xa0, M_14404 | M_14405 | M_14424, PARAM_NONE },
|
||||
{"M_INI1" , 0xa1, M_14404 | M_14405 | M_14424, PARAM_NONE },
|
||||
{"MEN1N" , 0xa4, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"MEN1" , 0xa5, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"P_EN" , 0xe9, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"P_LDH" , 0xed, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"P_LDL" , 0xec, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"P_LD" , 0xe8, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"P_SC" , 0xea, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"U_INT0" , 0x61, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"U_INT1" , 0x6b, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"U_INT2" , 0x6d, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"U_INT3" , 0x6f, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"U_PSC" , 0x60, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{"U_VINT" , 0x63, M_14404 | M_14405 | M_14422 | M_14424, PARAM_HEX },
|
||||
|
||||
/* obsolete stuff - argument range may be incorrect */
|
||||
|
||||
{"D_ON" , 0x42, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"D_OFF" , 0x43, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"RCK_INT" , 0x62, M_14420 | M_14421 , PARAM_NONE },
|
||||
{"CLK1" , 0x66, M_14420 | M_14421 , PARAM_NONE },
|
||||
{"CLK3" , 0x67, M_14420 | M_14421 , PARAM_NONE },
|
||||
{"U_CK8" , 0x68, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"U_CK4" , 0x69, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"U_CK2" , 0x6a, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"U_CK1" , 0x6c, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"MEN3N" , 0xa2, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"MEN3" , 0xa3, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"MEN2N" , 0xa6, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"MEN2" , 0xa7, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"M_RD" , 0xa8, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_HEX },
|
||||
{"M_WRS" , 0xb8, M_14400 | M_14420 | M_14421 , PARAM_HEX },
|
||||
{"A_ALAW" , 0xc3, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"A_DT" , 0xc4, M_14400 | M_14401 | M_14420 | M_14421 , PARAM_NONE },
|
||||
{"A_LIN" , 0xc8, M_14420 | M_14421 , PARAM_NONE },
|
||||
{"A_DT1" , 0xcd, M_14420 | M_14421 , PARAM_NONE },
|
||||
{"A_STRN" , 0xe0, M_14420 | M_14421 , PARAM_NONE },
|
||||
{"RCK_EXT" , 0x63, M_14420 | M_14421 , PARAM_HEX },
|
||||
{"P_SPD0" , 0xe8, M_14400 , PARAM_HEX },
|
||||
{"P_SPD1" , 0xe9, M_14400 , PARAM_HEX },
|
||||
{"P_SPD2" , 0xea, M_14400 , PARAM_HEX },
|
||||
{"P_SPD3" , 0xeb, M_14400 , PARAM_HEX },
|
||||
{"P_SPD4" , 0xec, M_14400 , PARAM_HEX },
|
||||
{"P_SPD5" , 0xed, M_14400 , PARAM_HEX },
|
||||
{"P_SPD6" , 0xee, M_14400 , PARAM_HEX },
|
||||
{"P_SPD7" , 0xef, M_14400 , PARAM_HEX },
|
||||
{"P_RPD0" , 0xe0, M_14400 , PARAM_HEX },
|
||||
{"P_RPD1" , 0xe1, M_14400 , PARAM_HEX },
|
||||
{"P_RPD2" , 0xe2, M_14400 , PARAM_HEX },
|
||||
{"P_RPD3" , 0xe3, M_14400 , PARAM_HEX },
|
||||
{"P_RPD4" , 0xe4, M_14400 , PARAM_HEX },
|
||||
{"P_RPD5" , 0xe5, M_14400 , PARAM_HEX },
|
||||
{"P_RPD6" , 0xe6, M_14400 , PARAM_HEX },
|
||||
{"P_RPD7" , 0xe7, M_14400 , PARAM_HEX },
|
||||
|
||||
/* aliases */
|
||||
|
||||
{"B_TX" , 0x31, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BT2" , 0x25, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BR2" , 0x2d, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BTP" , 0x35, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_BRP" , 0x3d, M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_HEX },
|
||||
{"B_ON" , 0x27, M_14400 | M_14401 | M_14402 | M_14404 | M_14405 | M_14420 | M_14421 | M_14422 | M_14424, PARAM_NONE },
|
||||
{NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
#endif /* DUMP_DIP_H */
|
Loading…
Reference in New Issue