Asking for the cooperation from MSX Software developers

Page 2/9
1 | | 3 | 4 | 5 | 6 | 7

By hit9918

Prophet (2923)

hit9918's picture

04-08-2015, 20:57

		in 7mhz cycles
		R800	Z80 21.42mhz
nop		1	1.66
ld a,(hl)	4	2.66
pop hl		5	3.66
add hl,de	1	4
ld a,(ix+n)	7	7
ldi		7	6

Practicaly same speed. on simple instructions R800 has the edge. on memory acess z80 has the egde.
I used M1 wait, is it possible to run z80 without M1 wait?

By Grauw

Ascended (10604)

Grauw's picture

04-08-2015, 21:15

Yes, M1 wait is inserted by the MSX-ENGINE. It’s an extra wait cycle to allow cheaper RAM and ROM memory to be used, because without M1 the instruction fetch only gives memory 2 cycles to respond. See the “Memory Speed Control” section in the Z80 manual.

The comparison is a bit arbitrary though. You’re comparing R800 with slowdowns for memory access included, to Z80 with M1 but without memory read/write access slowdowns. I can make another equally valid comparison between R800 and Z80 without any waits and the R800 would appear more favourably. It really depends on the architecture of the system, I don’t know if it’s safe to assume that modern memory at the capacities and voltages we need can be accessed without any waits at 21.42 MHz. Another factor is how efficiently the bus access is handled, the S1990 in the turboR sets a high bar.

But, I do agree they probably will be close in terms of performance. Advantage of the turboR is that because there are so many factors that determine the exact timing of the R800 instructions, and also that the timing details have long been a bit of a mystery, that unlike on the Z80, not many turboR software will depend on exact timing, so you can get away with some deviation.

By hit9918

Prophet (2923)

hit9918's picture

04-08-2015, 22:17

I got no idea, is it maybe possible waitstate free with SRAM, and is it maybe affordable to have a little meg in gigabyte times? Smile
the grt8tbit site speaks of a gig ram and a meg SRAM.

By maxis

Champion (512)

maxis's picture

04-08-2015, 22:49

hit9918 wrote:

I got no idea, is it maybe possible waitstate free with SRAM, and is it maybe affordable to have a little meg in gigabyte times? Smile
the grt8tbit site speaks of a gig ram and a meg SRAM.

SRAM is no-brainer and there are many other pseudo SRAM chips of a multimegabyte scale with access time around 10ns.
Indeed, waitstate free is absolutely possible (it was already possible in 1998 with DRAM running at 20MHZ on Z180) Wink
The only condition is that all the address translation logic must be placed into the modern CPLD/FPGA preferably with Z80 compatible RISC core to reach 100 MHz and beyond clock rate.
5V devices are obsolete and slow.

By hit9918

Prophet (2923)

hit9918's picture

05-08-2015, 00:36

Yeah so when it goes directly without waits, like the posted cycle table, it would be great.

By Grauw

Ascended (10604)

Grauw's picture

05-08-2015, 00:41

Table without the M1 wait:

		in 7mhz cycles
		R800	Z80 21.42mhz
nop		1	1.33
ld a,(hl)	4	2.33
pop hl		5	3.33
add hl,de	1	3.66
ld a,(ix+n)	7	6.33
ldi		7	5.33

By sd_snatcher

Prophet (3511)

sd_snatcher's picture

05-08-2015, 13:46

@tvalenca

Answering the original question: Right now, I would be happy with just two little hardwares:

1) an upgrade board for my PowerGraph cartridge, to allow it to be superimposed over the MSX RGB output.

2) An upgrade board to add the MSX-Audio BIOS to the Shockwave OPL4 cartridge.

By hit9918

Prophet (2923)

hit9918's picture

05-08-2015, 14:11

about keeping hardware compatible instead inventing new one.

for example a 9958 cartridge with rs232 that has timer interrupt. I suspect it has interrupt, I still dont know 100%.
the important point being things made of existing expansions.
you can sell it as 9958 with a special sound enhancement chip.
that still doesnt have code, but is more likely to get code than new invented hardware.

another thing, dip switches.
both new MSXes and VDP cartridges should be able to dipswitch the VDP between port 0x98 and 0x88. and as third option turning it OFF if that isnt asked too much.
e.g. one has that new MSX, someone made a 9990+9958 board with some clear superimposing.
and now with the dip switches it all just works, flip out motherboard VDP, flip in the cartridge 9958,
and all the old software works out of the box, horray!

By tvalenca

Paladin (747)

tvalenca's picture

05-08-2015, 20:20

hit9918 wrote:
Quote:

I think this is possible, and could be done outside the VDP because you can count the lines using CSYNC signal.

you forgot to keep compatible! Wink

Don't got it. Could you enlight me?

Grauw wrote:

