

  !!!! DUE TO LACK OF TIME, THIS DOCUMENT MIGHT BE **VERY** OUT OF DATE !!!!
  !!!! DUE TO LACK OF TIME, THIS DOCUMENT MIGHT BE **VERY** OUT OF DATE !!!!
  !!!! DUE TO LACK OF TIME, THIS DOCUMENT MIGHT BE **VERY** OUT OF DATE !!!!

                      SO DON'T FOLLOW IT BLINDLY !!!!!!

______________________________________________________________________________

                   MSKISS Version 0.2.4 (Mon 13-Mar-2000)

        MSX1, MSX2, MSX2+ and MSX Turbo-R emulator by Isaac Santaolalla

                             is05562@salleURL.edu
______________________________________________________________________________

  USE THIS PROGRAM AT YOUR OWN RISK. I'M NOT RESPONSIBLE FOR ANYTHING YOU DO
   WITH IT. ANYWAY YOU DON'T HAVE TO WORRY BECAUSE IT'S NOT INTENDED TO BE
                                HARMFUL AT ALL.
______________________________________________________________________________

    This emulator *CAN NOT* be freely included in CD-ROM's without a prior
  permission from me. Anyway, the only thing I ask for is a free copy of the
             CD-Rom where the emulator is intended to be copied.
 (Some French PC-gaming magazines should learn reading these kind of texts...)

                                One more thing:
 MSKISS CAN NOT be distributed together with MSX commercial DISKS/ROM's 
neither with the different MSX BIOS around, due to copyright reasons. If you
find MSKISS distributed together with MSX GAMES/BIOS, then it's NOT my
intention!! I'm NOT a pirate. I'm just a freelance coder who has fun emulating
his favourite computer: MSX.
______________________________________________________________________________

You can always find the last version of MSKISS in the official MSKISS page(s):

           http://www.salleURL.edu/~is05562/msx_ing.html   (English)
           http://www.salleURL.edu/~is05562/msx.html       (Spanish)

You can get MSKISS directly, without entering in my MSX page, if you try this:

                  http://www.salleURL.edu/~is05562/mskiss.rar

______________________________________________________________________________

       YOU ARE **NOT** ALLOWED TO SMOKE WHILE READING THIS DOCUMENT !!!
______________________________________________________________________________


The RAR archive you've just unpacked, **MUST ONLY** contain these 6 files:

