msx1: align with current
authorAlan Cox <alan@linux.intel.com>
Wed, 8 Nov 2017 17:45:35 +0000 (17:45 +0000)
committerAlan Cox <alan@linux.intel.com>
Wed, 8 Nov 2017 17:45:35 +0000 (17:45 +0000)
Kernel/platform-msx1/devfd.c
Kernel/platform-msx1/devhd.c
Kernel/platform-msx1/devlpr.c
Kernel/platform-msx1/kernel.def

index afd21d2..4da32bf 100644 (file)
 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)
index 7b0d0c6..6be26f9 100644 (file)
 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)
index 4b5c37b..afe45f8 100644 (file)
@@ -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;
index 676999d..5e58e3a 100644 (file)
@@ -15,3 +15,5 @@ VRAM_CH                           .equ 1
 
 PROGBASE                   .equ 0x0000
 PROGLOAD                   .equ 0x0100
+
+Z80_MMU_HOOKS              .equ 0