Hello Patriek, Sorry for my late reply, I'm just back from a holiday... ;-) )
I will give it a try and let you all know asap! Kind regards, Raymond Patriek Lesparre <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 29-12-2003 15:49 Please respond to [EMAIL PROTECTED] To [EMAIL PROTECTED] cc Subject Re: [MSX] switching r800 <-> z80 in TP Yup, and the stupid thing is, it checks the MSX type EVERY time a song is started, switches to R800, and modifies the appropriate I/O routines. This should be in some kind of initialisation routine. I understand why there's no such routine, because the original assembly player doesn't have one either, and the pascal version follows it closely. After taking a closer look: the code DOES check the CPU mode, after it has determined it's turboR, but here's the kicker: The CPU mode check destroys the BC,DE,HL,IX registers, in which the modified routine addresses are stored! This is a very grave bug, and this 'feature' (Z80 mode on turboR) obviously has NEVER been tested, because it will surely crash every time. Maybe it's not so obvious the 0183h routine destroys BC-HL, but if you use IX for the interslotcall to 0183h, you must realize IX will not hold its previous value later ^^;;; Working around this just requires some PUSH/POP instructions, but I didn't want to risk losing possible code/data alignment later, so that's why I suggested the patch to always assume Z80. Anyway, no reply from Raymond yet, but I hope he has the same version as I worked with (got it from manuel bilderbeek's page) and that it'll work for him :) Greetz, Patriek Laurens Holst wrote: >Ah, yes... It probably doesn't detect the current CPU mode - instead it >detects the computer type, which is ofcourse always turboR (which it >interprets as R800) whether it actually is in Z80 mode or not. > > >~Grauw > >Patriek Lesparre wrote: > > Hi Raymond, > > > > That's indeed a pretty good indication the problem indeed lies with > > the player. > > > > I suppose you're using Kari Lammassaari's Moonblaster player for > > Pascal? I took a small look at it and here's how to disable the > > turboR detection: > > > > Load a Hex-Editor (DiskView on MSX will do fine) and edit the > > mbplayer.mpc file. Byte 0327h should contain 38h, change this to 18h. > > > > This will make the player think it's always running on Z80. > > > > Greetz, > > Patriek > > > > _______________________________________________ > > MSX mailing list ([EMAIL PROTECTED]) > > Info page: http://lists.stack.nl/mailman/listinfo/msx > >--- >Ushiko-san! Kimi wa doushite, Ushiko-san nan da!! > >_______________________________________________ >MSX mailing list ([EMAIL PROTECTED]) >Info page: http://lists.stack.nl/mailman/listinfo/msx _______________________________________________ MSX mailing list ([EMAIL PROTECTED]) Info page: http://lists.stack.nl/mailman/listinfo/msx _______________________________________________ MSX mailing list ([EMAIL PROTECTED]) Info page: http://lists.stack.nl/mailman/listinfo/msx