-CSRCS = ../dev/devsd.c ../dev/mbr.c ../dev/blkdev.c devfd.c devhd.c devlpr.c
+DSRCS = ../dev/devsd.c ../dev/mbr.c ../dev/blkdev.c
+CSRCS = devfd.c devhd.c devlpr.c
CSRCS += devices.c main.c devtty.c ../dev/rp5c01.c devrtc.c
-DSRCS = devmegasd.c
+COMMON_CSRCS = devmegasd.c
+DISCARD_CSRCS = discard.c
+DISCARD_DSRCS = ../dev/devsd_discard.c
ASRCS = msx2.s crt0.s vdp.s
ASRCS += tricks.s commonmem.s bootrom.s
COBJS = $(CSRCS:.c=.rel)
AOBJS = $(ASRCS:.s=.rel)
DOBJS = $(DSRCS:.c=.rel)
-OBJS = $(COBJS) $(AOBJS) $(DOBJS)
+COMMON_COBJS = $(COMMON_CSRCS:.c=.rel)
+DISCARD_COBJS = $(DISCARD_CSRCS:.c=.rel)
+DISCARD_DOBJS = $(patsubst ../dev/%.c,%.rel, $(DISCARD_DSRCS))
+OBJS = $(COBJS) $(AOBJS) $(DOBJS) $(DISCARD_COBJS) $(DISCARD_DOBJS) $(COMMON_COBJS)
JUNK = $(CSRCS:.c=.lst) $(CSRCS:.c=.asm) $(CSRCS:.c=.sym) $(ASRCS:.s=.lst) $(ASRCS:.s=.sym) $(CSRCS:.c=.rst) $(ASRCS:.s=.rst)
all: $(OBJS)
-$(DOBJS): %.rel: %.c
- $(CROSS_CC) $(CROSS_CCOPTS) --codeseg COMMONMEM -c $<
+$(AOBJS): %.rel: %.s
+ $(CROSS_AS) $(ASOPTS) $<
$(COBJS): %.rel: %.c
$(CROSS_CC) $(CROSS_CCOPTS) --codeseg CODE2 -c $<
-$(AOBJS): %.rel: %.s
- $(CROSS_AS) $(ASOPTS) $<
+$(COMMON_COBJS): %.rel: %.c
+ $(CROSS_CC) $(CROSS_CCOPTS) --codeseg COMMONMEM -c $<
+
+$(DOBJS): %.rel: ../dev/%.c
+ $(CROSS_CC) $(CROSS_CCOPTS) -c $<
+
+$(DISCARD_COBJS): %.rel: %.c
+ $(CROSS_CC) $(CROSS_CCOPTS) $(CROSS_CC_SEGDISC) -c $<
+$(DISCARD_DOBJS): %.rel: ../dev/%.c
+ $(CROSS_CC) $(CROSS_CCOPTS) $(CROSS_CC_SEGDISC) -c $<
clean:
rm -f $(OBJS) $(JUNK) core *~
#include "msx2.h"
#include <printf.h>
-extern int megasd_probe();
-
struct devsw dev_tab[] = /* The device driver switch table */
{
/* 0: /dev/fd Floppy disc block devices */
return true;
}
-DISCARDABLE
-
-void device_init(void)
-{
-#ifdef CONFIG_RTC
- inittod();
-#endif
-
- kprintf ("Running on a ");
- if (machine_type == MACHINE_MSX1) {
- kprintf("MSX1 not supported\n");
- // hang!
- } else if (machine_type == MACHINE_MSX2) {
- kprintf("MSX2 ");
- } else if (machine_type == MACHINE_MSX2P) {
- kprintf("MSX2+ ");
- } else if (machine_type == MACHINE_MSXTR) {
- kprintf("MSX TurboR ");
- }
-
- if ((infobits & KBDTYPE_MASK) == KBDTYPE_JPN) {
- kprintf("JP ");
- } else {
- kprintf("INT ");
- }
- if ((infobits & INTFREQ_MASK) == INTFREQ_60Hz) {
- kprintf("60Hz\n");
- ticks_per_dsecond = 6;
- } else {
- kprintf("50Hz\n");
- ticks_per_dsecond = 5;
- }
-
- if (megasd_probe()) {
- /* probe for megaflash rom sd */
- devsd_init();
- }
-}