MSX2 rom flash to start with 60Hz

Страница 3/7
1 | 2 | | 4 | 5 | 6 | 7

By NYYRIKKI

Enlighted (5939)

Аватар пользователя NYYRIKKI

13-10-2004, 16:58

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

By Sonic_aka_T

Enlighted (4130)

Аватар пользователя Sonic_aka_T

13-10-2004, 17:21

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 Tongue

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?

By POISONIC

Paladin (1012)

Аватар пользователя POISONIC

13-10-2004, 17:22

i guess a switchwould be enough

By jpgrobler

Master (154)

Аватар пользователя jpgrobler

13-10-2004, 17:32

I am willing to do the programming of the roms. Do not know what postage will be though from South Africa

By NYYRIKKI

Enlighted (5939)

Аватар пользователя NYYRIKKI

13-10-2004, 17:36

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

By Sonic_aka_T

Enlighted (4130)

Аватар пользователя Sonic_aka_T

13-10-2004, 20:50

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?

By NYYRIKKI

Enlighted (5939)

Аватар пользователя NYYRIKKI

13-10-2004, 22:13

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.

By Sonic_aka_T

Enlighted (4130)

Аватар пользователя Sonic_aka_T

13-10-2004, 22:27

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...

By NYYRIKKI

Enlighted (5939)

Аватар пользователя NYYRIKKI

13-10-2004, 22:28

Send me mail, and I'll reply...

By NYYRIKKI

Enlighted (5939)

Аватар пользователя NYYRIKKI

13-10-2004, 22:36

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...

Страница 3/7
1 | 2 | | 4 | 5 | 6 | 7