mskiss.exe    -Main executable.
mskiss.txt    -English manual. (Plain ASCII file. You're reading it now! :)
mskiss.ini    -Sample configuration file. Modify it as you like.
history.txt   -Evolution of MSKISS.
bios\cmos.rom -Sample MSX2 Clock-IC data. Will be overwritten by MSKISS
               every time it ends in MSX-2 mode.
cwsdpmi.exe   -DOS Extender for MSKISS.EXE (release 4). It's needed if
               you're running MSKISS from pure DOS. Anyway, I recommend to
               move CWSDPMI.EXE to a directory of the PATH environement
               variable, such as C:\DOS or C:\WINDOWS\COMMAND, for example.

     Get RAR (or WinRAR) NOW!!! LET'S ERRADICATE THE CRAPPY ZIP FORMAT !!
______________________________________________________________________________


NOTE:

The BIOS dumps of the real MSX's machines, NEEDED TO RUN MSKISS, are NOT
included in the MSKISS.RAR archive now!!! But you can find them in the
official MSKISS homepage:

           http://www.salleURL.edu/~is05562/msx_ing.html   (English)
           http://www.salleURL.edu/~is05562/msx.html       (Spanish)

______________________________________________________________________________

0.0 Index:

   1-
      1.0 Minimum Requirements

   2-
      2.0 List of Features
      2.1 To Do list
      2.2 Known Bugs

   3-
      3.0 How to use MSKISS
      3.01 How to use DSK files

   4-
      4.0 Misc Stuff (Motivation, Tools used, etc...)

   5-
      5.0 Thanks & Greetings

   6-
      6.0 Contact Addresses

______________________________________________________________________________

1.0 Minimum requirements:

-486 Dx4 100 + DOS + Somewhat fast video card, gives a VERY good speed even
 using -frame 1. (I was using -frame 2 or -frame 3 with my old 486 Dx2 66...)

-I've made some tests under W95/W98/WNT (not many, as I made them at the
 university and it's not nice to "waste" a PC for playing MSX games... People
 gets angry when they see that a PC is miss-used for playing MSX games...
 Sigh... They don't understand what MSX meant in the 8 bit world :) Anyway,
 the emulator seems to work 100% perfectly under W95/W98. Under NT the timers
 seem to work a bit more slowly, compared to PURE DOS mode. Under NT there
 isn't VESA 2.0 support neither.

-The physical needed RAM should be more or less 2 or 3MB, but, as CWSDPMI
 "gives" you "all the RAM" you need, even if you don't have it physically,
 then MSKISS will work even with less RAM. (Today RAM problems seem not to be
 a problem for most people).

-In any case, if you have a Gravis Ultrasound, you'll hear PSG/SCC sound, with
 VERY HIGH quality, and wasting only 0.00001% CPU power, of course...

-If you have a Sound Blaster compatible card, you will also hear good quality
 sound, but then MUCH MORE CPU will be wasted... My SB is a 128 PCI one, and
 I'm currently using 8-Bit, 45454 Hz Mono mixing. ALL KIND OF TRUE Sound
 Blasters MUST SUPPORT THIS SO IF IT DOESN'T WORK FOR YOU, YOU DON'T HAVE A
 TRUE SB ! (Maybe you should configure it properly) SCC is rendered using
 square waves at the moment... SB-Digital mode is still going to suffer
 SEVERE changes, so try to understand the low quality and occasional "bleeps"
 you might still hear.

-If you have an Adlib sound card (Or a Sound Blaster with a true OPL2 FM Chip)
 you can also hear some sound but with FM sound quality (not so bad though...)
 The SCC, keyclick, PCM (1 and 4 bits) are ***NOT*** emulated in Adlib mode.
 Noise channel support is partial and it has no pseudo-frequence.

______________________________________________________________________________

2.0 List of features:

MSX1, MSX2, MSX2+ and MSX Turbo R computers emulation. (MSX2 mode is still
 far from perfect, MSX2+ and MSX Turbo R modes are REALLY FAR FROM PERFECT,
 and they just boot their respective BIOS, but nothing more (there is partial
 MSX-DOS 2 support, R-800 CPU is ignored, etc...))
Z80 emulation. (A little buggy, but almost all ZEXALL tests are passed OK)
Adjustable VDP frequency interrupts (PAL/NTSC).
PSG square waves & Noise, SCC, Keyclick, Envelopes, 1 bit PCM and 4 bits PCM
 emulated via GUS. (Really high quality sound, except for PCM, which is still
 unsynchronized, and depending on the computer, the pitch is different).
PSG square waves & Noise, SCC (square waves), Keyclick, Envelopes, 1 bit PCM
 and 4 bits PCM emulated via SB digitally (PCM pitch is PERFECT) SB-Mixing
 might waste TONS of CPU (I can't know it, as I now have a P-III 450 ! :)
PSG square waves and noise channel (without noise pseudo-frequency) emulated
 through an Adlib or SB-(FM OPL2 Mode) sound cards. MUCH slower than GUS
 though...
16x16 and 8x8 sprites (with 5th sprite ocultation and zoomed sprites).
16x16 and 8x8 EXTENDED sprites (MSX2) (with 9th sprite ocultation). This
 sprite mode is still FAR from perfect.
Screen 0, 1, 2, 3, 4, 5, 6, 7, 8 and "12" support. (Screen "12" is SLOOOW! :)
Interlaced modes support (VESA 2.0 needed).
VDP 9918 (MSX1 Video) chip emulation 
V-9938 (MSX2 Video) chip emulation (some VDP features are still not
 implemented! Anyway SD-Snatcher and Solid Snake are FULLY playable).
Partial V-9958 (MSX2+ and Turbo R Video) chip emulation (Currently, I've ONLY
 implemented some kind of SLOW "HI-Color renderer" for Screen 10, 11 or 12).
H-Interrupts (still not perfect, but Golvellius 2 and Super Cooks are
 somewhat playable now).
Experimental Line-by-Line Rendering Engine.
VESA 2.0 video modes support for some speed up and/or scanlines.
Integrated debugger.
Primitive ROM loader from inside the debugger. (Not working properly because
 of the RESET implementation I'm using... To be rewritten as soon as I have
 the time...)
Memory mapper from 4 to 64 16KB pages (64KB to 1024KB)
Full 16/32 KB ROM support. (All 4 types: 0x0000, 0x4000, 0x8000 and BASIC
 cartridges)
Mega-RAM 256 KB support in slot 1. (maybe still buggy...)
Mega-ROM mapper (in both cartridge slots) for ALL Konami Mega-ROM's,
 ASCII 8KB, ASCII 16KB and Original FM-Pac Mega-ROM's.
***VERY Preliminary*** FM-Pac support.
Strong Mega-ROM type detector. (Still not perfect though...)
Disk support via .DSK files (Readings & Writings supported... Formating
 still not supported...)
Primitive speed limiter for fast computers.
**NO** Joystick support for both MSX ports A and B. (Argh!! Allegro 3.12! :)
Kanji BIOS Support (128 KB and 256 KB) for MSX2+ and MSX Turbo-R modes.
MSX Printer support. (ASCII data)

2.1 To Do list:

Sprites collision detection.
Better Extended Sprites support for MSX2
Better support for more V-9938 and V-9958 commands, as well as some more VDP
 registers.
Fine tuning Line-by-Line rendering engine.
General bugfixing of the Z80 core. (I think this line will always appear :)
Autoframe rendering.
Cassette Support (At least .CAS files... Direct soundcard input someday? )
Fine tuning Sound Blaster digital support.
MUCH BETTER MSX2+ and MSX Turbo-R support in a ***VERY FAR*** future.
 (Hala venga... Nunca tuve ninguno de ellos y encima los quiero emular
 decentemente... Voy un poco forzado, pero por optimismo que no quede !!! :)))


2.2 Known Bugs:

"Survivor" title screen still shows some garbled sprites...
Fray intro lacks a PSG sound channel.
MSKISS ROM Loader (F10 + F3) is still FAR FROM PERFECT... So it's strongly
 recommended that you load ROM's from the DOS command line if you have
 problems. I think I'll remove the ROM loader soon unless I rewrite it from
 scratch...
