changeset 3056:dde1b2fc79fc

level1 krn: Fix signal dispatch for 6309 We need to squeeze in W on the register stack.
author Tormod Volden <debian.tormod@gmail.com>
date Sun, 25 Jan 2015 22:36:03 +0100
parents 35db67ca1302
children 1a76d7b57aa6
files level1/modules/kernel/krn.asm
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/level1/modules/kernel/krn.asm	Sun Jan 25 22:36:02 2015 +0100
+++ b/level1/modules/kernel/krn.asm	Sun Jan 25 22:36:03 2015 +0100
@@ -512,9 +512,17 @@
          ldu   6+R$X,s          old X via U
          lda   <P$Signal,x      signal ...
          ldb   6+R$DP,s         and old DP ...
+         IFEQ  H6309
          tfr   d,y              via Y
          ldd   6+R$CC,s         old CC and A via D
          pshs  u,y,d            same X, same DP / new B (signal), same A / CC
+         ELSE
+         pshs  u,b              same X, same DP
+         pshsw                  same W
+         pshs  a                new B (signal)
+         ldd   6+6+R$CC,s
+         pshs  d                same A / CC
+         ENDC
          clrb
 L02FC    stb   <P$Signal,x
 L02FF    ldd   <P$SWI2,x