diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 3f0a6ab71..45648c706 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -9,7 +9,7 @@ * Implementation of the NEC uPD-765 and compatible floppy disk * controller. * - * Version: @(#)fdc->c 1.0.16 2018/02/02 + * Version: @(#)fdc->c 1.0.17 2018/03/02 * * Authors: Sarah Walker, * Miran Grca, @@ -1140,7 +1140,7 @@ fdc_write(uint16_t addr, uint8_t val, void *priv) } -static uint8_t +uint8_t fdc_read(uint16_t addr, void *priv) { fdc_t *fdc = (fdc_t *) priv; diff --git a/src/floppy/fdc.h b/src/floppy/fdc.h index 7fa6cf3cd..4f59828b5 100644 --- a/src/floppy/fdc.h +++ b/src/floppy/fdc.h @@ -9,7 +9,7 @@ * Implementation of the NEC uPD-765 and compatible floppy disk * controller. * - * Version: @(#)fdc.h 1.0.4 2018/02/02 + * Version: @(#)fdc.h 1.0.5 2018/03/02 * * Authors: Sarah Walker, * Miran Grca, @@ -150,6 +150,7 @@ extern int fdc_data(fdc_t *fdc, uint8_t data); extern void fdc_sectorid(fdc_t *fdc, uint8_t track, uint8_t side, uint8_t sector, uint8_t size, uint8_t crc1, uint8_t crc2); +extern uint8_t fdc_read(uint16_t addr, void *priv); extern void fdc_reset(void *priv); extern uint8_t fdc_ps1_525(void); diff --git a/src/machine/machine.h b/src/machine/machine.h index b3493c633..68154743b 100644 --- a/src/machine/machine.h +++ b/src/machine/machine.h @@ -8,7 +8,7 @@ * * Handling of the emulated machines. * - * Version: @(#)machine.h 1.0.19 2018/02/09 + * Version: @(#)machine.h 1.0.20 2018/03/02 * * Authors: Sarah Walker, * Miran Grca, @@ -186,12 +186,18 @@ extern void machine_xt_compaq_init(machine_t *); extern void machine_xt_laserxt_init(machine_t *); #endif +extern void machine_xt_t1000_init(machine_t *); +extern void machine_xt_t1200_init(machine_t *); + #ifdef EMU_DEVICE_H extern device_t *pcjr_get_device(void); extern device_t *tandy1k_get_device(void); extern device_t *tandy1k_hx_get_device(void); +extern device_t *t1000_get_device(void); +extern device_t *t1200_get_device(void); + extern device_t *at_endeavor_get_device(void); #endif diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 399150411..49e5d71bf 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -11,7 +11,7 @@ * NOTES: OpenAT wip for 286-class machine with open BIOS. * PS2_M80-486 wip, pending receipt of TRM's for machine. * - * Version: @(#)machine_table.c 1.0.19 2018/02/18 + * Version: @(#)machine_table.c 1.0.20 2018/03/02 * * Authors: Sarah Walker, * Miran Grca, @@ -47,6 +47,7 @@ machine_t machines[] = { { "[8088] Schneider EuroPC", ROM_EUROPC, "europc", {{"Siemens",cpus_europc}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_HDC | MACHINE_VIDEO | MACHINE_MOUSE, 512, 640, 128, 0, machine_europc_init, NULL, NULL }, { "[8088] Tandy 1000", ROM_TANDY, "tandy", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 128, 640, 128, 0, machine_tandy1k_init, tandy1k_get_device, NULL }, { "[8088] Tandy 1000 HX", ROM_TANDY1000HX, "tandy1000hx", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 256, 640, 128, 0, machine_tandy1k_init, tandy1k_hx_get_device, NULL }, + { "[8088] Toshiba 1000", ROM_T1000, "t1000", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 512, 1280, 768, 0, machine_xt_t1000_init, t1000_get_device, NULL }, #if defined(DEV_BRANCH) && defined(USE_LASERXT) { "[8088] VTech Laser Turbo XT", ROM_LTXT, "ltxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 512, 512, 256, 0, machine_xt_laserxt_init, NULL, NULL }, #endif @@ -58,6 +59,7 @@ machine_t machines[] = { { "[8086] Amstrad PC20(0)", ROM_PC200, "pc200", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_VIDEO | MACHINE_MOUSE, 512, 640, 128, 63, machine_amstrad_init, NULL, nvr_at_close }, { "[8086] Olivetti M24", ROM_OLIM24, "olivetti_m24", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_VIDEO | MACHINE_MOUSE, 128, 640, 128, 0, machine_olim24_init, NULL, NULL }, { "[8086] Tandy 1000 SL/2", ROM_TANDY1000SL2, "tandy1000sl2", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 512, 768, 128, 0, machine_tandy1k_init, NULL, NULL }, + { "[8086] Toshiba 1200", ROM_T1200, "t1200", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA, 1024, 2048,1024, 0, machine_xt_t1200_init, t1200_get_device, NULL }, #if defined(DEV_BRANCH) && defined(USE_LASERXT) { "[8086] VTech Laser XT3", ROM_LXT3, "lxt3", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 256, 512, 256, 0, machine_xt_laserxt_init, NULL, NULL }, #endif diff --git a/src/rom.c b/src/rom.c index 298f11af5..97bac6f83 100644 --- a/src/rom.c +++ b/src/rom.c @@ -13,7 +13,7 @@ * - c386sx16 BIOS fails checksum * - the loadfont() calls should be done elsewhere * - * Version: @(#)rom.c 1.0.30 2018/03/02 + * Version: @(#)rom.c 1.0.31 2018/03/02 * * Authors: Sarah Walker, * Miran Grca, @@ -828,6 +828,22 @@ rom_load_bios(int rom_id) return(1); #endif + case ROM_T1000: + loadfont(L"roms/machines/t1000/t1000font.bin", 2); + if (rom_load_linear( + L"roms/machines/t1000/t1000.rom", + 0x000000, 32768, 0, rom)) return(1); + memcpy(rom + 0x8000, rom, 0x8000); + break; + + case ROM_T1200: + loadfont(L"roms/machines/t1200/t1000font.bin", 2); + if (rom_load_linear( + L"roms/machines/t1200/t1200_019e.ic15.bin", + 0x000000, 32768, 0, rom)) return(1); + memcpy(rom + 0x8000, rom, 0x8000); + break; + case ROM_T3100E: loadfont(L"roms/machines/t3100e/t3100e_font.bin", 5); if (rom_load_linear( diff --git a/src/rom.h b/src/rom.h index 2069fdee9..1be17681c 100644 --- a/src/rom.h +++ b/src/rom.h @@ -8,7 +8,7 @@ * * Definitions for the ROM image handler. * - * Version: @(#)rom.h 1.0.13 2018/01/28 + * Version: @(#)rom.h 1.0.14 2018/03/02 * * Author: Fred N. van Kempen, * Copyright 2018 Fred N. van Kempen. @@ -52,6 +52,9 @@ enum { ROM_LXT3, #endif + ROM_T1000, + ROM_T1200, + ROM_IBMPCJR, ROM_TANDY, ROM_TANDY1000HX, @@ -63,6 +66,7 @@ enum { ROM_PC3086, ROM_OLIM24, ROM_TANDY1000SL2, + ROM_T3100E, ROM_AMI286, diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index c34c422d4..07a08fc50 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -8,7 +8,7 @@ # # Makefile for Win32 (MinGW32) environment. # -# Version: @(#)Makefile.mingw 1.0.104 2018/02/19 +# Version: @(#)Makefile.mingw 1.0.105 2018/03/02 # # Authors: Miran Grca, # Fred N. van Kempen, @@ -220,7 +220,11 @@ else endif endif endif -AFLAGS := -msse2 -mfpmath=sse +ifeq ($(W5580), y) + AFLAGS := -msse2 -msse3 -mssse3 -msse4 -msse4.1 -msse4.2 -mfpmath=sse +else + AFLAGS := -msse2 -mfpmath=sse +endif RFLAGS := --input-format=rc -O coff ifeq ($(RELEASE), y) OPTS += -DRELEASE_BUILD @@ -377,7 +381,8 @@ CFLAGS := $(CFLAGS) ######################################################################### MAINOBJ := pc.o config.o random.o timer.o io.o dma.o nmi.o pic.o \ pit.o ppi.o pci.o mca.o mcr.o mem.o memregs.o rom.o \ - device.o nvr.o nvr_at.o nvr_ps2.o $(VNCOBJ) $(RDPOBJ) + device.o nvr.o nvr_tc8521.o rtc_tc8521.o nvr_at.o \ + nvr_ps2.o $(VNCOBJ) $(RDPOBJ) INTELOBJ := intel.o \ intel_flash.o \ @@ -390,6 +395,7 @@ CPUOBJ := cpu.o cpu_table.o \ MCHOBJ := machine.o machine_table.o \ m_xt.o m_xt_compaq.o \ + m_xt_t1000.o \ m_pcjr.o \ m_amstrad.o \ m_europc.o m_europc_hdc.o \ @@ -486,7 +492,7 @@ VIDOBJ := video.o \ vid_hercules.o vid_herculesplus.o vid_incolor.o \ vid_colorplus.o \ vid_genius.o \ - vid_t3100e.o \ + vid_t1000.o vid_t3100e.o \ vid_wy700.o \ vid_ega.o vid_ega_render.o \ vid_svga.o vid_svga_render.o \