do irq test

This commit is contained in:
david 2009-06-23 10:16:32 +02:00
parent b2c644b6e7
commit 086f77b551
2 changed files with 49 additions and 8 deletions

View File

@ -123,6 +123,10 @@ START:
stz $420D ; Access cycle designation (slow/fast rom) stz $420D ; Access cycle designation (slow/fast rom)
cli ; Enable interrupts cli ; Enable interrupts
;lda #$81
;sta $4200
rep #$30 rep #$30
longa on longa on
longi on longi on

View File

@ -40,7 +40,45 @@ DWORD addr,crc_addr;
BYTE res; BYTE res;
byte irq_triggered = 0;
byte nmi_triggered = 0;
char rom_name[]= ROM_NAME; char rom_name[]= ROM_NAME;
void handle_irq(void){
char message[]="irq\n";
char* ptr;
ptr = message;
while (*ptr)
*(byte *) 0x3000 = *ptr++;
irq_triggered = 0;
}
void handle_nmi(void){
char message[]="nmi\n";
char* ptr;
ptr = message;
while (*ptr)
*(byte *) 0x3000 = *ptr++;
irq_triggered = 0;
}
void IRQHandler(void)
{
irq_triggered = 1;
}
void NMIHandler(void)
{
nmi_triggered = 1;
}
void initInternalRegisters(void) void initInternalRegisters(void)
{ {
@ -149,6 +187,13 @@ void boot(DWORD addr)
printfc("SNES::main: Try to init disk\n"); printfc("SNES::main: Try to init disk\n");
put_rc(f_mount((BYTE) 0, &fatfs[0])); put_rc(f_mount((BYTE) 0, &fatfs[0]));
while(1){
if (irq_triggered)
handle_irq();
if (nmi_triggered)
handle_nmi();
}
#if 0 #if 0
printfs(0, "FATFS OPTIXX.ORG "); printfs(0, "FATFS OPTIXX.ORG ");
printfc("SNES::main: Try to get free\n"); printfc("SNES::main: Try to get free\n");
@ -294,12 +339,4 @@ void boot(DWORD addr)
while (1); while (1);
} }
void IRQHandler(void)
{
}
void NMIHandler(void)
{
// processEvents();
}