Vampire Killer intro locks in 50 HZ mode (WEIRD bug which I still haven't
 been able to trace properly !!!!)
MSX-2+ and MSX Turbo-R emulation are more than in a eta stage, and they're
 only there for the ULTRA curious people!! (like me for example! :) So:
 DON'T complain about it! I know my HI-Color renderer is still
 SLOOOOOOOOOOOOOOOOOOOOOOOW !! :))
______________________________________________________________________________

3.0 How to use it:
______________________________________________________________________________

   To start MSKISS, type "mskiss" and you'll enter into BASIC. Of course, you
need at least that some kind of BIOS image is present in the BIOS
sub-directory that MSKISS uses (for example, MSX.ROM, MSX2.ROM, MSX2EXT.ROM,
etc...). If MSKISS is not able to find them, it will show a message with info
on where to find them. (You can find the different BIOS images if you go to
the official MSKISS page: http://www.salleURL.edu/~is05562/msx_ing.html )

   By default, MSKISS enters into MSX-2 mode, so if you want MSKISS to emulate
an MSX1, an MSX2+ or a MSX Turbo-R, just enter the "-msxmodel 1",
"-msxmodel 3" or "-msxmodel 4" parameters from the command line. The BrMSX.STA
snapshot feature is ONLY usable in MSX-1 mode !!!. See also MSKISS.INI file
for more info.

   If you want to run a certain ROM, you have to pass the name of this rom as
parameter number 1: For example, "mskiss NAME.ROM" will boot NAME.ROM and you
will be able to play it. If you want to introduce 2 ROM's into MSKISS, then
type the name of the second cartridge AS PARAMETER NUMBER 2: For example,
"mskiss NEMESIS.ROM TWINBEE.ROM" will run "Nemesis 1" with a twinbee appearing
instead of the normal ship... Currently, ALMOST ALL MSX1 roms are already
fully playable, and some MSX-2 ones are also more or less recognizable.

   If you want to modify the behaviour of MSKISS, there are some valid 
switches. To see the short list of switches, type "mskiss -help" and the list
will appear on the screen, with a brief explanation of each one of them.

   To get out of the emulator press F10 twice. If you press F10 once, you'll
enter into the debugger.

   MSKISS is able to map from 4 up to 64 16KB pages via memory mapper (64 KB
to 1024 KB). By default it maps 64 KB for a MSX 1, 128 KB for MSX 2 and MSX2+,
and 512 KB in MSX Turbo-R mode. If you want more memory, try the "-mapram N"
parameter, where N is the number of 16KB pages: 4->64KB , 8->128KB ,
16->256KB, etc... (You can also try 13, 31, 29 or 47 pages, for example, and
it will also work) Due to the recent rewriting of the memory system, the ram
mapper may be still buggy, so "go with care"... or not...

   If you want disk support for MSKISS, DISK.ROM must be present in the
current directory and it will be automatically loaded at boot time... The
only type of DISK.ROM's which work with MSKISS are "memory-based" ones.
Go to the official MSKISS homepage to get the different DISK.ROM BIOS images
to use with the different emulators.
DISK.ROM will only be loaded when you specify the "-diska" parameter to load
a .DSK disk image. If by some reason you want to disable disk support even
when you specify a .DSK file to load, type the "-nodisk" parameter, and
DISK.ROM won't be loaded at boot time.

   If you have a disk image of a real MSX diskette, (.DSK file 737280 bytes)
and you want to use it, you have to type "-diska NAME.DSK" and then the 
selected image will work as drive A: You can also do it with "-diskb NAME.DSK" 
but then this image will work as drive B: (in the latter case, the disk won't
be able to boot, of course...).

   If you're running certain game, and it asks you to change the disk, you can
do it if you enter into the debugger (F10), and then you press the 'D' key.
MSKISS will ask you to enter the name of the disk you'll change. Once you've
entered the disk, and its name is valid, press 'S' and MSKISS will resume the
emulation. (NOTE: This only works for MSX drive A: only)

______________________________________________________________________________

3.01 How to use DSK files. (Little tutorial for begginners)
______________________________________________________________________________

   A DSK file is not a game itself, but a "disk image". This means that the
actual MSX files which are the game (or games), are "INSIDE" the DSK file, and
can ONLY be accessed FROM INSIDE THE MSX (or from inside the emulator! :).
(Well, you can access them from DOS, but special tools are required then...)

   Here I describe a fast method to create an empty disk image using DSKTOOL
(A nice disk tool made by Ricardo Bittencourt... Hi Ricardo :). Once you've
created it, the disk image will be ready to fill it with MSX files from DOS:

   1.- Type this at the MS-DOS prompt to create te empty disk image:

       DSKTOOL A KOKO.DSK

   2.- A new disk image named "koko.dsk" should have appeared in the current
       directory. Move this file wherever you want. This file will be where
       you'll "introduce" the MSX files.

   Now it should be interesting to fill this disk image with MSX files
containing games, or utilites, or whatever... For example let's say that
you've been to ftp.funet.fi/pub/msx/... and you've downloaded your favourite
game, let's say "Thing Bounces Back". This game tipically is made up of 6
files which are the BAS loader and 5 binary blocks... It doesn't matter...
Just use DSKTOOL, in the DOS directory where the TBOUNCES files are, for
example:

   DSKTOOL A KOKO.DSK tb*.*

This command line will add all files which start with "TB" (which means ALL
the files that make Thing Bounces Back) inside the disk image "koko.dsk".

OK. The "hard" work is finished then... Now you have a disk image ready to be
used with the emulator you like more... (For example MSKISS :)) To use it, you
should type something like this:

   mskiss -diska koko.dsk

