Advertisement
NovaYoshi

6502.xml

Mar 25th, 2011
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 4.66 KB | None | 0 0
  1. <cpu name=6502 endian=Intel><!-- I'm almost certain I made a mistake somewhere -->
  2.   <arg id=BYT type=Constant max=$FF />
  3.   <arg id=ZPG type=AdrAbs   max=$FF />
  4.   <arg id=WRD type=AdrAbs   max=$FFFF />
  5.   <arg id=BRA type=RelPC    offset=2  min=-128  max=127 />
  6.   <arg id=AdMode type=AssMask shape=columns >
  7.                  "#~BYT~",      "IM",
  8.                  "(~BYT~},X)",  "IX",
  9.                  "(~BYT~),Y",   "IY",
  10.                  "~BYT~,X",     "ZX",
  11.                  "~BYT~,Y",     "ZY",
  12.                  "~BYT~",       "ZP",
  13.                  "~WRD~",       "AB",
  14.                  "~WRD~,X",     "AX",
  15.                  "~WRD~,Y",     "AY",
  16.                  "(~WRD~)",     "AI",
  17.                  "",            "NO",
  18.                  "~BRA~",       "BR",
  19.   </arg >
  20.   <arg id=MainOp type=OpMaskMatrix row=inline column=AdMode >
  21.                     ---, "IM","ZP","ZX","ZY","AB","AX","AY","IY","IX","NO","AI"
  22.                   "ADC", $69, $65, $75, ---, $6D, $7D, $79, $71, $61, ---, ---
  23.                   "AND", $29, $25, $35, ---, $2D, $3D, $39, $31, $21, ---, ---
  24.                   "CMP", $C9, $C5, $D5, ---, $CD, $DD, $D9, $D1, $C1, ---, ---
  25.                   "EOR", $49, $45, $55, ---, $4D, $5D, $59, $51, $41, ---, ---
  26.                   "ORA", $09, $05, $15, ---, $0D, $1D, $19, $11, $01, ---, ---
  27.                   "SBC", $E9, $E5, $F5, ---, $ED, $FD, $F9, $F1, $E1, ---, ---
  28.                   "LDA", $A9, $A5, $B5, ---, $AD, $BD, $B9, $B1, $A1, ---, ---
  29.                   "STA", ---, $85, $95, ---, $8D, $9D, $99, $91, $81, ---, ---
  30.                   "STX", ---, $86, ---, $96, $8E, ---, ---, ---, ---, ---, ---
  31.                   "STY", ---, $84, $94, ---, $8C, ---, ---, ---, ---, ---, ---
  32.                   "ASL", ---, $06, $16, ---, $0E, $1E  ---, ---, ---, ---, ---
  33.                   "LSR", ---, $46, $56, ---, $4E, $5E, ---, ---, ---, $0A, ---
  34.                   "ASR", ---, $44, $54, ---, ---, ---, ---, ---, ---, $43, ---
  35.                   "ROL", ---, $26, $36, ---, $2E, $3E, ---, ---, ---, $2A, ---
  36.                   "ROR", ---, $66, $76, ---, $6E, $7E, ---, ---, ---, $6A, ---
  37.                   "BIT", ---, $24, $34, ---, $2C, $3C, ---, ---, ---, ---, ---
  38.                   "INC", $E6, $F6, $EE, ---, $FE, ---, ---, ---, ---, $1A, ---
  39.                   "DEC", $C6, $D6, $CE, ---, $DE, ---, ---, ---, ---, $3A, ---
  40.                   "LDX", $A2, $A6, ---, $B6, $AE, ---, $BE, ---, ---, ---, ---
  41.                   "LDY", $A0, $A4, $B4, ---, $AC, $BC, ---, ---, ---, ---, ---
  42.                   "LDZ", $A3, ---, ---, ---, $AB, $BB, ---, ---, ---, ---, ---
  43.                   "CPX", $E0, $E4, ---, ---, $EC, ---, ---, ---, ---, ---, ---
  44.                   "CPY", $C0, $C4, ---, ---, $CC, ---, ---, ---, ---, ---, ---
  45.                   "JMP", ---, ---, ---, ---, $4C, ---, ---, ---, ---, ---, $6C
  46.                   "JSR", ---, ---, ---, ---, $20, ---, ---, ---, ---, ---, ---
  47.   </arg >
  48.   <arg id=BranchOp type=AssCode shape=columns >
  49.                   "BCC", $90,
  50.                   "BCS", $B0,
  51.                   "BEQ", $F0,
  52.                   "BNE", $D0,
  53.                   "BMI", $30,
  54.                   "BPL", $10,
  55.                   "BRA", $80,
  56.                   "BVC", $50,
  57.                   "BVS", $70,
  58.   </arg >
  59.   <arg id=Implied type=AssCode shape=row:row >
  60.                   "BRK","CLC","CLD","CLI","CLV","NEG","NOP","PHA","PHP",
  61.                    $00,  $18,  $D8,  $58,  $B8,  $42,  $EA,  $48,  $08,
  62.                   "PLA","PLP","RTI","SEC","SED","SEI","RTS",
  63.                    $68,  $28,  $40,  $38,  $F8,  $78,  $60,
  64.                   "DEX","DEY","INX","INY","TAX","TAY","TSX","TXA","TXS","TYA",
  65.                    $CA,  $88,  $E8,  $C8,  $AA,  $A8,  $BA,  $8A,  $9A,  $98,
  66.   </arg >
  67.   <arg id=JustByte type=AnyOfThese >
  68.                  "#~BYT~",      "IM",
  69.                  "(~BYT~},X)",  "IX",
  70.                  "(~BYT~),Y",   "IY",
  71.                  "~BYT~,X",     "ZX",
  72.                  "~BYT~,Y",     "ZY",
  73.                  "~BYT~",       "ZP",
  74.   </arg>
  75.   <arg id=JustWord type=AnyOfThese>
  76.                  "~WRD~",       "AB",
  77.                  "~WRD~,X",     "AX",
  78.                  "~WRD~,Y",     "AY",
  79.                  "(~WRD~)",     "AI",
  80.   </arg>
  81.   <opc mask="~AnyIn(Implied)~" >
  82.     out 8, Picked(Implied);
  83.   </opc >
  84.   <opc mask="~ThatSupports(MainOp, Row, JustByte)[Op]~ ~AnyIn(JustByte)~ " >
  85.     out 8, InMatrix(Picked(JustByte),[Op]); out 8, Picked(JustByte).BYT;
  86.   </opc >
  87.   <opc mask="~ThatSupports(MainOp, Row, JustWord)[Op]~ ~AnyIn(JustWord)~ " >
  88.     out 8, InMatrix(Picked(JustWord),[Op]); out 16, Picked(JustWord).BYT;
  89.   </opc >
  90.   <opc mask="~AnyIn(BranchOp)~ ~BRA~" >
  91.     out 8, Picked(BranchOp); out 8, BRA;
  92.   </opc >
  93.  
  94. </cpu >
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement