You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
(80) |
Dec
(239) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(168) |
Feb
(177) |
Mar
(233) |
Apr
(172) |
May
(74) |
Jun
(107) |
Jul
(77) |
Aug
(133) |
Sep
(85) |
Oct
(108) |
Nov
(87) |
Dec
(96) |
2003 |
Jan
(218) |
Feb
(134) |
Mar
(273) |
Apr
(127) |
May
(304) |
Jun
(498) |
Jul
(231) |
Aug
(301) |
Sep
(181) |
Oct
(258) |
Nov
(229) |
Dec
(207) |
2004 |
Jan
(169) |
Feb
(181) |
Mar
(255) |
Apr
(468) |
May
(467) |
Jun
(241) |
Jul
(146) |
Aug
(157) |
Sep
(260) |
Oct
(656) |
Nov
(148) |
Dec
(199) |
2005 |
Jan
(257) |
Feb
(250) |
Mar
(206) |
Apr
(102) |
May
(215) |
Jun
(251) |
Jul
(104) |
Aug
(116) |
Sep
(176) |
Oct
(154) |
Nov
(281) |
Dec
(212) |
2006 |
Jan
(255) |
Feb
(157) |
Mar
(145) |
Apr
(179) |
May
(170) |
Jun
(96) |
Jul
(153) |
Aug
(106) |
Sep
(222) |
Oct
(94) |
Nov
(88) |
Dec
(66) |
2007 |
Jan
(59) |
Feb
(105) |
Mar
(114) |
Apr
(193) |
May
(145) |
Jun
(120) |
Jul
(79) |
Aug
(114) |
Sep
(234) |
Oct
(105) |
Nov
(113) |
Dec
(163) |
2008 |
Jan
(96) |
Feb
(35) |
Mar
(105) |
Apr
(64) |
May
(85) |
Jun
(92) |
Jul
(139) |
Aug
(81) |
Sep
(84) |
Oct
(55) |
Nov
(45) |
Dec
(56) |
2009 |
Jan
(110) |
Feb
(184) |
Mar
(150) |
Apr
(235) |
May
(267) |
Jun
(169) |
Jul
(180) |
Aug
(141) |
Sep
(191) |
Oct
(103) |
Nov
(118) |
Dec
(225) |
2010 |
Jan
(149) |
Feb
(90) |
Mar
(62) |
Apr
(46) |
May
(30) |
Jun
(110) |
Jul
(48) |
Aug
(45) |
Sep
(37) |
Oct
(36) |
Nov
(48) |
Dec
(81) |
2011 |
Jan
(75) |
Feb
(39) |
Mar
(105) |
Apr
(67) |
May
(31) |
Jun
(19) |
Jul
(16) |
Aug
(43) |
Sep
(36) |
Oct
(15) |
Nov
(9) |
Dec
(24) |
2012 |
Jan
(52) |
Feb
(34) |
Mar
(34) |
Apr
(35) |
May
(81) |
Jun
(114) |
Jul
(77) |
Aug
(68) |
Sep
(57) |
Oct
(30) |
Nov
(75) |
Dec
(116) |
2013 |
Jan
(30) |
Feb
(42) |
Mar
(30) |
Apr
(45) |
May
(49) |
Jun
(29) |
Jul
(63) |
Aug
(62) |
Sep
(21) |
Oct
(21) |
Nov
(58) |
Dec
(32) |
2014 |
Jan
(86) |
Feb
(48) |
Mar
(21) |
Apr
(20) |
May
(68) |
Jun
(42) |
Jul
(33) |
Aug
(28) |
Sep
(33) |
Oct
(23) |
Nov
(43) |
Dec
(11) |
2015 |
Jan
(13) |
Feb
(13) |
Mar
(13) |
Apr
(12) |
May
(50) |
Jun
(10) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Wouter V. <m97...@us...> - 2015-06-16 19:19:32
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master.sf has been deleted was 4c87ef8192e50f301a5003fbf79bfe9c862374b1 ----------------------------------------------------------------------- 4c87ef8192e50f301a5003fbf79bfe9c862374b1 disable building openMSX, refer to new github project ----------------------------------------------------------------------- hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-06-16 19:17:26
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 4c87ef8192e50f301a5003fbf79bfe9c862374b1 (commit) from 8c3dae7089875fe0b35107af050e07bd0948e2f1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 4c87ef8192e50f301a5003fbf79bfe9c862374b1 Author: m9710797 <ver...@gm...> Date: Tue Jun 16 21:03:11 2015 +0200 disable building openMSX, refer to new github project ----------------------------------------------------------------------- Summary of changes: build/main.mk | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/build/main.mk b/build/main.mk index afca766..b944288 100644 --- a/build/main.mk +++ b/build/main.mk @@ -1,3 +1,6 @@ +# Disable building openMSX, remove the next line to re-enable it. +$(error This is the old sourceforge version of openMSX, it is obsolete. OpenMSX development has moved to github: https://github.com/openMSX/openMSX) + # openMSX Build System # ==================== # hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-06-16 19:11:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master.sf has been created at 4c87ef8192e50f301a5003fbf79bfe9c862374b1 (commit) - Log ----------------------------------------------------------------- commit 4c87ef8192e50f301a5003fbf79bfe9c862374b1 Author: m9710797 <ver...@gm...> Date: Tue Jun 16 21:03:11 2015 +0200 disable building openMSX, refer to new github project ----------------------------------------------------------------------- hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-06-12 21:14:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 8c3dae7089875fe0b35107af050e07bd0948e2f1 (commit) via 7ecc0b7513a2e20454377921f079f649b5ae67e0 (commit) from d04d5e8be228f59dd6abfbe548d9d9e202af9106 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8c3dae7089875fe0b35107af050e07bd0948e2f1 Author: Manuel Bilderbeek <Man...@gm...> Date: Fri Jun 12 23:11:53 2015 +0200 Added Sanyo MPC-6, thanks to Werner Kai. commit 7ecc0b7513a2e20454377921f079f649b5ae67e0 Author: Manuel Bilderbeek <Man...@gm...> Date: Fri Jun 12 22:48:33 2015 +0200 Added some details on Sony HB-101 model types. Thanks to Werner Kai. ----------------------------------------------------------------------- Summary of changes: .../machines/{Sony_HB-201.xml => Sanyo_MPC-6.xml} | 58 +++++++++----------- share/machines/Sony_HB-101.xml | 16 +++++- 2 files changed, 40 insertions(+), 34 deletions(-) copy share/machines/{Sony_HB-201.xml => Sanyo_MPC-6.xml} (62%) diff --git a/share/machines/Sony_HB-201.xml b/share/machines/Sanyo_MPC-6.xml similarity index 62% copy from share/machines/Sony_HB-201.xml copy to share/machines/Sanyo_MPC-6.xml index bf7bb06..1671af7 100644 --- a/share/machines/Sony_HB-201.xml +++ b/share/machines/Sanyo_MPC-6.xml @@ -2,32 +2,32 @@ <!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'> <msxconfig> - <!-- - Based on Werner Kai's black Sony HB-201 with serial 214484 - - VDP: TMS9118NL - PPI: NEC D8255AC-5 - CPU: Sharp LH0080A - PSG: Yamaha YM2159F + <info> + <manufacturer>Sanyo</manufacturer> + <code>MPC-6/Wavy6</code> + <release_year>?</release_year> + <description>A simple 64kB Japanese MSX1 machine</description> + <type>MSX</type> + </info> - Z80 scf: 01C529ED01D429C (dunno) - Z80 cpl: 3AF12D7 (standard) + <!-- This config is based on Werner Kai's machine with serial number 10722198 + https://plus.google.com/u/0/photos/112629367302659371233/albums/6155639394500784817 + + Z80 scf: 01C501ED01D401C (NEC) + Z80 cpl: 3AFF12D7 (standard) Z80 out (c),0: 0 (MSX) PSG pin 6/7 quirk: C (YES) + PSGmask: YM2149-like + Seems to have pull ups. - Unmapped area of page 3 in slot 0-0 shows 0xB0 on every location - - https://plus.google.com/u/0/photos/112629367302659371233/albums/6155580084905562801 - - --> + mobo shows: + PSG: GI AY-3-8910 + CPU: NEC D780C-1 + VDP: TMS9918ANL + PPI: NEC D8255AC-2 - <info> - <manufacturer>Sony</manufacturer> - <code>HB-201</code> - <release_year>1985</release_year> - <description/> - <type>MSX</type> - </info> + back cartridge slot is not MSX, but expansion slot + --> <CassettePort/> @@ -47,12 +47,12 @@ </PPI> <VDP id="VDP"> - <version>TMS9118</version> + <version>TMS9918A</version> <io base="0x98" num="2"/> </VDP> <PSG id="PSG"> - <type>YM2149</type> + <type>AY8910</type> <keyboardlayout>50on</keyboardlayout> <sound> <volume>21000</volume> @@ -68,30 +68,22 @@ <primary slot="0"> <ROM id="MSX BIOS with BASIC ROM"> <rom> - <filename>hb-201_basic-bios1.rom</filename> + <filename>mpc-6_basic-bios1.rom</filename> <sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1> </rom> <mem base="0x0000" size="0x8000"/> </ROM> - <ROM id="Personal Data Bank"> - <rom> - <filename>hb-201_firmware.rom</filename> - <sha1>0f4f09f1a6ef7535b243afabfb44a3a0eb0498d9</sha1> - </rom> - <mem base="0x8000" size="0x4000"/> - </ROM> </primary> <primary external="true" slot="1"/> - <primary external="true" slot="2"/> + <!-- slot 2 is the expansion slot --> <primary slot="3"> <RAM id="Main RAM"> <mem base="0x0000" size="0x10000"/> </RAM> </primary> - </devices> </msxconfig> diff --git a/share/machines/Sony_HB-101.xml b/share/machines/Sony_HB-101.xml index eb3ef48..04c32f5 100644 --- a/share/machines/Sony_HB-101.xml +++ b/share/machines/Sony_HB-101.xml @@ -15,6 +15,20 @@ https://plus.google.com/photos/112629367302659371233/albums/6155507573429019985 + There are 2 models of the HB-101. Werner's is of the first kind: + - does not have springs in the transportation handle, which mean that the + handle can be left extended. + - does not have gate arrays cX chips + - does not have pull ups on the bus + So all these things were added in the 2nd model: + - has 2 sprints in the transportation handle so that it cannot be left extended + - has 2 Sony CXxxx gate arrays in the PCB, same as used in HB-F5 + - has pull-ups, so that e.g. PEEK(&H8000) gives 255. + + Machines of the second model seem to have the same ROMs: the ROMs of a + white HB-101 with SN 237929 were the same as the red one on which this + config was based. + Z80: SHARP LH0080A Z80A-CPU-D PPI: NEC D8255AC-5 PSG: Yamaha YM2149F @@ -91,7 +105,7 @@ <ROM id="Personal Data Bank"> <rom> <filename>hb-101_firmware.rom</filename> - <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM. Moreover, we found out that all unconnected memory showed as 0x7E (but unconnected I/O ports showed 0xFF) --> + <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM. Moreover, we found out that all unconnected memory showed as 0x7E (but unconnected I/O ports showed 0xFF) The latter is probably due to the fact that this dump was based on a machine of the first model, see above. --> </rom> <mem base="0x4000" size="0x4000"/> </ROM> hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-06-02 20:56:46
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via d04d5e8be228f59dd6abfbe548d9d9e202af9106 (commit) via 1337831eb08a315cebfd1902d7eb7f0086f9f965 (commit) from 35f23a8b3d9c9078fb6b99ec3a459e8137f3215a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d04d5e8be228f59dd6abfbe548d9d9e202af9106 Author: Manuel Bilderbeek <Man...@gm...> Date: Tue Jun 2 22:55:50 2015 +0200 Added Japanese Sony HB-201, thanks to Werner Kai commit 1337831eb08a315cebfd1902d7eb7f0086f9f965 Author: Manuel Bilderbeek <Man...@gm...> Date: Tue Jun 2 22:55:07 2015 +0200 Fixed wrong kana lock configuration: it's JP so it locks ----------------------------------------------------------------------- Summary of changes: share/machines/Sony_HB-101.xml | 2 +- .../{Hitachi_MB-H1.xml => Sony_HB-201.xml} | 66 +++++++++++--------- 2 files changed, 37 insertions(+), 31 deletions(-) copy share/machines/{Hitachi_MB-H1.xml => Sony_HB-201.xml} (58%) diff --git a/share/machines/Sony_HB-101.xml b/share/machines/Sony_HB-101.xml index 4c07bd6..eb3ef48 100644 --- a/share/machines/Sony_HB-101.xml +++ b/share/machines/Sony_HB-101.xml @@ -47,7 +47,7 @@ <io base="0xA8" num="4"/> <keyboard_type>jp_ansi</keyboard_type> <has_keypad>false</has_keypad> - <code_kana_locks>false</code_kana_locks> + <code_kana_locks>true</code_kana_locks> <graph_locks>false</graph_locks> </PPI> diff --git a/share/machines/Hitachi_MB-H1.xml b/share/machines/Sony_HB-201.xml similarity index 58% copy from share/machines/Hitachi_MB-H1.xml copy to share/machines/Sony_HB-201.xml index a3e05e6..bf7bb06 100644 --- a/share/machines/Hitachi_MB-H1.xml +++ b/share/machines/Sony_HB-201.xml @@ -2,27 +2,33 @@ <!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'> <msxconfig> + <!-- + Based on Werner Kai's black Sony HB-201 with serial 214484 + + VDP: TMS9118NL + PPI: NEC D8255AC-5 + CPU: Sharp LH0080A + PSG: Yamaha YM2159F + + Z80 scf: 01C529ED01D429C (dunno) + Z80 cpl: 3AF12D7 (standard) + Z80 out (c),0: 0 (MSX) + PSG pin 6/7 quirk: C (YES) + + Unmapped area of page 3 in slot 0-0 shows 0xB0 on every location + + https://plus.google.com/u/0/photos/112629367302659371233/albums/6155580084905562801 + + --> + <info> - <manufacturer>Hitachi</manufacturer> - <code>MB-H1</code> - <release_year></release_year> - <description>The Humanicatio...</description> + <manufacturer>Sony</manufacturer> + <code>HB-201</code> + <release_year>1985</release_year> + <description/> <type>MSX</type> </info> -<!-- Thanks to Ricardo Jurczyk Pinheiro for the information. - Serial: 4008501A - Z80: Sharp LH0080A - PSG: GI AY-3-8910 - PPI: NEC D8255AC-5 - VDP: TMS9918ANL - - Z80 scf: 01ED29ED01FC29FC (standard) - Z80 cpl: 3AFF12D7 (standard) - Z80 out (c),0: 0 (MSX) - PSG pin 6/7 quirk: C (YES) ---> - <CassettePort/> <devices> @@ -41,12 +47,12 @@ </PPI> <VDP id="VDP"> - <version>TMS9918A</version> + <version>TMS9118</version> <io base="0x98" num="2"/> </VDP> <PSG id="PSG"> - <type>AY8910</type> <!-- in contrast to ident.bas, so YM2149 PSG mask --> + <type>YM2149</type> <keyboardlayout>50on</keyboardlayout> <sound> <volume>21000</volume> @@ -60,16 +66,20 @@ </PrinterPort> <primary slot="0"> - <RAM id="Main RAM"> - <mem base="0x8000" size="0x8000"/> - </RAM> <ROM id="MSX BIOS with BASIC ROM"> <rom> - <filename>mb-h1_basic-bios1.rom</filename> + <filename>hb-201_basic-bios1.rom</filename> <sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1> </rom> <mem base="0x0000" size="0x8000"/> </ROM> + <ROM id="Personal Data Bank"> + <rom> + <filename>hb-201_firmware.rom</filename> + <sha1>0f4f09f1a6ef7535b243afabfb44a3a0eb0498d9</sha1> + </rom> + <mem base="0x8000" size="0x4000"/> + </ROM> </primary> <primary external="true" slot="1"/> @@ -77,13 +87,9 @@ <primary external="true" slot="2"/> <primary slot="3"> - <ROM id="MB-H1 firmware"> - <rom> - <filename>mb-h1_firmware.rom</filename> - <sha1>3e005832138ffde8b1c36025754f81c2112b236d</sha1> - </rom> - <mem base="0x4000" size="0x2000"/> - </ROM> + <RAM id="Main RAM"> + <mem base="0x0000" size="0x10000"/> + </RAM> </primary> </devices> hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-06-02 17:19:03
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 35f23a8b3d9c9078fb6b99ec3a459e8137f3215a (commit) from a8d116ae445d47d3a64adf744bf9f3f575651a08 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 35f23a8b3d9c9078fb6b99ec3a459e8137f3215a Author: m9710797 <ver...@gm...> Date: Tue Jun 2 19:11:04 2015 +0200 Fake just enough of the Mitsubishi ML-TS2 to get it to boot There seems to be 4 registers located at addresses 0x7f00-0x7f03. The z80 code in the rom both reads and writes these registers (I only looked at a very small fraction of the code). Before this patch the boot code was in an endless loop reading location 0x7f01 and checking bit 3. Now, after this patch, that bit reads as '1' and that's enough to get past this loop into BASIC. ----------------------------------------------------------------------- Summary of changes: src/memory/RomMitsubishiMLTS2.cc | 25 +++++++++++++++++++++++-- 1 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/memory/RomMitsubishiMLTS2.cc b/src/memory/RomMitsubishiMLTS2.cc index 40a397a..018dc8c 100644 --- a/src/memory/RomMitsubishiMLTS2.cc +++ b/src/memory/RomMitsubishiMLTS2.cc @@ -20,7 +20,17 @@ void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/) void RomMitsubishiMLTS2::writeMem(word address, byte value, EmuTime::param /*time*/) { - if (address == 0x7FC0) { + // TODO What are these 4 registers? Are there any more? + // Is there any mirroring going on? + if (address == 0x7f00) { + // TODO + } else if (address == 0x7f01) { + // TODO + } else if (address == 0x7f02) { + // TODO + } else if (address == 0x7f03) { + // TODO + } else if (address == 0x7FC0) { byte bank = ((value & 0x10) >> 2) | // transform bit-pattern ((value & 0x04) >> 1) | // ...a.b.c ((value & 0x01) >> 0); // into 00000abc @@ -38,7 +48,18 @@ byte RomMitsubishiMLTS2::readMem(word address, EmuTime::param time) byte RomMitsubishiMLTS2::peekMem(word address, EmuTime::param time) const { - if ((0x6000 <= address) && (address < 0x8000)) { + // TODO What are these 4 registers? Are there any more? + // Is there any mirroring going on? + // Is the bank select register readable? (0x7fc0) + if (address == 0x7f00) { + return 0xff; // TODO + } else if (address == 0x7f01) { + return 0xff; // TODO + } else if (address == 0x7f02) { + return 0xff; // TODO + } else if (address == 0x7f03) { + return 0xff; // TODO + } else if ((0x6000 <= address) && (address < 0x8000)) { return ram[address & 0x1FFF]; } else { return Rom8kBBlocks::peekMem(address, time); hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-06-02 16:40:40
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via a8d116ae445d47d3a64adf744bf9f3f575651a08 (commit) via 362cb36f7602ac62c8c2b284afe24f29a243b354 (commit) from 99e0f001e83edd733aeed98f110ad1bc922090dd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a8d116ae445d47d3a64adf744bf9f3f575651a08 Author: m9710797 <ver...@gm...> Date: Tue Jun 2 18:25:13 2015 +0200 Small cleanups/enhancements to the WIP RomMitsubishiMLTS2 code I know this code is still work in progress, but this patch brings the code more in line with the rest of the openMSX code. Mostly small cleanups. There should be no functional changes. I did add a missing serialize() method. commit 362cb36f7602ac62c8c2b284afe24f29a243b354 Author: m9710797 <ver...@gm...> Date: Tue Jun 2 18:09:29 2015 +0200 Fixed initialization of String32 on 32-bit platforms In the RomDatabase parsing code we initialized String32 objects like this: title = 0; This compiles fine (on both 32 and 64 bit platforms). It also happens to do the correct thing on 64 bit systems. However on 32 bit systems when a romdb entry with empty title, year, country or company field is printed (depending on how exactly it's printed) it may crash. So it may only rarely trigger, but a bug is a bug. Fix is easy: always initialize these objects via the toString32() helper function. ----------------------------------------------------------------------- Summary of changes: src/memory/RomDatabase.cc | 10 ++++++---- src/memory/RomMitsubishiMLTS2.cc | 38 ++++++++++++++++---------------------- src/memory/RomMitsubishiMLTS2.hh | 22 ++++++++++++---------- 3 files changed, 34 insertions(+), 36 deletions(-) diff --git a/src/memory/RomDatabase.cc b/src/memory/RomDatabase.cc index 5d9b22c..dda3ecb 100644 --- a/src/memory/RomDatabase.cc +++ b/src/memory/RomDatabase.cc @@ -119,10 +119,10 @@ void DBParser::start(string_ref tag) case SOFTWAREDB: if (tag == "software") { system.clear(); - title = 0; - company = 0; - year = 0; - country = 0; + toString32(bufStart, bufStart, title); + toString32(bufStart, bufStart, company); + toString32(bufStart, bufStart, year); + toString32(bufStart, bufStart, country); genMSXid = 0; dumps.clear(); state = SOFTWARE; @@ -171,6 +171,8 @@ void DBParser::start(string_ref tag) dumps.resize(dumps.size() + 1); dumps.back().type = ROM_UNKNOWN; dumps.back().origValue = false; + toString32(bufStart, bufStart, dumps.back().remark); + toString32(bufStart, bufStart, dumps.back().origData); state = DUMP; return; } diff --git a/src/memory/RomMitsubishiMLTS2.cc b/src/memory/RomMitsubishiMLTS2.cc index 4e04114..40a397a 100644 --- a/src/memory/RomMitsubishiMLTS2.cc +++ b/src/memory/RomMitsubishiMLTS2.cc @@ -1,9 +1,6 @@ #include "RomMitsubishiMLTS2.hh" -#include "Rom.hh" -#include "Ram.hh" #include "CacheLine.hh" #include "serialize.hh" -#include "memory.hh" #include <iostream> @@ -11,15 +8,11 @@ namespace openmsx { RomMitsubishiMLTS2::RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom_) : Rom8kBBlocks(config, std::move(rom_)) - , ram(make_unique<Ram>(config, getName() + " RAM", "ML-TS2 RAM", 0x2000)) + , ram(config, getName() + " RAM", "ML-TS2 RAM", 0x2000) { reset(EmuTime::dummy()); } -RomMitsubishiMLTS2::~RomMitsubishiMLTS2() -{ -} - void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/) { setRom(2, 0); @@ -28,27 +21,25 @@ void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/) void RomMitsubishiMLTS2::writeMem(word address, byte value, EmuTime::param /*time*/) { if (address == 0x7FC0) { - byte bank = (value & 1) + (((value >> 2) & 1) << 1) + (((value >> 4) & 1) << 2); + byte bank = ((value & 0x10) >> 2) | // transform bit-pattern + ((value & 0x04) >> 1) | // ...a.b.c + ((value & 0x01) >> 0); // into 00000abc std::cerr << "Setting MLTS2 mapper page 1 to bank " << int(bank) << std::endl; setRom(2, bank); } else if ((0x6000 <= address) && (address < 0x8000)) { - (*ram)[address & 0x1FFF] = value; + ram[address & 0x1FFF] = value; } } byte RomMitsubishiMLTS2::readMem(word address, EmuTime::param time) { - if ((0x6000 <= address) && (address < 0x8000)) { - return (*ram)[address & 0x1FFF]; - } else { - return Rom8kBBlocks::readMem(address, time); - } + return peekMem(address, time); } byte RomMitsubishiMLTS2::peekMem(word address, EmuTime::param time) const { if ((0x6000 <= address) && (address < 0x8000)) { - return (*ram)[address & 0x1FFF]; + return ram[address & 0x1FFF]; } else { return Rom8kBBlocks::peekMem(address, time); } @@ -58,23 +49,26 @@ const byte* RomMitsubishiMLTS2::getReadCacheLine(word address) const { if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr; if ((0x6000 <= address) && (address < 0x8000)) { - return &(*ram)[address & 0x1FFF]; - } - if ((0x4000 <= address) && (address < 0x6000)) { - return &(rom[address & 0x1FFF]); + return &ram[address & 0x1FFF]; } - return unmappedRead; + return Rom8kBBlocks::getReadCacheLine(address); } byte* RomMitsubishiMLTS2::getWriteCacheLine(word address) const { if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr; if ((0x6000 <= address) && (address < 0x8000)) { - return &(*ram)[address & 0x1FFF]; + return const_cast<byte*>(&ram[address & 0x1FFF]); } return unmappedWrite; } +template<typename Archive> +void RomMitsubishiMLTS2::serialize(Archive& ar, unsigned /*version*/) +{ + ar.template serializeBase<Rom8kBBlocks>(*this); +} +INSTANTIATE_SERIALIZE_METHODS(RomMitsubishiMLTS2); REGISTER_MSXDEVICE(RomMitsubishiMLTS2, "RomMitsubishiMLTS2"); } // namespace openmsx diff --git a/src/memory/RomMitsubishiMLTS2.hh b/src/memory/RomMitsubishiMLTS2.hh index 344295e..a4b4c21 100644 --- a/src/memory/RomMitsubishiMLTS2.hh +++ b/src/memory/RomMitsubishiMLTS2.hh @@ -2,7 +2,7 @@ #define ROMMITSUBISHIMLTS2_HH #include "RomBlocks.hh" -#include <memory> +#include "Ram.hh" // PLEASE NOTE! // @@ -13,21 +13,23 @@ namespace openmsx { class Ram; -class RomMitsubishiMLTS2 : public Rom8kBBlocks +class RomMitsubishiMLTS2 final : public Rom8kBBlocks { public: RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom); - virtual ~RomMitsubishiMLTS2(); - virtual void reset(EmuTime::param time); - virtual void writeMem(word address, byte value, EmuTime::param time); - virtual byte readMem(word address, EmuTime::param time) override; - virtual byte peekMem(word address, EmuTime::param time) const override; - virtual byte* getWriteCacheLine(word address) const override; - virtual const byte* getReadCacheLine(word address) const override; + void reset(EmuTime::param time) override; + void writeMem(word address, byte value, EmuTime::param time) override; + byte readMem(word address, EmuTime::param time) override; + byte peekMem(word address, EmuTime::param time) const override; + byte* getWriteCacheLine(word address) const override; + const byte* getReadCacheLine(word address) const override; + + template<typename Archive> + void serialize(Archive& ar, unsigned version); private: - const std::unique_ptr<Ram> ram; + Ram ram; }; } // namespace openmsx hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-06-01 21:25:45
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 99e0f001e83edd733aeed98f110ad1bc922090dd (commit) from a180809412df3c90282b18a62ef483da34d18360 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 99e0f001e83edd733aeed98f110ad1bc922090dd Author: Manuel Bilderbeek <Man...@gm...> Date: Mon Jun 1 23:25:20 2015 +0200 Added some more findings on this Sony HB-101 ----------------------------------------------------------------------- Summary of changes: share/machines/Sony_HB-101.xml | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/share/machines/Sony_HB-101.xml b/share/machines/Sony_HB-101.xml index d16bf1b..4c07bd6 100644 --- a/share/machines/Sony_HB-101.xml +++ b/share/machines/Sony_HB-101.xml @@ -15,7 +15,7 @@ https://plus.google.com/photos/112629367302659371233/albums/6155507573429019985 - Z80: SHARP LH0080A z80A-CPU-D + Z80: SHARP LH0080A Z80A-CPU-D PPI: NEC D8255AC-5 PSG: Yamaha YM2149F VDP: TMS9118NL @@ -91,7 +91,7 @@ <ROM id="Personal Data Bank"> <rom> <filename>hb-101_firmware.rom</filename> - <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM --> + <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM. Moreover, we found out that all unconnected memory showed as 0x7E (but unconnected I/O ports showed 0xFF) --> </rom> <mem base="0x4000" size="0x4000"/> </ROM> hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-06-01 20:58:26
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via a180809412df3c90282b18a62ef483da34d18360 (commit) via c50716a9659baa9f5997611af573fd2b0b39cba7 (commit) from 8f8ec53e9eae935cf50fd1dd57bc5fdcc796d7ad (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a180809412df3c90282b18a62ef483da34d18360 Author: Manuel Bilderbeek <Man...@gm...> Date: Mon Jun 1 22:57:03 2015 +0200 Added (Japanese) Sony HB-101, thanks to Werner Kai commit c50716a9659baa9f5997611af573fd2b0b39cba7 Author: Manuel Bilderbeek <Man...@gm...> Date: Mon Jun 1 21:16:21 2015 +0200 Document some ident.bas findings. ----------------------------------------------------------------------- Summary of changes: .../machines/{Sony_HB-101P.xml => Sony_HB-101.xml} | 44 +++++++++++++++---- share/machines/WIP_Mitsubishi_ML-TS2.xml | 6 +++ 2 files changed, 40 insertions(+), 10 deletions(-) copy share/machines/{Sony_HB-101P.xml => Sony_HB-101.xml} (51%) diff --git a/share/machines/Sony_HB-101P.xml b/share/machines/Sony_HB-101.xml similarity index 51% copy from share/machines/Sony_HB-101P.xml copy to share/machines/Sony_HB-101.xml index 666c010..d16bf1b 100644 --- a/share/machines/Sony_HB-101P.xml +++ b/share/machines/Sony_HB-101.xml @@ -4,31 +4,55 @@ <info> <manufacturer>Sony</manufacturer> - <code>HB-101P</code> - <release_year>1985?</release_year> + <code>HB-101</code> + <release_year>1984</release_year> <description/> <type>MSX</type> </info> + <!-- + Info based on Werner Kai's red Sony HB-101 with serial 207174. + + https://plus.google.com/photos/112629367302659371233/albums/6155507573429019985 + + Z80: SHARP LH0080A z80A-CPU-D + PPI: NEC D8255AC-5 + PSG: Yamaha YM2149F + VDP: TMS9118NL + 1x OKI M38128A 16Kx8 Mask ROM + 1x Hitachi HN613256P 32Kx8 mask rom + + VDP 4k/16k: NO + VDP has address latch: NO + VDP has sprite clones: YES + VDP has screen 2 mirrored mode: YES + VDP has mode 3 mixed mode: YES + Z80 scf: 01C529ED01D429FDC (dunno) + Z80 cpl: 3AFF12D7 (standard) + Z80 out (c),0: 0 (MSX) + PSG pin 6/7 quirk: C (YES) + PSGmask: YM2149 like + --> + <CassettePort/> <devices> <PPI id="ppi"> <key_ghosting>true</key_ghosting> - <key_ghosting_sgc_protected>true</key_ghosting_sgc_protected> + <key_ghosting_sgc_protected>false</key_ghosting_sgc_protected> <sound> <volume>16000</volume> </sound> <io base="0xA8" num="4"/> - <keyboard_type>int</keyboard_type> + <keyboard_type>jp_ansi</keyboard_type> <has_keypad>false</has_keypad> <code_kana_locks>false</code_kana_locks> <graph_locks>false</graph_locks> </PPI> <VDP id="VDP"> - <version>TMS9129</version> + <version>TMS9118</version> <io base="0x98" num="2"/> </VDP> @@ -48,12 +72,12 @@ <primary slot="0"> <RAM id="Main RAM"> - <mem base="0x8000" size="0x8000"/> + <mem base="0xC000" size="0x4000"/> </RAM> <ROM id="MSX BIOS with BASIC ROM"> <rom> - <filename>hb-101p_basic-bios1.rom</filename> - <sha1>5e7c8eab238712d1e18b0219c0f4d4dae180420d</sha1> <!-- same as Sony HB-201P, verified by Ruben Arraya --> + <filename>hb-101_basic-bios1.rom</filename> + <sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1> </rom> <mem base="0x0000" size="0x8000"/> </ROM> @@ -66,8 +90,8 @@ <primary slot="3"> <ROM id="Personal Data Bank"> <rom> - <filename>hb-101p_firmware.rom</filename> - <sha1>8ffc24677fd9d2606a79718764261cdf02434f0a</sha1> <!-- different than Sony HB-201P, verified by Ruben Arraya --> + <filename>hb-101_firmware.rom</filename> + <sha1>64adb7fcf9b86f59d8658badb02f58e61bb15712</sha1> <!-- note: original ROM dump showed a 2nd 16kB, but that one was completely 0x7E. As there's only a 16kB and a 32kB mask ROM on the PCB, it must really be a 16kB ROM --> </rom> <mem base="0x4000" size="0x4000"/> </ROM> diff --git a/share/machines/WIP_Mitsubishi_ML-TS2.xml b/share/machines/WIP_Mitsubishi_ML-TS2.xml index 59734c6..f353a18 100644 --- a/share/machines/WIP_Mitsubishi_ML-TS2.xml +++ b/share/machines/WIP_Mitsubishi_ML-TS2.xml @@ -8,6 +8,12 @@ Mobo shows some modem chip: MP7246 JPN 8719δ CPU: NEC D780C -1 S1985 MSX ENGINE + + z80 scf: 01C501ED01D401C (NEC) + z80 cpl: 3AFF12D7 (standard) + Z80 out (c),0: 0 (MSX) + PSG pin 6/7 quirk: C (YES) + PSGmask: AY8910-like --> <info> hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-06-01 18:34:16
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 8f8ec53e9eae935cf50fd1dd57bc5fdcc796d7ad (commit) via 15aac5ab1196814fedb0f9f6e86636a62a58242c (commit) via 7712257f0db33e2e2257347e39d2afee204927b3 (commit) via 3bb7cde0e13cc5ae94526ebaf8cd844dc91980be (commit) via f1925a61ef43d328f0adb4009f2f90dd237ade3b (commit) via a560e1bf8d0fbb4465f9a55e2bf8df584191a91b (commit) from 198d2619fe368e7764ec47766c84c50e6bebc3c4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8f8ec53e9eae935cf50fd1dd57bc5fdcc796d7ad Author: m9710797 <ver...@gm...> Date: Mon Jun 1 20:18:50 2015 +0200 Tweak '"::" + machineID + "::" + name' string calculation Replace "::" + machineID + "::" + name with machineID + name but store the subexpression "::" + machineID + "::" inside the (new) machineID variable. This patch has 1 unintentional side effect. (In related code) before we called namespace create ::foo {} now that becomes namespace create ::foo:: {} and similar for "namespace delete", but I verified that both variants have the same effect. The motivation for this patch is the following: when looking at some profile results I noticed that the Tcl setting related functions perform relatively many string manipulations. This patch is one small step to improve that. (I'm still playing with other improvements but they are not quite ready yet). commit 15aac5ab1196814fedb0f9f6e86636a62a58242c Author: m9710797 <ver...@gm...> Date: Mon Jun 1 19:26:01 2015 +0200 Inline some small frequently called functions These showed up higher than I expected in a profile of startup speed. Inlining them gives a small but measurable speedup. Counter intuitively code size actually goes down when inlining these functions (I measured debug, devel, opt, LTO build flavours) but that might simply be because of now different (automatic) inlining decisions made by the compiler, because the functions are not _so_ simple that they are shorter than a function call. As expected the LTO flavour (Link Time Optimizations) shows little speed improvements. So hopefully in a few years these kind of inlining tweaks can be fully left to the compiler. (Once people stop complaining about slow build times ;-) commit 7712257f0db33e2e2257347e39d2afee204927b3 Author: Wouter Vermaelen <ver...@gm...> Date: Wed May 27 16:48:49 2015 +0200 [4/4] use String32 instead of string_ref in RomInfo The previous patches in this series already mentioned the key ideas, but I'll repeat/summarize them again below. When parsing the (user+system) softwaredb.xml files we roughly take the following approach: 1) Read the full XML file in a memory buffer. 2) Parse the file using our rapidsax parser, this calls various callbacks. 3) These callbacks construct an additional data structure: a vector of RomInfo objects. Those objects refer to the strings in the XML buffer. (This means the buffer allocated in step 1 cannot be freed once parsing is done). On a 64-bit system the size of a string_ref object is 16 bytes. Each RomInfo objects has 6 such string_ref objects (plus some other stuff). The strings that are referred to are typically not very large. So this means that the meta-data (I mean the vector of RomInfo objects) approaches the size of the original XML file. I measured about 600kB for the raw XML data and 430kB for the meta-data. In this patch series we greatly reduce the size of the meta-data. To do this we combine two ideas: - Instead of storing the size of the strings (in string_ref) we zero-terminate the strings (so we modify the in-memory copy of the XML file). This halves the size of the string_ref objects. (Operations on zero-terminated strings are often slightly slower compared to sized-strings, but these strings are only infrequently used so this doesn't matter.) - On 64-bit systems a pointer is 8-bytes. But 4 bytes are already sufficient to address 4GB of memory (I don't expect the size of the softwaredb.xml file to grow over 1MB, that's far below 4GB). So if we replace pointers with indices in a buffer we can again halve the cost of each string_ref object (but only on 64-bit systems). After these changes the size of the meta-data shrinks to about 176kB (from 430kB). That's not exactly 4x less because there are also some other members in RomInfo that remain unchanged. I also measured the startup speed using 'perf' and 'callgrind'. Both methods indicate small (less than 0.5%) but repeatable speedups. Speed was not the goal of this patch, but it's a nice bonus. commit 3bb7cde0e13cc5ae94526ebaf8cd844dc91980be Author: Wouter Vermaelen <ver...@gm...> Date: Thu May 21 16:34:09 2015 +0200 [3/n] Read user and system softwaredb.xml in a single buffer In a later patch in this series we will refer to strings using indices in a buffer. For this to work we need both user and system softwaredb.xml strings to reside in a single buffer. (And after the parsing has finished, we don't know/care anymore whether a RomInfo originated from the user or the system softwaredb.xml). commit f1925a61ef43d328f0adb4009f2f90dd237ade3b Author: m9710797 <ver...@gm...> Date: Wed May 27 19:22:44 2015 +0200 [2/4] Tweak rapidsax XML-parser One of the properties of our rapidsax parser is that it doesn't make any string copies. Instead it does XML-entity replacement in-place (in the original source buffer). The parser then passes references to parsed pieces of text (text or attributes) as string_ref objects to various callback methods. Before this patch series, the RomDatabase code stored those string_ref's inside RomInfo objects. A string_ref is basically a pointer and a size, it tells where to find the string and how long it is. In this patch series we get rid of the size-part. Instead of storing the size of each string we zero-terminate them. (We store many RomInfo's and typically use only very few, so this is a good trade-off). Because of the structure of XML files there's always room in the buffer to store the 0-terminator character. Though we can only overwrite the content of the buffer after the original character has been processed by the parser. This patch changes the order in the rapidsax code a bit so that it's always OK for a callback to 0-terminate the text it just received. commit a560e1bf8d0fbb4465f9a55e2bf8df584191a91b Author: m9710797 <ver...@gm...> Date: Thu May 28 18:53:14 2015 +0200 [1/4] Added String32.hh See comments in the code for more details. In short: - this does nothing on 32-bit systems - on 64-bit systems it halves the storage requirements to refer to a string in a buffer (a buffer which has a maximum size of 4GB) This will be used later in this patch series to space-optimize RomDatabase. ----------------------------------------------------------------------- Summary of changes: src/commands/Interpreter.cc | 4 +- src/commands/MSXCommandController.cc | 4 +- src/commands/MSXCommandController.hh | 2 +- src/memory/Rom.cc | 11 ++- src/memory/RomDatabase.cc | 106 +++++++++++++++++++++------------- src/memory/RomDatabase.hh | 4 +- src/memory/RomInfo.hh | 45 +++++++++----- src/utils/String32.hh | 42 +++++++++++++ src/utils/rapidsax.hh | 25 ++++++--- src/utils/sha1.cc | 16 ----- src/utils/sha1.hh | 15 ++++- src/utils/string_ref.cc | 28 --------- src/utils/string_ref.hh | 23 ++++++- 13 files changed, 202 insertions(+), 123 deletions(-) create mode 100644 src/utils/String32.hh diff --git a/src/commands/Interpreter.cc b/src/commands/Interpreter.cc index 75999f2..2d84191 100644 --- a/src/commands/Interpreter.cc +++ b/src/commands/Interpreter.cc @@ -408,12 +408,12 @@ char* Interpreter::traceProc(ClientData clientData, Tcl_Interp* interp, void Interpreter::createNamespace(const std::string& name) { - execute("namespace eval ::" + name + " {}"); + execute("namespace eval " + name + " {}"); } void Interpreter::deleteNamespace(const std::string& name) { - execute("namespace delete ::" + name); + execute("namespace delete " + name); } void Interpreter::poll() diff --git a/src/commands/MSXCommandController.cc b/src/commands/MSXCommandController.cc index d5c0716..27b426e 100644 --- a/src/commands/MSXCommandController.cc +++ b/src/commands/MSXCommandController.cc @@ -29,7 +29,7 @@ MSXCommandController::MSXCommandController( , reactor(reactor_) , motherboard(motherboard_) , msxEventDistributor(msxEventDistributor_) - , machineID(machineID_) + , machineID("::" + machineID_ + "::") { globalCommandController.getInterpreter().createNamespace(machineID); @@ -61,7 +61,7 @@ MSXCommandController::~MSXCommandController() string MSXCommandController::getFullName(string_ref name) { - return "::" + machineID + "::" + name; + return machineID + name; } void MSXCommandController::registerCommand(Command& command, const string& str) diff --git a/src/commands/MSXCommandController.hh b/src/commands/MSXCommandController.hh index 13bf44e..03fb311 100644 --- a/src/commands/MSXCommandController.hh +++ b/src/commands/MSXCommandController.hh @@ -79,7 +79,7 @@ private: Reactor& reactor; MSXMotherBoard& motherboard; MSXEventDistributor& msxEventDistributor; - const std::string& machineID; + std::string machineID; std::unique_ptr<InfoCommand> machineInfoCommand; StringMap<Command*> commandMap; diff --git a/src/memory/Rom.cc b/src/memory/Rom.cc index b014f6a..e39859b 100644 --- a/src/memory/Rom.cc +++ b/src/memory/Rom.cc @@ -261,10 +261,13 @@ void Rom::init(MSXMotherBoard& motherBoard, const XMLElement& config, // TODO fix this, this is a hack that depends heavily on // HardwareConig::createRomConfig if (StringOp::startsWith(name, "MSXRom")) { - const auto* romInfo = motherBoard.getReactor(). - getSoftwareDatabase().fetchRomInfo(getOriginalSHA1()); - if (romInfo && !romInfo->getTitle().empty()) { - name = romInfo->getTitle().str(); + auto& db = motherBoard.getReactor().getSoftwareDatabase(); + string_ref title; + if (const auto* romInfo = db.fetchRomInfo(getOriginalSHA1())) { + title = romInfo->getTitle(db.getBufferStart()); + } + if (!title.empty()) { + name = title.str(); } else { // unknown ROM, use file name name = file.getOriginalName(); diff --git a/src/memory/RomDatabase.cc b/src/memory/RomDatabase.cc index f32a501..5d9b22c 100644 --- a/src/memory/RomDatabase.cc +++ b/src/memory/RomDatabase.cc @@ -8,6 +8,7 @@ #include "CliComm.hh" #include "StringOp.hh" #include "StringMap.hh" +#include "String32.hh" #include "outer.hh" #include "rapidsax.hh" #include "unreachable.hh" @@ -25,10 +26,11 @@ class DBParser : public rapidsax::NullHandler { public: DBParser(RomDatabase::RomDB& db_, UnknownTypes& unknownTypes_, - CliComm& cliComm_) + CliComm& cliComm_, char* bufStart_) : db(db_) , unknownTypes(unknownTypes_) , cliComm(cliComm_) + , bufStart(bufStart_) , state(BEGIN) , unknownLevel(0) , initialSize(db.size()) @@ -45,6 +47,7 @@ public: string_ref getSystemID() const { return systemID; } private: + String32 cIndex(string_ref str); void addEntries(); void addAllEntries(); @@ -70,9 +73,9 @@ private: }; struct Dump { - string_ref remark; + String32 remark; Sha1Sum hash; - string_ref origData; + String32 origData; RomType type; bool origValue; }; @@ -80,6 +83,7 @@ private: RomDatabase::RomDB& db; UnknownTypes& unknownTypes; CliComm& cliComm; + char* bufStart; string_ref systemID; string_ref type; @@ -87,10 +91,10 @@ private: vector<Dump> dumps; string_ref system; - string_ref title; - string_ref company; - string_ref year; - string_ref country; + String32 title; + String32 company; + String32 year; + String32 country; int genMSXid; State state; @@ -115,10 +119,10 @@ void DBParser::start(string_ref tag) case SOFTWAREDB: if (tag == "software") { system.clear(); - title.clear(); - company.clear(); - year.clear(); - country.clear(); + title = 0; + company = 0; + year = 0; + country = 0; genMSXid = 0; dumps.clear(); state = SOFTWARE; @@ -306,16 +310,16 @@ void DBParser::text(string_ref text) system = text; break; case TITLE: - title = text; + title = cIndex(text); break; case COMPANY: - company = text; + company = cIndex(text); break; case YEAR: - year = text; + year = cIndex(text); break; case COUNTRY: - country = text; + country = cIndex(text); break; case GENMSXID: try { @@ -328,7 +332,7 @@ void DBParser::text(string_ref text) } break; case ORIGINAL: - dumps.back().origData = text; + dumps.back().origData = cIndex(text); break; case TYPE: type = text; @@ -341,7 +345,7 @@ void DBParser::text(string_ref text) break; case DUMP_REMARK: case DUMP_TEXT: - dumps.back().remark = text; + dumps.back().remark = cIndex(text); break; case BEGIN: case SOFTWAREDB: @@ -355,6 +359,16 @@ void DBParser::text(string_ref text) } } +String32 DBParser::cIndex(string_ref str) +{ + auto* begin = const_cast<char*>(str.data()); + auto* end = begin + str.size(); + *end = 0; + String32 result; + toString32(bufStart, begin, result); + return result; +} + // called on </software> void DBParser::addEntries() { @@ -535,18 +549,11 @@ void DBParser::doctype(string_ref text) systemID = t.substr(0, pos2); } -static void parseDB(CliComm& cliComm, const string& filename, - MemBuffer<char>& buf, RomDatabase::RomDB& db, - UnknownTypes& unknownTypes) +static void parseDB(CliComm& cliComm, char* buf, char* bufStart, + RomDatabase::RomDB& db, UnknownTypes& unknownTypes) { - File file(filename); - auto size = file.getSize(); - buf.resize(size + 1); - file.read(buf.data(), size); - buf[size] = 0; - - DBParser handler(db, unknownTypes, cliComm); - rapidsax::parse<rapidsax::trimWhitespace>(handler, buf.data()); + DBParser handler(db, unknownTypes, cliComm, bufStart); + rapidsax::parse<rapidsax::trimWhitespace>(handler, buf); if (handler.getSystemID() != "softwaredb1.dtd") { throw rapidsax::ParseError( @@ -563,14 +570,12 @@ RomDatabase::RomDatabase(GlobalCommandController& commandController, CliComm& cl UnknownTypes unknownTypes; // first user- then system-directory vector<string> paths = systemFileContext().getPaths(); + vector<File> files; + size_t bufferSize = 0; for (auto& p : paths) { - string filename = FileOperations::join(p, "softwaredb.xml"); try { - buffers.emplace_back(); - parseDB(cliComm, filename, buffers.back(), db, unknownTypes); - } catch (rapidsax::ParseError& e) { - cliComm.printWarning(StringOp::Builder() << - "Rom database parsing failed: " << e.what()); + files.emplace_back(FileOperations::join(p, "softwaredb.xml")); + bufferSize += files.back().getSize() + 1; } catch (MSXException& /*e*/) { // Ignore. It's not unusual the DB in the user // directory is not found. In case there's an error @@ -578,6 +583,26 @@ RomDatabase::RomDatabase(GlobalCommandController& commandController, CliComm& cl // warning, but that's done below. } } + buffer.resize(bufferSize); + size_t bufferOffset = 0; + for (auto& file : files) { + try { + auto size = file.getSize(); + auto* buf = &buffer[bufferOffset]; + bufferOffset += size + 1; + + file.read(buf, size); + buf[size] = 0; + + parseDB(cliComm, buf, buffer.data(), db, unknownTypes); + } catch (rapidsax::ParseError& e) { + cliComm.printWarning(StringOp::Builder() << + "Rom database parsing failed: " << e.what()); + } catch (MSXException& /*e*/) { + // Ignore, see above + } + } + if (bufferSize) buffer[0] = 0; if (db.empty()) { cliComm.printWarning( "Couldn't load software database.\n" @@ -626,18 +651,19 @@ void RomDatabase::SoftwareInfoTopic::execute( "Software with sha1sum " + sha1sum.toString() + " not found"); } + const char* bufStart = romDatabase.buffer.data(); result.addListElement("title"); - result.addListElement(romInfo->getTitle()); + result.addListElement(romInfo->getTitle(bufStart)); result.addListElement("year"); - result.addListElement(romInfo->getYear()); + result.addListElement(romInfo->getYear(bufStart)); result.addListElement("company"); - result.addListElement(romInfo->getCompany()); + result.addListElement(romInfo->getCompany(bufStart)); result.addListElement("country"); - result.addListElement(romInfo->getCountry()); + result.addListElement(romInfo->getCountry(bufStart)); result.addListElement("orig_type"); - result.addListElement(romInfo->getOrigType()); + result.addListElement(romInfo->getOrigType(bufStart)); result.addListElement("remark"); - result.addListElement(romInfo->getRemark()); + result.addListElement(romInfo->getRemark(bufStart)); result.addListElement("original"); result.addListElement(romInfo->getOriginal()); result.addListElement("mapper_type_name"); diff --git a/src/memory/RomDatabase.hh b/src/memory/RomDatabase.hh index f349f51..87734de 100644 --- a/src/memory/RomDatabase.hh +++ b/src/memory/RomDatabase.hh @@ -26,9 +26,11 @@ public: */ const RomInfo* fetchRomInfo(const Sha1Sum& sha1sum) const; + const char* getBufferStart() const { return buffer.data(); } + private: RomDB db; - std::vector<MemBuffer<char>> buffers; + MemBuffer<char> buffer; struct SoftwareInfoTopic final : InfoTopic { SoftwareInfoTopic(InfoCommand& openMSXInfoCommand); diff --git a/src/memory/RomInfo.hh b/src/memory/RomInfo.hh index fcce89f..890e959 100644 --- a/src/memory/RomInfo.hh +++ b/src/memory/RomInfo.hh @@ -2,6 +2,7 @@ #define ROMINFO_HH #include "RomTypes.hh" +#include "String32.hh" #include "string_ref.hh" #include <vector> #include <utility> @@ -11,10 +12,10 @@ namespace openmsx { class RomInfo { public: - RomInfo(string_ref title_, string_ref year_, - string_ref company_, string_ref country_, - bool original_, string_ref origType_, - string_ref remark_, RomType romType_, + RomInfo(String32 title_, String32 year_, + String32 company_, String32 country_, + bool original_, String32 origType_, + String32 remark_, RomType romType_, int genMSXid_) : title (title_) , year (year_) @@ -28,12 +29,24 @@ public: { } - const string_ref getTitle() const { return title; } - const string_ref getYear() const { return year; } - const string_ref getCompany() const { return company; } - const string_ref getCountry() const { return country; } - const string_ref getOrigType() const { return origType; } - const string_ref getRemark() const { return remark; } + const string_ref getTitle (const char* buf) const { + return fromString32(buf, title); + } + const string_ref getYear (const char* buf) const { + return fromString32(buf, year); + } + const string_ref getCompany (const char* buf) const { + return fromString32(buf, company); + } + const string_ref getCountry (const char* buf) const { + return fromString32(buf, country); + } + const string_ref getOrigType(const char* buf) const { + return fromString32(buf, origType); + } + const string_ref getRemark (const char* buf) const { + return fromString32(buf, remark); + } RomType getRomType() const { return romType; } bool getOriginal() const { return original; } int getGenMSXid() const { return genMSXid; } @@ -45,12 +58,12 @@ public: static unsigned getBlockSize (RomType type); private: - string_ref title; - string_ref year; - string_ref company; - string_ref country; - string_ref origType; - string_ref remark; + String32 title; + String32 year; + String32 company; + String32 country; + String32 origType; + String32 remark; RomType romType; int genMSXid; bool original; diff --git a/src/utils/String32.hh b/src/utils/String32.hh new file mode 100644 index 0000000..e918c78 --- /dev/null +++ b/src/utils/String32.hh @@ -0,0 +1,42 @@ +#ifndef STRING32_HH +#define STRING32_HH + +#include <cassert> +#include <cstdint> +#include <limits> +#include <type_traits> + +// Given a buffer of max size 4GB, 32 bits are enough to address each position +// in that buffer. +// - On 32-bit systems we can use a pointer to a location in the buffer. +// - On 64-bit systems a pointer is too large (64 bit), but an index in the +// buffer works fine. (An index works fine on 32-bit systems as well, but is +// slightly less efficient). +// The String32 helper abstracts the difference between the two above +// approaches. In both cases it is a 32-bit type (hence the name). And on +// both 32/64-bit systems it uses the more effient implementation. + +using String32 = std::conditional< + (sizeof(char*) > sizeof(uint32_t)), // is a pointer bigger than an uint32_t + uint32_t, // yes -> use uint32_t + const char*>::type; // no -> directly use pointer + +// convert string in buffer to String32 +inline void toString32(const char* buffer, const char* str, uint32_t& result) { + assert(buffer <= str); + assert(str < (buffer + std::numeric_limits<uint32_t>::max())); + result = str - buffer; +} +inline void toString32(const char* /*buffer*/, const char* str, const char*& result) { + result = str; +} + +// convert String32 back to string in buffer +inline const char* fromString32(const char* buffer, uint32_t str32) { + return buffer + str32; +} +inline const char* fromString32(const char* /*buffer*/, const char* str32) { + return str32; +} + +#endif diff --git a/src/utils/rapidsax.hh b/src/utils/rapidsax.hh index c62a4dc..51b5a46 100644 --- a/src/utils/rapidsax.hh +++ b/src/utils/rapidsax.hh @@ -14,6 +14,7 @@ // RapidXml produces a DOM-like output. This parser has a SAX-like interface. #include "string_ref.hh" +#include <cassert> #include <cstdint> namespace rapidsax { @@ -496,6 +497,13 @@ private: } } + // check next char before calling handler.text() + if (*text == '\0') { + throw ParseError("unexpected end of data", text); + } else { + assert(*text == '<'); + } + // Handle text, but only if non-empty. auto len = end - value; if (len) handler.text(string_ref(value, len)); @@ -620,10 +628,10 @@ private: char* contentsStart = text; // start before ws is skipped skip<WhitespacePred>(text); // Skip ws between > and contents -afterText: // After parseText() jump here instead of continuing - // the loop, because skipping whitespace is unnecessary. switch (*text) { case '<': // Node closing or child node +afterText: // After parseText() jump here instead of continuing + // the loop, because skipping whitespace is unnecessary. if (text[1] == '/') { // Node closing text += 2; // skip '</' @@ -689,6 +697,13 @@ afterText: // After parseText() jump here instead of continuing char* valueEnd = (quote == '\'') ? skipAndExpand<AttPred1, AttPurePred1, FLAGS2>(text) : skipAndExpand<AttPred2, AttPurePred2, FLAGS2>(text); + // Make sure that end quote is present + // check before calling handler.xxx() + if (*text != quote) { + throw ParseError("expected ' or \"", text); + } + ++text; // skip quote + if (!declaration) { handler.attribute(string_ref(name, nameEnd), string_ref(value, valueEnd)); @@ -697,12 +712,6 @@ afterText: // After parseText() jump here instead of continuing string_ref(value, valueEnd)); } - // Make sure that end quote is present - if (*text != quote) { - throw ParseError("expected ' or \"", text); - } - ++text; // skip quote - skip<WhitespacePred>(text); // skip ws after value } } diff --git a/src/utils/sha1.cc b/src/utils/sha1.cc index 250881c..be60056 100644 --- a/src/utils/sha1.cc +++ b/src/utils/sha1.cc @@ -154,22 +154,6 @@ void Sha1Sum::clear() } } -bool Sha1Sum::operator==(const Sha1Sum& other) const -{ - for (int i = 0; i < 5; ++i) { - if (a[i] != other.a[i]) return false; - } - return true; -} - -bool Sha1Sum::operator<(const Sha1Sum& other) const -{ - for (int i = 0; i < 5-1; ++i) { - if (a[i] != other.a[i]) return a[i] < other.a[i]; - } - return a[5-1] < other.a[5-1]; -} - // class SHA1 diff --git a/src/utils/sha1.hh b/src/utils/sha1.hh index af4fb0b..a135c92 100644 --- a/src/utils/sha1.hh +++ b/src/utils/sha1.hh @@ -31,9 +31,20 @@ public: bool empty() const; void clear(); - bool operator==(const Sha1Sum& other) const; + bool operator==(const Sha1Sum& other) const { + for (int i = 0; i < 5; ++i) { + if (a[i] != other.a[i]) return false; + } + return true; + } bool operator!=(const Sha1Sum& other) const { return !(*this == other); } - bool operator< (const Sha1Sum& other) const; + bool operator< (const Sha1Sum& other) const { + for (int i = 0; i < 5-1; ++i) { + if (a[i] != other.a[i]) return a[i] < other.a[i]; + } + return a[5-1] < other.a[5-1]; + } + bool operator<=(const Sha1Sum& other) const { return !(other < *this); } bool operator> (const Sha1Sum& other) const { return (other < *this); } bool operator>=(const Sha1Sum& other) const { return !(*this < other); } diff --git a/src/utils/string_ref.cc b/src/utils/string_ref.cc index 42a2f53..1185859 100644 --- a/src/utils/string_ref.cc +++ b/src/utils/string_ref.cc @@ -16,28 +16,6 @@ string string_ref::str() const } -// mutators - -void string_ref::remove_prefix(size_type n) -{ - if (n <= siz) { - dat += n; - siz -= n; - } else { - clear(); - } -} - -void string_ref::remove_suffix(size_type n) -{ - if (n <= siz) { - siz -= n; - } else { - clear(); - } -} - - // string operations with the same semantics as std::string int string_ref::compare(string_ref rhs) const @@ -157,12 +135,6 @@ bool string_ref::ends_with(char x) const // Comparison operators -bool operator==(string_ref x, string_ref y) -{ - return (x.size() == y.size()) && - (memcmp(x.data(), y.data(), x.size()) == 0); -} - bool operator< (string_ref x, string_ref y) { return x.compare(y) < 0; diff --git a/src/utils/string_ref.hh b/src/utils/string_ref.hh index ce88a2b..540cf80 100644 --- a/src/utils/string_ref.hh +++ b/src/utils/string_ref.hh @@ -73,8 +73,21 @@ public: // mutators void clear() { siz = 0; } // no need to change 'dat' - void remove_prefix(size_type n); - void remove_suffix(size_type n); + void remove_prefix(size_type n) { + if (n <= siz) { + dat += n; + siz -= n; + } else { + clear(); + } + } + void remove_suffix(size_type n) { + if (n <= siz) { + siz -= n; + } else { + clear(); + } + } void pop_back() { remove_suffix(1); } void pop_front() { remove_prefix(1); } @@ -108,7 +121,11 @@ private: // Comparison operators -bool operator==(string_ref x, string_ref y); +inline bool operator==(string_ref x, string_ref y) { + return (x.size() == y.size()) && + (memcmp(x.data(), y.data(), x.size()) == 0); +} + bool operator< (string_ref x, string_ref y); inline bool operator!=(string_ref x, string_ref y) { return !(x == y); } inline bool operator> (string_ref x, string_ref y) { return (y < x); } hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-31 21:37:18
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 198d2619fe368e7764ec47766c84c50e6bebc3c4 (commit) from c762a8838306c6e14b3acba9caf27ace3fd546c4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 198d2619fe368e7764ec47766c84c50e6bebc3c4 Author: Manuel Bilderbeek <Man...@gm...> Date: Sun May 31 23:36:55 2015 +0200 Try to fix Windows build due to added Mitsubishi mapper code ----------------------------------------------------------------------- Summary of changes: build/msvc/openmsx.vcxproj | 14 ++++++++------ build/msvc/openmsx.vcxproj.filters | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/build/msvc/openmsx.vcxproj b/build/msvc/openmsx.vcxproj index d4f0ce6..1a50847 100644 --- a/build/msvc/openmsx.vcxproj +++ b/build/msvc/openmsx.vcxproj @@ -499,6 +499,7 @@ <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMajutsushi.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomManbow2.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMSXtra.cc" /> + <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMultiRom.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMatraInk.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMSXDOS2.cc" /> @@ -638,14 +639,14 @@ <ClCompile Include="$(OpenMSXSrcDir)\video\GLSnow.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\GLTVScaler.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\GLUtil.cc" /> - <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.cc" /> + <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ2xLiteScaler.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ2xScaler.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ3xLiteScaler.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\HQ3xScaler.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\Icon.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\Layer.cc" /> - <ClCompile Include="$(OpenMSXSrcDir)\video\GLContext.cc" /> + <ClCompile Include="$(OpenMSXSrcDir)\video\GLContext.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\scalers\Multiply32.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\OutputSurface.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\video\PixelRenderer.cc" /> @@ -1023,6 +1024,7 @@ <None Include="$(OpenMSXSrcDir)\memory\RomKonamiSCC.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomMajutsushi.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomManbow2.hh" /> + <None Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomMSXtra.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomMultiRom.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomMatraInk.hh" /> @@ -1044,8 +1046,8 @@ <None Include="$(OpenMSXSrcDir)\memory\RomZemina90in1.hh" /> <None Include="$(OpenMSXSrcDir)\memory\SRAM.hh" /> <None Include="$(OpenMSXSrcDir)\memory\MegaFlashRomSCCPlus.hh" /> - <None Include="$(OpenMSXSrcDir)\memory\MegaFlashRomSCCPlusSD.hh" /> - <None Include="$(OpenMSXSrcDir)\memory\SdCard.cc.hh" /> + <None Include="$(OpenMSXSrcDir)\memory\MegaFlashRomSCCPlusSD.hh" /> + <None Include="$(OpenMSXSrcDir)\memory\SdCard.cc.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomDooly.hh" /> <None Include="$(OpenMSXSrcDir)\resource\openmsx.ico" /> <None Include="$(OpenMSXSrcDir)\settings\BooleanSetting.hh" /> @@ -1219,7 +1221,7 @@ <None Include="$(OpenMSXSrcDir)\video\scalers\HQCommon.hh" /> <None Include="$(OpenMSXSrcDir)\video\Icon.hh" /> <None Include="$(OpenMSXSrcDir)\video\Layer.hh" /> - <None Include="$(OpenMSXSrcDir)\video\GLContext.hh" /> + <None Include="$(OpenMSXSrcDir)\video\GLContext.hh" /> <None Include="$(OpenMSXSrcDir)\video\LayerListener.hh" /> <None Include="$(OpenMSXSrcDir)\video\scalers\LineScalers.hh" /> <None Include="$(OpenMSXSrcDir)\video\scalers\Multiply32.hh" /> @@ -1233,7 +1235,7 @@ <None Include="$(OpenMSXSrcDir)\video\Renderer.hh" /> <None Include="$(OpenMSXSrcDir)\video\RendererFactory.hh" /> <None Include="$(OpenMSXSrcDir)\video\RenderSettings.hh" /> - <None Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.hh" /> + <None Include="$(OpenMSXSrcDir)\video\scalers\GLDefaultScaler.hh" /> <None Include="$(OpenMSXSrcDir)\video\scalers\RGBTriplet3xScaler.hh" /> <None Include="$(OpenMSXSrcDir)\video\scalers\SaI2xScaler.hh" /> <None Include="$(OpenMSXSrcDir)\video\scalers\SaI3xScaler.hh" /> diff --git a/build/msvc/openmsx.vcxproj.filters b/build/msvc/openmsx.vcxproj.filters index 9343539..04eb9cb 100644 --- a/build/msvc/openmsx.vcxproj.filters +++ b/build/msvc/openmsx.vcxproj.filters @@ -1327,6 +1327,7 @@ <ClCompile Include="$(OpenMSXSrcDir)\fdc\AVTFDC.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\input\Touchpad.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomSuperSwangi.cc" /> + <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMSXtra.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\memory\RomMultiRom.cc" /> <ClCompile Include="$(OpenMSXSrcDir)\settings\ReadOnlySetting.cc" /> @@ -2786,6 +2787,7 @@ <None Include="$(OpenMSXSrcDir)\fdc\AVTFDC.hh" /> <None Include="$(OpenMSXSrcDir)\input\Touchpad.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomSuperSwangi.hh" /> + <None Include="$(OpenMSXSrcDir)\memory\RomMitsubishiMLTS2.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomMSXtra.hh" /> <None Include="$(OpenMSXSrcDir)\memory\RomMultiRom.hh" /> <None Include="$(OpenMSXSrcDir)\settings\VideoSourceSetting.hh" /> hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-31 21:13:02
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via c762a8838306c6e14b3acba9caf27ace3fd546c4 (commit) from 9ca42984977b66f41a397b996c23bb60e672a2af (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c762a8838306c6e14b3acba9caf27ace3fd546c4 Author: Manuel Bilderbeek <Man...@gm...> Date: Sun May 31 23:11:42 2015 +0200 Added WIP of Mitsubishi ML-TS2, thanks to Werner Kai ----------------------------------------------------------------------- Summary of changes: ...{Sony_HB-F900.xml => WIP_Mitsubishi_ML-TS2.xml} | 76 +++++++++--------- src/memory/RomFactory.cc | 4 + src/memory/RomInfo.cc | 1 + src/memory/RomMitsubishiMLTS2.cc | 80 ++++++++++++++++++++ src/memory/RomMitsubishiMLTS2.hh | 35 +++++++++ src/memory/RomTypes.hh | 1 + 6 files changed, 159 insertions(+), 38 deletions(-) copy share/machines/{Sony_HB-F900.xml => WIP_Mitsubishi_ML-TS2.xml} (62%) create mode 100644 src/memory/RomMitsubishiMLTS2.cc create mode 100644 src/memory/RomMitsubishiMLTS2.hh diff --git a/share/machines/Sony_HB-F900.xml b/share/machines/WIP_Mitsubishi_ML-TS2.xml similarity index 62% copy from share/machines/Sony_HB-F900.xml copy to share/machines/WIP_Mitsubishi_ML-TS2.xml index db66913..59734c6 100644 --- a/share/machines/Sony_HB-F900.xml +++ b/share/machines/WIP_Mitsubishi_ML-TS2.xml @@ -2,22 +2,32 @@ <!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'> <msxconfig> +<!-- Information provided by Werner Kai. Thanks! + + Serial: 100954 + Mobo shows some modem chip: MP7246 JPN 8719δ + CPU: NEC D780C -1 + S1985 MSX ENGINE + --> + <info> - <manufacturer>Sony</manufacturer> - <code>HB-F900</code> - <release_year>1986</release_year> - <description/> + <manufacturer>Mitsubishi</manufacturer> + <code>ML-TS2</code> + <release_year>1987</release_year> + <description>Mitsubishi Telecom Station (with built in telephone). This hardware description file is a Work-In-Progress! It's certainly not correct.</description> <type>MSX2</type> </info> + <MapperReadBackBits>largest</MapperReadBackBits> + <CassettePort/> <devices> <Kanji id="Kanji ROM"> <rom> - <filename>hb-f900_kanjifont.rom</filename> - <sha1>6acaf2eeb57f65f7408235d5e07b7563229de799</sha1> + <filename>ml-ts2_kanjifont.rom</filename> + <sha1>f4dba5ba267b5dd1a35eb74a6ec4fd4d5ca9a1b4</sha1> </rom> <io base="0xD8" num="2" type="O"/> <io base="0xD9" num="1" type="I"/> @@ -43,7 +53,12 @@ <io base="0x98" num="2" type="I"/> </VDP> + <S1985 id="S1985"> + <sramname>ml-ts2_s1985.sram</sramname> + </S1985> + <PSG id="PSG"> + <type>AY8910</type> <keyboardlayout>50on</keyboardlayout> <sound> <volume>21000</volume> @@ -53,7 +68,7 @@ </PSG> <RTC id="Real time clock"> - <sramname>hb-f900.cmos</sramname> + <sramname>ml-ts2.cmos</sramname> <io base="0xB4" num="2" type="O"/> <io base="0xB5" num="1" type="I"/> </RTC> @@ -65,8 +80,8 @@ <primary slot="0"> <ROM id="MSX BIOS with BASIC ROM"> <rom> - <filename>hb-f900_basic-bios2.rom</filename> - <sha1>0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd</sha1> + <filename>ml-ts2_basic-bios2.rom</filename> + <sha1>bb608fe748ee88d45564ad8e3582c2222730b3b5</sha1> </rom> <mem base="0x0000" size="0x8000"/> </ROM> @@ -74,14 +89,12 @@ <primary external="true" slot="1"/> - <primary external="true" slot="2"/> - <primary slot="3"> <secondary slot="0"> <ROM id="MSX Sub ROM"> <rom> - <filename>hb-f900_msx2sub.rom</filename> + <filename>ml-ts2_msx2sub.rom</filename> <sha1>0fbd45ef3dd7bb82d4c31f1947884f411f1ca344</sha1> </rom> <mem base="0x0000" size="0x4000"/> @@ -89,38 +102,25 @@ </secondary> <secondary slot="1"> - <MemoryMapper id="Main RAM"> - <size>256</size> - <mem base="0x0000" size="0x10000"/> - </MemoryMapper> - </secondary> - - <secondary slot="2"> - <WD2793 id="Memory Mapped FDC"> - <connectionstyle>Sony</connectionstyle> - <motor_off_timeout_ms>4000</motor_off_timeout_ms> - <!-- The 2nd released version of this machine uses another disk rom: - <parameter name="filename">hb-f900_disk2.rom</parameter> - --> - <drives>2</drives> + <ROM id="ML-TS2 ROM"> <!-- has some complex mapper --> <rom> - <filename>hb-f900_disk.rom</filename> - <sha1>fc760d1d7b16370abc7eea39955f230b95b37df6</sha1> - </rom> - <mem base="0x4000" size="0x8000"/> - </WD2793> - </secondary> - - <secondary slot="3"> - <ROM id="HB-F900 Video Utility 1.10"> - <rom> - <filename>hb-f900_video-utility.rom</filename> - <sha1>558b7383544542cf7333700ff90c3efbf93ba2a3</sha1> + <filename>ml-ts2_firmware.rom</filename> + <sha1>73d1ce106501b9e8151b4214448537617d82667f</sha1> </rom> + <mappertype>MitsubishiMLTS2</mappertype> <!-- WIP implementation of the mapper --> <mem base="0x4000" size="0x4000"/> </ROM> </secondary> + <secondary slot="2"> + <MemoryMapper id="Main RAM"> + <mem base="0x0000" size="0x10000"/> + <size>64</size> + </MemoryMapper> + </secondary> + + <secondary slot="3"/> + </primary> </devices> diff --git a/src/memory/RomFactory.cc b/src/memory/RomFactory.cc index 92d5c9c..a42bfc9 100644 --- a/src/memory/RomFactory.cc +++ b/src/memory/RomFactory.cc @@ -16,6 +16,7 @@ #include "RomPadial16kB.hh" #include "RomSuperLodeRunner.hh" #include "RomSuperSwangi.hh" +#include "RomMitsubishiMLTS2.hh" #include "RomMSXDOS2.hh" #include "RomAscii16_2.hh" #include "RomRType.hh" @@ -248,6 +249,9 @@ unique_ptr<MSXDevice> create(const DeviceConfig& config) case ROM_SUPERSWANGI: result = make_unique<RomSuperSwangi>(config, move(rom)); break; + case ROM_MITSUBISHIMLTS2: + result = make_unique<RomMitsubishiMLTS2>(config, move(rom)); + break; case ROM_MSXDOS2: result = make_unique<RomMSXDOS2>(config, move(rom)); break; diff --git a/src/memory/RomInfo.cc b/src/memory/RomInfo.cc index d55b2e1..d6363eb 100644 --- a/src/memory/RomInfo.cc +++ b/src/memory/RomInfo.cc @@ -94,6 +94,7 @@ static void init() init(ROM_SUPERLODERUNNER,"SuperLodeRunner",0x4000, "Super Lode Runner"); init(ROM_SUPERSWANGI, "SuperSwangi" ,0x4000, "Super Swangi"); init(ROM_MSXDOS2, "MSXDOS2", 0x4000, "MSX-DOS2"); + init(ROM_MITSUBISHIMLTS2,"MitsubishiMLTS2",0x2000, "Mitsubishi ML-TS2 firmware"); init(ROM_MANBOW2, "Manbow2", 0x2000, "Manbow2"); init(ROM_MANBOW2_2, "Manbow2_2", 0x2000, "Manbow2 - Second Release"); init(ROM_HAMARAJANIGHT, "HamarajaNight", 0x2000, "Best of Hamaraja Night"); diff --git a/src/memory/RomMitsubishiMLTS2.cc b/src/memory/RomMitsubishiMLTS2.cc new file mode 100644 index 0000000..4e04114 --- /dev/null +++ b/src/memory/RomMitsubishiMLTS2.cc @@ -0,0 +1,80 @@ +#include "RomMitsubishiMLTS2.hh" +#include "Rom.hh" +#include "Ram.hh" +#include "CacheLine.hh" +#include "serialize.hh" +#include "memory.hh" + +#include <iostream> + +namespace openmsx { + +RomMitsubishiMLTS2::RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom_) + : Rom8kBBlocks(config, std::move(rom_)) + , ram(make_unique<Ram>(config, getName() + " RAM", "ML-TS2 RAM", 0x2000)) +{ + reset(EmuTime::dummy()); +} + +RomMitsubishiMLTS2::~RomMitsubishiMLTS2() +{ +} + +void RomMitsubishiMLTS2::reset(EmuTime::param /*time*/) +{ + setRom(2, 0); +} + +void RomMitsubishiMLTS2::writeMem(word address, byte value, EmuTime::param /*time*/) +{ + if (address == 0x7FC0) { + byte bank = (value & 1) + (((value >> 2) & 1) << 1) + (((value >> 4) & 1) << 2); + std::cerr << "Setting MLTS2 mapper page 1 to bank " << int(bank) << std::endl; + setRom(2, bank); + } else if ((0x6000 <= address) && (address < 0x8000)) { + (*ram)[address & 0x1FFF] = value; + } +} + +byte RomMitsubishiMLTS2::readMem(word address, EmuTime::param time) +{ + if ((0x6000 <= address) && (address < 0x8000)) { + return (*ram)[address & 0x1FFF]; + } else { + return Rom8kBBlocks::readMem(address, time); + } +} + +byte RomMitsubishiMLTS2::peekMem(word address, EmuTime::param time) const +{ + if ((0x6000 <= address) && (address < 0x8000)) { + return (*ram)[address & 0x1FFF]; + } else { + return Rom8kBBlocks::peekMem(address, time); + } +} + +const byte* RomMitsubishiMLTS2::getReadCacheLine(word address) const +{ + if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr; + if ((0x6000 <= address) && (address < 0x8000)) { + return &(*ram)[address & 0x1FFF]; + } + if ((0x4000 <= address) && (address < 0x6000)) { + return &(rom[address & 0x1FFF]); + } + return unmappedRead; +} + +byte* RomMitsubishiMLTS2::getWriteCacheLine(word address) const +{ + if (address == (0x7FC0 & CacheLine::HIGH)) return nullptr; + if ((0x6000 <= address) && (address < 0x8000)) { + return &(*ram)[address & 0x1FFF]; + } + return unmappedWrite; +} + +REGISTER_MSXDEVICE(RomMitsubishiMLTS2, "RomMitsubishiMLTS2"); + +} // namespace openmsx diff --git a/src/memory/RomMitsubishiMLTS2.hh b/src/memory/RomMitsubishiMLTS2.hh new file mode 100644 index 0000000..344295e --- /dev/null +++ b/src/memory/RomMitsubishiMLTS2.hh @@ -0,0 +1,35 @@ +#ifndef ROMMITSUBISHIMLTS2_HH +#define ROMMITSUBISHIMLTS2_HH + +#include "RomBlocks.hh" +#include <memory> + +// PLEASE NOTE! +// +// This mapper is work in progress. It's just a guess based on some reverse +// engineering of the ROM by BiFi. It even contains some debug prints :) + +namespace openmsx { + +class Ram; + +class RomMitsubishiMLTS2 : public Rom8kBBlocks +{ +public: + RomMitsubishiMLTS2(const DeviceConfig& config, Rom&& rom); + virtual ~RomMitsubishiMLTS2(); + + virtual void reset(EmuTime::param time); + virtual void writeMem(word address, byte value, EmuTime::param time); + virtual byte readMem(word address, EmuTime::param time) override; + virtual byte peekMem(word address, EmuTime::param time) const override; + virtual byte* getWriteCacheLine(word address) const override; + virtual const byte* getReadCacheLine(word address) const override; + +private: + const std::unique_ptr<Ram> ram; +}; + +} // namespace openmsx + +#endif diff --git a/src/memory/RomTypes.hh b/src/memory/RomTypes.hh index d1e2564..8ed5fee 100644 --- a/src/memory/RomTypes.hh +++ b/src/memory/RomTypes.hh @@ -38,6 +38,7 @@ enum RomType { ROM_MEGAFLASHROMSCCPLUS, ROM_MEGAFLASHROMSCCPLUSSD, ROM_MIRRORED, + ROM_MITSUBISHIMLTS2, ROM_MSXDOS2, ROM_MSXTRA, ROM_MULTIROM, hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-31 20:04:55
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 9ca42984977b66f41a397b996c23bb60e672a2af (commit) from 52dbbf79ac6d0ad302757f6b346d65535663d9cd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9ca42984977b66f41a397b996c23bb60e672a2af Author: Manuel Bilderbeek <Man...@gm...> Date: Sun May 31 22:04:29 2015 +0200 Added Spanish Spectravideo SVI-728, thanks to Werner Kai ----------------------------------------------------------------------- Summary of changes: ...deo_SVI-728.xml => Spectravideo_SVI-728_ES.xml} | 25 ++++++++++++++++---- 1 files changed, 20 insertions(+), 5 deletions(-) copy share/machines/{Spectravideo_SVI-728.xml => Spectravideo_SVI-728_ES.xml} (67%) diff --git a/share/machines/Spectravideo_SVI-728.xml b/share/machines/Spectravideo_SVI-728_ES.xml similarity index 67% copy from share/machines/Spectravideo_SVI-728.xml copy to share/machines/Spectravideo_SVI-728_ES.xml index 8d8720c..c05e03d 100644 --- a/share/machines/Spectravideo_SVI-728.xml +++ b/share/machines/Spectravideo_SVI-728_ES.xml @@ -4,12 +4,27 @@ <info> <manufacturer>Spectravideo</manufacturer> - <code>SVI-728</code> - <release_year>1983?</release_year> + <code>SVI-728 (ES)</code> + <release_year>1983</release_year> <description/> <type>MSX</type> </info> + <!-- + based on Werner Kai's machine with serial BI7280069769. + Z80 scf: 01ED29ED01FC29FC (standard) + Z80 cpl: 3AFF12D7 (standard) + Z80 out (C),0: 0 (MSX) + PSG pin 6/7 quirk: C (YES) + PSGmask: like AY8910 + + CPU: Zilog Z8400APS + PSG: GI AY-3-8910A + PPI: Toshiba TMP8255AP-5 + VDP: not visible due to glued on cooling plate + PCB says: Version 1:7 + --> + <CassettePort/> <devices> @@ -20,7 +35,7 @@ <volume>16000</volume> </sound> <io base="0xA8" num="4"/> - <keyboard_type>int</keyboard_type> + <keyboard_type>es</keyboard_type> <has_keypad>true</has_keypad> <key_ghosting_sgc_protected>true</key_ghosting_sgc_protected> <code_kana_locks>false</code_kana_locks> @@ -48,8 +63,8 @@ <primary slot="0"> <ROM id="MSX BIOS with BASIC ROM"> <rom> - <filename>svi-728_basic-bios1.rom</filename> - <sha1>ea6a82cf8c6e65eb30b98755c8577cde8d9186c0</sha1> + <filename>svi-728es_basic-bios1.rom</filename> + <sha1>82415ee031721d1954bfa42e1c6dd79d71c692d6</sha1> </rom> <mem base="0x0000" size="0x8000"/> </ROM> hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-31 19:24:46
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 52dbbf79ac6d0ad302757f6b346d65535663d9cd (commit) from b8c547797c74c481f57a422c2faf5b0db5dd31b4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 52dbbf79ac6d0ad302757f6b346d65535663d9cd Author: Manuel Bilderbeek <Man...@gm...> Date: Sun May 31 21:23:19 2015 +0200 Some minor updates to this config, thanks to Werner Kai. ----------------------------------------------------------------------- Summary of changes: share/machines/Canon_V-8.xml | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/share/machines/Canon_V-8.xml b/share/machines/Canon_V-8.xml index ebda16f..5ec2709 100644 --- a/share/machines/Canon_V-8.xml +++ b/share/machines/Canon_V-8.xml @@ -11,11 +11,19 @@ </info> <!-- Based on serial 131844, thanks to Ricardo Jurczyk Pinheiro - + and serial 125424, thanks to Werner Kai + both: Z80 scf: 01C529ED01D429C (dunno) Z80 cpl: 3AFF12D7 (standard) Z80 out (c), 0: 0 (MSX) PSG pin 6/7 quirk: C (YES) + + pics of 125424 reveal: + has S3527 MSX-ENGINE + Z80: NEC D780C-1 + VDP: TMS9118NL + no printerport + --> <CassettePort/> @@ -37,11 +45,11 @@ <VDP id="VDP"> <version>TMS9118</version> <!-- NO effect of 4k/16k switch, no latch, HAS clones, HAS screen 2 mirrored mode, HAS mode 3 mixed mode --> - <io base="0x98" num="2"/> + <io base="0x98" num="8"/> <!-- S-3527 mirrors --> </VDP> <PSG id="PSG"> - <type>YM2149</type> <!-- according to ident.bas --> + <type>YM2149</type> <!-- in S-3527 MSX-ENGINE --> <keyboardlayout>jis</keyboardlayout> <sound> <volume>21000</volume> hooks/post-receive -- openMSX (main) |
From: Patrick v. A. <va...@us...> - 2015-05-31 16:32:29
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via b8c547797c74c481f57a422c2faf5b0db5dd31b4 (commit) from 8b50be3e13b917d62f1062545000fd9381c99fbe (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b8c547797c74c481f57a422c2faf5b0db5dd31b4 Author: Patrick van Arkel <vam...@us...> Date: Sun May 31 09:32:20 2015 -0700 romdb update ----------------------------------------------------------------------- Summary of changes: share/softwaredb.xml | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) diff --git a/share/softwaredb.xml b/share/softwaredb.xml index 9e6c3bc..6bbf2c6 100644 --- a/share/softwaredb.xml +++ b/share/softwaredb.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE softwaredb SYSTEM "softwaredb1.dtd"> -<softwaredb timestamp="1432451892"> +<softwaredb timestamp="1433089666"> <!-- Credits --> <![CDATA[ The softwaredb.xml file contains information about rom mapper types @@ -1304,6 +1304,14 @@ Generation MSXIDs by www.generation-msx.nl <dump><original value="true">GoodMSX</original><rom><hash>ef535ab6013d9b6e38227272f2ebe6a0f0b33cb5</hash></rom></dump> </software> <software> + <title>Booming Boy</title> + <system>MSX</system> + <company>MSxNAKE</company> + <year>2015</year> + <country>ES</country> + <dump><rom><hash>120f5a2bbba9e7628ae58122f3cb0307648ea22d</hash><remark>Demo Version</remark></rom></dump> +</software> +<software> <title>Borfesu</title> <genmsxid>1015</genmsxid> <system>MSX</system> @@ -12956,6 +12964,6 @@ Generation MSXIDs by www.generation-msx.nl </software> </softwaredb> <!-- -Roms in this XML file:3252 -Created on Sun May 24 9:18:17 CEST 2015 +Roms in this XML file:3253 +Created on Sun May 31 9:29:08 PDT 2015 --> \ No newline at end of file hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-31 12:27:14
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 8b50be3e13b917d62f1062545000fd9381c99fbe (commit) from 3c91cf2755b58b53ddbe4c76c228dda9e39ee1f0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8b50be3e13b917d62f1062545000fd9381c99fbe Author: Manuel Bilderbeek <Man...@gm...> Date: Sun May 31 14:26:49 2015 +0200 hap confirmed: RAM should be in slot 3, not slot 2. ----------------------------------------------------------------------- Summary of changes: share/machines/Canon_V-20.xml | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/share/machines/Canon_V-20.xml b/share/machines/Canon_V-20.xml index 4975bcd..4c4d535 100644 --- a/share/machines/Canon_V-20.xml +++ b/share/machines/Canon_V-20.xml @@ -34,7 +34,9 @@ crystal: X1:10.6875 (VDP), X2:1431818(CPU/PSG): so not synced <primary external="true" slot="1"/> - <primary slot="2"> + <primary external="true" slot="2"/> + + <primary slot="3"> <secondary slot="0"> <RAM id="Main RAM"> @@ -44,8 +46,6 @@ crystal: X1:10.6875 (VDP), X2:1431818(CPU/PSG): so not synced </primary> - <primary external="true" slot="3"/> - <PPI id="ppi"> <io base="0xA8" num="8"/> <!-- mirroring confirmed by hap --> <sound> hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-30 21:25:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 3c91cf2755b58b53ddbe4c76c228dda9e39ee1f0 (commit) from c2a5a2229ab705576ed02a785756a937edb5df9d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3c91cf2755b58b53ddbe4c76c228dda9e39ee1f0 Author: Manuel Bilderbeek <Man...@gm...> Date: Sat May 30 23:25:01 2015 +0200 Forgot to specify YM2149 explicitly in Canon V-10. ----------------------------------------------------------------------- Summary of changes: share/machines/Canon_V-10.xml | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/share/machines/Canon_V-10.xml b/share/machines/Canon_V-10.xml index 921e44c..734718f 100644 --- a/share/machines/Canon_V-10.xml +++ b/share/machines/Canon_V-10.xml @@ -54,6 +54,7 @@ </VDP> <PSG id="PSG"> + <type>YM2149</type> <keyboardlayout>jis</keyboardlayout> <sound> <volume>21000</volume> hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-30 20:57:51
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via c2a5a2229ab705576ed02a785756a937edb5df9d (commit) via 8c84f7652fbb57b33cc752e5ced2f02893c3ed00 (commit) from 6423945d80c539dcc3a459b23d97cb84d53d92cf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c2a5a2229ab705576ed02a785756a937edb5df9d Author: Manuel Bilderbeek <Man...@gm...> Date: Sat May 30 22:56:05 2015 +0200 Some small tweaks to machine configs, triggered by last commit. commit 8c84f7652fbb57b33cc752e5ced2f02893c3ed00 Author: Manuel Bilderbeek <Man...@gm...> Date: Sat May 30 22:50:45 2015 +0200 Added Japanese Canon V-20, thanks to Werner Kai! ----------------------------------------------------------------------- Summary of changes: share/machines/Canon_V-20.xml | 4 +- share/machines/Canon_V-20_JP.xml | 97 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 share/machines/Canon_V-20_JP.xml diff --git a/share/machines/Canon_V-20.xml b/share/machines/Canon_V-20.xml index 2db0917..4975bcd 100644 --- a/share/machines/Canon_V-20.xml +++ b/share/machines/Canon_V-20.xml @@ -4,7 +4,7 @@ <info> <manufacturer>Canon</manufacturer> - <code>V-20</code> + <code>V-20 (EU)</code> <release_year>1984?</release_year> <description/> <type>MSX</type> @@ -27,7 +27,7 @@ crystal: X1:10.6875 (VDP), X2:1431818(CPU/PSG): so not synced <mem base="0x0000" size="0x8000"/> <rom> <sha1>8963fc041975f31dc2ab1019cfdd4967999de53e</sha1> - <filename>v-20_basic-bios1.rom</filename> + <filename>v-20eu_basic-bios1.rom</filename> </rom> </ROM> </primary> diff --git a/share/machines/Canon_V-20_JP.xml b/share/machines/Canon_V-20_JP.xml new file mode 100644 index 0000000..7b84310 --- /dev/null +++ b/share/machines/Canon_V-20_JP.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" ?> +<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'> +<msxconfig> + + <info> + <manufacturer>Canon</manufacturer> + <code>V-20 (JP)</code> + <release_year>1984?</release_year> + <description/> + <type>MSX</type> + </info> + +<!-- + This config is based on Werner Kai's machine with serial 125911 + see https://plus.google.com/photos/112629367302659371233/albums/6153667357217383201 + Where no data was available, it is assumed the machine is the same as + hap's European Canon V-20, see that config. This is mostly the mirroring + behaviour. + +CPU: NEC D780C-1 +PPI: NEC D8255AC-5 +PSG: Yamaha YM2149 - JIS +VDP: TMS9918ANL +crystal: X1:10.xx863 (VDP), X2:1431818(CPU/PSG): so not synced + +IDENT Z80 info (VDP stuff just points to indeed TMS99xx): +z80 scf: 01ED29ED01FC29FC (standard) +z80 cpl: 3AFF12D7 (standard) +z80 out (c),0: 0 (MSX) + +PSG pin 6/7 quirk: C (YES) +--> + + <CassettePort/> + + <devices> + + <primary slot="0"> + <ROM id="MSX BIOS with BASIC ROM"> + <mem base="0x0000" size="0x8000"/> + <rom> + <sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1> + <filename>v-20jp_basic-bios1.rom</filename> + </rom> + </ROM> + </primary> + + <primary external="true" slot="1"/> <!-- side slot --> + + <primary external="true" slot="2"/> <!-- top slot --> + + <primary slot="3"> + + <secondary slot="0"> + <RAM id="Main RAM"> + <mem base="0x0000" size="0x10000"/> + </RAM> + </secondary> + + </primary> + + <PPI id="ppi"> + <io base="0xA8" num="8"/> <!-- mirroring confirmed by hap --> + <sound> + <volume>16000</volume> + </sound> + <key_ghosting>true</key_ghosting> + <keyboard_type>jp_jis</keyboard_type> + <has_keypad>false</has_keypad> + <key_ghosting_sgc_protected>true</key_ghosting_sgc_protected> + <code_kana_locks>true</code_kana_locks> + <graph_locks>false</graph_locks> + </PPI> + + <VDP id="VDP"> + <io base="0x98" num="8"/> <!-- mirroring not sure if same as EU V-20 --> + <version>TMS9918A</version> + <initialContent encoding="hex">FF00</initialContent> <!-- not sure if same as EU V-20 --> + </VDP> + + <PSG id="PSG"> + <type>YM2149</type> + <keyboardlayout>jis</keyboardlayout> + <io base="0xA0" num="2" type="O"/> + <io base="0xA2" num="1" type="I"/> + <sound> + <volume>21000</volume> + </sound> + </PSG> + + <PrinterPort id="Printer Port"> + <io base="0x90" num="2"/> + </PrinterPort> + + </devices> + +</msxconfig> hooks/post-receive -- openMSX (main) |
From: Maarten t. H. <mth...@us...> - 2015-05-28 08:05:32
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 6423945d80c539dcc3a459b23d97cb84d53d92cf (commit) from 26b7e52c77347414c1f4a6606dc786b82599356e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6423945d80c539dcc3a459b23d97cb84d53d92cf Author: Maarten ter Huurne <ma...@tr...> Date: Thu May 28 10:01:49 2015 +0200 Refer to www.openmsx.org as the openMSX web site in all docs We control the openmsx.org domain, while it is uncertain how much control we have over the SourceForge URLs. At the moment it just redirects requests. ----------------------------------------------------------------------- Summary of changes: README | 2 +- build/package-arch/PKGBUILD | 2 +- build/package-dingux/README.txt | 12 ++++++------ build/package-slackware/openmsx.SlackBuild | 2 +- build/package-windows/openmsx.wxs | 2 +- build/package-windows/openmsx1033.wxl | 2 +- doc/manual/compile.html | 8 ++++---- doc/manual/faq.html | 6 +++--- doc/manual/index.html | 2 +- doc/manual/setup.html | 4 ++-- doc/manual/user.html | 8 ++++---- doc/release-notes.txt | 2 +- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/README b/README index 24b3437..de51b4a 100644 --- a/README +++ b/README @@ -21,7 +21,7 @@ Some source files contain a license notice; all other source files are licensed under the GNU Public License (GPL), of which you can find a copy in the file 'GPL.txt'. If you got a binary release of openMSX and are interested in the sources, please visit our home page: - http://openmsx.sourceforge.net/ + http://www.openmsx.org/ Happy MSX-ing! the openMSX developers diff --git a/build/package-arch/PKGBUILD b/build/package-arch/PKGBUILD index e27966c..461bf27 100644 --- a/build/package-arch/PKGBUILD +++ b/build/package-arch/PKGBUILD @@ -5,7 +5,7 @@ pkgver=0.6.2 pkgrel=1 pkgdesc="openMSX, a great opensource MSX emulator with lots of great features" arch=('i686') -url="openmsx.sourceforge.net" +url="www.openmsx.org" license=('GPL') depends=(gcc sdl_image tcl) makedepends=() diff --git a/build/package-dingux/README.txt b/build/package-dingux/README.txt index 31efa2d..8c2cb28 100644 --- a/build/package-dingux/README.txt +++ b/build/package-dingux/README.txt @@ -44,7 +44,7 @@ Installing openMSX ------------------ This info is also in the openMSX Compilation Guide: - http://openmsx.sourceforge.net/manual/compile.html#installstandalone + http://www.openmsx.org/manual/compile.html#installstandalone Copy the directory named "local" from the openMSX for Dingux ZIP file to the root of the miniSD card. If you have run Dingux from the miniSD card before, @@ -55,7 +55,7 @@ openMSX comes with the C-BIOS system ROMs, which is an open source MSX BIOS. If you'd like to use other system ROMs, for example to get disk support or because you want to emulate the exact MSX model you had years ago, you have to install those yourself. Please read this for more info: - http://openmsx.sourceforge.net/manual/setup.html#systemroms + http://www.openmsx.org/manual/setup.html#systemroms As mentioned before, currently it's wise to include only those system ROMs you really need. Better not install large ones either (e.g. the MoonSound ROM), unless you don't care about very long start up times. @@ -64,7 +64,7 @@ Using openMSX ------------- The keymappings are documented in the openMSX User's Manual: - http://openmsx.sourceforge.net/manual/user.html#keymapping + http://www.openmsx.org/manual/user.html#keymapping Customizing openMSX @@ -78,7 +78,7 @@ Please have a look in the share/openmsx/scripts directory for examples. Any script you place there will be executed by openMSX on startup. Please read this document to learn about the commands and settings of openMSX: - http://openmsx.sourceforge.net/manual/commands.html + http://www.openmsx.org/manual/commands.html Building openMSX ---------------- @@ -88,11 +88,11 @@ Dingux. This is described in the Compilation Guide (with specific instructions for Dingux): - http://openmsx.sourceforge.net/manual/compile.html + http://www.openmsx.org/manual/compile.html Feedback -------- If you found a bug, made a patch, created a cool theme or have anything else you'd like to share, please contact us, see - http://openmsx.sourceforge.net/manual/user.html#contact + http://www.openmsx.org/manual/user.html#contact diff --git a/build/package-slackware/openmsx.SlackBuild b/build/package-slackware/openmsx.SlackBuild index 669acc0..46c900e 100755 --- a/build/package-slackware/openmsx.SlackBuild +++ b/build/package-slackware/openmsx.SlackBuild @@ -1,7 +1,7 @@ !/bin/sh # # SlackBuild for openMSX -# http://openmsx.sourceforge.net +# http://www.openmsx.org/ # By SukkoPera <enj...@io...> # 27/10/2005 # diff --git a/build/package-windows/openmsx.wxs b/build/package-windows/openmsx.wxs index 54eadf2..c334f40 100644 --- a/build/package-windows/openmsx.wxs +++ b/build/package-windows/openmsx.wxs @@ -140,7 +140,7 @@ <!-- Shortcut to openMSX website --> <util:InternetShortcut Id="openMSXWebSiteShortcut" Name="!(loc.openMSXWebSite)" - Target="http://openmsx.sourceforge.net/" /> + Target="http://www.openmsx.org/" /> <!-- Shortcut to uninstall - do we really need this? Note that [SystemFolder64] is always the native system folder --> diff --git a/build/package-windows/openmsx1033.wxl b/build/package-windows/openmsx1033.wxl index 672ec63..827d79c 100644 --- a/build/package-windows/openmsx1033.wxl +++ b/build/package-windows/openmsx1033.wxl @@ -5,7 +5,7 @@ <String Id="LANG">1033</String> <String Id="openMSX">openMSX</String> <String Id="TagLine">The MSX emulator that aims for perfection</String> - <String Id="Website">http://openmsx.sourceforge.net</String> + <String Id="Website">http://www.openmsx.org/</String> <!-- Shortcuts --> <String Id="openMSXManual">openMSX Manual</String> diff --git a/doc/manual/compile.html b/doc/manual/compile.html index 1abc0d5..39aaa76 100644 --- a/doc/manual/compile.html +++ b/doc/manual/compile.html @@ -65,7 +65,7 @@ The latest version of the openMSX manual can be found on the openMSX home page: </p> <p> -<a class="external" href="http://openmsx.sourceforge.net/manual/">http://openmsx.sourceforge.net/manual/</a> +<a class="external" href="http://www.openmsx.org/manual/">http://www.openmsx.org/manual/</a> </p> <p> You can also use this URL to get up-to-date versions of the hyperlinks @@ -77,7 +77,7 @@ if you printed out this manual. This guide is about openMSX, the open source MSX emulator that tries to achieve near-perfect emulation by using a novel emulation model. You can find more information about openMSX on the -<a class="external" href="http://openmsx.sourceforge.net/">openMSX home page</a>. +<a class="external" href="http://www.openmsx.org/">openMSX home page</a>. </p> <p> @@ -814,7 +814,7 @@ The following steps can then be used to build openMSX:</p> The following step creates .zip and .msi installation packages for openMSX on Windows using WiX:</p> <ul> <li>Build <a href="#standalone_compilation">openMSX</a> and - <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/compile.html">wxCatapult</a> + <a class="external" href="http://www.openmsx.org/catapult-manual/compile.html">wxCatapult</a> for a given platform (Win32 or x64) and configuration (usually Release builds)</li> <li>Go to the <em>top of the openMSX source tree</em></li> <li>Run <code>build\package-windows\package.cmd <strong>platform configuration</strong> @@ -998,7 +998,7 @@ We do not have a finished GUI yet that works on Mac OS X, so you can either use <h5>Microsoft Windows</h5> <p> -You can use the <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/"> +You can use the <a class="external" href="http://www.openmsx.org/catapult-manual/"> Catapult</a> launcher to run openMSX.</p> <h2><a id="contact">8. Contact Info</a></h2> diff --git a/doc/manual/faq.html b/doc/manual/faq.html index d625b06..9f9c0d0 100644 --- a/doc/manual/faq.html +++ b/doc/manual/faq.html @@ -139,7 +139,7 @@ The MSX system ROMs are copyrighted. In other words: it's illegal to include the <h3><a id="easyuse">Is openMSX easy to use?</a></h3> <p> -Ever since openMSX comes with the optional GUI dubbed "openMSX Catapult", it is quite easy to use! The Windows installer installs it by default. For other systems, the same counts as for openMSX itself. Check out the <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/">Catapult manual</a> for more information. For basic usage, you just select a machine to run and click on "Start"! +Ever since openMSX comes with the optional GUI dubbed "openMSX Catapult", it is quite easy to use! The Windows installer installs it by default. For other systems, the same counts as for openMSX itself. Check out the <a class="external" href="http://www.openmsx.org/catapult-manual/">Catapult manual</a> for more information. For basic usage, you just select a machine to run and click on "Start"! </p> <p> @@ -401,7 +401,7 @@ The ZMBV (Zip Motion Blocks Video) codec is used, which has been developed in th </p> <p> -A developer of DosBox built a Win32 binary of the codec for our users. It is included with openMSX 0.6.2 (and up) for Win32. Note that the installer does not install the codec by default, so you will need to enable this option when installing. You can also <a class="external" href="http://openmsx.sourceforge.net/util/zmbv_codec_win32.zip">download the codec separately from our web site</a>. After unzipping the file, use the .INF file to install the codec (<code>zmbv.dll</code>) by right-clicking on it and selecting Install. Note that other binaries of this codec that you can find on the internet may not work, as not all of them have support for more than 8 bits per pixel recordings. +A developer of DosBox built a Win32 binary of the codec for our users. It is included with openMSX 0.6.2 (and up) for Win32. Note that the installer does not install the codec by default, so you will need to enable this option when installing. You can also <a class="external" href="http://www.openmsx.org/util/zmbv_codec_win32.zip">download the codec separately from our web site</a>. After unzipping the file, use the .INF file to install the codec (<code>zmbv.dll</code>) by right-clicking on it and selecting Install. Note that other binaries of this codec that you can find on the internet may not work, as not all of them have support for more than 8 bits per pixel recordings. Also note that this is a 32-bit codec, so it will not run inside 64-bit Windows Media Player or Windows Media Center.</p> <p> @@ -434,7 +434,7 @@ You can look in the following places for answers: <dt><a class="external" href="index.html">openMSX manuals</a></dt> <dd>We have a nice set of manuals describing most of the functionality in openMSX. </dd> -<dt><a class="external" href="http://openmsx.sourceforge.net/catapult-manual/">Catapult manuals</a></dt> +<dt><a class="external" href="http://www.openmsx.org/catapult-manual/">Catapult manuals</a></dt> <dd>The manuals of Catapult, the graphical interface to openMSX.</dd> <dt><a class="external" href="http://faq.msxnet.org/">The Ultimate MSX FAQ</a></dt> <dd>Look here if you have a question that is not specific to openMSX, but about the MSX system itself.</dd> diff --git a/doc/manual/index.html b/doc/manual/index.html index 7291db1..f7cf37b 100644 --- a/doc/manual/index.html +++ b/doc/manual/index.html @@ -71,7 +71,7 @@ There is additional documentation for (would-be) developers in <a class="externa <p> To the -<a class="external" href="http://openmsx.sourceforge.net/">openMSX Home Page</a>. +<a class="external" href="http://www.openmsx.org/">openMSX Home Page</a>. </p> </body> diff --git a/doc/manual/setup.html b/doc/manual/setup.html index d59f03e..cdac95f 100644 --- a/doc/manual/setup.html +++ b/doc/manual/setup.html @@ -65,7 +65,7 @@ The latest version of the openMSX manual can be found on the openMSX home page: </p> <p> -<a class="external" href="http://openmsx.sourceforge.net/manual/">http://openmsx.sourceforge.net/manual/</a> +<a class="external" href="http://www.openmsx.org/manual/">http://www.openmsx.org/manual/</a> </p> <p> You can also use this URL to get up-to-date versions of the hyper links @@ -77,7 +77,7 @@ if you printed out this manual. This guide is about openMSX, the open source MSX emulator that tries to achieve near-perfect emulation by using a novel emulation model. You can find more information about openMSX on the -<a class="external" href="http://openmsx.sourceforge.net/">openMSX home page</a>. +<a class="external" href="http://www.openmsx.org/">openMSX home page</a>. You can also download the emulator itself from there. </p> diff --git a/doc/manual/user.html b/doc/manual/user.html index 38c5319..d75a6e7 100644 --- a/doc/manual/user.html +++ b/doc/manual/user.html @@ -133,7 +133,7 @@ The latest version of the openMSX manual can be found on the openMSX home page: </p> <p> -<a class="external" href="http://openmsx.sourceforge.net/manual/">http://openmsx.sourceforge.net/manual/</a> +<a class="external" href="http://www.openmsx.org/manual/">http://www.openmsx.org/manual/</a> </p> <p> You can also use this URL to get up-to-date versions of the hyper links @@ -145,7 +145,7 @@ if you printed out this manual. This manual is about openMSX, the open source MSX emulator that tries to achieve near-perfect emulation by using a novel emulation model. You can find more information about openMSX on the -<a class="external" href="http://openmsx.sourceforge.net/">openMSX home page</a>. +<a class="external" href="http://www.openmsx.org/">openMSX home page</a>. You can also download the emulator itself from there. </p> @@ -153,7 +153,7 @@ You can also download the emulator itself from there. openMSX is not completed yet, which means that most things work but not all features are implemented yet. Many emulation features are implemented, but in terms of user interface -it is rather bare bones, unless you use the optional Graphical User Interface dubbed openMSX Catapult, which has separate <a class="external" href="http://openmsx.sourceforge.net/catapult-manual/">manuals</a> for now. +it is rather bare bones, unless you use the optional Graphical User Interface dubbed openMSX Catapult, which has separate <a class="external" href="http://www.openmsx.org/catapult-manual/">manuals</a> for now. However, because the emulation is already pretty good, it would be nice if non-insiders would be able to play with it, too. For those people, we have written this guide. @@ -1031,7 +1031,7 @@ This algorithm is trying to emulate the fact that on a CRT brighter pixels look </dl> <p> -A small (somewhat outdated) demonstration of some of the algorithms can be found on <a class="external" href="http://openmsx.sourceforge.net">the openMSX web site</a>. +A small (somewhat outdated) demonstration of some of the algorithms can be found on <a class="external" href="http://www.openmsx.org/">the openMSX web site</a>. </p> <h3><a id="gamma">6.4 Gamma Correction</a></h3> diff --git a/doc/release-notes.txt b/doc/release-notes.txt index b725e77..54cb71b 100644 --- a/doc/release-notes.txt +++ b/doc/release-notes.txt @@ -107,7 +107,7 @@ compiling on a new platform, please share your experiences (see below for contact info), so we can make openMSX more portable. openMSX Home Page: - http://openmsx.sourceforge.net/ + http://www.openmsx.org/ Project page on SourceForge: http://sourceforge.net/projects/openmsx/ Contact options: hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-05-27 19:38:00
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 26b7e52c77347414c1f4a6606dc786b82599356e (commit) from 47515e602be19f02664650def82e7f1bac7aa331 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 26b7e52c77347414c1f4a6606dc786b82599356e Author: m9710797 <ver...@gm...> Date: Wed May 27 21:33:10 2015 +0200 Fixed copy/paste error in bswap64 The result was wrongly truncated to 32 bit. Luckily this function wasn't used much. I think (so far) only the Tiger-hash code used it on big-endian systems. ----------------------------------------------------------------------- Summary of changes: src/utils/endian.hh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/utils/endian.hh b/src/utils/endian.hh index 4e68993..51933b5 100644 --- a/src/utils/endian.hh +++ b/src/utils/endian.hh @@ -36,7 +36,7 @@ static inline uint32_t bswap32(uint32_t x) } // Revese bytes in a 64-bit value: 0x1122334455667788 becomes 0x8877665544332211 -static inline uint32_t bswap64(uint64_t x) +static inline uint64_t bswap64(uint64_t x) { #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) // Starting from gcc-4.3 there's a builtin function for this. hooks/post-receive -- openMSX (main) |
From: Manuel B. <man...@us...> - 2015-05-27 19:16:02
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 47515e602be19f02664650def82e7f1bac7aa331 (commit) from 5728c796e100c5b0bef1b0ee6d1209227ff3194d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 47515e602be19f02664650def82e7f1bac7aa331 Author: Manuel Bilderbeek <Man...@gm...> Date: Wed May 27 21:15:22 2015 +0200 Added Canon V-10 machine, thanks to Werner Kai! ----------------------------------------------------------------------- Summary of changes: share/machines/{Sony_HB-10.xml => Canon_V-10.xml} | 38 +++++++++++++++----- 1 files changed, 28 insertions(+), 10 deletions(-) copy share/machines/{Sony_HB-10.xml => Canon_V-10.xml} (57%) diff --git a/share/machines/Sony_HB-10.xml b/share/machines/Canon_V-10.xml similarity index 57% copy from share/machines/Sony_HB-10.xml copy to share/machines/Canon_V-10.xml index d8ce58b..921e44c 100644 --- a/share/machines/Sony_HB-10.xml +++ b/share/machines/Canon_V-10.xml @@ -2,16 +2,35 @@ <!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'> <msxconfig> -<!-- information provided by Ruben Arraya, thanks! --> - <info> - <manufacturer>Sony</manufacturer> - <code>HB-10</code> + <manufacturer>Canon</manufacturer> + <code>V-10</code> <release_year></release_year> <description/> <type>MSX</type> </info> + <!-- Info provided by Werner Kai, based on serial 126034: + HAS 4k/16k efect + no address latch + HAS sprite clones + has screen 2 mirrored mode + has mode 3 mixed mode + Z80 scf: 01ED29ED01FC29FC (standard) + Z80 cpl: 3AFF12D7 (standard) + PSG pin 6/7 quirk: C (YES) + PSGmask like YM2149 (FFFFFFetc.) + + Mobo photo shows chips: + VDP: TMS9918ANL MHU 8327 9736 PHILIPPINES + PPI: NEC D8255AC-5 + PSG: Yamaha YM2149C + CPU: Zilog Z8400AP S + ROM: 3256D19-3J1 Z-1 (C) 1983 MICROSOFT + RAM and VRAM: both have 8x Toshiba TMM416P-2 4116-28336ADA + + See: https://plus.google.com/photos/112629367302659371233/albums/6153338169041664593 + --> <CassettePort/> <devices> @@ -22,21 +41,20 @@ <volume>16000</volume> </sound> <io base="0xA8" num="4"/> - <keyboard_type>jp_ansi</keyboard_type> + <keyboard_type>jp_jis</keyboard_type> <has_keypad>false</has_keypad> - <key_ghosting_sgc_protected>false</key_ghosting_sgc_protected> <!-- not sure yet --> + <key_ghosting_sgc_protected>false</key_ghosting_sgc_protected> <code_kana_locks>true</code_kana_locks> <graph_locks>false</graph_locks> </PPI> <VDP id="VDP"> - <version>TMS99X8A</version> + <version>TMS9918A</version> <io base="0x98" num="2"/> </VDP> <PSG id="PSG"> - <type>AY8910</type> - <keyboardlayout>50on</keyboardlayout> + <keyboardlayout>jis</keyboardlayout> <sound> <volume>21000</volume> </sound> @@ -54,7 +72,7 @@ </RAM> <ROM id="MSX BIOS with BASIC ROM"> <rom> - <filename>hb-10_basic-bios1.rom</filename> + <filename>v-10_basic-bios1.rom</filename> <sha1>302afb5d8be26c758309ca3df611ae69cced2821</sha1> </rom> <mem base="0x0000" size="0x8000"/> hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-05-25 20:09:39
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 5728c796e100c5b0bef1b0ee6d1209227ff3194d (commit) from ba0f6c438a0592602d50b77bb3141f91ec2b9a16 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5728c796e100c5b0bef1b0ee6d1209227ff3194d Author: m9710797 <ver...@gm...> Date: Mon May 25 22:09:13 2015 +0200 fix Android build, see comments in code ----------------------------------------------------------------------- Summary of changes: src/fdc/MSXtar.cc | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/fdc/MSXtar.cc b/src/fdc/MSXtar.cc index 7a53ae9..f083656 100644 --- a/src/fdc/MSXtar.cc +++ b/src/fdc/MSXtar.cc @@ -442,8 +442,11 @@ static void getTimeDate(const string& filename, unsigned& time, unsigned& date) time = 0; date = 0; } else { - // some info indicates that st.st_mtime could be useless on win32 with vfat. - getTimeDate(static_cast<time_t&>(st.st_mtime), time, date); + // Some info indicates that st.st_mtime could be useless on win32 with vfat. + // On Android 'st_mtime' is 'unsigned long' instead of 'time_t' + // (like on linux), so we require a reinterpret_cast. That cast + // is fine (but redundant) on linux. + getTimeDate(reinterpret_cast<time_t&>(st.st_mtime), time, date); } } hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-05-25 14:35:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via ba0f6c438a0592602d50b77bb3141f91ec2b9a16 (commit) from 605b6ddb9a912d1669f3215b270b5375d220532f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ba0f6c438a0592602d50b77bb3141f91ec2b9a16 Author: m9710797 <ver...@gm...> Date: Mon May 25 16:22:38 2015 +0200 Fix some (windows specific) -Wold-style-cast warnings I enabled -Wold-style-cast and fixed some warnings. On linux our code was already warning free when enabling this option, only some windows specific code needed changes. I would have liked to enable this flag by default, but unfortunatley it triggers many false-positives when using gcc-4.7 (also on linux), gcc-4.8 and up are fine. So maybe revisit this once we bump the minimum compiler version. ----------------------------------------------------------------------- Summary of changes: src/events/Socket.cc | 9 +++++---- src/fdc/MSXtar.cc | 2 +- src/security/SspiNegotiateServer.cc | 6 +++--- src/security/SspiUtils.cc | 14 +++++++------- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/events/Socket.cc b/src/events/Socket.cc index 759f10f..3a10a84 100644 --- a/src/events/Socket.cc +++ b/src/events/Socket.cc @@ -11,10 +11,11 @@ std::string sock_error() #ifdef _WIN32 wchar_t* s = nullptr; FormatMessageW( - FORMAT_MESSAGE_ALLOCATE_BUFFER - | FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, WSAGetLastError(), 0, (LPWSTR)&s, 0, nullptr); + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, WSAGetLastError(), 0, reinterpret_cast<LPWSTR>(&s), + 0, nullptr); std::string result = utf8::utf16to8(s); LocalFree(s); return result; diff --git a/src/fdc/MSXtar.cc b/src/fdc/MSXtar.cc index c8e9695..7a53ae9 100644 --- a/src/fdc/MSXtar.cc +++ b/src/fdc/MSXtar.cc @@ -443,7 +443,7 @@ static void getTimeDate(const string& filename, unsigned& time, unsigned& date) date = 0; } else { // some info indicates that st.st_mtime could be useless on win32 with vfat. - getTimeDate((time_t&)st.st_mtime, time, date); + getTimeDate(static_cast<time_t&>(st.st_mtime), time, date); } } diff --git a/src/security/SspiNegotiateServer.cc b/src/security/SspiNegotiateServer.cc index addfeb6..bc60319 100644 --- a/src/security/SspiNegotiateServer.cc +++ b/src/security/SspiNegotiateServer.cc @@ -105,8 +105,8 @@ bool SspiNegotiateServer::Authorize() if (!secur32) { return false; } - QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken = - (QUERY_SECURITY_CONTEXT_TOKEN_FN)GetProcAddress(secur32, "QuerySecurityContextToken"); + auto QuerySecurityContextToken = reinterpret_cast<QUERY_SECURITY_CONTEXT_TOKEN_FN>( + GetProcAddress(secur32, "QuerySecurityContextToken")); if (!QuerySecurityContextToken) { return false; } @@ -127,7 +127,7 @@ bool SspiNegotiateServer::Authorize() psd, hClientToken, ACCESS_ALL, - (PGENERIC_MAPPING)&mapping, + const_cast<PGENERIC_MAPPING>(&mapping), &privilegeSet, &dwPrivSetSize, &dwGranted, diff --git a/src/security/SspiUtils.cc b/src/security/SspiUtils.cc index 597011f..fd646dd 100644 --- a/src/security/SspiUtils.cc +++ b/src/security/SspiUtils.cc @@ -152,7 +152,7 @@ static PTOKEN_USER GetProcessToken() ret = GetTokenInformation(hProcessToken, TokenUser, nullptr, 0, &cbToken); assert(!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER && cbToken); - pToken = (TOKEN_USER*)LocalAlloc(LMEM_ZEROINIT, cbToken); + pToken = static_cast<TOKEN_USER*>(LocalAlloc(LMEM_ZEROINIT, cbToken)); if (pToken) { ret = GetTokenInformation(hProcessToken, TokenUser, pToken, cbToken, &cbToken); DebugPrintSecurityBool("GetTokenInformation", ret); @@ -179,17 +179,17 @@ PSECURITY_DESCRIPTOR CreateCurrentUserSecurityDescriptor() // Allocate the SD and the ACL in one allocation, so we only have one buffer to manage // The SD structure ends with a pointer, so the start of the ACL will be well aligned - BYTE* buffer = (BYTE*)LocalAlloc(LMEM_ZEROINIT, SECURITY_DESCRIPTOR_MIN_LENGTH + cbACL); + BYTE* buffer = static_cast<BYTE*>(LocalAlloc(LMEM_ZEROINIT, SECURITY_DESCRIPTOR_MIN_LENGTH + cbACL)); if (buffer) { - psd = (PSECURITY_DESCRIPTOR)buffer; - PACL pacl = (PACL)(buffer + SECURITY_DESCRIPTOR_MIN_LENGTH); + psd = static_cast<PSECURITY_DESCRIPTOR>(buffer); + PACL pacl = reinterpret_cast<PACL>(buffer + SECURITY_DESCRIPTOR_MIN_LENGTH); PACCESS_ALLOWED_ACE pUserAce; if (InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION) && InitializeAcl(pacl, cbACL, ACL_REVISION) && AddAccessAllowedAce(pacl, ACL_REVISION, ACCESS_ALL, pUserSid) && SetSecurityDescriptorDacl(psd, TRUE, pacl, FALSE) && // Need to set the Group and Owner on the SD in order to use it with AccessCheck() - GetAce(pacl, 0, (void**)&pUserAce) && + GetAce(pacl, 0, reinterpret_cast<void**>(&pUserAce)) && SetSecurityDescriptorGroup(psd, &pUserAce->SidStart, FALSE) && SetSecurityDescriptorOwner(psd, &pUserAce->SidStart, FALSE)) { buffer = nullptr; @@ -224,7 +224,7 @@ static bool Send(StreamWrapper& stream, void* buffer, uint32_t cb) { uint32_t sent = 0; while (sent < cb) { - uint32_t ret = stream.Write((char*)buffer + sent, cb - sent); + uint32_t ret = stream.Write(static_cast<char*>(buffer) + sent, cb - sent); if (ret == STREAM_ERROR) return false; sent += ret; } @@ -244,7 +244,7 @@ static bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb) { uint32_t recvd = 0; while (recvd < cb) { - uint32_t ret = stream.Read((char*)buffer + recvd, cb - recvd); + uint32_t ret = stream.Read(static_cast<char*>(buffer) + recvd, cb - recvd); if (ret == STREAM_ERROR) return false; recvd += ret; } hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-05-25 13:27:04
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 605b6ddb9a912d1669f3215b270b5375d220532f (commit) from 2bcb2a275e734afc2008f8f34c472e9edbc9b2d9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 605b6ddb9a912d1669f3215b270b5375d220532f Author: m9710797 <ver...@gm...> Date: Mon May 25 15:24:40 2015 +0200 Fix windows-specific -Wmissing-declarations warnings for real Thanks to Manuel for showing me how to do a mingw-w64 cross-build. _Much_ easier to fix warnings this way. ----------------------------------------------------------------------- Summary of changes: src/serial/Midi_w32.cc | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/src/serial/Midi_w32.cc b/src/serial/Midi_w32.cc index 8b53d27..7844142 100644 --- a/src/serial/Midi_w32.cc +++ b/src/serial/Midi_w32.cc @@ -27,6 +27,7 @@ #ifdef _WIN32 +#include "Midi_w32.hh" #include "MSXException.hh" #include "MemBuffer.hh" #include "StringOp.hh" @@ -36,8 +37,6 @@ #include <cstdlib> #include <sstream> #include <cassert> -#include <windows.h> -#include <mmsystem.h> #define MAXPATHLEN MAX_PATH hooks/post-receive -- openMSX (main) |
From: Wouter V. <m97...@us...> - 2015-05-25 11:09:37
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "openMSX (main)". The branch, master has been updated via 2bcb2a275e734afc2008f8f34c472e9edbc9b2d9 (commit) from d4862ad3ee55592244de42afd48ed29455b62bd3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 2bcb2a275e734afc2008f8f34c472e9edbc9b2d9 Author: m9710797 <ver...@gm...> Date: Mon May 25 13:09:29 2015 +0200 more windows specific -Wmissing-declarations warning fixes ----------------------------------------------------------------------- Summary of changes: src/security/SspiUtils.cc | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/security/SspiUtils.cc b/src/security/SspiUtils.cc index 1602ef8..597011f 100644 --- a/src/security/SspiUtils.cc +++ b/src/security/SspiUtils.cc @@ -240,7 +240,7 @@ bool SendChunk(StreamWrapper& stream, void* buffer, uint32_t cb) return Send(stream, buffer, cb); } -bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb) +static bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb) { uint32_t recvd = 0; while (recvd < cb) { @@ -251,7 +251,7 @@ bool Recv(StreamWrapper& stream, void* buffer, uint32_t cb) return true; } -bool RecvChunkSize(StreamWrapper& stream, uint32_t* pcb) +static bool RecvChunkSize(StreamWrapper& stream, uint32_t* pcb) { uint32_t cb; bool ret = Recv(stream, &cb, sizeof(cb)); hooks/post-receive -- openMSX (main) |