And then you'll enter into BASIC. Once there, type "FILES" and then a short
list with the files inside the disk image just created will appear
on the screen, more or less this way:

TBOUNCES.BAS TBOUNCES.001
TBOUNCES.002 TBOUNCES.003
TBOUNCES.004 TBOUNCES.005

now you only have to type:

RUN"tbounces.bas

and the game should start, just like in a real MSX.

I hope this info helps new people how to handle DSK files, BIN files, BAS
files, or whatever, from inside emulators, as there are still too many
questions about this in the comp.sys.msx news group... If something is
unclear, mail me and I'll be glad to help you even more.
   
------------------------------------------------------------------------------
   Ok then, after this tutorial chunk, more text :)

   If you want to use japanese MSX BIOS-es, rename them to JAPMSX.ROM (for
MSX-1 mode), or JAPMSX2.ROM and JAPMSX2X.ROM (for MSX-2 mode), and put them
in the same directory as MSKISS. Then you have to start the emulator with
"-jap" parameter... Some games act differently under a japanese MSX. (Extra
music and/or different graphics appear). Japanese mode starts by default in
60Hz mode. You may use also a korean MSX1 BIOS, but then 2 korean
BIOS-ROMs are required: KORMSX.ROM (Korean BIOS) and MSXHAN.ROM (Needed to
type korean characters). The parameter to enable korean mode is "-kor". Korean
mode will ONLY work in MSX 1 mode. By default Korean mode starts in 50Hz mode.
Go to the official MSKISS page to get these japanese/korean bios:
http://www.salleURL.edu/~is05562/msx_ing.html
Thanks to KSH for these BIOS dumps...

   If you want to enter into debug mode, type "-debug" when starting, and the
integrated debugger will start... If you are in the debugger, you can
write the status of MSKISS into a directory called "DEBUG", pressing the 'A'
key. The VRAM, the status of the VDP, the KEYBOARD, the PSG, the SCC, and the
memory mapper will be dumped there. If you press 'V' key, you'll see the
status of the VRAM directly on the screen... Press 'V' again to come back to
the debugger screen.

   You can make a warm reset (the contents of the RAM will NOT be destroyed),
if you press the 'R' key.

   If you want to trace a ROM from its booting address, try the "-autotrap"
parameter. MSKISS will then boot, and when the PC register arrives to the boot
address of the ROM, the debugger will pop up.

   You can also run MSKISS with the "-trap nnnn" parameter. Doing this, the
debugger will pop up when the PC register reaches the nnnn HEX address.

   You can select the soundcard you want MSKISS to use, with the -sound N
parameter. -sound 0 is for no-sound. -sound 1 is for a Gravis Ultrasound.
-sound 2 is for an Adlib/SB-FM (still not finished...). -sound 3 is
for a SB digitally (still not started... :). You can also force the
emulator not to make sound with the "-nosound" parameter.

   MSKISS can take advantadge of VESA 2.0 video modes to make video routines
slightly faster and/or adding scanlines. To test them, try the -videomode N
parameter. -videomode 0 uses the standard 320x200 VGA mode. -videomode 1
uses the 320x480 256 colors VESA 2.0 mode. -videomode 2 uses the 640x480 256
colors VESA 2.0 mode. -videomode 3 uses (if available) both VESA 2.0 videmodes
(320x480 and 640x480), depending on the current Screen Mode, and 640x480x32768
colors for Screen 12. This is the recommended videomode. In theory my VESA 2.0
implementation tries to use the correct video modes for both software driver
(SDD 5.3, or SDD 6.53 for example) and hardware native VESA 2.0
implementations. Mail me if you think that these modes should work for you,
and they don't seem to work... (is05562@salleURL.edu)

   If you have a FAST PC, try "-frame 1" and ALL frames will be rendered. I've
set the default value of 3 frames because my PC is somewhat slow for a fully
coded C emulator (486 Dx2 66), and "-frame 1" is too much for it...

   If you want to try MSKISS at full speed, try the "-topspeed" parameter, and
MSKISS won't syncronize with the VDP interrupts, so it will run VERY fast on
fast computers...

   By default, MSKISS emulates the 5th/9th sprite ocultation. But if by some
strange reason you want to disable this VDP feature, try "-allspr" parameter.

   If when you had your real MSX, interrupts arrived to the Z80 at 60 Hz
(PAL-M or NTSC people), you can specify also this feature under MSKISS. If
you try the "-ifreq n" parameter, with n being the frequency of the VDP
interrupts, MSKISS will get syncronized at the specified frequency. You can
also try this trick to speed up MSKISS: for example, with "-ifreq 60" or
"-ifreq 70", most games get faster... Anyway, the sound may get
unsynchronized... The default value is 50 Hz (as my real Toshiba HX-20 PAL
MSX :). But as I said before, people used to PAL-M or NTSC MSX's should try
"-ifreq 60" (Hi Ricardo! :).

   If you type the "-hx20pal" parameter, MSKISS palette will be the "palette"
