diff options
author | Richard Henderson <rth@twiddle.net> | 2011-04-11 17:07:58 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2011-04-11 17:07:58 -0700 |
commit | 6e14504513166f6b5ad7e46a9c365cca005ff918 (patch) | |
tree | 4353b9c30acfa5318a64ce7ae22feb0454e6ac83 | |
parent | aacb76ca0399404c560bb8ee7bebecf730ac3a3a (diff) | |
download | qemu-palcode-6e14504513166f6b5ad7e46a9c365cca005ff918.zip qemu-palcode-6e14504513166f6b5ad7e46a9c365cca005ff918.tar.gz qemu-palcode-6e14504513166f6b5ad7e46a9c365cca005ff918.tar.bz2 |
Signal halt properly.
-rw-r--r-- | init.c | 4 | ||||
-rw-r--r-- | pal.S | 8 |
2 files changed, 11 insertions, 1 deletions
@@ -211,5 +211,7 @@ do_start(unsigned long memsize, void (*kernel_entry)(void)) uart_init (); uart_puts (COM1, "Hello, World!\n"); - while (1) ; + if (kernel_entry) + kernel_entry(); + asm ("halt"); } @@ -399,6 +399,14 @@ Pal_Fen: CallPal_Halt: bsr p7, UpdatePCB // Save kernel data lda v0, HLT_K_SW_HALT + + ldah p0, 1 // Store 0xdead into CIA RESET reg + lda p0, -(0x10000 - 0xdead)(p0) + lda p1, 0x878 + sll p1, 28, p1 + lda p1, 0x900(p1) + stl_p p0, 0(p1) + br Sys_EnterConsole /* |