Re: MSX slot interfaced to PC
The device you described actually already exists. It is called the MSX card for PC, designed by PTC. Back when it was created, cpu's were much less powerfull, so they basically had to build an entire MSX on an ISA card to be able to use MSX hardware/software. The host PC is only used for its keyboard, other i/o and powersupply... Hmm... yes, maybe any of those people have some interesting design schematics in their archives??? Or would those be terribly outdated??? ~Grauw -- For info, see http://www.stack.nl/~wynke/MSX/listinfo.html
Re: MSX slot interfaced to PC
It think it _should_ be possible. However I'd be much more interested in an interface that allows you to connect a MSX cartridge (ROM or otherwise) to a PC. The most likely candidate for that is a PC card (ISA/PCI) that translates MSX signals to PC compatible signals. Unfortunately my knowledge of electronics is very rudimentary, so I'm not really in the oppurtunity to design such an interface myself. However, the fun part comes here: suppose one of us did indeed design and build such an interface, the real challenge would lie in designing the software around your favourite emulator, you know, drivers and such. The MSX knows about the following things: - I/O ports 0x00-0xff (though the Z80 is cabable of addressing more) - Memory 0x-0x (unmapped that is) - Various signals on the CPU (NMI, INT etc.) The PC knows about the same things (and more), however the I/O ports and memory would have to be mapped to other locations, for the obvious reason that the PC uses the same I/O and memory space for its own purposes. The I/O addresses for the memory mapper (0xf0-0xff) e.g. are used by the x86 processors for communication with the MPU (math processor). The ideal way to deal with that would be to find I/O and memory space that is not already in use, and PCI cards are always configured in such a way that this is the case. There may be technical difficulties, but I'm not the one to judge that, given my limited knowledge of electronics. I could sketch the crude schematics of it, but that's all. Okay. Back to the emulator and the imaginary PC card driver. At boot time the PCI card is directed to use 0xE000 as its base address and 0xe000 for its I/O space. To complete things up, it gets IRQ 10 for any potential interrupts it might want to generate (note: the cartridge connected to the PCI card won't know about these things, since the workings of the PCI card are in such a way that everything is translated transparently, many PCI cards work that way). The system boots up with your favourite OS, and the emulator driver either communicates to the hardware directly or uses an OS dependant driver, but that doesn't really matter right now. What can the emulator do, now that it's hard-wired to a real cartridge? It can access ROMS, I/O channels, everything you can think of. The emulator can map the cartridge memory to its Z80 virtual addressing space (a thing that can be easily done in C). It can also make use e.g. of the features of the Music Module, and you could actully play music on it. All these things are just a small part of what can actually be done with it IMHO. That is, if one of us really gets enough inspiration to create the device :P Greetz, Martin. -- For info, see http://www.stack.nl/~wynke/MSX/listinfo.html
Re: MSX slot interfaced to PC
However, the fun part comes here: suppose one of us did indeed design and build such an interface, the real challenge would lie in designing the software around your favourite emulator, you know, drivers and such. I fail to see the point of doing that. If you want to use real hardware like cartridges use a real MSX, dont make huge efforts to turn your PC into an MSX. If you don't or can't use an emulator :) What would be the advantage of letting the emulator read a real cartridge? Using ROM images and emulated hardware gives much more advantages imho. processor). The ideal way to deal with that would be to find I/O and memory space that is not already in use, and PCI cards are always configured in such a way that this is the case. There may be technical difficulties, but I'm not the one to judge that, given my limited knowledge of electronics. I could sketch the crude schematics of it, but that's all. There are a number of reasons why you *dont* want the x86 CPU to be *directly* connected to MSX hardware. - It cannot understand Z80 instructions anyway.. - PC busses and I/O are thousands times faster than MSX hardware so would needed to be slowed down, buffered etc. - You simply dont need the speed of being directly connected to the PC busses for accessing MSX hardware. What can the emulator do, now that it's hard-wired to a real cartridge? It can access ROMS, I/O channels, everything you can think of. It could also do that when the MSX cartridge was interfaced using a USB, firewire or even parallel port. make use e.g. of the features of the Music Module, and you could actully play music on it. All these things are just a small part of what can actually be done with it IMHO. I have some news: you can do all of that when you switch on your real MSX ;) That is, if one of us really gets enough inspiration to create the device :P The device you described actually already exists. It is called the MSX card for PC, designed by PTC. Back when it was created, cpu's were much less powerfull, so they basically had to build an entire MSX on an ISA card to be able to use MSX hardware/software. The host PC is only used for its keyboard, other i/o and powersupply... Tristan + Omega + join #msx on undernet + [EMAIL PROTECTED] + | | FUNET MSX maintainer | ftp://ftp.funet.fi/pub/msx| + irc: OmegaMSX +Techno composer+ http://members1.chello.nl/~t.zondag01 + -- For info, see http://www.stack.nl/~wynke/MSX/listinfo.html
Re: MSX slot interfaced to PC
On Mon, 15 Oct 2001, Maarten ter Huurne wrote: If the new one chip msx comes out you can connect the hardware tru usb maby that wil work also on usb from a pc ro ? In an emulator, it is possible to freeze the MSX until whatever acts like a cartridge responds. On a real MSX, there are strict timings and I don't think USB can make those deadlines. USB 2.0 is said to be a lot faster, but this higher speed can only be delivered under certain conditions. I think USB 2.0 will have enough bandwidth to act as an MSX cartridge, although you might need a dedicated cable with no other devices attached. However, I guess the latency will still be too large to allow this solution to work on a real MSX. All this sounds like you guys are really afraid of electronics. If you put in a PIC and a flash rom between the computers, I think it should easily be possible. A PIC costs about US$3. A flash rom I don't know, but I think it should be at most us$10, depending on the size, of course. Only a PIC can work as well, but it should make excessive use of the WAIT signal, slowing the msx down to sync with the data (as in the emulator). This would obviously not be nice for playing games. imo it could only be used for debugging. Bye, shevek -- /** mastermind. input 4 numbers 0-5. output right.in the right place **/ main(){int c[4] ,x=3 ,l=getpid() ,i;; for( srand(l);c[ x]=- rand ()%6 ,x-- ;);; for( ;44 x;){ char a[9] ,*p= %.1f\n, b[9];x=i=0; gets(a);for (l=4 ;l-- ;)x+=-(a[l] -=48)== (b[l ]=c[ l]); ;for (l=0;16i;l =++i %4)x +=(b[i/4]+ a[l] ?0:( a[l]=b[i/4] =10)) ;printf(p,x *.1) ;};} -- For info, see http://www.stack.nl/~wynke/MSX/listinfo.html
Re: MSX slot interfaced to PC
If the new one chip msx comes out you can connect the hardware tru usb maby that wil work also on usb from a pc ro ? In an emulator, it is possible to freeze the MSX until whatever acts like a cartridge responds. On a real MSX, there are strict timings and I don't think USB can make those deadlines. By the way, even disregarding latency and only looking at bandwidth, I think USB 1.0 is not fast enough. When executing code from a cartridge (running a game ROM), there will be a merory read about once in 7 cycles (rough estimate). At 3.5 MHz that is 500 kilobyte per second. USB 1.0 has a bandwidth of 2 megabit per second (correct me if I'm wrong), which is 250 kilobyte per second. This is disgarding any overhead of the USB protocol and disregarding the fact that the address being fetched should also be communicated, so the actual number will be even lower. USB 2.0 is said to be a lot faster, but this higher speed can only be delivered under certain conditions. I think USB 2.0 will have enough bandwidth to act as an MSX cartridge, although you might need a dedicated cable with no other devices attached. However, I guess the latency will still be too large to allow this solution to work on a real MSX. Bye, Maarten -- For info, see http://www.stack.nl/~wynke/MSX/listinfo.html
MSX slot interfaced to PC
HI This topic was mentioned a few times with no serious input. I think it will be possible to connect a msx slot to a pc and emmulate a ROM cartdridge (etc.) on the pc. The msx will think it is talking to a normal rom. 2 Parallel port woul possibly be enough to do this. In a Bi directional port 17 inputs is possible x2 =34 input lines. Buffering the adresbus will free 8 bits.I/O lines 8I lines: 8 (buffered adress) + 12O Lines: 3 TOTAL: 31 lines I think it would be possible to emulate ram and other hardware as well. Most hardware is already emulated in emulators so to adapt is would not be such a big problem. First up think it would be best to try and emulate a 'unmapped' rom game to see if it can work. Then go on to emulate 'unmapped' ram and work on from there. Like to see your comments JP I/O LINES NEEDED ON PC1. 8 data lines: I/O· Databus2. 8 /16: Input· Address bus (8 bit port buffered input)3. 10/12: Input· /CS1· /CS2· /CS12 (Can be dropped by connecting this to both /CS1 and /CS2 ?)· /IORQ· /M1· /MERQ· /RD· /RESET:· /RFSH (OPTIONAL ?)· /SLTSL· /CLOCK· /WR4. 3: Out:· /BUSDIR· /INT· /WAIT
Re: MSX slot interfaced to PC
JP Grobler wrote: HI This topic was mentioned a few times with no serious input. I think it will be possible to connect a msx slot to a pc and emmulate a ROM cartdridge (etc.) on the pc. The msx will think it is talking to a normal rom. not possible... The MSX executes buscycli in the range of a few hundred nanoseconds; the PC has to react to these signals *in real time*. With a simple interface this is not possible. And probably you can't use an OS on the pc, you will need full control in assembler of the x86 CPU to poll for the incoming MSX signals... 2 Parallel port woul possibly be enough to do this. In a Bi PC Parallel port is way too slow... forget it Regards, Jon -- For info, see http://www.stack.nl/~wynke/MSX/listinfo.html
Re: MSX slot interfaced to PC
- Original Message - From: Jon De Schrijder [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Sunday, October 14, 2001 10:56 PM Subject: Re: MSX slot interfaced to PC not possible... The MSX executes buscycli in the range of a few hundred nanoseconds; the PC has to react to these signals *in real time*. With a simple interface this is not possible. And probably you can't use an OS on the pc, you will need full control in assembler of the x86 CPU to poll for the incoming MSX signals... If the new one chip msx comes out you can connect the hardware tru usb maby that wil work also on usb from a pc ro ? -- For info, see http://www.stack.nl/~wynke/MSX/listinfo.html