From: Alan Cox Date: Wed, 8 Nov 2017 17:45:35 +0000 (+0000) Subject: msx1: align with current X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=0691fdeffdd89ec2def453e9d2f70cdade109692;p=FUZIX.git msx1: align with current --- diff --git a/Kernel/platform-msx1/devfd.c b/Kernel/platform-msx1/devfd.c index afd21d21..4da32bfd 100644 --- a/Kernel/platform-msx1/devfd.c +++ b/Kernel/platform-msx1/devfd.c @@ -11,39 +11,23 @@ static int fd_transfer(bool is_read, uint8_t rawflag) { blkno_t block; - int block_xfer; - uint16_t dptr; - int dlen; int ct = 0; - int map; + int map = 0; is_read; - /* FIXME: raw is broken unless nicely aligned */ if(rawflag) { - dlen = udata.u_count; - dptr = (uint16_t)udata.u_base; - if (((uint16_t)dptr|dlen) & BLKMASK) { - udata.u_error = EIO; - return -1; - } - block = udata.u_offset >> 9; - block_xfer = dlen >> 9; + if (d_blkoff(9)) + return -EIO; map = 1; - } else { /* rawflag == 0 */ - dlen = 512; - dptr = (uint16_t)udata.u_buf->bf_data; - block = udata.u_buf->bf_blk; - block_xfer = 1; - map = 0; } - - while (ct < block_xfer) { + block = udata.u_block; + while (ct < udata.u_nblock) { /* FIXME: Do stuff */ block++; ct++; } - return ct; + return ct << BLKSHIFT; } int fd_open(uint8_t minor, uint16_t flag) diff --git a/Kernel/platform-msx1/devhd.c b/Kernel/platform-msx1/devhd.c index 7b0d0c6a..6be26f9c 100644 --- a/Kernel/platform-msx1/devhd.c +++ b/Kernel/platform-msx1/devhd.c @@ -11,39 +11,26 @@ static int hd_transfer(bool is_read, uint8_t rawflag) { blkno_t block; - int block_xfer; - uint16_t dptr; int dlen; int ct = 0; - int map; + int map = 0; is_read; /* FIXME: raw is broken unless nicely aligned */ - if(rawflag) { - dlen = udata.u_count; - dptr = (uint16_t)udata.u_base; - if (((uint16_t)dptr | dlen) & BLKMASK) { - udata.u_error = EIO; + if (rawflag) { + if (d_blkoff(9)) return -1; - } - block = udata.u_offset >> 9; - block_xfer = dlen >> 9; map = 1; - } else { /* rawflag == 0 */ - dlen = 512; - dptr = (uint16_t)udata.u_buf->bf_data; - block = udata.u_buf->bf_blk; - block_xfer = 1; - map = 0; } - - while (ct < block_xfer) { + + block = udata.u_block; + while (ct < udata.u_nblock) { /* FIXME: Do stuff */ block++; ct++; } - return ct; + return ct << BLKSHIFT; } int hd_open(uint8_t minor, uint16_t flag) diff --git a/Kernel/platform-msx1/devlpr.c b/Kernel/platform-msx1/devlpr.c index 4b5c37b7..afe45f8d 100644 --- a/Kernel/platform-msx1/devlpr.c +++ b/Kernel/platform-msx1/devlpr.c @@ -30,7 +30,7 @@ int lpr_write(uint8_t minor, uint8_t rawflag, uint8_t flag) while (c-- > 0) { while (lpstat & 2) { - if (need_resched()) { + if (need_resched) { if (psleep_flags(NULL, flag)) { if (udata.u_count) udata.u_error = 0; diff --git a/Kernel/platform-msx1/kernel.def b/Kernel/platform-msx1/kernel.def index 676999da..5e58e3af 100644 --- a/Kernel/platform-msx1/kernel.def +++ b/Kernel/platform-msx1/kernel.def @@ -15,3 +15,5 @@ VRAM_CH .equ 1 PROGBASE .equ 0x0000 PROGLOAD .equ 0x0100 + +Z80_MMU_HOOKS .equ 0