modified: source/pinport.c
modified: source/pinport.h -fixing bunch of compile errors and stupid mistakes. go to sleep and stop writing bad code...
This commit is contained in:
parent
ce2a5aecca
commit
47545169ee
|
|
@ -330,7 +330,7 @@ uint8_t pinport_opcode_8b_operand( uint8_t opcode, uint8_t operand )
|
||||||
//NES: ADDRX[7:0] -> EXP PORT [8:1]
|
//NES: ADDRX[7:0] -> EXP PORT [8:1]
|
||||||
//SNES: ADDRX[7:0] -> CPU A[23:16]
|
//SNES: ADDRX[7:0] -> CPU A[23:16]
|
||||||
case ADDRX_SET:
|
case ADDRX_SET:
|
||||||
_ADDRX_SET(operant);
|
_ADDRX_SET(operand);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//Set ADDR/DATA bus DDR registers with bit granularity
|
//Set ADDR/DATA bus DDR registers with bit granularity
|
||||||
|
|
@ -429,10 +429,11 @@ uint8_t pinport_opcode_16b_operand( uint8_t opcode, uint8_t operandMSB, uint8_t
|
||||||
// This is important for NES carts with on board CHR-ROM and VRAM for 4screen mirroring.
|
// This is important for NES carts with on board CHR-ROM and VRAM for 4screen mirroring.
|
||||||
case NPPU_ADDR_SET:
|
case NPPU_ADDR_SET:
|
||||||
ADDR_OUT = operandLSB;
|
ADDR_OUT = operandLSB;
|
||||||
// below PPU $2000, A13 clear, SET PPU /A13
|
if (operandMSB < 0x20) { // below PPU $2000, A13 clear, SET PPU /A13
|
||||||
if (operandMSB < 0x20) _ADDRH_SET(operandMSB & PPU_A13N);
|
_ADDRH_SET(operandMSB & PPU_A13N);
|
||||||
// above PPU $1FFF, A13 set, PPU /A13 already clear in operandMSB
|
} else { // above PPU $1FFF, A13 set, PPU /A13 already clear in operandMSB
|
||||||
else _ADDRH_SET(operandMSB);
|
_ADDRH_SET(operandMSB);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
@ -473,10 +474,10 @@ uint8_t pinport_opcode_24b_operand( uint8_t opcode, uint8_t operandMSB, uint8_t
|
||||||
ADDR_OUT = operandLSB;
|
ADDR_OUT = operandLSB;
|
||||||
_DATA_OP();
|
_DATA_OP();
|
||||||
DATA_OUT = operandMID;
|
DATA_OUT = operandMID;
|
||||||
_CLK_AHL();
|
_AHL_CLK();
|
||||||
DATA_OUT = operandMSB;
|
DATA_OUT = operandMSB;
|
||||||
_CLK_AXL();
|
_AXL_CLK();
|
||||||
DATA_IP();
|
_DATA_IP();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
@ -505,46 +506,58 @@ uint8_t pinport_opcode_8b_return( uint8_t opcode, uint8_t *rvalue )
|
||||||
//READ MCU I/O PORT INPUT 'PIN' REGISTERS
|
//READ MCU I/O PORT INPUT 'PIN' REGISTERS
|
||||||
//ADDR[7:0] PINA
|
//ADDR[7:0] PINA
|
||||||
case ADDR_RD:
|
case ADDR_RD:
|
||||||
rvalue = ADDR_IN;
|
*rvalue = ADDR_IN;
|
||||||
|
break;
|
||||||
//DATA[7:0] PINB
|
//DATA[7:0] PINB
|
||||||
case DATA_RD:
|
case DATA_RD:
|
||||||
rvalue = DATA_IN;
|
*rvalue = DATA_IN;
|
||||||
|
break;
|
||||||
//CTL PINC
|
//CTL PINC
|
||||||
case CTL_RD:
|
case CTL_RD:
|
||||||
rvalue = CTL_IN;
|
*rvalue = CTL_IN;
|
||||||
|
break;
|
||||||
//AUX PIND
|
//AUX PIND
|
||||||
case AUX_RD:
|
case AUX_RD:
|
||||||
rvalue = AUX_IN;
|
*rvalue = AUX_IN;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
//READ MCU I/O PORT OUTPUT 'PORT' REGISTERS
|
//READ MCU I/O PORT OUTPUT 'PORT' REGISTERS
|
||||||
//ADDR[7:0] PORTA
|
//ADDR[7:0] PORTA
|
||||||
case ADDR_PORT_RD:
|
case ADDR_PORT_RD:
|
||||||
rvalue = ADDR_OUT;
|
*rvalue = ADDR_OUT;
|
||||||
|
break;
|
||||||
//DATA[7:0] PORTB
|
//DATA[7:0] PORTB
|
||||||
case DATA_PORT_RD:
|
case DATA_PORT_RD:
|
||||||
rvalue = DATA_OUT;
|
*rvalue = DATA_OUT;
|
||||||
|
break;
|
||||||
//CTL PORTC
|
//CTL PORTC
|
||||||
case CTL_PORT_RD:
|
case CTL_PORT_RD:
|
||||||
rvalue = CTL_OUT;
|
*rvalue = CTL_OUT;
|
||||||
|
break;
|
||||||
//AUX PORTD
|
//AUX PORTD
|
||||||
case AUX_PORT_RD:
|
case AUX_PORT_RD:
|
||||||
rvalue = AUX_OUT;
|
*rvalue = AUX_OUT;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
//READ MCU I/O PORT DIRECTION 'DDR' REGISTERS
|
//READ MCU I/O PORT DIRECTION 'DDR' REGISTERS
|
||||||
//ADDR[7:0] DDRA
|
//ADDR[7:0] DDRA
|
||||||
case ADDR_DDR_RD:
|
case ADDR_DDR_RD:
|
||||||
rvalue = ADDR_DDR;
|
*rvalue = ADDR_DDR;
|
||||||
|
break;
|
||||||
//DATA[7:0] DDRB
|
//DATA[7:0] DDRB
|
||||||
case DATA_DDR_RD:
|
case DATA_DDR_RD:
|
||||||
rvalue = DATA_DDR:
|
*rvalue = DATA_DDR;
|
||||||
|
break;
|
||||||
//CTL DDRC
|
//CTL DDRC
|
||||||
case CTL_DDR_RD:
|
case CTL_DDR_RD:
|
||||||
rvalue = CTL_DDR;
|
*rvalue = CTL_DDR;
|
||||||
|
break;
|
||||||
//AUX DDRD
|
//AUX DDRD
|
||||||
case AUX_DDR_RD:
|
case AUX_DDR_RD:
|
||||||
rvalue = AUX_DDR;
|
*rvalue = AUX_DDR;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
//macro doesn't exist
|
//macro doesn't exist
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,9 @@
|
||||||
|
|
||||||
uint8_t pinport_opcode_only( uint8_t opcode );
|
uint8_t pinport_opcode_only( uint8_t opcode );
|
||||||
uint8_t pinport_opcode_8b_operand( uint8_t opcode, uint8_t operand );
|
uint8_t pinport_opcode_8b_operand( uint8_t opcode, uint8_t operand );
|
||||||
uint8_t pinport_opcode_16b_operand( uint8_t opcode, uint8_t operandMSB, uint8_t operandLSB )
|
uint8_t pinport_opcode_16b_operand( uint8_t opcode, uint8_t operandMSB, uint8_t operandLSB );
|
||||||
uint8_t pinport_opcode_24b_operand( uint8_t opcode, uint8_t operandMSB, uint8_t operandMID, uint8_t operandLSB )
|
uint8_t pinport_opcode_24b_operand( uint8_t opcode, uint8_t operandMSB, uint8_t operandMID, uint8_t operandLSB );
|
||||||
|
uint8_t pinport_opcode_8b_return( uint8_t opcode, uint8_t *rvalue );
|
||||||
void software_AHL_CLK();
|
void software_AHL_CLK();
|
||||||
void software_AXL_CLK();
|
void software_AXL_CLK();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue