Video hustler dissasembly listing with bluemsx debugger.question about im 1 instruction

페이지 1/2
| 2

By nikodr

Paladin (748)

nikodr의 아바타

01-04-2008, 12:44

Hello i took a look at the listing produced by bluemsx debugger of Konami's msx1 game video hustler.

Start address of rom is 4064

here is part of the listing

4064 di
4065 im 1 ------------------>i have a question about the usage of this
4067 ld a,#c3
4069 ld (#fd9a),a
406c ld hl,#403c
406f ld (#fd9b),hl
4072 ld sp,#e400

I have never seen a konami game having an IM 1 instruction.My question is what is it there for?Is there any msx model that would start and boot up and when the game start to be in different interupt mode so someone would need an instruction like this?

Login or 등록 to post comments

By jltursan

Prophet (2619)

jltursan의 아바타

01-04-2008, 16:08

I really believe that there's no model of MSX booting in IM2 mode, nor MSX1 neither the next generations. This instruction could be a left-over from a programmers porting barebone of Konami; video-hustler is an old game and it could have been ported to MSX from another system,...maybe the Tomy Pyuuta?

By Guillian

Prophet (3516)

Guillian의 아바타

02-04-2008, 00:18

As far as I know, most Konami games has a similar initialization code that includes the IM1 instruction. Probably they added it to make sure the IM1 mode was selected.

By jrcp_kun

Paragon (1410)

jrcp_kun의 아바타

05-04-2008, 19:23

by the way....
what is IM1 mode?

By MOA

Champion (293)

MOA의 아바타

06-04-2008, 00:26

@jrcp_kun

IM 1 is the regular MSX interrupt mode (z80 calls address #0038 when an interrupt occurs).

There's also:
* IM 0 (z80 executes instruction placed on the databus by device that generates the interrupt)
* IM 2 (z80 fetches address from vector table and calls it. The table's MSB is stored in I register, LSB is placed on the databus by device that generates the interrupt)

By jrcp_kun

Paragon (1410)

jrcp_kun의 아바타

06-04-2008, 18:18

thanks, what is the purpose to do it at first?? call the interrupt only?? or is a instruction only for msx z80 structure in conversions??
thanks

By MOA

Champion (293)

MOA의 아바타

07-04-2008, 00:20

@jrcp_kun

It's a redundant instruction to use during init code on an MSX. It's only used by (demo) coders to restore from IM 2 (a very useful interrupt mode). Hence nikodr's question...

I think one of Konami's coders just wanted to be on the extreme safe side.

By nikodr

Paladin (748)

nikodr의 아바타

07-04-2008, 03:35

MOA i remember in some other thread http://www.msx.org/forumtopic7660.html asking about im2 and many people from here told me more or less that im2 is actually useless on msx2 because it was not fully implemented i think.I would like to hear your opinion on this.Is this im2 useful in anyway in msx machines?

By ARTRAG

Enlighted (6923)

ARTRAG의 아바타

07-04-2008, 10:07

IIR to be sure IM2 works on ANY msx, you need to waste quite a lot of RAM filling it with the addresses to be called

This means that it is used mainly for demos and not for real games or applications.

By jltursan

Prophet (2619)

jltursan의 아바타

07-04-2008, 10:36

For an example of a simple IM2 use, take a look here :)

By MOA

Champion (293)

MOA의 아바타

07-04-2008, 13:54

@nikodr

It works perfectly on MSX, but the LSB part that's put on the 8 bit data bus by the device that generates the interrupt (VDP) is 'unknown'.

The trick is to fill your vector table with 256 identical isr entry addresses with an MSB & LSB that are equal (for example: #C0C0).

페이지 1/2
| 2