mtx: align with type changes and update TODO list
authorAlan Cox <alan@linux.intel.com>
Wed, 13 Mar 2019 23:01:35 +0000 (23:01 +0000)
committerAlan Cox <alan@linux.intel.com>
Wed, 13 Mar 2019 23:01:35 +0000 (23:01 +0000)
Time to move this onto real hardware with CF card support etc

Kernel/platform-mtx/README
Kernel/platform-mtx/devfd.c
Kernel/platform-mtx/devfd.h
Kernel/platform-mtx/devlpr.c
Kernel/platform-mtx/devlpr.h
Kernel/platform-mtx/devsil.c
Kernel/platform-mtx/devsil.h
Kernel/platform-mtx/devtty.c
Kernel/platform-mtx/devtty.h

index 46f63a9..1ed6eea 100644 (file)
@@ -1,3 +1,10 @@
+TODO
+- Probe what memory banks are present up to the full 640K that might be present
+- Support for the retro adapters (CF2+ etc)
+- Autodetect silicon ramdisk
+- Figure out the DPB and how to get images onto the CF for ROM CP/M to run
+- Floppy features support
+
 The following MTX512 features are supported
 - 6845 based colour text display attributes yet) as /dev/tty1
 - VDP based graphics display (equivalent to MSX1 but on ports 1 and 2) with
@@ -48,7 +55,7 @@ On the MEMU emulator you can do a fast load for testing as follows
 (and add -diag-whatever as needed)
 
 This flips the box into pure RAM mode, loads the image at 0x100 and runs it