of my REAL Toshiba HX-20 MSX-1. It only works in MSX-1 mode (of course! :).
Try it, and watch those funny reds and greens! :)

   If you have a joystick, you can use it with MSKISS... It will be mapped as
MSX Port A... If you want to use your yoystick as MSX Port B, type the "-joyb"
parameter at start-up... If even having a joystick, you want to disable it, 
then type the "-nojoy" parameter... NOTE: The joystick gets calibrated when 
MSKISS starts. So if you're pressing any button when MSKISS boots, the 
joystick may act weirdly, so don't touch it when MSKISS boots...

   Even the emulator is fully written in C, it's NOT as slow as one would
think. You "only" need a 486 Dx4 100 to get something near to 100% speed,
with ALL frames rendered. But I personally think that it is still too much for
a simple MSX emulator. Anyway, I want it to work 100% OK first and then
optimizations will arrive in the future...

______________________________________________________________________________

                   The memory layout of MSKISS is this one:


                               MSX 1 Mode:

        /---------------------------------------------------\
        |        |  slot 0  |  slot 1  | slot 2   |  slot3  |
        |--------+----------+----------+----------+---------|
 0x0000 | page 0 |   BIOS   |    ..    |   ..     |   RAM   |
 0x4000 | page 1 |   BASIC  |  CART 1  | DISK.ROM |   RAM   |
 0x8000 | page 2 |    (1)   |  CART 1  |   ..     |   RAM   |
 0xC000 | page 3 |    ..    |    ..    |   ..     |   RAM   |
        \---------------------------------------------------/

______________________________________________________________________________

                               MSX 2 Mode:

        /-------------------------------------------\
        |        | slot 0 | slot 1 | slot 2 | slot3 |
        |--------+--------+--------+--------+-------|
 0x0000 | page 0 | BIOS   |   ..   |   ..   |       |
 0x4000 | page 1 | BASIC  | CART 1 | CART 2 |       |
 0x8000 | page 2 |  (1)   | CART 1 | CART 2 |       |
 0xC000 | page 3 |  ..    |   ..   |   ..   |       |
        \-----------------------------------/       \
                                          /           \
                                        /               \
                                      /                   \
                                    /                       \
                                  /                           \
                                /                               \
                              /                                   \
                   /-------------------------------------------------------\
                   |  slot 3.0   |  slot 3.1   |  slot 3.2   |  slot 3.3   |
                   +-------------+-------------+-------------+-------------|
            0x0000 |MSX2 EXT BIOS|     ...     |     RAM     |     ...     |
            0x4000 |    ....     |     ...     |     RAM     |  DISK.ROM   |
            0x8000 |    ....     |     ...     |     RAM     |     ...     |
            0xC000 |    ....     |     ...     |     RAM     |     ...     |
                   \-------------------------------------------------------/

______________________________________________________________________________

                               MSX 2+ Mode:

        /-------------------------------------------\
        |        | slot 0 | slot 1 | slot 2 | slot3 |
        |--------+--------+--------+--------+-------|
 0x0000 | page 0 | BIOS   |   ..   |   ..   |       |
 0x4000 | page 1 | BASIC  | CART 1 | CART 2 |       |
 0x8000 | page 2 |  (1)   | CART 1 | CART 2 |       |
 0xC000 | page 3 |  ..    |   ..   |   ..   |       |
        \-----------------------------------/       \
                                          /           \
                                        /               \
                                      /                   \
                                    /                       \
                                  /                           \
                                /                               \
                              /                                   \
                   /-------------------------------------------------------\
                   |  slot 3.0   |  slot 3.1   |  slot 3.2   |  slot 3.3   |
                   +-------------+-------------+-------------+-------------|
            0x0000 |MSX2 EXT BIOS|     ...     |     RAM     |     ...     |
            0x4000 |  KANJI BIOS |     ...     |     RAM     |  DISK.ROM   |
            0x8000 |  KANJI BIOS |     ...     |     RAM     |     ...     |
            0xC000 |    ....     |     ...     |     RAM     |     ...     |
                   \-------------------------------------------------------/

______________________________________________________________________________

                               MSX Turbo-R Mode:

        /-------------------------------------------\
        |        | slot 0 | slot 1 | slot 2 | slot3 |
        |--------+--------+--------+--------+-------|
 0x0000 | page 0 |        |   ..   |   ..   |       |
 0x4000 | page 1 |        | CART 1 | CART 2 |       |
 0x8000 | page 2 |        | CART 1 | CART 2 |       |
 0xC000 | page 3 |        |   ..   |   ..   |       |
        \--------|        \-----------------|       |
                 |          \               |       |
                 |            \             |       |
                 |              \           |       |
                 |                \         |       |
                 |                  \       |       |
                 |                    \     |       |
                 |                      \          
               /-------------------------------------------------------\
               |  slot 0.0   |  slot 0.1   | slot 0.2   |  slot 0.3   |
               +-------------+-------------+-------------+-------------|
        0x0000 |    BIOS     |     ...     |    ...    |     ...     |
        0x4000 |    BASIC    | FM-Pac BIOS |    ...    |     ...     |
        0x8000 |    ....     |     ...     |    ...    |     ...     |
        0xC000 |    ....     |     ...     |    ...    |     ...     |
               \-------------------------------------------------------/
                                                    
                                            |       |
                                            /       \
                                          /           \
                                        /               \
                                      /                   \
                                    /                       \
                                  /                           \
                                /                               \
                              /                                   \
                   /-------------------------------------------------------\
                   |  slot 3.0   |  slot 3.1   |  slot 3.2   |  slot 3.3   |
                   +-------------+-------------+-------------+-------------|
            0x0000 |     RAM     | TR EXT BIOS |     ...     |     ...     |
            0x4000 |     RAM     |     ...     |  KANJI BIOS |  DISK.ROM   |
            0x8000 |     RAM     |     ...     |  KANJI BIOS |     ...     |
            0xC000 |     RAM     |     ...     |     ...     |     ...     |
                   \-------------------------------------------------------/



