25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: dec_prom.c,v 1.9 2006/06/23 11:47:05 debug Exp $ |
* $Id: dec_prom.c,v 1.10 2006/07/26 23:21:48 debug Exp $ |
29 |
* |
* |
30 |
* DECstation PROM emulation. |
* DECstation PROM emulation. |
31 |
* |
* |
105 |
/* TODO */ |
/* TODO */ |
106 |
cpu->machine->exit_without_entering_debugger = 1; |
cpu->machine->exit_without_entering_debugger = 1; |
107 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
108 |
break; |
break; |
109 |
case 0x10: /* restart() */ |
case 0x10: /* restart() */ |
110 |
/* TODO */ |
/* TODO */ |
111 |
cpu->machine->exit_without_entering_debugger = 1; |
cpu->machine->exit_without_entering_debugger = 1; |
112 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
113 |
break; |
break; |
114 |
case 0x18: /* reinit() */ |
case 0x18: /* reinit() */ |
115 |
/* TODO */ |
/* TODO */ |
126 |
fatal("\ndec_jumptable_func(): opening more than one " |
fatal("\ndec_jumptable_func(): opening more than one " |
127 |
"file isn't supported yet.\n"); |
"file isn't supported yet.\n"); |
128 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
129 |
} |
} |
130 |
file_opened = 1; |
file_opened = 1; |
131 |
cpu->cd.mips.gpr[MIPS_GPR_V0] = 1; |
cpu->cd.mips.gpr[MIPS_GPR_V0] = 1; |
198 |
fatal("PROM emulation: unimplemented JUMP TABLE vector " |
fatal("PROM emulation: unimplemented JUMP TABLE vector " |
199 |
"0x%x (decimal function %i)\n", vector, vector/8); |
"0x%x (decimal function %i)\n", vector, vector/8); |
200 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
201 |
} |
} |
202 |
|
|
203 |
return 0; |
return 0; |
609 |
debug("[ DEC PROM halt() ]\n"); |
debug("[ DEC PROM halt() ]\n"); |
610 |
cpu->machine->exit_without_entering_debugger = 1; |
cpu->machine->exit_without_entering_debugger = 1; |
611 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
612 |
break; |
break; |
613 |
case 0xa4: /* gettcinfo() */ |
case 0xa4: /* gettcinfo() */ |
614 |
/* |
/* |
648 |
debug("DEC PROM: rex('h') ==> halt\n"); |
debug("DEC PROM: rex('h') ==> halt\n"); |
649 |
cpu->machine->exit_without_entering_debugger = 1; |
cpu->machine->exit_without_entering_debugger = 1; |
650 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
651 |
break; |
break; |
652 |
case 'b': |
case 'b': |
653 |
debug("DEC PROM: rex('b') ==> reboot: TODO " |
debug("DEC PROM: rex('b') ==> reboot: TODO " |
654 |
"(halting CPU instead)\n"); |
"(halting CPU instead)\n"); |
655 |
cpu->machine->exit_without_entering_debugger = 1; |
cpu->machine->exit_without_entering_debugger = 1; |
656 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
657 |
break; |
break; |
658 |
default: |
default: |
659 |
fatal("DEC prom emulation: unknown rex() a0=0x%"PRIx64 |
fatal("DEC prom emulation: unknown rex() a0=0x%"PRIx64 |
661 |
(int64_t) cpu->cd.mips.gpr[MIPS_GPR_A0], |
(int64_t) cpu->cd.mips.gpr[MIPS_GPR_A0], |
662 |
(char) cpu->cd.mips.gpr[MIPS_GPR_A0]); |
(char) cpu->cd.mips.gpr[MIPS_GPR_A0]); |
663 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
664 |
} |
} |
665 |
break; |
break; |
666 |
default: |
default: |
680 |
fatal("PROM emulation: unimplemented callback vector 0x%x\n", |
fatal("PROM emulation: unimplemented callback vector 0x%x\n", |
681 |
vector); |
vector); |
682 |
cpu->running = 0; |
cpu->running = 0; |
|
cpu->dead = 1; |
|
683 |
} |
} |
684 |
|
|
685 |
return 1; |
return 1; |