-fro there with the root floppy as mfloppy/ref.fs which needs to be a
+from there with the root floppy as mfloppy/ref.fs which needs to be a
 suitable image. I'm currently using an 80 track image, but 40 will work
 fine (40 in 80 won't yet). It's quicker than booting CP/M and loading
 the image.
index 54788a6..862dc1c 100644 (file)
@@ -37,7 +37,7 @@ void fd_motor_timer(void)
  *     We only support normal block I/O not swap.
  */
 
-static int fd_transfer(uint8_t minor, bool is_read, uint8_t rawflag)
+static int fd_transfer(uint_fast8_t minor, bool is_read, uint_fast8_t rawflag)
 {
     uint16_t nb = 0;
     int tries;
@@ -108,7 +108,7 @@ bad2:
     return -1;
 }
 
-int fd_open(uint8_t minor, uint16_t flag)
+int fd_open(uint_fast8_t minor, uint16_t flag)
 {
     flag;
     if(minor >= MAX_FD) {
@@ -118,13 +118,13 @@ int fd_open(uint8_t minor, uint16_t flag)
     return 0;
 }
 
-int fd_read(uint8_t minor, uint8_t rawflag, uint8_t flag)
+int fd_read(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag)
 {
     flag;
     return fd_transfer(minor, true, rawflag);
 }
 
-int fd_write(uint8_t minor, uint8_t rawflag, uint8_t flag)
+int fd_write(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag)
 {
     flag;
     return fd_transfer(minor, false, rawflag);
index e4921a9..52c3494 100644 (file)
@@ -2,9 +2,9 @@
 #define __DEVFD_DOT_H__
 
 /* public interface */
-int fd_read(uint8_t minor, uint8_t rawflag, uint8_t flag);
-int fd_write(uint8_t minor, uint8_t rawflag, uint8_t flag);
-int fd_open(uint8_t minor, uint16_t flag);
+int fd_read(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag);
+int fd_write(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag);
+int fd_open(uint_fast8_t minor, uint16_t flag);
 void fd_motor_timer(void);
 
 /* low level interface */
index 6068384..62476ce 100644 (file)
@@ -6,20 +6,20 @@
 __sfr __at 0x00 lpstrobel;
 __sfr __at 0x04 lpdata;                /* Data on write, status+strobe clr on read */
 
-int lpr_open(uint8_t minor, uint16_t flag)
+int lpr_open(uint_fast8_t minor, uint16_t flag)
 {
        minor;
        flag;                   // shut up compiler
        return 0;
 }
 
-int lpr_close(uint8_t minor)
+int lpr_close(uint_fast8_t minor)
 {
        minor;                  // shut up compiler
        return 0;
 }
 
-int lpr_write(uint8_t minor, uint8_t rawflag, uint8_t flag)
+int lpr_write(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag)
 {
        int c = udata.u_count;
        char *p = udata.u_base;
index 7765c18..61e8c1f 100644 (file)
@@ -1,8 +1,8 @@
 #ifndef __DEVLPR_DOT_H__
 #define __DEVLPR_DOT_H__
 
-int lpr_open(uint8_t minor, uint16_t flag);
-int lpr_close(uint8_t minor);
-int lpr_write(uint8_t minor, uint8_t rawflag, uint8_t flag);
+int lpr_open(uint_fast8_t minor, uint16_t flag);
+int lpr_close(uint_fast8_t minor);
+int lpr_write(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag);
 
 #endif
index d496776..c6b724b 100644 (file)
@@ -14,7 +14,7 @@
 
 #define NUM_SIL                4
 
-static int sil_transfer(uint8_t minor, bool is_read, uint8_t rawflag)
+static int sil_transfer(uint_fast8_t minor, bool is_read, uint_fast8_t rawflag)
 {
     int ct = 0;
     int map = 0;
@@ -37,7 +37,7 @@ static int sil_transfer(uint8_t minor, bool is_read, uint8_t rawflag)
     return ct << BLKSHIFT;
 }
 
-int sil_open(uint8_t minor, uint16_t flag)
+int sil_open(uint_fast8_t minor, uint16_t flag)
 {
     flag;
     if(minor >= NUM_SIL) {
@@ -47,13 +47,13 @@ int sil_open(uint8_t minor, uint16_t flag)
     return 0;
 }
 
-int sil_read(uint8_t minor, uint8_t rawflag, uint8_t flag)
+int sil_read(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag)
 {
     flag;minor;
     return sil_transfer(minor, true, rawflag);
 }
 
-int sil_write(uint8_t minor, uint8_t rawflag, uint8_t flag)
+int sil_write(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag)
 {
     flag;minor;
     return sil_transfer(minor, false, rawflag);
index e14d2aa..fec149d 100644 (file)
@@ -2,9 +2,9 @@
 #define __DEVSIL_DOT_H__
 
 /* public interface */
-int sil_read(uint8_t minor, uint8_t rawflag, uint8_t flag);
-int sil_write(uint8_t minor, uint8_t rawflag, uint8_t flag);
-int sil_open(uint8_t minor, uint16_t flag);
+int sil_read(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag);
+int sil_write(uint_fast8_t minor, uint_fast8_t rawflag, uint_fast8_t flag);
+int sil_open(uint_fast8_t minor, uint16_t flag);
 
 /* asm banking helper */
 void sil_memcpy(uint8_t isread, uint8_t map, uint16_t dptr, uint16_t block, uint16_t dev);
index 7aee4fc..9ef132a 100644 (file)
@@ -29,10 +29,10 @@ uint8_t vtattr_cap;
 struct vt_repeat keyrepeat;
 static uint8_t kbd_timer;
 
-static char tbuf1[TTYSIZ];
-static char tbuf2[TTYSIZ];
-static char tbuf3[TTYSIZ];
-static char tbuf4[TTYSIZ];
+static uint8_t tbuf1[TTYSIZ];
+static uint8_t tbuf2[TTYSIZ];
+static uint8_t tbuf3[TTYSIZ];
+static uint8_t tbuf4[TTYSIZ];
 
 static uint8_t sleeping;
 
@@ -75,14 +75,14 @@ tcflag_t *termios_mask[NUM_DEV_TTY + 1] = {
 /* tty1 is the screen tty2 is vdp screen */
 
 /* Output for the system console (kprintf etc) */
-void kputchar(char c)
+void kputchar(uint_fast8_t c)
 {
        if (c == '\n')
                tty_putc(1, '\r');
        tty_putc(1, c);
 }
 
-ttyready_t tty_writeready(uint8_t minor)
+ttyready_t tty_writeready(uint_fast8_t minor)
 {
        uint8_t reg = 0xFF;
        if (minor == 3)
@@ -92,7 +92,7 @@ ttyready_t tty_writeready(uint8_t minor)
        return (reg & 4) ? TTY_READY_NOW : TTY_READY_SOON;
 }
 
-void tty_putc(uint8_t minor, unsigned char c)
+void tty_putc(uint_fast8_t minor, uint_fast8_t c)
 {
        irqflags_t irq;
 
@@ -115,7 +115,7 @@ void tty_putc(uint8_t minor, unsigned char c)
                serialBd = c;
 }
 
-int tty_carrier(uint8_t minor)
+int tty_carrier(uint_fast8_t minor)
 {
        uint8_t reg = 0xFF;
        if (minor == 3)
@@ -125,12 +125,12 @@ int tty_carrier(uint8_t minor)
        return (reg & 8) ? 1 : 0;
 }
 
-void tty_sleeping(uint8_t minor)
+void tty_sleeping(uint_fast8_t minor)
 {
        sleeping |= (1 << minor);
 }
 
-void tty_data_consumed(uint8_t minor)
+void tty_data_consumed(uint_fast8_t minor)
 {
        /* FIXME:we can now implement flow control stuff */
 }
@@ -154,7 +154,7 @@ static uint8_t dartbits[] = {
 };
 
 /* FIXME: Can we do CSTOPB - need to look into that */
-void tty_setup(uint8_t minor, uint8_t flagbits)
+void tty_setup(uint_fast8_t minor, uint_fast8_t flagbits)
 {
        irqflags_t flags;
        int i;
@@ -204,7 +204,7 @@ void tty_setup(uint8_t minor, uint8_t flagbits)
        irqrestore(flags);
 }
 
-int mtxtty_close(uint8_t minor)
+int mtxtty_close(uint_fast8_t minor)
 {
        irqflags_t flags;
        int err = tty_close(minor);
index f9a0dd6..a552020 100644 (file)
@@ -3,7 +3,7 @@
 
 extern void kbd_interrupt(void);
 extern void tty_interrupt(void);
-extern int mtxtty_close(uint8_t);
+extern int mtxtty_close(uint_fast8_t);
 
 extern signed char vt_twidth[2];
 extern signed char vt_tright[2];