Note 2: MSKISS may need the infamous POKE -1,170 to load certain games when
        in MSX-2 mode, or POKE -1,0 in Turbo-R mode. This is because the
        Philips-ish memory layout I'm using. If you see game loaders with a
        POKE -1,0 or POKE -1,255, you should change them into POKE -1,170
        (in MSX-2 mode) or POKE -1,0 in MSX Turbo-R mode or even better, the
        universal poke which is this one:

                   POKE -1,((PEEK(-1)XOR 255)AND 240)*1.0625

(1) If korean mode is enabled, here goes MSXHAN.ROM
______________________________________________________________________________

4.0 Misc Stuff 
______________________________________________________________________________

   I'm coding MSKISS only for fun, as a free project. I just started a simple
z80 tracer/debugger in October 1997 (I don't even know why! :). The z80 pieces
of code I used for testing were the typical MSX games, and of course the BIOS
of an MSX-1. Soon I realized that I could create a simple MSX-1 emulator, so,
as I started to go further, I thought that it could be interesting to share
the emulator with the people, so I made it public in February of 1998... There
is still a LONG way before I reach the features of a good MSX2+ or MSX Turbo-R
emulator (I don't even know if I'll arrive to emulate them some day... At
least, let's try it :).

   If you want to enjoy also the real experience of MSX under MS-DOS, try
"BrMSX", "fMSX-DOS" or "CJS's MSX2 emulator". If you want to try the MSX
experience under Gindous (I think it's ___NOT___ a recommended experience),
try "Virtual MSX" or "RuMSX"...

   Comments/ideas/help/info/whatever are *HIGHLY* appreciated! Send them to
the next address:
                             is05562@salleURL.edu

   But please DON'T request how to get MSX commercial ROM's (Games, for
example) as I think it's very easy to find them around.

______________________________________________________________________________

MSKISS has been created using DJGPP 2.03 (with gcc 2.952, IMHO the BEST C/C++
compiler by far :), so if you are not running MSKISS under a DPMI host
(Gindous 95 is a DPMI host, for example), you MUST have CWSDPMI.EXE in the
same directory where MSKISS.EXE is. or in some other directory of the PATH
environment variable... (I recommend copying/moving CWSDPMI.EXE to "C:\DOS\"
or "C:\WINDOWS\COMMAND\" directories.

You can find the latest version of DJGPP here:  "http://www.delorie.com/"
You should check also your nearest mirrors, as they will surelly work much
faster than the offical site. DJGPP has been written by DJ delorie.

***(Spanish mode ON)***
Para la gente de Espaa que quiera empezar con el infinitamente apasionante
mundo del DJGPP y no sepa por dnde empezar, recomiendo que empiece por el
servidor FTP de rediris (que funciona rapidillo, dira yo :) Su direccin,
cmo no, es esta:    ftp://ftp.rediris.es
Luego hay que meterse en nosequ directorios, como por ejemplo:       ,
"/mirrors/simtelnet/gnu/djgpp" (si mal no recuerdo) y leer CON PRECISION
INFINITA el fichero README.1ST... A partir de ah, es como "el comer y el
rascar", todo es empezar... :) El vicio que proporciona el DJGPP puede ser
importante, o sea que cuidado con pasarse ms de 5 horas al da con l :)
***(Spanish mode OFF)***

Of course also, MSKISS has been created using RHIDE 1.4, the best way to code
C with DJGPP under MS-DOS (IMHO also, due to the BRUTAL cut+paste abilities,
the wonderful syntax highlight, and TONS of neat features it has). RHIDE has
been written by Robert Hhne, and at the present day (4-May-1998), I don't
remember the exact http address, as it changed some time ago. I'm too lazy to
find the new address... When I'll need it, I'll use altavista wisely :)
                 
I've also used the impressive ALLEGRO library (v. 3.12) for the keyboard
handler, the timer handler, the joystick routines, and the PCX screen dumper.
ALLEGRO has been written by Shawn Hargreaves. The last released version is
3.12 and if you want to get it, go here:
http://www.talula.demon.co.uk/allegro/
You WON'T be deceived!

I learnt how to "program" the GUS with an OLD document extracted from PCGPE.
That document is called "GUS.TXT" and its author was (is, I suppose :) Mark
Dixon. Anyway I changed MANY GUS routines with the help of GUSsound.c file,
found in Marat fMSX distribution site. This second useful document was written
by Desmond Germans.

I learnt how to program my VESA 2.0 routines with a short, but effective, C
source written by Brennan Underwood.

The executable file MSKISS.EXE has been compressed with UPX 0.99, the
IMPRESSIVE/TERRIBLE/AWESOME/BRUTAL/WONDERFUL executable file compressor.
Thanks to Markus F.X.J Oberhumer & Laszlo Molnar for this incredible piece of
code. Get it here: http://upx.tsx.org/
          or here: http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
          or here: http://www.nexus.hu/upx
______________________________________________________________________________

5.0 Thanks & Greetings:

Ricardo Bittencourt: For answering me *TONS* of (sometimes boring :) doubts I
                      had while doing my emulator. His emulator also was
                      useful to me because I could see how flags were affected
                      in certain opcodes when I was coding my early z80. He
                      also provided me with PRELIM.ROM and Z80DOC.ROM, which
                      are his own ROM ports of a *VERY* useful piece of code,
                      originally contained in YAZE, to check the compatibility
                      of a generic Z80. He also suggested me many useful ideas
                      to speed up MSKISS. He also discovered (and solved) MANY
                      (serious) IRQ and VDP bugs in his MSX emulator (BrMSX),
                      and then he suggested to solve them in my emulator as I
                      could have them also. (And YES, I had some of them! :)
                      In general, thanks a lot for discussing SO MANY ideas!

Ral Gmez: For having started his own SPECTRUM emulator, R80. I think it's
             the best one, even it's the YOUNGEST emulator. It's got A LOT of
             features already implemented, as well as the most perfect timing
             I've ever seen... We shared our Z80's to compare some ideas. His
             Z80 helped me a lot in finding BUG's in my (early) Z80. (Seguro
             que mi Z80 tambin te sirvi mnimamente para algo ;). We've also
             discussed MANY ideas about a lot of things, like an autoframe
             renderer, adding joystick support, speeding up our Z80's by
             messing with the ASM output of gcc (esto ltimo es MUY, pero que
             MUY sucio, eh? ;), adding and fine tuning GUS support, Adlib
             support, SB-Digital support (Ayuda crucial aqu! :), VESA 2.0
             routines... Our emulators have MANY common ideas. (Hola Ral...
             Esta misma frase que pongo justo ahora, es, por supuesto, para
             tocar las narices a la gente que no nos entiende en castellano,
             aunque la utilidad de la misma es altamente dudosa ;)

Nstor Soriano: For having retyped/transferred the MSX-2 Technical Handbook
                 from ASCII. It has been an EXCELLENT source of info. Thanks
                 A LOT!!. 

Antti Silvast: For explaining me the COOL tweaked MSX-1 VDP video modes he
  (Neckfreak)   discovered/designed for his demos "Elkn Vapaus" and/or
                "Atselous". MSKISS is one of the two MSX emulators (the other
                one is BrMSX... Hi Ricardo :) which can run "Atselous"
                somewhat OK. Better support for these RARE VDP features may be
                added soon. Try above demos with MSKISS, or try also some
                other Lieves!Tuore/Bandwagon productions, as they are 
                masterpieces for the MSX-1 (generally better code than some
                MSX-2 demos!)

Ismael Prez: To say him... HELLO! :) (No has hecho nada, pero mira, sales en
               los crditos! Cuntas partiditas sucias con tu SALAMANDER en
               tu mtico VG-8020 en tu casa (o en la ma :)) en aquellas
               aburridas tardes de verano, eh? Nos lo pasbamos entero (y con
               el Nemesis 2 metido!!!) ;)

