Commit f0d47100 authored by Sergio Costas's avatar Sergio Costas

Fixed the codes

parent ba35952c
......@@ -19,8 +19,8 @@
#include "Z80free.h"
int Z80free_codes (Z80FREE *processor,uint8_t opcode) {
static uint8_t tmp1;
int Z80free_codes (Z80FREE *processor, uint8_t opcode) {
static uint8_t tmp1;
static uint16_t tmp2;
switch (opcode) {
......@@ -267,7 +267,7 @@ int Z80free_codes (Z80FREE *processor,uint8_t opcode) {
return (11);
break;
case 54: // LD (HL),n
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,Z80free_read_param_8(processor));
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_read_param_8(processor));
return (10);
break;
case 55: // SCF
......@@ -509,27 +509,27 @@ int Z80free_codes (Z80FREE *processor,uint8_t opcode) {
return (4);
break;
case 112: // LD (HL),B
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,processor->Rm.br.B);
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, processor->Rm.br.B);
return (7);
break;
case 113: // LD (HL),C
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,processor->Rm.br.C);
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, processor->Rm.br.C);
return (7);
break;
case 114: // LD (HL),D
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,processor->Rm.br.D);
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, processor->Rm.br.D);
return (7);
break;
case 115: // LD (HL),E
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,processor->Rm.br.E);
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, processor->Rm.br.E);
return (7);
break;
case 116: // LD (HL),H
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,processor->Rm.br.H);
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, processor->Rm.br.H);
return (7);
break;
case 117: // LD (HL),L
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,processor->Rm.br.L);
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, processor->Rm.br.L);
return (7);
break;
case 118: // HALT
......@@ -538,7 +538,7 @@ int Z80free_codes (Z80FREE *processor,uint8_t opcode) {
return (4);
break;
case 119: // LD (HL),A
Z80free_Wr_Internal(processor, processor->Rm.wr.HL,processor->Rm.br.A);
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, processor->Rm.br.A);
return (7);
break;
case 120: // LD A,B
......@@ -963,7 +963,7 @@ int Z80free_codes (Z80FREE *processor,uint8_t opcode) {
break;
case 211: // OUT n,A
tmp1 = processor->Rm.br.A;
tmp2 = ((uint16_t)tmp1) << 8;
tmp2 = ((uint16_t) tmp1) << 8;
Z80free_Out_Internal(processor, tmp2 + ((uint16_t)Z80free_read_param_8(processor)), tmp1);
return (11);
break;
......@@ -1020,7 +1020,7 @@ int Z80free_codes (Z80FREE *processor,uint8_t opcode) {
}
break;
case 219: // IN A,n
tmp2 = ((uint16_t)processor->Rm.br.A) << 8;
tmp2 = ((uint16_t) processor->Rm.br.A) << 8;
processor->Rm.br.A = Z80free_In_Internal(processor, tmp2 + ((uint16_t)Z80free_read_param_8(processor)));
return (11);
break;
......
......@@ -19,1283 +19,1029 @@
#include "Z80free.h"
int Z80free_codesCB(Z80FREE *processor, uint8_t opcode) {
int Z80free_codesCB (Z80FREE *processor, uint8_t opcode) {
switch (opcode) {
case 0: // RLC B
processor->Rm.br.B = Z80free_doRLC(processor, 1, processor->Rm.br.B);
return (4);
break;
case 1: // RLC C
processor->Rm.br.C = Z80free_doRLC(processor, 1, processor->Rm.br.C);
return (4);
break;
case 2: // RLC D
processor->Rm.br.D = Z80free_doRLC(processor, 1, processor->Rm.br.D);
return (4);
break;
case 3: // RLC E
processor->Rm.br.E = Z80free_doRLC(processor, 1, processor->Rm.br.E);
return (4);
break;
case 4: // RLC H
processor->Rm.br.H = Z80free_doRLC(processor, 1, processor->Rm.br.H);
return (4);
break;
case 5: // RLC L
processor->Rm.br.L = Z80free_doRLC(processor, 1, processor->Rm.br.L);
return (4);
break;
case 6: // RLC b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doRLC(processor, 1, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 7: // RLC A
processor->Rm.br.A = Z80free_doRLC(processor, 1, processor->Rm.br.A);
return (4);
break;
case 8: // RRC B
processor->Rm.br.B = Z80free_doRRC(processor, 1, processor->Rm.br.B);
return (4);
break;
case 9: // RRC C
processor->Rm.br.C = Z80free_doRRC(processor, 1, processor->Rm.br.C);
return (4);
break;
case 10: // RRC D
processor->Rm.br.D = Z80free_doRRC(processor, 1, processor->Rm.br.D);
return (4);
break;
case 11: // RRC E
processor->Rm.br.E = Z80free_doRRC(processor, 1, processor->Rm.br.E);
return (4);
break;
case 12: // RRC H
processor->Rm.br.H = Z80free_doRRC(processor, 1, processor->Rm.br.H);
return (4);
break;
case 13: // RRC L
processor->Rm.br.L = Z80free_doRRC(processor, 1, processor->Rm.br.L);
return (4);
break;
case 14: // RRC b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doRRC(processor, 1, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 15: // RRC A
processor->Rm.br.A = Z80free_doRRC(processor, 1, processor->Rm.br.A);
return (4);
break;
case 16: // RL B
processor->Rm.br.B = Z80free_doRL(processor, 1, processor->Rm.br.B);
return (4);
break;
case 17: // RL C
processor->Rm.br.C = Z80free_doRL(processor, 1, processor->Rm.br.C);
return (4);
break;
case 18: // RL D
processor->Rm.br.D = Z80free_doRL(processor, 1, processor->Rm.br.D);
return (4);
break;
case 19: // RL E
processor->Rm.br.E = Z80free_doRL(processor, 1, processor->Rm.br.E);
return (4);
break;
case 20: // RL H
processor->Rm.br.H = Z80free_doRL(processor, 1, processor->Rm.br.H);
return (4);
break;
case 21: // RL L
processor->Rm.br.L = Z80free_doRL(processor, 1, processor->Rm.br.L);
return (4);
break;
case 22: // RL b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doRL(processor, 1, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 23: // RL A
processor->Rm.br.A = Z80free_doRL(processor, 1, processor->Rm.br.A);
return (4);
break;
case 24: // RR B
processor->Rm.br.B = Z80free_doRR(processor, 1, processor->Rm.br.B);
return (4);
break;
case 25: // RR C
processor->Rm.br.C = Z80free_doRR(processor, 1, processor->Rm.br.C);
return (4);
break;
case 26: // RR D
processor->Rm.br.D = Z80free_doRR(processor, 1, processor->Rm.br.D);
return (4);
break;
case 27: // RR E
processor->Rm.br.E = Z80free_doRR(processor, 1, processor->Rm.br.E);
return (4);
break;
case 28: // RR H
processor->Rm.br.H = Z80free_doRR(processor, 1, processor->Rm.br.H);
return (4);
break;
case 29: // RR L
processor->Rm.br.L = Z80free_doRR(processor, 1, processor->Rm.br.L);
return (4);
break;
case 30: // RR b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doRR(processor, 1, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 31: // RR A
processor->Rm.br.A = Z80free_doRR(processor, 1, processor->Rm.br.A);
return (4);
break;
case 32: // SLA B
processor->Rm.br.B = Z80free_doSL(processor, 0, processor->Rm.br.B);
return (4);
break;
case 33: // SLA C
processor->Rm.br.C = Z80free_doSL(processor, 0, processor->Rm.br.C);
return (4);
break;
case 34: // SLA D
processor->Rm.br.D = Z80free_doSL(processor, 0, processor->Rm.br.D);
return (4);
break;
case 35: // SLA E
processor->Rm.br.E = Z80free_doSL(processor, 0, processor->Rm.br.E);
return (4);
break;
case 36: // SLA H
processor->Rm.br.H = Z80free_doSL(processor, 0, processor->Rm.br.H);
return (4);
break;
case 37: // SLA L
processor->Rm.br.L = Z80free_doSL(processor, 0, processor->Rm.br.L);
return (4);
break;
case 38: // SLA b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doSL(processor, 0, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 39: // SLA A
processor->Rm.br.A = Z80free_doSL(processor, 0, processor->Rm.br.A);
return (4);
break;
case 40: // SRA B
processor->Rm.br.B = Z80free_doSR(processor, 1, processor->Rm.br.B);
return (4);
break;
case 41: // SRA C
processor->Rm.br.C = Z80free_doSR(processor, 1, processor->Rm.br.C);
return (4);
break;
case 42: // SRA D
processor->Rm.br.D = Z80free_doSR(processor, 1, processor->Rm.br.D);
return (4);
break;
case 43: // SRA E
processor->Rm.br.E = Z80free_doSR(processor, 1, processor->Rm.br.E);
return (4);
break;
case 44: // SRA H
processor->Rm.br.H = Z80free_doSR(processor, 1, processor->Rm.br.H);
return (4);
break;
case 45: // SRA L
processor->Rm.br.L = Z80free_doSR(processor, 1, processor->Rm.br.L);
return (4);
break;
case 46: // SRA b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doSR(processor, 1, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 47: // SRA A
processor->Rm.br.A = Z80free_doSR(processor, 1, processor->Rm.br.A);
return (4);
break;
case 48: // SLL B
processor->Rm.br.B = Z80free_doSL(processor, 1, processor->Rm.br.B);
return (4);
break;
case 49: // SLL C
processor->Rm.br.C = Z80free_doSL(processor, 1, processor->Rm.br.C);
return (4);
break;
case 50: // SLL D
processor->Rm.br.D = Z80free_doSL(processor, 1, processor->Rm.br.D);
return (4);
break;
case 51: // SLL E
processor->Rm.br.E = Z80free_doSL(processor, 1, processor->Rm.br.E);
return (4);
break;
case 52: // SLL H
processor->Rm.br.H = Z80free_doSL(processor, 1, processor->Rm.br.H);
return (4);
break;
case 53: // SLL L
processor->Rm.br.L = Z80free_doSL(processor, 1, processor->Rm.br.L);
return (4);
break;
case 54: // SLL b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doSL(processor, 1, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 55: // SLL A
processor->Rm.br.A = Z80free_doSL(processor, 1, processor->Rm.br.A);
return (4);
break;
case 56: // SRL B
processor->Rm.br.B = Z80free_doSR(processor, 0, processor->Rm.br.B);
return (4);
break;
case 57: // SRL C
processor->Rm.br.C = Z80free_doSR(processor, 0, processor->Rm.br.C);
return (4);
break;
case 58: // SRL D
processor->Rm.br.D = Z80free_doSR(processor, 0, processor->Rm.br.D);
return (4);
break;
case 59: // SRL E
processor->Rm.br.E = Z80free_doSR(processor, 0, processor->Rm.br.E);
return (4);
break;
case 60: // SRL H
processor->Rm.br.H = Z80free_doSR(processor, 0, processor->Rm.br.H);
return (4);
break;
case 61: // SRL L
processor->Rm.br.L = Z80free_doSR(processor, 0, processor->Rm.br.L);
return (4);
break;
case 62: // SRL b(HL)
Z80free_Wr_Internal(processor, processor->Rm.wr.HL, Z80free_doSR(processor, 0, Z80free_Rd_Internal(processor, processor->Rm.wr.HL)));
return (11);
break;
case 63: // SRL A
processor->Rm.br.A = Z80free_doSR(processor, 0, processor->Rm.br.A);
return (4);
break;
case 64: // BIT 0,B
Z80free_doBIT(processor, 0, processor->Rm.br.B);
return (4);
break;
case 65: // BIT 0,C
Z80free_doBIT(processor, 0, processor->Rm.br.C);
return (4);
break;
case 66: // BIT 0,D
Z80free_doBIT(processor, 0, processor->Rm.br.D);
return (4);
break;
case 67: // BIT 0,E
Z80free_doBIT(processor, 0, processor->Rm.br.E);
return (4);
break;
case 68: // BIT 0,H
Z80free_doBIT(processor, 0, processor->Rm.br.H);
return (4);
break;
case 69: // BIT 0,L
Z80free_doBIT(processor, 0, processor->Rm.br.L);
return (4);
break;
case 70: // BIT 0,(HL)
Z80free_doBIT(processor, 0, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;
case 71: // BIT 0,A
Z80free_doBIT(processor, 0, processor->Rm.br.A);
return (4);
break;
case 72: // BIT 1,B
Z80free_doBIT(processor, 1, processor->Rm.br.B);
return (4);
break;
case 73: // BIT 1,C
Z80free_doBIT(processor, 1, processor->Rm.br.C);
return (4);
break;
case 74: // BIT 1,D
Z80free_doBIT(processor, 1, processor->Rm.br.D);
return (4);
break;
case 75: // BIT 1,E
Z80free_doBIT(processor, 1, processor->Rm.br.E);
return (4);
break;
case 76: // BIT 1,H
Z80free_doBIT(processor, 1, processor->Rm.br.H);
return (4);
break;
case 77: // BIT 1,L
Z80free_doBIT(processor, 1, processor->Rm.br.L);
return (4);
break;
case 78: // BIT 1,(HL)
Z80free_doBIT(processor, 1, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;
case 79: // BIT 1,A
Z80free_doBIT(processor, 1, processor->Rm.br.A);
return (4);
break;
case 80: // BIT 2,B
Z80free_doBIT(processor, 2, processor->Rm.br.B);
return (4);
break;
case 81: // BIT 2,C
Z80free_doBIT(processor, 2, processor->Rm.br.C);
return (4);
break;
case 82: // BIT 2,D
Z80free_doBIT(processor, 2, processor->Rm.br.D);
return (4);
break;
case 83: // BIT 2,E
Z80free_doBIT(processor, 2, processor->Rm.br.E);
return (4);
break;
case 84: // BIT 2,H
Z80free_doBIT(processor, 2, processor->Rm.br.H);
return (4);
break;
case 85: // BIT 2,L
Z80free_doBIT(processor, 2, processor->Rm.br.L);
return (4);
break;
case 86: // BIT 2,(HL)
Z80free_doBIT(processor, 2, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;
case 87: // BIT 2,A
Z80free_doBIT(processor, 2, processor->Rm.br.A);
return (4);
break;
case 88: // BIT 3,B
Z80free_doBIT(processor, 3, processor->Rm.br.B);
return (4);
break;
case 89: // BIT 3,C
Z80free_doBIT(processor, 3, processor->Rm.br.C);
return (4);
break;
case 90: // BIT 3,D
Z80free_doBIT(processor, 3, processor->Rm.br.D);
return (4);
break;
case 91: // BIT 3,E
Z80free_doBIT(processor, 3, processor->Rm.br.E);
return (4);
break;
case 92: // BIT 3,H
Z80free_doBIT(processor, 3, processor->Rm.br.H);
return (4);
break;
case 93: // BIT 3,L
Z80free_doBIT(processor, 3, processor->Rm.br.L);
return (4);
break;
case 94: // BIT 3,(HL)
Z80free_doBIT(processor, 3, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;
case 95: // BIT 3,A
Z80free_doBIT(processor, 3, processor->Rm.br.A);
return (4);
break;
case 96: // BIT 4,B
Z80free_doBIT(processor, 4, processor->Rm.br.B);
return (4);
break;
case 97: // BIT 4,C
Z80free_doBIT(processor, 4, processor->Rm.br.C);
return (4);
break;
case 98: // BIT 4,D
Z80free_doBIT(processor, 4, processor->Rm.br.D);
return (4);
break;
case 99: // BIT 4,E
Z80free_doBIT(processor, 4, processor->Rm.br.E);
return (4);
break;
case 100: // BIT 4,H
Z80free_doBIT(processor, 4, processor->Rm.br.H);
return (4);
break;
case 101: // BIT 4,L
Z80free_doBIT(processor, 4, processor->Rm.br.L);
return (4);
break;
case 102: // BIT 4,(HL)
Z80free_doBIT(processor, 4, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;
case 103: // BIT 4,A
Z80free_doBIT(processor, 4, processor->Rm.br.A);
return (4);
break;
case 104: // BIT 5,B
Z80free_doBIT(processor, 5, processor->Rm.br.B);
return (4);
break;
case 105: // BIT 5,C
Z80free_doBIT(processor, 5, processor->Rm.br.C);
return (4);
break;
case 106: // BIT 5,D
Z80free_doBIT(processor, 5, processor->Rm.br.D);
return (4);
break;
case 107: // BIT 5,E
Z80free_doBIT(processor, 5, processor->Rm.br.E);
return (4);
break;
case 108: // BIT 5,H
Z80free_doBIT(processor, 5, processor->Rm.br.H);
return (4);
break;
case 109: // BIT 5,L
Z80free_doBIT(processor, 5, processor->Rm.br.L);
return (4);
break;
case 110: // BIT 5,(HL)
Z80free_doBIT(processor, 5, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;
case 111: // BIT 5,A
Z80free_doBIT(processor, 5, processor->Rm.br.A);
return (4);
break;
case 112: // BIT 6,B
Z80free_doBIT(processor, 6, processor->Rm.br.B);
return (4);
break;
case 113: // BIT 6,C
Z80free_doBIT(processor, 6, processor->Rm.br.C);
return (4);
break;
case 114: // BIT 6,D
Z80free_doBIT(processor, 6, processor->Rm.br.D);
return (4);
break;
case 115: // BIT 6,E
Z80free_doBIT(processor, 6, processor->Rm.br.E);
return (4);
break;
case 116: // BIT 6,H
Z80free_doBIT(processor, 6, processor->Rm.br.H);
return (4);
break;
case 117: // BIT 6,L
Z80free_doBIT(processor, 6, processor->Rm.br.L);
return (4);
break;
case 118: // BIT 6,(HL)
Z80free_doBIT(processor, 6, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;
case 119: // BIT 6,A
Z80free_doBIT(processor, 6, processor->Rm.br.A);
return (4);
break;
case 120: // BIT 7,B
Z80free_doBIT(processor, 7, processor->Rm.br.B);
return (4);
break;
case 121: // BIT 7,C
Z80free_doBIT(processor, 7, processor->Rm.br.C);
return (4);
break;
case 122: // BIT 7,D
Z80free_doBIT(processor, 7, processor->Rm.br.D);
return (4);
break;
case 123: // BIT 7,E
Z80free_doBIT(processor, 7, processor->Rm.br.E);
return (4);
break;
case 124: // BIT 7,H
Z80free_doBIT(processor, 7, processor->Rm.br.H);
return (4);
break;
case 125: // BIT 7,L
Z80free_doBIT(processor, 7, processor->Rm.br.L);
return (4);
break;
case 126: // BIT 7,(HL)
Z80free_doBIT(processor, 7, Z80free_Rd_Internal(processor, processor->Rm.wr.HL));
return (8);
break;