Yes, M1 wait is inserted by the MSX-ENGINE. It’s an extra wait cycle to allow cheaper RAM and ROM memory to be used, because without M1 the instruction fetch only gives memory 2 cycles to respond. See the “Memory Speed Control” section in the Z80 manual.

The comparison is a bit arbitrary though. You’re comparing R800 with slowdowns for memory access included, to Z80 with M1 but without memory read/write access slowdowns. I can make another equally valid comparison between R800 and Z80 without any waits and the R800 would appear more favourably. It really depends on the architecture of the system, I don’t know if it’s safe to assume that modern memory at the capacities and voltages we need can be accessed without any waits at 21.42 MHz. Another factor is how efficiently the bus access is handled, the S1990 in the turboR sets a high bar.

But, I do agree they probably will be close in terms of performance. Advantage of the turboR is that because there are so many factors that determine the exact timing of the R800 instructions, and also that the timing details have long been a bit of a mystery, that unlike on the Z80, not many turboR software will depend on exact timing, so you can get away with some deviation.

Altough we can mod some MSX 1/2/2+ to remove M1 cycle WAITs, (not the "Toshiba powered" ones) we cannot do that on Turbo Rs because no one really knows how S1990 really works. Even if we had that intel, it would still be impossible to do.

sd_snatcher wrote:

@tvalenca

Answering the original question: Right now, I would be happy with just two little hardwares:

1) an upgrade board for my PowerGraph cartridge, to allow it to be superimposed over the MSX RGB output.

2) An upgrade board to add the MSX-Audio BIOS to the Shockwave OPL4 cartridge.

I think we may think alike, because I'm working on both things right now.

hit9918 wrote:

about keeping hardware compatible instead inventing new one.

for example a 9958 cartridge with rs232 that has timer interrupt. I suspect it has interrupt, I still dont know 100%.

I don't know this cartridge? Are you talking about Gradiente's CT-80 NET? (V9938 for 80 columns text mode on a MSX1 plus modem?)

hit9918 wrote:

the important point being things made of existing expansions.
you can sell it as 9958 with a special sound enhancement chip.
that still doesnt have code, but is more likely to get code than new invented hardware.

What kind of sound enhancement chip? I thought PSG+OPLL+MSX-AUDIO(OPL1+ADPCM)+OPL4+SCC+SID+SN76489 was enough LOL! :RNFF:

hit9918 wrote:

another thing, dip switches.
both new MSXes and VDP cartridges should be able to dipswitch the VDP between port 0x98 and 0x88. and as third option turning it OFF if that isnt asked too much.
e.g. one has that new MSX, someone made a 9990+9958 board with some clear superimposing.
and now with the dip switches it all just works, flip out motherboard VDP, flip in the cartridge 9958,
and all the old software works out of the box, horray!

I can't understand why a V9990 superimposed V9958 (both on standard ports, of course) won't work out of the box with EVERY MSX software. OK, V9990 will be on top of it, but it boots with video disabled, and no MSX software that I'm aware of can "accidentaly" turn it on. But, to prevent any accident on future, you can still put a simple switch on the V9990 superimposer to forcibly keep it transparent, at absolutely no computacional cost. There's no need of an extra V9958 cartridge unless you want to run it on alternate VDP ports (it won't work on primary ports plugged on a Turbo R GT anyway, as it blocks any external bus access to known ports)

But unless you are suggesting that a V9958 cartridge on 0x88~0x8A ports may be useful and some coders may want to use it (please tell me that it needs to be superimposed ;) ) I think we may getting of the topic of this thread. :)

But I'm tending to belive that a high resolution programmable timer is a valuable feature on coders view.

By Grauw

Ascended (10604)

Grauw's picture

05-08-2015, 23:17

tvalenca wrote:

Altough we can mod some MSX 1/2/2+ to remove M1 cycle WAITs

I think you can’t, cartridges will get in trouble due to too short instruction fetch timings.

tvalenca wrote:

What kind of sound enhancement chip? I thought PSG+OPLL+MSX-AUDIO(OPL1+ADPCM)+OPL4+SCC+SID+SN76489 was enough LOL! Running Naked in a Field of Flowers

Actually… It would be really really really cool if someone made a nice Yamaha SFG (OPM) clone, as a normal MSX cartridge.

tvalenca wrote:

But I'm tending to belive that a high resolution programmable timer is a valuable feature on coders view.

There are plenty of timers for MSX, however the problem is that there are so many of them, in OPL* and RS232 and MIDI cartridges and all those, there is no standard. Some can generate interrupts at programmable intervals can but can’t be read. The turboR’s timer is nice because you can read really precise timings from it (14 cycle accurate!), but it doesn’t generate interrupts.

If an MSX3 is ever made, it would be nice if it contained a versatile readable timer with the ability to generate interrupts (e.g. base it on the S1990 timer with an added overflow interrupt option) whose presence can be relied on.

Page 2/9
1 | | 3 | 4 | 5 | 6 | 7