Committing some edits made awhile ago that look legit.

Need to get things rolling again with this project!!!
This commit is contained in:
paul eeepc 2017-01-29 17:47:29 -06:00
parent 4b0c340eb1
commit d1aacecd6c
4 changed files with 41 additions and 26 deletions

View File

@ -44,8 +44,10 @@ uint8_t * operation_usb_call( setup_packet *spacket, uint8_t *rv, uint8_t *rlen)
return rptr; return rptr;
} }
read_funcptr decode_rdfunc_num( uint8_t func_num ) { read_funcptr decode_rdfunc_num(uint8_t dict, uint8_t func_num )
{
if ( dict == NES ) {
switch( func_num ) { switch( func_num ) {
case NES_CPU_RD: return nes_cpu_rd; case NES_CPU_RD: return nes_cpu_rd;
case NES_PPU_RD: return nes_ppu_rd; case NES_PPU_RD: return nes_ppu_rd;
@ -53,9 +55,15 @@ read_funcptr decode_rdfunc_num( uint8_t func_num ) {
default: default:
return (void*)~SUCCESS; return (void*)~SUCCESS;
} }
} else {
//dictionary not supported
return (void*)~SUCCESS;
}
} }
write_funcptr decode_wrfunc_num( uint8_t func_num ) { write_funcptr decode_wrfunc_num(uint8_t dict, uint8_t func_num )
{
if ( dict == NES ) {
switch( func_num ) { switch( func_num ) {
case DISCRETE_EXP0_PRGROM_WR: case DISCRETE_EXP0_PRGROM_WR:
return discrete_exp0_prgrom_wr; return discrete_exp0_prgrom_wr;
@ -66,7 +74,11 @@ write_funcptr decode_wrfunc_num( uint8_t func_num ) {
default: default:
return (void*)~SUCCESS; return (void*)~SUCCESS;
} }
}
} else {
//dictionary not supported
return (void*)~SUCCESS;
}
} }
@ -93,17 +105,19 @@ uint8_t oper_opcode_no_return( uint8_t opcode, uint8_t operMSB, uint8_t operLSB,
case COPY_ELEMENTS_TO_BUFF0: case COPY_ELEMENTS_TO_BUFF0:
copy_data_to_buff0( (uint8_t *)oper_info, OPER_DATA_NUM_BYTE_ELEMENTS ); copy_data_to_buff0( (uint8_t *)oper_info, OPER_DATA_NUM_BYTE_ELEMENTS );
break; break;
//operMSB contains dictionary, operLSB contains function number
//decode that into proper function pointer
case SET_OPER_FUNC: case SET_OPER_FUNC:
//oper_info->oper_func = decode_opfunc_num( operLSB ); //oper_info->oper_func = decode_opfunc_num( operLSB );
break; break;
case SET_RD_FUNC: case SET_RD_FUNC:
oper_info->rd_func = decode_rdfunc_num( operLSB ); oper_info->rd_func = decode_rdfunc_num( operMSB, operLSB );
break; break;
case SET_WR_MEM_FUNC: case SET_WR_MEM_FUNC:
oper_info->wr_mem_func = decode_wrfunc_num( operLSB ); oper_info->wr_mem_func = decode_wrfunc_num( operMSB, operLSB );
break; break;
case SET_WR_MAP_FUNC: case SET_WR_MAP_FUNC:
oper_info->wr_map_func = decode_wrfunc_num( operLSB ); oper_info->wr_map_func = decode_wrfunc_num( operMSB, operLSB );
break; break;
default: default:
//opcode doesn't exist //opcode doesn't exist

View File

@ -14,8 +14,8 @@
uint8_t * operation_usb_call( setup_packet *spacket, uint8_t *rv, uint8_t *rlen); uint8_t * operation_usb_call( setup_packet *spacket, uint8_t *rv, uint8_t *rlen);
read_funcptr decode_rdfunc_num( uint8_t func_num ); read_funcptr decode_rdfunc_num( uint8_t dict, uint8_t func_num );
write_funcptr decode_wrfunc_num( uint8_t func_num ); write_funcptr decode_wrfunc_num( uint8_t dict, uint8_t func_num );
uint8_t oper_opcode_no_return( uint8_t opcode, uint8_t operMSB, uint8_t operLSB, uint8_t miscdata ); uint8_t oper_opcode_no_return( uint8_t opcode, uint8_t operMSB, uint8_t operLSB, uint8_t miscdata );
uint8_t oper_opcode_return( uint8_t opcode, uint8_t operMSB, uint8_t operLSB, uint8_t miscdata, uint8_t oper_opcode_return( uint8_t opcode, uint8_t operMSB, uint8_t operLSB, uint8_t miscdata,
uint8_t *rvalue, uint8_t *rlength ); uint8_t *rvalue, uint8_t *rlength );

View File

@ -5,7 +5,7 @@
* Post:oper_info elements loaded * Post:oper_info elements loaded
* Rtn: SUCCESS if no errors * Rtn: SUCCESS if no errors
*/ */
int load_oper_info_elements( USBtransfer *transfer, cartridge *cart, int mem ) int load_oper_info_elements( USBtransfer *transfer, cartridge *cart )
{ {
uint8_t rv[RETURN_BUFF_SIZE]; uint8_t rv[RETURN_BUFF_SIZE];
uint8_t buff_num = 0; //buffer used to load elements according to shared_dict_operation.h uint8_t buff_num = 0; //buffer used to load elements according to shared_dict_operation.h

View File

@ -110,6 +110,7 @@ enum operation_elem_nums { //Each index is numbered by it's name
#define COPY_ELEMENTS_TO_BUFF0 0x02 #define COPY_ELEMENTS_TO_BUFF0 0x02
//pass dictionary in operMSB and command/func in operLSB
#define SET_OPER_FUNC 0x03 #define SET_OPER_FUNC 0x03
#define SET_RD_FUNC 0x04 #define SET_RD_FUNC 0x04
#define SET_WR_MEM_FUNC 0x05 #define SET_WR_MEM_FUNC 0x05