MSX boot

Page 3/4
1 | 2 | | 4

By HansO

Paladin (672)

HansO's picture

23-11-2005, 14:35

Question for the real MSX addicts:

What is the first Z80 instruction processed when you switch on your MSX ?

pp

0000 F3 BEGIN: DI

Easy to find in the MSX BIOS listing page 2 Smile

By zeilemaker54

Champion (338)

zeilemaker54's picture

23-11-2005, 14:35

Aah, does that imply that if I'm in DiskBASIC, insert a disk containing MSXDOS, and do

POKE &hF346,1:_SYSTEM

this is the exact point where the MSX-DOS initialization procedure begins?

Well allmost. CALL SYSTEM does the following:
- Check if no parameters are specified (e.g. end of basic statement). Note: kernel 1.00, kernel 2.x has an extra parameter.
- If not, quit (which generates a "syntax error")
- Check (&HF346)<>0 (this indicates that MSX-DOS was loaded at boottime).
- If not, quit with "illegal function call" error
- Close all I/O channels (files that are in use by OPEN statements)
- Force textmode
- Disable display of the functionkeys

Then the "Start MSX-DOS" routine is called.

By zeilemaker54

Champion (338)

zeilemaker54's picture

23-11-2005, 14:48


0000 F3 BEGIN: DI

Easy to find in the MSX BIOS listing page 2 Smile

Correct. If your MSX is started (cold start), the Z80 automatic has the interrupts disabled, so this instruction is not needed. But if you do a warm start (e.g. jump to adres 0 in BIOS-ROM), interrupts may be enabled. The startup routine does all kinds of nasty things with slots and hardware, so leaving the interrupts on crashes the startup for sure. That is why the DI instruction is the first instruction!

By zeilemaker54

Champion (338)

zeilemaker54's picture

23-11-2005, 16:07

I have spent quite a bit of time in disassembling the various MSX roms. I am looking for a method to publish the assembly source somewhere on the internet. So everone can look at the code, and may be create a custom version of the dos kernel. But I am not sure if publishing is legal (because of the copyrights).
At the moment I am busy modifing the kernel 2.31 to support FAT16 (so no need to patch the kernel with FAT16.COM), but other modification are possible with my source at hand.
Like to hear your reactions...

I already have a nice collection of sources of diskroms on my site. And store the files on funet. So if I can help let me know.

Thanks for your sugestion Hans. The sources I have are functional (you can use them to recreate the rom files), but they are not fully commented yet. I would like to fully commented these sources (may be with help from the MSX community) and do some version administration. Can you provide an easy way of updating the files ?
May be I will host the files on my own webserver, where I can easily update the files. But I am not sure how to do the version administration. May be someone knows some good software to do this....

By AuroraMSX

Paragon (1902)

AuroraMSX's picture

23-11-2005, 16:48

But I am not sure how to do the version administration. May be someone knows some good software to do this....

I used to host CVS on a private server: pretty easy to configure and even easier to use. ViewCVS provides a nice web interface for CVS, although viewing only. Sourceforge uses CVS, too. Subversion would be another option, but I haven't used that yet.

By HansO

Paladin (672)

HansO's picture

23-11-2005, 20:36

I can offer space as part of my Info pages. CVS is indeed a way to manage sources and versions etc online, sourgeforce is a good example. I dont have that planned for my website, as I see that more as a resource page of more or less static information.

Anyway, I and many others would love to see those sources online, can help you do that in a simple way, and most certainly will point to it from my pages wherever it will come online!

By pp

Rookie (27)

pp's picture

24-11-2005, 08:03

What did you use to disassemble the ROM's ? DISASS ? Did you see any bios calls in the code ?

I need this for a little project.

pp

I use Z80DIS 2.2 by Kenneth Gielow. It is a CP/M program, so no MSX specific labels are used. I myself replace labels with the MSX-BIOS call labels. To modify the output from Z80DIS in useable source is taking the most time for sure.
You can specify area´s of code, text, bytes, word etc. It is really a nice program to use!

Okay, how can I run CP/M on my MSX then ? I'm a newbee as you can see !

I'm having a NMS8245 to work on.

Will I be an outlaw if I use this to find a game secret in a Konami ROM ? I'm desperate to find the secret of this game. As long as I do not publish the code I'm on the right side, right ?

By NYYRIKKI

Enlighted (5918)

NYYRIKKI's picture

24-11-2005, 08:32


Okay, how can I run CP/M on my MSX then ? I'm a newbee as you can see !
You don't need to. MSX-DOS runs CP/M programs just fine. MSX is used to be backward compatible, you see. Big smile

By zeilemaker54

Champion (338)

zeilemaker54's picture

25-11-2005, 12:48

Offtopic: There is a secret programmer message in the DOS kernel 1.00 (Diskbasic 1.0, later versions do not have this ´feature´). If you boot MSX-DOS and do the following at the dos prompt, the programmers of the DOS kernel 1.00 are shown:

input exactly 127 characters (any character is ok)
press CTRL-J
press BS

Not very usefull, but funny....

By BiFi

Enlighted (4348)

BiFi's picture

25-11-2005, 14:21

there was even space for that easteregg? Smile

Page 3/4
1 | 2 | | 4