|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: 6 T
Length: 4642 (0x1222)
Types: TextFile
Names: »6803_ops.h«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦this⟧ »EUUGD11/euug-87hel/sec1/asm/6803_ops.h«
#define BYTESPERLINE 3 /* # bytes per line on the listing */
#define SIGNED YES
#define SWAPPED YES
#define RELATIVE YES
opdclass o_reg = { 1, NO , NO, NO , 0};
opdclass o_smem = { 8, NO , NO, NO , 0};
opdclass o_rmem = { 8, SIGNED, NO, RELATIVE, -2};
opdclass o_mem = {16, NO , NO, NO , 0};
opdclass o_off = { 8, SIGNED, NO, NO , 0};
opdclass o_data = { 8, SIGNED, NO, NO , 0};
opdclass o_data2 = {16, SIGNED, NO, NO , 0};
opdclass o_cond = { 4, NO , NO, NO , 0};
insclass i_reg = {1, 1, &o_reg , &o_none, -4, 0};
insclass i_regp = {1, 1, &o_reg , &o_none, 0, 0};
insclass i_rimed = {2, 2, &o_reg , &o_data, -6, 8};
insclass i_rimd2 = {3, 2, &o_reg , &o_data2,-6, 16};
insclass i_rdir = {2, 2, &o_reg , &o_smem, -6, 8};
insclass i_rindx = {2, 2, &o_reg , &o_off , -6, 8};
insclass i_rxtd = {3, 2, &o_reg , &o_mem , -6,16};
insclass i_imed = {3, 1, &o_data2,&o_none, 16, 0};
insclass i_dir = {2, 1, &o_smem, &o_none, 8, 0};
insclass i_indx = {2, 1, &o_off , &o_none, 8, 0};
insclass i_xtd = {3, 1, &o_mem , &o_none, 16, 0};
insclass i_rel = {2, 1, &o_rmem, &o_none, 8, 0};
insclass i_cond = {2, 2, &o_cond, &o_rmem, 0, 8};
beginpattern c_cx
choicedef c_~1 = {"~1s", "~1z", ~2, 0, 0xff, NO};
endpattern
pattern c_cx,adc,2
pattern c_cx,add,2
pattern c_cx,and,2
pattern c_cx,bit,2
pattern c_cx,cmp,2
pattern c_cx,eor,2
pattern c_cx,lda,2
pattern c_cx,ldr,2
pattern c_cx,ora,2
pattern c_cx,sbc,2
pattern c_cx,sub,2
pattern c_cx,addd,1
pattern c_cx,ldd,1
pattern c_cx,std,1
pattern c_cx,sta,1
pattern c_cx,str,1
pattern c_cx,subd,1
pattern c_cx,jsr,1
pattern c_cx,cpx,1
beginpattern x_mem
"~1" , (insclass *)&c_~1, 0x00, choiceinstr,
"~1s" , &i_rdir , 0x90+0x~2, geninstr,
"~1i" , &i_rimed, 0x80+0x~2, geninstr,
"~1x" , &i_rindx, 0xa0+0x~2, geninstr,
"~1z" , &i_rxtd , 0xb0+0x~2, geninstr,
endpattern
beginpattern x_dou
"~1" , (insclass *)&c_~1, 0x00, choiceinstr,
"~1s" , &i_dir , 0x90+0x~2, geninstr,
"~1i" , &i_imed , 0x80+0x~2, geninstr,
"~1x" , &i_indx , 0xa0+0x~2, geninstr,
"~1z" , &i_xtd , 0xb0+0x~2, geninstr,
endpattern
beginpattern x_xreg
"~1" , (insclass *)&c_~1, 0x00, choiceinstr,
"~1s" , &i_rdir , 0x90+0x~2, geninstr,
"~1i" , &i_rimd2, 0x80+0x~2, geninstr,
"~1x" , &i_rindx, 0xa0+0x~2, geninstr,
"~1z" , &i_rxtd , 0xb0+0x~2, geninstr,
endpattern
beginpattern x_reg
"~1" , &i_xtd , 0x70+0x~2, geninstr,
"~1a" , &i_reg , 0x40+0x~2, geninstr,
"~1x" , &i_indx , 0x60+0x~2, geninstr,
endpattern
opdef optab[] = {
"abx" , &i_noopd, 0x3a, geninstr,
pattern x_mem,adc,9
pattern x_mem,add,b
pattern x_dou,addd,43
pattern x_mem,and,4
pattern x_reg,asl,8
pattern x_reg,asr,7
"bc" , &i_cond , 0x20, geninstr,
pattern x_mem,bit,5
"bra" , &i_rel , 0x20, geninstr,
"bsr" , &i_rel , 0x8d, geninstr,
"cli" , &i_noopd, 0x0e, geninstr,
pattern x_reg,clr,f
pattern x_mem,cmp,1
pattern x_reg,com,3
pattern x_dou,cpx,c
"daa" , &i_noopd, 0x19, geninstr,
pattern x_reg,dec,a
pattern x_mem,eor,8
pattern x_reg,inc,c
"jmpx" , &i_indx , 0x6e, geninstr,
"jmp" , &i_xtd , 0x7e, geninstr,
pattern x_dou,jsr,d
pattern x_mem,lda,6
pattern x_dou,ldd,4c
pattern x_xreg,ldr,e
pattern x_reg,lsl,5
pattern x_reg,lsr,4
"mul" , &i_noopd, 0x3d, geninstr,
pattern x_reg,neg,0
pattern x_mem,ora,a
pattern x_reg,rol,9
pattern x_reg,ror,6
"rti" , &i_noopd, 0x3b, geninstr,
"rts" , &i_noopd, 0x39, geninstr,
pattern x_mem,sbc,2
"sei" , &i_noopd, 0x0f, geninstr,
pattern x_mem,sta,7
pattern x_dou,std,4d
pattern x_xreg,str,f
pattern x_mem,sub,0
pattern x_dou,subd,3
"swi" , &i_noopd, 0x3f, geninstr,
pattern x_reg,tst,d
"" , &i_noopd, 0x00, geninstr
};
symbol predef[] = {
{"ra" , 0x0, &o_reg , (segmnt *)0 },
{"rb" , 0x1, &o_reg , (segmnt *)0 },
{"rx" , 0x1, &o_reg , (segmnt *)0 },
{"sp" , 0x0, &o_reg , (segmnt *)0 },
{"nz" , 0x6, &o_cond, (segmnt *)0 },
{"z" , 0x7, &o_cond, (segmnt *)0 },
{"ne" , 0x6, &o_cond, (segmnt *)0 },
{"eq" , 0x7, &o_cond, (segmnt *)0 },
{"nc" , 0x4, &o_cond, (segmnt *)0 },
{"c" , 0x5, &o_cond, (segmnt *)0 },
{"gez", 0xc, &o_cond, (segmnt *)0 },
{"gz" , 0xe, &o_cond, (segmnt *)0 },
{"gt" , 0x2, &o_cond, (segmnt *)0 },
{"lez", 0xf, &o_cond, (segmnt *)0 },
{"le" , 0x3, &o_cond, (segmnt *)0 },
{"lz" , 0xd, &o_cond, (segmnt *)0 },
{"m" , 0xb, &o_cond, (segmnt *)0 },
{"ov" , 0x9, &o_cond, (segmnt *)0 },
{"nov", 0x8, &o_cond, (segmnt *)0 },
{"p" , 0xa, &o_cond, (segmnt *)0 },
{"ge" , 0x4, &o_cond, (segmnt *)0 },
{"lt" , 0x5, &o_cond, (segmnt *)0 },
{"" , 0x0, &o_none, (segmnt *)0 },
};
void optional () {}