MSX-Club/Extra Magazine: For being the BEST MSX magazine in Spain ever. It
                          was a VERY HUMBLE magazine (written in B & W), but
                          this fact, makes MSX-Club/Extra even mythical
                          nowadays. If it hadn't existed, MSKISS wouldn't also
                          have existed, as I would be now a
                          MSX-vegetable-user, only capable to play Konami
                          Mega-ROM's, and not a MSX crazy-like-a-goat user,
                          the thing into which I have become :). I suppose
                          that EVERY MSX user in Spain who used his/(her? :)
                          MSX not only to play Nemesis 2 but to code
                          interesting stuff, thinks like me...

Carlos Alberto Lozano: For those nice chats/mails we shared in 1996-1997 when
      (Lord Esnes)      he was heavily programming ESNES. He proposed me to
                        start some kind of emulator as it shouldn't be so
                        difficult. And he was right... It wasn't so difficult.
                        (Ahora, a ver si sacas un poco de tiempo de debajo de
                        las piedras, aunque sea para refinar el NLKE un poco
                        ms, aunque seguro que te pasa como a todos: los
                        exmenes y las practicas nos quitan el poco tiempo
                        libre que tenemos... ;)

Sean Young: For writing A LOT OF VERY interesting documents about RARE
             undocumented features of the MSX and the Z80.

Alex Krasivsky: The Adlib ****INIT****-Routines I'm using in MSKISS have
                 been written by him and Marat Fayzullin... I got them
                 from some old sources of X128 Spectrum emulator(?), (or fMSX?
                 I don't remember :). Thanks to both of you anyway...

Marat Fayzullin: For having written the nice "HOWTO write an emulator" in
                  which MSKISS is heavily based. I've also used (and modified)
                  the DAA table used in his z80 emulator (THANKS! :). He also
                  is the original author of fMSX. fMSX-unix sources were VERY
                  useful to me to compare some ideas. (And yes: I said ideas,
                  NOT CUT+PASTE :)

KSH: For having provided me with some BIOS dumps of japanese MSX-1 and MSX-2
      computers and then I've been able to make additional tests...
      Thanks a lot! :)

