summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2015-12-30 08:18:51 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2015-12-30 08:18:51 +0100
commit4afd75e2fd0fc40ae0e47ab6063e6228cd7eaabe (patch)
treea30d36789b6148002e09f8e65ff6266e21790396 /src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp
parent3b0d814b9b9f890eb2ca1edc3f37c775be76ea88 (diff)
Cleanups and version bumpmame0169
Diffstat (limited to 'src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp')
-rw-r--r--src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp308
1 files changed, 154 insertions, 154 deletions
diff --git a/src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp b/src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp
index ac78ef4be73..f2f2899af6e 100644
--- a/src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp
+++ b/src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp
@@ -5,161 +5,161 @@
CPU_DISASSEMBLE( patinho_feio )
{
- int addr, value, n, f;
+ int addr, value, n, f;
- switch (oprom[0] & 0xF0)
- {
- case 0x00:
- //PLA = "Pula": Unconditionally JUMP to effective address
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "PLA /%03X", addr);
- return 2;
- case 0x10:
- //PLAX = "Pulo indexado": Unconditionally JUMP to indexed address
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "PLAX (IDX) + /%03X", addr);
- return 2;
- case 0x20:
- //ARM = "Armazena": Stores the contents of the
- // accumulator in the given 12bit address
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- if (addr==0){
- sprintf (buffer, "ARM (IDX)");
- }else{
- sprintf (buffer, "ARM /%03X", addr);
- }
- return 2;
- case 0x30:
- //ARMX = "Armazenamento indexado": Stores the contents of the accumulator in the
- // given 12bit address (indexed by IDX)
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "ARMX (IDX) + /%03X", addr);
- return 2;
- case 0x40:
- //CAR = "Carrega": Loads the contents of the given 12bit address
- // into the accumulator
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- if (addr==0){
- sprintf (buffer, "CAR (IDX)");
- }else{
- sprintf (buffer, "CAR /%03X", addr);
- }
- return 2;
- case 0x50:
- //CARX = "Carga indexada": Loads the contents of the given 12bit address
- // (indexed by IDX) into the accumulator
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "CARX (IDX) + /%03X", addr);
- return 2;
- case 0x60:
- //SOM = "Soma": Adds the contents of the given 12bit address
- // into the accumulator
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "SOM /%03X", addr);
- return 2;
- case 0x70:
- //SOMX = "Soma indexada": Adds the contents of the given 12bit address
- // (indexed by IDX) into the accumulator
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "SOMX (IDX) + /%03X", addr);
- return 2;
- case 0xA0:
- //PLAN = "Pula se ACC for negativo": Jumps to the 12bit address
- // if the accumulator is negative
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "PLAN /%03X", addr);
- return 2;
- case 0xB0:
- //PLAZ = "Pula se ACC for zero": Jumps to the 12bit address
- // if the accumulator is zero
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "PLAZ /%03X", addr);
- return 2;
- case 0xC0:
- n = (oprom[0] & 0x0F);
- f = (oprom[1] & 0x0F);
- n+= (n < 10) ? '0' : 'A'-10;
- f+= (f < 10) ? '0' : 'A'-10;
- switch(oprom[1] & 0xF0)
- {
- case 0x10: sprintf (buffer, "FNC /%c%c", n, f); return 2;
- case 0x20: sprintf (buffer, "SAL /%c%c", n, f); return 2;
- case 0x40: sprintf (buffer, "ENTR /%c0", n); return 2;
- case 0x80: sprintf (buffer, "SAI /%c0", n); return 2;
- }
- break;
- case 0xD0:
- value = oprom[1] & 0x0F;
- switch (oprom[0] & 0x0F)
- {
- case 0x01:
- switch (oprom[1] & 0xF0)
- {
- case 0x00: sprintf (buffer, "DD /%01X", value); return 2; //DD = "Deslocamento para a direita": Shift right
- case 0x10: sprintf (buffer, "DDV /%01X", value); return 2; //DDV = "Deslocamento para a direita c/ V": Shift right with carry
- case 0x20: sprintf (buffer, "GD /%01X", value); return 2; //GD = "Giro para a direita": Rotate right
- case 0x30: sprintf (buffer, "GDV /%01X", value); return 2; //GDV = "Giro para a direita c/ V": Rotate right with carry
- case 0x40: sprintf (buffer, "DE /%01X", value); return 2; //DE = "Deslocamento para a esquerda": Shift right
- case 0x50: sprintf (buffer, "DEV /%01X", value); return 2; //DEV = "Deslocamento para a esquerda c/ V": Shift right with carry
- case 0x60: sprintf (buffer, "GE /%01X", value); return 2; //GE = "Giro para a esquerda": Rotate right
- case 0x70: sprintf (buffer, "GEV /%01X", value); return 2; //GEV = "Giro para a esquerda c/ V": Rotate right with carry
- case 0x80: sprintf (buffer, "DDS /%01X", value); return 2; //DDS = "Deslocamento para a direita com duplicacao de sinal": Shift right with sign duplication
- }
- break;
- case 0x02: sprintf (buffer, "XOR /%02X", oprom[1]); return 2; //Logical XOR
- case 0x04: sprintf (buffer, "NAND /%02X", oprom[1]); return 2; //Logical NAND
- case 0x08: sprintf (buffer, "SOMI /%02X", oprom[1]); return 2; //SOMI = "Soma imediata": Add immediate value into accumulator
- case 0x0A: sprintf (buffer, "CARI /%02X", oprom[1]); return 2; //CARI = "Carrega imediato": Loads an immediate value into the accumulator
- }
- break;
- case 0xE0:
- //SUS = "Subtrai um ou salta"
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "SUS /%03X", addr);
- return 2;
- case 0xF0:
- //PUG = "Pula e guarda"
- addr = (oprom[0] & 0x0F) << 8 | oprom[1];
- sprintf (buffer, "PUG /%03X", addr);
- return 2;
- }
+ switch (oprom[0] & 0xF0)
+ {
+ case 0x00:
+ //PLA = "Pula": Unconditionally JUMP to effective address
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "PLA /%03X", addr);
+ return 2;
+ case 0x10:
+ //PLAX = "Pulo indexado": Unconditionally JUMP to indexed address
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "PLAX (IDX) + /%03X", addr);
+ return 2;
+ case 0x20:
+ //ARM = "Armazena": Stores the contents of the
+ // accumulator in the given 12bit address
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ if (addr==0){
+ sprintf (buffer, "ARM (IDX)");
+ }else{
+ sprintf (buffer, "ARM /%03X", addr);
+ }
+ return 2;
+ case 0x30:
+ //ARMX = "Armazenamento indexado": Stores the contents of the accumulator in the
+ // given 12bit address (indexed by IDX)
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "ARMX (IDX) + /%03X", addr);
+ return 2;
+ case 0x40:
+ //CAR = "Carrega": Loads the contents of the given 12bit address
+ // into the accumulator
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ if (addr==0){
+ sprintf (buffer, "CAR (IDX)");
+ }else{
+ sprintf (buffer, "CAR /%03X", addr);
+ }
+ return 2;
+ case 0x50:
+ //CARX = "Carga indexada": Loads the contents of the given 12bit address
+ // (indexed by IDX) into the accumulator
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "CARX (IDX) + /%03X", addr);
+ return 2;
+ case 0x60:
+ //SOM = "Soma": Adds the contents of the given 12bit address
+ // into the accumulator
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "SOM /%03X", addr);
+ return 2;
+ case 0x70:
+ //SOMX = "Soma indexada": Adds the contents of the given 12bit address
+ // (indexed by IDX) into the accumulator
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "SOMX (IDX) + /%03X", addr);
+ return 2;
+ case 0xA0:
+ //PLAN = "Pula se ACC for negativo": Jumps to the 12bit address
+ // if the accumulator is negative
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "PLAN /%03X", addr);
+ return 2;
+ case 0xB0:
+ //PLAZ = "Pula se ACC for zero": Jumps to the 12bit address
+ // if the accumulator is zero
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "PLAZ /%03X", addr);
+ return 2;
+ case 0xC0:
+ n = (oprom[0] & 0x0F);
+ f = (oprom[1] & 0x0F);
+ n+= (n < 10) ? '0' : 'A'-10;
+ f+= (f < 10) ? '0' : 'A'-10;
+ switch(oprom[1] & 0xF0)
+ {
+ case 0x10: sprintf (buffer, "FNC /%c%c", n, f); return 2;
+ case 0x20: sprintf (buffer, "SAL /%c%c", n, f); return 2;
+ case 0x40: sprintf (buffer, "ENTR /%c0", n); return 2;
+ case 0x80: sprintf (buffer, "SAI /%c0", n); return 2;
+ }
+ break;
+ case 0xD0:
+ value = oprom[1] & 0x0F;
+ switch (oprom[0] & 0x0F)
+ {
+ case 0x01:
+ switch (oprom[1] & 0xF0)
+ {
+ case 0x00: sprintf (buffer, "DD /%01X", value); return 2; //DD = "Deslocamento para a direita": Shift right
+ case 0x10: sprintf (buffer, "DDV /%01X", value); return 2; //DDV = "Deslocamento para a direita c/ V": Shift right with carry
+ case 0x20: sprintf (buffer, "GD /%01X", value); return 2; //GD = "Giro para a direita": Rotate right
+ case 0x30: sprintf (buffer, "GDV /%01X", value); return 2; //GDV = "Giro para a direita c/ V": Rotate right with carry
+ case 0x40: sprintf (buffer, "DE /%01X", value); return 2; //DE = "Deslocamento para a esquerda": Shift right
+ case 0x50: sprintf (buffer, "DEV /%01X", value); return 2; //DEV = "Deslocamento para a esquerda c/ V": Shift right with carry
+ case 0x60: sprintf (buffer, "GE /%01X", value); return 2; //GE = "Giro para a esquerda": Rotate right
+ case 0x70: sprintf (buffer, "GEV /%01X", value); return 2; //GEV = "Giro para a esquerda c/ V": Rotate right with carry
+ case 0x80: sprintf (buffer, "DDS /%01X", value); return 2; //DDS = "Deslocamento para a direita com duplicacao de sinal": Shift right with sign duplication
+ }
+ break;
+ case 0x02: sprintf (buffer, "XOR /%02X", oprom[1]); return 2; //Logical XOR
+ case 0x04: sprintf (buffer, "NAND /%02X", oprom[1]); return 2; //Logical NAND
+ case 0x08: sprintf (buffer, "SOMI /%02X", oprom[1]); return 2; //SOMI = "Soma imediata": Add immediate value into accumulator
+ case 0x0A: sprintf (buffer, "CARI /%02X", oprom[1]); return 2; //CARI = "Carrega imediato": Loads an immediate value into the accumulator
+ }
+ break;
+ case 0xE0:
+ //SUS = "Subtrai um ou salta"
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "SUS /%03X", addr);
+ return 2;
+ case 0xF0:
+ //PUG = "Pula e guarda"
+ addr = (oprom[0] & 0x0F) << 8 | oprom[1];
+ sprintf (buffer, "PUG /%03X", addr);
+ return 2;
+ }
- switch (oprom[0])
- {
- case 0x80: sprintf (buffer, "LIMPO"); return 1;
- case 0x81: sprintf (buffer, "UM"); return 1;
- case 0x82: sprintf (buffer, "CMP1"); return 1;
- case 0x83: sprintf (buffer, "CMP2"); return 1;
- case 0x84: sprintf (buffer, "LIN"); return 1;
- case 0x85: sprintf (buffer, "INC"); return 1;
- case 0x86: sprintf (buffer, "UNEG"); return 1;
- case 0x87: sprintf (buffer, "LIMP1"); return 1;
- case 0x88: sprintf (buffer, "PNL 0"); return 1;
- case 0x89: sprintf (buffer, "PNL 1"); return 1;
- case 0x8A: sprintf (buffer, "PNL 2"); return 1;
- case 0x8B: sprintf (buffer, "PNL 3"); return 1;
- case 0x8C: sprintf (buffer, "PNL 4"); return 1;
- case 0x8D: sprintf (buffer, "PNL 5"); return 1;
- case 0x8E: sprintf (buffer, "PNL 6"); return 1;
- case 0x8F: sprintf (buffer, "PNL 7"); return 1;
- case 0x90: sprintf (buffer, "ST 0"); return 1;
- case 0x91: sprintf (buffer, "STM 0"); return 1;
- case 0x92: sprintf (buffer, "ST 1"); return 1;
- case 0x93: sprintf (buffer, "STM 1"); return 1;
- case 0x94: sprintf (buffer, "SV 0"); return 1;
- case 0x95: sprintf (buffer, "SVM 0"); return 1;
- case 0x96: sprintf (buffer, "SV 1"); return 1;
- case 0x97: sprintf (buffer, "SVM 1"); return 1;
- case 0x98: sprintf (buffer, "PUL"); return 1;
- case 0x99: sprintf (buffer, "TRE"); return 1;
- case 0x9A: sprintf (buffer, "INIB"); return 1;
- case 0x9B: sprintf (buffer, "PERM"); return 1;
- case 0x9C: sprintf (buffer, "ESP"); return 1;
- case 0x9D: sprintf (buffer, "PARE"); return 1;
- case 0x9E: sprintf (buffer, "TRI"); return 1;
- case 0x9F: sprintf (buffer, "IND"); return 1;
- }
+ switch (oprom[0])
+ {
+ case 0x80: sprintf (buffer, "LIMPO"); return 1;
+ case 0x81: sprintf (buffer, "UM"); return 1;
+ case 0x82: sprintf (buffer, "CMP1"); return 1;
+ case 0x83: sprintf (buffer, "CMP2"); return 1;
+ case 0x84: sprintf (buffer, "LIN"); return 1;
+ case 0x85: sprintf (buffer, "INC"); return 1;
+ case 0x86: sprintf (buffer, "UNEG"); return 1;
+ case 0x87: sprintf (buffer, "LIMP1"); return 1;
+ case 0x88: sprintf (buffer, "PNL 0"); return 1;
+ case 0x89: sprintf (buffer, "PNL 1"); return 1;
+ case 0x8A: sprintf (buffer, "PNL 2"); return 1;
+ case 0x8B: sprintf (buffer, "PNL 3"); return 1;
+ case 0x8C: sprintf (buffer, "PNL 4"); return 1;
+ case 0x8D: sprintf (buffer, "PNL 5"); return 1;
+ case 0x8E: sprintf (buffer, "PNL 6"); return 1;
+ case 0x8F: sprintf (buffer, "PNL 7"); return 1;
+ case 0x90: sprintf (buffer, "ST 0"); return 1;
+ case 0x91: sprintf (buffer, "STM 0"); return 1;
+ case 0x92: sprintf (buffer, "ST 1"); return 1;
+ case 0x93: sprintf (buffer, "STM 1"); return 1;
+ case 0x94: sprintf (buffer, "SV 0"); return 1;
+ case 0x95: sprintf (buffer, "SVM 0"); return 1;
+ case 0x96: sprintf (buffer, "SV 1"); return 1;
+ case 0x97: sprintf (buffer, "SVM 1"); return 1;
+ case 0x98: sprintf (buffer, "PUL"); return 1;
+ case 0x99: sprintf (buffer, "TRE"); return 1;
+ case 0x9A: sprintf (buffer, "INIB"); return 1;
+ case 0x9B: sprintf (buffer, "PERM"); return 1;
+ case 0x9C: sprintf (buffer, "ESP"); return 1;
+ case 0x9D: sprintf (buffer, "PARE"); return 1;
+ case 0x9E: sprintf (buffer, "TRI"); return 1;
+ case 0x9F: sprintf (buffer, "IND"); return 1;
+ }
- sprintf (buffer, "illegal instruction");
- return 1;
+ sprintf (buffer, "illegal instruction");
+ return 1;
}