INL-retro-progdump/host/source/erase.c

63 lines
3.0 KiB
C

#include "erase.h"
int erase_nes( USBtransfer *transfer )
{
debug("erasing");
//dict opcode addr data
dictionary_call( transfer, IO, IO_RESET, 0, 0);
dictionary_call( transfer, IO, NES_INIT, 0, 0);
//software mode
dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0xAA);
dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x2AAA, 0x55);
dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0x90);
dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
dictionary_call( transfer, NES, NES_CPU_RD, 0x8001, 0);
dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
dictionary_call( transfer, NES, NES_CPU_RD, 0x8001, 0);
//exit software
dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x8000, 0xF0);
dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
dictionary_call( transfer, NES, NES_CPU_RD, 0x8001, 0);
//erase
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0xAA);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x2AAA, 0x55);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0x80);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0xAA);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x2AAA, 0x55);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0x10);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
//program byte
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0xAA);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x2AAA, 0x55);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x5555, 0xA0);
// dictionary_call( transfer, NES, DISCRETE_EXP0_PRGROM_WR, 0x8000, 0x00);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
// dictionary_call( transfer, NES, NES_CPU_RD, 0x8000, 0);
return 0;
}