Many people from comp.os.msdos.djgpp newsgroup, specially Eli Zaretskii, and
 Shawn Hargreaves, for having solved many low level DJGPP doubts I had in the
 early (and not so early :) stages of MSKISS... 

Arnaud de Klerk: For having an excellent MSX web, which WAS somewhat fast for
    (TFH/Fony)    us, europeans. He also gave me the hint on how to fix MSX-2
                  booting by implementing Clock-IC, and helped me in fine
                  tuning my VESA 2.0 routines. Thanks also for some mails from
                  time to time! (Really GOOD musical taste! ;)

Sergio Yukio: For giving me TONS of rare/modern pieces of MSX2+/Turbo-R code
               and so I've been able to made MANY ADDITIONAL tests... Thanks!!

Marcel de Kogel: For answering some mails in the early stages of MSKISS.

..............................................................................

Finally, some hello's to some of my university friends... I'm sure they'll
 never read this, but who cares :)

 -Meritxell Sala (Haala, tiio tiio ;), Cristina Ripoll y Natalia Vigueras...
  (Vaya tres patas para una silla! ;)

 -Aleix Ventayol, siempre en su mundo de CORBA/JAVA/VISUAL C++, (y siempre
  alerta de cuando salir a buscar su tren para Sabadell! :)

 -David Ro. Sjempre hacjendo dao... La sucjedad lleva tu nombre, qu duda
  cabe... ;) Por cierto, qu mal te veo con la "Scoopy" robada... 

 -Carlos Vila Deutschbein. (Nuestro mtico "Dotch"... :) Personaje conflictivo
  (y alemn! :) donde los haya... Siempre con ese sucio Amiga a cuestas... 
  (Es necesario que no miremos tanta tele... ;)

 -Ferran Falc (Vaya "pedrazo" Pentium II que tienes ahora ladrn! :)

 -Ludoz (Solo nos vemos de ao(s) en ao(s) en las reuniones de las Cotxeres
  de Sants, pero mejor que nada ya es ^_^; )

 -ALL "fibers" (and "ex-fibers", like me) who blindly love MSX at least as
  much as me...
______________________________________________________________________________

             Number of smilies per word in this document: 1/10 :)

Frecuencia de paso del 7,14,22,33,64,74, (no muy llenos)..........:  3 minutos
Frecuencia de paso del 68 (lleno hasta los topes), QUE NO DEL 67! : 25 minutos
                              (TMB Desgraciados !!!)

Favourite Radio program: "Gomaespuma" (M80) (Humor inteligente por un tubo! :)

Favourite TV programs: "Party of Five" (o "Tots Cinc",  TV3)
                       "Doraemon" (Canal 33) (FOREVER !!!!!!!!!! :)
                       "Malalts de Tele" (TV3)


These are my ALL TIME favourite songs (i.e: songs that rise my hair EVERY time
I listen to them) They're not sorted in any special order... or maybe yes...

"Queen of Rain"                                             (Roxette, Tourism)
"Boig per tu"                                                 (Sau, Quina Nit)
"Little Wing"                                     (The Corrs, Talk on Corners)
"Soar", "El Libro", "Pesadilla"          (La Oreja de Van Gogh, Dile al Sol)
"The Goonies R Good Enough"                     (Cyndi Lauper, Goonies O.S.T.)
"Come Back (Before You Leave)"                              (Roxette, Tourism)
"Fading Like a Flower (Every Time You Leave)"               (Roxette, Joyride)
"La Isla Bonita" (OF COURSE!! :)                          (Madonna, True Blue)
"The Power of Love"         (Huey Lewis & The News, Back to the Future O.S.T.)
"Things will never be the Same"               (Roxette, Joyride. NOT TOURISM!)

        MSKISS would NOT exist if I hadn't had these songs to listen...

______________________________________________________________________________
______________________________________________________________________________

  MSKISS HAS A HIDDEN COMMAND-LINE PARAMETER... BUT YOU'LL NEVER FIND IT !!! 
______________________________________________________________________________
______________________________________________________________________________

6.0 Contact addresses

If you want to check my MSX-Page(s) go here:
"http://www.salleURL.edu/~is05562/msx_ing.html" (English)
"http://www.salleURL.edu/~is05562/msx.html"     (Spanish)

If you want to check my Homepage(s) go here:
"http://www.salleURL.edu/~is05562/iss_ing.html" (English)
"http://www.salleURL.edu/~is05562/"             (Spanish)

All of them are physically located in the www server of "La Salle Bonanova"
in Barcelona (Spain).

Ideas, comments, suggestions, bugs or random-mails about MSKISS (or about
whatever) are HIGHLY apreciated. Send them to the address below...

                            is05562@salleURL.edu
______________________________________________________________________________

  Isaac Santaolalla Solrzano wrote this document with VIM 5.3 for DOS on the
                           
                             13th March of 2000
      
      
                  Cornell de Llobregat (Barcelona - SPAIN)
______________________________________________________________________________

SYDMMRFNQQFSFRUHNZSDNDSHUWFKKTDNOSDUDTSJLBQFLFQJSYDMMRFNQQFSFRUHNZSDNDSHUWFKK6
______________________________________________________________________________

