From 90bcf39a062e4bb76004693fc5ee82d650aababa Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sat, 16 Mar 2019 00:21:51 +0000 Subject: [PATCH] devide: make the generic devide correct for banked and other cases Only map kernel back if we map something else --- Kernel/dev/devide.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Kernel/dev/devide.c b/Kernel/dev/devide.c index def5884a..0cba1eef 100644 --- a/Kernel/dev/devide.c +++ b/Kernel/dev/devide.c @@ -151,6 +151,7 @@ void devide_read_data(void) __naked ld hl, (_blk_op+BLKPARAM_ADDR_OFFSET) ; blkparam.addr ld bc, #IDE_REG_DATA ; setup port number ; and count + push af #ifdef SWAPDEV cp #2 jr nz, not_swapin @@ -168,6 +169,9 @@ rd_kernel: doread: inir ; transfer first 256 bytes inir ; transfer second 256 bytes + pop af + or a + ret z jp map_kernel ; else map kernel then return __endasm; } @@ -179,6 +183,7 @@ void devide_write_data(void) __naked ld hl, (_blk_op+BLKPARAM_ADDR_OFFSET) ; blkparam.addr ld bc, #IDE_REG_DATA ; setup port number ; and count + push af #ifdef SWAPDEV cp #2 jr nz, not_swapout @@ -196,6 +201,8 @@ wr_kernel: dowrite: otir ; transfer first 256 bytes otir ; transfer second 256 bytes + pop af + ret z jp map_kernel ; else map kernel then return __endasm; } -- 2.34.1