This is the program you need to compile and burn, if you have empty ROM:
ORG #4000 DB 'AB' DW START DW 0,0,0,0,0,0 START: XOR A OUT (#99),A LD (#FFE8),A LD A,#89 OUT (#99),A RET
Uhm, I'm sure that's appreciated, but I don't know if the best way to do this is having a cartridge permanently inserted in your MSX... To bad you can't use VDP(10)=0 as a prompt
I took a small look at the BIOS roms, and there seems to be ~some~ space left in the main rom and plenty of space in the sub rom. The tricky part though, is knowing when to 'intercept' the boot routine to execute the code. I think this needs to be done after the VDP is initialized, but prolly before it displays the reset logo... Any ideas anyone?
i guess a switchwould be enough
I am willing to do the programming of the roms. Do not know what postage will be though from South Africa
If you really want to mess up with the original ROM, then I think that inserting code is not a good idea. Just correct the default value from SUB-ROM offset #29FF to 0
Now THAT is handy information... How did you find this out anyway? Did you disassemble the whole thing? Or is there data available on this?
Now THAT is handy information... How did you find this out anyway? Did you disassemble the whole thing? Or is there data available on this?
No, no, no!
These kind of problems are not hard to solve, if you use your head a bit and also the correct tool set. I've been trying to tell people (about 10 years now) that Super-X is the correct tool set, but I don't think anyone has been listening. This is why I'm going to keep now another presentation.
I started to solve this after your previous post, so you can see, that it didn't take more than 15 minutes. Anyway I must say, that I had also luck. To give you an idea, how easy it can be, I'll explain the things I did step by step:
First I downloaded the NMS8250 roms for openMSX emulator.
I started the emulator and loaded Super-X (I keep it always near)
My first assumption was, that as the frequency change is MSX2 functionality, the code must be in SUB-ROM.
After starting Super-X (with command _@) I got to opening screen, that told me SUB-ROM is at slot 3-0, so I wrote "I0#3-0" to get mnemonic view of address 0 in slot 3-0.
As I have been looking also other boot routines of MSX, I made a assumption, that all of the MSX2 VDP registers are updated to RAM at a same time while booting the computer.
In my earlyer post I had already solved that address to store VDP(10) (=Register 9) is #FFE8. I also knew, that register 8-27 are stored to addresses next to each other, so I made a lucky guess that the address that I should be looking for is #FFE7
So... in Super-X I hit the CTRL+S to start a search and entered ":FFE7" as search parameter. (":"=word, """=String, "["=Byte etc. etc. or then you can just search assember command by writing it.) Luckily I didn't need to use CTRL+F (search forward) or CTRL+B (search backwards) because this time I got to right place at fist time.
When I hit once UP-key, I saw LD DE,0FFE7H and LDIR. Few times more and I was able to locate Following routine:
LD HL,29F6H
LD DE,0F3DFH
LD BC,0008H
LDIR
LD DE,0FFE7H
LD C,10H
LDIR
Now I did hit RIGHT + RETURN (no need to enter slot) to jump to address 29F6H (with LEFT, you can jump back to previous view) as I didn't need anymore mnemonics, I hit RETURN+UP to get in to HEX editor and there it was on the screen 08 (Register 8 default) followed by 02 (Register 9 default on PAL machines) I used cursors to go on top of the byte and read from bottom of the screen the correct address. Problem was solved.
Now THAT is handy information... How did you find this out anyway? Did you disassemble the whole thing? Or is there data available on this?
No, no, no!
These kind of problems are not hard to solve, if you use your head a bit and also the correct tool set. I've been trying to tell people (about 10 years now) that Super-X is the correct tool set, but I don't think anyone has been listening. This is why I'm going to keep now another presentation.
I started to solve this after your previous post, so you can see, that it didn't take more than 15 minutes. Anyway I must say, that I had also luck. To give you an idea, how easy it can be, I'll explain the things I did step by step:
First I downloaded the NMS8250 roms for openMSX emulator.
I started the emulator and loaded Super-X (I keep it always near)
My first assumption was, that as the frequency change is MSX2 functionality, the code must be in SUB-ROM.
After starting Super-X (with command _@) I got to opening screen, that told me SUB-ROM is at slot 3-0, so I wrote "I0#3-0" to get mnemonic view of address 0 in slot 3-0.
As I have been looking also other boot routines of MSX, I made a assumption, that all of the MSX2 VDP registers are updated to RAM at a same time while booting the computer.
In my earlyer post I had already solved that address to store VDP(10) (=Register 9) is #FFE8. I also knew, that register 8-27 are stored to addresses next to each other, so I made a lucky guess that the address that I should be looking for is #FFE7
So... in Super-X I hit the CTRL+S to start a search and entered ":FFE7" as search parameter. (":"=word, """=String, "["=Byte etc. etc. or then you can just search assember command by writing it.) Luckily I didn't need to use CTRL+F (search forward) or CTRL+B (search backwards) because this time I got to right place at fist time.
When I hit once UP-key, I saw LD DE,0FFE7H and LDIR. Few times more and I was able to locate Following routine:
LD HL,29F6H
LD DE,0F3DFH
LD BC,0008H
LDIR
LD DE,0FFE7H
LD C,10H
LDIR
Now I did hit RIGHT + RETURN (no need to enter slot) to jump to address 29F6H (with LEFT, you can jump back to previous view) as I didn't need anymore mnemonics, I hit RETURN+UP to get in to HEX editor and there it was on the screen 08 (Register 8 default) followed by 02 (Register 9 default on PAL machines) I used cursors to go on top of the byte and read from bottom of the screen the correct address. Problem was solved.Uhm, I never doubted Super-X is a great tool. I just wouldn't know where to get it...
Send me mail, and I'll reply...
Just to clear things out, this program IS free as far as I know, but it can't be uploaded to MRC as original author of the software is unreachable and therefore last update of the software has been done without permission...