From b2ba8d7766e200a7c0219462f01a7050d0b07328 Mon Sep 17 00:00:00 2001 From: Yogev Ezra Date: Sun, 30 Jan 2011 14:48:24 +0000 Subject: [PATCH] Add emulators: 'DosBox' (binary only), 'e80', 'fceu' (binary only). git-svn-id: svn://kolibrios.org@1814 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/emulator/DosBox/dosbox | Bin 0 -> 447360 bytes programs/emulator/DosBox/dosbox.conf | 233 ++ programs/emulator/DosBox/readme.txt | 1469 +++++++++++ programs/emulator/e80/trunk/48.h | 1027 ++++++++ programs/emulator/e80/trunk/asm_code.asm | 39 + programs/emulator/e80/trunk/clean.bat | 3 + programs/emulator/e80/trunk/compile.bat | 11 + programs/emulator/e80/trunk/e80.c | 534 ++++ programs/emulator/e80/trunk/games/othello.sna | Bin 0 -> 49179 bytes programs/emulator/e80/trunk/keyboard.c | 408 +++ programs/emulator/e80/trunk/keyboard.png | Bin 0 -> 7879 bytes programs/emulator/e80/trunk/kolibri.ld | 20 + programs/emulator/e80/trunk/readme.txt | 45 + programs/emulator/e80/trunk/system/kolibri.c | 412 ++++ programs/emulator/e80/trunk/system/kolibri.h | 90 + programs/emulator/e80/trunk/system/msgbox.c | 167 ++ programs/emulator/e80/trunk/system/stdlib.c | 33 + programs/emulator/e80/trunk/system/stdlib.h | 14 + programs/emulator/e80/trunk/system/string.c | 124 + programs/emulator/e80/trunk/system/string.h | 15 + programs/emulator/e80/trunk/z80/macros.c | 447 ++++ programs/emulator/e80/trunk/z80/op_cb.c | 356 +++ programs/emulator/e80/trunk/z80/op_dd_fd.c | 239 ++ programs/emulator/e80/trunk/z80/op_ed.c | 417 ++++ programs/emulator/e80/trunk/z80/opcodes.c | 901 +++++++ programs/emulator/e80/trunk/z80/opddfdcb.c | 196 ++ programs/emulator/e80/trunk/z80/tables.h | 829 +++++++ programs/emulator/e80/trunk/z80/z80.c | 407 +++ programs/emulator/e80/trunk/z80/z80.h | 188 ++ programs/emulator/fceu/ChangeLog.txt | 2183 +++++++++++++++++ programs/emulator/fceu/FCEU ReadMe.txt | 152 ++ programs/emulator/fceu/History.txt | 33 + programs/emulator/fceu/fce | Bin 0 -> 113006 bytes 33 files changed, 10992 insertions(+) create mode 100644 programs/emulator/DosBox/dosbox create mode 100644 programs/emulator/DosBox/dosbox.conf create mode 100644 programs/emulator/DosBox/readme.txt create mode 100644 programs/emulator/e80/trunk/48.h create mode 100644 programs/emulator/e80/trunk/asm_code.asm create mode 100644 programs/emulator/e80/trunk/clean.bat create mode 100644 programs/emulator/e80/trunk/compile.bat create mode 100644 programs/emulator/e80/trunk/e80.c create mode 100644 programs/emulator/e80/trunk/games/othello.sna create mode 100644 programs/emulator/e80/trunk/keyboard.c create mode 100644 programs/emulator/e80/trunk/keyboard.png create mode 100644 programs/emulator/e80/trunk/kolibri.ld create mode 100644 programs/emulator/e80/trunk/readme.txt create mode 100644 programs/emulator/e80/trunk/system/kolibri.c create mode 100644 programs/emulator/e80/trunk/system/kolibri.h create mode 100644 programs/emulator/e80/trunk/system/msgbox.c create mode 100644 programs/emulator/e80/trunk/system/stdlib.c create mode 100644 programs/emulator/e80/trunk/system/stdlib.h create mode 100644 programs/emulator/e80/trunk/system/string.c create mode 100644 programs/emulator/e80/trunk/system/string.h create mode 100644 programs/emulator/e80/trunk/z80/macros.c create mode 100644 programs/emulator/e80/trunk/z80/op_cb.c create mode 100644 programs/emulator/e80/trunk/z80/op_dd_fd.c create mode 100644 programs/emulator/e80/trunk/z80/op_ed.c create mode 100644 programs/emulator/e80/trunk/z80/opcodes.c create mode 100644 programs/emulator/e80/trunk/z80/opddfdcb.c create mode 100644 programs/emulator/e80/trunk/z80/tables.h create mode 100644 programs/emulator/e80/trunk/z80/z80.c create mode 100644 programs/emulator/e80/trunk/z80/z80.h create mode 100644 programs/emulator/fceu/ChangeLog.txt create mode 100644 programs/emulator/fceu/FCEU ReadMe.txt create mode 100644 programs/emulator/fceu/History.txt create mode 100644 programs/emulator/fceu/fce diff --git a/programs/emulator/DosBox/dosbox b/programs/emulator/DosBox/dosbox new file mode 100644 index 0000000000000000000000000000000000000000..ae76fb9a7b4d1ef5a80e3e7fb0462e9b97760f7a GIT binary patch literal 447360 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 w8&AL8Sx?j0$3 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%0All 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 instead of a C:\> at the prompt. + You have to make your directories available as drives in DOSBox by using + the "mount" command. For example, in Windows "mount C D:\GAMES" will give + you a C drive in DOSBox which points to your Windows D:\GAMES directory + (that was created before). In Linux, "mount c /home/username" will give you + a C drive in DOSBox which points to /home/username in Linux. + To change to the drive mounted like above, type "C:". If everything went + fine, DOSBox will display the prompt "C:\>". + + +AUTOMATION: Do I always have to type these commands? + In the DOSBox configuration file is an [autoexec] section. The commands + present there are run when DOSBox starts, so you can use this section + for the mounting. Look at Section 13: The configuration (options) file + + +FULLSCREEN: How do I change to fullscreen? + Press alt-enter. Alternatively: Edit the configuration file of DOSBox and + change the option fullscreen=false to fullscreen=true. If fullscreen looks + wrong in your opinion: Play with the options: fullresolution, output and + aspect in the configuration file of DOSBox. To get back from fullscreen + mode: Press alt-enter again. + + +CD-ROM: My CD-ROM doesn't work. + To mount your CD-ROM in DOSBox you have to specify some additional options + when mounting the CD-ROM. + To enable CD-ROM support (includes MSCDEX) in Windows: + - mount d f:\ -t cdrom + in Linux: + - mount d /media/cdrom -t cdrom + + In some cases you might want to use a different CD-ROM interface, + for example if CD audio does not work: + To enable SDL-support (does not include low-level CD access!): + - mount d f:\ -t cdrom -usecd 0 -noioctl + To enable ioctl access using digital audio extraction for CD audio + (windows-only, useful for Vista): + - mount d f:\ -t cdrom -ioctl_dx + To enable ioctl access using MCI for CD audio (windows-only): + - mount d f:\ -t cdrom -ioctl_mci + To force ioctl-only access (windows-only): + - mount d f:\ -t cdrom -ioctl_dio + To enable low-level aspi-support (win98 with aspi-layer installed): + - mount d f:\ -t cdrom -aspi + + explanation: - d driveletter you will get in DOSBox (d is the best, + don't change it!) + - f:\ location of CD-ROM on your PC. In most cases it will + be d:\ or e:\ + - 0 The number of the CD-ROM drive, reported by "mount -cd" + (note that this value is only needed when using SDL + for CD audio, otherwise it is ignored) + See also the next question: The game/application can't find its CD-ROM. + + +CD-ROM: The game/application can't find its CD-ROM. + Be sure to mount the CD-ROM with -t cdrom switch, this will enable the + MSCDEX interface required by DOS games to interface with CD-ROMs. + Also try adding the correct label (-label LABEL) to the mount command, + where LABEL is the CD-label (volume ID) of the CD-ROM. + Under Windows you can specify -ioctl, -aspi or -noioctl. Look at the + description of the mount command in Section 4: "Internal programs" + for their meaning and the + additional audio-CD related options -ioctl_dx, ioctl_mci, ioctl_dio. + + Try creating a CD-ROM image (preferably CUE/BIN pair) and use the + DOSBox's internal IMGMOUNT tool to mount the image (the CUE sheet). + This enables very good low-level CD-ROM support on any operating system. + + +MOUSE: The mouse doesn't work. + Usually, DOSBox detects when a game uses mouse control. When you click on + the screen it should get locked (confined to the DOSBox window) and work. + With certain games, the DOSBox mouse detection doesn't work. In that case + you will have to lock the mouse manually by pressing CTRL-F10. + + +SOUND: There is no sound. + Be sure that the sound is correctly configured in the game. This might be + done during the installation or with a setup/setsound utility that + accompanies the game. First see if an autodetection option is provided. If + there is none try selecting Soundblaster or Soundblaster 16 with the default + settings being "address=220 irq=7 dma=1" (sometimes highdma=5). You might + also want to select Sound Canvas/SCC/MPU-401/General MIDI/Wave Blaster + at "address=330 IRQ=2" as music device. + The parameters of the emulated sound cards can be changed in the DOSBox + configuration file. + If you still don't get any sound set the core to normal in DOSBox + configuration and use some lower fixed cycles value (like cycles=2000). Also + assure that your host operating sound does provide sound. + In certain cases it might be useful to use a different emulated sound device + like a soundblaster pro (sbtype=sbpro1 in the DOSBox configuration file) or + the gravis ultrasound (gus=true). + + +SOUND: What sound hardware does DOSBox presently emulate? + DOSBox emulates several legacy sound devices: + - Internal PC speaker/Buzzer + This emulation includes both the tone generator and several forms of + digital sound output through the internal speaker. + - Creative CMS/Gameblaster + The is the first card released by Creative Labs(R). The default + configuration places it on address 220. It is disabled as default. + - Tandy 3 voice + The emulation of this sound hardware is complete with the exception of + the noise channel. The noise channel is not very well documented and as + such is only a best guess as to the sound's accuracy. It is disabled as + default. + - Tandy DAC + Some games may require turning off sound blaster emulation (sbtype=none) + for better tandy DAC sound support. Don't forget to set the sbtype back to + sb16 if you don't use tandy sound. + - Adlib + This emulation is almost perfect and includes the Adlib's ability to + almost play digitized sound. Placed at address 220 (also on 388). + - SoundBlaster 16 / SoundBlaster Pro I & II / SoundBlaster I & II + By default DOSBox provides Soundblaster 16 level 16-bit stereo sound. + You can select a different SoundBlaster version in the configuration of + DOSBox. AWE32 music is not emulated as you can use MPU-401 instead + (see below). + - Disney Sound Source and Covox Speech Thing + Using the printer port, this sound device outputs digital sound only. + Placed at LPT1 + - Gravis Ultrasound + The emulation of this hardware is nearly complete, though the MIDI + capabilities have been left out, since an MPU-401 has been emulated + in other code. For Gravis music you also have to install Gravis drivers + inside DOSBox. It is disabled as default. + - MPU-401 + A MIDI passthrough interface is also emulated. This method of sound + output will only work when used with external device/emulator. + Every Windows XP/Vista/7 and MAC OS has got a default emulator compatible + with: Sound Canvas/SCC/General Standard/General MIDI/Wave Blaster. + A different device/emulator is needed for Roland LAPC/CM-32L/MT-32 + compatibility. + + +SOUND: The sound stutters or sounds stretched/weird. + You may be using too much CPU power to keep DOSBox running at the current + speed. You can lower the cycles, skip frames, reduce the sampling rate of + the respective sound device, increase the prebuffer. See section 13: "The + configuration (options) file" + If you are using cycles=max or =auto, then make sure that there is no + background processes interfering! (especially if they access the harddisk) + Also look at Section 10. "How to speed up/slow down DOSBox" + + +KEYBOARD: I can't type \ or : in DOSBox. + This can happen in various cases, like your host keyboard layout does not + have a matching DOS layout representation (or it was not correctly + detected), or the key mapping is wrong. + Some possible fixes: + 1. Use / instead, or ALT-58 for : and ALT-92 for \. + 2. Change the DOS keyboard layout (see Section 8: Keyboard Layout). + 3. Add the commands you want to execute to the [autoexec] section + of the DOSBox configuration file. + 4. Open the DOSBox configuration file and change the usescancodes entry. + 5. Switch the keyboard layout of your operating system. + + Note that if the host layout can not be identified, or keyboardlayout is + set to none in the DOSBox configuration file, the standard US layout is + used. In this configuration try the keys around "enter" for the key \ + (backslash), and for the key : (colon) use shift and the keys between + "enter" and "L". + + +KEYBOARD: Right Shift and "\" doesn't work in DOSBox. (Windows only) + This may happen if Windows thinks that you have more than one keyboard + connected to your PC when you use some remote control devices. + To verity this problem run cmd.exe, navigate to DOSBox program folder + and type: + set sdl_videodriver=windib + dosbox.exe + check whether keyboard started to work properly. As windib is slower it is + best to use one of the two solutions provided here: + http://vogons.zetafleet.com/viewtopic.php?t=24072 + + +KEYBOARD: The keyboard lags. + Lower the priority setting in the DOSBox configuration file, for example + set "priority=normal,normal". You might also want to try lowering the + cycles (use a fixed cycle amount to start with, like cycles=10000). + + +CONTROL: The character/cursor/mouse pointer always moves into one direction! + See if it still happens if you disable the joystick emulation, + set joysticktype=none in the [joystick] section of your DOSBox + configuration file. Maybe also try unplugging any joystick/gamepad. + If you want to use the joystick in the game, try setting timed=false + and be sure to calibrate the joystick (both in your OS as well as + in the game or the game's setup program). + + +SPEED: The game/application runs much too slow/too fast! + Look at the section 10: "How to speed up/slow down DOSBox" for more + information. + + +CRASH: The game/application does not run at all/crashes! + Look at Section 11: Troubleshooting + + +CRASH: DOSBox crashes on startup!. + Look at Section 11: Troubleshooting + + +GAME: My Build game(Duke3D/Blood/Shadow Warrior) has problems. + First of all, try to find a port of the game. Those will offer a better + experience. To fix the graphics problem that occurs in DOSBox on higher + resolutions: Open the configuration file of DOSBox and search for + machine=svga_s3. Change svga_s3 to vesa_nolfb + Change memsize=16 to memsize=63 + + +SAFETY: Can DOSBox harm my computer? + DOSBox can not harm your computer more than any other resource demanding + program. Increasing the cycles does not overclock your real CPU. + Setting the cycles too high has a negative performance effect on the + software running inside DOSBox. + + +OPTIONS: I would like to change DOSBox's options. + Look at Section 13. "The configuration (options) file" + + +HELP: Great Manual, but I still don't get it. + For more questions read the rest of this Manual. You may also look at: + guides located at http://vogons.zetafleet.com/viewforum.php?f=39 + the wiki of DOSBox http://www.dosbox.com/wiki/ + the site/forum: http://www.dosbox.com + + + +=========================== +3. Command Line Parameters: +=========================== + +An overview of the command line options you can give to DOSBox. Although +in most cases it is easier to use DOSBox's configuration file instead. +See: Section 13. "The configuration (options) file" + +To be able to use Command Line Parameters: +(Windows) open cmd.exe or command.com or edit the shortcut to dosbox.exe +(Linux) use console +(MAC OS X) start terminal.app and navigate to: + /applications/dosbox.app/contents/macos/dosbox + +The options are valid for all operating systems unless noted in the option +description: + +dosbox [name] [-exit] [-c command] [-fullscreen] [-userconf] + [-conf congfigfilelocation] [-lang languagefilelocation] + [-machine machine type] [-noconsole] [-startmapper] [-noautoexec] + [-securemode] [-scaler scaler | -forcescaler scaler] [-version] + [-socket socket] + +dosbox -version +dosbox -editconf program +dosbox -opencaptures program +dosbox -printconf +dosbox -eraseconf +dosbox -erasemapper + + name + If "name" is a directory it will mount that as the C: drive. + If "name" is an executable it will mount the directory of "name" + as the C: drive and execute "name". + + -exit + DOSBox will close itself when the DOS application "name" ends. + + -c command + Runs the specified command before running "name". Multiple commands + can be specified. Each command should start with "-c" though. + A command can be: an Internal Program, a DOS command or an executable + on a mounted drive. + + -fullscreen + Starts DOSBox in fullscreen mode. + + -userconf + Start DOSBox with the users specific configuration file. Can be used + together with multiple -conf parameters, but -userconf will always be + loaded before them. + + -conf configfilelocation + Start DOSBox with the options specified in "configfilelocation". + Multiple -conf options may be present. + See Section 13 for more details. + + -lang languagefilelocation + Start DOSBox using the language specified in "languagefilelocation". + See Section 14 for more details. + + -machine machinetype + Setup DOSBox to emulate a specific type of machine. Valid choices are: + hercules, cga, ega, pcjr, tandy, svga_s3 (default) as well as + the additional svga chipsets listed in the DOSBox configuration file. + svga_s3 enables vesa emulation as well. + For some special vga effects the machinetype vgaonly can be used, + note that this disables svga capabilities and might be slower due to the + higher emulation precision. + The machinetype affects the video card and the available sound cards. + + -noconsole (Windows Only) + Start DOSBox without showing DOSBox Status Window (console). + Output will be redirected to stdout.txt and stderr.txt + + -startmapper + Enter the keymapper directly on startup. Useful for people with + keyboard problems. + + -noautoexec + Skips the [autoexec] section of the loaded configuration file. + + -securemode + Same as -noautoexec, but adds config.com -securemode at the + bottom of AUTOEXEC.BAT (which in turn disables any changes to how + the drives are mounted inside DOSBox). + + -scaler scaler + Uses the scaler specified by "scaler". See the DOSBox configuration file + for the available scalers. + + -forcescaler scaler + Similar to the -scaler parameter, but tries to force usage of + the specified scaler even if it might not fit. + + -version + output version information and exit. Useful for frontends. + + -editconf program + calls program with as first parameter the configuration file. + You can specify this command more than once. In this case it will + move to second program if the first one fails to start. + + -opencaptures program + calls program with as first parameter the location of the captures + folder. + + -printconf + prints the location of the default configuration file. + + -resetconf + removes the default configuration file. + + -resetmapper + removes the mapperfile used by the default clean configuration file. + + -socket + passes the socket number to the nullmodem emulation. See Section 9: + "Serial Multiplayer feature." + +Note: If a name/command/configfilelocation/languagefilelocation contains + a space, put the whole name/command/configfilelocation/languagefilelocation + between quotes ("command or file name"). If you need to use quotes within + quotes (most likely with -c and mount): + Windows and OS/2 users can use single quotes inside the double quotes. + Other people should be able to use escaped double quotes inside the + double quotes. + Windows: -c "mount c 'c:\My folder with DOS games\'" + Linux: -c "mount c \"/tmp/name with space\"" + +A rather unusual example, just to demonstrate what you can do (Windows): +dosbox D:\folder\file.exe -c "MOUNT Y H:\MyFolder" + This mounts D:\folder as C:\ and runs file.exe. + Before it does that, it will first mount H:\MyFolder as the Y drive. + +In Windows, you can also drag directories/files onto the DOSBox executable. + + + +===================== +4. Internal Programs: +===================== + +DOSBox supports most of the DOS commands found in command.com. +To get a list of the internal commands type "HELP" at the prompt. + +In addition, the following commands are available: + +MOUNT "Emulated Drive letter" "Real Drive or Directory" + [-t type] [-aspi] [-ioctl] [-noioctl] [-usecd number] [-size drivesize] + [-label drivelabel] [-freesize size_in_mb] + [-freesize size_in_kb (floppies)] +MOUNT -cd +MOUNT -u "Emulated Drive letter" + + Program to mount local directories as drives inside DOSBox. + + "Emulated Drive letter" + The driveletter inside DOSBox (for example C). + + "Real Drive letter (usually for CD-ROMs in Windows) or Directory" + The local directory you want accessible inside DOSBox. + + -t type + Type of the mounted directory. + Supported are: dir (default), floppy, cdrom. + + -size drivesize + (experts only) + Sets the size of the drive, where drivesize is of the form + "bps,spc,tcl,fcl": + bps: bytes per sector, by default 512 for regular drives and + 2048 for CD-ROM drives + spc: sectors per cluster, usually between 1 and 127 + tcl: total clusters, between 1 and 65534 + fcl: total free clusters, between 1 and tcl + + -freesize size_in_mb | size_in_kb + Sets the amount of free space available on a drive + in megabytes (regular drives) or kilobytes (floppy drives). + This is a simpler version of -size. + + -label drivelabel + Sets the name of the drive to "drivelabel". Needed on some systems + if the CD-ROM label isn't read correctly (useful when a program + can't find its CD-ROM). If you don't specify a label + and no lowlevel support is selected (that is omitting the -usecd # + and/or -aspi parameters, or specifying -noioctl): + For Windows: label is extracted from "Real Drive". + For Linux: label is set to NO_LABEL. + + If you do specify a label, this label will be kept as long as the drive + is mounted. It will not be updated !! + + -aspi + Forces use of the aspi layer. Only valid if mounting a CD-ROM under + Windows systems with an ASPI-Layer. + + -ioctl (automatic selection of the CD audio interface) + -ioctl_dx (digital audio extraction used for CD audio) + -ioctl_dio (ioctl calls used for CD audio) + -ioctl_mci (MCI used for CD audio) + Forces use of ioctl commands. Only valid if mounting a CD-ROM under + a Windows OS which support them (Win2000/XP/NT). + The various choices only differ in the way CD audio is handled, + preferably -ioctl_dio is used (lowest workload), but this might not + work on all systems, so -ioctl_dx (or -ioctl_mci) can be used. + + -noioctl + Forces use of the SDL CD-ROM layer. Valid on all systems. + + -usecd number + Valid on all systems, under windows the -noioctl switch has to be + present to make use of the -usecd switch. + Enables to select the drive that should be used by SDL. Use this if + the wrong or no CD-ROM drive is mounted while using the SDL CD-ROM + interface. "number" can be found by "MOUNT -cd". + + -cd + Displays all CD-ROM drives detected by SDL, and their numbers. + See the information at the -usecd entry above. + + -u + Removes the mount. Doesn't work for Z:\. + + Note: It's possible to mount a local directory as CD-ROM drive, + but hardware support is then missing. + + Basically MOUNT allows you to connect real hardware to DOSBox's emulated PC. + So MOUNT C C:\GAMES tells DOSBox to use your C:\GAMES directory as drive C: + in DOSBox. MOUNT C E:\SomeFolder tells DOSBox to use your E:\SomeFolder + directory as drive C: in DOSBox. + + Mounting your entire C drive with MOUNT C C:\ is NOT recommended! The same + is true for mounting the root of any other drive, except for CD-ROMs (due to + their read-only nature). + Otherwise if you or DOSBox make a mistake you may lose all your files. + Also never mount a "Windows" or "Program Files" folders or their subfolders + in Windows Vista/7 as DOSBox may not work correctly, or will stop working + correctly later. It is recommended to keep all your dos applications/games + in a simple folder (for example c:\dosgames) and mount that. + + You should always install your game inside DOSBox. + So if you have the game on CD you always (even after installation!) + have to mount both: folder as a harddisk drive and a CD-ROM. + HardDisk should always be mounted as c + CD-ROM should always be mounted as d + Floppy should always be mounted as a (or b) + + Basic MOUNT Examples for normal usage (Windows): + + 1. To mount a folder as a harddisk drive: + mount c d:\dosgames + + 3. To mount your CD-ROM drive E as CD-ROM drive D in DOSBox: + mount d e:\ -t cdrom + + 2. To mount your drive a: as a floppy: + mount a a:\ -t floppy + + Advanced MOUNT examples (Windows): + + 4. To mount a hard disk drive with ~870 mb free diskspace (simple version): + mount c d:\dosgames -freesize 870 + + 5. To mount a drive with ~870 mb free diskspace (experts only, full control): + mount c d:\dosgames -size 512,127,16513,13500 + + 1. To mount c:\dosgames\floppy as a floppy: + mount a c:\dosgames\floppy -t floppy + + + Other MOUNT examples: + + 3. To mount system CD-ROM drive at mountpoint /media/cdrom as CD-ROM drive D + in DOSBox: + mount d /media/cdrom -t cdrom -usecd 0 + + 6. To mount /home/user/dosgames as drive C in DOSBox: + mount c /home/user/dosgames + + 7. To mount the directory where DOSBox was started as C in DOSBox: + mount c . + (note the . which represents the directory where DOSBox was started, + on Windows Vista/7 don't use this if you installed DOSBox + to your "Program Files" folder) + + If you want to mount a CD image or floppy image, check IMGMOUNT. + MOUNT also works with images but only if you use external program, + for example (both are free): + - Daemon Tools Lite (for CD images), + - Virtual Floppy Drive (for floppy images). + Although IMGMOUNT can give better compatibility. + + +MEM + Program to display the amount and type of free memory. + + +VER +VER set major_version [minor_version] + Display the current DOSBox version and reported DOS version + (parameterless usage). + Change the reported DOS version with the "set" parameter, + for example: "VER set 6 22" to have DOSBox report DOS 6.22 as version number. + + +CONFIG -writeconf filelocation +CONFIG -writelang filelocation +CONFIG -securemode +CONFIG -set "section property=value" +CONFIG -get "section property" + + CONFIG can be used to change or query various settings of DOSBox + during runtime. It can save the current settings and language strings to + disk. Information about all possible sections and properties can + be found in Section 13: "The configuration (options) file". + + -writeconf filelocation + Write the current configuration settings to a file in a specified location. + "filelocation" is located on the local drive, not a mounted drive in DOSBox. + The configuration file controls various settings of DOSBox: + the amount of emulated memory, the emulated sound cards and many more + things. It allows access to AUTOEXEC.BAT as well. + See Section 13: "The configuration (options) file" for more information. + + -writelang filelocation + Write the current language settings to a file in a specified location. + "filelocation" is located on the local drive, not a mounted drive + in DOSBox. The language file controls all visible output of the internal + commands and the internal DOS. + See Section 14: "The Language File" for more information. + + -securemode + Switches DOSBox to a more secure mode. In this mode the internal + commands MOUNT, IMGMOUNT and BOOT won't work. It's not possible either + to create a new configfile or languagefile in this mode. + (Warning: you can only undo this mode by restarting DOSBox.) + + -set "section property=value" + CONFIG will attempt to set the property to new value. + Currently CONFIG can not report whether the command succeeded or not. + + -get "section property" + The current value of the property is reported and stored in the + environment variable %CONFIG%. This can be used to store the value + when using batch files. + + Both "-set" and "-get" work from batch files and can be used to set up your + own preferences for each game. Although it may be easier to use separate + DOSBox's configuration files for each game instead. + + Examples: + 1. To create a configuration file in your c:\dosgames directory: + config -writeconf c:\dosgames\dosbox.conf + 2. To set the cpu cycles to 10000: + config -set "cpu cycles=10000" + 3. To turn ems memory emulation off: + config -set "dos ems=off" + 4. To check which cpu core is being used. + config -get "cpu core" + + +LOADFIX [-size] [program] [program-parameters] +LOADFIX -f + Program to reduce the amount of available conventional memory. + Useful for old programs which don't expect much memory to be free. + + -size + number of kilobytes to "eat up", default = 64kb + + -f + frees all previously allocated memory + + Examples: + 1. To start mm2.exe and allocate 64kb memory + (mm2 will have 64 kb less available): + loadfix mm2 + 2. To start mm2.exe and allocate 32kb memory: + loadfix -32 mm2 + 3. To free previous allocated memory: + loadfix -f + + +RESCAN + Make DOSBox reread the directory structure. Useful if you changed something + on a mounted drive outside of DOSBox. (CTRL - F4 does this as well!) + + +MIXER + Makes DOSBox display its current volume settings. + Here's how you can change them: + + mixer channel left:right [/NOSHOW] [/LISTMIDI] + + channel + Can be one of the following: MASTER, DISNEY, SPKR, GUS, SB, FM [, CDAUDIO]. + CDAUDIO is only available if a CD-ROM interface with volume control is + enabled (CD image, ioctl_dx). + + left:right + The volume levels in percentages. If you put a D in front it will be + in decibel (Example: mixer gus d-10). + + /NOSHOW + Prevents DOSBox from showing the result if you set one + of the volume levels. + + /LISTMIDI + In Windows lists the available midi devices on your PC. To select a device + other than the Windows default midi-mapper, change the line 'midiconfig=' + in the [midi] section of the configuration file to 'midiconfig=id', where + 'id' is the number for the device as listed by LISTMIDI. eg. midiconfig=2 + + In Linux this option doesn't work, but you get similar results by using + 'pmidi -l' in console. Then change the line 'midiconfig=' to + 'midiconfig=port', where 'port' is the port for the device as listed by + 'pmidi -l'. eg. midiconfig=128:0 + + +IMGMOUNT + A utility to mount disk images and CD-ROM images in DOSBox. + + IMGMOUNT DRIVE [imagefile] -t [image_type] -fs [image_format] + -size [sectorsbytesize, sectorsperhead, heads, cylinders] + IMGMOUNT DRIVE [imagefile1 imagefile2 .. imagefileN] -t cdrom -fs iso + + imagefile + Location of the image file to mount in DOSBox. The location can be + on a mounted drive inside DOSBox, or on your real disk. It is possible + to mount CD-ROM images (ISOs or CUE/BIN or CUE/IMG) too. + If you need CD swapping capabilities, specify all images in succession + (see the next entry). + CUE/BIN pairs and cue/img are the preferred CD-ROM image types as they can + store audio tracks compared to ISOs (which are data-only). For + the CUE/BIN mounting always specify the CUE sheet. + + imagefile1 imagefile2 .. imagefileN + Location of the image files to mount in DOSBox. Specifying a number + of image files is only allowed for CD-ROM images. + The CD's can be swapped with CTRL-F4 at any time. + This is required for games which use multiple CD-ROMs and require the CD + to be switched during the gameplay at some point. + + -t + The following are valid image types: + floppy: Specifies a floppy image. DOSBox will automatically identify + the disk geometry (360K, 1.2MB, 720K, 1.44MB, etc). + cdrom: Specifies a CD-ROM image. The geometry is automatic and + set for this size. This can be an iso or a cue/bin pair or + a cue/img pair. + hdd: Specifies a harddrive image. The proper CHS geometry must be set + for this to work. + + -fs + The following are valid file system formats: + iso: Specifies the ISO 9660 CD-ROM format. + fat: Specifies that the image uses the FAT file system. DOSBox will + attempt to mount this image as a drive in DOSBox and make + the files available from inside DOSBox. + none: DOSBox will make no attempt to read the file system on the disk. + This is useful if you need to format it or if you want to boot + the disk using the BOOT command. When using the "none" + filesystem, you must specify the drive number (2 or 3, + where 2 = master, 3 = slave) rather than a drive letter. + For example, to mount a 70MB image as the slave drive device, + you would type (without the quotes): + "imgmount 3 d:\test.img -size 512,63,16,142 -fs none" + Compare this with a mount to be able to access the drive + within DOSBox, which would read as: + "imgmount e: d:\test.img -size 512,63,16,142" + + -size + The Cylinders, Heads and Sectors of the drive. + Required to mount hard drive images. + + An example how to mount CD-ROM images (in Linux): + 1. imgmount d /tmp/cdimage1.cue /tmp/cdimage2.cue -t cdrom + or (which also works): + 2a. mount c /tmp + 2b. imgmount d c:\cdimage1.cue c:\cdimage2.cue -t cdrom + (in Windows): + imgmount d f:\img\CD1.cue f:\img\CD2.cue f:\img\CD3.cue -t cdrom + imgmount d "g:\img\7th Guest CD1.cue" "g:\img\7th Guest CD2.cue" -t cdrom + Don't forget that you can also use MOUNT with images, but only if you use + external program, for example (both are free): + - Daemon Tools Lite (for CD images), + - Virtual Floppy Drive (for floppy images). + Although IMGMOUNT can give better compatibility. + + +BOOT + Boot will start floppy images or hard disk images independent of + the operating system emulation offered by DOSBox. This will allow you to + play booter floppies or boot other operating systems inside DOSBox. + If the target emulated system is PCjr (machine=pcjr) the boot command + can be used to load PCjr cartridges (.jrc). + + BOOT [diskimg1.img diskimg2.img .. diskimgN.img] [-l driveletter] + BOOT [cart.jrc] (PCjr only) + + diskimg1.img diskimg2.img .. diskimgN.img + This can be any number of floppy disk images one wants mounted after + DOSBox boots the specified drive letter. + To swap between images, hit CTRL-F4 to change from the current disk + to the next disk in the list. The list will loop back from the last + disk image to the beginning. + + [-l driveletter] + This parameter allows you to specify the drive to boot from. + The default is the A drive, the floppy drive. You can also boot + a hard drive image mounted as master by specifying "-l C" + without the quotes, or the drive as slave by specifying "-l D" + + cart.jrc (PCjr only) + When emulation of a PCjr is enabled, cartridges can be loaded with + the BOOT command. Support is still limited. + + +IPX + + You need to enable IPX networking in the configuration file of DOSBox. + + All of the IPX networking is managed through the internal DOSBox program + IPXNET. For help on the IPX networking from inside DOSBox, type + "IPXNET HELP" (without quotes) and the program will list the commands + and relevant documentation. + + With regard to actually setting up a network, one system needs to be + the server. To set this up, type "IPXNET STARTSERVER" (without the quotes) + in a DOSBox session. The server DOSBox session will automatically add + itself to the virtual IPX network. For every additional computer that + should be part of the virtual IPX network, you'll need to type + "IPXNET CONNECT ". + For example, if your server is at bob.dosbox.com, you would type + "IPXNET CONNECT bob.dosbox.com" on every non-server system. + + To play games that need Netbios a file named NETBIOS.EXE from Novell is + needed. Establish the IPX connection as explained above, then run + "netbios.exe". + + The following is an IPXNET command reference: + + IPXNET CONNECT + + IPXNET CONNECT opens a connection to an IPX tunneling server + running on another DOSBox session. The "address" parameter specifies + the IP address or host name of the server computer. You can also + specify the UDP port to use. By default IPXNET uses port 213 - the + assigned IANA port for IPX tunneling - for its connection. + + The syntax for IPXNET CONNECT is: + IPXNET CONNECT address + + IPXNET DISCONNECT + + IPXNET DISCONNECT closes the connection to the IPX tunneling server. + + The syntax for IPXNET DISCONNECT is: + IPXNET DISCONNECT + + IPXNET STARTSERVER + + IPXNET STARTSERVER starts an IPX tunneling server on this DOSBox + session. By default, the server will accept connections on UDP port + 213, though this can be changed. Once the server is started, DOSBox + will automatically start a client connection to the IPX tunneling server. + + The syntax for IPXNET STARTSERVER is: + IPXNET STARTSERVER + + If the server is behind a router, UDP port needs to be forwarded + to that computer. + + On Linux/Unix-based systems port numbers smaller than 1023 can only be + used with root privileges. Use ports greater than 1023 on those systems. + + IPXNET STOPSERVER + + IPXNET STOPSERVER stops the IPX tunneling server running on this DOSBox + session. Care should be taken to ensure that all other connections have + terminated as well, since stopping the server may cause lockups on other + machines that are still using the IPX tunneling server. + + The syntax for IPXNET STOPSERVER is: + IPXNET STOPSERVER + + IPXNET PING + + IPXNET PING broadcasts a ping request through the IPX tunneled network. + In response, all other connected computers will respond to the ping + and report the time it took to receive and send the ping message. + + The syntax for IPXNET PING is: + IPXNET PING + + IPXNET STATUS + + IPXNET STATUS reports the current state of this DOSBox session's + IPX tunneling network. For a list of all computers connected to the + network use the IPXNET PING command. + + The syntax for IPXNET STATUS is: + IPXNET STATUS + + +KEYB [keyboardlayoutcode [codepage [codepagefile]]] + + Change the keyboard layout. For detailed information about keyboard layouts + please see Section 8: "Keyboard Layout" + + [keyboardlayoutcode] is a string consisting of five or less characters, + examples are PL214 (Polish typists) or PL457 (Polish programmers). + It specifies the keyboard layout to be used. + The list of all layouts built into DOSBox is here: + http://vogons.zetafleet.com/viewtopic.php?t=21824 + + [codepage] is the number of the codepage to be used. The keyboard layout + has to provide support for the specified codepage, otherwise the layout + loading will fail. + If no codepage is specified, an appropriate codepage for the requested + layout is chosen automatically. + + [codepagefile] can be used to load codepages that are yet not compiled + into DOSBox. This is only needed when DOSBox does not find the codepage. + If no codepagefile is specified, but you place all ten ega.cpx files + (from FreeDOS) in the DOSBox program folder, an appropriate codepagefile + for the requested layout/codepage is chosen automatically. + + Examples: + 1. To load the polish typist keys layout (automatically uses codepage 852): + keyb pl214 + 2. To load one of russian keyboard layouts with codepage 866: + keyb ru441 866 + In order to type russian characters press ALT+RIGHT-SHIFT. + 3. To load one of french keyboard layouts with codepage 850 (where the + codepage is defined in EGACPI.DAT): + keyb fr189 850 EGACPI.DAT + 4. To load codepage 858 (without a keyboard layout): + keyb none 858 + This can be used to change the codepage for the FreeDOS keyb2 utility. + 5. To display the current codepage and, if loaded, the keyboard layout: + keyb + + + +For more information use the /? command line switch with the programs. + + + +================ +5. Special Keys: +================ + +ALT-ENTER Switch to full screen and back. +ALT-PAUSE Pause emulation (hit ALT-PAUSE again to continue). +CTRL-F1 Start the keymapper. +CTRL-F4 Change between mounted floppy/CD images. Update directory cache + for all drives. +CTRL-ALT-F5 Start/Stop creating a movie of the screen. (avi video capturing) +CTRL-F5 Save a screenshot. (PNG format) +CTRL-F6 Start/Stop recording sound output to a wave file. +CTRL-ALT-F7 Start/Stop recording of OPL commands. (DRO format) +CTRL-ALT-F8 Start/Stop the recording of raw MIDI commands. +CTRL-F7 Decrease frameskip. +CTRL-F8 Increase frameskip. +CTRL-F9 Kill DOSBox. +CTRL-F10 Capture/Release the mouse. +CTRL-F11 Slow down emulation (Decrease DOSBox Cycles). +CTRL-F12 Speed up emulation (Increase DOSBox Cycles)*. +ALT-F12 Unlock speed (turbo button/fast forward)**. +F11, ALT-F11 (machine=cga) change tint in NTSC output modes*** +F11 (machine=hercules) cycle through amber, green, white colouring*** + +*NOTE: Once you increase your DOSBox cycles beyond your computer CPU resources, + it will produce the same effect as slowing down the emulation. + This maximum will vary from computer to computer. + +**NOTE: You need free CPU resources for this (the more you have, the faster + it goes), so it won't work at all with cycles=max or a too high amount + of fixed cycles. You have to keep the keys pressed for it to work! + +***NOTE: These keys won't work if you saved a mapper file earlier with + a different machine type. So either reassign them or reset the mapper. + +These are the default keybindings. They can be changed in the keymapper +(see Section 7: KeyMapper). + +In MAC OS you can try using cmd(applekey) together with Ctrl if the key doesn't +work eg. cmd-ctrl-F1, but some keys may still need remapping (in Linux too). + +Saved/recorded files can be found in: + (Windows) "Start/WinLogo Menu"->"All Programs"->DOSBox-0.74->Extras + (Linux) ~/.dosbox/capture + (MAC OS X) "~/Library/Preferences/capture" +This can be changed in the DOSBox configuration file. + + + +==================== +6. Joystick/Gamepad: +==================== + +The standard joystick port in DOS supports a maximum of 4 axes and 4 buttons. +For more, different modifications of that configuration were used. + +To force DOSBox to use a different type of emulated joystick/gamepad, the entry +"joysticktype" in the [joystick] section of the DOSBox configuration file can +be used. + +none - disables controller support. +auto - (default) autodetects whether you have one or two controllers connected: + if you have one - '4axis' setting is used, + if you have two - '2axis' setting is used. +2axis - If you have two controllers connected, each will emulate a joystick + with 2 axes and 2 buttons. If you have only one controller connected, + it will emulate a joystick with only 2 axis and 2 buttons. +4axis - supports only first controller, emulates a joystick + with 4 axis and 4 buttons or a gamepad with 2axis and 6 buttons. +4axis_2 - supports only second controller. +fcs - supports only first controller, emulates ThrustMaster + Flight Control System, with 3-axes, 4 buttons and 1 hat. +ch - supports only first controller, emulates CH Flightstick, + with 4-axes, 6 buttons and 1 hat, but you cannot press more + than one button at the same time. + +You also have to configure controller properly inside the game. + +It is important to remember that if you saved the mapperfile without joystick + +connected, or with a different joystick setting, your new setting will +not work +properly, +or not work at all, until you reset DOSBox's mapperfile. + + +If controller is working properly outside DOSBox, but doesn't calibrate properly +inside DOSBox, try different 'timed' setting in DOSBox's configuration file. + + + +============= +7. KeyMapper: +============= + +You start the DOSBox mapper either with CTRL-F1 (see section 5. Special Keys) +or -startmapper (see Section 3. Command Line Parameters). +You are presented with a virtual keyboard and a virtual joystick. + +These virtual devices correspond to the keys and events DOSBox will +report to the DOS applications. If you click on a button with your mouse, +you can see in the lower left corner with which event it is associated +(EVENT) and to what events it is currently bound. + +Event: EVENT +BIND: BIND (the real key/button/axis you push with your finger/hand) + + Add Del +mod1 hold Next +mod2 +mod3 + + +EVENT + The key or joystick axis/button/hat DOSBox will report to DOS applications. + (the event that will happen during the game, (eg. shooting/jumping/walking) +BIND + The key on your real keyboard or the axis/button/hat on your real + joystick(s) (as reported by SDL), which is connected to the EVENT. +mod1,2,3 + Modifiers. These are keys you need to have to be pressed while pressing + BIND. mod1 = CTRL and mod2 = ALT. These are generally only used when you + want to change the special keys of DOSBox. +Add + Add a new BIND to this EVENT. Basically add a key from your keyboard or an + event from the joystick (button press, axis/hat movement) which will + produce the EVENT in DOSBox. +Del + Delete the BIND to this EVENT. If an EVENT has no BINDS, then it is not + possible to trigger this event in DOSBox (that is there's no way to type + the key or use the respective action of the joystick). +Next + Go through the list of bindings which map to this EVENT. + + +Example: +Q1. You want to have the X on your keyboard to type a Z in DOSBox. + A. Click on the Z on the keyboard mapper. Click "Add". + Now press the X key on your keyboard. + +Q2. If you click "Next" a couple of times, you will notice that the Z on your + keyboard also produces an Z in DOSBox. + A. Therefore select the Z again, and click "Next" until you have the Z on + your keyboard. Now click "Del". + +Q3. If you try it out in DOSBox, you will notice that pressing X makes ZX + appear. + A. The X on your keyboard is still mapped to the X as well! Click on + the X in the keyboard mapper and search with "Next" until you find the + mapped key X. Click "Del". + + +Examples about remapping the joystick: + You have a joystick attached, it is working fine under DOSBox and you + want to play some keyboard-only game with the joystick (it is assumed + that the game is controlled by the arrows on the keyboard): + 1. Start the mapper, then click on one of the left keyboard arrow. + EVENT should be key_left. Now click on Add and move your joystick + in the respective direction, this should add an event to the BIND. + 2. Repeat the above for the missing three directions, additionally + the buttons of the joystick can be remapped as well (fire/jump). + 3. Click on Save, then on Exit and test it with some game. + + You want to swap the y-axis of the joystick because some flightsim uses + the up/down joystick movement in a way you don't like, and it is not + configurable in the game itself: + 1. Start the mapper and click on Y- in the first joystick field. + EVENT should be jaxis_0_1-. + 2. Click on Del to remove the current binding, then click Add and move + your joystick downwards. A new bind should be created. + 3. Repeat this for Y+, save the layout and finally test it with some game. + + If you want to remap anything to your d-pad/hat you will have to change + 'joysticktype=auto' to 'joysticktype=fcs' in configuration file. Maybe this + will be improved in the next dosbox version. + + +If you change the default mapping, you can save your changes by clicking on +"Save". DOSBox will save the mapping to a location specified in +the configuration file (the mapperfile= entry). At startup, DOSBox will load +your mapperfile, if it is present in the DOSBox configuration file. + + + +=================== +8. Keyboard Layout: +=================== + +To switch to a different keyboard layout, either the entry "keyboardlayout" +in the [dos] section of the DOSBox configuration file can be used, or the +internal DOSBox program keyb.com (Section 4: Internal Programs) +Both accept DOS conforming language codes (see below), +but only by using keyb.com a custom codepage can be specified. + +The default keyboardlayout=auto currently works under windows only. The language +is chosen according to the OS language, but the keyboard layout is not detected. + +Layout switching + DOSBox supports a number of keyboard layouts and codepages by default, + in this case just the layout identifier needs to be specified (like + keyboardlayout=PL214 in the DOSBox configuration file, or using "keyb PL214" + at the DOSBox command prompt). The list of all layouts built into DOSBox is + here: http://vogons.zetafleet.com/viewtopic.php?t=21824 + + Some keyboard layouts (for example layout GK319 codepage 869 and layout RU441 + codepage 808) have support for dual layouts that can be accessed by pressing + LeftALT+RrightSHIFT for one layout and LeftALT+LeftSHIFT for the other. + Some keyboard layouts (for example layout LT456 codepage 771) have support + for three layouts, third can be accessed by pressing LeftALT+LeftCTRL + +Supported external files + The FreeDOS .kl files are supported (FreeDOS keyb2 keyboard layoutfiles) as + well as the FreeDOS keyboard.sys/keybrd2.sys/keybrd3.sys libraries which + consist of all available .kl files. + See http://www.freedos.org/ for precompiled keyboard layouts if + the DOSBox-integrated layouts don't work for some reason, or if updated or + new layouts become available. + + Both .CPI (MS-DOS and compatible codepage files) and .CPX (FreeDOS + UPX-compressed codepage files) can be used. Some codepages are compiled + into DOSBox, so it is mostly not needed to care about external codepage + files. If you need a different (or custom) codepage file, copy it into + the directory of the DOSBox so it is accessible for DOSBox. + If you place all ten ega.cpx files (from FreeDOS) in DOSBox folder, + an appropriate codepagefile for the requested layout/codepage is + chosen automatically. + + Additional layouts can be added by copying the corresponding .kl file into + the directory of the DOSBox configuration file and using the first part of + the filename as language code. + Example: For the file UZ.KL (keyboard layout for Uzbekistan) specify + "keyboardlayout=uz" in the DOSBox configuration file. + The integration of keyboard layout packages (like keybrd2.sys) works similar. + +Note that the keyboard layout allows foreign characters to be entered, but +there is NO support for them in filenames. Try to avoid them both inside +DOSBox as well as in files on your host operating system that are accessible +by DOSBox. + + + +============================== +9. Serial Multiplayer feature: +============================== + +DOSBox can emulate a serial nullmodem cable over network and internet. +It can be configured through the [serialports] section in the DOSBox +configuration file. + +To create a nullmodem connection, one side needs to act as the server and +one as the client. + +The server needs to be set up in the DOSBox configuration file like this: + serial1=nullmodem + +The client: + serial1=nullmodem server: + +Now start your game and choose nullmodem / serial cable / already connected +as multiplayer method on COM1. Set the same baudrate on both computers. + +Furthermore, additional parameters can be specified to control the behavior +of the nullmodem connection. These are all parameters: + + * port: - TCP port number. Default: 23 + * rxdelay: - how long (milliseconds) to delay received data if the + interface is not ready. Increase this value if you encounter + overrun errors in the DOSBox Status Window. Default: 100 + * txdelay: - how long to gather data before sending a packet. Default: 12 + (reduces Network overhead) + * server: - This nullmodem will be a client connecting to the specified + server. (No server argument: be a server.) + * transparent:1 - Only send the serial data, no RTS/DTR handshake. Use this + when connecting to anything other than a nullmodem. + * telnet:1 - Interpret Telnet data from the remote site. Automatically + sets transparent. + * usedtr:1 - The connection will not be established until DTR is switched + on by the DOS program. Useful for modem terminals. + Automatically sets transparent. + * inhsocket:1 - Use a socket passed to DOSBox by command line. Automatically + sets transparent. (Socket Inheritance: It is used for + playing old DOS door games on new BBS software.) + +Example: Be a server listening on TCP port 5000. + serial1=nullmodem server: port:5000 rxdelay:1000 + + + +===================================== +10. How to speed up/slow down DOSBox: +===================================== + +DOSBox emulates the CPU, the sound and graphic cards, and other peripherals +of a PC, all at the same time. The speed of an emulated DOS application +depends on how many instructions can be emulated, which is adjustable +(number of cycles). + +CPU Cycles (speed up/slow down) + By default (cycles=auto) DOSBox tries to detect whether a game needs to + be run with as many instructions emulated per time interval as possible + (cycles=max, sometimes this results in game working too fast or unstable), + or whether to use fixed amount of cycles (cycles=3000, sometimes this results + in game working too slow or too fast). But you can always manually force + a different setting in the DOSBox's configuration file. + + You can force the slow or fast behavior by setting a fixed amount of cycles + in the DOSBox's configuration file. If you for example set cycles=10000, then + DOSBox window will display a line "Cpu Speed: fixed 10000 cycles" at the top. + In this mode you can reduce the amount of cycles even more by hitting CTRL-F11 + (you can go as low as you want) or raise it by hitting CTRL-F12 as much as you + want, but you will be limited by the power of one core of your computer's CPU. + You can see how much free time your real CPU's cores have by looking at + the Task Manager in Windows 2000/XP/Vista/7 and the System Monitor + in Windows 95/98/ME. Once 100% of the power of your computer's real CPU's one + core is used, there is no further way to speed up DOSBox (it will actually + start to slow down), unless you reduce the load generated by the non-CPU parts + of DOSBox. DOSBox can use only one core of your CPU, so If you have + for example a CPU with 4 cores, DOSBox will not be able to use the power + of three other cores. + + You can also force the fast behavior by setting cycles=max in the DOSBox + configuration file. The DOSBox window will display a line + "Cpu Speed: max 100% cycles" at the top then. This time you won't have to care + how much free time your real CPU's cores have, because DOSBox will always use + 100% of your real CPU's one core. In this mode you can reduce the amount + of your real CPU's core usage by CTRL-F11 or raise it with CTRL-F12. + +CPU Core (speed up) + On x86 architectures you can try to force the usage of a dynamically + recompiling core (set core=dynamic in the DOSBox configuration file). + This usually gives better results if the auto detection (core=auto) fails. + It is best accompanied by cycles=max. But you may also try using it with + high amounts of cycles (for example 20000 or more). Note that there might be + games that work worse/crash with the dynamic core (so save your game often), + or do not work at all! + +Graphics emulation (speed up) + VGA emulation is a demanding part of DOSBox in terms of actual CPU usage. + Increase the number of frames skipped (in increments of one) by pressing + CTRL-F8. Your CPU usage should decrease when using a fixed cycle setting, + and you will be able to increase cycles with CTRL-F12. + You can repeat this until the game runs fast enough for you. + Please note that this is a trade-off: you lose in fluidity of video what + you gain in speed. + +Sound emulation (speed up) + You can also try to disable the sound through the setup utility of the game + to reduce load on your CPU further. Setting nosound=true in DOSBox's + configuration does NOT disable the emulation of sound devices, just + the output of sound will be disabled. + +Also try to close every program but DOSBox to reserve as much resources +as possible for DOSBox. + + +Advanced cycles configuration: +The cycles=auto and cycles=max settings can be parameterized to have +different startup defaults. The syntax is + cycles=auto ["realmode default"] ["protected mode default"%] + [limit "cycle limit"] + cycles=max ["protected mode default"%] [limit "cycle limit"] +Example: + cycles=auto 5000 80% limit 20000 + will use cycles=5000 for real mode games, 80% CPU throttling for + protected mode games along with a hard cycle limit of 20000 + + + +==================== +11. Troubleshooting: +==================== + +General tip: + Check messages in DOSBox Status Window. See section 12. "DOSBox Status Window" + +DOSBox crashes right after starting it: + - use different values for the output= entry in your DOSBox + configuration file + - try to update your graphics card driver and DirectX + - (Linux) set the environment variable SDL_AUDIODRIVER to alsa or oss. + +Running a certain game closes DOSBox, crashes with some message or hangs: + - see if it works with a default DOSBox installation + (unmodified configuration file) + - try it with sound disabled (use the sound configuration + program that comes with the game, additionally you can + set sbtype=none and gus=false in the DOSBox configuration file) + - change some entries of the DOSBox configuration file, especially try: + core=normal + fixed cycles (for example cycles=10000) + ems=false + xms=false + or combinations of the above settings, + similar the machine settings that control the emulated chipset and + functionality: + machine=vesa_nolfb + or + machine=vgaonly + - use loadfix before starting the game + +The game exits to the DOSBox prompt with some error message: + - read the error message closely and try to locate the error + - try the hints at the above sections + - mount differently as some games are picky about the locations, + for example if you used "mount d d:\oldgames\game" try + "mount c d:\oldgames\game" and "mount c d:\oldgames" + - if the game requires a CD-ROM be sure you used "-t cdrom" when + mounting and try different additional parameters (the ioctl, + usecd and label switches, see the appropriate section) + - check the file permissions of the game files (remove read-only + attributes, add write permissions etc.) + - try reinstalling the game within DOSBox + + + +========================= +12. DOSBox Status Window: +========================= + +DOSBox's Staus window contains many useful information about your currant +configuration, your actions in DOSBox, errors that happened and more. +Whenever you have any problem with DOSBox check these messages. + +To start DOSBox Status Window: + (Windows) Status Window is being started together with main DOSBox window. + (Linux) You may have to start DOSBox from a console to see Status Window. + (MAC OS X) Right click on DOSBox.app, choose "Show Package Contents"-> + ->enter "Contents"->enter "MacOS"->run "DOSBox" + + + +===================================== +13. The configuration (options) file: +===================================== + +The configuration file is automatically created the first time you run DOSBox. +The file can be found in: + (Windows) "Start/WinLogo Menu"->"All Programs"->DOSBox-0.74->Options + (Linux) ~/.dosbox/dosbox-0.74.conf + (MAC OS X) "~/Library/Preferences/DOSBox 0.74 Preferences" +The file is divided into several sections. Each section starts with a +[section name] line. The settings are the property=value lines where value can +be altered to customize DOSBox. +# and % indicate comment-lines. + + +An extra configuration file can be generated by CONFIG.COM, which can be found +on the internal DOSBox Z: drive when you start up DOSBox. Look in the Section 4: +"Internal programs" for usage of CONFIG.COM. You can start DOSBox with +the -conf switch to load the generated file and use its settings. + +DOSBox will load configuration files that are specified with -conf. If none were +specified, it will try to load "dosbox.conf" from the local directory. +If there is none, DOSBox will load the user configuration file. +This file will be created if it doesn't exist. + +Important!: In Windows Vista/7 the configuration file won't work correctly +if it is located in "Windows" or "Program Files" folder or their subfolders, +or directly on c:\, so the best place for storing extra configuration files is +for example: C:\oldgames + + + +====================== +14. The Language File: +====================== + +A language file can be generated by CONFIG.COM, which can be found on the +internal DOSBox Z: drive when you start up DOSBox. Look in the Section 4: +"Internal programs" for usage of CONFIG.COM. +Read the language file, and you will hopefully understand how to change it. +Start DOSBox with the -lang switch to use your new language file. +Alternatively, you can setup the filename in the configuration file +in the [dosbox] section. There's a language= entry that can be changed with +the filelocation. + + + +======================================== +15. Building your own version of DOSBox: +======================================== + +Download the source. +Check the INSTALL in the source distribution. + + + +=================== +16. Special thanks: +=================== + +See the THANKS file. + + + +============ +17. Contact: +============ + +See the site: +http://www.dosbox.com +for an email address (The Crew-page). + + diff --git a/programs/emulator/e80/trunk/48.h b/programs/emulator/e80/trunk/48.h new file mode 100644 index 0000000000..2ac63b59eb --- /dev/null +++ b/programs/emulator/e80/trunk/48.h @@ -0,0 +1,1027 @@ +char BIOS48[]= { +0xf3,0xaf,0x11,0xff,0xff,0xc3,0xcb,0x11,0x2a,0x5d,0x5c,0x22,0x5f,0x5c,0x18,0x43, +0xc3,0xf2,0x15,0xff,0xff,0xff,0xff,0xff,0x2a,0x5d,0x5c,0x7e,0xcd,0x7d,0x00,0xd0, +0xcd,0x74,0x00,0x18,0xf7,0xff,0xff,0xff,0xc3,0x5b,0x33,0xff,0xff,0xff,0xff,0xff, +0xc5,0x2a,0x61,0x5c,0xe5,0xc3,0x9e,0x16,0xf5,0xe5,0x2a,0x78,0x5c,0x23,0x22,0x78, +0x5c,0x7c,0xb5,0x20,0x03,0xfd,0x34,0x40,0xc5,0xd5,0xcd,0xbf,0x02,0xd1,0xc1,0xe1, +0xf1,0xfb,0xc9,0xe1,0x6e,0xfd,0x75,0x00,0xed,0x7b,0x3d,0x5c,0xc3,0xc5,0x16,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xe5,0x2a,0xb0,0x5c,0x7c,0xb5,0x20,0x01,0xe9, +0xe1,0xf1,0xed,0x45,0x2a,0x5d,0x5c,0x23,0x22,0x5d,0x5c,0x7e,0xc9,0xfe,0x21,0xd0, +0xfe,0x0d,0xc8,0xfe,0x10,0xd8,0xfe,0x18,0x3f,0xd8,0x23,0xfe,0x16,0x38,0x01,0x23, +0x37,0x22,0x5d,0x5c,0xc9,0xbf,0x52,0x4e,0xc4,0x49,0x4e,0x4b,0x45,0x59,0xa4,0x50, +0xc9,0x46,0xce,0x50,0x4f,0x49,0x4e,0xd4,0x53,0x43,0x52,0x45,0x45,0x4e,0xa4,0x41, +0x54,0x54,0xd2,0x41,0xd4,0x54,0x41,0xc2,0x56,0x41,0x4c,0xa4,0x43,0x4f,0x44,0xc5, +0x56,0x41,0xcc,0x4c,0x45,0xce,0x53,0x49,0xce,0x43,0x4f,0xd3,0x54,0x41,0xce,0x41, +0x53,0xce,0x41,0x43,0xd3,0x41,0x54,0xce,0x4c,0xce,0x45,0x58,0xd0,0x49,0x4e,0xd4, +0x53,0x51,0xd2,0x53,0x47,0xce,0x41,0x42,0xd3,0x50,0x45,0x45,0xcb,0x49,0xce,0x55, +0x53,0xd2,0x53,0x54,0x52,0xa4,0x43,0x48,0x52,0xa4,0x4e,0x4f,0xd4,0x42,0x49,0xce, +0x4f,0xd2,0x41,0x4e,0xc4,0x3c,0xbd,0x3e,0xbd,0x3c,0xbe,0x4c,0x49,0x4e,0xc5,0x54, +0x48,0x45,0xce,0x54,0xcf,0x53,0x54,0x45,0xd0,0x44,0x45,0x46,0x20,0x46,0xce,0x43, +0x41,0xd4,0x46,0x4f,0x52,0x4d,0x41,0xd4,0x4d,0x4f,0x56,0xc5,0x45,0x52,0x41,0x53, +0xc5,0x4f,0x50,0x45,0x4e,0x20,0xa3,0x43,0x4c,0x4f,0x53,0x45,0x20,0xa3,0x4d,0x45, +0x52,0x47,0xc5,0x56,0x45,0x52,0x49,0x46,0xd9,0x42,0x45,0x45,0xd0,0x43,0x49,0x52, +0x43,0x4c,0xc5,0x49,0x4e,0xcb,0x50,0x41,0x50,0x45,0xd2,0x46,0x4c,0x41,0x53,0xc8, +0x42,0x52,0x49,0x47,0x48,0xd4,0x49,0x4e,0x56,0x45,0x52,0x53,0xc5,0x4f,0x56,0x45, +0xd2,0x4f,0x55,0xd4,0x4c,0x50,0x52,0x49,0x4e,0xd4,0x4c,0x4c,0x49,0x53,0xd4,0x53, +0x54,0x4f,0xd0,0x52,0x45,0x41,0xc4,0x44,0x41,0x54,0xc1,0x52,0x45,0x53,0x54,0x4f, +0x52,0xc5,0x4e,0x45,0xd7,0x42,0x4f,0x52,0x44,0x45,0xd2,0x43,0x4f,0x4e,0x54,0x49, +0x4e,0x55,0xc5,0x44,0x49,0xcd,0x52,0x45,0xcd,0x46,0x4f,0xd2,0x47,0x4f,0x20,0x54, +0xcf,0x47,0x4f,0x20,0x53,0x55,0xc2,0x49,0x4e,0x50,0x55,0xd4,0x4c,0x4f,0x41,0xc4, +0x4c,0x49,0x53,0xd4,0x4c,0x45,0xd4,0x50,0x41,0x55,0x53,0xc5,0x4e,0x45,0x58,0xd4, +0x50,0x4f,0x4b,0xc5,0x50,0x52,0x49,0x4e,0xd4,0x50,0x4c,0x4f,0xd4,0x52,0x55,0xce, +0x53,0x41,0x56,0xc5,0x52,0x41,0x4e,0x44,0x4f,0x4d,0x49,0x5a,0xc5,0x49,0xc6,0x43, +0x4c,0xd3,0x44,0x52,0x41,0xd7,0x43,0x4c,0x45,0x41,0xd2,0x52,0x45,0x54,0x55,0x52, +0xce,0x43,0x4f,0x50,0xd9,0x42,0x48,0x59,0x36,0x35,0x54,0x47,0x56,0x4e,0x4a,0x55, +0x37,0x34,0x52,0x46,0x43,0x4d,0x4b,0x49,0x38,0x33,0x45,0x44,0x58,0x0e,0x4c,0x4f, +0x39,0x32,0x57,0x53,0x5a,0x20,0x0d,0x50,0x30,0x31,0x51,0x41,0xe3,0xc4,0xe0,0xe4, +0xb4,0xbc,0xbd,0xbb,0xaf,0xb0,0xb1,0xc0,0xa7,0xa6,0xbe,0xad,0xb2,0xba,0xe5,0xa5, +0xc2,0xe1,0xb3,0xb9,0xc1,0xb8,0x7e,0xdc,0xda,0x5c,0xb7,0x7b,0x7d,0xd8,0xbf,0xae, +0xaa,0xab,0xdd,0xde,0xdf,0x7f,0xb5,0xd6,0x7c,0xd5,0x5d,0xdb,0xb6,0xd9,0x5b,0xd7, +0x0c,0x07,0x06,0x04,0x05,0x08,0x0a,0x0b,0x09,0x0f,0xe2,0x2a,0x3f,0xcd,0xc8,0xcc, +0xcb,0x5e,0xac,0x2d,0x2b,0x3d,0x2e,0x2c,0x3b,0x22,0xc7,0x3c,0xc3,0x3e,0xc5,0x2f, +0xc9,0x60,0xc6,0x3a,0xd0,0xce,0xa8,0xca,0xd3,0xd4,0xd1,0xd2,0xa9,0xcf,0x2e,0x2f, +0x11,0xff,0xff,0x01,0xfe,0xfe,0xed,0x78,0x2f,0xe6,0x1f,0x28,0x0e,0x67,0x7d,0x14, +0xc0,0xd6,0x08,0xcb,0x3c,0x30,0xfa,0x53,0x5f,0x20,0xf4,0x2d,0xcb,0x00,0x38,0xe6, +0x7a,0x3c,0xc8,0xfe,0x28,0xc8,0xfe,0x19,0xc8,0x7b,0x5a,0x57,0xfe,0x18,0xc9,0xcd, +0x8e,0x02,0xc0,0x21,0x00,0x5c,0xcb,0x7e,0x20,0x07,0x23,0x35,0x2b,0x20,0x02,0x36, +0xff,0x7d,0x21,0x04,0x5c,0xbd,0x20,0xee,0xcd,0x1e,0x03,0xd0,0x21,0x00,0x5c,0xbe, +0x28,0x2e,0xeb,0x21,0x04,0x5c,0xbe,0x28,0x27,0xcb,0x7e,0x20,0x04,0xeb,0xcb,0x7e, +0xc8,0x5f,0x77,0x23,0x36,0x05,0x23,0x3a,0x09,0x5c,0x77,0x23,0xfd,0x4e,0x07,0xfd, +0x56,0x01,0xe5,0xcd,0x33,0x03,0xe1,0x77,0x32,0x08,0x5c,0xfd,0xcb,0x01,0xee,0xc9, +0x23,0x36,0x05,0x23,0x35,0xc0,0x3a,0x0a,0x5c,0x77,0x23,0x7e,0x18,0xea,0x42,0x16, +0x00,0x7b,0xfe,0x27,0xd0,0xfe,0x18,0x20,0x03,0xcb,0x78,0xc0,0x21,0x05,0x02,0x19, +0x7e,0x37,0xc9,0x7b,0xfe,0x3a,0x38,0x2f,0x0d,0xfa,0x4f,0x03,0x28,0x03,0xc6,0x4f, +0xc9,0x21,0xeb,0x01,0x04,0x28,0x03,0x21,0x05,0x02,0x16,0x00,0x19,0x7e,0xc9,0x21, +0x29,0x02,0xcb,0x40,0x28,0xf4,0xcb,0x5a,0x28,0x0a,0xfd,0xcb,0x30,0x5e,0xc0,0x04, +0xc0,0xc6,0x20,0xc9,0xc6,0xa5,0xc9,0xfe,0x30,0xd8,0x0d,0xfa,0x9d,0x03,0x20,0x19, +0x21,0x54,0x02,0xcb,0x68,0x28,0xd3,0xfe,0x38,0x30,0x07,0xd6,0x20,0x04,0xc8,0xc6, +0x08,0xc9,0xd6,0x36,0x04,0xc8,0xc6,0xfe,0xc9,0x21,0x30,0x02,0xfe,0x39,0x28,0xba, +0xfe,0x30,0x28,0xb6,0xe6,0x07,0xc6,0x80,0x04,0xc8,0xee,0x0f,0xc9,0x04,0xc8,0xcb, +0x68,0x21,0x30,0x02,0x20,0xa4,0xd6,0x10,0xfe,0x22,0x28,0x06,0xfe,0x20,0xc0,0x3e, +0x5f,0xc9,0x3e,0x40,0xc9,0xf3,0x7d,0xcb,0x3d,0xcb,0x3d,0x2f,0xe6,0x03,0x4f,0x06, +0x00,0xdd,0x21,0xd1,0x03,0xdd,0x09,0x3a,0x48,0x5c,0xe6,0x38,0x0f,0x0f,0x0f,0xf6, +0x08,0x00,0x00,0x00,0x04,0x0c,0x0d,0x20,0xfd,0x0e,0x3f,0x05,0xc2,0xd6,0x03,0xee, +0x10,0xd3,0xfe,0x44,0x4f,0xcb,0x67,0x20,0x09,0x7a,0xb3,0x28,0x09,0x79,0x4d,0x1b, +0xdd,0xe9,0x4d,0x0c,0xdd,0xe9,0xfb,0xc9,0xef,0x31,0x27,0xc0,0x03,0x34,0xec,0x6c, +0x98,0x1f,0xf5,0x04,0xa1,0x0f,0x38,0x21,0x92,0x5c,0x7e,0xa7,0x20,0x5e,0x23,0x4e, +0x23,0x46,0x78,0x17,0x9f,0xb9,0x20,0x54,0x23,0xbe,0x20,0x50,0x78,0xc6,0x3c,0xf2, +0x25,0x04,0xe2,0x6c,0x04,0x06,0xfa,0x04,0xd6,0x0c,0x30,0xfb,0xc6,0x0c,0xc5,0x21, +0x6e,0x04,0xcd,0x06,0x34,0xcd,0xb4,0x33,0xef,0x04,0x38,0xf1,0x86,0x77,0xef,0xc0, +0x02,0x31,0x38,0xcd,0x94,0x1e,0xfe,0x0b,0x30,0x22,0xef,0xe0,0x04,0xe0,0x34,0x80, +0x43,0x55,0x9f,0x80,0x01,0x05,0x34,0x35,0x71,0x03,0x38,0xcd,0x99,0x1e,0xc5,0xcd, +0x99,0x1e,0xe1,0x50,0x59,0x7a,0xb3,0xc8,0x1b,0xc3,0xb5,0x03,0xcf,0x0a,0x89,0x02, +0xd0,0x12,0x86,0x89,0x0a,0x97,0x60,0x75,0x89,0x12,0xd5,0x17,0x1f,0x89,0x1b,0x90, +0x41,0x02,0x89,0x24,0xd0,0x53,0xca,0x89,0x2e,0x9d,0x36,0xb1,0x89,0x38,0xff,0x49, +0x3e,0x89,0x43,0xff,0x6a,0x73,0x89,0x4f,0xa7,0x00,0x54,0x89,0x5c,0x00,0x00,0x00, +0x89,0x69,0x14,0xf6,0x24,0x89,0x76,0xf1,0x10,0x05,0x1e,0x8c,0xc8,0x2b,0xc7,0x8e, +0xc0,0x8e,0xd8,0x6a,0x27,0x06,0x57,0xbe,0x6e,0x48,0xb5,0x03,0xf3,0xa5,0xcb,0x06, +0xeb,0xe8,0x21,0x3f,0x05,0xe5,0x21,0x80,0x1f,0xcb,0x7f,0x28,0x03,0x21,0x98,0x0c, +0x08,0x13,0xdd,0x2b,0xf3,0x3e,0x02,0x47,0x10,0xfe,0xd3,0xfe,0xee,0x0f,0x06,0xa4, +0x2d,0x20,0xf5,0x05,0x25,0xf2,0xd8,0x04,0x06,0x2f,0x10,0xfe,0xd3,0xfe,0x3e,0x0d, +0x06,0x37,0x10,0xfe,0xd3,0xfe,0x01,0x0e,0x3b,0x08,0x6f,0xc3,0x07,0x05,0x7a,0xb3, +0x28,0x0c,0xdd,0x6e,0x00,0x7c,0xad,0x67,0x3e,0x01,0x37,0xc3,0x25,0x05,0x6c,0x18, +0xf4,0x79,0xcb,0x78,0x10,0xfe,0x30,0x04,0x06,0x42,0x10,0xfe,0xd3,0xfe,0x06,0x3e, +0x20,0xef,0x05,0xaf,0x3c,0xcb,0x15,0xc2,0x14,0x05,0x1b,0xdd,0x23,0x06,0x31,0x3e, +0x7f,0xdb,0xfe,0x1f,0xd0,0x7a,0x3c,0xc2,0xfe,0x04,0x06,0x3b,0x10,0xfe,0xc9,0xf5, +0x3a,0x48,0x5c,0xe6,0x38,0x0f,0x0f,0x0f,0xd3,0xfe,0x3e,0x7f,0xdb,0xfe,0x1f,0xfb, +0x38,0x02,0xcf,0x0c,0xf1,0xc9,0x14,0x08,0x15,0xf3,0x3e,0x0f,0xd3,0xfe,0x21,0x3f, +0x05,0xe5,0xdb,0xfe,0x1f,0xe6,0x20,0xf6,0x02,0x4f,0xbf,0xc0,0xcd,0xe7,0x05,0x30, +0xfa,0x21,0x15,0x04,0x10,0xfe,0x2b,0x7c,0xb5,0x20,0xf9,0xcd,0xe3,0x05,0x30,0xeb, +0x06,0x9c,0xcd,0xe3,0x05,0x30,0xe4,0x3e,0xc6,0xb8,0x30,0xe0,0x24,0x20,0xf1,0x06, +0xc9,0xcd,0xe7,0x05,0x30,0xd5,0x78,0xfe,0xd4,0x30,0xf4,0xcd,0xe7,0x05,0xd0,0x79, +0xee,0x03,0x4f,0x26,0x00,0x06,0xb0,0x18,0x1f,0x08,0x20,0x07,0x30,0x0f,0xdd,0x75, +0x00,0x18,0x0f,0xcb,0x11,0xad,0xc0,0x79,0x1f,0x4f,0x13,0x18,0x07,0xdd,0x7e,0x00, +0xad,0xc0,0xdd,0x23,0x1b,0x08,0x06,0xb2,0x2e,0x01,0xcd,0xe3,0x05,0xd0,0x3e,0xcb, +0xb8,0xcb,0x15,0x06,0xb0,0xd2,0xca,0x05,0x7c,0xad,0x67,0x7a,0xb3,0x20,0xca,0x7c, +0xfe,0x01,0xc9,0xcd,0xe7,0x05,0xd0,0x3e,0x16,0x3d,0x20,0xfd,0xa7,0x04,0xc8,0x3e, +0x7f,0xdb,0xfe,0x1f,0xd0,0xa9,0xe6,0x20,0x28,0xf3,0x79,0x2f,0x4f,0xe6,0x07,0xf6, +0x08,0xd3,0xfe,0x37,0xc9,0xf1,0x3a,0x74,0x5c,0xd6,0xe0,0x32,0x74,0x5c,0xcd,0x8c, +0x1c,0xcd,0x30,0x25,0x28,0x3c,0x01,0x11,0x00,0x3a,0x74,0x5c,0xa7,0x28,0x02,0x0e, +0x22,0xf7,0xd5,0xdd,0xe1,0x06,0x0b,0x3e,0x20,0x12,0x13,0x10,0xfc,0xdd,0x36,0x01, +0xff,0xcd,0xf1,0x2b,0x21,0xf6,0xff,0x0b,0x09,0x03,0x30,0x0f,0x3a,0x74,0x5c,0xa7, +0x20,0x02,0xcf,0x0e,0x78,0xb1,0x28,0x0a,0x01,0x0a,0x00,0xdd,0xe5,0xe1,0x23,0xeb, +0xed,0xb0,0xdf,0xfe,0xe4,0x20,0x49,0x3a,0x74,0x5c,0xfe,0x03,0xca,0x8a,0x1c,0xe7, +0xcd,0xb2,0x28,0xcb,0xf9,0x30,0x0b,0x21,0x00,0x00,0x3a,0x74,0x5c,0x3d,0x28,0x15, +0xcf,0x01,0xc2,0x8a,0x1c,0xcd,0x30,0x25,0x28,0x18,0x23,0x7e,0xdd,0x77,0x0b,0x23, +0x7e,0xdd,0x77,0x0c,0x23,0xdd,0x71,0x0e,0x3e,0x01,0xcb,0x71,0x28,0x01,0x3c,0xdd, +0x77,0x00,0xeb,0xe7,0xfe,0x29,0x20,0xda,0xe7,0xcd,0xee,0x1b,0xeb,0xc3,0x5a,0x07, +0xfe,0xaa,0x20,0x1f,0x3a,0x74,0x5c,0xfe,0x03,0xca,0x8a,0x1c,0xe7,0xcd,0xee,0x1b, +0xdd,0x36,0x0b,0x00,0xdd,0x36,0x0c,0x1b,0x21,0x00,0x40,0xdd,0x75,0x0d,0xdd,0x74, +0x0e,0x18,0x4d,0xfe,0xaf,0x20,0x4f,0x3a,0x74,0x5c,0xfe,0x03,0xca,0x8a,0x1c,0xe7, +0xcd,0x48,0x20,0x20,0x0c,0x3a,0x74,0x5c,0xa7,0xca,0x8a,0x1c,0xcd,0xe6,0x1c,0x18, +0x0f,0xcd,0x82,0x1c,0xdf,0xfe,0x2c,0x28,0x0c,0x3a,0x74,0x5c,0xa7,0xca,0x8a,0x1c, +0xcd,0xe6,0x1c,0x18,0x04,0xe7,0xcd,0x82,0x1c,0xcd,0xee,0x1b,0xcd,0x99,0x1e,0xdd, +0x71,0x0b,0xdd,0x70,0x0c,0xcd,0x99,0x1e,0xdd,0x71,0x0d,0xdd,0x70,0x0e,0x60,0x69, +0xdd,0x36,0x00,0x03,0x18,0x44,0xfe,0xca,0x28,0x09,0xcd,0xee,0x1b,0xdd,0x36,0x0e, +0x80,0x18,0x17,0x3a,0x74,0x5c,0xa7,0xc2,0x8a,0x1c,0xe7,0xcd,0x82,0x1c,0xcd,0xee, +0x1b,0xcd,0x99,0x1e,0xdd,0x71,0x0d,0xdd,0x70,0x0e,0xdd,0x36,0x00,0x00,0x2a,0x59, +0x5c,0xed,0x5b,0x53,0x5c,0x37,0xed,0x52,0xdd,0x75,0x0b,0xdd,0x74,0x0c,0x2a,0x4b, +0x5c,0xed,0x52,0xdd,0x75,0x0f,0xdd,0x74,0x10,0xeb,0x3a,0x74,0x5c,0xa7,0xca,0x70, +0x09,0xe5,0x01,0x11,0x00,0xdd,0x09,0xdd,0xe5,0x11,0x11,0x00,0xaf,0x37,0xcd,0x56, +0x05,0xdd,0xe1,0x30,0xf2,0x3e,0xfe,0xcd,0x01,0x16,0xfd,0x36,0x52,0x03,0x0e,0x80, +0xdd,0x7e,0x00,0xdd,0xbe,0xef,0x20,0x02,0x0e,0xf6,0xfe,0x04,0x30,0xd9,0x11,0xc0, +0x09,0xc5,0xcd,0x0a,0x0c,0xc1,0xdd,0xe5,0xd1,0x21,0xf0,0xff,0x19,0x06,0x0a,0x7e, +0x3c,0x20,0x03,0x79,0x80,0x4f,0x13,0x1a,0xbe,0x23,0x20,0x01,0x0c,0xd7,0x10,0xf6, +0xcb,0x79,0x20,0xb3,0x3e,0x0d,0xd7,0xe1,0xdd,0x7e,0x00,0xfe,0x03,0x28,0x0c,0x3a, +0x74,0x5c,0x3d,0xca,0x08,0x08,0xfe,0x02,0xca,0xb6,0x08,0xe5,0xdd,0x6e,0xfa,0xdd, +0x66,0xfb,0xdd,0x5e,0x0b,0xdd,0x56,0x0c,0x7c,0xb5,0x28,0x0d,0xed,0x52,0x38,0x26, +0x28,0x07,0xdd,0x7e,0x00,0xfe,0x03,0x20,0x1d,0xe1,0x7c,0xb5,0x20,0x06,0xdd,0x6e, +0x0d,0xdd,0x66,0x0e,0xe5,0xdd,0xe1,0x3a,0x74,0x5c,0xfe,0x02,0x37,0x20,0x01,0xa7, +0x3e,0xff,0xcd,0x56,0x05,0xd8,0xcf,0x1a,0xdd,0x5e,0x0b,0xdd,0x56,0x0c,0xe5,0x7c, +0xb5,0x20,0x06,0x13,0x13,0x13,0xeb,0x18,0x0c,0xdd,0x6e,0xfa,0xdd,0x66,0xfb,0xeb, +0x37,0xed,0x52,0x38,0x09,0x11,0x05,0x00,0x19,0x44,0x4d,0xcd,0x05,0x1f,0xe1,0xdd, +0x7e,0x00,0xa7,0x28,0x3e,0x7c,0xb5,0x28,0x13,0x2b,0x46,0x2b,0x4e,0x2b,0x03,0x03, +0x03,0xdd,0x22,0x5f,0x5c,0xcd,0xe8,0x19,0xdd,0x2a,0x5f,0x5c,0x2a,0x59,0x5c,0x2b, +0xdd,0x4e,0x0b,0xdd,0x46,0x0c,0xc5,0x03,0x03,0x03,0xdd,0x7e,0xfd,0xf5,0xcd,0x55, +0x16,0x23,0xf1,0x77,0xd1,0x23,0x73,0x23,0x72,0x23,0xe5,0xdd,0xe1,0x37,0x3e,0xff, +0xc3,0x02,0x08,0xeb,0x2a,0x59,0x5c,0x2b,0xdd,0x22,0x5f,0x5c,0xdd,0x4e,0x0b,0xdd, +0x46,0x0c,0xc5,0xcd,0xe5,0x19,0xc1,0xe5,0xc5,0xcd,0x55,0x16,0xdd,0x2a,0x5f,0x5c, +0x23,0xdd,0x4e,0x0f,0xdd,0x46,0x10,0x09,0x22,0x4b,0x5c,0xdd,0x66,0x0e,0x7c,0xe6, +0xc0,0x20,0x0a,0xdd,0x6e,0x0d,0x22,0x42,0x5c,0xfd,0x36,0x0a,0x00,0xd1,0xdd,0xe1, +0x37,0x3e,0xff,0xc3,0x02,0x08,0xdd,0x4e,0x0b,0xdd,0x46,0x0c,0xc5,0x03,0xf7,0x36, +0x80,0xeb,0xd1,0xe5,0xe5,0xdd,0xe1,0x37,0x3e,0xff,0xcd,0x02,0x08,0xe1,0xed,0x5b, +0x53,0x5c,0x7e,0xe6,0xc0,0x20,0x19,0x1a,0x13,0xbe,0x23,0x20,0x02,0x1a,0xbe,0x1b, +0x2b,0x30,0x08,0xe5,0xeb,0xcd,0xb8,0x19,0xe1,0x18,0xec,0xcd,0x2c,0x09,0x18,0xe2, +0x7e,0x4f,0xfe,0x80,0xc8,0xe5,0x2a,0x4b,0x5c,0x7e,0xfe,0x80,0x28,0x25,0xb9,0x28, +0x08,0xc5,0xcd,0xb8,0x19,0xc1,0xeb,0x18,0xf0,0xe6,0xe0,0xfe,0xa0,0x20,0x12,0xd1, +0xd5,0xe5,0x23,0x13,0x1a,0xbe,0x20,0x06,0x17,0x30,0xf7,0xe1,0x18,0x03,0xe1,0x18, +0xe0,0x3e,0xff,0xd1,0xeb,0x3c,0x37,0xcd,0x2c,0x09,0x18,0xc4,0x20,0x10,0x08,0x22, +0x5f,0x5c,0xeb,0xcd,0xb8,0x19,0xcd,0xe8,0x19,0xeb,0x2a,0x5f,0x5c,0x08,0x08,0xd5, +0xcd,0xb8,0x19,0x22,0x5f,0x5c,0x2a,0x53,0x5c,0xe3,0xc5,0x08,0x38,0x07,0x2b,0xcd, +0x55,0x16,0x23,0x18,0x03,0xcd,0x55,0x16,0x23,0xc1,0xd1,0xed,0x53,0x53,0x5c,0xed, +0x5b,0x5f,0x5c,0xc5,0xd5,0xeb,0xed,0xb0,0xe1,0xc1,0xd5,0xcd,0xe8,0x19,0xd1,0xc9, +0xe5,0x3e,0xfd,0xcd,0x01,0x16,0xaf,0x11,0xa1,0x09,0xcd,0x0a,0x0c,0xfd,0xcb,0x02, +0xee,0xcd,0xd4,0x15,0xdd,0xe5,0x11,0x11,0x00,0xaf,0xcd,0xc2,0x04,0xdd,0xe1,0x06, +0x32,0x76,0x10,0xfd,0xdd,0x5e,0x0b,0xdd,0x56,0x0c,0x3e,0xff,0xdd,0xe1,0xc3,0xc2, +0x04,0x80,0x53,0x74,0x61,0x72,0x74,0x20,0x74,0x61,0x70,0x65,0x2c,0x20,0x74,0x68, +0x65,0x6e,0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x61,0x6e,0x79,0x20,0x6b,0x65,0x79, +0xae,0x0d,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x3a,0xa0,0x0d,0x4e,0x75,0x6d,0x62, +0x65,0x72,0x20,0x61,0x72,0x72,0x61,0x79,0x3a,0xa0,0x0d,0x43,0x68,0x61,0x72,0x61, +0x63,0x74,0x65,0x72,0x20,0x61,0x72,0x72,0x61,0x79,0x3a,0xa0,0x0d,0x42,0x79,0x74, +0x65,0x73,0x3a,0xa0,0xcd,0x03,0x0b,0xfe,0x20,0xd2,0xd9,0x0a,0xfe,0x06,0x38,0x69, +0xfe,0x18,0x30,0x65,0x21,0x0b,0x0a,0x5f,0x16,0x00,0x19,0x5e,0x19,0xe5,0xc3,0x03, +0x0b,0x4e,0x57,0x10,0x29,0x54,0x53,0x52,0x37,0x50,0x4f,0x5f,0x5e,0x5d,0x5c,0x5b, +0x5a,0x54,0x53,0x0c,0x3e,0x22,0xb9,0x20,0x11,0xfd,0xcb,0x01,0x4e,0x20,0x09,0x04, +0x0e,0x02,0x3e,0x18,0xb8,0x20,0x03,0x05,0x0e,0x21,0xc3,0xd9,0x0d,0x3a,0x91,0x5c, +0xf5,0xfd,0x36,0x57,0x01,0x3e,0x20,0xcd,0x65,0x0b,0xf1,0x32,0x91,0x5c,0xc9,0xfd, +0xcb,0x01,0x4e,0xc2,0xcd,0x0e,0x0e,0x21,0xcd,0x55,0x0c,0x05,0xc3,0xd9,0x0d,0xcd, +0x03,0x0b,0x79,0x3d,0x3d,0xe6,0x10,0x18,0x5a,0x3e,0x3f,0x18,0x6c,0x11,0x87,0x0a, +0x32,0x0f,0x5c,0x18,0x0b,0x11,0x6d,0x0a,0x18,0x03,0x11,0x87,0x0a,0x32,0x0e,0x5c, +0x2a,0x51,0x5c,0x73,0x23,0x72,0xc9,0x11,0xf4,0x09,0xcd,0x80,0x0a,0x2a,0x0e,0x5c, +0x57,0x7d,0xfe,0x16,0xda,0x11,0x22,0x20,0x29,0x44,0x4a,0x3e,0x1f,0x91,0x38,0x0c, +0xc6,0x02,0x4f,0xfd,0xcb,0x01,0x4e,0x20,0x16,0x3e,0x16,0x90,0xda,0x9f,0x1e,0x3c, +0x47,0x04,0xfd,0xcb,0x02,0x46,0xc2,0x55,0x0c,0xfd,0xbe,0x31,0xda,0x86,0x0c,0xc3, +0xd9,0x0d,0x7c,0xcd,0x03,0x0b,0x81,0x3d,0xe6,0x1f,0xc8,0x57,0xfd,0xcb,0x01,0xc6, +0x3e,0x20,0xcd,0x3b,0x0c,0x15,0x20,0xf8,0xc9,0xcd,0x24,0x0b,0xfd,0xcb,0x01,0x4e, +0x20,0x1a,0xfd,0xcb,0x02,0x46,0x20,0x08,0xed,0x43,0x88,0x5c,0x22,0x84,0x5c,0xc9, +0xed,0x43,0x8a,0x5c,0xed,0x43,0x82,0x5c,0x22,0x86,0x5c,0xc9,0xfd,0x71,0x45,0x22, +0x80,0x5c,0xc9,0xfd,0xcb,0x01,0x4e,0x20,0x14,0xed,0x4b,0x88,0x5c,0x2a,0x84,0x5c, +0xfd,0xcb,0x02,0x46,0xc8,0xed,0x4b,0x8a,0x5c,0x2a,0x86,0x5c,0xc9,0xfd,0x4e,0x45, +0x2a,0x80,0x5c,0xc9,0xfe,0x80,0x38,0x3d,0xfe,0x90,0x30,0x26,0x47,0xcd,0x38,0x0b, +0xcd,0x03,0x0b,0x11,0x92,0x5c,0x18,0x47,0x21,0x92,0x5c,0xcd,0x3e,0x0b,0xcb,0x18, +0x9f,0xe6,0x0f,0x4f,0xcb,0x18,0x9f,0xe6,0xf0,0xb1,0x0e,0x04,0x77,0x23,0x0d,0x20, +0xfb,0xc9,0xd6,0xa5,0x30,0x09,0xc6,0x15,0xc5,0xed,0x4b,0x7b,0x5c,0x18,0x0b,0xcd, +0x10,0x0c,0xc3,0x03,0x0b,0xc5,0xed,0x4b,0x36,0x5c,0xeb,0x21,0x3b,0x5c,0xcb,0x86, +0xfe,0x20,0x20,0x02,0xcb,0xc6,0x26,0x00,0x6f,0x29,0x29,0x29,0x09,0xc1,0xeb,0x79, +0x3d,0x3e,0x21,0x20,0x0e,0x05,0x4f,0xfd,0xcb,0x01,0x4e,0x28,0x06,0xd5,0xcd,0xcd, +0x0e,0xd1,0x79,0xb9,0xd5,0xcc,0x55,0x0c,0xd1,0xc5,0xe5,0x3a,0x91,0x5c,0x06,0xff, +0x1f,0x38,0x01,0x04,0x1f,0x1f,0x9f,0x4f,0x3e,0x08,0xa7,0xfd,0xcb,0x01,0x4e,0x28, +0x05,0xfd,0xcb,0x30,0xce,0x37,0xeb,0x08,0x1a,0xa0,0xae,0xa9,0x12,0x08,0x38,0x13, +0x14,0x23,0x3d,0x20,0xf2,0xeb,0x25,0xfd,0xcb,0x01,0x4e,0xcc,0xdb,0x0b,0xe1,0xc1, +0x0d,0x23,0xc9,0x08,0x3e,0x20,0x83,0x5f,0x08,0x18,0xe6,0x7c,0x0f,0x0f,0x0f,0xe6, +0x03,0xf6,0x58,0x67,0xed,0x5b,0x8f,0x5c,0x7e,0xab,0xa2,0xab,0xfd,0xcb,0x57,0x76, +0x28,0x08,0xe6,0xc7,0xcb,0x57,0x20,0x02,0xee,0x38,0xfd,0xcb,0x57,0x66,0x28,0x08, +0xe6,0xf8,0xcb,0x6f,0x20,0x02,0xee,0x07,0x77,0xc9,0xe5,0x26,0x00,0xe3,0x18,0x04, +0x11,0x95,0x00,0xf5,0xcd,0x41,0x0c,0x38,0x09,0x3e,0x20,0xfd,0xcb,0x01,0x46,0xcc, +0x3b,0x0c,0x1a,0xe6,0x7f,0xcd,0x3b,0x0c,0x1a,0x13,0x87,0x30,0xf5,0xd1,0xfe,0x48, +0x28,0x03,0xfe,0x82,0xd8,0x7a,0xfe,0x03,0xd8,0x3e,0x20,0xd5,0xd9,0xd7,0xd9,0xd1, +0xc9,0xf5,0xeb,0x3c,0xcb,0x7e,0x23,0x28,0xfb,0x3d,0x20,0xf8,0xeb,0xf1,0xfe,0x20, +0xd8,0x1a,0xd6,0x41,0xc9,0xfd,0xcb,0x01,0x4e,0xc0,0x11,0xd9,0x0d,0xd5,0x78,0xfd, +0xcb,0x02,0x46,0xc2,0x02,0x0d,0xfd,0xbe,0x31,0x38,0x1b,0xc0,0xfd,0xcb,0x02,0x66, +0x28,0x16,0xfd,0x5e,0x2d,0x1d,0x28,0x5a,0x3e,0x00,0xcd,0x01,0x16,0xed,0x7b,0x3f, +0x5c,0xfd,0xcb,0x02,0xa6,0xc9,0xcf,0x04,0xfd,0x35,0x52,0x20,0x45,0x3e,0x18,0x90, +0x32,0x8c,0x5c,0x2a,0x8f,0x5c,0xe5,0x3a,0x91,0x5c,0xf5,0x3e,0xfd,0xcd,0x01,0x16, +0xaf,0x11,0xf8,0x0c,0xcd,0x0a,0x0c,0xfd,0xcb,0x02,0xee,0x21,0x3b,0x5c,0xcb,0xde, +0xcb,0xae,0xd9,0xcd,0xd4,0x15,0xd9,0xfe,0x20,0x28,0x45,0xfe,0xe2,0x28,0x41,0xf6, +0x20,0xfe,0x6e,0x28,0x3b,0x3e,0xfe,0xcd,0x01,0x16,0xf1,0x32,0x91,0x5c,0xe1,0x22, +0x8f,0x5c,0xcd,0xfe,0x0d,0xfd,0x46,0x31,0x04,0x0e,0x21,0xc5,0xcd,0x9b,0x0e,0x7c, +0x0f,0x0f,0x0f,0xe6,0x03,0xf6,0x58,0x67,0x11,0xe0,0x5a,0x1a,0x4e,0x06,0x20,0xeb, +0x12,0x71,0x13,0x23,0x10,0xfa,0xc1,0xc9,0x80,0x73,0x63,0x72,0x6f,0x6c,0x6c,0xbf, +0xcf,0x0c,0xfe,0x02,0x38,0x80,0xfd,0x86,0x31,0xd6,0x19,0xd0,0xed,0x44,0xc5,0x47, +0x2a,0x8f,0x5c,0xe5,0x2a,0x91,0x5c,0xe5,0xcd,0x4d,0x0d,0x78,0xf5,0x21,0x6b,0x5c, +0x46,0x78,0x3c,0x77,0x21,0x89,0x5c,0xbe,0x38,0x03,0x34,0x06,0x18,0xcd,0x00,0x0e, +0xf1,0x3d,0x20,0xe8,0xe1,0xfd,0x75,0x57,0xe1,0x22,0x8f,0x5c,0xed,0x4b,0x88,0x5c, +0xfd,0xcb,0x02,0x86,0xcd,0xd9,0x0d,0xfd,0xcb,0x02,0xc6,0xc1,0xc9,0xaf,0x2a,0x8d, +0x5c,0xfd,0xcb,0x02,0x46,0x28,0x04,0x67,0xfd,0x6e,0x0e,0x22,0x8f,0x5c,0x21,0x91, +0x5c,0x20,0x02,0x7e,0x0f,0xae,0xe6,0x55,0xae,0x77,0xc9,0xcd,0xaf,0x0d,0x21,0x3c, +0x5c,0xcb,0xae,0xcb,0xc6,0xcd,0x4d,0x0d,0xfd,0x46,0x31,0xcd,0x44,0x0e,0x21,0xc0, +0x5a,0x3a,0x8d,0x5c,0x05,0x18,0x07,0x0e,0x20,0x2b,0x77,0x0d,0x20,0xfb,0x10,0xf7, +0xfd,0x36,0x31,0x02,0x3e,0xfd,0xcd,0x01,0x16,0x2a,0x51,0x5c,0x11,0xf4,0x09,0xa7, +0x73,0x23,0x72,0x23,0x11,0xa8,0x10,0x3f,0x38,0xf6,0x01,0x21,0x17,0x18,0x2a,0x21, +0x00,0x00,0x22,0x7d,0x5c,0xfd,0xcb,0x30,0x86,0xcd,0x94,0x0d,0x3e,0xfe,0xcd,0x01, +0x16,0xcd,0x4d,0x0d,0x06,0x18,0xcd,0x44,0x0e,0x2a,0x51,0x5c,0x11,0xf4,0x09,0x73, +0x23,0x72,0xfd,0x36,0x52,0x01,0x01,0x21,0x18,0x21,0x00,0x5b,0xfd,0xcb,0x01,0x4e, +0x20,0x12,0x78,0xfd,0xcb,0x02,0x46,0x28,0x05,0xfd,0x86,0x31,0xd6,0x18,0xc5,0x47, +0xcd,0x9b,0x0e,0xc1,0x3e,0x21,0x91,0x5f,0x16,0x00,0x19,0xc3,0xdc,0x0a,0x06,0x17, +0xcd,0x9b,0x0e,0x0e,0x08,0xc5,0xe5,0x78,0xe6,0x07,0x78,0x20,0x0c,0xeb,0x21,0xe0, +0xf8,0x19,0xeb,0x01,0x20,0x00,0x3d,0xed,0xb0,0xeb,0x21,0xe0,0xff,0x19,0xeb,0x47, +0xe6,0x07,0x0f,0x0f,0x0f,0x4f,0x78,0x06,0x00,0xed,0xb0,0x06,0x07,0x09,0xe6,0xf8, +0x20,0xdb,0xe1,0x24,0xc1,0x0d,0x20,0xcd,0xcd,0x88,0x0e,0x21,0xe0,0xff,0x19,0xeb, +0xed,0xb0,0x06,0x01,0xc5,0xcd,0x9b,0x0e,0x0e,0x08,0xc5,0xe5,0x78,0xe6,0x07,0x0f, +0x0f,0x0f,0x4f,0x78,0x06,0x00,0x0d,0x54,0x5d,0x36,0x00,0x13,0xed,0xb0,0x11,0x01, +0x07,0x19,0x3d,0xe6,0xf8,0x47,0x20,0xe5,0xe1,0x24,0xc1,0x0d,0x20,0xdc,0xcd,0x88, +0x0e,0x62,0x6b,0x13,0x3a,0x8d,0x5c,0xfd,0xcb,0x02,0x46,0x28,0x03,0x3a,0x48,0x5c, +0x77,0x0b,0xed,0xb0,0xc1,0x0e,0x21,0xc9,0x7c,0x0f,0x0f,0x0f,0x3d,0xf6,0x50,0x67, +0xeb,0x61,0x68,0x29,0x29,0x29,0x29,0x29,0x44,0x4d,0xc9,0x3e,0x18,0x90,0x57,0x0f, +0x0f,0x0f,0xe6,0xe0,0x6f,0x7a,0xe6,0x18,0xf6,0x40,0x67,0xc9,0xf3,0x06,0xb0,0x21, +0x00,0x40,0xe5,0xc5,0xcd,0xf4,0x0e,0xc1,0xe1,0x24,0x7c,0xe6,0x07,0x20,0x0a,0x7d, +0xc6,0x20,0x6f,0x3f,0x9f,0xe6,0xf8,0x84,0x67,0x10,0xe7,0x18,0x0d,0xf3,0x21,0x00, +0x5b,0x06,0x08,0xc5,0xcd,0xf4,0x0e,0xc1,0x10,0xf9,0x3e,0x04,0xd3,0xfb,0xfb,0x21, +0x00,0x5b,0xfd,0x75,0x46,0xaf,0x47,0x77,0x23,0x10,0xfc,0xfd,0xcb,0x30,0x8e,0x0e, +0x21,0xc3,0xd9,0x0d,0x78,0xfe,0x03,0x9f,0xe6,0x02,0xd3,0xfb,0x57,0xcd,0x54,0x1f, +0x38,0x0a,0x3e,0x04,0xd3,0xfb,0xfb,0xcd,0xdf,0x0e,0xcf,0x0c,0xdb,0xfb,0x87,0xf8, +0x30,0xeb,0x0e,0x20,0x5e,0x23,0x06,0x08,0xcb,0x12,0xcb,0x13,0xcb,0x1a,0xdb,0xfb, +0x1f,0x30,0xfb,0x7a,0xd3,0xfb,0x10,0xf0,0x0d,0x20,0xe9,0xc9,0x2a,0x3d,0x5c,0xe5, +0x21,0x7f,0x10,0xe5,0xed,0x73,0x3d,0x5c,0xcd,0xd4,0x15,0xf5,0x16,0x00,0xfd,0x5e, +0xff,0x21,0xc8,0x00,0xcd,0xb5,0x03,0xf1,0x21,0x38,0x0f,0xe5,0xfe,0x18,0x30,0x31, +0xfe,0x07,0x38,0x2d,0xfe,0x10,0x38,0x3a,0x01,0x02,0x00,0x57,0xfe,0x16,0x38,0x0c, +0x03,0xfd,0xcb,0x37,0x7e,0xca,0x1e,0x10,0xcd,0xd4,0x15,0x5f,0xcd,0xd4,0x15,0xd5, +0x2a,0x5b,0x5c,0xfd,0xcb,0x07,0x86,0xcd,0x55,0x16,0xc1,0x23,0x70,0x23,0x71,0x18, +0x0a,0xfd,0xcb,0x07,0x86,0x2a,0x5b,0x5c,0xcd,0x52,0x16,0x12,0x13,0xed,0x53,0x5b, +0x5c,0xc9,0x5f,0x16,0x00,0x21,0x99,0x0f,0x19,0x5e,0x19,0xe5,0x2a,0x5b,0x5c,0xc9, +0x09,0x66,0x6a,0x50,0xb5,0x70,0x7e,0xcf,0xd4,0x2a,0x49,0x5c,0xfd,0xcb,0x37,0x6e, +0xc2,0x97,0x10,0xcd,0x6e,0x19,0xcd,0x95,0x16,0x7a,0xb3,0xca,0x97,0x10,0xe5,0x23, +0x4e,0x23,0x46,0x21,0x0a,0x00,0x09,0x44,0x4d,0xcd,0x05,0x1f,0xcd,0x97,0x10,0x2a, +0x51,0x5c,0xe3,0xe5,0x3e,0xff,0xcd,0x01,0x16,0xe1,0x2b,0xfd,0x35,0x0f,0xcd,0x55, +0x18,0xfd,0x34,0x0f,0x2a,0x59,0x5c,0x23,0x23,0x23,0x23,0x22,0x5b,0x5c,0xe1,0xcd, +0x15,0x16,0xc9,0xfd,0xcb,0x37,0x6e,0x20,0x08,0x21,0x49,0x5c,0xcd,0x0f,0x19,0x18, +0x6d,0xfd,0x36,0x00,0x10,0x18,0x1d,0xcd,0x31,0x10,0x18,0x05,0x7e,0xfe,0x0d,0xc8, +0x23,0x22,0x5b,0x5c,0xc9,0xcd,0x31,0x10,0x01,0x01,0x00,0xc3,0xe8,0x19,0xcd,0xd4, +0x15,0xcd,0xd4,0x15,0xe1,0xe1,0xe1,0x22,0x3d,0x5c,0xfd,0xcb,0x00,0x7e,0xc0,0xf9, +0xc9,0x37,0xcd,0x95,0x11,0xed,0x52,0x19,0x23,0xc1,0xd8,0xc5,0x44,0x4d,0x62,0x6b, +0x23,0x1a,0xe6,0xf0,0xfe,0x10,0x20,0x09,0x23,0x1a,0xd6,0x17,0xce,0x00,0x20,0x01, +0x23,0xa7,0xed,0x42,0x09,0xeb,0x38,0xe6,0xc9,0xfd,0xcb,0x37,0x6e,0xc0,0x2a,0x49, +0x5c,0xcd,0x6e,0x19,0xeb,0xcd,0x95,0x16,0x21,0x4a,0x5c,0xcd,0x1c,0x19,0xcd,0x95, +0x17,0x3e,0x00,0xc3,0x01,0x16,0xfd,0xcb,0x37,0x7e,0x28,0xa8,0xc3,0x81,0x0f,0xfd, +0xcb,0x30,0x66,0x28,0xa1,0xfd,0x36,0x00,0xff,0x16,0x00,0xfd,0x5e,0xfe,0x21,0x90, +0x1a,0xcd,0xb5,0x03,0xc3,0x30,0x0f,0xe5,0xcd,0x90,0x11,0x2b,0xcd,0xe5,0x19,0x22, +0x5b,0x5c,0xfd,0x36,0x07,0x00,0xe1,0xc9,0xfd,0xcb,0x02,0x5e,0xc4,0x1d,0x11,0xa7, +0xfd,0xcb,0x01,0x6e,0xc8,0x3a,0x08,0x5c,0xfd,0xcb,0x01,0xae,0xf5,0xfd,0xcb,0x02, +0x6e,0xc4,0x6e,0x0d,0xf1,0xfe,0x20,0x30,0x52,0xfe,0x10,0x30,0x2d,0xfe,0x06,0x30, +0x0a,0x47,0xe6,0x01,0x4f,0x78,0x1f,0xc6,0x12,0x18,0x2a,0x20,0x09,0x21,0x6a,0x5c, +0x3e,0x08,0xae,0x77,0x18,0x0e,0xfe,0x0e,0xd8,0xd6,0x0d,0x21,0x41,0x5c,0xbe,0x77, +0x20,0x02,0x36,0x00,0xfd,0xcb,0x02,0xde,0xbf,0xc9,0x47,0xe6,0x07,0x4f,0x3e,0x10, +0xcb,0x58,0x20,0x01,0x3c,0xfd,0x71,0xd3,0x11,0x0d,0x11,0x18,0x06,0x3a,0x0d,0x5c, +0x11,0xa8,0x10,0x2a,0x4f,0x5c,0x23,0x23,0x73,0x23,0x72,0x37,0xc9,0xcd,0x4d,0x0d, +0xfd,0xcb,0x02,0x9e,0xfd,0xcb,0x02,0xae,0x2a,0x8a,0x5c,0xe5,0x2a,0x3d,0x5c,0xe5, +0x21,0x67,0x11,0xe5,0xed,0x73,0x3d,0x5c,0x2a,0x82,0x5c,0xe5,0x37,0xcd,0x95,0x11, +0xeb,0xcd,0x7d,0x18,0xeb,0xcd,0xe1,0x18,0x2a,0x8a,0x5c,0xe3,0xeb,0xcd,0x4d,0x0d, +0x3a,0x8b,0x5c,0x92,0x38,0x26,0x20,0x06,0x7b,0xfd,0x96,0x50,0x30,0x1e,0x3e,0x20, +0xd5,0xcd,0xf4,0x09,0xd1,0x18,0xe9,0x16,0x00,0xfd,0x5e,0xfe,0x21,0x90,0x1a,0xcd, +0xb5,0x03,0xfd,0x36,0x00,0xff,0xed,0x5b,0x8a,0x5c,0x18,0x02,0xd1,0xe1,0xe1,0x22, +0x3d,0x5c,0xc1,0xd5,0xcd,0xd9,0x0d,0xe1,0x22,0x82,0x5c,0xfd,0x36,0x26,0x00,0xc9, +0x2a,0x61,0x5c,0x2b,0xa7,0xed,0x5b,0x59,0x5c,0xfd,0xcb,0x37,0x6e,0xc8,0xed,0x5b, +0x61,0x5c,0xd8,0x2a,0x63,0x5c,0xc9,0x7e,0xfe,0x0e,0x01,0x06,0x00,0xcc,0xe8,0x19, +0x7e,0x23,0xfe,0x0d,0x20,0xf1,0xc9,0xf3,0x3e,0xff,0xed,0x5b,0xb2,0x5c,0xd9,0xed, +0x4b,0xb4,0x5c,0xed,0x5b,0x38,0x5c,0x2a,0x7b,0x5c,0xd9,0x47,0x3e,0x07,0xd3,0xfe, +0x3e,0x3f,0xed,0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x6b,0x36,0x02,0x2b,0xbc, +0x20,0xfa,0xa7,0xed,0x52,0x19,0x23,0x30,0x06,0x35,0x28,0x03,0x35,0x28,0xf3,0x2b, +0xd9,0xed,0x43,0xb4,0x5c,0xed,0x53,0x38,0x5c,0x22,0x7b,0x5c,0xd9,0x04,0x28,0x19, +0x22,0xb4,0x5c,0x11,0xaf,0x3e,0x01,0xa8,0x00,0xeb,0xed,0xb8,0xeb,0x23,0x22,0x7b, +0x5c,0x2b,0x01,0x40,0x00,0xed,0x43,0x38,0x5c,0x22,0xb2,0x5c,0x21,0x00,0x3c,0x22, +0x36,0x5c,0x2a,0xb2,0x5c,0x36,0x3e,0x2b,0xf9,0x2b,0x2b,0x22,0x3d,0x5c,0xed,0x56, +0xfd,0x21,0x3a,0x5c,0xfb,0x21,0xb6,0x5c,0x22,0x4f,0x5c,0x11,0xaf,0x15,0x01,0x15, +0x00,0xeb,0xed,0xb0,0xeb,0x2b,0x22,0x57,0x5c,0x23,0x22,0x53,0x5c,0x22,0x4b,0x5c, +0x36,0x80,0x23,0x22,0x59,0x5c,0x36,0x0d,0x23,0x36,0x80,0x23,0x22,0x61,0x5c,0x22, +0x63,0x5c,0x22,0x65,0x5c,0x3e,0x38,0x32,0x8d,0x5c,0x32,0x8f,0x5c,0x32,0x48,0x5c, +0x21,0x23,0x05,0x22,0x09,0x5c,0xfd,0x35,0xc6,0xfd,0x35,0xca,0x21,0xc6,0x15,0x11, +0x10,0x5c,0x01,0x0e,0x00,0xed,0xb0,0xfd,0xcb,0x01,0xce,0xcd,0xdf,0x0e,0xfd,0x36, +0x31,0x02,0xcd,0x6b,0x0d,0xaf,0x11,0x38,0x15,0xcd,0x0a,0x0c,0xfd,0xcb,0x02,0xee, +0x18,0x07,0xfd,0x36,0x31,0x02,0xcd,0x95,0x17,0xcd,0xb0,0x16,0x3e,0x00,0xcd,0x01, +0x16,0xcd,0x2c,0x0f,0xcd,0x17,0x1b,0xfd,0xcb,0x00,0x7e,0x20,0x12,0xfd,0xcb,0x30, +0x66,0x28,0x40,0x2a,0x59,0x5c,0xcd,0xa7,0x11,0xfd,0x36,0x00,0xff,0x18,0xdd,0x2a, +0x59,0x5c,0x22,0x5d,0x5c,0xcd,0xfb,0x19,0x78,0xb1,0xc2,0x5d,0x15,0xdf,0xfe,0x0d, +0x28,0xc0,0xfd,0xcb,0x30,0x46,0xc4,0xaf,0x0d,0xcd,0x6e,0x0d,0x3e,0x19,0xfd,0x96, +0x4f,0x32,0x8c,0x5c,0xfd,0xcb,0x01,0xfe,0xfd,0x36,0x00,0xff,0xfd,0x36,0x0a,0x01, +0xcd,0x8a,0x1b,0x76,0xfd,0xcb,0x01,0xae,0xfd,0xcb,0x30,0x4e,0xc4,0xcd,0x0e,0x3a, +0x3a,0x5c,0x3c,0xf5,0x21,0x00,0x00,0xfd,0x74,0x37,0xfd,0x74,0x26,0x22,0x0b,0x5c, +0x21,0x01,0x00,0x22,0x16,0x5c,0xcd,0xb0,0x16,0xfd,0xcb,0x37,0xae,0xcd,0x6e,0x0d, +0xfd,0xcb,0x02,0xee,0xf1,0x47,0xfe,0x0a,0x38,0x02,0xc6,0x07,0xcd,0xef,0x15,0x3e, +0x20,0xd7,0x78,0x11,0x91,0x13,0xcd,0x0a,0x0c,0xaf,0x11,0x36,0x15,0xcd,0x0a,0x0c, +0xed,0x4b,0x45,0x5c,0xcd,0x1b,0x1a,0x3e,0x3a,0xd7,0xfd,0x4e,0x0d,0x06,0x00,0xcd, +0x1b,0x1a,0xcd,0x97,0x10,0x3a,0x3a,0x5c,0x3c,0x28,0x1b,0xfe,0x09,0x28,0x04,0xfe, +0x15,0x20,0x03,0xfd,0x34,0x0d,0x01,0x03,0x00,0x11,0x70,0x5c,0x21,0x44,0x5c,0xcb, +0x7e,0x28,0x01,0x09,0xed,0xb8,0xfd,0x36,0x0a,0xff,0xfd,0xcb,0x01,0x9e,0xc3,0xac, +0x12,0x80,0x4f,0xcb,0x4e,0x45,0x58,0x54,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74, +0x20,0x46,0x4f,0xd2,0x56,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x20,0x6e,0x6f,0x74, +0x20,0x66,0x6f,0x75,0x6e,0xe4,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x20, +0x77,0x72,0x6f,0x6e,0xe7,0x4f,0x75,0x74,0x20,0x6f,0x66,0x20,0x6d,0x65,0x6d,0x6f, +0x72,0xf9,0x4f,0x75,0x74,0x20,0x6f,0x66,0x20,0x73,0x63,0x72,0x65,0x65,0xee,0x4e, +0x75,0x6d,0x62,0x65,0x72,0x20,0x74,0x6f,0x6f,0x20,0x62,0x69,0xe7,0x52,0x45,0x54, +0x55,0x52,0x4e,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x47,0x4f,0x53,0x55, +0xc2,0x45,0x6e,0x64,0x20,0x6f,0x66,0x20,0x66,0x69,0x6c,0xe5,0x53,0x54,0x4f,0x50, +0x20,0x73,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0xf4,0x49,0x6e,0x76,0x61,0x6c,0x69, +0x64,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0xf4,0x49,0x6e,0x74,0x65,0x67,0x65, +0x72,0x20,0x6f,0x75,0x74,0x20,0x6f,0x66,0x20,0x72,0x61,0x6e,0x67,0xe5,0x4e,0x6f, +0x6e,0x73,0x65,0x6e,0x73,0x65,0x20,0x69,0x6e,0x20,0x42,0x41,0x53,0x49,0xc3,0x42, +0x52,0x45,0x41,0x4b,0x20,0x2d,0x20,0x43,0x4f,0x4e,0x54,0x20,0x72,0x65,0x70,0x65, +0x61,0x74,0xf3,0x4f,0x75,0x74,0x20,0x6f,0x66,0x20,0x44,0x41,0x54,0xc1,0x49,0x6e, +0x76,0x61,0x6c,0x69,0x64,0x20,0x66,0x69,0x6c,0x65,0x20,0x6e,0x61,0x6d,0xe5,0x4e, +0x6f,0x20,0x72,0x6f,0x6f,0x6d,0x20,0x66,0x6f,0x72,0x20,0x6c,0x69,0x6e,0xe5,0x53, +0x54,0x4f,0x50,0x20,0x69,0x6e,0x20,0x49,0x4e,0x50,0x55,0xd4,0x46,0x4f,0x52,0x20, +0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x4e,0x45,0x58,0xd4,0x49,0x6e,0x76,0x61, +0x6c,0x69,0x64,0x20,0x49,0x2f,0x4f,0x20,0x64,0x65,0x76,0x69,0x63,0xe5,0x49,0x6e, +0x76,0x61,0x6c,0x69,0x64,0x20,0x63,0x6f,0x6c,0x6f,0x75,0xf2,0x42,0x52,0x45,0x41, +0x4b,0x20,0x69,0x6e,0x74,0x6f,0x20,0x70,0x72,0x6f,0x67,0x72,0x61,0xed,0x52,0x41, +0x4d,0x54,0x4f,0x50,0x20,0x6e,0x6f,0x20,0x67,0x6f,0x6f,0xe4,0x53,0x74,0x61,0x74, +0x65,0x6d,0x65,0x6e,0x74,0x20,0x6c,0x6f,0x73,0xf4,0x49,0x6e,0x76,0x61,0x6c,0x69, +0x64,0x20,0x73,0x74,0x72,0x65,0x61,0xed,0x46,0x4e,0x20,0x77,0x69,0x74,0x68,0x6f, +0x75,0x74,0x20,0x44,0x45,0xc6,0x50,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20, +0x65,0x72,0x72,0x6f,0xf2,0x54,0x61,0x70,0x65,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e, +0x67,0x20,0x65,0x72,0x72,0x6f,0xf2,0x2c,0xa0,0x7f,0x20,0x31,0x39,0x38,0x32,0x20, +0x53,0x69,0x6e,0x63,0x6c,0x61,0x69,0x72,0x20,0x52,0x65,0x73,0x65,0x61,0x72,0x63, +0x68,0x20,0x4c,0x74,0xe4,0x3e,0x10,0x01,0x00,0x00,0xc3,0x13,0x13,0xed,0x43,0x49, +0x5c,0x2a,0x5d,0x5c,0xeb,0x21,0x55,0x15,0xe5,0x2a,0x61,0x5c,0x37,0xed,0x52,0xe5, +0x60,0x69,0xcd,0x6e,0x19,0x20,0x06,0xcd,0xb8,0x19,0xcd,0xe8,0x19,0xc1,0x79,0x3d, +0xb0,0x28,0x28,0xc5,0x03,0x03,0x03,0x03,0x2b,0xed,0x5b,0x53,0x5c,0xd5,0xcd,0x55, +0x16,0xe1,0x22,0x53,0x5c,0xc1,0xc5,0x13,0x2a,0x61,0x5c,0x2b,0x2b,0xed,0xb8,0x2a, +0x49,0x5c,0xeb,0xc1,0x70,0x2b,0x71,0x2b,0x73,0x2b,0x72,0xf1,0xc3,0xa2,0x12,0xf4, +0x09,0xa8,0x10,0x4b,0xf4,0x09,0xc4,0x15,0x53,0x81,0x0f,0xc4,0x15,0x52,0xf4,0x09, +0xc4,0x15,0x50,0x80,0xcf,0x12,0x01,0x00,0x06,0x00,0x0b,0x00,0x01,0x00,0x01,0x00, +0x06,0x00,0x10,0x00,0xfd,0xcb,0x02,0x6e,0x20,0x04,0xfd,0xcb,0x02,0xde,0xcd,0xe6, +0x15,0xd8,0x28,0xfa,0xcf,0x07,0xd9,0xe5,0x2a,0x51,0x5c,0x23,0x23,0x18,0x08,0x1e, +0x30,0x83,0xd9,0xe5,0x2a,0x51,0x5c,0x5e,0x23,0x56,0xeb,0xcd,0x2c,0x16,0xe1,0xd9, +0xc9,0x87,0xc6,0x16,0x6f,0x26,0x5c,0x5e,0x23,0x56,0x7a,0xb3,0x20,0x02,0xcf,0x17, +0x1b,0x2a,0x4f,0x5c,0x19,0x22,0x51,0x5c,0xfd,0xcb,0x30,0xa6,0x23,0x23,0x23,0x23, +0x4e,0x21,0x2d,0x16,0xcd,0xdc,0x16,0xd0,0x16,0x00,0x5e,0x19,0xe9,0x4b,0x06,0x53, +0x12,0x50,0x1b,0x00,0xfd,0xcb,0x02,0xc6,0xfd,0xcb,0x01,0xae,0xfd,0xcb,0x30,0xe6, +0x18,0x04,0xfd,0xcb,0x02,0x86,0xfd,0xcb,0x01,0x8e,0xc3,0x4d,0x0d,0xfd,0xcb,0x01, +0xce,0xc9,0x01,0x01,0x00,0xe5,0xcd,0x05,0x1f,0xe1,0xcd,0x64,0x16,0x2a,0x65,0x5c, +0xeb,0xed,0xb8,0xc9,0xf5,0xe5,0x21,0x4b,0x5c,0x3e,0x0e,0x5e,0x23,0x56,0xe3,0xa7, +0xed,0x52,0x19,0xe3,0x30,0x09,0xd5,0xeb,0x09,0xeb,0x72,0x2b,0x73,0x23,0xd1,0x23, +0x3d,0x20,0xe8,0xeb,0xd1,0xf1,0xa7,0xed,0x52,0x44,0x4d,0x03,0x19,0xeb,0xc9,0x00, +0x00,0xeb,0x11,0x8f,0x16,0x7e,0xe6,0xc0,0x20,0xf7,0x56,0x23,0x5e,0xc9,0x2a,0x63, +0x5c,0x2b,0xcd,0x55,0x16,0x23,0x23,0xc1,0xed,0x43,0x61,0x5c,0xc1,0xeb,0x23,0xc9, +0x2a,0x59,0x5c,0x36,0x0d,0x22,0x5b,0x5c,0x23,0x36,0x80,0x23,0x22,0x61,0x5c,0x2a, +0x61,0x5c,0x22,0x63,0x5c,0x2a,0x63,0x5c,0x22,0x65,0x5c,0xe5,0x21,0x92,0x5c,0x22, +0x68,0x5c,0xe1,0xc9,0x5d,0x5b,0x59,0x5c,0xc3,0xe5,0x19,0x23,0x7e,0xa7,0xc8,0xb9, +0x23,0x20,0xf8,0x37,0xc9,0xcd,0x1e,0x17,0xcd,0x01,0x17,0x01,0x00,0x00,0x11,0xe2, +0xa3,0xeb,0x19,0x38,0x07,0x01,0xd4,0x15,0x09,0x4e,0x23,0x46,0xeb,0x71,0x23,0x70, +0xc9,0xe5,0x2a,0x4f,0x5c,0x09,0x23,0x23,0x23,0x4e,0xeb,0x21,0x16,0x17,0xcd,0xdc, +0x16,0x4e,0x06,0x00,0x09,0xe9,0x4b,0x05,0x53,0x03,0x50,0x01,0xe1,0xc9,0xcd,0x94, +0x1e,0xfe,0x10,0x38,0x02,0xcf,0x17,0xc6,0x03,0x07,0x21,0x10,0x5c,0x4f,0x06,0x00, +0x09,0x4e,0x23,0x46,0x2b,0xc9,0xef,0x01,0x38,0xcd,0x1e,0x17,0x78,0xb1,0x28,0x16, +0xeb,0x2a,0x4f,0x5c,0x09,0x23,0x23,0x23,0x7e,0xeb,0xfe,0x4b,0x28,0x08,0xfe,0x53, +0x28,0x04,0xfe,0x50,0x20,0xcf,0xcd,0x5d,0x17,0x73,0x23,0x72,0xc9,0xe5,0xcd,0xf1, +0x2b,0x78,0xb1,0x20,0x02,0xcf,0x0e,0xc5,0x1a,0xe6,0xdf,0x4f,0x21,0x7a,0x17,0xcd, +0xdc,0x16,0x30,0xf1,0x4e,0x06,0x00,0x09,0xc1,0xe9,0x4b,0x06,0x53,0x08,0x50,0x0a, +0x00,0x1e,0x01,0x18,0x06,0x1e,0x06,0x18,0x02,0x1e,0x10,0x0b,0x78,0xb1,0x20,0xd5, +0x57,0xe1,0xc9,0x18,0x90,0xed,0x73,0x3f,0x5c,0xfd,0x36,0x02,0x10,0xcd,0xaf,0x0d, +0xfd,0xcb,0x02,0xc6,0xfd,0x46,0x31,0xcd,0x44,0x0e,0xfd,0xcb,0x02,0x86,0xfd,0xcb, +0x30,0xc6,0x2a,0x49,0x5c,0xed,0x5b,0x6c,0x5c,0xa7,0xed,0x52,0x19,0x38,0x22,0xd5, +0xcd,0x6e,0x19,0x11,0xc0,0x02,0xeb,0xed,0x52,0xe3,0xcd,0x6e,0x19,0xc1,0xc5,0xcd, +0xb8,0x19,0xc1,0x09,0x38,0x0e,0xeb,0x56,0x23,0x5e,0x2b,0xed,0x53,0x6c,0x5c,0x18, +0xed,0x22,0x6c,0x5c,0x2a,0x6c,0x5c,0xcd,0x6e,0x19,0x28,0x01,0xeb,0xcd,0x33,0x18, +0xfd,0xcb,0x02,0xa6,0xc9,0x3e,0x03,0x18,0x02,0x3e,0x02,0xfd,0x36,0x02,0x00,0xcd, +0x30,0x25,0xc4,0x01,0x16,0xdf,0xcd,0x70,0x20,0x38,0x14,0xdf,0xfe,0x3b,0x28,0x04, +0xfe,0x2c,0x20,0x06,0xe7,0xcd,0x82,0x1c,0x18,0x08,0xcd,0xe6,0x1c,0x18,0x03,0xcd, +0xde,0x1c,0xcd,0xee,0x1b,0xcd,0x99,0x1e,0x78,0xe6,0x3f,0x67,0x69,0x22,0x49,0x5c, +0xcd,0x6e,0x19,0x1e,0x01,0xcd,0x55,0x18,0xd7,0xfd,0xcb,0x02,0x66,0x28,0xf6,0x3a, +0x6b,0x5c,0xfd,0x96,0x4f,0x20,0xee,0xab,0xc8,0xe5,0xd5,0x21,0x6c,0x5c,0xcd,0x0f, +0x19,0xd1,0xe1,0x18,0xe0,0xed,0x4b,0x49,0x5c,0xcd,0x80,0x19,0x16,0x3e,0x28,0x05, +0x11,0x00,0x00,0xcb,0x13,0xfd,0x73,0x2d,0x7e,0xfe,0x40,0xc1,0xd0,0xc5,0xcd,0x28, +0x1a,0x23,0x23,0x23,0xfd,0xcb,0x01,0x86,0x7a,0xa7,0x28,0x05,0xd7,0xfd,0xcb,0x01, +0xc6,0xd5,0xeb,0xfd,0xcb,0x30,0x96,0x21,0x3b,0x5c,0xcb,0x96,0xfd,0xcb,0x37,0x6e, +0x28,0x02,0xcb,0xd6,0x2a,0x5f,0x5c,0xa7,0xed,0x52,0x20,0x05,0x3e,0x3f,0xcd,0xc1, +0x18,0xcd,0xe1,0x18,0xeb,0x7e,0xcd,0xb6,0x18,0x23,0xfe,0x0d,0x28,0x06,0xeb,0xcd, +0x37,0x19,0x18,0xe0,0xd1,0xc9,0xfe,0x0e,0xc0,0x23,0x23,0x23,0x23,0x23,0x23,0x7e, +0xc9,0xd9,0x2a,0x8f,0x5c,0xe5,0xcb,0xbc,0xcb,0xfd,0x22,0x8f,0x5c,0x21,0x91,0x5c, +0x56,0xd5,0x36,0x00,0xcd,0xf4,0x09,0xe1,0xfd,0x74,0x57,0xe1,0x22,0x8f,0x5c,0xd9, +0xc9,0x2a,0x5b,0x5c,0xa7,0xed,0x52,0xc0,0x3a,0x41,0x5c,0xcb,0x07,0x28,0x04,0xc6, +0x43,0x18,0x16,0x21,0x3b,0x5c,0xcb,0x9e,0x3e,0x4b,0xcb,0x56,0x28,0x0b,0xcb,0xde, +0x3c,0xfd,0xcb,0x30,0x5e,0x28,0x02,0x3e,0x43,0xd5,0xcd,0xc1,0x18,0xd1,0xc9,0x5e, +0x23,0x56,0xe5,0xeb,0x23,0xcd,0x6e,0x19,0xcd,0x95,0x16,0xe1,0xfd,0xcb,0x37,0x6e, +0xc0,0x72,0x2b,0x73,0xc9,0x7b,0xa7,0xf8,0x18,0x0d,0xaf,0x09,0x3c,0x38,0xfc,0xed, +0x42,0x3d,0x28,0xf1,0xc3,0xef,0x15,0xcd,0x1b,0x2d,0x30,0x30,0xfe,0x21,0x38,0x2c, +0xfd,0xcb,0x01,0x96,0xfe,0xcb,0x28,0x24,0xfe,0x3a,0x20,0x0e,0xfd,0xcb,0x37,0x6e, +0x20,0x16,0xfd,0xcb,0x30,0x56,0x28,0x14,0x18,0x0e,0xfe,0x22,0x20,0x0a,0xf5,0x3a, +0x6a,0x5c,0xee,0x04,0x32,0x6a,0x5c,0xf1,0xfd,0xcb,0x01,0xd6,0xd7,0xc9,0xe5,0x2a, +0x53,0x5c,0x54,0x5d,0xc1,0xcd,0x80,0x19,0xd0,0xc5,0xcd,0xb8,0x19,0xeb,0x18,0xf4, +0x7e,0xb8,0xc0,0x23,0x7e,0x2b,0xb9,0xc9,0x23,0x23,0x23,0x22,0x5d,0x5c,0x0e,0x00, +0x15,0xc8,0xe7,0xbb,0x20,0x04,0xa7,0xc9,0x23,0x7e,0xcd,0xb6,0x18,0x22,0x5d,0x5c, +0xfe,0x22,0x20,0x01,0x0d,0xfe,0x3a,0x28,0x04,0xfe,0xcb,0x20,0x04,0xcb,0x41,0x28, +0xdf,0xfe,0x0d,0x20,0xe3,0x15,0x37,0xc9,0xe5,0x7e,0xfe,0x40,0x38,0x17,0xcb,0x6f, +0x28,0x14,0x87,0xfa,0xc7,0x19,0x3f,0x01,0x05,0x00,0x30,0x02,0x0e,0x12,0x17,0x23, +0x7e,0x30,0xfb,0x18,0x06,0x23,0x23,0x4e,0x23,0x46,0x23,0x09,0xd1,0xa7,0xed,0x52, +0x44,0x4d,0x19,0xeb,0xc9,0xcd,0xdd,0x19,0xc5,0x78,0x2f,0x47,0x79,0x2f,0x4f,0x03, +0xcd,0x64,0x16,0xeb,0xe1,0x19,0xd5,0xed,0xb0,0xe1,0xc9,0x2a,0x59,0x5c,0x2b,0x22, +0x5d,0x5c,0xe7,0x21,0x92,0x5c,0x22,0x65,0x5c,0xcd,0x3b,0x2d,0xcd,0xa2,0x2d,0x38, +0x04,0x21,0xf0,0xd8,0x09,0xda,0x8a,0x1c,0xc3,0xc5,0x16,0xd5,0xe5,0xaf,0xcb,0x78, +0x20,0x20,0x60,0x69,0x1e,0xff,0x18,0x08,0xd5,0x56,0x23,0x5e,0xe5,0xeb,0x1e,0x20, +0x01,0x18,0xfc,0xcd,0x2a,0x19,0x01,0x9c,0xff,0xcd,0x2a,0x19,0x0e,0xf6,0xcd,0x2a, +0x19,0x7d,0xcd,0xef,0x15,0xe1,0xd1,0xc9,0xb1,0xcb,0xbc,0xbf,0xc4,0xaf,0xb4,0x93, +0x91,0x92,0x95,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x7f,0x81,0x2e,0x6c,0x6e,0x70, +0x48,0x94,0x56,0x3f,0x41,0x2b,0x17,0x1f,0x37,0x77,0x44,0x0f,0x59,0x2b,0x43,0x2d, +0x51,0x3a,0x6d,0x42,0x0d,0x49,0x5c,0x44,0x15,0x5d,0x01,0x3d,0x02,0x06,0x00,0x67, +0x1e,0x06,0xcb,0x05,0xf0,0x1c,0x06,0x00,0xed,0x1e,0x00,0xee,0x1c,0x00,0x23,0x1f, +0x04,0x3d,0x06,0xcc,0x06,0x05,0x03,0x1d,0x04,0x00,0xab,0x1d,0x05,0xcd,0x1f,0x05, +0x89,0x20,0x05,0x02,0x2c,0x05,0xb2,0x1b,0x00,0xb7,0x11,0x03,0xa1,0x1e,0x05,0xf9, +0x17,0x08,0x00,0x80,0x1e,0x03,0x4f,0x1e,0x00,0x5f,0x1e,0x03,0xac,0x1e,0x00,0x6b, +0x0d,0x09,0x00,0xdc,0x22,0x06,0x00,0x3a,0x1f,0x05,0xed,0x1d,0x05,0x27,0x1e,0x03, +0x42,0x1e,0x09,0x05,0x82,0x23,0x00,0xac,0x0e,0x05,0xc9,0x1f,0x05,0xf5,0x17,0x0b, +0x0b,0x0b,0x0b,0x08,0x00,0xf8,0x03,0x09,0x05,0x20,0x23,0x07,0x07,0x07,0x07,0x07, +0x07,0x08,0x00,0x7a,0x1e,0x06,0x00,0x94,0x22,0x05,0x60,0x1f,0x06,0x2c,0x0a,0x00, +0x36,0x17,0x06,0x00,0xe5,0x16,0x0a,0x00,0x93,0x17,0x0a,0x2c,0x0a,0x00,0x93,0x17, +0x0a,0x00,0x93,0x17,0x00,0x93,0x17,0xfd,0xcb,0x01,0xbe,0xcd,0xfb,0x19,0xaf,0x32, +0x47,0x5c,0x3d,0x32,0x3a,0x5c,0x18,0x01,0xe7,0xcd,0xbf,0x16,0xfd,0x34,0x0d,0xfa, +0x8a,0x1c,0xdf,0x06,0x00,0xfe,0x0d,0x28,0x7a,0xfe,0x3a,0x28,0xeb,0x21,0x76,0x1b, +0xe5,0x4f,0xe7,0x79,0xd6,0xce,0xda,0x8a,0x1c,0x4f,0x21,0x48,0x1a,0x09,0x4e,0x09, +0x18,0x03,0x2a,0x74,0x5c,0x7e,0x23,0x22,0x74,0x5c,0x01,0x52,0x1b,0xc5,0x4f,0xfe, +0x20,0x30,0x0c,0x21,0x01,0x1c,0x06,0x00,0x09,0x4e,0x09,0xe5,0xdf,0x05,0xc9,0xdf, +0xb9,0xc2,0x8a,0x1c,0xe7,0xc9,0xcd,0x54,0x1f,0x38,0x02,0xcf,0x14,0xfd,0xcb,0x0a, +0x7e,0x20,0x71,0x2a,0x42,0x5c,0xcb,0x7c,0x28,0x14,0x21,0xfe,0xff,0x22,0x45,0x5c, +0x2a,0x61,0x5c,0x2b,0xed,0x5b,0x59,0x5c,0x1b,0x3a,0x44,0x5c,0x18,0x33,0xcd,0x6e, +0x19,0x3a,0x44,0x5c,0x28,0x19,0xa7,0x20,0x43,0x47,0x7e,0xe6,0xc0,0x78,0x28,0x0f, +0xcf,0xff,0xc1,0xcd,0x30,0x25,0xc8,0x2a,0x55,0x5c,0x3e,0xc0,0xa6,0xc0,0xaf,0xfe, +0x01,0xce,0x00,0x56,0x23,0x5e,0xed,0x53,0x45,0x5c,0x23,0x5e,0x23,0x56,0xeb,0x19, +0x23,0x22,0x55,0x5c,0xeb,0x22,0x5d,0x5c,0x57,0x1e,0x00,0xfd,0x36,0x0a,0xff,0x15, +0xfd,0x72,0x0d,0xca,0x28,0x1b,0x14,0xcd,0x8b,0x19,0x28,0x08,0xcf,0x16,0xcd,0x30, +0x25,0xc0,0xc1,0xc1,0xdf,0xfe,0x0d,0x28,0xba,0xfe,0x3a,0xca,0x28,0x1b,0xc3,0x8a, +0x1c,0x0f,0x1d,0x4b,0x09,0x67,0x0b,0x7b,0x8e,0x71,0xb4,0x81,0xcf,0xcd,0xde,0x1c, +0xbf,0xc1,0xcc,0xee,0x1b,0xeb,0x2a,0x74,0x5c,0x4e,0x23,0x46,0xeb,0xc5,0xc9,0xcd, +0xb2,0x28,0xfd,0x36,0x37,0x00,0x30,0x08,0xfd,0xcb,0x37,0xce,0x20,0x18,0xcf,0x01, +0xcc,0x96,0x29,0xfd,0xcb,0x01,0x76,0x20,0x0d,0xaf,0xcd,0x30,0x25,0xc4,0xf1,0x2b, +0x21,0x71,0x5c,0xb6,0x77,0xeb,0xed,0x43,0x72,0x5c,0x22,0x4d,0x5c,0xc9,0xc1,0xcd, +0x56,0x1c,0xcd,0xee,0x1b,0xc9,0x3a,0x3b,0x5c,0xf5,0xcd,0xfb,0x24,0xf1,0xfd,0x56, +0x01,0xaa,0xe6,0x40,0x20,0x24,0xcb,0x7a,0xc2,0xff,0x2a,0xc9,0xcd,0xb2,0x28,0xf5, +0x79,0xf6,0x9f,0x3c,0x20,0x14,0xf1,0x18,0xa9,0xe7,0xcd,0x82,0x1c,0xfe,0x2c,0x20, +0x09,0xe7,0xcd,0xfb,0x24,0xfd,0xcb,0x01,0x76,0xc0,0xcf,0x0b,0xcd,0xfb,0x24,0xfd, +0xcb,0x01,0x76,0xc8,0x18,0xf4,0xfd,0xcb,0x01,0x7e,0xfd,0xcb,0x02,0x86,0xc4,0x4d, +0x0d,0xf1,0x3a,0x74,0x5c,0xd6,0x13,0xcd,0xfc,0x21,0xcd,0xee,0x1b,0x2a,0x8f,0x5c, +0x22,0x8d,0x5c,0x21,0x91,0x5c,0x7e,0x07,0xae,0xe6,0xaa,0xae,0x77,0xc9,0xcd,0x30, +0x25,0x28,0x13,0xfd,0xcb,0x02,0x86,0xcd,0x4d,0x0d,0x21,0x90,0x5c,0x7e,0xf6,0xf8, +0x77,0xfd,0xcb,0x57,0xb6,0xdf,0xcd,0xe2,0x21,0x18,0x9f,0xc3,0x05,0x06,0xfe,0x0d, +0x28,0x04,0xfe,0x3a,0x20,0x9c,0xcd,0x30,0x25,0xc8,0xef,0xa0,0x38,0xc9,0xcf,0x08, +0xc1,0xcd,0x30,0x25,0x28,0x0a,0xef,0x02,0x38,0xeb,0xcd,0xe9,0x34,0xda,0xb3,0x1b, +0xc3,0x29,0x1b,0xfe,0xcd,0x20,0x09,0xe7,0xcd,0x82,0x1c,0xcd,0xee,0x1b,0x18,0x06, +0xcd,0xee,0x1b,0xef,0xa1,0x38,0xef,0xc0,0x02,0x01,0xe0,0x01,0x38,0xcd,0xff,0x2a, +0x22,0x68,0x5c,0x2b,0x7e,0xcb,0xfe,0x01,0x06,0x00,0x09,0x07,0x38,0x06,0x0e,0x0d, +0xcd,0x55,0x16,0x23,0xe5,0xef,0x02,0x02,0x38,0xe1,0xeb,0x0e,0x0a,0xed,0xb0,0x2a, +0x45,0x5c,0xeb,0x73,0x23,0x72,0xfd,0x56,0x0d,0x14,0x23,0x72,0xcd,0xda,0x1d,0xd0, +0xfd,0x46,0x38,0x2a,0x45,0x5c,0x22,0x42,0x5c,0x3a,0x47,0x5c,0xed,0x44,0x57,0x2a, +0x5d,0x5c,0x1e,0xf3,0xc5,0xed,0x4b,0x55,0x5c,0xcd,0x86,0x1d,0xed,0x43,0x55,0x5c, +0xc1,0x38,0x11,0xe7,0xf6,0x20,0xb8,0x28,0x03,0xe7,0x18,0xe8,0xe7,0x3e,0x01,0x92, +0x32,0x44,0x5c,0xc9,0xcf,0x11,0x7e,0xfe,0x3a,0x28,0x18,0x23,0x7e,0xe6,0xc0,0x37, +0xc0,0x46,0x23,0x4e,0xed,0x43,0x42,0x5c,0x23,0x4e,0x23,0x46,0xe5,0x09,0x44,0x4d, +0xe1,0x16,0x00,0xc5,0xcd,0x8b,0x19,0xc1,0xd0,0x18,0xe0,0xfd,0xcb,0x37,0x4e,0xc2, +0x2e,0x1c,0x2a,0x4d,0x5c,0xcb,0x7e,0x28,0x1f,0x23,0x22,0x68,0x5c,0xef,0xe0,0xe2, +0x0f,0xc0,0x02,0x38,0xcd,0xda,0x1d,0xd8,0x2a,0x68,0x5c,0x11,0x0f,0x00,0x19,0x5e, +0x23,0x56,0x23,0x66,0xeb,0xc3,0x73,0x1e,0xcf,0x00,0xef,0xe1,0xe0,0xe2,0x36,0x00, +0x02,0x01,0x03,0x37,0x00,0x04,0x38,0xa7,0xc9,0x38,0x37,0xc9,0xe7,0xcd,0x1f,0x1c, +0xcd,0x30,0x25,0x28,0x29,0xdf,0x22,0x5f,0x5c,0x2a,0x57,0x5c,0x7e,0xfe,0x2c,0x28, +0x09,0x1e,0xe4,0xcd,0x86,0x1d,0x30,0x02,0xcf,0x0d,0xcd,0x77,0x00,0xcd,0x56,0x1c, +0xdf,0x22,0x57,0x5c,0x2a,0x5f,0x5c,0xfd,0x36,0x26,0x00,0xcd,0x78,0x00,0xdf,0xfe, +0x2c,0x28,0xc9,0xcd,0xee,0x1b,0xc9,0xcd,0x30,0x25,0x20,0x0b,0xcd,0xfb,0x24,0xfe, +0x2c,0xc4,0xee,0x1b,0xe7,0x18,0xf5,0x3e,0xe4,0x47,0xed,0xb9,0x11,0x00,0x02,0xc3, +0x8b,0x19,0xcd,0x99,0x1e,0x60,0x69,0xcd,0x6e,0x19,0x2b,0x22,0x57,0x5c,0xc9,0xcd, +0x99,0x1e,0x78,0xb1,0x20,0x04,0xed,0x4b,0x78,0x5c,0xed,0x43,0x76,0x5c,0xc9,0x2a, +0x6e,0x5c,0xfd,0x56,0x36,0x18,0x0c,0xcd,0x99,0x1e,0x60,0x69,0x16,0x00,0x7c,0xfe, +0xf0,0x30,0x2c,0x22,0x42,0x5c,0xfd,0x72,0x0a,0xc9,0xcd,0x85,0x1e,0xed,0x79,0xc9, +0xcd,0x85,0x1e,0x02,0xc9,0xcd,0xd5,0x2d,0x38,0x15,0x28,0x02,0xed,0x44,0xf5,0xcd, +0x99,0x1e,0xf1,0xc9,0xcd,0xd5,0x2d,0x18,0x03,0xcd,0xa2,0x2d,0x38,0x01,0xc8,0xcf, +0x0a,0xcd,0x67,0x1e,0x01,0x00,0x00,0xcd,0x45,0x1e,0x18,0x03,0xcd,0x99,0x1e,0x78, +0xb1,0x20,0x04,0xed,0x4b,0xb2,0x5c,0xc5,0xed,0x5b,0x4b,0x5c,0x2a,0x59,0x5c,0x2b, +0xcd,0xe5,0x19,0xcd,0x6b,0x0d,0x2a,0x65,0x5c,0x11,0x32,0x00,0x19,0xd1,0xed,0x52, +0x30,0x08,0x2a,0xb4,0x5c,0xa7,0xed,0x52,0x30,0x02,0xcf,0x15,0xeb,0x22,0xb2,0x5c, +0xd1,0xc1,0x36,0x3e,0x2b,0xf9,0xc5,0xed,0x73,0x3d,0x5c,0xeb,0xe9,0xd1,0xfd,0x66, +0x0d,0x24,0xe3,0x33,0xed,0x4b,0x45,0x5c,0xc5,0xe5,0xed,0x73,0x3d,0x5c,0xd5,0xcd, +0x67,0x1e,0x01,0x14,0x00,0x2a,0x65,0x5c,0x09,0x38,0x0a,0xeb,0x21,0x50,0x00,0x19, +0x38,0x03,0xed,0x72,0xd8,0x2e,0x03,0xc3,0x55,0x00,0x01,0x00,0x00,0xcd,0x05,0x1f, +0x44,0x4d,0xc9,0xc1,0xe1,0xd1,0x7a,0xfe,0x3e,0x28,0x0b,0x3b,0xe3,0xeb,0xed,0x73, +0x3d,0x5c,0xc5,0xc3,0x73,0x1e,0xd5,0xe5,0xcf,0x06,0xcd,0x99,0x1e,0x76,0x0b,0x78, +0xb1,0x28,0x0c,0x78,0xa1,0x3c,0x20,0x01,0x03,0xfd,0xcb,0x01,0x6e,0x28,0xee,0xfd, +0xcb,0x01,0xae,0xc9,0x3e,0x7f,0xdb,0xfe,0x1f,0xd8,0x3e,0xfe,0xdb,0xfe,0x1f,0xc9, +0xcd,0x30,0x25,0x28,0x05,0x3e,0xce,0xc3,0x39,0x1e,0xfd,0xcb,0x01,0xf6,0xcd,0x8d, +0x2c,0x30,0x16,0xe7,0xfe,0x24,0x20,0x05,0xfd,0xcb,0x01,0xb6,0xe7,0xfe,0x28,0x20, +0x3c,0xe7,0xfe,0x29,0x28,0x20,0xcd,0x8d,0x2c,0xd2,0x8a,0x1c,0xeb,0xe7,0xfe,0x24, +0x20,0x02,0xeb,0xe7,0xeb,0x01,0x06,0x00,0xcd,0x55,0x16,0x23,0x23,0x36,0x0e,0xfe, +0x2c,0x20,0x03,0xe7,0x18,0xe0,0xfe,0x29,0x20,0x13,0xe7,0xfe,0x3d,0x20,0x0e,0xe7, +0x3a,0x3b,0x5c,0xf5,0xcd,0xfb,0x24,0xf1,0xfd,0xae,0x01,0xe6,0x40,0xc2,0x8a,0x1c, +0xcd,0xee,0x1b,0xcd,0x30,0x25,0xe1,0xc8,0xe9,0x3e,0x03,0x18,0x02,0x3e,0x02,0xcd, +0x30,0x25,0xc4,0x01,0x16,0xcd,0x4d,0x0d,0xcd,0xdf,0x1f,0xcd,0xee,0x1b,0xc9,0xdf, +0xcd,0x45,0x20,0x28,0x0d,0xcd,0x4e,0x20,0x28,0xfb,0xcd,0xfc,0x1f,0xcd,0x4e,0x20, +0x28,0xf3,0xfe,0x29,0xc8,0xcd,0xc3,0x1f,0x3e,0x0d,0xd7,0xc9,0xdf,0xfe,0xac,0x20, +0x0d,0xcd,0x79,0x1c,0xcd,0xc3,0x1f,0xcd,0x07,0x23,0x3e,0x16,0x18,0x10,0xfe,0xad, +0x20,0x12,0xe7,0xcd,0x82,0x1c,0xcd,0xc3,0x1f,0xcd,0x99,0x1e,0x3e,0x17,0xd7,0x79, +0xd7,0x78,0xd7,0xc9,0xcd,0xf2,0x21,0xd0,0xcd,0x70,0x20,0xd0,0xcd,0xfb,0x24,0xcd, +0xc3,0x1f,0xfd,0xcb,0x01,0x76,0xcc,0xf1,0x2b,0xc2,0xe3,0x2d,0x78,0xb1,0x0b,0xc8, +0x1a,0x13,0xd7,0x18,0xf7,0xfe,0x29,0xc8,0xfe,0x0d,0xc8,0xfe,0x3a,0xc9,0xdf,0xfe, +0x3b,0x28,0x14,0xfe,0x2c,0x20,0x0a,0xcd,0x30,0x25,0x28,0x0b,0x3e,0x06,0xd7,0x18, +0x06,0xfe,0x27,0xc0,0xcd,0xf5,0x1f,0xe7,0xcd,0x45,0x20,0x20,0x01,0xc1,0xbf,0xc9, +0xfe,0x23,0x37,0xc0,0xe7,0xcd,0x82,0x1c,0xa7,0xcd,0xc3,0x1f,0xcd,0x94,0x1e,0xfe, +0x10,0xd2,0x0e,0x16,0xcd,0x01,0x16,0xa7,0xc9,0xcd,0x30,0x25,0x28,0x08,0x3e,0x01, +0xcd,0x01,0x16,0xcd,0x6e,0x0d,0xfd,0x36,0x02,0x01,0xcd,0xc1,0x20,0xcd,0xee,0x1b, +0xed,0x4b,0x88,0x5c,0x3a,0x6b,0x5c,0xb8,0x38,0x03,0x0e,0x21,0x47,0xed,0x43,0x88, +0x5c,0x3e,0x19,0x90,0x32,0x8c,0x5c,0xfd,0xcb,0x02,0x86,0xcd,0xd9,0x0d,0xc3,0x6e, +0x0d,0xcd,0x4e,0x20,0x28,0xfb,0xfe,0x28,0x20,0x0e,0xe7,0xcd,0xdf,0x1f,0xdf,0xfe, +0x29,0xc2,0x8a,0x1c,0xe7,0xc3,0xb2,0x21,0xfe,0xca,0x20,0x11,0xe7,0xcd,0x1f,0x1c, +0xfd,0xcb,0x37,0xfe,0xfd,0xcb,0x01,0x76,0xc2,0x8a,0x1c,0x18,0x0d,0xcd,0x8d,0x2c, +0xd2,0xaf,0x21,0xcd,0x1f,0x1c,0xfd,0xcb,0x37,0xbe,0xcd,0x30,0x25,0xca,0xb2,0x21, +0xcd,0xbf,0x16,0x21,0x71,0x5c,0xcb,0xb6,0xcb,0xee,0x01,0x01,0x00,0xcb,0x7e,0x20, +0x0b,0x3a,0x3b,0x5c,0xe6,0x40,0x20,0x02,0x0e,0x03,0xb6,0x77,0xf7,0x36,0x0d,0x79, +0x0f,0x0f,0x30,0x05,0x3e,0x22,0x12,0x2b,0x77,0x22,0x5b,0x5c,0xfd,0xcb,0x37,0x7e, +0x20,0x2c,0x2a,0x5d,0x5c,0xe5,0x2a,0x3d,0x5c,0xe5,0x21,0x3a,0x21,0xe5,0xfd,0xcb, +0x30,0x66,0x28,0x04,0xed,0x73,0x3d,0x5c,0x2a,0x61,0x5c,0xcd,0xa7,0x11,0xfd,0x36, +0x00,0xff,0xcd,0x2c,0x0f,0xfd,0xcb,0x01,0xbe,0xcd,0xb9,0x21,0x18,0x03,0xcd,0x2c, +0x0f,0xfd,0x36,0x22,0x00,0xcd,0xd6,0x21,0x20,0x0a,0xcd,0x1d,0x11,0xed,0x4b,0x82, +0x5c,0xcd,0xd9,0x0d,0x21,0x71,0x5c,0xcb,0xae,0xcb,0x7e,0xcb,0xbe,0x20,0x1c,0xe1, +0xe1,0x22,0x3d,0x5c,0xe1,0x22,0x5f,0x5c,0xfd,0xcb,0x01,0xfe,0xcd,0xb9,0x21,0x2a, +0x5f,0x5c,0xfd,0x36,0x26,0x00,0x22,0x5d,0x5c,0x18,0x17,0x2a,0x63,0x5c,0xed,0x5b, +0x61,0x5c,0x37,0xed,0x52,0x44,0x4d,0xcd,0xb2,0x2a,0xcd,0xff,0x2a,0x18,0x03,0xcd, +0xfc,0x1f,0xcd,0x4e,0x20,0xca,0xc1,0x20,0xc9,0x2a,0x61,0x5c,0x22,0x5d,0x5c,0xdf, +0xfe,0xe2,0x28,0x0c,0x3a,0x71,0x5c,0xcd,0x59,0x1c,0xdf,0xfe,0x0d,0xc8,0xcf,0x0b, +0xcd,0x30,0x25,0xc8,0xcf,0x10,0x2a,0x51,0x5c,0x23,0x23,0x23,0x23,0x7e,0xfe,0x4b, +0xc9,0xe7,0xcd,0xf2,0x21,0xd8,0xdf,0xfe,0x2c,0x28,0xf6,0xfe,0x3b,0x28,0xf2,0xc3, +0x8a,0x1c,0xfe,0xd9,0xd8,0xfe,0xdf,0x3f,0xd8,0xf5,0xe7,0xf1,0xd6,0xc9,0xf5,0xcd, +0x82,0x1c,0xf1,0xa7,0xcd,0xc3,0x1f,0xf5,0xcd,0x94,0x1e,0x57,0xf1,0xd7,0x7a,0xd7, +0xc9,0xd6,0x11,0xce,0x00,0x28,0x1d,0xd6,0x02,0xce,0x00,0x28,0x56,0xfe,0x01,0x7a, +0x06,0x01,0x20,0x04,0x07,0x07,0x06,0x04,0x4f,0x7a,0xfe,0x02,0x30,0x16,0x79,0x21, +0x91,0x5c,0x18,0x38,0x7a,0x06,0x07,0x38,0x05,0x07,0x07,0x07,0x06,0x38,0x4f,0x7a, +0xfe,0x0a,0x38,0x02,0xcf,0x13,0x21,0x8f,0x5c,0xfe,0x08,0x38,0x0b,0x7e,0x28,0x07, +0xb0,0x2f,0xe6,0x24,0x28,0x01,0x78,0x4f,0x79,0xcd,0x6c,0x22,0x3e,0x07,0xba,0x9f, +0xcd,0x6c,0x22,0x07,0x07,0xe6,0x50,0x47,0x3e,0x08,0xba,0x9f,0xae,0xa0,0xae,0x77, +0x23,0x78,0xc9,0x9f,0x7a,0x0f,0x06,0x80,0x20,0x03,0x0f,0x06,0x40,0x4f,0x7a,0xfe, +0x08,0x28,0x04,0xfe,0x02,0x30,0xbd,0x79,0x21,0x8f,0x5c,0xcd,0x6c,0x22,0x79,0x0f, +0x0f,0x0f,0x18,0xd8,0xcd,0x94,0x1e,0xfe,0x08,0x30,0xa9,0xd3,0xfe,0x07,0x07,0x07, +0xcb,0x6f,0x20,0x02,0xee,0x07,0x32,0x48,0x5c,0xc9,0x3e,0xaf,0x90,0xda,0xf9,0x24, +0x47,0xa7,0x1f,0x37,0x1f,0xa7,0x1f,0xa8,0xe6,0xf8,0xa8,0x67,0x79,0x07,0x07,0x07, +0xa8,0xe6,0xc7,0xa8,0x07,0x07,0x6f,0x79,0xe6,0x07,0xc9,0xcd,0x07,0x23,0xcd,0xaa, +0x22,0x47,0x04,0x7e,0x07,0x10,0xfd,0xe6,0x01,0xc3,0x28,0x2d,0xcd,0x07,0x23,0xcd, +0xe5,0x22,0xc3,0x4d,0x0d,0xed,0x43,0x7d,0x5c,0xcd,0xaa,0x22,0x47,0x04,0x3e,0xfe, +0x0f,0x10,0xfd,0x47,0x7e,0xfd,0x4e,0x57,0xcb,0x41,0x20,0x01,0xa0,0xcb,0x51,0x20, +0x02,0xa8,0x2f,0x77,0xc3,0xdb,0x0b,0xcd,0x14,0x23,0x47,0xc5,0xcd,0x14,0x23,0x59, +0xc1,0x51,0x4f,0xc9,0xcd,0xd5,0x2d,0xda,0xf9,0x24,0x0e,0x01,0xc8,0x0e,0xff,0xc9, +0xdf,0xfe,0x2c,0xc2,0x8a,0x1c,0xe7,0xcd,0x82,0x1c,0xcd,0xee,0x1b,0xef,0x2a,0x3d, +0x38,0x7e,0xfe,0x81,0x30,0x05,0xef,0x02,0x38,0x18,0xa1,0xef,0xa3,0x38,0x36,0x83, +0xef,0xc5,0x02,0x38,0xcd,0x7d,0x24,0xc5,0xef,0x31,0xe1,0x04,0x38,0x7e,0xfe,0x80, +0x30,0x08,0xef,0x02,0x02,0x38,0xc1,0xc3,0xdc,0x22,0xef,0xc2,0x01,0xc0,0x02,0x03, +0x01,0xe0,0x0f,0xc0,0x01,0x31,0xe0,0x01,0x31,0xe0,0xa0,0xc1,0x02,0x38,0xfd,0x34, +0x62,0xcd,0x94,0x1e,0x6f,0xe5,0xcd,0x94,0x1e,0xe1,0x67,0x22,0x7d,0x5c,0xc1,0xc3, +0x20,0x24,0xdf,0xfe,0x2c,0x28,0x06,0xcd,0xee,0x1b,0xc3,0x77,0x24,0xe7,0xcd,0x82, +0x1c,0xcd,0xee,0x1b,0xef,0xc5,0xa2,0x04,0x1f,0x31,0x30,0x30,0x00,0x06,0x02,0x38, +0xc3,0x77,0x24,0xc0,0x02,0xc1,0x02,0x31,0x2a,0xe1,0x01,0xe1,0x2a,0x0f,0xe0,0x05, +0x2a,0xe0,0x01,0x3d,0x38,0x7e,0xfe,0x81,0x30,0x07,0xef,0x02,0x02,0x38,0xc3,0x77, +0x24,0xcd,0x7d,0x24,0xc5,0xef,0x02,0xe1,0x01,0x05,0xc1,0x02,0x01,0x31,0xe1,0x04, +0xc2,0x02,0x01,0x31,0xe1,0x04,0xe2,0xe5,0xe0,0x03,0xa2,0x04,0x31,0x1f,0xc5,0x02, +0x20,0xc0,0x02,0xc2,0x02,0xc1,0xe5,0x04,0xe0,0xe2,0x04,0x0f,0xe1,0x01,0xc1,0x02, +0xe0,0x04,0xe2,0xe5,0x04,0x03,0xc2,0x2a,0xe1,0x2a,0x0f,0x02,0x38,0x1a,0xfe,0x81, +0xc1,0xda,0x77,0x24,0xc5,0xef,0x01,0x38,0x3a,0x7d,0x5c,0xcd,0x28,0x2d,0xef,0xc0, +0x0f,0x01,0x38,0x3a,0x7e,0x5c,0xcd,0x28,0x2d,0xef,0xc5,0x0f,0xe0,0xe5,0x38,0xc1, +0x05,0x28,0x3c,0x18,0x14,0xef,0xe1,0x31,0xe3,0x04,0xe2,0xe4,0x04,0x03,0xc1,0x02, +0xe4,0x04,0xe2,0xe3,0x04,0x0f,0xc2,0x02,0x38,0xc5,0xef,0xc0,0x02,0xe1,0x0f,0x31, +0x38,0x3a,0x7d,0x5c,0xcd,0x28,0x2d,0xef,0x03,0xe0,0xe2,0x0f,0xc0,0x01,0xe0,0x38, +0x3a,0x7e,0x5c,0xcd,0x28,0x2d,0xef,0x03,0x38,0xcd,0xb7,0x24,0xc1,0x10,0xc6,0xef, +0x02,0x02,0x01,0x38,0x3a,0x7d,0x5c,0xcd,0x28,0x2d,0xef,0x03,0x01,0x38,0x3a,0x7e, +0x5c,0xcd,0x28,0x2d,0xef,0x03,0x38,0xcd,0xb7,0x24,0xc3,0x4d,0x0d,0xef,0x31,0x28, +0x34,0x32,0x00,0x01,0x05,0xe5,0x01,0x05,0x2a,0x38,0xcd,0xd5,0x2d,0x38,0x06,0xe6, +0xfc,0xc6,0x04,0x30,0x02,0x3e,0xfc,0xf5,0xcd,0x28,0x2d,0xef,0xe5,0x01,0x05,0x31, +0x1f,0xc4,0x02,0x31,0xa2,0x04,0x1f,0xc1,0x01,0xc0,0x02,0x31,0x04,0x31,0x0f,0xa1, +0x03,0x1b,0xc3,0x02,0x38,0xc1,0xc9,0xcd,0x07,0x23,0x79,0xb8,0x30,0x06,0x69,0xd5, +0xaf,0x5f,0x18,0x07,0xb1,0xc8,0x68,0x41,0xd5,0x16,0x00,0x60,0x78,0x1f,0x85,0x38, +0x03,0xbc,0x38,0x07,0x94,0x4f,0xd9,0xc1,0xc5,0x18,0x04,0x4f,0xd5,0xd9,0xc1,0x2a, +0x7d,0x5c,0x78,0x84,0x47,0x79,0x3c,0x85,0x38,0x0d,0x28,0x0d,0x3d,0x4f,0xcd,0xe5, +0x22,0xd9,0x79,0x10,0xd9,0xd1,0xc9,0x28,0xf3,0xcf,0x0a,0xdf,0x06,0x00,0xc5,0x4f, +0x21,0x96,0x25,0xcd,0xdc,0x16,0x79,0xd2,0x84,0x26,0x06,0x00,0x4e,0x09,0xe9,0xcd, +0x74,0x00,0x03,0xfe,0x0d,0xca,0x8a,0x1c,0xfe,0x22,0x20,0xf3,0xcd,0x74,0x00,0xfe, +0x22,0xc9,0xe7,0xfe,0x28,0x20,0x06,0xcd,0x79,0x1c,0xdf,0xfe,0x29,0xc2,0x8a,0x1c, +0xfd,0xcb,0x01,0x7e,0xc9,0xcd,0x07,0x23,0x2a,0x36,0x5c,0x11,0x00,0x01,0x19,0x79, +0x0f,0x0f,0x0f,0xe6,0xe0,0xa8,0x5f,0x79,0xe6,0x18,0xee,0x40,0x57,0x06,0x60,0xc5, +0xd5,0xe5,0x1a,0xae,0x28,0x04,0x3c,0x20,0x1a,0x3d,0x4f,0x06,0x07,0x14,0x23,0x1a, +0xae,0xa9,0x20,0x0f,0x10,0xf7,0xc1,0xc1,0xc1,0x3e,0x80,0x90,0x01,0x01,0x00,0xf7, +0x12,0x18,0x0a,0xe1,0x11,0x08,0x00,0x19,0xd1,0xc1,0x10,0xd3,0x48,0xc3,0xb2,0x2a, +0xcd,0x07,0x23,0x79,0x0f,0x0f,0x0f,0x4f,0xe6,0xe0,0xa8,0x6f,0x79,0xe6,0x03,0xee, +0x58,0x67,0x7e,0xc3,0x28,0x2d,0x22,0x1c,0x28,0x4f,0x2e,0xf2,0x2b,0x12,0xa8,0x56, +0xa5,0x57,0xa7,0x84,0xa6,0x8f,0xc4,0xe6,0xaa,0xbf,0xab,0xc7,0xa9,0xce,0x00,0xe7, +0xc3,0xff,0x24,0xdf,0x23,0xe5,0x01,0x00,0x00,0xcd,0x0f,0x25,0x20,0x1b,0xcd,0x0f, +0x25,0x28,0xfb,0xcd,0x30,0x25,0x28,0x11,0xf7,0xe1,0xd5,0x7e,0x23,0x12,0x13,0xfe, +0x22,0x20,0xf8,0x7e,0x23,0xfe,0x22,0x28,0xf2,0x0b,0xd1,0x21,0x3b,0x5c,0xcb,0xb6, +0xcb,0x7e,0xc4,0xb2,0x2a,0xc3,0x12,0x27,0xe7,0xcd,0xfb,0x24,0xfe,0x29,0xc2,0x8a, +0x1c,0xe7,0xc3,0x12,0x27,0xc3,0xbd,0x27,0xcd,0x30,0x25,0x28,0x28,0xed,0x4b,0x76, +0x5c,0xcd,0x2b,0x2d,0xef,0xa1,0x0f,0x34,0x37,0x16,0x04,0x34,0x80,0x41,0x00,0x00, +0x80,0x32,0x02,0xa1,0x03,0x31,0x38,0xcd,0xa2,0x2d,0xed,0x43,0x76,0x5c,0x7e,0xa7, +0x28,0x03,0xd6,0x10,0x77,0x18,0x09,0xcd,0x30,0x25,0x28,0x04,0xef,0xa3,0x38,0x34, +0xe7,0xc3,0xc3,0x26,0x01,0x5a,0x10,0xe7,0xfe,0x23,0xca,0x0d,0x27,0x21,0x3b,0x5c, +0xcb,0xb6,0xcb,0x7e,0x28,0x1f,0xcd,0x8e,0x02,0x0e,0x00,0x20,0x13,0xcd,0x1e,0x03, +0x30,0x0e,0x15,0x5f,0xcd,0x33,0x03,0xf5,0x01,0x01,0x00,0xf7,0xf1,0x12,0x0e,0x01, +0x06,0x00,0xcd,0xb2,0x2a,0xc3,0x12,0x27,0xcd,0x22,0x25,0xc4,0x35,0x25,0xe7,0xc3, +0xdb,0x25,0xcd,0x22,0x25,0xc4,0x80,0x25,0xe7,0x18,0x48,0xcd,0x22,0x25,0xc4,0xcb, +0x22,0xe7,0x18,0x3f,0xcd,0x88,0x2c,0x30,0x56,0xfe,0x41,0x30,0x3c,0xcd,0x30,0x25, +0x20,0x23,0xcd,0x9b,0x2c,0xdf,0x01,0x06,0x00,0xcd,0x55,0x16,0x23,0x36,0x0e,0x23, +0xeb,0x2a,0x65,0x5c,0x0e,0x05,0xa7,0xed,0x42,0x22,0x65,0x5c,0xed,0xb0,0xeb,0x2b, +0xcd,0x77,0x00,0x18,0x0e,0xdf,0x23,0x7e,0xfe,0x0e,0x20,0xfa,0x23,0xcd,0xb4,0x33, +0x22,0x5d,0x5c,0xfd,0xcb,0x01,0xf6,0x18,0x14,0xcd,0xb2,0x28,0xda,0x2e,0x1c,0xcc, +0x96,0x29,0x3a,0x3b,0x5c,0xfe,0xc0,0x38,0x04,0x23,0xcd,0xb4,0x33,0x18,0x33,0x01, +0xdb,0x09,0xfe,0x2d,0x28,0x27,0x01,0x18,0x10,0xfe,0xae,0x28,0x20,0xd6,0xaf,0xda, +0x8a,0x1c,0x01,0xf0,0x04,0xfe,0x14,0x28,0x14,0xd2,0x8a,0x1c,0x06,0x10,0xc6,0xdc, +0x4f,0xfe,0xdf,0x30,0x02,0xcb,0xb1,0xfe,0xee,0x38,0x02,0xcb,0xb9,0xc5,0xe7,0xc3, +0xff,0x24,0xdf,0xfe,0x28,0x20,0x0c,0xfd,0xcb,0x01,0x76,0x20,0x17,0xcd,0x52,0x2a, +0xe7,0x18,0xf0,0x06,0x00,0x4f,0x21,0x95,0x27,0xcd,0xdc,0x16,0x30,0x06,0x4e,0x21, +0xed,0x26,0x09,0x46,0xd1,0x7a,0xb8,0x38,0x3a,0xa7,0xca,0x18,0x00,0xc5,0x21,0x3b, +0x5c,0x7b,0xfe,0xed,0x20,0x06,0xcb,0x76,0x20,0x02,0x1e,0x99,0xd5,0xcd,0x30,0x25, +0x28,0x09,0x7b,0xe6,0x3f,0x47,0xef,0x3b,0x38,0x18,0x09,0x7b,0xfd,0xae,0x01,0xe6, +0x40,0xc2,0x8a,0x1c,0xd1,0x21,0x3b,0x5c,0xcb,0xf6,0xcb,0x7b,0x20,0x02,0xcb,0xb6, +0xc1,0x18,0xc1,0xd5,0x79,0xfd,0xcb,0x01,0x76,0x20,0x15,0xe6,0x3f,0xc6,0x08,0x4f, +0xfe,0x10,0x20,0x04,0xcb,0xf1,0x18,0x08,0x38,0xd7,0xfe,0x17,0x28,0x02,0xcb,0xf9, +0xc5,0xe7,0xc3,0xff,0x24,0x2b,0xcf,0x2d,0xc3,0x2a,0xc4,0x2f,0xc5,0x5e,0xc6,0x3d, +0xce,0x3e,0xcc,0x3c,0xcd,0xc7,0xc9,0xc8,0xca,0xc9,0xcb,0xc5,0xc7,0xc6,0xc8,0x00, +0x06,0x08,0x08,0x0a,0x02,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0xcd,0x30,0x25, +0x20,0x35,0xe7,0xcd,0x8d,0x2c,0xd2,0x8a,0x1c,0xe7,0xfe,0x24,0xf5,0x20,0x01,0xe7, +0xfe,0x28,0x20,0x12,0xe7,0xfe,0x29,0x28,0x10,0xcd,0xfb,0x24,0xdf,0xfe,0x2c,0x20, +0x03,0xe7,0x18,0xf5,0xfe,0x29,0xc2,0x8a,0x1c,0xe7,0x21,0x3b,0x5c,0xcb,0xb6,0xf1, +0x28,0x02,0xcb,0xf6,0xc3,0x12,0x27,0xe7,0xe6,0xdf,0x47,0xe7,0xd6,0x24,0x4f,0x20, +0x01,0xe7,0xe7,0xe5,0x2a,0x53,0x5c,0x2b,0x11,0xce,0x00,0xc5,0xcd,0x86,0x1d,0xc1, +0x30,0x02,0xcf,0x18,0xe5,0xcd,0xab,0x28,0xe6,0xdf,0xb8,0x20,0x08,0xcd,0xab,0x28, +0xd6,0x24,0xb9,0x28,0x0c,0xe1,0x2b,0x11,0x00,0x02,0xc5,0xcd,0x8b,0x19,0xc1,0x18, +0xd7,0xa7,0xcc,0xab,0x28,0xd1,0xd1,0xed,0x53,0x5d,0x5c,0xcd,0xab,0x28,0xe5,0xfe, +0x29,0x28,0x42,0x23,0x7e,0xfe,0x0e,0x16,0x40,0x28,0x07,0x2b,0xcd,0xab,0x28,0x23, +0x16,0x00,0x23,0xe5,0xd5,0xcd,0xfb,0x24,0xf1,0xfd,0xae,0x01,0xe6,0x40,0x20,0x2b, +0xe1,0xeb,0x2a,0x65,0x5c,0x01,0x05,0x00,0xed,0x42,0x22,0x65,0x5c,0xed,0xb0,0xeb, +0x2b,0xcd,0xab,0x28,0xfe,0x29,0x28,0x0d,0xe5,0xdf,0xfe,0x2c,0x20,0x0d,0xe7,0xe1, +0xcd,0xab,0x28,0x18,0xbe,0xe5,0xdf,0xfe,0x29,0x28,0x02,0xcf,0x19,0xd1,0xeb,0x22, +0x5d,0x5c,0x2a,0x0b,0x5c,0xe3,0x22,0x0b,0x5c,0xd5,0xe7,0xe7,0xcd,0xfb,0x24,0xe1, +0x22,0x5d,0x5c,0xe1,0x22,0x0b,0x5c,0xe7,0xc3,0x12,0x27,0x23,0x7e,0xfe,0x21,0x38, +0xfa,0xc9,0xfd,0xcb,0x01,0xf6,0xdf,0xcd,0x8d,0x2c,0xd2,0x8a,0x1c,0xe5,0xe6,0x1f, +0x4f,0xe7,0xe5,0xfe,0x28,0x28,0x28,0xcb,0xf1,0xfe,0x24,0x28,0x11,0xcb,0xe9,0xcd, +0x88,0x2c,0x30,0x0f,0xcd,0x88,0x2c,0x30,0x16,0xcb,0xb1,0xe7,0x18,0xf6,0xe7,0xfd, +0xcb,0x01,0xb6,0x3a,0x0c,0x5c,0xa7,0x28,0x06,0xcd,0x30,0x25,0xc2,0x51,0x29,0x41, +0xcd,0x30,0x25,0x20,0x08,0x79,0xe6,0xe0,0xcb,0xff,0x4f,0x18,0x37,0x2a,0x4b,0x5c, +0x7e,0xe6,0x7f,0x28,0x2d,0xb9,0x20,0x22,0x17,0x87,0xf2,0x3f,0x29,0x38,0x30,0xd1, +0xd5,0xe5,0x23,0x1a,0x13,0xfe,0x20,0x28,0xfa,0xf6,0x20,0xbe,0x28,0xf4,0xf6,0x80, +0xbe,0x20,0x06,0x1a,0xcd,0x88,0x2c,0x30,0x15,0xe1,0xc5,0xcd,0xb8,0x19,0xeb,0xc1, +0x18,0xce,0xcb,0xf8,0xd1,0xdf,0xfe,0x28,0x28,0x09,0xcb,0xe8,0x18,0x0d,0xd1,0xd1, +0xd1,0xe5,0xdf,0xcd,0x88,0x2c,0x30,0x03,0xe7,0x18,0xf8,0xe1,0xcb,0x10,0xcb,0x70, +0xc9,0x2a,0x0b,0x5c,0x7e,0xfe,0x29,0xca,0xef,0x28,0x7e,0xf6,0x60,0x47,0x23,0x7e, +0xfe,0x0e,0x28,0x07,0x2b,0xcd,0xab,0x28,0x23,0xcb,0xa8,0x78,0xb9,0x28,0x12,0x23, +0x23,0x23,0x23,0x23,0xcd,0xab,0x28,0xfe,0x29,0xca,0xef,0x28,0xcd,0xab,0x28,0x18, +0xd9,0xcb,0x69,0x20,0x0c,0x23,0xed,0x5b,0x65,0x5c,0xcd,0xc0,0x33,0xeb,0x22,0x65, +0x5c,0xd1,0xd1,0xaf,0x3c,0xc9,0xaf,0x47,0xcb,0x79,0x20,0x4b,0xcb,0x7e,0x20,0x0e, +0x3c,0x23,0x4e,0x23,0x46,0x23,0xeb,0xcd,0xb2,0x2a,0xdf,0xc3,0x49,0x2a,0x23,0x23, +0x23,0x46,0xcb,0x71,0x28,0x0a,0x05,0x28,0xe8,0xeb,0xdf,0xfe,0x28,0x20,0x61,0xeb, +0xeb,0x18,0x24,0xe5,0xdf,0xe1,0xfe,0x2c,0x28,0x20,0xcb,0x79,0x28,0x52,0xcb,0x71, +0x20,0x06,0xfe,0x29,0x20,0x3c,0xe7,0xc9,0xfe,0x29,0x28,0x6c,0xfe,0xcc,0x20,0x32, +0xdf,0x2b,0x22,0x5d,0x5c,0x18,0x5e,0x21,0x00,0x00,0xe5,0xe7,0xe1,0x79,0xfe,0xc0, +0x20,0x09,0xdf,0xfe,0x29,0x28,0x51,0xfe,0xcc,0x28,0xe5,0xc5,0xe5,0xcd,0xee,0x2a, +0xe3,0xeb,0xcd,0xcc,0x2a,0x38,0x19,0x0b,0xcd,0xf4,0x2a,0x09,0xd1,0xc1,0x10,0xb3, +0xcb,0x79,0x20,0x66,0xe5,0xcb,0x71,0x20,0x13,0x42,0x4b,0xdf,0xfe,0x29,0x28,0x02, +0xcf,0x02,0xe7,0xe1,0x11,0x05,0x00,0xcd,0xf4,0x2a,0x09,0xc9,0xcd,0xee,0x2a,0xe3, +0xcd,0xf4,0x2a,0xc1,0x09,0x23,0x42,0x4b,0xeb,0xcd,0xb1,0x2a,0xdf,0xfe,0x29,0x28, +0x07,0xfe,0x2c,0x20,0xdb,0xcd,0x52,0x2a,0xe7,0xfe,0x28,0x28,0xf8,0xfd,0xcb,0x01, +0xb6,0xc9,0xcd,0x30,0x25,0xc4,0xf1,0x2b,0xe7,0xfe,0x29,0x28,0x50,0xd5,0xaf,0xf5, +0xc5,0x11,0x01,0x00,0xdf,0xe1,0xfe,0xcc,0x28,0x17,0xf1,0xcd,0xcd,0x2a,0xf5,0x50, +0x59,0xe5,0xdf,0xe1,0xfe,0xcc,0x28,0x09,0xfe,0x29,0xc2,0x8a,0x1c,0x62,0x6b,0x18, +0x13,0xe5,0xe7,0xe1,0xfe,0x29,0x28,0x0c,0xf1,0xcd,0xcd,0x2a,0xf5,0xdf,0x60,0x69, +0xfe,0x29,0x20,0xe6,0xf1,0xe3,0x19,0x2b,0xe3,0xa7,0xed,0x52,0x01,0x00,0x00,0x38, +0x07,0x23,0xa7,0xfa,0x20,0x2a,0x44,0x4d,0xd1,0xfd,0xcb,0x01,0xb6,0xcd,0x30,0x25, +0xc8,0xaf,0xfd,0xcb,0x01,0xb6,0xc5,0xcd,0xa9,0x33,0xc1,0x2a,0x65,0x5c,0x77,0x23, +0x73,0x23,0x72,0x23,0x71,0x23,0x70,0x23,0x22,0x65,0x5c,0xc9,0xaf,0xd5,0xe5,0xf5, +0xcd,0x82,0x1c,0xf1,0xcd,0x30,0x25,0x28,0x12,0xf5,0xcd,0x99,0x1e,0xd1,0x78,0xb1, +0x37,0x28,0x05,0xe1,0xe5,0xa7,0xed,0x42,0x7a,0xde,0x00,0xe1,0xd1,0xc9,0xeb,0x23, +0x5e,0x23,0x56,0xc9,0xcd,0x30,0x25,0xc8,0xcd,0xa9,0x30,0xda,0x15,0x1f,0xc9,0x2a, +0x4d,0x5c,0xfd,0xcb,0x37,0x4e,0x28,0x5e,0x01,0x05,0x00,0x03,0x23,0x7e,0xfe,0x20, +0x28,0xfa,0x30,0x0b,0xfe,0x10,0x38,0x11,0xfe,0x16,0x30,0x0d,0x23,0x18,0xed,0xcd, +0x88,0x2c,0x38,0xe7,0xfe,0x24,0xca,0xc0,0x2b,0x79,0x2a,0x59,0x5c,0x2b,0xcd,0x55, +0x16,0x23,0x23,0xeb,0xd5,0x2a,0x4d,0x5c,0x1b,0xd6,0x06,0x47,0x28,0x11,0x23,0x7e, +0xfe,0x21,0x38,0xfa,0xf6,0x20,0x13,0x12,0x10,0xf4,0xf6,0x80,0x12,0x3e,0xc0,0x2a, +0x4d,0x5c,0xae,0xf6,0x20,0xe1,0xcd,0xea,0x2b,0xe5,0xef,0x02,0x38,0xe1,0x01,0x05, +0x00,0xa7,0xed,0x42,0x18,0x40,0xfd,0xcb,0x01,0x76,0x28,0x06,0x11,0x06,0x00,0x19, +0x18,0xe7,0x2a,0x4d,0x5c,0xed,0x4b,0x72,0x5c,0xfd,0xcb,0x37,0x46,0x20,0x30,0x78, +0xb1,0xc8,0xe5,0xf7,0xd5,0xc5,0x54,0x5d,0x23,0x36,0x20,0xed,0xb8,0xe5,0xcd,0xf1, +0x2b,0xe1,0xe3,0xa7,0xed,0x42,0x09,0x30,0x02,0x44,0x4d,0xe3,0xeb,0x78,0xb1,0x28, +0x02,0xed,0xb0,0xc1,0xd1,0xe1,0xeb,0x78,0xb1,0xc8,0xd5,0xed,0xb0,0xe1,0xc9,0x2b, +0x2b,0x2b,0x7e,0xe5,0xc5,0xcd,0xc6,0x2b,0xc1,0xe1,0x03,0x03,0x03,0xc3,0xe8,0x19, +0x3e,0xdf,0x2a,0x4d,0x5c,0xa6,0xf5,0xcd,0xf1,0x2b,0xeb,0x09,0xc5,0x2b,0x22,0x4d, +0x5c,0x03,0x03,0x03,0x2a,0x59,0x5c,0x2b,0xcd,0x55,0x16,0x2a,0x4d,0x5c,0xc1,0xc5, +0x03,0xed,0xb8,0xeb,0x23,0xc1,0x70,0x2b,0x71,0xf1,0x2b,0x77,0x2a,0x59,0x5c,0x2b, +0xc9,0x2a,0x65,0x5c,0x2b,0x46,0x2b,0x4e,0x2b,0x56,0x2b,0x5e,0x2b,0x7e,0x22,0x65, +0x5c,0xc9,0xcd,0xb2,0x28,0xc2,0x8a,0x1c,0xcd,0x30,0x25,0x20,0x08,0xcb,0xb1,0xcd, +0x96,0x29,0xcd,0xee,0x1b,0x38,0x08,0xc5,0xcd,0xb8,0x19,0xcd,0xe8,0x19,0xc1,0xcb, +0xf9,0x06,0x00,0xc5,0x21,0x01,0x00,0xcb,0x71,0x20,0x02,0x2e,0x05,0xeb,0xe7,0x26, +0xff,0xcd,0xcc,0x2a,0xda,0x20,0x2a,0xe1,0xc5,0x24,0xe5,0x60,0x69,0xcd,0xf4,0x2a, +0xeb,0xdf,0xfe,0x2c,0x28,0xe8,0xfe,0x29,0x20,0xbb,0xe7,0xc1,0x79,0x68,0x26,0x00, +0x23,0x23,0x29,0x19,0xda,0x15,0x1f,0xd5,0xc5,0xe5,0x44,0x4d,0x2a,0x59,0x5c,0x2b, +0xcd,0x55,0x16,0x23,0x77,0xc1,0x0b,0x0b,0x0b,0x23,0x71,0x23,0x70,0xc1,0x78,0x23, +0x77,0x62,0x6b,0x1b,0x36,0x00,0xcb,0x71,0x28,0x02,0x36,0x20,0xc1,0xed,0xb8,0xc1, +0x70,0x2b,0x71,0x2b,0x3d,0x20,0xf8,0xc9,0xcd,0x1b,0x2d,0x3f,0xd8,0xfe,0x41,0x3f, +0xd0,0xfe,0x5b,0xd8,0xfe,0x61,0x3f,0xd0,0xfe,0x7b,0xc9,0xfe,0xc4,0x20,0x19,0x11, +0x00,0x00,0xe7,0xd6,0x31,0xce,0x00,0x20,0x0a,0xeb,0x3f,0xed,0x6a,0xda,0xad,0x31, +0xeb,0x18,0xef,0x42,0x4b,0xc3,0x2b,0x2d,0xfe,0x2e,0x28,0x0f,0xcd,0x3b,0x2d,0xfe, +0x2e,0x20,0x28,0xe7,0xcd,0x1b,0x2d,0x38,0x22,0x18,0x0a,0xe7,0xcd,0x1b,0x2d,0xda, +0x8a,0x1c,0xef,0xa0,0x38,0xef,0xa1,0xc0,0x02,0x38,0xdf,0xcd,0x22,0x2d,0x38,0x0b, +0xef,0xe0,0xa4,0x05,0xc0,0x04,0x0f,0x38,0xe7,0x18,0xef,0xfe,0x45,0x28,0x03,0xfe, +0x65,0xc0,0x06,0xff,0xe7,0xfe,0x2b,0x28,0x05,0xfe,0x2d,0x20,0x02,0x04,0xe7,0xcd, +0x1b,0x2d,0x38,0xcb,0xc5,0xcd,0x3b,0x2d,0xcd,0xd5,0x2d,0xc1,0xda,0xad,0x31,0xa7, +0xfa,0xad,0x31,0x04,0x28,0x02,0xed,0x44,0xc3,0x4f,0x2d,0xfe,0x30,0xd8,0xfe,0x3a, +0x3f,0xc9,0xcd,0x1b,0x2d,0xd8,0xd6,0x30,0x4f,0x06,0x00,0xfd,0x21,0x3a,0x5c,0xaf, +0x5f,0x51,0x48,0x47,0xcd,0xb6,0x2a,0xef,0x38,0xa7,0xc9,0xf5,0xef,0xa0,0x38,0xf1, +0xcd,0x22,0x2d,0xd8,0xef,0x01,0xa4,0x04,0x0f,0x38,0xcd,0x74,0x00,0x18,0xf1,0x07, +0x0f,0x30,0x02,0x2f,0x3c,0xf5,0x21,0x92,0x5c,0xcd,0x0b,0x35,0xef,0xa4,0x38,0xf1, +0xcb,0x3f,0x30,0x0d,0xf5,0xef,0xc1,0xe0,0x00,0x04,0x04,0x33,0x02,0x05,0xe1,0x38, +0xf1,0x28,0x08,0xf5,0xef,0x31,0x04,0x38,0xf1,0x18,0xe5,0xef,0x02,0x38,0xc9,0x23, +0x4e,0x23,0x7e,0xa9,0x91,0x5f,0x23,0x7e,0x89,0xa9,0x57,0xc9,0x0e,0x00,0xe5,0x36, +0x00,0x23,0x71,0x23,0x7b,0xa9,0x91,0x77,0x23,0x7a,0x89,0xa9,0x77,0x23,0x36,0x00, +0xe1,0xc9,0xef,0x38,0x7e,0xa7,0x28,0x05,0xef,0xa2,0x0f,0x27,0x38,0xef,0x02,0x38, +0xe5,0xd5,0xeb,0x46,0xcd,0x7f,0x2d,0xaf,0x90,0xcb,0x79,0x42,0x4b,0x7b,0xd1,0xe1, +0xc9,0x57,0x17,0x9f,0x5f,0x4f,0xaf,0x47,0xcd,0xb6,0x2a,0xef,0x34,0xef,0x1a,0x20, +0x9a,0x85,0x04,0x27,0x38,0xcd,0xa2,0x2d,0xd8,0xf5,0x05,0x04,0x28,0x03,0xf1,0x37, +0xc9,0xf1,0xc9,0xef,0x31,0x36,0x00,0x0b,0x31,0x37,0x00,0x0d,0x02,0x38,0x3e,0x30, +0xd7,0xc9,0x2a,0x38,0x3e,0x2d,0xd7,0xef,0xa0,0xc3,0xc4,0xc5,0x02,0x38,0xd9,0xe5, +0xd9,0xef,0x31,0x27,0xc2,0x03,0xe2,0x01,0xc2,0x02,0x38,0x7e,0xa7,0x20,0x47,0xcd, +0x7f,0x2d,0x06,0x10,0x7a,0xa7,0x20,0x06,0xb3,0x28,0x09,0x53,0x06,0x08,0xd5,0xd9, +0xd1,0xd9,0x18,0x57,0xef,0xe2,0x38,0x7e,0xd6,0x7e,0xcd,0xc1,0x2d,0x57,0x3a,0xac, +0x5c,0x92,0x32,0xac,0x5c,0x7a,0xcd,0x4f,0x2d,0xef,0x31,0x27,0xc1,0x03,0xe1,0x38, +0xcd,0xd5,0x2d,0xe5,0x32,0xa1,0x5c,0x3d,0x17,0x9f,0x3c,0x21,0xab,0x5c,0x77,0x23, +0x86,0x77,0xe1,0xc3,0xcf,0x2e,0xd6,0x80,0xfe,0x1c,0x38,0x13,0xcd,0xc1,0x2d,0xd6, +0x07,0x47,0x21,0xac,0x5c,0x86,0x77,0x78,0xed,0x44,0xcd,0x4f,0x2d,0x18,0x92,0xeb, +0xcd,0xba,0x2f,0xd9,0xcb,0xfa,0x7d,0xd9,0xd6,0x80,0x47,0xcb,0x23,0xcb,0x12,0xd9, +0xcb,0x13,0xcb,0x12,0xd9,0x21,0xaa,0x5c,0x0e,0x05,0x7e,0x8f,0x27,0x77,0x2b,0x0d, +0x20,0xf8,0x10,0xe7,0xaf,0x21,0xa6,0x5c,0x11,0xa1,0x5c,0x06,0x09,0xed,0x6f,0x0e, +0xff,0xed,0x6f,0x20,0x04,0x0d,0x0c,0x20,0x0a,0x12,0x13,0xfd,0x34,0x71,0xfd,0x34, +0x72,0x0e,0x00,0xcb,0x40,0x28,0x01,0x23,0x10,0xe7,0x3a,0xab,0x5c,0xd6,0x09,0x38, +0x0a,0xfd,0x35,0x71,0x3e,0x04,0xfd,0xbe,0x6f,0x18,0x41,0xef,0x02,0xe2,0x38,0xeb, +0xcd,0xba,0x2f,0xd9,0x3e,0x80,0x95,0x2e,0x00,0xcb,0xfa,0xd9,0xcd,0xdd,0x2f,0xfd, +0x7e,0x71,0xfe,0x08,0x38,0x06,0xd9,0xcb,0x12,0xd9,0x18,0x20,0x01,0x00,0x02,0x7b, +0xcd,0x8b,0x2f,0x5f,0x7a,0xcd,0x8b,0x2f,0x57,0xc5,0xd9,0xc1,0x10,0xf1,0x21,0xa1, +0x5c,0x79,0xfd,0x4e,0x71,0x09,0x77,0xfd,0x34,0x71,0x18,0xd3,0xf5,0x21,0xa1,0x5c, +0xfd,0x4e,0x71,0x06,0x00,0x09,0x41,0xf1,0x2b,0x7e,0xce,0x00,0x77,0xa7,0x28,0x05, +0xfe,0x0a,0x3f,0x30,0x08,0x10,0xf1,0x36,0x01,0x04,0xfd,0x34,0x72,0xfd,0x70,0x71, +0xef,0x02,0x38,0xd9,0xe1,0xd9,0xed,0x4b,0xab,0x5c,0x21,0xa1,0x5c,0x78,0xfe,0x09, +0x38,0x04,0xfe,0xfc,0x38,0x26,0xa7,0xcc,0xef,0x15,0xaf,0x90,0xfa,0x52,0x2f,0x47, +0x18,0x0c,0x79,0xa7,0x28,0x03,0x7e,0x23,0x0d,0xcd,0xef,0x15,0x10,0xf4,0x79,0xa7, +0xc8,0x04,0x3e,0x2e,0xd7,0x3e,0x30,0x10,0xfb,0x41,0x18,0xe6,0x50,0x15,0x06,0x01, +0xcd,0x4a,0x2f,0x3e,0x45,0xd7,0x4a,0x79,0xa7,0xf2,0x83,0x2f,0xed,0x44,0x4f,0x3e, +0x2d,0x18,0x02,0x3e,0x2b,0xd7,0x06,0x00,0xc3,0x1b,0x1a,0xd5,0x6f,0x26,0x00,0x5d, +0x54,0x29,0x29,0x19,0x29,0x59,0x19,0x4c,0x7d,0xd1,0xc9,0x7e,0x36,0x00,0xa7,0xc8, +0x23,0xcb,0x7e,0xcb,0xfe,0x2b,0xc8,0xc5,0x01,0x05,0x00,0x09,0x41,0x4f,0x37,0x2b, +0x7e,0x2f,0xce,0x00,0x77,0x10,0xf8,0x79,0xc1,0xc9,0xe5,0xf5,0x4e,0x23,0x46,0x77, +0x23,0x79,0x4e,0xc5,0x23,0x4e,0x23,0x46,0xeb,0x57,0x5e,0xd5,0x23,0x56,0x23,0x5e, +0xd5,0xd9,0xd1,0xe1,0xc1,0xd9,0x23,0x56,0x23,0x5e,0xf1,0xe1,0xc9,0xa7,0xc8,0xfe, +0x21,0x30,0x16,0xc5,0x47,0xd9,0xcb,0x2d,0xcb,0x1a,0xcb,0x1b,0xd9,0xcb,0x1a,0xcb, +0x1b,0x10,0xf2,0xc1,0xd0,0xcd,0x04,0x30,0xc0,0xd9,0xaf,0x2e,0x00,0x57,0x5d,0xd9, +0x11,0x00,0x00,0xc9,0x1c,0xc0,0x14,0xc0,0xd9,0x1c,0x20,0x01,0x14,0xd9,0xc9,0xeb, +0xcd,0x6e,0x34,0xeb,0x1a,0xb6,0x20,0x26,0xd5,0x23,0xe5,0x23,0x5e,0x23,0x56,0x23, +0x23,0x23,0x7e,0x23,0x4e,0x23,0x46,0xe1,0xeb,0x09,0xeb,0x8e,0x0f,0xce,0x00,0x20, +0x0b,0x9f,0x77,0x23,0x73,0x23,0x72,0x2b,0x2b,0x2b,0xd1,0xc9,0x2b,0xd1,0xcd,0x93, +0x32,0xd9,0xe5,0xd9,0xd5,0xe5,0xcd,0x9b,0x2f,0x47,0xeb,0xcd,0x9b,0x2f,0x4f,0xb8, +0x30,0x03,0x78,0x41,0xeb,0xf5,0x90,0xcd,0xba,0x2f,0xcd,0xdd,0x2f,0xf1,0xe1,0x77, +0xe5,0x68,0x61,0x19,0xd9,0xeb,0xed,0x4a,0xeb,0x7c,0x8d,0x6f,0x1f,0xad,0xd9,0xeb, +0xe1,0x1f,0x30,0x08,0x3e,0x01,0xcd,0xdd,0x2f,0x34,0x28,0x23,0xd9,0x7d,0xe6,0x80, +0xd9,0x23,0x77,0x2b,0x28,0x1f,0x7b,0xed,0x44,0x3f,0x5f,0x7a,0x2f,0xce,0x00,0x57, +0xd9,0x7b,0x2f,0xce,0x00,0x5f,0x7a,0x2f,0xce,0x00,0x30,0x07,0x1f,0xd9,0x34,0xca, +0xad,0x31,0xd9,0x57,0xd9,0xaf,0xc3,0x55,0x31,0xc5,0x06,0x10,0x7c,0x4d,0x21,0x00, +0x00,0x29,0x38,0x0a,0xcb,0x11,0x17,0x30,0x03,0x19,0x38,0x02,0x10,0xf3,0xc1,0xc9, +0xcd,0xe9,0x34,0xd8,0x23,0xae,0xcb,0xfe,0x2b,0xc9,0x1a,0xb6,0x20,0x22,0xd5,0xe5, +0xd5,0xcd,0x7f,0x2d,0xeb,0xe3,0x41,0xcd,0x7f,0x2d,0x78,0xa9,0x4f,0xe1,0xcd,0xa9, +0x30,0xeb,0xe1,0x38,0x0a,0x7a,0xb3,0x20,0x01,0x4f,0xcd,0x8e,0x2d,0xd1,0xc9,0xd1, +0xcd,0x93,0x32,0xaf,0xcd,0xc0,0x30,0xd8,0xd9,0xe5,0xd9,0xd5,0xeb,0xcd,0xc0,0x30, +0xeb,0x38,0x5a,0xe5,0xcd,0xba,0x2f,0x78,0xa7,0xed,0x62,0xd9,0xe5,0xed,0x62,0xd9, +0x06,0x21,0x18,0x11,0x30,0x05,0x19,0xd9,0xed,0x5a,0xd9,0xd9,0xcb,0x1c,0xcb,0x1d, +0xd9,0xcb,0x1c,0xcb,0x1d,0xd9,0xcb,0x18,0xcb,0x19,0xd9,0xcb,0x19,0x1f,0x10,0xe4, +0xeb,0xd9,0xeb,0xd9,0xc1,0xe1,0x78,0x81,0x20,0x01,0xa7,0x3d,0x3f,0x17,0x3f,0x1f, +0xf2,0x46,0x31,0x30,0x68,0xa7,0x3c,0x20,0x08,0x38,0x06,0xd9,0xcb,0x7a,0xd9,0x20, +0x5c,0x77,0xd9,0x78,0xd9,0x30,0x15,0x7e,0xa7,0x3e,0x80,0x28,0x01,0xaf,0xd9,0xa2, +0xcd,0xfb,0x2f,0x07,0x77,0x38,0x2e,0x23,0x77,0x2b,0x18,0x29,0x06,0x20,0xd9,0xcb, +0x7a,0xd9,0x20,0x12,0x07,0xcb,0x13,0xcb,0x12,0xd9,0xcb,0x13,0xcb,0x12,0xd9,0x35, +0x28,0xd7,0x10,0xea,0x18,0xd7,0x17,0x30,0x0c,0xcd,0x04,0x30,0x20,0x07,0xd9,0x16, +0x80,0xd9,0x34,0x28,0x18,0xe5,0x23,0xd9,0xd5,0xd9,0xc1,0x78,0x17,0xcb,0x16,0x1f, +0x77,0x23,0x71,0x23,0x72,0x23,0x73,0xe1,0xd1,0xd9,0xe1,0xd9,0xc9,0xcf,0x05,0xcd, +0x93,0x32,0xeb,0xaf,0xcd,0xc0,0x30,0x38,0xf4,0xeb,0xcd,0xc0,0x30,0xd8,0xd9,0xe5, +0xd9,0xd5,0xe5,0xcd,0xba,0x2f,0xd9,0xe5,0x60,0x69,0xd9,0x61,0x68,0xaf,0x06,0xdf, +0x18,0x10,0x17,0xcb,0x11,0xd9,0xcb,0x11,0xcb,0x10,0xd9,0x29,0xd9,0xed,0x6a,0xd9, +0x38,0x10,0xed,0x52,0xd9,0xed,0x52,0xd9,0x30,0x0f,0x19,0xd9,0xed,0x5a,0xd9,0xa7, +0x18,0x08,0xa7,0xed,0x52,0xd9,0xed,0x52,0xd9,0x37,0x04,0xfa,0xd2,0x31,0xf5,0x28, +0xe1,0x5f,0x51,0xd9,0x59,0x50,0xf1,0xcb,0x18,0xf1,0xcb,0x18,0xd9,0xc1,0xe1,0x78, +0x91,0xc3,0x3d,0x31,0x7e,0xa7,0xc8,0xfe,0x81,0x30,0x06,0x36,0x00,0x3e,0x20,0x18, +0x51,0xfe,0x91,0x20,0x1a,0x23,0x23,0x23,0x3e,0x80,0xa6,0x2b,0xb6,0x2b,0x20,0x03, +0x3e,0x80,0xae,0x2b,0x20,0x36,0x77,0x23,0x36,0xff,0x2b,0x3e,0x18,0x18,0x33,0x30, +0x2c,0xd5,0x2f,0xc6,0x91,0x23,0x56,0x23,0x5e,0x2b,0x2b,0x0e,0x00,0xcb,0x7a,0x28, +0x01,0x0d,0xcb,0xfa,0x06,0x08,0x90,0x80,0x38,0x04,0x5a,0x16,0x00,0x90,0x28,0x07, +0x47,0xcb,0x3a,0xcb,0x1b,0x10,0xfa,0xcd,0x8e,0x2d,0xd1,0xc9,0x7e,0xd6,0xa0,0xf0, +0xed,0x44,0xd5,0xeb,0x2b,0x47,0xcb,0x38,0xcb,0x38,0xcb,0x38,0x28,0x05,0x36,0x00, +0x2b,0x10,0xfb,0xe6,0x07,0x28,0x09,0x47,0x3e,0xff,0xcb,0x27,0x10,0xfc,0xa6,0x77, +0xeb,0xd1,0xc9,0xcd,0x96,0x32,0xeb,0x7e,0xa7,0xc0,0xd5,0xcd,0x7f,0x2d,0xaf,0x23, +0x77,0x2b,0x77,0x06,0x91,0x7a,0xa7,0x20,0x08,0xb3,0x42,0x28,0x10,0x53,0x58,0x06, +0x89,0xeb,0x05,0x29,0x30,0xfc,0xcb,0x09,0xcb,0x1c,0xcb,0x1d,0xeb,0x2b,0x73,0x2b, +0x72,0x2b,0x70,0xd1,0xc9,0x00,0xb0,0x00,0x40,0xb0,0x00,0x01,0x30,0x00,0xf1,0x49, +0x0f,0xda,0xa2,0x40,0xb0,0x00,0x0a,0x8f,0x36,0x3c,0x34,0xa1,0x33,0x0f,0x30,0xca, +0x30,0xaf,0x31,0x51,0x38,0x1b,0x35,0x24,0x35,0x3b,0x35,0x3b,0x35,0x3b,0x35,0x3b, +0x35,0x3b,0x35,0x3b,0x35,0x14,0x30,0x2d,0x35,0x3b,0x35,0x3b,0x35,0x3b,0x35,0x3b, +0x35,0x3b,0x35,0x3b,0x35,0x9c,0x35,0xde,0x35,0xbc,0x34,0x45,0x36,0x6e,0x34,0x69, +0x36,0xde,0x35,0x74,0x36,0xb5,0x37,0xaa,0x37,0xda,0x37,0x33,0x38,0x43,0x38,0xe2, +0x37,0x13,0x37,0xc4,0x36,0xaf,0x36,0x4a,0x38,0x92,0x34,0x6a,0x34,0xac,0x34,0xa5, +0x34,0xb3,0x34,0x1f,0x36,0xc9,0x35,0x01,0x35,0xc0,0x33,0xa0,0x36,0x86,0x36,0xc6, +0x33,0x7a,0x36,0x06,0x35,0xf9,0x34,0x9b,0x36,0x83,0x37,0x14,0x32,0xa2,0x33,0x4f, +0x2d,0x97,0x32,0x49,0x34,0x1b,0x34,0x2d,0x34,0x0f,0x34,0xcd,0xbf,0x35,0x78,0x32, +0x67,0x5c,0xd9,0xe3,0xd9,0xed,0x53,0x65,0x5c,0xd9,0x7e,0x23,0xe5,0xa7,0xf2,0x80, +0x33,0x57,0xe6,0x60,0x0f,0x0f,0x0f,0x0f,0xc6,0x7c,0x6f,0x7a,0xe6,0x1f,0x18,0x0e, +0xfe,0x18,0x30,0x08,0xd9,0x01,0xfb,0xff,0x54,0x5d,0x09,0xd9,0x07,0x6f,0x11,0xd7, +0x32,0x26,0x00,0x19,0x5e,0x23,0x56,0x21,0x65,0x33,0xe3,0xd5,0xd9,0xed,0x4b,0x66, +0x5c,0xc9,0xf1,0x3a,0x67,0x5c,0xd9,0x18,0xc3,0xd5,0xe5,0x01,0x05,0x00,0xcd,0x05, +0x1f,0xe1,0xd1,0xc9,0xed,0x5b,0x65,0x5c,0xcd,0xc0,0x33,0xed,0x53,0x65,0x5c,0xc9, +0xcd,0xa9,0x33,0xed,0xb0,0xc9,0x62,0x6b,0xcd,0xa9,0x33,0xd9,0xe5,0xd9,0xe3,0xc5, +0x7e,0xe6,0xc0,0x07,0x07,0x4f,0x0c,0x7e,0xe6,0x3f,0x20,0x02,0x23,0x7e,0xc6,0x50, +0x12,0x3e,0x05,0x91,0x23,0x13,0x06,0x00,0xed,0xb0,0xc1,0xe3,0xd9,0xe1,0xd9,0x47, +0xaf,0x05,0xc8,0x12,0x13,0x18,0xfa,0xa7,0xc8,0xf5,0xd5,0x11,0x00,0x00,0xcd,0xc8, +0x33,0xd1,0xf1,0x3d,0x18,0xf2,0x4f,0x07,0x07,0x81,0x4f,0x06,0x00,0x09,0xc9,0xd5, +0x2a,0x68,0x5c,0xcd,0x06,0x34,0xcd,0xc0,0x33,0xe1,0xc9,0x62,0x6b,0xd9,0xe5,0x21, +0xc5,0x32,0xd9,0xcd,0xf7,0x33,0xcd,0xc8,0x33,0xd9,0xe1,0xd9,0xc9,0xe5,0xeb,0x2a, +0x68,0x5c,0xcd,0x06,0x34,0xeb,0xcd,0xc0,0x33,0xeb,0xe1,0xc9,0x06,0x05,0x1a,0x4e, +0xeb,0x12,0x71,0x23,0x13,0x10,0xf7,0xeb,0xc9,0x47,0xcd,0x5e,0x33,0x31,0x0f,0xc0, +0x02,0xa0,0xc2,0x31,0xe0,0x04,0xe2,0xc1,0x03,0x38,0xcd,0xc6,0x33,0xcd,0x62,0x33, +0x0f,0x01,0xc2,0x02,0x35,0xee,0xe1,0x03,0x38,0xc9,0x06,0xff,0x18,0x06,0xcd,0xe9, +0x34,0xd8,0x06,0x00,0x7e,0xa7,0x28,0x0b,0x23,0x78,0xe6,0x80,0xb6,0x17,0x3f,0x1f, +0x77,0x2b,0xc9,0xd5,0xe5,0xcd,0x7f,0x2d,0xe1,0x78,0xb1,0x2f,0x4f,0xcd,0x8e,0x2d, +0xd1,0xc9,0xcd,0xe9,0x34,0xd8,0xd5,0x11,0x01,0x00,0x23,0xcb,0x16,0x2b,0x9f,0x4f, +0xcd,0x8e,0x2d,0xd1,0xc9,0xcd,0x99,0x1e,0xed,0x78,0x18,0x04,0xcd,0x99,0x1e,0x0a, +0xc3,0x28,0x2d,0xcd,0x99,0x1e,0x21,0x2b,0x2d,0xe5,0xc5,0xc9,0xcd,0xf1,0x2b,0x0b, +0x78,0xb1,0x20,0x23,0x1a,0xcd,0x8d,0x2c,0x38,0x09,0xd6,0x90,0x38,0x19,0xfe,0x15, +0x30,0x15,0x3c,0x3d,0x87,0x87,0x87,0xfe,0xa8,0x30,0x0c,0xed,0x4b,0x7b,0x5c,0x81, +0x4f,0x30,0x01,0x04,0xc3,0x2b,0x2d,0xcf,0x09,0xe5,0xc5,0x47,0x7e,0x23,0xb6,0x23, +0xb6,0x23,0xb6,0x78,0xc1,0xe1,0xc0,0x37,0xc9,0xcd,0xe9,0x34,0xd8,0x3e,0xff,0x18, +0x06,0xcd,0xe9,0x34,0x18,0x05,0xaf,0x23,0xae,0x2b,0x07,0xe5,0x3e,0x00,0x77,0x23, +0x77,0x23,0x17,0x77,0x1f,0x23,0x77,0x23,0x77,0xe1,0xc9,0xeb,0xcd,0xe9,0x34,0xeb, +0xd8,0x37,0x18,0xe7,0xeb,0xcd,0xe9,0x34,0xeb,0xd0,0xa7,0x18,0xde,0xeb,0xcd,0xe9, +0x34,0xeb,0xd0,0xd5,0x1b,0xaf,0x12,0x1b,0x12,0xd1,0xc9,0x78,0xd6,0x08,0xcb,0x57, +0x20,0x01,0x3d,0x0f,0x30,0x08,0xf5,0xe5,0xcd,0x3c,0x34,0xd1,0xeb,0xf1,0xcb,0x57, +0x20,0x07,0x0f,0xf5,0xcd,0x0f,0x30,0x18,0x33,0x0f,0xf5,0xcd,0xf1,0x2b,0xd5,0xc5, +0xcd,0xf1,0x2b,0xe1,0x7c,0xb5,0xe3,0x78,0x20,0x0b,0xb1,0xc1,0x28,0x04,0xf1,0x3f, +0x18,0x16,0xf1,0x18,0x13,0xb1,0x28,0x0d,0x1a,0x96,0x38,0x09,0x20,0xed,0x0b,0x13, +0x23,0xe3,0x2b,0x18,0xdf,0xc1,0xf1,0xa7,0xf5,0xef,0xa0,0x38,0xf1,0xf5,0xdc,0x01, +0x35,0xf1,0xf5,0xd4,0xf9,0x34,0xf1,0x0f,0xd4,0x01,0x35,0xc9,0xcd,0xf1,0x2b,0xd5, +0xc5,0xcd,0xf1,0x2b,0xe1,0xe5,0xd5,0xc5,0x09,0x44,0x4d,0xf7,0xcd,0xb2,0x2a,0xc1, +0xe1,0x78,0xb1,0x28,0x02,0xed,0xb0,0xc1,0xe1,0x78,0xb1,0x28,0x02,0xed,0xb0,0x2a, +0x65,0x5c,0x11,0xfb,0xff,0xe5,0x19,0xd1,0xc9,0xcd,0xd5,0x2d,0x38,0x0e,0x20,0x0c, +0xf5,0x01,0x01,0x00,0xf7,0xf1,0x12,0xcd,0xb2,0x2a,0xeb,0xc9,0xcf,0x0a,0x2a,0x5d, +0x5c,0xe5,0x78,0xc6,0xe3,0x9f,0xf5,0xcd,0xf1,0x2b,0xd5,0x03,0xf7,0xe1,0xed,0x53, +0x5d,0x5c,0xd5,0xed,0xb0,0xeb,0x2b,0x36,0x0d,0xfd,0xcb,0x01,0xbe,0xcd,0xfb,0x24, +0xdf,0xfe,0x0d,0x20,0x07,0xe1,0xf1,0xfd,0xae,0x01,0xe6,0x40,0xc2,0x8a,0x1c,0x22, +0x5d,0x5c,0xfd,0xcb,0x01,0xfe,0xcd,0xfb,0x24,0xe1,0x22,0x5d,0x5c,0x18,0xa0,0x01, +0x01,0x00,0xf7,0x22,0x5b,0x5c,0xe5,0x2a,0x51,0x5c,0xe5,0x3e,0xff,0xcd,0x01,0x16, +0xcd,0xe3,0x2d,0xe1,0xcd,0x15,0x16,0xd1,0x2a,0x5b,0x5c,0xa7,0xed,0x52,0x44,0x4d, +0xcd,0xb2,0x2a,0xeb,0xc9,0xcd,0x94,0x1e,0xfe,0x10,0xd2,0x9f,0x1e,0x2a,0x51,0x5c, +0xe5,0xcd,0x01,0x16,0xcd,0xe6,0x15,0x01,0x00,0x00,0x30,0x03,0x0c,0xf7,0x12,0xcd, +0xb2,0x2a,0xe1,0xcd,0x15,0x16,0xc3,0xbf,0x35,0xcd,0xf1,0x2b,0x78,0xb1,0x28,0x01, +0x1a,0xc3,0x28,0x2d,0xcd,0xf1,0x2b,0xc3,0x2b,0x2d,0xd9,0xe5,0x21,0x67,0x5c,0x35, +0xe1,0x20,0x04,0x23,0xd9,0xc9,0xd9,0x5e,0x7b,0x17,0x9f,0x57,0x19,0xd9,0xc9,0x13, +0x13,0x1a,0x1b,0x1b,0xa7,0x20,0xef,0xd9,0x23,0xd9,0xc9,0xf1,0xd9,0xe3,0xd9,0xc9, +0xef,0xc0,0x02,0x31,0xe0,0x05,0x27,0xe0,0x01,0xc0,0x04,0x03,0xe0,0x38,0xc9,0xef, +0x31,0x36,0x00,0x04,0x3a,0x38,0xc9,0x31,0x3a,0xc0,0x03,0xe0,0x01,0x30,0x00,0x03, +0xa1,0x03,0x38,0xc9,0xef,0x3d,0x34,0xf1,0x38,0xaa,0x3b,0x29,0x04,0x31,0x27,0xc3, +0x03,0x31,0x0f,0xa1,0x03,0x88,0x13,0x36,0x58,0x65,0x66,0x9d,0x78,0x65,0x40,0xa2, +0x60,0x32,0xc9,0xe7,0x21,0xf7,0xaf,0x24,0xeb,0x2f,0xb0,0xb0,0x14,0xee,0x7e,0xbb, +0x94,0x58,0xf1,0x3a,0x7e,0xf8,0xcf,0xe3,0x38,0xcd,0xd5,0x2d,0x20,0x07,0x38,0x03, +0x86,0x30,0x09,0xcf,0x05,0x38,0x07,0x96,0x30,0x04,0xed,0x44,0x77,0xc9,0xef,0x02, +0xa0,0x38,0xc9,0xef,0x3d,0x31,0x37,0x00,0x04,0x38,0xcf,0x09,0xa0,0x02,0x38,0x7e, +0x36,0x80,0xcd,0x28,0x2d,0xef,0x34,0x38,0x00,0x03,0x01,0x31,0x34,0xf0,0x4c,0xcc, +0xcc,0xcd,0x03,0x37,0x00,0x08,0x01,0xa1,0x03,0x01,0x38,0x34,0xef,0x01,0x34,0xf0, +0x31,0x72,0x17,0xf8,0x04,0x01,0xa2,0x03,0xa2,0x03,0x31,0x34,0x32,0x20,0x04,0xa2, +0x03,0x8c,0x11,0xac,0x14,0x09,0x56,0xda,0xa5,0x59,0x30,0xc5,0x5c,0x90,0xaa,0x9e, +0x70,0x6f,0x61,0xa1,0xcb,0xda,0x96,0xa4,0x31,0x9f,0xb4,0xe7,0xa0,0xfe,0x5c,0xfc, +0xea,0x1b,0x43,0xca,0x36,0xed,0xa7,0x9c,0x7e,0x5e,0xf0,0x6e,0x23,0x80,0x93,0x04, +0x0f,0x38,0xc9,0xef,0x3d,0x34,0xee,0x22,0xf9,0x83,0x6e,0x04,0x31,0xa2,0x0f,0x27, +0x03,0x31,0x0f,0x31,0x0f,0x31,0x2a,0xa1,0x03,0x31,0x37,0xc0,0x00,0x04,0x02,0x38, +0xc9,0xa1,0x03,0x01,0x36,0x00,0x02,0x1b,0x38,0xc9,0xef,0x39,0x2a,0xa1,0x03,0xe0, +0x00,0x06,0x1b,0x33,0x03,0xef,0x39,0x31,0x31,0x04,0x31,0x0f,0xa1,0x03,0x86,0x14, +0xe6,0x5c,0x1f,0x0b,0xa3,0x8f,0x38,0xee,0xe9,0x15,0x63,0xbb,0x23,0xee,0x92,0x0d, +0xcd,0xed,0xf1,0x23,0x5d,0x1b,0xea,0x04,0x38,0xc9,0xef,0x31,0x1f,0x01,0x20,0x05, +0x38,0xc9,0xcd,0x97,0x32,0x7e,0xfe,0x81,0x38,0x0e,0xef,0xa1,0x1b,0x01,0x05,0x31, +0x36,0xa3,0x01,0x00,0x06,0x1b,0x33,0x03,0xef,0xa0,0x01,0x31,0x31,0x04,0x31,0x0f, +0xa1,0x03,0x8c,0x10,0xb2,0x13,0x0e,0x55,0xe4,0x8d,0x58,0x39,0xbc,0x5b,0x98,0xfd, +0x9e,0x00,0x36,0x75,0xa0,0xdb,0xe8,0xb4,0x63,0x42,0xc4,0xe6,0xb5,0x09,0x36,0xbe, +0xe9,0x36,0x73,0x1b,0x5d,0xec,0xd8,0xde,0x63,0xbe,0xf0,0x61,0xa1,0xb3,0x0c,0x04, +0x0f,0x38,0xc9,0xef,0x31,0x31,0x04,0xa1,0x03,0x1b,0x28,0xa1,0x0f,0x05,0x24,0x31, +0x0f,0x38,0xc9,0xef,0x22,0xa3,0x03,0x1b,0x38,0xc9,0xef,0x31,0x30,0x00,0x1e,0xa2, +0x38,0xef,0x01,0x31,0x30,0x00,0x07,0x25,0x04,0x38,0xc3,0xc4,0x36,0x02,0x31,0x30, +0x00,0x09,0xa0,0x01,0x37,0x00,0x06,0xa1,0x01,0x05,0x02,0xa1,0x38,0xc9,0xbd,0x7b, +0x00,0xb0,0xbb,0xe6,0x60,0xbe,0x60,0x03,0xb2,0xd5,0xff,0xd5,0xbb,0xbf,0xff,0x72, +0x03,0xbb,0xff,0xfb,0xff,0xd5,0x13,0xdb,0x72,0xfa,0xe8,0x18,0xff,0x8a,0x01,0xaa, +0xe2,0xfb,0xff,0xd5,0x72,0xe4,0xb3,0x08,0xe8,0x1e,0xff,0x93,0x74,0x02,0x04,0x1f, +0x41,0x3c,0x3b,0x75,0xea,0x42,0x03,0xc2,0x3c,0x1b,0x75,0xe3,0x5e,0xb1,0xef,0xba, +0xc9,0x03,0x8a,0xc1,0xd0,0xe8,0xee,0xb0,0x11,0xee,0xee,0xe2,0xf5,0x4a,0xee,0x68, +0x00,0xa0,0x07,0xbd,0x6f,0x02,0x8b,0xc6,0xc1,0xc8,0x03,0x02,0xe4,0x72,0x02,0xf7, +0xd0,0xf6,0xd0,0xc0,0xec,0x06,0x04,0x05,0x8a,0xec,0x98,0xc1,0xe0,0x05,0x97,0xb0, +0x23,0xf7,0xe1,0x03,0xf8,0xaf,0xe8,0x9e,0x01,0x81,0xef,0x7e,0x0c,0x8a,0x9c,0x05, +0x12,0x32,0xff,0x60,0xb2,0x20,0x2a,0xda,0xe8,0x4a,0x01,0x61,0x81,0xff,0x00,0x20, +0x73,0x1f,0x60,0x81,0xef,0x37,0x01,0xb2,0x0d,0x93,0x2c,0x30,0x75,0x02,0xb0,0x3f, +0x3c,0x02,0x75,0x02,0xb0,0x20,0x93,0xe8,0x2b,0x01,0x61,0x8a,0x9f,0x54,0x12,0xeb, +0x2d,0x60,0x81,0xef,0x80,0x11,0x8a,0x9f,0xeb,0x11,0xb2,0x0e,0xff,0xd5,0x61,0x60, +0x81,0xef,0xf7,0x09,0x8a,0x9f,0x29,0x12,0xb2,0x0d,0xff,0xd5,0x61,0x60,0x80,0xc3, +0xa5,0x81,0xef,0x77,0x02,0xb2,0x0b,0xff,0xd5,0x61,0x8a,0x9f,0x05,0x12,0x81,0xc7, +0x00,0x05,0xb2,0x04,0xff,0xd5,0x4e,0x0f,0x89,0x6b,0xff,0xbb,0xff,0x02,0x8b,0xf3, +0xad,0x97,0xe8,0x22,0x01,0x81,0xef,0x7c,0x16,0x8b,0xde,0xe8,0x81,0x00,0xfe,0xca, +0x75,0xec,0xc6,0x44,0xdb,0xaa,0xbd,0x08,0x00,0xbb,0x01,0x00,0xbf,0x40,0xfa,0xcd, +0x1a,0x8b,0xf2,0x46,0xcd,0x1a,0x3b,0xf2,0x73,0xfa,0x8d,0xb5,0x40,0x01,0xb1,0xc1, +0x26,0xf3,0xa4,0x83,0xc7,0x7f,0x4b,0x75,0xf1,0x80,0x3e,0x0c,0x02,0x54,0x74,0x0a, +0xfe,0x06,0x0c,0x02,0x81,0x2e,0x0f,0x02,0x40,0x01,0xe4,0x60,0x3c,0xbb,0x74,0x02, +0x78,0x28,0x4d,0x75,0xc4,0x80,0xc2,0x07,0x73,0xfb,0x42,0x60,0xbe,0x02,0x07,0xb6, +0x18,0xac,0x93,0xe8,0x7f,0x00,0xfe,0xce,0x75,0xf7,0x81,0xfe,0x20,0x0d,0x72,0x03, +0xbe,0x02,0x07,0x89,0x36,0x4f,0x02,0x61,0xeb,0x9c,0x1f,0x07,0xcb,0x80,0xeb,0xa4, +0x72,0x5c,0x8b,0xcb,0xbb,0x95,0x10,0x80,0x3f,0x80,0x43,0x72,0xfa,0xe2,0xf8,0x56, +0x8a,0x07,0x25,0x5f,0x00,0x74,0x27,0x2c,0x41,0x3c,0x19,0x73,0x29,0x03,0xc0,0x05, +0x2e,0x03,0x96,0xad,0xb1,0x05,0x51,0xb1,0x03,0xd1,0xe0,0x73,0x03,0x26,0x88,0x15, +0x47,0xe2,0xf6,0x81,0xc7,0x3d,0x01,0x59,0xe2,0xec,0x81,0xef,0x3c,0x06,0x80,0x3f, +0x80,0x43,0x72,0xcc,0x5e,0xc3,0x5e,0x81,0xc7,0x3e,0x06,0x8a,0x07,0x24,0x7f,0x2c, +0x20,0x53,0x93,0xe8,0x0f,0x00,0x5b,0x80,0x3f,0x80,0x43,0x72,0xee,0xc3,0x80,0xc3, +0x84,0x81,0xc7,0x40,0x06,0xb1,0x07,0xc1,0xe3,0x03,0x80,0xc7,0x4d,0xb4,0x08,0x8a, +0xc1,0xd7,0x8a,0xe8,0x8a,0xc2,0xd0,0xe5,0x73,0x02,0xaa,0x3d,0xd6,0x47,0xfe,0xcc, +0x75,0xf2,0x81,0xef,0x48,0x01,0xe2,0xe5,0x81,0xc7,0xc8,0x08,0xc3,0x22,0x47,0x45, +0x4e,0x54,0x45,0xd2,0x02,0x69,0x43,0x41,0x50,0xd3,0x02,0x6a,0x53,0x59,0x4d,0xc2, +0x22,0x6a,0x53,0x50,0x41,0x43,0xc5,0xb9,0x19,0x00,0x51,0xd6,0x2a,0xc1,0xb1,0x1a, +0xd2,0xc0,0xf3,0xaa,0x81,0xc7,0x26,0x01,0x59,0xe2,0xef,0xc3,0xda,0x57,0x5c,0xd7, +0x46,0x72,0xdc,0xd6,0x4e,0xf3,0x48,0xf3,0x5e,0xf2,0xda,0xb7,0x2e,0xe9,0xd6,0x64, +0x5a,0xb7,0x4e,0x92,0xda,0x5f,0xda,0xd6,0xd4,0x56,0x48,0xd7,0xa2,0x56,0x5a,0xd7, +0x1c,0x71,0x24,0xe9,0xde,0xb6,0xd4,0xb6,0xf4,0xb7,0x5a,0xb5,0x24,0xb5,0x01,0x03, +0x08,0x45,0x46,0x4c,0xa0,0x80,0x00,0xa5,0x00,0x08,0xf0,0x06,0x39,0x63,0x42,0x55, +0x04,0xc0,0x54,0x9b,0x90,0x04,0x04,0x59,0x12,0x86,0x52,0xce,0x18,0x05,0x02,0x3a, +0xec,0xbf,0x45,0x0a,0x6e,0xdc,0x34,0xa3,0x2e,0xc8,0xa1,0x72,0x93,0x5a,0x84,0xbf, +0xf6,0x0d,0x65,0x40,0x2a,0xf4,0x24,0x2f,0xb9,0xfa,0x9c,0xae,0x0a,0x10,0x01,0xd6, +0x3c,0x45,0x4a,0x40,0xfa,0x21,0x01,0xea,0x91,0x09,0xb9,0x39,0xa1,0x11,0x84,0x11, +0xaf,0x72,0x72,0xff,0x79,0xa4,0x16,0x00,0x4f,0x46,0x8d,0x40,0x21,0x40,0x54,0x24, +0x7c,0xea,0x17,0xd6,0x58,0xf0,0x80,0x1c,0xa3,0x7d,0x09,0x1a,0x44,0xa3,0xc8,0xf7, +0xbb,0xd5,0x98,0xff,0x7f,0x4b,0x03,0xdc,0xd8,0x24,0xc8,0x5a,0xc8,0x3d,0x5f,0x3f, +0xf6,0x60,0x99,0xe3,0xe6,0x9a,0x48,0x87,0x45,0x50,0xaa,0x68,0x1b,0xd8,0x5c,0xa2, +0x46,0x0a,0x34,0xda,0x90,0x52,0x94,0x45,0x05,0x06,0xa1,0x63,0xc6,0x67,0xaf,0x64, +0x7c,0x8b,0x2f,0xf5,0x07,0x70,0x0a,0x10,0x05,0x04,0x4c,0x6f,0x9a,0xa2,0xc3,0x51, +0xa8,0x51,0xcf,0xb4,0x40,0x83,0x34,0x6e,0xf3,0x40,0x8c,0x19,0x3a,0x8e,0x73,0xaf, +0x65,0xf9,0xb1,0x45,0x42,0x54,0x6a,0x8e,0x70,0x04,0xea,0x8f,0x73,0xa9,0x7e,0x1d, +0xc0,0x04,0x40,0xe4,0x4a,0x37,0x94,0x50,0x8f,0x04,0xeb,0xfc,0xe1,0x14,0x64,0x61, +0x16,0x57,0xe6,0x9b,0xb5,0x29,0x06,0x72,0x41,0x6f,0xb9,0xa3,0xb3,0xab,0xba,0x4d, +0xe4,0x4d,0x09,0xa0,0x37,0x12,0x33,0xbd,0x7a,0xbd,0x86,0x16,0x47,0x3d,0xc3,0x1c, +0xf7,0x09,0x82,0xa1,0xaa,0x14,0xe6,0x8a,0xa1,0x47,0x2f,0x44,0x13,0x60,0x24,0xe9, +0xfe,0x1d,0xcf,0x40,0x41,0x95,0xe0,0xcf,0xab,0x41,0x3e,0x22,0x2a,0xa7,0xeb,0xff, +0x4f,0xaa,0xbc,0xa5,0x7b,0x4d,0x56,0xde,0xf9,0x4d,0x3d,0xcd,0x1e,0x6a,0x81,0x32, +0x88,0x28,0xf0,0x8d,0xdd,0x4e,0x0e,0x1c,0x09,0x65,0x23,0xac,0xe7,0x5a,0xca,0x8a, +0x82,0x51,0x5b,0x92,0x46,0xee,0x36,0x4f,0xef,0x22,0x90,0xdb,0xda,0x4c,0x24,0xf2, +0x84,0xcf,0xff,0x62,0x38,0x9e,0x57,0x60,0x65,0x1c,0xa8,0xf0,0x12,0x97,0xe8,0x09, +0x35,0x8a,0x6c,0x0a,0x01,0x90,0x83,0x1a,0xa1,0x62,0x0f,0x08,0x42,0x90,0xcc,0x8b, +0x58,0xe1,0x8f,0x42,0xa1,0x45,0x24,0x45,0x4a,0x08,0x84,0x23,0x04,0x0e,0x19,0x3a, +0x9e,0xa8,0x8e,0x81,0x02,0x34,0x34,0xc2,0x28,0xff,0xa0,0xf1,0x11,0x85,0x9a,0x88, +0x28,0xef,0xbc,0xaa,0x34,0x19,0x25,0x8a,0xae,0x19,0xb5,0xa4,0x3c,0x2c,0x23,0xbc, +0x5e,0x38,0x43,0x02,0x6a,0xa3,0xc4,0x06,0x4c,0x8d,0x64,0x8a,0x0d,0x4b,0xaa,0xa1, +0xc4,0xd0,0x15,0x03,0x47,0x40,0x01,0xb5,0x66,0x40,0xfa,0x87,0x05,0xeb,0x08,0x66, +0x51,0xe9,0xc8,0x66,0x00,0xf7,0xb4,0x1b,0x57,0x71,0x59,0xb1,0xa0,0x1a,0xb9,0xa2, +0x45,0x00,0x14,0x63,0x61,0xc1,0x14,0x52,0x42,0x10,0xd2,0x87,0x1f,0xa7,0xe6,0x3e, +0xeb,0x4a,0x8c,0x5c,0x6f,0xba,0x8f,0x12,0x90,0x2b,0x82,0x55,0xc0,0x78,0xc6,0x3c, +0xcc,0x76,0x61,0xf7,0x6a,0x5a,0x1e,0x23,0x7c,0x38,0xa5,0x00,0x45,0x34,0x08,0x4c, +0x23,0x80,0x70,0x42,0x10,0xd2,0x87,0x1f,0x6f,0x26,0x3e,0xeb,0x4a,0x8c,0x5c,0x6f, +0xba,0x8f,0x12,0x90,0xe0,0x15,0x78,0x16,0xb3,0xa1,0x04,0x2b,0x20,0x2c,0x0d,0x8a, +0xcb,0x16,0xc4,0x1c,0x50,0x24,0xf3,0xb9,0x06,0x03,0x53,0x69,0xd8,0xe0,0x80,0x70, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x00, +0x00,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x7e,0x24,0x24,0x7e,0x24,0x00, +0x00,0x08,0x3e,0x28,0x3e,0x0a,0x3e,0x08,0x00,0x62,0x64,0x08,0x10,0x26,0x46,0x00, +0x00,0x10,0x28,0x10,0x2a,0x44,0x3a,0x00,0x00,0x08,0x10,0x00,0x00,0x00,0x00,0x00, +0x00,0x04,0x08,0x08,0x08,0x08,0x04,0x00,0x00,0x20,0x10,0x10,0x10,0x10,0x20,0x00, +0x00,0x00,0x14,0x08,0x3e,0x08,0x14,0x00,0x00,0x00,0x08,0x08,0x3e,0x08,0x08,0x00, +0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x10,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x00, +0x00,0x3c,0x46,0x4a,0x52,0x62,0x3c,0x00,0x00,0x18,0x28,0x08,0x08,0x08,0x3e,0x00, +0x00,0x3c,0x42,0x02,0x3c,0x40,0x7e,0x00,0x00,0x3c,0x42,0x0c,0x02,0x42,0x3c,0x00, +0x00,0x08,0x18,0x28,0x48,0x7e,0x08,0x00,0x00,0x7e,0x40,0x7c,0x02,0x42,0x3c,0x00, +0x00,0x3c,0x40,0x7c,0x42,0x42,0x3c,0x00,0x00,0x7e,0x02,0x04,0x08,0x10,0x10,0x00, +0x00,0x3c,0x42,0x3c,0x42,0x42,0x3c,0x00,0x00,0x3c,0x42,0x42,0x3e,0x02,0x3c,0x00, +0x00,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x10,0x10,0x20, +0x00,0x00,0x04,0x08,0x10,0x08,0x04,0x00,0x00,0x00,0x00,0x3e,0x00,0x3e,0x00,0x00, +0x00,0x00,0x10,0x08,0x04,0x08,0x10,0x00,0x00,0x3c,0x42,0x04,0x08,0x00,0x08,0x00, +0x00,0x3c,0x4a,0x56,0x5e,0x40,0x3c,0x00,0x00,0x3c,0x42,0x42,0x7e,0x42,0x42,0x00, +0x00,0x7c,0x42,0x7c,0x42,0x42,0x7c,0x00,0x00,0x3c,0x42,0x40,0x40,0x42,0x3c,0x00, +0x00,0x78,0x44,0x42,0x42,0x44,0x78,0x00,0x00,0x7e,0x40,0x7c,0x40,0x40,0x7e,0x00, +0x00,0x7e,0x40,0x7c,0x40,0x40,0x40,0x00,0x00,0x3c,0x42,0x40,0x4e,0x42,0x3c,0x00, +0x00,0x42,0x42,0x7e,0x42,0x42,0x42,0x00,0x00,0x3e,0x08,0x08,0x08,0x08,0x3e,0x00, +0x00,0x02,0x02,0x02,0x42,0x42,0x3c,0x00,0x00,0x44,0x48,0x70,0x48,0x44,0x42,0x00, +0x00,0x40,0x40,0x40,0x40,0x40,0x7e,0x00,0x00,0x42,0x66,0x5a,0x42,0x42,0x42,0x00, +0x00,0x42,0x62,0x52,0x4a,0x46,0x42,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x3c,0x00, +0x00,0x7c,0x42,0x42,0x7c,0x40,0x40,0x00,0x00,0x3c,0x42,0x42,0x52,0x4a,0x3c,0x00, +0x00,0x7c,0x42,0x42,0x7c,0x44,0x42,0x00,0x00,0x3c,0x40,0x3c,0x02,0x42,0x3c,0x00, +0x00,0xfe,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x3c,0x00, +0x00,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,0x42,0x42,0x42,0x42,0x5a,0x24,0x00, +0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,0x00,0x82,0x44,0x28,0x10,0x10,0x10,0x00, +0x00,0x7e,0x04,0x08,0x10,0x20,0x7e,0x00,0x00,0x0e,0x08,0x08,0x08,0x08,0x0e,0x00, +0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x70,0x00, +0x00,0x10,0x38,0x54,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0x00,0x1c,0x22,0x78,0x20,0x20,0x7e,0x00,0x00,0x00,0x38,0x04,0x3c,0x44,0x3c,0x00, +0x00,0x20,0x20,0x3c,0x22,0x22,0x3c,0x00,0x00,0x00,0x1c,0x20,0x20,0x20,0x1c,0x00, +0x00,0x04,0x04,0x3c,0x44,0x44,0x3c,0x00,0x00,0x00,0x38,0x44,0x78,0x40,0x3c,0x00, +0x00,0x0c,0x10,0x18,0x10,0x10,0x10,0x00,0x00,0x00,0x3c,0x44,0x44,0x3c,0x04,0x38, +0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x00,0x00,0x10,0x00,0x30,0x10,0x10,0x38,0x00, +0x00,0x04,0x00,0x04,0x04,0x04,0x24,0x18,0x00,0x20,0x28,0x30,0x30,0x28,0x24,0x00, +0x00,0x10,0x10,0x10,0x10,0x10,0x0c,0x00,0x00,0x00,0x68,0x54,0x54,0x54,0x54,0x00, +0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00, +0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x40,0x00,0x00,0x3c,0x44,0x44,0x3c,0x04,0x06, +0x00,0x00,0x1c,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x38,0x40,0x38,0x04,0x78,0x00, +0x00,0x10,0x38,0x10,0x10,0x10,0x0c,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x38,0x00, +0x00,0x00,0x44,0x44,0x28,0x28,0x10,0x00,0x00,0x00,0x44,0x54,0x54,0x54,0x28,0x00, +0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00,0x00,0x00,0x44,0x44,0x44,0x3c,0x04,0x38, +0x00,0x00,0x7c,0x08,0x10,0x20,0x7c,0x00,0x00,0x0e,0x08,0x30,0x08,0x08,0x0e,0x00, +0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x70,0x10,0x0c,0x10,0x10,0x70,0x00, +0x00,0x14,0x28,0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x99,0xa1,0xa1,0x99,0x42,0x3c, + + }; diff --git a/programs/emulator/e80/trunk/asm_code.asm b/programs/emulator/e80/trunk/asm_code.asm new file mode 100644 index 0000000000..3947d4aeea --- /dev/null +++ b/programs/emulator/e80/trunk/asm_code.asm @@ -0,0 +1,39 @@ + +format MS COFF + +public Start +public _hStack +public _KOL_PATH +public _KOL_PARAM + +extrn Memory +extrn hEnd + +extrn _kol_main + +section ".text" code + db "MENUET01" + dd 1, Start, hEnd, Memory, _hStack, _KOL_PARAM, _KOL_PATH + +Start: + +; èíèöèàëèçàöèÿ êó÷è +mov eax, 68 +mov ebx, 11 +int 0x40 + +; âûçîâ ãëàâíîé ïðîöåäóðû +mov eax, _kol_main +call eax + +; çàâåðøåíèå ðàáîòû ïðîãðàììû +mov eax, -1 +int 0x40 + +section ".bss" + +_KOL_PARAM rb 256 +_KOL_PATH rb 256 + +rb 16*1024 +_hStack: diff --git a/programs/emulator/e80/trunk/clean.bat b/programs/emulator/e80/trunk/clean.bat new file mode 100644 index 0000000000..01b03318a1 --- /dev/null +++ b/programs/emulator/e80/trunk/clean.bat @@ -0,0 +1,3 @@ +del e80.kex +del backup.sna +del *.o \ No newline at end of file diff --git a/programs/emulator/e80/trunk/compile.bat b/programs/emulator/e80/trunk/compile.bat new file mode 100644 index 0000000000..ccca77aa6f --- /dev/null +++ b/programs/emulator/e80/trunk/compile.bat @@ -0,0 +1,11 @@ +del *.o +fasm asm_code.asm start.o +gcc -c z80/z80.c +gcc -c system/kolibri.c +gcc -c system/stdlib.c +gcc -c system/string.c +gcc -c e80.c +ld -nostdlib -T kolibri.ld -o e80.kex start.o kolibri.o stdlib.o string.o z80.o e80.o +objcopy e80.kex -O binary +kpack e80.kex +pause \ No newline at end of file diff --git a/programs/emulator/e80/trunk/e80.c b/programs/emulator/e80/trunk/e80.c new file mode 100644 index 0000000000..0470e1bc16 --- /dev/null +++ b/programs/emulator/e80/trunk/e80.c @@ -0,0 +1,534 @@ + +#include "system/kolibri.h" +#include "system/stdlib.h" +#include "system/string.h" +#include "z80/z80.h" +#include "48.h" + +#include "system/msgbox.c" + +///============================= + +#define TYPE_NO 0 +#define TYPE_SNA 1 +#define TYPE_Z80 2 + +#define SCREEN_LEN 3*3*256*192*3 + +char WND_CAPTION[] = {"e80 v0.5.1"}; + +extern char KOL_PARAM[256]; +extern char KOL_PATH[256]; + +char szBackup[256]; +char szScreen[256]; + +int fila[5][5]; +int main_tecla, hay_tecla; +int SSCS = 0; + +int debug=0, scanl=0; +int frame_counter; +int target_cycle; +Z80Regs spectrumZ80; + +char *screen; +unsigned screen_w, screen_h; +#define screen_a_w 512 +#define screen_a_h 384 +int flash = 0; +unsigned time = 0; + +///============================= + +#include "keyboard.c" + +///============================= + +int get_ext(char *filename) +{ + +return TYPE_SNA; +} + +///============================= + +void memory_print(Z80Regs *regs, char *filename) +{ +kol_struct70 file; + +file.p00 = 2; +file.p04 = 0; +file.p08 = 0; +file.p12 = 64*1024; +file.p16 = (unsigned)(regs->RAM); +file.p20 = 0; +file.p21 = filename; + +kol_file_70(&file); +} + + +///============================= + +void all_print(Z80Regs *regs, char *filename) +{ +kol_struct70 file; + +file.p00 = 2; +file.p04 = 0; +file.p08 = 0; +file.p12 = sizeof (Z80Regs); +file.p16 = (unsigned)regs; +file.p20 = 0; +file.p21 = filename; + +kol_file_70(&file); +} + +///============================= + +void screen_print(Z80Regs *regs) +{ + +kol_struct70 file; + +char palette[]= + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xB0, 0x00, 0x00, 0xB0, 0x00, 0x00, + 0x00, 0x00, 0xB0, 0x00, 0x00, 0xB0, + 0xB0, 0x00, 0xB0, 0xB0, 0x00, 0xB0, + 0x00, 0xB0, 0x00, 0x00, 0xB0, 0x00, + 0xB0, 0xB0, 0x00, 0xB0, 0xB0, 0x00, + 0x00, 0xB0, 0xB0, 0x00, 0xB0, 0xB0, + 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, + 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, + 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF + }; + +char *scr; +char *atr; + +char a, c, s; +int i, j, k, l, m; +unsigned bri; +char *color; +char *addr; +int n = 0; +int z = 0; +int x, y; + +scr = malloc(6144); +atr = malloc(768); + +memcpy(scr, regs->RAM + 0x4000 , 6144); +memcpy(atr, regs->RAM + 0x5800 , 768); + +for (j = 0; j < 3 ; j++) +for (i = 0; i < 8; i++) +for (k = 0; k < 8; k++) +for (l = 0; l < 32; l++) + { + c = scr[j*2048 + k*256 + i*32 + l]; + for (m = 0; m < 8; m++) + { + s = (c & 128) >> 7; + a = atr[j*256 + i*32 + l]; + + if ( (a & 64) == 64 ) + bri = 8; + else + bri = 0; + + if ( 0 == s ) + { + if (!(flash && (128 == (a&128)))) + color = &palette[6*(bri+((a>>3)&7))]; + else + color = &palette[6*(bri+(a&7))]; + + addr = screen + 2*screen_a_w*3*z + 2*3*n; + + for (y = 0; y < 2; y++) + memcpy( addr + y*screen_a_w*3, + color, 6); + } + else + { + if (!(flash && (128 == (a&128)))) + color = &palette[6*(bri+(a&7))]; + else + color = &palette[6*(bri+((a>>3)&7))]; + + addr = screen + 2*screen_a_w*3*z + 2*3*n; + + for (y = 0; y < 2; y++) + memcpy( addr + y*screen_a_w*3, + color, 6); + } + + n++; + if (256 == n) + { + n = 0; + z++; + } + + c <<= 1; + } + } + +if ( 33 < (kol_time_tick() - time)) +{ +if (0 == flash) + flash = 1; +else + flash = 0; +time = kol_time_tick(); +} + +free(scr); +free(atr); + +} + +///============================= + +void memory_load_z80(Z80Regs *regs, char *filename) +{ +char header[30]; +kol_struct70 file; + +file.p00 = 0; +file.p04 = 0; +file.p08 = 0; +file.p12 = 30; +file.p16 = (unsigned) header; +file.p20 = 0; +file.p21 = filename; +} + +///============================= + +void memory_load_sna(Z80Regs *regs, char *filename) +{ +char buffer[27]; +kol_struct70 file; + +file.p00 = 0; +file.p04 = 0; +file.p08 = 0; +file.p12 = 27; +file.p16 = (unsigned) buffer; +file.p20 = 0; +file.p21 = filename; + +kol_file_70(&file); + +regs->I = buffer[ 0]; +regs->HLs.B.l = buffer[ 1]; +regs->HLs.B.h = buffer[ 2]; +regs->DEs.B.l = buffer[ 3]; +regs->DEs.B.h = buffer[ 4]; +regs->BCs.B.l = buffer[ 5]; +regs->BCs.B.h = buffer[ 6]; +regs->AFs.B.l = buffer[ 7]; +regs->AFs.B.h = buffer[ 8]; +regs->HL.B.l = buffer[ 9]; +regs->HL.B.h = buffer[10]; +regs->DE.B.l = buffer[11]; +regs->DE.B.h = buffer[12]; +regs->BC.B.l = buffer[13]; +regs->BC.B.h = buffer[14]; +regs->IY.B.l = buffer[15]; +regs->IY.B.h = buffer[16]; +regs->IX.B.l = buffer[17]; +regs->IX.B.h = buffer[18]; +regs->IFF1 = regs->IFF2 = (buffer[19]&0x04) >>2; +regs->R.W = buffer[20]; +regs->AF.B.l = buffer[21]; +regs->AF.B.h = buffer[22]; +regs->SP.B.l =buffer[23]; +regs->SP.B.h =buffer[24]; +regs->IM = buffer[25]; +regs->BorderColor = buffer[26]; + +file.p00 = 0; +file.p04 = 27; +file.p08 = 0; +file.p12 = 0x4000*3; +file.p16 = (unsigned) regs->RAM+16384; +file.p20 = 0; +file.p21 = filename; + +kol_file_70(&file); + +regs->PC.B.l = Z80MemRead(regs->SP.W, regs); +regs->SP.W++; +regs->PC.B.h = Z80MemRead(regs->SP.W, regs); +regs->SP.W++; + +} + + +///============================= + +void memory_save_sna(Z80Regs *regs, char *filename) +{ +char buffer[27]; +unsigned char sptmpl, sptmph; +kol_struct70 file; + +buffer[ 0] = regs->I; +buffer[ 1] = regs->HLs.B.l; +buffer[ 2] = regs->HLs.B.h; +buffer[ 3] = regs->DEs.B.l; +buffer[ 4] = regs->DEs.B.h; +buffer[ 5] = regs->BCs.B.l; +buffer[ 6] = regs->BCs.B.h; +buffer[ 7] = regs->AFs.B.l; +buffer[ 8] = regs->AFs.B.h; +buffer[ 9] = regs->HL.B.l; +buffer[10] = regs->HL.B.h; +buffer[11] = regs->DE.B.l; +buffer[12] = regs->DE.B.h; +buffer[13] = regs->BC.B.l; +buffer[14] = regs->BC.B.h; +buffer[15] = regs->IY.B.l; +buffer[16] = regs->IY.B.h; +buffer[17] = regs->IX.B.l; +buffer[18] = regs->IX.B.h; +buffer[19] = regs->IFF1 << 2; +buffer[20] = regs->R.W & 0xFF; +buffer[21] = regs->AF.B.l; +buffer[22] = regs->AF.B.h; + +sptmpl = Z80MemRead( regs->SP.W-1, regs ); +sptmph = Z80MemRead( regs->SP.W-2, regs ); + +Z80MemWrite( --(regs->SP.W), regs->PC.B.h, regs); +Z80MemWrite( --(regs->SP.W), regs->PC.B.l, regs); + +buffer[23] = regs->SP.B.l; +buffer[24] = regs->SP.B.h; +buffer[25] = regs->IM; +buffer[26] = regs->BorderColor; + +file.p00 = 2; +file.p04 = 0; +file.p08 = 0; +file.p12 = 27; +file.p16 = (unsigned) buffer; +file.p20 = 0; +file.p21 = filename; + +kol_file_70(&file); + +file.p00 = 3; +file.p04 = 27; +file.p08 = 0; +file.p12 = 0x4000*3; +file.p16 = (unsigned) regs->RAM+16384; +file.p20 = 0; +file.p21 = filename; + +kol_file_70(&file); + +regs->SP.W += 2; +Z80MemWrite( regs->SP.W-1, sptmpl, regs ); +Z80MemWrite( regs->SP.W-2, sptmph, regs ); + +} + + +///============================= + +void memory_save_scr(Z80Regs *regs, char *filename) +{ +kol_struct70 file; + + +file.p00 = 2; +file.p04 = 0x4000; +file.p08 = 0; +file.p12 = 6912; +file.p16 = (unsigned) regs->RAM+16384; +file.p20 = 0; +file.p21 = filename; + +kol_file_70(&file); + +} + + +///============================= + +void wnd_draw() +{ +kol_paint_start(); +kol_wnd_define( (screen_w-540)/2, (screen_h-440)/2, 540, 440, 0x34b0b0b0); +kol_wnd_caption(WND_CAPTION); +screen_print(&spectrumZ80); +kol_paint_image((540 - screen_a_w)/2-5, + (440 - screen_a_h-kol_skin_height())/2, + screen_a_w, screen_a_h, screen); +kol_paint_end(); +} + +///============================= + +void kol_main() +{ + +unsigned event; +unsigned key; + +for (event = strlen(KOL_PATH); event > 0; --event) + if ( '/' == KOL_PATH[event] ) + { + KOL_PATH[event+1]=0; + break; + } + +strcpy(szBackup, KOL_PATH); +strcpy(szScreen, KOL_PATH); +strcat(szBackup, "backup.sna"); +strcat(szScreen, "screen.scr"); + +kol_screen_get_size(&screen_w, &screen_h); + +screen = malloc(SCREEN_LEN); +spectrumZ80.RAM = (char*) malloc(64*1024); +memcpy(spectrumZ80.RAM, BIOS48, 16*1024); + +Z80Reset( &spectrumZ80, 69888 ); +Z80FlagTables(); + +fila[1][1] = fila[1][2] = fila[2][2] = fila[3][2] = fila[4][2] = + fila[4][1] = fila[3][1] = fila[2][1] = 0xFF; + +debug = 0; + +if (KOL_PARAM != NULL) + { + int type = get_ext(KOL_PARAM); + + if (TYPE_SNA == type) + memory_load_sna(&spectrumZ80, KOL_PARAM); + } + +hay_tecla = main_tecla = 0; +//keyboard_process(0); + +kol_key_mode_set(1); + +for (;;) + { + +// event = kol_event_check(); + event = kol_event_wait_time(1); + + switch (event) + { + + case 1: + wnd_draw(); + break; + + case 2: + key = (kol_key_get()>>8)&0xff; + + switch (key) + { + case 60: // F2 + if ( IDOK == MessageBox("Save snapshot?", + WND_CAPTION, MB_OKCANCEL) ) + memory_save_sna(&spectrumZ80, + szBackup); + break; + + case 61: // F3 + if ( IDOK == MessageBox("Load snapshot?", + WND_CAPTION, MB_OKCANCEL) ) + memory_load_sna(&spectrumZ80, + szBackup); + break; + + case 62: // F4 + if ( IDOK == MessageBox("Save screenshot?", + WND_CAPTION, MB_OKCANCEL) ) + memory_save_scr(&spectrumZ80, + szScreen); + break; + + case 88: // F12 Reset + if ( IDOK == MessageBox("Reset?", + WND_CAPTION, MB_OKCANCEL) ) + { + Z80Reset( &spectrumZ80, 69888 ); + Z80FlagTables(); + fila[1][1] = fila[1][2] = + fila[2][2] = fila[3][2] = + fila[4][2] = fila[4][1] = + fila[3][1] = fila[2][1] = 0xFF; + } + break; + + default: + keyboard_process(key); + }; + + break; + + case 3: + if ( 1 == (kol_btn_get() & 0xff00)>>8 ) + { + free(screen); + free(spectrumZ80.RAM); + kol_exit(); + } + break; + + default: + if (0 == debug) + { + + Z80Run( &spectrumZ80, 224*64 ); + for( scanl=0; scanl<192; scanl++ ) + Z80Run( &spectrumZ80, 224 ); + + Z80Run( &spectrumZ80, 224*56 ); + + if( target_cycle < 2 || frame_counter == 0 ) + { + screen_print(&spectrumZ80); + kol_screen_wait_rr(); + kol_paint_image((540 - screen_a_w)/2-5, + (440 - screen_a_h-kol_skin_height())/2, + screen_a_w, screen_a_h, screen); + } + + while( target_cycle == 0 ) + { + target_cycle--; + frame_counter++; + } + } + break; + + }; + + } + +} + +///============================= + diff --git a/programs/emulator/e80/trunk/games/othello.sna b/programs/emulator/e80/trunk/games/othello.sna new file mode 100644 index 0000000000000000000000000000000000000000..1e79e4f1ae19a439bb80c371867ef743a057b60b GIT binary patch literal 49179 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 Kv550n`TqktOXbi2 literal 0 HcmV?d00001 diff --git a/programs/emulator/e80/trunk/keyboard.c b/programs/emulator/e80/trunk/keyboard.c new file mode 100644 index 0000000000..5bfe750952 --- /dev/null +++ b/programs/emulator/e80/trunk/keyboard.c @@ -0,0 +1,408 @@ + +///============================= + +void keyboard_process(unsigned key) +{ + +switch (key) + { + + case 42: // L-Shift Down + case 54: // R-Shift Down + fila[4][1] &= 0xFE; + break; + + case 42+128: // L-Shift Up + case 54+128: // R-Shift Up + fila[4][1] |= 1; + break; + + case 29: // Ctrl Down + fila[4][2] &= 0xFD; + break; + + case 29+128: // Ctrl Up + fila[4][2] |= 2; + break; + + case 56: // Alt Down + fila[4][1] &= 0xFE; + fila[4][2] &= 0xFD; + break; + + case 56+128: // Alt Up + fila[4][1] |= 1; + fila[4][2] |= 2; + break; + + case 28: // Enter Down + fila[3][2] &= 0xFE; + break; + + case 28+128: // Enter Up + fila[3][2] |= 1; + break; + + + case 2: // 1 Down + fila[1][1] &= 0xFE; + break; + + case 2+128: // 1 Up + fila[1][1] |= 1; + break; + + case 3: // 2 Down + fila[1][1] &= 0xFD; + break; + + case 3+128: // 2 Up + fila[1][1] |= 2; + break; + + case 4: // 3 Down + fila[1][1] &= 0xFB; + break; + + case 4+128: // 3 Up + fila[1][1] |= 4; + break; + + case 5: // 4 Down + fila[1][1] &= 0xF7; + break; + + case 5+128: // 4 Up + fila[1][1] |= 8; + break; + + case 6: // 5 Down + fila[1][1] &= 0xEF; + break; + + case 6+128: // 5 Up + fila[1][1] |= 16; + break; + + case 7: // 6 Down + fila[1][2] &= 0xEF; + break; + + case 7+128: // 6 Up + fila[1][2] |= 16; + break; + + case 8: // 7 Down + fila[1][2] &= 0xF7; + break; + + case 8+128: // 7 Up + fila[1][2] |= 8; + break; + + case 9: // 8 Down + fila[1][2] &= 0xFB; + break; + + case 9+128: // 8 Up + fila[1][2] |= 4; + break; + + case 10: // 9 Down + fila[1][2] &= 0xFD; + break; + + case 10+128: // 9 Up + fila[1][2] |= 2; + break; + + case 11: // 0 Down + fila[1][2] &= 0xFE; + break; + + case 11+128: // 0 Up + fila[1][2] |= 1; + break; + + case 16: // Q Down + fila[2][1] &= 0xFE; + break; + + case 16+128: // Q Up + fila[2][1] |= 1; + break; + + case 17: // W Down + fila[2][1] &= 0xFD; + break; + + case 17+128: // W Up + fila[2][1] |= 2; + break; + + case 18: // E Down + fila[2][1] &= 0xFB; + break; + + case 18+128: // E Up + fila[2][1] |= 4; + break; + + case 19: // R Down + fila[2][1] &= 0xF7; + break; + + case 19+128: // R Up + fila[2][1] |= 8; + break; + + case 20: // T Down + fila[2][1] &= 0xEF; + break; + + case 20+128: // T Up + fila[2][1] |= 16; + break; + + case 21: // Y Down + fila[2][2] &= 0xEF; + break; + + case 21+128: // Y Up + fila[2][2] |= 16; + break; + + case 22: // U Down + fila[2][2] &= 0xF7; + break; + + case 22+128: // U Up + fila[2][2] |= 8; + break; + + case 23: // I Down + fila[2][2] &= 0xFB; + break; + + case 23+128: // I Up + fila[2][2] |= 4; + break; + + case 24: // O Down + fila[2][2] &= 0xFD; + break; + + case 24+128: // O Up + fila[2][2] |= 2; + break; + + case 25: // P Down + fila[2][2] &= 0xFE; + break; + + case 25+128: // P Up + fila[2][2] |= 1; + break; + + case 30: // A Down + fila[3][1] &= 0xFE; + break; + + case 30+128: // A Up + fila[3][1] |= 1; + break; + + case 31: // S Down + fila[3][1] &= 0xFD; + break; + + case 31+128: // S Up + fila[3][1] |= 2; + break; + + case 32: // D Down + fila[3][1] &= 0xFB; + break; + + case 32+128: // D Up + fila[3][1] |= 4; + break; + + case 33: // F Down + fila[3][1] &= 0xF7; + break; + + case 33+128: // F Up + fila[3][1] |= 8; + break; + + case 34: // G Down + fila[3][1] &= 0xEF; + break; + + case 34+128: // G Up + fila[3][1] |= 16; + break; + + case 35: // H Down + fila[3][2] &= 0xEF; + break; + + case 35+128: // H Up + fila[3][2] |= 16; + break; + + case 36: // J Down + fila[3][2] &= 0xF7; + break; + + case 36+128: // J Up + fila[3][2] |= 8; + break; + + case 37: // K Down + fila[3][2] &= 0xFB; + break; + + case 37+128: // K Up + fila[3][2] |= 4; + break; + + case 38: // L Down + fila[3][2] &= 0xFD; + break; + + case 38+128: // L Up + fila[3][2] |= 2; + break; + + case 44: // Z Down + fila[4][1] &= 0xFD; + break; + + case 44+128: // Z Up + fila[4][1] |= 2; + break; + + case 45: // X Down + fila[4][1] &= 0xFB; + break; + + case 45+128: // X Up + fila[4][1] |= 4; + break; + + case 46: // C Down + fila[4][1] &= 0xF7; + break; + + case 46+128: // C Up + fila[4][1] |= 8; + break; + + case 47: // V Down + fila[4][1] &= 0xEF; + break; + + case 47+128: // V Up + fila[4][1] |= 16; + break; + + case 48: // B Down + fila[4][2] &= 0xEF; + break; + + case 48+128: // B Up + fila[4][2] |= 16; + break; + + case 49: // N Down + fila[4][2] &= 0xF7; + break; + + case 49+128: // N Up + fila[4][2] |= 8; + break; + + case 50: // M Down + fila[4][2] &= 0xFB; + break; + + case 50+128: // M Up + fila[4][2] |= 4; + break; + + case 57: // Space Down + fila[4][2] &= 0xFE; + break; + + case 57+128: // Space Up + fila[4][2] |= 1; + break; + + case 14: // Backspace Down + fila[1][2] &= 0xFE; + fila[4][1] &= 0xFE; + break; + + case 14+128: // Backspace Up + fila[1][2] |= 1; + fila[4][1] |= 1; + break; + + case 12: // - Down + fila[3][2] &= 0xF7; + fila[4][2] &= 0xFD; + break; + + case 12+128: // - Up + fila[3][2] |= 8; + fila[4][2] |= 2; + break; + + case 53: // / Down + fila[4][1] &= 0xEF; + fila[4][2] &= 0xFD; + break; + + case 53+128: // / Up + fila[4][1] |= 16; + fila[4][2] |= 2; + break; + + case 52: // . Down + fila[4][2] &= 0xFB; + fila[4][2] &= 0xFD; + break; + + case 52+128: // . Up + fila[4][2] |= 4; + fila[4][2] |= 2; + break; + + case 51: // , Down + fila[4][2] &= 0xF7; + fila[4][2] &= 0xFD; + break; + + case 51+128: // , Up + fila[4][2] |= 8; + fila[4][2] |= 2; + break; + + case 13: // = Down + fila[3][2] &= 0xFD; + fila[4][2] &= 0xFD; + break; + + case 13+128: // = Up + fila[3][2] |= 2; + fila[4][2] |= 2; + break; + + }; + +} + +///============================= + diff --git a/programs/emulator/e80/trunk/keyboard.png b/programs/emulator/e80/trunk/keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..36f6ef91c1e391e11399573bc73016631fd91074 GIT binary patch literal 7879 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 C@lpZ+ literal 0 HcmV?d00001 diff --git a/programs/emulator/e80/trunk/kolibri.ld b/programs/emulator/e80/trunk/kolibri.ld new file mode 100644 index 0000000000..23841f98db --- /dev/null +++ b/programs/emulator/e80/trunk/kolibri.ld @@ -0,0 +1,20 @@ +/*OUTPUT_FORMAT("binary")*/ +ENTRY(Start) +SECTIONS +{ + .text 0x000000: + { + *(.text) + } + + .data : { + *(.data) + hEnd = . ; + } + + .bss : + { + *(.bss) + } + Memory = . ; +} diff --git a/programs/emulator/e80/trunk/readme.txt b/programs/emulator/e80/trunk/readme.txt new file mode 100644 index 0000000000..97190901fe --- /dev/null +++ b/programs/emulator/e80/trunk/readme.txt @@ -0,0 +1,45 @@ + + ============================================ + e80. Âåðñèÿ 0.5.1 15 ôåâðàëÿ 2010 ãîäà + ============================================ + + Ýìóëÿòîð ZX-Spectrum äëÿ ÎÑ Êîëèáðè. + + Äëÿ çàïóñêà ïðîãðàìì íóæíî â KFAR + ñäåëàòü àññîöèàöèþ ñ ôàéëàìè SNA. + + Àâòîð ÿäðà ýìóëÿòîðà Z80: + Santiago Romero Iglesias, + sromero@escomposlinux.org + + ============================================ + + Âíèìàíèå! + + Ýìóëÿòîð ïîâòîðÿåò êëàâèàòóðó + ðåàëüíîãî Ñïåêòðóìà. + + Ïîýòîìó ñì. ôàéë keyboard.png + + Êëàâèøà Shift ñîîòâåòñòâóåò CS (CAPS SHIFT) + Êëàâèøà Ctrl ñîîòâåòñòâóåò SS (SYMBOL SHIFT) + Êëàâèøà Alt ñîîòâåòñòâóåò ïåðåêëþ÷åíèþ CS+SS + + ============================================ + + Äðóãèå êëàâèøè: + + F12 - ïåðåçàãðóçêà ýìóëÿòîðà + + F2 - ñîõðàíåíèå â òåêóùóþ ïàïêó + ôàéëà backup.sna + + F3 - çàãðóçêà èç òåêóùåé ïàïêè + ôàéëà backup.sna + + F4 - ñîõðàíåíèå â òåêóùóþ ïàïêó + ôàéëà screen.scr + + ============================================ + Àëåêñàíäð Áîãîìàç, albom85@yandex.ru + http://albom06.boom.ru diff --git a/programs/emulator/e80/trunk/system/kolibri.c b/programs/emulator/e80/trunk/system/kolibri.c new file mode 100644 index 0000000000..c5a8deb4ca --- /dev/null +++ b/programs/emulator/e80/trunk/system/kolibri.c @@ -0,0 +1,412 @@ + +#include "kolibri.h" +#include "string.h" + + +extern char KOL_PATH[256]; +extern char KOL_PARAM[256]; +extern char KOL_DIR[256]; + + +void kol_exit() +{ +asm ("int $0x40"::"a"(-1)); +} + + +void kol_sleep(unsigned d) +{ +asm ("int $0x40"::"a"(5), "b"(d)); +} + + +void kol_wnd_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned c) +{ +asm ("nop"::"a"(0), "b"(x*65536+w), "c"(y*65536+h), "d"(c)); +asm ("movl $0xffffff, %esi \n int $0x40"); +} + + +void kol_wnd_move(unsigned x, unsigned y) +{ +asm ("nop"::"a"(67), "b"(x), "c"(y)); +asm ("movl $-1, %edx \n movl $-1, %esi \n int $0x40"); +} + + +void kol_event_mask(unsigned e) +{ +asm ("int $0x40"::"a"(40), "b"(e)); +} + + +unsigned kol_event_wait() +{ +asm ("int $0x40"::"a"(10)); +} + + +unsigned kol_event_wait_time(unsigned time) +{ +asm ("int $0x40"::"a"(23), "b"(time)); +} + + +unsigned kol_event_check() +{ +asm ("int $0x40"::"a"(11)); +} + + +void kol_paint_start() +{ +asm ("int $0x40"::"a"(12), "b"(1)); +} + + +void kol_paint_end() +{ +asm ("int $0x40"::"a"(12), "b"(2)); +} + + +void kol_paint_pixel(unsigned x, unsigned y, unsigned c) +{ +asm ("int $0x40"::"a"(1), "b"(x), "c"(y), "d"(c)); +} + + +void kol_paint_bar(unsigned x, unsigned y, unsigned w, unsigned h, unsigned c) +{ +asm ("int $0x40"::"a"(13), "b"(x*65536+w), "c"(y*65536+h), "d"(c)); +} + + +void kol_paint_line(unsigned x1, unsigned y1, unsigned x2, unsigned y2, unsigned c) +{ +asm ("int $0x40"::"a"(38), "b"(x1*65536+x2), "c"(y1*65536+y2), "d"(c)); +} + + +void kol_paint_string(unsigned x, unsigned y, char *s, unsigned c) +{ +asm ("int $0x40"::"a"(4), "b"(x*65536+y), "c"(c), "d"(s)); +} + + +void kol_paint_image(unsigned x, unsigned y, unsigned w, unsigned h, char *d) +{ +asm ("int $0x40"::"a"(7), "c"(w*65536+h), "d"(x*65536+y), "b"(d)); +} + + +void kol_paint_image_pal(unsigned x, unsigned y, unsigned w, unsigned h, char *d, unsigned *palette) +{ +asm ("nop"::"c"(w*65536+h), "d"(x*65536+y), "b"(d)); +asm ("nop"::"a"(palette)); +asm ("movl %eax, %edi"); +asm ("xor %eax, %eax"); +asm ("movl %eax, %ebp"); +asm ("pushl $8"); +asm ("popl %esi"); +asm ("int $0x40"::"a"(65)); +} + + +unsigned kol_key_get() +{ +asm ("int $0x40"::"a"(2)); +} + + +unsigned kol_key_control() +{ +asm ("int $0x40"::"a"(66), "b"(3)); +} + + +void kol_key_lang_set(unsigned lang) +{ +asm ("int $0x40"::"a"(21), "b"(2), "c"(9), "d"(lang)); +} + + +unsigned kol_key_lang_get() +{ +asm ("int $0x40"::"a"(26), "b"(2), "c"(9)); +} + + +void kol_key_mode_set(unsigned mode) +{ +asm ("int $0x40"::"a"(66), "b"(1), "c"(mode)); +} + + +unsigned kol_key_mode_get() +{ +asm ("int $0x40"::"a"(66), "b"(2)); +} + + +unsigned kol_btn_get() +{ +asm ("int $0x40"::"a"(17)); +} + + +void kol_btn_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned d, unsigned c) +{ +asm ("nop"::"b"(x*65536+w), "c"(y*65536+h), "d"(d)); +asm ("nop"::"a"(c)); +asm ("movl %eax, %esi"); +asm ("int $0x40"::"a"(8)); +} + + +void kol_btn_type(unsigned t) +{ +asm ("int $0x40"::"a"(48), "b"(1), "c"(t)); +} + + +void kol_wnd_caption(char *s) +{ +asm ("int $0x40"::"a"(71), "b"(1), "c"(s)); +} + + +unsigned kol_mouse_pos() +{ +asm ("int $0x40"::"a"(37), "b"(0)); +} + + +unsigned kol_mouse_posw() +{ +asm ("int $0x40"::"a"(37), "b"(1)); +} + + +unsigned kol_mouse_btn() +{ +asm ("int $0x40"::"a"(37), "b"(2)); +} + + +void kol_board_putc(char c) +{ +asm ("int $0x40"::"a"(63), "b"(1), "c"(c)); +} + + +void kol_board_puts(char *s) +{ +unsigned i; +i = 0; +while (*(s+i)) + { + asm ("int $0x40"::"a"(63), "b"(1), "c"(*(s+i))); + i++; + } +} + + +void kol_board_puti(int n) +{ +char c; +int i = 0; +do + { + c = n % 10 + '0'; + asm ("int $0x40"::"a"(63), "b"(1), "c"(c)); + i++; + } + while ((n /= 10) > 0); +} + + +int kol_file_70(kol_struct70 *k) +{ +asm ("int $0x40"::"a"(70), "b"(k)); +} + + +kol_struct_import* kol_cofflib_load(char *name) +{ +asm ("int $0x40"::"a"(68), "b"(19), "c"(name)); +} + + +void* kol_cofflib_procload (kol_struct_import *imp, char *name) +{ +int i; +for (i=0;;i++) + if ( NULL == ((imp+i) -> name)) + break; + else + if ( 0 == strcmp(name, (imp+i)->name) ) + return (imp+i)->data; +return NULL; +} + + +unsigned kol_cofflib_procnum (kol_struct_import *imp) +{ +unsigned i, n; + +for (i=n=0;;i++) + if ( NULL == ((imp+i) -> name)) + break; + else + n++; + +return n; +} + + +void kol_cofflib_procname (kol_struct_import *imp, char *name, unsigned n) +{ +unsigned i; +*name = 0; + +for (i=0;;i++) + if ( NULL == ((imp+i) -> name)) + break; + else + if ( i == n ) + { + strcpy(name, ((imp+i)->name)); + break; + } + +} + + +unsigned kol_system_cpufreq() +{ +asm ("int $0x40"::"a"(18), "b"(5)); +} + + +unsigned kol_system_mem() +{ +asm ("int $0x40"::"a"(18), "b"(17)); +} + + +unsigned kol_system_memfree() +{ +asm ("int $0x40"::"a"(18), "b"(16)); +} + + +unsigned kol_system_time_get() +{ +asm ("int $0x40"::"a"(3)); +} + + +unsigned kol_system_date_get() +{ +asm ("int $0x40"::"a"(29)); +} + + +unsigned kol_system_end(unsigned param) +{ +asm ("int $0x40"::"a"(18), "b"(9), "c"(param)); +} + + +void kol_path_file2dir(char *dir, char *fname) +{ +unsigned i; +strcpy (dir, fname); +for ( i = strlen(dir);; --i) + if ( '/' == dir[i]) + { + dir[i] = '\0'; + return; + } +} + + +void kol_path_full(char *full, char *fname) +{ +char temp[256]; + +switch (*fname) +{ + +case '/': + strncpy(temp, fname+1, 2); + temp[2]=0; + if ( (!strcmp("rd", temp)) || (!strcmp("hd", temp)) || (!strcmp("cd", temp)) ) + strcpy (full, fname); + break; + +case '.': + break; + +default: + break; + +}; + +} + + + +void kol_screen_wait_rr() +{ +asm ("int $0x40"::"a"(18), "b"(14)); +} + + + +void kol_screen_get_size(unsigned *w, unsigned *h) +{ +unsigned size; +asm ("int $0x40":"=a"(size):"a"(14)); +*w = size / 65536; +*h = size % 65536; +} + + + +unsigned kol_skin_height() +{ +asm ("int $0x40"::"a"(48), "b"(4)); +} + + +unsigned kol_thread_start(unsigned start, unsigned stack) +{ +asm ("int $0x40"::"a"(51), "b"(1), "c"(start), "d"(stack)); +} + + +unsigned kol_time_tick() +{ +asm ("int $0x40"::"a"(26), "b"(9)); +} + + +unsigned kol_sound_speaker(char data[]) +{ +asm ("movl %0, %%esi"::"a"(data)); +asm ("int $0x40"::"a"(55), "b"(55)); +} + + +unsigned kol_process_info(unsigned slot, char buf1k[]) +{ +asm ("int $0x40"::"a"(9), "b"(buf1k), "c"(slot)); +} + + +int kol_process_kill_pid(unsigned process) +{ +asm ("int $0x40"::"a"(18), "b"(18), "c"(process)); +} diff --git a/programs/emulator/e80/trunk/system/kolibri.h b/programs/emulator/e80/trunk/system/kolibri.h new file mode 100644 index 0000000000..53575d1a72 --- /dev/null +++ b/programs/emulator/e80/trunk/system/kolibri.h @@ -0,0 +1,90 @@ + +#define NULL ((void*)0) + +typedef struct +{ +unsigned p00 __attribute__((packed)); +unsigned p04 __attribute__((packed)); +unsigned p08 __attribute__((packed)); +unsigned p12 __attribute__((packed)); +unsigned p16 __attribute__((packed)); +char p20 __attribute__((packed)); +char *p21 __attribute__((packed)); +} kol_struct70 __attribute__((packed)); + + +typedef struct +{ +unsigned p00 __attribute__((packed)); +char p04 __attribute__((packed)); +char p05[3] __attribute__((packed)); +unsigned p08 __attribute__((packed)); +unsigned p12 __attribute__((packed)); +unsigned p16 __attribute__((packed)); +unsigned p20 __attribute__((packed)); +unsigned p24 __attribute__((packed)); +unsigned p28 __attribute__((packed)); +unsigned p32[2] __attribute__((packed)); +unsigned p40 __attribute__((packed)); +} kol_struct_BDVK __attribute__((packed)); + +typedef struct +{ +char *name __attribute__((packed)); +void *data __attribute__((packed)); +} kol_struct_import __attribute__((packed)); + + +void kol_exit(); +void kol_sleep(unsigned d); +void kol_wnd_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned c); +void kol_wnd_move(unsigned x, unsigned y); +void kol_wnd_caption(char *s); +void kol_event_mask(unsigned e); +unsigned kol_event_wait(); +unsigned kol_event_wait_time(unsigned time); +unsigned kol_event_check(); +void kol_paint_start(); +void kol_paint_end(); +void kol_paint_pixel(unsigned x, unsigned y, unsigned c); +void kol_paint_bar(unsigned x, unsigned y, unsigned w, unsigned h, unsigned c); +void kol_paint_line(unsigned x1, unsigned y1, unsigned x2, unsigned y2, unsigned c); +void kol_paint_string(unsigned x, unsigned y, char *s, unsigned c); +void kol_paint_image(unsigned x, unsigned y, unsigned w, unsigned h, char *d); +void kol_paint_image_pal(unsigned x, unsigned y, unsigned w, unsigned h, char *d, unsigned *palette); +unsigned kol_key_get(); +unsigned kol_key_control(); +void kol_key_lang_set(unsigned lang); +unsigned kol_key_lang_get(); +void kol_key_mode_set(unsigned mode); +unsigned kol_key_mode_get(); +void kol_btn_define(unsigned x, unsigned y, unsigned w, unsigned h, unsigned d, unsigned c); +unsigned kol_btn_get(); +void kol_btn_type(unsigned t); +unsigned kol_mouse_pos(); +unsigned kol_mouse_posw(); +unsigned kol_mouse_btn(); +void kol_board_putc(char c); +void kol_board_puts(char *s); +void kol_board_puti(int n); +int kol_file_70(kol_struct70 *k); +kol_struct_import* kol_cofflib_load(char *name); +void* kol_cofflib_procload (kol_struct_import *imp, char *name); +unsigned kol_cofflib_procnum (kol_struct_import *imp); +void kol_cofflib_procname (kol_struct_import *imp, char *name, unsigned n); +unsigned kol_system_end(unsigned param); +unsigned kol_system_cpufreq(); +unsigned kol_system_mem(); +unsigned kol_system_memfree(); +unsigned kol_system_time_get(); +unsigned kol_system_date_get(); +void kol_path_file2dir(char *dir, char *fname); +void kol_path_full(char *full, char *fname); +void kol_screen_wait_rr(); +void kol_screen_get_size(unsigned *w, unsigned *h); +unsigned kol_skin_height(); +unsigned kol_thread_start(unsigned start, unsigned stack); +unsigned kol_time_tick(); +unsigned kol_sound_speaker(char data[]); +unsigned kol_process_info(unsigned slot, char buf1k[]); +int kol_process_kill_pid(unsigned process); diff --git a/programs/emulator/e80/trunk/system/msgbox.c b/programs/emulator/e80/trunk/system/msgbox.c new file mode 100644 index 0000000000..fda06dee3d --- /dev/null +++ b/programs/emulator/e80/trunk/system/msgbox.c @@ -0,0 +1,167 @@ + +///============================= + +#define MB_OK 0 +#define MB_OKCANCEL 1 +#define MB_ABORTRETRYIGNORE 2 +#define MB_YESNOCANCEL 3 +#define MB_YESNO 4 +#define MB_RETRYCANCEL 5 + +#define IDOK 1 +#define IDCANCEL 2 +#define IDABORT 3 +#define IDRETRY 4 +#define IDIGNORE 5 +#define IDYES 6 +#define IDNO 7 + +///============================= + +#define LANG_EN + +#ifdef LANG_RU +char BTN_OK[]={"OK"}; +char BTN_CANCEL[]={"Žâ¬¥­ "}; +char BTN_ABORT[]={"४à â¨âì"}; +char BTN_RETRY[]={"®¢â®à¨âì"}; +char BTN_INGNORE[]={"ˆ£­®à¨à®¢ âì"}; +char BTN_NO[]={"¥â"}; +#endif + +#ifdef LANG_EN +char BTN_OK[]={"OK"}; +char BTN_CANCEL[]={"Cancel"}; +char BTN_ABORT[]={"Abort"}; +char BTN_RETRY[]={"Retry"}; +char BTN_INGNORE[]={"Ignore"}; +char BTN_NO[]={"No"}; +#endif + +///============================= + +kol_struct_import *MSG_BOX_IMPORT = NULL; +int (* _stdcall mb_create)(char *m, char* t); + +char msg[1024]; +char thread[1024]; + + +///============================= + +char MessageBox(char *text, char *caption, int type) +{ + +int i, j; + +if (MSG_BOX_IMPORT == NULL) + { + MSG_BOX_IMPORT = kol_cofflib_load("/sys/lib/Msgbox.obj"); + if (MSG_BOX_IMPORT == NULL) + kol_exit(); + + mb_create = kol_cofflib_procload (MSG_BOX_IMPORT, "mb_create"); + if (mb_create == NULL) + kol_exit(); + + } + +msg[0] = 255; +msg[1] = 0; + +for (i = 2, j = 0; ;i++, j++) + { + msg[i] = caption[j]; + if (0 == msg[i]) + break; + } + +i++; +msg[i] = 0; + +for (j = 0; ;i++, j++) + { + msg[i] = text[j]; + if (0 == msg[i]) + break; + } + +i++; +msg[i] = 0; + +switch (type) + { + case MB_OK: + for (j = 0; ;i++, j++) + { + msg[i] = BTN_OK[j]; + if (0 == msg[i]) + break; + } + break; + + case MB_OKCANCEL: + for (j = 0; ;i++, j++) + { + msg[i] = BTN_OK[j]; + if (0 == msg[i]) + break; + } + + i++; + msg[i] = 0; + + for (j = 0; ;i++, j++) + { + msg[i] = BTN_CANCEL[j]; + if (0 == msg[i]) + break; + } + break; + + default: + break; + + } +i++; +msg[i] = 0; + +mb_create(msg, thread+1024); + +for (;;) + { + if ( (unsigned char) msg[0] != 255 ) + switch (type) + { + case MB_OK: + if (msg[0] == 1) + return IDOK; + else + return 0; + break; + + case MB_OKCANCEL: + switch(msg[0]) + { + case 1: + return IDOK; + case 2: + return IDCANCEL; + default: + return 0; + }; + break; + + default: + return 0; + + }; + + kol_sleep(10); + } + + +} + +///============================= + diff --git a/programs/emulator/e80/trunk/system/stdlib.c b/programs/emulator/e80/trunk/system/stdlib.c new file mode 100644 index 0000000000..f52c263273 --- /dev/null +++ b/programs/emulator/e80/trunk/system/stdlib.c @@ -0,0 +1,33 @@ + +unsigned int seed_o = 0x45168297; + + +void srand (unsigned seed) +{ +seed_o = seed; +} + + +int rand (void) +{ +seed_o = seed_o * 0x15a4e35 + 1; +return(seed_o >> 16); +} + + +void* malloc(unsigned s) +{ +asm ("int $0x40"::"a"(68), "b"(12), "c"(s) ); +} + + +void free(void *p) +{ +asm ("int $0x40"::"a"(68), "b"(13), "c"(p) ); +} + + +void* realloc(void *p, unsigned s) +{ +asm ("int $0x40"::"a"(68), "b"(12), "c"(p), "d"(s) ); +} diff --git a/programs/emulator/e80/trunk/system/stdlib.h b/programs/emulator/e80/trunk/system/stdlib.h new file mode 100644 index 0000000000..e984555604 --- /dev/null +++ b/programs/emulator/e80/trunk/system/stdlib.h @@ -0,0 +1,14 @@ + +#define RAND_MAX 0x7FFFU + +#define isspace(c) ((c)==' ') +#define abs(i) (((i)<0)?(-(i)):(i)) + +#define random(num) ((rand()*(num))/((RAND_MAX+1))) + +void* malloc(unsigned size); +void free(void *pointer); +void* realloc(void* pointer, unsigned size); + +void srand (unsigned seed); +int rand (void); diff --git a/programs/emulator/e80/trunk/system/string.c b/programs/emulator/e80/trunk/system/string.c new file mode 100644 index 0000000000..145b47686c --- /dev/null +++ b/programs/emulator/e80/trunk/system/string.c @@ -0,0 +1,124 @@ + +#include "string.h" + +void* memset(void *mem, int c, unsigned size) +{ +unsigned i; + +for ( i = 0; i < size; i++ ) + *((char *)mem+i) = (char) c; + +return NULL; +} + + +void* memcpy(void *dst, const void *src, unsigned size) +{ + +unsigned i; + +for ( i = 0; i < size; i++) + *(char *)(dst+i) = *(char *)(src+i); + +return NULL; +} + + +int memcmp(const void* buf1, const void* buf2, int count) +{ +int i; +for (i=0;i*(unsigned char*)buf2) + return 1; + } +return 0; +} + +void strcat(char strDest[], char strSource[]) +{ + +int i, j; + +i = j = 0; +while (strDest[i] != '\0') + i++; + +while ((strDest[i++] = strSource[j++]) != '\0') + ; +} + + +int strcmp(const char* string1, const char* string2) +{ + +while (1) +{ +if (*string1<*string2) + return -1; +if (*string1>*string2) + return 1; + +if (*string1=='\0') + return 0; + +string1++; +string2++; +} + +} + + +void strcpy(char strDest[], const char strSource[]) +{ +unsigned i; + +i = 0; +while ((strDest[i] = strSource[i]) != '\0') + i++; + +} + + +char* strncpy(char *strDest, const char *strSource, unsigned n) +{ +unsigned i; + +if (! n ) + return strDest; + +i = 0; +while ((strDest[i] = strSource[i]) != '\0') + if ( (n-1) == i ) + break; + else + i++; + +return strDest; +} + + +int strlen(const char* string) +{ +int i; + +i=0; +while (*string++) i++; +return i; +} + + + +char* strchr(const char* string, int c) +{ + while (*string) + { + if (*string==c) + return (char*)string; + string++; + } + return (char*)0; +} + diff --git a/programs/emulator/e80/trunk/system/string.h b/programs/emulator/e80/trunk/system/string.h new file mode 100644 index 0000000000..1ce28e29e9 --- /dev/null +++ b/programs/emulator/e80/trunk/system/string.h @@ -0,0 +1,15 @@ + +#ifndef NULL +#define NULL ((void*)0) +#endif + +void* memset(void *mem, int c, unsigned size); +void* memcpy(void *dst, const void *src, unsigned size); +int memcmp(const void* buf1, const void* buf2, int count); + +void strcat(char strDest[], char strSource[]); +int strcmp(const char* string1, const char* string2); +void strcpy(char strDest[], const char strSource[]); +char* strncpy(char *strDest, const char *strSource, unsigned n); +int strlen(const char* string); +char *strchr(const char* string, int c); diff --git a/programs/emulator/e80/trunk/z80/macros.c b/programs/emulator/e80/trunk/z80/macros.c new file mode 100644 index 0000000000..cf97aabfde --- /dev/null +++ b/programs/emulator/e80/trunk/z80/macros.c @@ -0,0 +1,447 @@ +/*===================================================================== + Macros.c -> Macros used on the opcode execution. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + ======================================================================*/ + +/* defines for the registers: faster access to them when coding... */ + +#define r_PC regs->PC.W +#define r_PCl regs->PC.B.l +#define r_PCh regs->PC.B.h +#define r_SP regs->SP.W +#define r_IFF1 regs->IFF1 +#define r_IFF2 regs->IFF2 +#define r_R regs->R.W + +#define r_AF regs->AF.W +#define r_A regs->AF.B.h +#define r_F regs->AF.B.l +#define r_BC regs->BC.W +#define r_B regs->BC.B.h +#define r_C regs->BC.B.l +#define r_DE regs->DE.W +#define r_D regs->DE.B.h +#define r_E regs->DE.B.l +#define r_HL regs->HL.W +#define r_H regs->HL.B.h +#define r_L regs->HL.B.l +#define r_IX regs->IX.W +#define r_IXh regs->IX.B.h +#define r_IXl regs->IX.B.l +#define r_IY regs->IY.W +#define r_IYh regs->IY.B.h +#define r_IYl regs->IY.B.l + +#define r_AFs regs->AFs.W +#define r_As regs->AFs.B.h +#define r_Fs regs->AFs.B.l +#define r_BCs regs->BCs.W +#define r_Bs regs->BCs.B.h +#define r_Cs regs->BCs.B.l +#define r_DEs regs->DEs.W +#define r_Ds regs->DEs.B.h +#define r_Es regs->DEs.B.l +#define r_HLs regs->HLs.W +#define r_Hs regs->HLs.B.h +#define r_Ls regs->HLs.B.l +#define r_IXs regs->IX.W +#define r_IXhs regs->IX.B.h +#define r_IXls regs->IX.B.l +#define r_IYs regs->IY.W +#define r_IYhs regs->IY.B.h +#define r_IYls regs->IY.B.l + +#define r_op ops.W +#define r_oph ops.B.h +#define r_opl ops.B.l +#define r_tmp tmpreg2.W +#define r_tmph tmpreg2.B.h +#define r_tmpl tmpreg2.B.l +#define r_mem mread.W +#define r_memh mread.B.h +#define r_meml mread.B.l + +#ifndef _DISASM_ +/*--- Flag tables by Philip Kendall, taken from it's fuse emulator -*/ +/*--- I was having headache trying to emulate correctly the FLAGS, + so I finished using the FLAG tables used by P. Kendall. ------*/ +#define FLAG_C 0x01 +#define FLAG_N 0x02 +#define FLAG_P 0x04 +#define FLAG_V FLAG_P +#define FLAG_3 0x08 +#define FLAG_H 0x10 +#define FLAG_5 0x20 +#define FLAG_Z 0x40 +#define FLAG_S 0x80 + +/* Whether a half carry occured or not can be determined by looking at + the 3rd bit of the two arguments and the result; these are hashed + into this table in the form r12, where r is the 3rd bit of the + result, 1 is the 3rd bit of the 1st argument and 2 is the + third bit of the 2nd argument; the tables differ for add and subtract + operations */ + +/* Whether a half carry occured or not can be determined by looking at + the 3rd bit of the two arguments and the result; these are hashed + into this table in the form r12, where r is the 3rd bit of the + result, 1 is the 3rd bit of the 1st argument and 2 is the + third bit of the 2nd argument; the tables differ for add and subtract + operations */ +byte halfcarry_add_table[] = { 0, FLAG_H, FLAG_H, FLAG_H, 0, 0, 0, FLAG_H }; +byte halfcarry_sub_table[] = { 0, 0, FLAG_H, 0, FLAG_H, 0, FLAG_H, FLAG_H }; + +/* Similarly, overflow can be determined by looking at the 7th bits; again + the hash into this table is r12 */ +byte overflow_add_table[] = { 0, 0, 0, FLAG_V, FLAG_V, 0, 0, 0 }; +byte overflow_sub_table[] = { 0, FLAG_V, 0, 0, 0, 0, FLAG_V, 0 }; + +/* Some more tables; initialised in z80_init_tables() */ +byte sz53_table[0x100]; /* The S, Z, 5 and 3 bits of the temp value */ +byte parity_table[0x100]; /* The parity of the temp value */ +byte sz53p_table[0x100]; /* OR the above two tables together */ +/*------------------------------------------------------------------*/ + +// Contributed by Metalbrain to implement OUTI, etc. +byte ioblock_inc1_table[64]; +byte ioblock_dec1_table[64]; +byte ioblock_2_table[0x100]; + +/*--- Memory Write on the A address on no bank machines -------------*/ +void Z80WriteMem( word where, word A, Z80Regs *regs) +{ + if( where >= 16384 ) + regs->RAM[where] = A; +} + +#endif + + +/*--- Memory Read from the A address on no bank machines -------------*/ +#define Z80ReadMem(A) ((regs->RAM[(A)])) + +// return( regs->RAM[A] ); + + +/* macros to change the ICount register */ +#define AddCycles(n) regs->ICount-=(n) + +#define SubCycles(n) regs->ICount+=(n) + +//#define AddR(n) r_R = (r_R+(n)) +#define AddR(n) r_R = ((r_R & 0x80) | ((r_R+(n)) & 0x7f )) +#define SubR(n) r_R = ((r_R & 0x80) | ((r_R-(n)) & 0x7f )) + + +/* setting and resetting the flag bits: */ +#define SET_FLAG(flag) (r_F |= (flag)) + +#define RESET_FLAG(flag) (r_F &= ~(flag)) + +#define TEST_FLAG(flag) (r_F & (flag)) + + +/* store a given register in the stack (hi and lo bytes) */ +#define PUSH(rreg) \ + Z80WriteMem( --(r_SP), regs->rreg.B.h, regs); \ + Z80WriteMem( --(r_SP), regs->rreg.B.l, regs) + +#define POP(rreg)\ + regs->rreg.B.l = Z80ReadMem(r_SP); r_SP++;\ + regs->rreg.B.h = Z80ReadMem(r_SP); r_SP++ + +#define PUSH_IXYr() \ + Z80WriteMem( --(r_SP), REGH, regs); \ + Z80WriteMem( --(r_SP), REGL, regs) + +#define POP_IXYr()\ + REGL = Z80ReadMem(r_SP); r_SP++; \ + REGH = Z80ReadMem(r_SP); r_SP++ + +#define RST(rstval) PUSH(PC); r_PC=(rstval) + + +/*--- Move data to mem or regs --------------------------------------*/ +#define LD_r_r(dreg, sreg) (dreg) = (sreg) + +#define STORE_r(daddreg, sreg) Z80WriteMem((daddreg), (sreg), regs) + +#define STORE_nn_rr(dreg) \ + r_opl = Z80ReadMem(r_PC); r_PC++;\ + r_oph = Z80ReadMem(r_PC); r_PC++; \ + r_tmp = dreg; \ + Z80WriteMem((r_op),r_tmpl, regs); \ + Z80WriteMem((r_op+1),r_tmph, regs) + +#define STORE_nn_r(sreg) \ + r_opl = Z80ReadMem(r_PC); r_PC++; \ + r_oph = Z80ReadMem(r_PC); r_PC++; \ + Z80WriteMem((r_op),(sreg), regs) + +#define LOAD_r(dreg, saddreg) (dreg)=Z80ReadMem((saddreg)) + +#define LOAD_rr_nn(dreg) r_opl = Z80ReadMem(r_PC); r_PC++; \ + r_oph = Z80ReadMem(r_PC); r_PC++; \ + r_tmpl = Z80ReadMem(r_op); \ + r_tmph = Z80ReadMem((r_op)+1); \ + dreg=r_tmp + + +#define LOAD_r_nn(dreg) r_opl = Z80ReadMem(r_PC); r_PC++; \ + r_oph = Z80ReadMem(r_PC); r_PC++; \ + dreg = Z80ReadMem(r_op) + +#define LD_r_n(reg) (reg) = Z80ReadMem(r_PC++) + +#define LD_rr_nn(reg) r_opl = Z80ReadMem(r_PC); r_PC++; \ + r_oph = Z80ReadMem(r_PC); r_PC++; \ + reg = r_op + +#define EX(reg1,reg2) r_opl=(reg1); (reg1)=(reg2); (reg2)=r_opl + +#define EX_WORD(reg1,reg2) r_op=(reg1); (reg1)=(reg2); (reg2)=r_op + +/*--- Increments/Decrements -----------------------------------------*/ +#define INC(reg) (reg)++; \ + r_F = ( r_F & FLAG_C ) | ( (reg)==0x80 ? FLAG_V : 0 ) | \ + ( (reg)&0x0f ? 0 : FLAG_H ) | ( (reg) ? 0 : FLAG_Z ) | \ + sz53_table[(reg)] + +#define DEC(reg) \ + r_F = ( r_F & FLAG_C ) | ( (reg)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (reg)--; \ + r_F |= ( (reg)==0x7f ? FLAG_V : 0 ) | sz53_table[(reg)] + +// it was: +// r_F |= ( (reg)==0x79 ? FLAG_V : 0 ) | sz53_table[(reg)] +// But Kak pointed my was not 0x79 -> 0x7F, changed 7-3-2001 + + +/*--- Bit operations ------------------------------------------------*/ +#define BIT_RES(b,reg) reg &= ~(0x1<>7 ); \ + r_F = ( (reg) & FLAG_C ) | sz53p_table[(reg)] + +#define RRC(reg) r_F = (reg) & FLAG_C; \ + (reg) = ( (reg)>>1 ) | ( (reg)<<7 );\ + r_F |= sz53p_table[(reg)] + +#define RL(reg) r_opl = (reg); \ + (reg) = ( (reg)<<1 ) | ( r_F & FLAG_C ); \ + r_F = ( r_opl >> 7 ) | sz53p_table[(reg)] + +#define RR(reg) r_opl = (reg); \ + (reg) = ( (reg)>>1 ) | ( r_F << 7 );\ + r_F = ( r_opl & FLAG_C ) | sz53p_table[(reg)] + +#define SLA(reg) r_F = (reg) >> 7;\ + (reg) <<= 1;\ + r_F |= sz53p_table[(reg)] + +#define SRA(reg) r_F = (reg) & FLAG_C; \ + (reg) = ( (reg) & 0x80 ) | ( (reg) >> 1 );\ + r_F |= sz53p_table[(reg)] + +#define SLL(reg) r_F = (reg) >> 7;\ + (reg) = ( (reg) << 1 ) | 0x01;\ + r_F |= sz53p_table[(reg)] + +#define SRL(reg) r_F = (reg) & FLAG_C;\ + (reg) >>= 1;\ + r_F |= sz53p_table[(reg)] + + + +/*--- JP operations -------------------------------------------------*/ +#define JP_nn() r_opl = Z80ReadMem(r_PC); \ + r_PC++; \ + r_oph = Z80ReadMem(r_PC); \ + r_PC = r_op + +#define JR_n() r_PC += (offset) (Z80ReadMem(r_PC)); r_PC++ + +#define RET_nn() r_PCl = Z80ReadMem (r_SP); r_SP++; \ + r_PCh = Z80ReadMem (r_SP); r_SP++; + +#define CALL_nn() r_opl = Z80ReadMem (r_PC); r_PC++; \ + r_oph = Z80ReadMem (r_PC); r_PC++; \ + Z80WriteMem( --(r_SP), r_PCh, regs ); \ + Z80WriteMem( --(r_SP), r_PCl, regs ); \ + r_PC = r_op + + +/*--- ALU operations ------------------------------------------------*/ +#define AND(reg) r_A &= (reg); \ + r_F = FLAG_H | sz53p_table[r_A] + +#define OR(reg) r_A |= (reg); \ + r_F = sz53p_table[r_A] + +#define XOR(reg) r_A ^= (reg); \ + r_F = sz53p_table[r_A] + +#define AND_mem(raddress) r_opl = Z80ReadMem(raddress); \ + r_A &= (r_opl); \ + r_F = FLAG_H | sz53p_table[r_A] + +#define OR_mem(raddress) r_opl = Z80ReadMem(raddress); \ + r_A |= (r_opl); \ + r_F = sz53p_table[r_A] + +#define XOR_mem(raddress) r_opl = Z80ReadMem(raddress); \ + r_A ^= (r_opl); \ + r_F = sz53p_table[r_A] + +#define ADD(val) tempword = r_A + (val); \ + r_oph = ((r_A&0x88)>>3)|(((val)&0x88)>>2) | \ + ( (tempword & 0x88) >> 1 ); \ + r_A = tempword; \ + r_F = ( tempword & 0x100 ? FLAG_C : 0 ) | \ + halfcarry_add_table[ r_oph & 0x07] | \ + overflow_add_table[ r_oph >> 4] | \ + sz53_table[r_A] + +#define ADD_WORD(value1,value2) \ + tempdword = (value1) + (value2); \ + r_oph = ( ( (value1) & 0x0800 ) >> 11 ) | \ + ( ( (value2) & 0x0800 ) >> 10 ) | \ + ( ( tempdword & 0x0800 ) >> 9 ); \ + (value1) = tempdword; \ + r_F = ( r_F & ( FLAG_V | FLAG_Z | FLAG_S ) ) | \ + ( tempdword & 0x10000 ? FLAG_C : 0 ) | \ + (( tempdword >> 8 ) & ( FLAG_3 | FLAG_5 ) ) | \ + halfcarry_add_table[r_oph] + +#define ADC(value) \ + tempword = r_A + (value) + ( r_F & FLAG_C ); \ + r_oph = ( (r_A & 0x88) >> 3 ) | ( ( (value) & 0x88 ) >> 2 ) |\ + ( (tempword & 0x88) >> 1 ); \ + r_A = tempword; \ + r_F = ( tempword & 0x100 ? FLAG_C : 0 ) | \ + halfcarry_add_table[r_oph & 0x07] | \ + overflow_add_table[r_oph >> 4] | \ + sz53_table[r_A] + +#define ADC_WORD(value) \ + tempdword= r_HL + (value) + ( r_F & FLAG_C ); \ + r_oph = ( ( r_HL & 0x8800 ) >> 11 ) | \ + ( ( (value) & 0x8800 ) >> 10 ) | \ + ( ( tempdword & 0x8800 ) >> 9 ); \ + r_HL = tempdword; \ + r_F = ( tempdword & 0x10000 ? FLAG_C : 0 )| \ + overflow_add_table[r_oph >> 4] | \ + ( r_H & ( FLAG_3 | FLAG_5 | FLAG_S ) ) | \ + halfcarry_add_table[ r_oph & 0x0f ]| \ + ( r_HL ? 0 : FLAG_Z ) + +#define SUB(value) \ + tempword = r_A - (value);\ + r_opl = ( (r_A & 0x88) >> 3 ) | \ + ( ( (value) & 0x88 ) >> 2 ) | \ + ( (tempword & 0x88) >> 1 ); \ + r_A = tempword; \ + r_F = ( tempword & 0x100 ? FLAG_C : 0 ) | FLAG_N | \ + halfcarry_sub_table[r_opl & 0x07] | \ + overflow_sub_table[r_opl >> 4] | \ + sz53_table[r_A] + +#define SBC(value) \ + tempword = r_A - (value) - ( r_F & FLAG_C ); \ + r_opl = ( (r_A & 0x88) >> 3 ) | \ + ( ( (value) & 0x88 ) >> 2 ) | \ + ( (tempword & 0x88) >> 1 ); \ + r_A = tempword; \ + r_F = ( tempword & 0x100 ? FLAG_C : 0 ) | FLAG_N | \ + halfcarry_sub_table[r_opl & 0x07] | \ + overflow_sub_table[r_opl >> 4] | \ + sz53_table[r_A] + + +#define SBC_WORD(Rg) \ + tempword=r_F & C_FLAG; r_op=(r_HL-Rg-tempword)&0xFFFF; \ + r_F= \ + N_FLAG| \ + (((long)r_HL-(long)Rg-(long)tempword)&0x10000? C_FLAG:0)| \ + ((r_HL^Rg)&(r_HL^r_op)&0x8000? O_FLAG:0)| \ + ((r_HL^Rg^r_op)&0x1000? H_FLAG:0)| \ + (r_op? 0:Z_FLAG)|(r_oph&S_FLAG); \ + r_HL=r_op + +#define CP(value) \ + tempword = r_A - (value);\ + r_opl = ( (r_A & 0x88) >> 3 ) | ( ( (value) & 0x88 ) >> 2 ) | \ + ( (tempword & 0x88) >> 1 ); \ + r_F = ( tempword & 0x100 ? FLAG_C : ( tempword ? 0 : FLAG_Z ) ) | FLAG_N |\ + halfcarry_sub_table[r_opl & 0x07] | \ + overflow_sub_table[r_opl >> 4] | \ + ( value & ( FLAG_3 | FLAG_5 ) ) | \ + ( tempword & FLAG_S ) + +#define NEG_A() r_opl = r_A; r_A=0; SUB(r_opl) + +/*--- MISC operations -----------------------------------------------*/ +#define IN(reg,port) (reg)=Z80InPort((port)); \ + r_F = ( r_F & FLAG_C) | sz53p_table[(reg)] + + + + + + + diff --git a/programs/emulator/e80/trunk/z80/op_cb.c b/programs/emulator/e80/trunk/z80/op_cb.c new file mode 100644 index 0000000000..7bdc5e2607 --- /dev/null +++ b/programs/emulator/e80/trunk/z80/op_cb.c @@ -0,0 +1,356 @@ +/*====================================================================/* + opcodes_cb.c -> This file executes the CB PREFIX opcodes. + + When you find the CB opcode, it means that you must fetch another + byte from memory and treat it as a new opcode with different + meaning than the single-byte opcodes. This is a common way to extend + the number of opcodes (8 bits of instruction word = just 256 opcodes) + and it's called an OPCODE PREFIX (now we have another 256 new opcodes + by using this trick). + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + =====================================================================*/ + +/* 8 clock cycles minimum = CB opcode = 4+4 */ + +opcode = Z80ReadMem( r_PC ); +r_PC++; + +switch(opcode) +{ + + case RLC_B : RLC(r_B); AddCycles( 4+4 ); break; + case RLC_C : RLC(r_C); AddCycles( 4+4 ); break; + case RLC_D : RLC(r_D); AddCycles( 4+4 ); break; + case RLC_E : RLC(r_E); AddCycles( 4+4 ); break; + case RLC_H : RLC(r_H); AddCycles( 4+4 ); break; + case RLC_L : RLC(r_L); AddCycles( 4+4 ); break; + case RLC_xHL : r_meml = Z80ReadMem( r_HL ); + RLC(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case RLC_A : RLC(r_A); AddCycles( 4+4 ); break; + + case RRC_B : RRC(r_B); AddCycles( 4+4 ); break; + case RRC_C : RRC(r_C); AddCycles( 4+4 ); break; + case RRC_D : RRC(r_D); AddCycles( 4+4 ); break; + case RRC_E : RRC(r_E); AddCycles( 4+4 ); break; + case RRC_H : RRC(r_H); AddCycles( 4+4 ); break; + case RRC_L : RRC(r_L); AddCycles( 4+4 ); break; + case RRC_xHL : r_meml = Z80ReadMem( r_HL ); + RRC(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case RRC_A : RRC(r_A); AddCycles( 4+4 ); break; + + case RL_B : RL(r_B); AddCycles( 4+4 ); break; + case RL_C : RL(r_C); AddCycles( 4+4 ); break; + case RL_D : RL(r_D); AddCycles( 4+4 ); break; + case RL_E : RL(r_E); AddCycles( 4+4 ); break; + case RL_H : RL(r_H); AddCycles( 4+4 ); break; + case RL_L : RL(r_L); AddCycles( 4+4 ); break; + case RL_xHL : r_meml = Z80ReadMem( r_HL ); + RL(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case RL_A : RL(r_A); AddCycles( 4+4 ); break; + + case RR_B : RR(r_B); AddCycles( 4+4 ); break; + case RR_C : RR(r_C); AddCycles( 4+4 ); break; + case RR_D : RR(r_D); AddCycles( 4+4 ); break; + case RR_E : RR(r_E); AddCycles( 4+4 ); break; + case RR_H : RR(r_H); AddCycles( 4+4 ); break; + case RR_L : RR(r_L); AddCycles( 4+4 ); break; + case RR_xHL : r_meml = Z80ReadMem( r_HL ); + RR(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case RR_A : RR(r_A); AddCycles( 4+4 ); break; + + case SLA_B : SLA(r_B); AddCycles( 4+4 ); break; + case SLA_C : SLA(r_C); AddCycles( 4+4 ); break; + case SLA_D : SLA(r_D); AddCycles( 4+4 ); break; + case SLA_E : SLA(r_E); AddCycles( 4+4 ); break; + case SLA_H : SLA(r_H); AddCycles( 4+4 ); break; + case SLA_L : SLA(r_L); AddCycles( 4+4 ); break; + case SLA_xHL : r_meml = Z80ReadMem( r_HL ); + SLA(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case SLA_A : SLA(r_A); AddCycles( 4+4 ); break; + + case SRA_B : SRA(r_B); AddCycles( 4+4 ); break; + case SRA_C : SRA(r_C); AddCycles( 4+4 ); break; + case SRA_D : SRA(r_D); AddCycles( 4+4 ); break; + case SRA_E : SRA(r_E); AddCycles( 4+4 ); break; + case SRA_H : SRA(r_H); AddCycles( 4+4 ); break; + case SRA_L : SRA(r_L); AddCycles( 4+4 ); break; + case SRA_xHL : r_meml = Z80ReadMem( r_HL ); + SRA(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case SRA_A : SRA(r_A); AddCycles( 4+4 ); break; + + case SLL_B : SLL(r_B); AddCycles( 4+4 ); break; + case SLL_C : SLL(r_C); AddCycles( 4+4 ); break; + case SLL_D : SLL(r_D); AddCycles( 4+4 ); break; + case SLL_E : SLL(r_E); AddCycles( 4+4 ); break; + case SLL_H : SLL(r_H); AddCycles( 4+4 ); break; + case SLL_L : SLL(r_L); AddCycles( 4+4 ); break; + case SLL_xHL : r_meml = Z80ReadMem( r_HL ); + SLL(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case SLL_A : SLL(r_A); AddCycles( 4+4 ); break; + + case SRL_B : SRL(r_B); AddCycles( 4+4 ); break; + case SRL_C : SRL(r_C); AddCycles( 4+4 ); break; + case SRL_D : SRL(r_D); AddCycles( 4+4 ); break; + case SRL_E : SRL(r_E); AddCycles( 4+4 ); break; + case SRL_H : SRL(r_H); AddCycles( 4+4 ); break; + case SRL_L : SRL(r_L); AddCycles( 4+4 ); break; + case SRL_xHL : r_meml = Z80ReadMem( r_HL ); + SRL(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+4+3+3+1 ); break; + case SRL_A : SRL(r_A); AddCycles( 4+4 ); break; + + case BIT_0_B : BIT_BIT(0, r_B); AddCycles( 4+4 ); break; + case BIT_0_C : BIT_BIT(0, r_C); AddCycles( 4+4 ); break; + case BIT_0_D : BIT_BIT(0, r_D); AddCycles( 4+4 ); break; + case BIT_0_E : BIT_BIT(0, r_E); AddCycles( 4+4 ); break; + case BIT_0_H : BIT_BIT(0, r_H); AddCycles( 4+4 ); break; + case BIT_0_L : BIT_BIT(0, r_L); AddCycles( 4+4 ); break; + case BIT_0_xHL : BIT_mem_BIT(0, r_HL); AddCycles( 12 ); break; + case BIT_0_A : BIT_BIT(0, r_A); AddCycles( 4+4 ); break; + + case BIT_1_B : BIT_BIT(1, r_B); AddCycles( 4+4 ); break; + case BIT_1_C : BIT_BIT(1, r_C); AddCycles( 4+4 ); break; + case BIT_1_D : BIT_BIT(1, r_D); AddCycles( 4+4 ); break; + case BIT_1_E : BIT_BIT(1, r_E); AddCycles( 4+4 ); break; + case BIT_1_H : BIT_BIT(1, r_H); AddCycles( 4+4 ); break; + case BIT_1_L : BIT_BIT(1, r_L); AddCycles( 4+4 ); break; + case BIT_1_xHL : BIT_mem_BIT(1, r_HL); AddCycles( 12 ); break; + case BIT_1_A : BIT_BIT(1, r_A); AddCycles( 4+4 ); break; + + case BIT_2_B : BIT_BIT(2, r_B); AddCycles( 4+4 ); break; + case BIT_2_C : BIT_BIT(2, r_C); AddCycles( 4+4 ); break; + case BIT_2_D : BIT_BIT(2, r_D); AddCycles( 4+4 ); break; + case BIT_2_E : BIT_BIT(2, r_E); AddCycles( 4+4 ); break; + case BIT_2_H : BIT_BIT(2, r_H); AddCycles( 4+4 ); break; + case BIT_2_L : BIT_BIT(2, r_L); AddCycles( 4+4 ); break; + case BIT_2_xHL : BIT_mem_BIT(2, r_HL); AddCycles( 12 ); break; + case BIT_2_A : BIT_BIT(2, r_A); AddCycles( 4+4 ); break; + + case BIT_3_B : BIT_BIT(3, r_B); AddCycles( 4+4 ); break; + case BIT_3_C : BIT_BIT(3, r_C); AddCycles( 4+4 ); break; + case BIT_3_D : BIT_BIT(3, r_D); AddCycles( 4+4 ); break; + case BIT_3_E : BIT_BIT(3, r_E); AddCycles( 4+4 ); break; + case BIT_3_H : BIT_BIT(3, r_H); AddCycles( 4+4 ); break; + case BIT_3_L : BIT_BIT(3, r_L); AddCycles( 4+4 ); break; + case BIT_3_xHL : BIT_mem_BIT(3, r_HL); AddCycles( 12 ); break; + case BIT_3_A : BIT_BIT(3, r_A); AddCycles( 4+4 ); break; + + case BIT_4_B : BIT_BIT(4, r_B); AddCycles( 4+4 ); break; + case BIT_4_C : BIT_BIT(4, r_C); AddCycles( 4+4 ); break; + case BIT_4_D : BIT_BIT(4, r_D); AddCycles( 4+4 ); break; + case BIT_4_E : BIT_BIT(4, r_E); AddCycles( 4+4 ); break; + case BIT_4_H : BIT_BIT(4, r_H); AddCycles( 4+4 ); break; + case BIT_4_L : BIT_BIT(4, r_L); AddCycles( 4+4 ); break; + case BIT_4_xHL : BIT_mem_BIT(4, r_HL); AddCycles( 12 ); break; + case BIT_4_A : BIT_BIT(4, r_A); AddCycles( 4+4 ); break; + + case BIT_5_B : BIT_BIT(5, r_B); AddCycles( 4+4 ); break; + case BIT_5_C : BIT_BIT(5, r_C); AddCycles( 4+4 ); break; + case BIT_5_D : BIT_BIT(5, r_D); AddCycles( 4+4 ); break; + case BIT_5_E : BIT_BIT(5, r_E); AddCycles( 4+4 ); break; + case BIT_5_H : BIT_BIT(5, r_H); AddCycles( 4+4 ); break; + case BIT_5_L : BIT_BIT(5, r_L); AddCycles( 4+4 ); break; + case BIT_5_xHL : BIT_mem_BIT(5, r_HL); AddCycles( 12 ); break; + case BIT_5_A : BIT_BIT(5, r_A); AddCycles( 4+4 ); break; + + case BIT_6_B : BIT_BIT(6, r_B); AddCycles( 4+4 ); break; + case BIT_6_C : BIT_BIT(6, r_C); AddCycles( 4+4 ); break; + case BIT_6_D : BIT_BIT(6, r_D); AddCycles( 4+4 ); break; + case BIT_6_E : BIT_BIT(6, r_E); AddCycles( 4+4 ); break; + case BIT_6_H : BIT_BIT(6, r_H); AddCycles( 4+4 ); break; + case BIT_6_L : BIT_BIT(6, r_L); AddCycles( 4+4 ); break; + case BIT_6_xHL : BIT_mem_BIT(6, r_HL); AddCycles( 12 ); break; + case BIT_6_A : BIT_BIT(6, r_A); AddCycles( 4+4 ); break; + + case BIT_7_B : BIT_BIT7(r_B); AddCycles( 4+4 ); break; + case BIT_7_C : BIT_BIT7(r_C); AddCycles( 4+4 ); break; + case BIT_7_D : BIT_BIT7(r_D); AddCycles( 4+4 ); break; + case BIT_7_E : BIT_BIT7(r_E); AddCycles( 4+4 ); break; + case BIT_7_H : BIT_BIT7(r_H); AddCycles( 4+4 ); break; + case BIT_7_L : BIT_BIT7(r_L); AddCycles( 4+4 ); break; + case BIT_7_xHL : BIT_mem_BIT7(r_HL); AddCycles( 12 ); break; + case BIT_7_A : BIT_BIT7(r_A); AddCycles( 4+4 ); break; + + case RES_0_B : BIT_RES(0, r_B); AddCycles( 4+4 ); break; + case RES_0_C : BIT_RES(0, r_C); AddCycles( 4+4 ); break; + case RES_0_D : BIT_RES(0, r_D); AddCycles( 4+4 ); break; + case RES_0_E : BIT_RES(0, r_E); AddCycles( 4+4 ); break; + case RES_0_H : BIT_RES(0, r_H); AddCycles( 4+4 ); break; + case RES_0_L : BIT_RES(0, r_L); AddCycles( 4+4 ); break; + case RES_0_xHL : BIT_mem_RES(0, r_HL); AddCycles( 4+4+7 ); break; + case RES_0_A : BIT_RES(0, r_A); AddCycles( 4+4 ); break; + + case RES_1_B : BIT_RES(1, r_B); AddCycles( 4+4 ); break; + case RES_1_C : BIT_RES(1, r_C); AddCycles( 4+4 ); break; + case RES_1_D : BIT_RES(1, r_D); AddCycles( 4+4 ); break; + case RES_1_E : BIT_RES(1, r_E); AddCycles( 4+4 ); break; + case RES_1_H : BIT_RES(1, r_H); AddCycles( 4+4 ); break; + case RES_1_L : BIT_RES(1, r_L); AddCycles( 4+4 ); break; + case RES_1_xHL : BIT_mem_RES(1, r_HL); AddCycles( 4+4+7 ); break; + case RES_1_A : BIT_RES(1, r_A); AddCycles( 4+4 ); break; + + case RES_2_B : BIT_RES(2, r_B); AddCycles( 4+4 ); break; + case RES_2_C : BIT_RES(2, r_C); AddCycles( 4+4 ); break; + case RES_2_D : BIT_RES(2, r_D); AddCycles( 4+4 ); break; + case RES_2_E : BIT_RES(2, r_E); AddCycles( 4+4 ); break; + case RES_2_H : BIT_RES(2, r_H); AddCycles( 4+4 ); break; + case RES_2_L : BIT_RES(2, r_L); AddCycles( 4+4 ); break; + case RES_2_xHL : BIT_mem_RES(2, r_HL); AddCycles( 4+4+7 ); break; + case RES_2_A : BIT_RES(2, r_A); AddCycles( 4+4 ); break; + + case RES_3_B : BIT_RES(3, r_B); AddCycles( 4+4 ); break; + case RES_3_C : BIT_RES(3, r_C); AddCycles( 4+4 ); break; + case RES_3_D : BIT_RES(3, r_D); AddCycles( 4+4 ); break; + case RES_3_E : BIT_RES(3, r_E); AddCycles( 4+4 ); break; + case RES_3_H : BIT_RES(3, r_H); AddCycles( 4+4 ); break; + case RES_3_L : BIT_RES(3, r_L); AddCycles( 4+4 ); break; + case RES_3_xHL : BIT_mem_RES(3, r_HL); AddCycles( 4+4+7 ); break; + case RES_3_A : BIT_RES(3, r_A); AddCycles( 4+4 ); break; + + case RES_4_B : BIT_RES(4, r_B); AddCycles( 4+4 ); break; + case RES_4_C : BIT_RES(4, r_C); AddCycles( 4+4 ); break; + case RES_4_D : BIT_RES(4, r_D); AddCycles( 4+4 ); break; + case RES_4_E : BIT_RES(4, r_E); AddCycles( 4+4 ); break; + case RES_4_H : BIT_RES(4, r_H); AddCycles( 4+4 ); break; + case RES_4_L : BIT_RES(4, r_L); AddCycles( 4+4 ); break; + case RES_4_xHL : BIT_mem_RES(4, r_HL); AddCycles( 4+4+7 ); break; + case RES_4_A : BIT_RES(4, r_A); AddCycles( 4+4 ); break; + + case RES_5_B : BIT_RES(5, r_B); AddCycles( 4+4 ); break; + case RES_5_C : BIT_RES(5, r_C); AddCycles( 4+4 ); break; + case RES_5_D : BIT_RES(5, r_D); AddCycles( 4+4 ); break; + case RES_5_E : BIT_RES(5, r_E); AddCycles( 4+4 ); break; + case RES_5_H : BIT_RES(5, r_H); AddCycles( 4+4 ); break; + case RES_5_L : BIT_RES(5, r_L); AddCycles( 4+4 ); break; + case RES_5_xHL : BIT_mem_RES(5, r_HL); AddCycles( 4+4+7 ); break; + case RES_5_A : BIT_RES(5, r_A); AddCycles( 4+4 ); break; + + case RES_6_B : BIT_RES(6, r_B); AddCycles( 4+4 ); break; + case RES_6_C : BIT_RES(6, r_C); AddCycles( 4+4 ); break; + case RES_6_D : BIT_RES(6, r_D); AddCycles( 4+4 ); break; + case RES_6_E : BIT_RES(6, r_E); AddCycles( 4+4 ); break; + case RES_6_H : BIT_RES(6, r_H); AddCycles( 4+4 ); break; + case RES_6_L : BIT_RES(6, r_L); AddCycles( 4+4 ); break; + case RES_6_xHL : BIT_mem_RES(6, r_HL); AddCycles( 4+4+7 ); break; + case RES_6_A : BIT_RES(6, r_A); AddCycles( 4+4 ); break; + + case RES_7_B : BIT_RES(7, r_B); AddCycles( 4+4 ); break; + case RES_7_C : BIT_RES(7, r_C); AddCycles( 4+4 ); break; + case RES_7_D : BIT_RES(7, r_D); AddCycles( 4+4 ); break; + case RES_7_E : BIT_RES(7, r_E); AddCycles( 4+4 ); break; + case RES_7_H : BIT_RES(7, r_H); AddCycles( 4+4 ); break; + case RES_7_L : BIT_RES(7, r_L); AddCycles( 4+4 ); break; + case RES_7_xHL : BIT_mem_RES(7, r_HL); AddCycles( 4+4+7 ); break; + case RES_7_A : BIT_RES(7, r_A); AddCycles( 4+4 ); break; + + case SET_0_B : BIT_SET(0, r_B); AddCycles( 4+4 ); break; + case SET_0_C : BIT_SET(0, r_C); AddCycles( 4+4 ); break; + case SET_0_D : BIT_SET(0, r_D); AddCycles( 4+4 ); break; + case SET_0_E : BIT_SET(0, r_E); AddCycles( 4+4 ); break; + case SET_0_H : BIT_SET(0, r_H); AddCycles( 4+4 ); break; + case SET_0_L : BIT_SET(0, r_L); AddCycles( 4+4 ); break; + case SET_0_xHL : BIT_mem_SET(0, r_HL); AddCycles( 4+4+7 ); break; + case SET_0_A : BIT_SET(0, r_A); AddCycles( 4+4 ); break; + + case SET_1_B : BIT_SET(1, r_B); AddCycles( 4+4 ); break; + case SET_1_C : BIT_SET(1, r_C); AddCycles( 4+4 ); break; + case SET_1_D : BIT_SET(1, r_D); AddCycles( 4+4 ); break; + case SET_1_E : BIT_SET(1, r_E); AddCycles( 4+4 ); break; + case SET_1_H : BIT_SET(1, r_H); AddCycles( 4+4 ); break; + case SET_1_L : BIT_SET(1, r_L); AddCycles( 4+4 ); break; + case SET_1_xHL : BIT_mem_SET(1, r_HL); AddCycles( 4+4+7 ); break; + case SET_1_A : BIT_SET(1, r_A); AddCycles( 4+4 ); break; + + case SET_2_B : BIT_SET(2, r_B); AddCycles( 4+4 ); break; + case SET_2_C : BIT_SET(2, r_C); AddCycles( 4+4 ); break; + case SET_2_D : BIT_SET(2, r_D); AddCycles( 4+4 ); break; + case SET_2_E : BIT_SET(2, r_E); AddCycles( 4+4 ); break; + case SET_2_H : BIT_SET(2, r_H); AddCycles( 4+4 ); break; + case SET_2_L : BIT_SET(2, r_L); AddCycles( 4+4 ); break; + case SET_2_xHL : BIT_mem_SET(2, r_HL); AddCycles( 4+4+7 ); break; + case SET_2_A : BIT_SET(2, r_A); AddCycles( 4+4 ); break; + + case SET_3_B : BIT_SET(3, r_B); AddCycles( 4+4 ); break; + case SET_3_C : BIT_SET(3, r_C); AddCycles( 4+4 ); break; + case SET_3_D : BIT_SET(3, r_D); AddCycles( 4+4 ); break; + case SET_3_E : BIT_SET(3, r_E); AddCycles( 4+4 ); break; + case SET_3_H : BIT_SET(3, r_H); AddCycles( 4+4 ); break; + case SET_3_L : BIT_SET(3, r_L); AddCycles( 4+4 ); break; + case SET_3_xHL : BIT_mem_SET(3, r_HL); AddCycles( 4+4+7 ); break; + case SET_3_A : BIT_SET(3, r_A); AddCycles( 4+4 ); break; + + case SET_4_B : BIT_SET(4, r_B); AddCycles( 4+4 ); break; + case SET_4_C : BIT_SET(4, r_C); AddCycles( 4+4 ); break; + case SET_4_D : BIT_SET(4, r_D); AddCycles( 4+4 ); break; + case SET_4_E : BIT_SET(4, r_E); AddCycles( 4+4 ); break; + case SET_4_H : BIT_SET(4, r_H); AddCycles( 4+4 ); break; + case SET_4_L : BIT_SET(4, r_L); AddCycles( 4+4 ); break; + case SET_4_xHL : BIT_mem_SET(4, r_HL); AddCycles( 4+4+7 ); break; + case SET_4_A : BIT_SET(4, r_A); AddCycles( 4+4 ); break; + + case SET_5_B : BIT_SET(5, r_B); AddCycles( 4+4 ); break; + case SET_5_C : BIT_SET(5, r_C); AddCycles( 4+4 ); break; + case SET_5_D : BIT_SET(5, r_D); AddCycles( 4+4 ); break; + case SET_5_E : BIT_SET(5, r_E); AddCycles( 4+4 ); break; + case SET_5_H : BIT_SET(5, r_H); AddCycles( 4+4 ); break; + case SET_5_L : BIT_SET(5, r_L); AddCycles( 4+4 ); break; + case SET_5_xHL : BIT_mem_SET(5, r_HL); AddCycles( 4+4+7 ); break; + case SET_5_A : BIT_SET(5, r_A); AddCycles( 4+4 ); break; + + case SET_6_B : BIT_SET(6, r_B); AddCycles( 4+4 ); break; + case SET_6_C : BIT_SET(6, r_C); AddCycles( 4+4 ); break; + case SET_6_D : BIT_SET(6, r_D); AddCycles( 4+4 ); break; + case SET_6_E : BIT_SET(6, r_E); AddCycles( 4+4 ); break; + case SET_6_H : BIT_SET(6, r_H); AddCycles( 4+4 ); break; + case SET_6_L : BIT_SET(6, r_L); AddCycles( 4+4 ); break; + case SET_6_xHL : BIT_mem_SET(6, r_HL); AddCycles( 4+4+7 ); break; + case SET_6_A : BIT_SET(6, r_A); AddCycles( 4+4 ); break; + + case SET_7_B : BIT_SET(7, r_B); AddCycles( 4+4 ); break; + case SET_7_C : BIT_SET(7, r_C); AddCycles( 4+4 ); break; + case SET_7_D : BIT_SET(7, r_D); AddCycles( 4+4 ); break; + case SET_7_E : BIT_SET(7, r_E); AddCycles( 4+4 ); break; + case SET_7_H : BIT_SET(7, r_H); AddCycles( 4+4 ); break; + case SET_7_L : BIT_SET(7, r_L); AddCycles( 4+4 ); break; + case SET_7_xHL : BIT_mem_SET(7, r_HL); AddCycles( 4+4+7 ); break; + case SET_7_A : BIT_SET(7, r_A); AddCycles( 4+4 ); break; + + default: +// exit(1); +///!!! if( regs->DecodingErrors ) +///!!! printf("z80 core: Unknown instruction: CB %02Xh at PC=%04Xh.\n", +///!!! Z80ReadMem(r_PC-1), r_PC-2 ); + break; +} + diff --git a/programs/emulator/e80/trunk/z80/op_dd_fd.c b/programs/emulator/e80/trunk/z80/op_dd_fd.c new file mode 100644 index 0000000000..cf740d3810 --- /dev/null +++ b/programs/emulator/e80/trunk/z80/op_dd_fd.c @@ -0,0 +1,239 @@ +/*====================================================================/* + opcodes_dd_fd.c -> This file executes the DD/FD PREFIX opcodes. + + The DD prefix "creates" some new instructions by changing HL to IX + on the opcode defined by the next byte on memory. + + The FD prefix "creates" some new instructions by changing HL to IY + on the opcode defined by the next byte on memory. + + Change the REGISTER variable to IX or HY before including this file. + Something like: + + #define REGISTER regs->IX + #include "op_dd_fd.c" + #undef REGISTER + + On this code, this REGISTER variable is used as REGISTER.W or + REGISTER.B.h and REGISTER.B.l ... + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + =====================================================================*/ + +/* 8 clock cycles minimum = DD opcode = FD opcode = 4 + 4 */ + +#define REG REGISTER.W +#define REGL REGISTER.B.l +#define REGH REGISTER.B.h + +opcode = Z80ReadMem( r_PC ); +r_PC++; + +switch(opcode) +{ +case ADD_IXY_BC : ADD_WORD(REG, r_BC); AddCycles( 4+4+7 ); break; +case ADD_IXY_DE : ADD_WORD(REG, r_DE); AddCycles( 4+4+7 ); break; +case ADD_IXY_SP : ADD_WORD(REG, r_SP); AddCycles( 4+4+7 ); break; +case ADD_IXY_IXY : ADD_WORD(REG, REG); AddCycles( 4+4+7 ); break; +case DEC_IXY : REG--; AddCycles( 4+4+2 ); break; +case INC_IXY : REG++; AddCycles( 4+4 ); break; + +case JP_IXY : r_PC = REG; AddCycles( 4+4 );break; +case LD_SP_IXY : r_SP = REG; AddCycles( 4+4+2 ); break; + +case PUSH_IXY : PUSH_IXYr(); AddCycles( 4+4+3+3+1 ); break; +case POP_IXY : POP_IXYr(); AddCycles( 4+4+3+3 ); break; + +case EX_IXY_xSP : r_meml = Z80ReadMem(r_SP); + r_memh = Z80ReadMem(r_SP+1); + Z80WriteMem( r_SP, REGL, regs ); + Z80WriteMem( r_SP+1, REGH, regs ); + REGL=r_meml; REGH=r_memh; + AddCycles( 4+4+3+3+3+3+3 ); break; + +case LD_A_xIXY : r_A = Z80ReadMem( REG+ ((offset) Z80ReadMem(r_PC)) ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_B_xIXY : r_B = Z80ReadMem( REG+ ((offset) Z80ReadMem(r_PC)) ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_C_xIXY : r_C = Z80ReadMem( REG+ ((offset) Z80ReadMem(r_PC)) ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_D_xIXY : r_D = Z80ReadMem( REG+ ((offset) Z80ReadMem(r_PC)) ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_E_xIXY : r_E = Z80ReadMem( REG+ ((offset) Z80ReadMem(r_PC)) ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; + +case LD_xIXY_A : Z80WriteMem( REG+(offset)Z80ReadMem(r_PC), r_A, regs ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_xIXY_B : Z80WriteMem( REG+(offset)Z80ReadMem(r_PC), r_B, regs ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_xIXY_C : Z80WriteMem( REG+(offset)Z80ReadMem(r_PC), r_C, regs ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_xIXY_D : Z80WriteMem( REG+(offset)Z80ReadMem(r_PC), r_D, regs ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; +case LD_xIXY_E : Z80WriteMem( REG+(offset)Z80ReadMem(r_PC), r_E, regs ); + r_PC++; AddCycles( 4+3+3+3+3+3 ); break; + +case INC_xIXY : r_mem = REG+(offset)Z80ReadMem(r_PC); + r_PC++; + tmpreg.B.l = Z80ReadMem(r_mem); + INC(tmpreg.B.l); + Z80WriteMem(r_mem, tmpreg.B.l, regs ); + AddCycles( 4+3+3 + 3+3+3+ 3+1); break; +case DEC_xIXY : r_mem = REG+(offset)Z80ReadMem(r_PC); + r_PC++; + tmpreg.B.l = Z80ReadMem(r_mem); + DEC(tmpreg.B.l); + Z80WriteMem(r_mem, tmpreg.B.l, regs ); + AddCycles( 4+3+3 + 3+3+3+ 3+1); break; + +case ADC_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); r_PC++; + ADC(r_meml); AddCycles( 4+3+3+3+3+3 ); break; +case SBC_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); + r_PC++; + SBC(r_meml); AddCycles( 4+3+3+3+3+3 ); break; +case ADD_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); + r_PC++; + ADD(r_meml); AddCycles( 4+3+3+3+3+3 ); break; +case SUB_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); + r_PC++; + SUB(r_meml); AddCycles( 4+3+3+3+3+3 ); break; +case AND_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); + r_PC++; + AND(r_meml); AddCycles( 4+3+3+3+3+3 ); break; +case OR_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); + r_PC++; + OR(r_meml); AddCycles( 4+3+3+3+3+3 ); break; +case XOR_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); + r_PC++; + XOR(r_meml); AddCycles( 4+3+3+3+3+3 ); break; + +case CP_xIXY : r_meml = Z80ReadMem(REG+(offset)Z80ReadMem(r_PC)); + r_PC++; + CP(r_meml); AddCycles( 4+3+3+3+3+3 ); break; + +case LD_IXY_NN : REGL = Z80ReadMem(r_PC); r_PC++; + REGH = Z80ReadMem(r_PC); r_PC++; + AddCycles( 4+1+3+3+3 ); break; + +case LD_xIXY_N : r_mem = REG + (offset) Z80ReadMem(r_PC); r_PC++; + Z80WriteMem( r_mem, Z80ReadMem(r_PC), regs ); r_PC++; + AddCycles( 4+3+3+3+3+3 ); break; + +case LD_IXY_xNN : LOAD_rr_nn(REG); + AddCycles( 4+3+3+3+3+3+1 ); break; + +case LD_xNN_IXY : STORE_nn_rr(REG); + AddCycles( 4+3+3+ 3+3+3+1 ); break; + + +/* some undocumented opcodes: may be wrong: */ +case LD_A_IXYh : r_A = REGH; AddCycles(4+4); break; +case LD_A_IXYl : r_A = REGL; AddCycles(4+4); break; +case LD_B_IXYh : r_B = REGH; AddCycles(4+4); break; +case LD_B_IXYl : r_B = REGL; AddCycles(4+4); break; +case LD_C_IXYh : r_C = REGH; AddCycles(4+4); break; +case LD_C_IXYl : r_C = REGL; AddCycles(4+4); break; +case LD_D_IXYh : r_D = REGH; AddCycles(4+4); break; +case LD_D_IXYl : r_D = REGL; AddCycles(4+4); break; +case LD_E_IXYh : r_E = REGH; AddCycles(4+4); break; +case LD_E_IXYl : r_E = REGL; AddCycles(4+4); break; +case LD_IXYh_A : REGH = r_A; AddCycles(4+4); break; +case LD_IXYh_B : REGH = r_B; AddCycles(4+4); break; +case LD_IXYh_C : REGH = r_C; AddCycles(4+4); break; +case LD_IXYh_D : REGH = r_D; AddCycles(4+4); break; +case LD_IXYh_E : REGH = r_E; AddCycles(4+4); break; +case LD_IXYh_IXYh : AddCycles(4+4); break; +case LD_IXYh_IXYl : REGH = REGL; AddCycles(4+4); break; +case LD_IXYl_A : REGL = r_A; AddCycles(4+4); break; +case LD_IXYl_B : REGL = r_B; AddCycles(4+4); break; +case LD_IXYl_C : REGL = r_C; AddCycles(4+4); break; +case LD_IXYl_D : REGL = r_D; AddCycles(4+4); break; +case LD_IXYl_E : REGL = r_E; AddCycles(4+4); break; +case LD_IXYl_IXYh : REGL = REGH; AddCycles(4+4); break; +case LD_IXYl_IXYl : AddCycles(4+4); break; +case LD_IXYh_N : REGH = Z80ReadMem(r_PC); r_PC++; + AddCycles(4+4+3); break; +case LD_IXYl_N : REGL = Z80ReadMem(r_PC); r_PC++; + AddCycles(4+4+3); break; + + +case ADD_IXYh : ADD(REGH); AddCycles(4+4); break; +case ADD_IXYl : ADD(REGL); AddCycles(4+4); break; +case ADC_IXYh : ADC(REGH); AddCycles(4+4); break; +case ADC_IXYl : ADC(REGL); AddCycles(4+4); break; +case SUB_IXYh : SUB(REGH); AddCycles(4+4); break; +case SUB_IXYl : SUB(REGL); AddCycles(4+4); break; +case SBC_IXYh : SBC(REGH); AddCycles(4+4); break; +case SBC_IXYl : SBC(REGL); AddCycles(4+4); break; +case AND_IXYh : AND(REGH); AddCycles(4+4); break; +case AND_IXYl : AND(REGL); AddCycles(4+4); break; +case XOR_IXYh : XOR(REGH); AddCycles(4+4); break; +case XOR_IXYl : XOR(REGL); AddCycles(4+4); break; +case OR_IXYh : OR(REGH); AddCycles(4+4); break; +case OR_IXYl : OR(REGL); AddCycles(4+4); break; +case CP_IXYh : CP(REGH); AddCycles(4+4); break; +case CP_IXYl : CP(REGL); AddCycles(4+4); break; +case INC_IXYh : INC(REGH); AddCycles(4+4); break; +case INC_IXYl : INC(REGL); AddCycles(4+4); break; +case DEC_IXYh : DEC(REGH); AddCycles(4+4); break; +case DEC_IXYl : DEC(REGL); AddCycles(4+4); break; + +case LD_xIXY_H : r_meml =Z80ReadMem(r_PC); r_PC++; + Z80WriteMem( REG+(offset)(r_meml), r_H, regs ); + AddCycles( 4+3+3+3+3+3 ); break; +case LD_xIXY_L : r_meml =Z80ReadMem(r_PC); r_PC++; + Z80WriteMem( REG+(offset)(r_meml), r_L, regs ); + AddCycles( 4+3+3+3+3+3 ); break; +case LD_H_xIXY : r_meml =Z80ReadMem(r_PC); r_PC++; + r_H = Z80ReadMem( REG+(offset)(r_meml)); + AddCycles( 4+3+3+3+3+3 ); break; +case LD_L_xIXY : r_meml =Z80ReadMem(r_PC); r_PC++; + r_L = Z80ReadMem( REG+(offset)(r_meml)); + AddCycles( 4+3+3+3+3+3 ); break; + +case PREFIX_CB: + #include "opddfdcb.c" + break; + +/* +case PREFIX_DD: +case PREFIX_FD: AddCycles( 4 ); + r_PC--; // decode it the next time :) + break; +*/ + +default: AddCycles( 4 ); + r_PC--; /* decode it the next time :) */ + SubR(1); + +// exit(1); +// if( regs->DecodingErrors ) +// { +// printf("z80 core: Unknown instruction: "); +// if ( regs->we_are_on_ddfd == WE_ARE_ON_DD ) +// printf("DD "); +// else +// printf("FD "); +// printf("%02Xh at PC=%04Xh.\n", Z80ReadMem(r_PC-1), r_PC-2 ); +// } + break; +} + +#undef REG +#undef REGL +#undef REGH diff --git a/programs/emulator/e80/trunk/z80/op_ed.c b/programs/emulator/e80/trunk/z80/op_ed.c new file mode 100644 index 0000000000..5c6ae60f99 --- /dev/null +++ b/programs/emulator/e80/trunk/z80/op_ed.c @@ -0,0 +1,417 @@ +/*====================================================================/* + opcodes_ed.c -> This file executes the ED opcodes. + + Another prefix that "creates" new instructions. This prefix also + introduces some undocumented opcodes that we've tried to include + here. Maybe their implementation it's wrong: if you can find any + mistake about how we have implemented/interpreted them, please + let us know. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + =====================================================================*/ + +/* 8 clock cycles minimum = ED opcode = 4 + 4 */ + +opcode = Z80ReadMem( r_PC ); +r_PC++; + +switch(opcode) +{ + case LD_BC_xNNe : LOAD_rr_nn(r_BC); AddCycles( 4+4+12 ); break; + case LD_DE_xNNe : LOAD_rr_nn(r_DE); AddCycles( 4+4+12 ); break; + case LD_HL_xNNe : LOAD_rr_nn(r_HL); AddCycles( 4+4+12 ); break; + case LD_SP_xNNe : LOAD_rr_nn(r_SP); AddCycles( 4+4+12 ); break; + + case LD_xNNe_BC : STORE_nn_rr(r_BC); AddCycles( 4+4+12 ); break; + case LD_xNNe_DE : STORE_nn_rr(r_DE); AddCycles( 4+4+12 ); break; + case LD_xNNe_HL : STORE_nn_rr(r_HL); AddCycles( 4+4+12 ); break; + case LD_xNNe_SP : STORE_nn_rr(r_SP); AddCycles( 4+4+12 ); break; + + case NEG : + case ED_5C : + case ED_74 : + case ED_7C : + case ED_6C : + case ED_54 : + case ED_4C : + case ED_64 : NEG_A(); AddCycles( 4+4 ); break; + + case RETI : + case RETN : + case ED_65 : + case ED_6D : + case ED_75 : + case ED_7D : + case ED_5D : + case ED_55 : + r_IFF1 = r_IFF2; + RET_nn(); + AddCycles( 4+4+6 ); break; + + case IM_0 : + case ED_4E : /* * IM 0/1 */ + case ED_6E : + case ED_66 : regs->IM = 0; + AddCycles( 4+4 ); break; /* * IM 0 */ + + + case IM_1 : + case ED_76 : regs->IM = 1; + AddCycles( 4+4 ); break; + + case IM_2 : + case ED_7E : regs->IM = 2; + AddCycles( 4+4 ); break; + + case ED_77 : + case ED_7F : AddCycles( 4+4 ); break; /* * NOP */ + + case OUT_xC_B : Z80OutPort(regs,r_BC, r_B); AddCycles( 4+4+4 ); break; + case OUT_xC_C : Z80OutPort(regs,r_BC, r_C); AddCycles( 4+4+4 ); break; + case OUT_xC_D : Z80OutPort(regs,r_BC, r_D); AddCycles( 4+4+4 ); break; + case OUT_xC_E : Z80OutPort(regs,r_BC, r_E); AddCycles( 4+4+4 ); break; + case OUT_xC_H : Z80OutPort(regs,r_BC, r_H); AddCycles( 4+4+4 ); break; + case OUT_xC_L : Z80OutPort(regs,r_BC, r_L); AddCycles( 4+4+4 ); break; + case OUT_xC_A : Z80OutPort(regs,r_BC, r_A); AddCycles( 4+4+4 ); break; + /* * OUT (C), 0 */ + case ED_71 : Z80OutPort(regs,r_BC, 0); AddCycles( 4+4+4 ); break; + + case IN_B_xC : IN(r_B, r_BC); AddCycles( 4+4+4 ); break; + case IN_C_xC : IN(r_C, r_BC); AddCycles( 4+4+4 ); break; + case IN_D_xC : IN(r_D, r_BC); AddCycles( 4+4+4 ); break; + case IN_E_xC : IN(r_E, r_BC); AddCycles( 4+4+4 ); break; + case IN_L_xC : IN(r_L, r_BC); AddCycles( 4+4+4 ); break; + case IN_H_xC : IN(r_H, r_BC); AddCycles( 4+4+4 ); break; + case IN_A_xC : IN(r_A, r_BC); AddCycles( 4+4+4 ); break; + case IN_F_xC : IN(r_meml, r_BC); AddCycles( 4+4+4 ); break; + + case LD_A_I : r_A = regs->I; + r_F = ( r_F & FLAG_C )|sz53_table[r_A]| + ( regs->IFF2 ? FLAG_V:0 ); + AddCycles( 4+4+1 ); break; + + case LD_I_A : regs->I = r_A; AddCycles( 4+4+1 ); break; + + + case LD_A_R : r_A = ( regs->R.W & 0x7f ) | (regs->R.W & 0x80); + r_F = (r_F&FLAG_C)|sz53_table[r_A] | (regs->IFF2?FLAG_V:0); + AddCycles( 4+4+1 ); break; + + case LD_R_A : regs->R.W = r_A; + AddCycles( 4+4+1 ); break; + + + case ADC_HL_BC : ADC_WORD(r_BC); AddCycles( 4+4+4+1+2 ); break; + case ADC_HL_DE : ADC_WORD(r_DE); AddCycles( 4+4+4+1+2 ); break; + case ADC_HL_HL : ADC_WORD(r_HL); AddCycles( 4+4+4+1+2 ); break; + case ADC_HL_SP : ADC_WORD(r_SP); AddCycles( 4+4+4+1+2 ); break; + + case SBC_HL_BC : SBC_WORD(r_BC); AddCycles( 4+4+4+1+2 ); break; + case SBC_HL_DE : SBC_WORD(r_DE); AddCycles( 4+4+4+1+2 ); break; + case SBC_HL_HL : SBC_WORD(r_HL); AddCycles( 4+4+4+1+2 ); break; + case SBC_HL_SP : SBC_WORD(r_SP); AddCycles( 4+4+4+1+2 ); break; + + case RRD : r_meml = Z80ReadMem(r_HL); + Z80WriteMem(r_HL, ( r_A << 4 ) | ( r_meml >> 4 ), regs ); + r_A = ( r_A & 0xf0 ) | ( r_meml & 0x0f ); + r_F = ( r_F & FLAG_C ) | sz53p_table[r_A]; + AddCycles( 4+4+10 ); break; + + case RLD : r_meml = Z80ReadMem(r_HL); + Z80WriteMem(r_HL, (r_meml << 4 ) | ( r_A & 0x0f ), regs ); + r_A = ( r_A & 0xf0 ) | ( r_meml >> 4 ); + r_F = ( r_F & FLAG_C ) | sz53p_table[r_A]; + AddCycles( 4+4+10 ); break; + + case LDI : r_meml = Z80ReadMem(r_HL); r_HL++; + Z80WriteMem( r_DE, r_meml, regs ); r_DE++; + r_BC--; r_meml += r_A; + r_F = ( r_F & ( FLAG_C|FLAG_Z|FLAG_S ) ) | + ( r_BC ? FLAG_V:0 ) | ( r_meml & FLAG_3 ) | + ((r_meml & 0x02) ? FLAG_5 : 0 ); + AddCycles( 4+4+4+4 ); break; + + case LDIR : r_meml = Z80ReadMem(r_HL); r_HL++; + Z80WriteMem( r_DE, r_meml, regs ); r_DE++; + r_BC--; r_meml += r_A; + r_F = ( r_F & ( FLAG_C|FLAG_Z|FLAG_S ) ) | + ( r_BC ? FLAG_V:0 ) | ( r_meml & FLAG_3 ) | + ((r_meml & 0x02) ? FLAG_5 : 0 ); + AddCycles( 4+4+4+4 ); + if( r_BC ) { r_PC-=2; AddCycles(5); } + break; + + case LDD : r_meml = Z80ReadMem(r_HL); r_HL--; + Z80WriteMem( r_DE, r_meml, regs ); r_DE--; + r_BC--; r_meml += r_A; + r_F = ( r_F & ( FLAG_C | FLAG_Z | FLAG_S ) ) | + (r_BC ? FLAG_V : 0 ) | ( r_meml & FLAG_3 ) | + ((r_meml & 0x02) ? FLAG_5 : 0 ); + AddCycles( 4+4+4+4 ); break; + + + case LDDR : r_meml = Z80ReadMem(r_HL); + Z80WriteMem( r_DE, r_meml, regs ); + r_HL--; r_DE--; r_BC--; r_meml += r_A; + r_F = ( r_F & ( FLAG_C | FLAG_Z | FLAG_S ) ) | + (r_BC ? FLAG_V : 0 ) | ( r_meml & FLAG_3 ) | + ((r_meml & 0x02) ? FLAG_5 : 0 ); + AddCycles( 4+4+4+4+1 ); + if( r_BC ) { r_PC-=2; AddCycles(4); } + break; + + // I had lots of problems with CPI, INI, CPD, IND, OUTI, OUTD and so... + // Thanks a lot to Philip Kendall for letting me to take a look to his + // fuse emulator and allowing me to use their flag routines :-) + case CPI : r_meml = Z80ReadMem(r_HL); + r_memh = r_A - r_meml; + r_opl = ( (r_A & 0x08) >> 3 ) | + ( ( (r_meml) & 0x08 ) >> 2 ) | + ( (r_meml & 0x08) >> 1 ); + r_HL++; r_BC--; + r_F = ( r_F & FLAG_C ) | + ( r_BC ? ( FLAG_V | FLAG_N ) : FLAG_N ) | + halfcarry_sub_table[r_opl] | + ( r_memh ? 0 : FLAG_Z ) | + ( r_memh & FLAG_S ); + if( r_F & FLAG_H) r_memh--; + r_F |= ( r_memh & FLAG_3 ) | + ( (r_memh&0x02) ? FLAG_5 : 0 ); + AddCycles( 4+4+4+4); break; + + case CPIR : r_meml = Z80ReadMem(r_HL); + r_memh = r_A - r_meml; + r_opl = ( (r_A & 0x08) >> 3 ) | + ( ( (r_meml) & 0x08 ) >> 2 ) | + ( (r_meml & 0x08) >> 1 ); + r_HL++; r_BC--; + r_F = ( r_F & FLAG_C ) | + ( r_BC ? ( FLAG_V | FLAG_N ) : FLAG_N ) | + halfcarry_sub_table[r_opl] | + ( r_memh ? 0 : FLAG_Z ) | + ( r_memh & FLAG_S ); + if( r_F & FLAG_H) r_memh--; + r_F |= ( r_memh & FLAG_3 ) | + ( (r_memh&0x02) ? FLAG_5 : 0 ); + if( ( r_F & ( FLAG_V | FLAG_Z ) ) == FLAG_V ) + { AddCycles(5); r_PC-=2; } + AddCycles( 4+4+4+4); break; + + case CPD : r_meml = Z80ReadMem(r_HL); + r_memh = r_A-r_meml; + r_opl = ( (r_A & 0x08) >> 3 ) | + ( ( (r_meml) & 0x08 ) >> 2 ) | + ( (r_memh & 0x08) >> 1 ); + r_HL--; r_BC--; + r_F = ( r_F & FLAG_C ) | + ( r_BC ? ( FLAG_V | FLAG_N ) : FLAG_N ) | + halfcarry_sub_table[r_opl] | + ( r_memh ? 0 : FLAG_Z ) | + ( r_memh & FLAG_S ); + if(r_F & FLAG_H) r_memh--; + r_F |= ( r_memh & FLAG_3 ) | + ( (r_memh&0x02) ? FLAG_5 : 0 ); + AddCycles( 4+4+4+4); break; + + case CPDR : r_meml = Z80ReadMem(r_HL); + r_memh = r_A-r_meml; + r_opl = ( (r_A & 0x08) >> 3 ) | + ( ( (r_meml) & 0x08 ) >> 2 ) | + ( (r_memh & 0x08) >> 1 ); + r_HL--; r_BC--; + r_F = ( r_F & FLAG_C ) | + ( r_BC ? ( FLAG_V | FLAG_N ) : FLAG_N ) | + halfcarry_sub_table[r_opl] | + ( r_memh ? 0 : FLAG_Z ) | + ( r_memh & FLAG_S ); + if(r_F & FLAG_H) r_memh--; + r_F |= ( r_memh & FLAG_3 ) | + ( (r_memh&0x02) ? FLAG_5 : 0 ); + if( ( r_F & ( FLAG_V | FLAG_Z ) ) == FLAG_V ) + { AddCycles(5); r_PC-=2; } + AddCycles( 4+4+4+4 ); break; + +/* + // OUTI contributed by Alvaro Alea + case OUTI : Z80OutPort( regs, r_BC, Z80ReadMem( r_HL )) ; + r_HL++ ; r_B-- ; + if (r_B==0) + r_F |= FLAG_Z; + else + r_F &= !FLAG_Z; + r_F |= FLAG_N; + AddCycles( 4+4+4+4 ); break; +*/ + + // I/O block instructions by Metalbrain - 14-5-2001 + case IND : r_meml = Z80InPort((r_BC)); r_memh=0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80WriteMem( r_HL, r_meml, regs ); + r_F |= ( (r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph = 0; + r_opl--; + r_op += r_mem; + r_oph += (r_oph << 4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_dec1_table[(r_opl)] ); + r_HL--; + AddCycles( 4+4+4+4); break; + + case INDR : r_meml = Z80InPort((r_BC)); r_memh=0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80WriteMem( r_HL, r_meml, regs ); + r_F |= ( (r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph = 0; + r_opl--; + r_op += r_mem; + r_oph += (r_oph << 4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_dec1_table[(r_opl)] ); + r_HL--; + if( r_B ) { r_PC-=2; AddCycles(5); } + AddCycles( 4+4+4+4); break; + + case INI : r_meml = Z80InPort((r_BC)); r_memh=0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80WriteMem( r_HL, r_meml, regs ); + r_F |= ( (r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph = 0; + r_opl++; + r_op += r_mem; + r_oph += (r_oph << 4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_inc1_table[(r_opl)] ); + r_HL++; + AddCycles( 4+4+4+4); break; + + + case INIR : r_meml = Z80InPort((r_BC)); r_memh=0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80WriteMem( r_HL, r_meml, regs ); + r_F |= ( (r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph = 0; + r_opl++; + r_op += r_mem; + r_oph += (r_oph << 4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_inc1_table[(r_opl)] ); + r_HL++; + if( r_B ) { r_PC-=2; AddCycles(5); } + AddCycles( 4+4+4+4); break; + + case OUTI : r_meml = Z80ReadMem(r_HL); r_memh = 0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80OutPort( regs, r_BC, r_meml); + r_F |= ((r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph=0; + r_opl++; + r_op += r_mem; + r_oph += (r_oph<<4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_inc1_table[(r_opl)] ); + r_HL++; + AddCycles( 4+4+4+4); break; + + case OTIR : r_meml = Z80ReadMem(r_HL); r_memh = 0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80OutPort( regs, r_BC, r_meml); + r_F |= ((r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph=0; + r_opl++; + r_op += r_mem; + r_oph += (r_oph<<4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_inc1_table[(r_opl)] ); + r_HL++; + if( r_B ) { r_PC-=2; AddCycles(5); } + AddCycles( 4+4+4+4); break; + + + case OUTD : r_meml = Z80ReadMem(r_HL); r_memh = 0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80OutPort( regs, r_BC, r_meml); + r_F |= ((r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph=0; + r_opl--; + r_op += r_mem; + r_oph += (r_oph<<4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_dec1_table[(r_opl)] ); + r_HL--; + AddCycles( 4+4+4+4); break; + + case OTDR : r_meml = Z80ReadMem(r_HL); r_memh = 0; + r_F = ( r_F & FLAG_C ) | ( (r_B)&0x0f ? 0 : FLAG_H ) | FLAG_N; \ + (r_B)--; + r_F |= ( (r_B)==0x7f ? FLAG_V : 0 ) | sz53_table[(r_B)]; + r_F &= 0xE8; + Z80OutPort( regs, r_BC, r_meml); + r_F |= ((r_meml & 0x80 ) >> 6); + r_opl = r_C; r_oph=0; + r_opl--; + r_op += r_mem; + r_oph += (r_oph<<4); + r_F |= r_oph; + r_opl = (r_meml & 7) + ( (r_C & 7) << 3 ); + r_F |= ( ioblock_2_table[(r_B)] ^ ioblock_dec1_table[(r_opl)] ); + r_HL--; + if( r_B ) { r_PC-=2; AddCycles(5); } + AddCycles( 4+4+4+4); break; + +// End of Metalbrain's contribution + + case PREFIX_ED: AddCycles( 4 ); /* ED ED xx = 12 cycles min = 4+8 */ + r_PC-- ; + break; + + default: +// exit(1); + AddCycles( 4+4 ); /* Just a NOP */ +///!!! if(regs->DecodingErrors) +///!!! printf( "z80 core: Unknown instruction: ED %02Xh at PC=%04Xh.\n", +///!!! Z80ReadMem(r_PC-1),r_PC-2 ); + break; +} diff --git a/programs/emulator/e80/trunk/z80/opcodes.c b/programs/emulator/e80/trunk/z80/opcodes.c new file mode 100644 index 0000000000..35b2558c97 --- /dev/null +++ b/programs/emulator/e80/trunk/z80/opcodes.c @@ -0,0 +1,901 @@ +/*====================================================================/* + opcodes.c -> This file executes the single-byte Z80 opcodes. + + The CPU fetchs the byte pointed by the PC register (Program Counter) + into de IR (Instruction Register) and decodes it. The value of this + fetched byte (opcode) determines what operation the CPU must do. + On Z80 (which uses 8 bit for the IW register) this means that we + can have 256 (2^8) different opcodes. The z80 uses a simple trick + called PREFIXES to obtain more opcodes by using more than one byte + in the decoding (see opcodes_cb.c to know how it does it). + + This file executes the whole list of single-byte opcodes. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + =====================================================================*/ + +/* About the AddCycles(4) -> Remember that reading from memory + takes 3 cycles plus 1 of the decoding. + Add 3 cycles for each operand fetch, and + 3 more for each memory write/read. */ + + +case NOP : AddCycles( 4 ); break; +case LD_BC_NN : LD_rr_nn(r_BC); AddCycles( 4+3+3 ); break; +case LD_xBC_A : STORE_r(r_BC, r_A); AddCycles( 4+3 ); break; +case INC_BC : r_BC++; AddCycles( 4+2 ); break; + +case INC_B : INC(r_B); AddCycles( 4 ); break; +case DEC_B : DEC(r_B); AddCycles( 4 ); break; + +case LD_B_N : LD_r_n(r_B); + AddCycles( 4+3 ); + break; + +case EX_AF_AF : EX_WORD(r_AF, r_AFs); + AddCycles( 4 ); + break; + +case LD_A_xBC : LOAD_r(r_A, r_BC); + AddCycles( 4+3 ); + break; + +case DEC_BC : r_BC--; + AddCycles( 4+2 ); + break; + +case INC_C : INC(r_C); + AddCycles( 4 ); + break; + +case DEC_C : DEC(r_C); + AddCycles( 4 ); + break; + +case LD_C_N : LD_r_n(r_C); + AddCycles( 4+3 ); + break; + +case LD_DE_NN : LD_rr_nn(r_DE); + AddCycles( 4+3+3 ); + break; + +case LD_xDE_A : STORE_r(r_DE, r_A); + AddCycles( 4+3 ); + break; + +case INC_DE : r_DE++; + AddCycles( 4+2 ); + break; + +case INC_D : INC(r_D); + AddCycles( 4 ); + break; + +case DEC_D : DEC(r_D); + AddCycles( 4 ); + break; + +case LD_D_N : LD_r_n(r_D); + AddCycles( 4+3 ); + break; + +case ADD_HL_BC : ADD_WORD(r_HL, r_BC); AddCycles( 4+3+3+1 ); break; +case ADD_HL_DE : ADD_WORD(r_HL, r_DE); AddCycles( 4+3+3+1 ); break; +case ADD_HL_HL : ADD_WORD(r_HL, r_HL); AddCycles( 4+3+3+1 ); break; +case ADD_HL_SP : ADD_WORD(r_HL, r_SP); AddCycles( 4+3+3+1 ); break; + +case LD_A_xDE : LOAD_r(r_A, r_DE); + AddCycles( 4+3 ); + break; + +case DEC_DE : r_DE--; + AddCycles( 4+2 ); + break; + +case INC_E : INC(r_E); + AddCycles( 4 ); + break; + +case DEC_E : DEC(r_E); + AddCycles( 4 ); + break; + +case LD_E_N : LD_r_n(r_E); + AddCycles( 4+3 ); + break; + +case LD_HL_NN : LD_rr_nn(r_HL); + AddCycles( 4+3+3 ); + break; + +case LD_xNN_HL : STORE_nn_rr(r_HL); + AddCycles( 4+3+3+3+3 ); + break; + +case INC_HL : r_HL++; + AddCycles( 4+2 ); + break; + +case INC_H : INC(r_H); + AddCycles( 4 ); + break; + +case DEC_H : DEC(r_H); + AddCycles( 4 ); + break; + +case LD_H_N : LD_r_n(r_H); + AddCycles( 4+3 ); + break; + +case LD_HL_xNN : LOAD_rr_nn(r_HL); + AddCycles( 4+3+3+3+3 ); + break; + +case DEC_HL : r_HL--; + AddCycles( 4+2 ); + break; + +case INC_L : INC(r_L); + AddCycles( 4 ); + break; + +case DEC_L : DEC(r_L); + AddCycles( 4 ); + break; + +case LD_L_N : LD_r_n(r_L); + AddCycles( 4+3 ); + break; + +case LD_SP_NN : LD_rr_nn(r_SP); + AddCycles( 10 ); + break; + +case LD_xNN_A : STORE_nn_r(r_A); + AddCycles( 13 ); + break; + +case INC_SP : r_SP++; + AddCycles( 6 ); + break; + +case LD_xHL_N : r_meml = Z80ReadMem(r_PC); r_PC++; + STORE_r( r_HL, r_meml ); + AddCycles( 10 ); + break; + +case LD_A_xNN : LOAD_r_nn( r_A ); + AddCycles( 13 ); + break; + +case DEC_SP : r_SP--; + AddCycles( 6 ); + break; + +case INC_A : INC(r_A); + AddCycles( 4 ); + break; + +case DEC_A : DEC(r_A); + AddCycles( 4 ); + break; + +case LD_A_N : LD_r_n(r_A); + AddCycles( 4+3 ); + break; + +case LD_B_B : LD_r_r( r_B, r_B ); + AddCycles( 4 ); + break; + +case LD_B_C : LD_r_r( r_B, r_C ); + AddCycles( 4 ); + break; + +case LD_B_D : LD_r_r( r_B, r_D ); + AddCycles( 4 ); + break; + +case LD_B_E : LD_r_r( r_B, r_E ); + AddCycles( 4 ); + break; + +case LD_B_H : LD_r_r( r_B, r_H ); + AddCycles( 4 ); + break; + +case LD_B_L : LD_r_r( r_B, r_L ); + AddCycles( 4 ); + break; + +case LD_B_xHL : LOAD_r(r_B, r_HL); + AddCycles( 4+3 ); + break; + +case LD_B_A : LD_r_r( r_B, r_A ); + AddCycles( 4 ); + break; + +case LD_C_B : LD_r_r( r_C, r_B ); + AddCycles( 4 ); + break; + +case LD_C_C : LD_r_r( r_C, r_C ); + AddCycles( 4 ); + break; + +case LD_C_D : LD_r_r( r_C, r_D ); + AddCycles( 4 ); + break; + +case LD_C_E : LD_r_r( r_C, r_E ); + AddCycles( 4 ); + break; +case LD_C_H : LD_r_r( r_C, r_H ); + AddCycles( 4 ); + break; + +case LD_C_L : LD_r_r( r_C, r_L ); + AddCycles( 4 ); + break; + +case LD_C_xHL : LOAD_r(r_C, r_HL); + AddCycles( 4+3 ); + break; + +case LD_C_A : LD_r_r( r_C, r_A ); + AddCycles( 4 ); + break; + +case LD_D_B : LD_r_r( r_D, r_B ); + AddCycles( 4 ); + break; + +case LD_D_C : LD_r_r( r_D, r_C ); + AddCycles( 4 ); + break; + +case LD_D_D : LD_r_r( r_D, r_D ); + AddCycles( 4 ); + break; + +case LD_D_E : LD_r_r( r_D, r_E ); + AddCycles( 4 ); + break; + +case LD_D_H : LD_r_r( r_D, r_H ); + AddCycles( 4 ); + break; + +case LD_D_L : LD_r_r( r_D, r_L ); + AddCycles( 4 ); + break; + +case LD_D_xHL : LOAD_r(r_D, r_HL); + AddCycles( 4+3 ); + break; + +case LD_D_A : LD_r_r( r_D, r_A ); + AddCycles( 4 ); + break; + +case LD_E_B : LD_r_r( r_E, r_B ); + AddCycles( 4 ); + break; + +case LD_E_C : LD_r_r( r_E, r_C ); + AddCycles( 4 ); + break; + +case LD_E_D : LD_r_r( r_E, r_D ); + AddCycles( 4 ); + break; + +case LD_E_E : LD_r_r( r_E, r_E ); + AddCycles( 4 ); + break; + +case LD_E_H : LD_r_r( r_E, r_H ); + AddCycles( 4 ); + break; + +case LD_E_L : LD_r_r( r_E, r_L ); + AddCycles( 4 ); + break; + +case LD_E_xHL : LOAD_r(r_E, r_HL); + AddCycles( 4+3 ); + break; + +case LD_E_A : LD_r_r( r_E, r_A ); + AddCycles( 4 ); + break; + +case LD_H_B : LD_r_r( r_H, r_B ); + AddCycles( 4 ); + break; + +case LD_H_C : LD_r_r( r_H, r_C ); + AddCycles( 4 ); + break; + +case LD_H_D : LD_r_r( r_H, r_D ); + AddCycles( 4 ); + break; + +case LD_H_E : LD_r_r( r_H, r_E ); + AddCycles( 4 ); + break; + +case LD_H_H : LD_r_r( r_H, r_H ); + AddCycles( 4 ); + break; + +case LD_H_L : LD_r_r( r_H, r_L ); + AddCycles( 4 ); + break; + +case LD_H_xHL : LOAD_r(r_H, r_HL); + AddCycles( 4+3 ); + break; + +case LD_H_A : LD_r_r( r_H, r_A ); + AddCycles( 4 ); + break; + +case LD_L_B : LD_r_r( r_L, r_B ); + AddCycles( 4 ); + break; + +case LD_L_C : LD_r_r( r_L, r_C ); + AddCycles( 4 ); + break; + +case LD_L_D : LD_r_r( r_L, r_D ); + AddCycles( 4 ); + break; + +case LD_L_E : LD_r_r( r_L, r_E ); + AddCycles( 4 ); + break; + +case LD_L_H : LD_r_r( r_L, r_H ); + AddCycles( 4 ); + break; + +case LD_L_L : LD_r_r( r_L, r_L ); + AddCycles( 4 ); + break; + +case LD_L_xHL : LOAD_r(r_L, r_HL); + AddCycles( 7 ); + break; + +case LD_L_A : LD_r_r( r_L, r_A ); + AddCycles( 4 ); + break; + +case LD_xHL_B : STORE_r( r_HL, r_B ); + AddCycles( 4+3 ); + break; + +case LD_xHL_C : STORE_r( r_HL, r_C ); + AddCycles( 4+3 ); + break; + +case LD_xHL_D : STORE_r( r_HL, r_D ); + AddCycles( 4+3 ); + break; + +case LD_xHL_E : STORE_r( r_HL, r_E ); + AddCycles( 4+3 ); + break; + +case LD_xHL_H : STORE_r( r_HL, r_H ); + AddCycles( 4+3 ); + break; + +case LD_xHL_L : STORE_r( r_HL, r_L ); + AddCycles( 4+3 ); + break; + +case LD_xHL_A : STORE_r(r_HL, r_A ); + AddCycles( 4+3 ); + break; + +case LD_A_B : LD_r_r( r_A, r_B ); + AddCycles( 4 ); + break; + +case LD_A_C : LD_r_r( r_A, r_C ); + AddCycles( 4 ); + break; + +case LD_A_D : LD_r_r( r_A, r_D ); + AddCycles( 4 ); + break; + +case LD_A_E : LD_r_r( r_A, r_E ); + AddCycles( 4 ); + break; + +case LD_A_H : LD_r_r( r_A, r_H ); + AddCycles( 4 ); + break; + +case LD_A_L : LD_r_r( r_A, r_L ); + AddCycles( 4 ); + break; + +case LD_A_xHL : LOAD_r( r_A, r_HL); + AddCycles( 4+3 ); + break; + +case LD_A_A : LD_r_r( r_A, r_A ); + AddCycles( 4 ); + break; + +case LD_SP_HL : LD_r_r( r_SP, r_HL ); + AddCycles( 6 ); break; + +case ADD_B : ADD(r_B); AddCycles( 4 ); break; +case ADD_C : ADD(r_C); AddCycles( 4 ); break; +case ADD_D : ADD(r_D); AddCycles( 4 ); break; +case ADD_E : ADD(r_E); AddCycles( 4 ); break; +case ADD_H : ADD(r_H); AddCycles( 4 ); break; +case ADD_L : ADD(r_L); AddCycles( 4 ); break; +case ADD_xHL : r_meml = Z80ReadMem(r_HL); + ADD(r_meml); + AddCycles( 4+3 ); + break; +case ADD_A : ADD(r_A); AddCycles( 4 ); break; +case ADC_B : ADC(r_B); AddCycles( 4 ); break; +case ADC_C : ADC(r_C); AddCycles( 4 ); break; +case ADC_D : ADC(r_D); AddCycles( 4 ); break; +case ADC_E : ADC(r_E); AddCycles( 4 ); break; +case ADC_H : ADC(r_H); AddCycles( 4 ); break; +case ADC_L : ADC(r_L); AddCycles( 4 ); break; +case ADC_xHL : r_meml = Z80ReadMem(r_HL); + ADC(r_meml); + AddCycles( 4+3 ); + break; +case ADC_A : ADC(r_A); AddCycles( 4 ); break; +case ADC_N : r_meml = Z80ReadMem(r_PC); r_PC++; + ADC(r_meml); + AddCycles( 4+3 ); + break; + +case SUB_A : SUB(r_A); AddCycles( 4 ); break; +case SUB_B : SUB(r_B); AddCycles( 4 ); break; +case SUB_C : SUB(r_C); AddCycles( 4 ); break; +case SUB_D : SUB(r_D); AddCycles( 4 ); break; +case SUB_E : SUB(r_E); AddCycles( 4 ); break; +case SUB_H : SUB(r_H); AddCycles( 4 ); break; +case SUB_L : SUB(r_L); AddCycles( 4 ); break; +case SUB_xHL : r_meml = Z80ReadMem(r_HL); + SUB(r_meml); + AddCycles( 4+3 ); + break; +case SUB_N : r_meml = Z80ReadMem(r_PC); r_PC++; + SUB(r_meml); + AddCycles( 4+3 ); + break; + +case SBC_A : SBC(r_A); AddCycles( 4 ); break; +case SBC_B : SBC(r_B); AddCycles( 4 ); break; +case SBC_C : SBC(r_C); AddCycles( 4 ); break; +case SBC_D : SBC(r_D); AddCycles( 4 ); break; +case SBC_E : SBC(r_E); AddCycles( 4 ); break; +case SBC_H : SBC(r_H); AddCycles( 4 ); break; +case SBC_L : SBC(r_L); AddCycles( 4 ); break; +case SBC_xHL : r_meml = Z80ReadMem(r_HL); + SBC(r_meml); + AddCycles( 4+3 ); + break; +case SBC_N : r_meml = Z80ReadMem(r_PC); r_PC++; + SBC(r_meml); + AddCycles( 4 ); + break; + +case AND_B : AND( r_B ); AddCycles( 4 ); break; +case AND_C : AND( r_C ); AddCycles( 4 ); break; +case AND_D : AND( r_D ); AddCycles( 4 ); break; +case AND_E : AND( r_E ); AddCycles( 4 ); break; +case AND_H : AND( r_H ); AddCycles( 4 ); break; +case AND_L : AND( r_L ); AddCycles( 4 ); break; +case AND_xHL : AND_mem( r_HL ); AddCycles( 4+3 ); break; +case AND_A : AND( r_A ); AddCycles( 4 ); break; +case XOR_B : XOR( r_B ); AddCycles( 4 ); break; +case XOR_C : XOR( r_C ); AddCycles( 4 ); break; +case XOR_D : XOR( r_D ); AddCycles( 4 ); break; +case XOR_E : XOR( r_E ); AddCycles( 4 ); break; +case XOR_H : XOR( r_H ); AddCycles( 4 ); break; +case XOR_L : XOR( r_L ); AddCycles( 4 ); break; +case XOR_xHL : XOR_mem( r_HL ); AddCycles( 4+3 ); break; +case XOR_A : XOR( r_A ); AddCycles( 4 ); break; +case OR_B : OR( r_B ); AddCycles( 4 ); break; +case OR_C : OR( r_C ); AddCycles( 4 ); break; +case OR_D : OR( r_D ); AddCycles( 4 ); break; +case OR_E : OR( r_E ); AddCycles( 4 ); break; +case OR_H : OR( r_H ); AddCycles( 4 ); break; +case OR_L : OR( r_L ); AddCycles( 4 ); break; +case OR_xHL : OR_mem( r_HL ); AddCycles( 4+3 ); break; +case OR_A : OR( r_A ); AddCycles( 4 ); break; +case CP_A : CP(r_A); AddCycles( 4 ); break; +case CP_B : CP(r_B); AddCycles( 4 ); break; +case CP_C : CP(r_C); AddCycles( 4 ); break; +case CP_D : CP(r_D); AddCycles( 4 ); break; +case CP_E : CP(r_E); AddCycles( 4 ); break; +case CP_H : CP(r_H); AddCycles( 4 ); break; +case CP_L : CP(r_L); AddCycles( 4 ); break; +case CP_xHL : r_meml = Z80ReadMem( r_HL ); + CP(r_meml); AddCycles( 4+3 ); break; +case CP_N : r_meml = Z80ReadMem(r_PC); r_PC++; + CP(r_meml); + AddCycles( 4+3); + break; + +case RET_Z : if( TEST_FLAG(Z_FLAG) ) + { RET_nn(); AddCycles( 4+1+3+3 ); } + else { AddCycles( 4+1 ); } + break; + +case RET_C : if( TEST_FLAG(C_FLAG) ) + { RET_nn(); AddCycles( 4+1+3+3 ); } + else { AddCycles( 4+1 ); } + break; + +case RET_M : if( TEST_FLAG(S_FLAG) ) + { RET_nn(); AddCycles( 4+1+3+3 ); } + else { AddCycles( 4+1 ); } + break; + +case RET_PE : if( TEST_FLAG(P_FLAG) ) + { RET_nn(); AddCycles( 4+1+3+3 ); } + else { AddCycles( 4+1 ); } + break; + +case RET_PO : if( TEST_FLAG(P_FLAG) ) + { AddCycles( 4+1 ); } + else { RET_nn(); AddCycles( 4+1+3+3 ); } + break; + +case RET_P : if( TEST_FLAG(S_FLAG) ) + { AddCycles( 4+1 ); } + else { RET_nn(); AddCycles( 4+1+3+3 ); } + break; + +case RET : RET_nn(); + AddCycles( 4+3+3 ); + break; + +case RET_NZ : if( TEST_FLAG(Z_FLAG) ) + { AddCycles( 4+1 ); } + else { RET_nn(); AddCycles( 4+1+3+3 ); } + break; + +case RET_NC : if( TEST_FLAG(C_FLAG) ) + { AddCycles( 4+1 ); } + else { RET_nn(); AddCycles( 4+1+3+3 ); } + break; + +case ADD_N : r_meml = Z80ReadMem(r_PC); r_PC++; + ADD(r_meml); + AddCycles( 4+3 ); + break; + +case JR : JR_n(); + AddCycles( 4+3+3+2 ); + break; + +case JR_NZ : if( TEST_FLAG(Z_FLAG) ) + { r_PC++; AddCycles( 4+3 ); } + else + { JR_n(); AddCycles( 4+8 ); } + break; + +case JR_Z : if( TEST_FLAG(Z_FLAG) ) + { JR_n(); AddCycles( 4+8 ); } + else + { r_PC++; AddCycles( 4+3 ); } + break; + +case JR_NC : if( TEST_FLAG(C_FLAG) ) + { r_PC++; AddCycles( 4+3 ); } + else + { JR_n(); AddCycles( 4+8 ); } + break; + +case JR_C : if( TEST_FLAG(C_FLAG) ) + { JR_n(); AddCycles( 4+8 ); } + else + { r_PC++; AddCycles( 4+3 ); } + break; + +case JP_NZ : if( TEST_FLAG(Z_FLAG) ) { r_PC += 2; } + else { JP_nn(); } + AddCycles( 4+3+3 ); + break; + +case JP : JP_nn(); + AddCycles( 4+3+3 ); + break; + +case JP_Z : if( TEST_FLAG(Z_FLAG) ) { JP_nn(); } + else { r_PC += 2; } + AddCycles( 4+3+3 ); + break; + +case JP_NC : if( TEST_FLAG(C_FLAG) ) { r_PC += 2; } + else { JP_nn(); } + AddCycles( 4+3+3 ); + break; + +case JP_C : if( TEST_FLAG(C_FLAG) ) { JP_nn(); } + else { r_PC += 2; } + AddCycles( 4+3+3 ); + break; + +case JP_PO : if( TEST_FLAG(P_FLAG) ) { r_PC += 2; } + else { JP_nn(); } + AddCycles( 4+3+3 ); + break; + +case JP_PE : if( TEST_FLAG(P_FLAG) ) { JP_nn(); } + else { r_PC += 2; } + AddCycles( 4+3+3 ); + break; + +case JP_P : if( TEST_FLAG(S_FLAG) ) { r_PC += 2; } + else { JP_nn(); } + AddCycles( 4+3+3 ); + break; + + +case JP_M : if( TEST_FLAG(S_FLAG) ) { JP_nn(); } + else { r_PC += 2; } + AddCycles( 4+3+3 ); + break; + +case JP_xHL : r_PC = r_HL; AddCycles( 4 ); break; + +case CPL : r_A ^= 0xFF; + r_F = ( r_F & (FLAG_C|FLAG_P|FLAG_Z|FLAG_S)) | + ( r_A & (FLAG_3|FLAG_5))|(FLAG_N|FLAG_H); + AddCycles( 4 ); break; + +case INC_xHL : r_meml = Z80ReadMem( r_HL ); + INC(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+3+3+1 ); break; + +case DEC_xHL : r_meml = Z80ReadMem( r_HL ); + DEC(r_meml); + Z80WriteMem( r_HL, r_meml, regs ); + AddCycles( 4+3+3+1 ); break; + +case SCF : r_F = r_F | FLAG_C; + r_F &= FLAG_Z | FLAG_S | FLAG_P; + if(r_F & FLAG_H) r_F ^= FLAG_H; + r_F |= FLAG_C; + AddCycles( 4 ); break; + +case CCF : r_F = (r_F & (FLAG_P|FLAG_Z|FLAG_S) ) | + ((r_F & FLAG_C) ? FLAG_H : FLAG_C) | + ( r_A & (FLAG_3 | FLAG_5) ); + AddCycles( 4 ); break; + +case HALT : regs->halted = 1; + AddCycles(4); + break; + +case POP_BC : POP(BC); AddCycles( 10 ); break; +case PUSH_BC : PUSH(BC); AddCycles( 11 ); break; +case POP_HL : POP(HL); AddCycles( 10 ); break; +case PUSH_HL : PUSH(HL); AddCycles( 11 ); break; +case POP_AF : POP(AF); AddCycles( 10 ); break; +case PUSH_AF : PUSH(AF); AddCycles( 11 ); break; +case POP_DE : POP(DE); AddCycles( 10 ); break; +case PUSH_DE : PUSH(DE); AddCycles( 11 ); break; + +case RLCA : r_A = (r_A << 1) | (r_A >> 7); + r_F = ( r_F & (FLAG_P|FLAG_Z|FLAG_S)) | + ( r_A & (FLAG_C|FLAG_3|FLAG_5) ); + AddCycles( 4 ); break; + +case RRCA : r_F = ( r_F & (FLAG_P|FLAG_Z|FLAG_S)) | + ( r_A & FLAG_C ); + r_A = ( r_A >> 1) | ( r_A << 7 ); + r_F |= ( r_A & ( FLAG_3 | FLAG_5 ) ); + AddCycles( 4 ); break; + +case DJNZ : r_B--; + if( r_B ) { JR_n(); AddCycles(13); } + else { r_PC++ ; AddCycles(8); } + break; + +case RLA : r_meml = r_A; + r_A = ( r_A << 1 ) | ( r_F & FLAG_C ); + r_F = ( r_F & ( FLAG_P | FLAG_Z | FLAG_S ) ) | + (r_A & ( FLAG_3 | FLAG_5 ) ) | ( r_meml >> 7); + AddCycles( 4 ); break; + +case RRA : r_meml = r_A; + r_A = ( r_A >> 1 ) | ( r_F << 7 ); + r_F = ( r_F & ( FLAG_P | FLAG_Z | FLAG_S ) ) | + ( r_A & ( FLAG_3 | FLAG_5 ) ) | ( r_meml & FLAG_C ); + AddCycles( 4 ); break; + +case DAA : r_meml = 0; + r_memh = ( r_F & FLAG_C ); + if( ( r_F & FLAG_H ) || ( (r_A & 0x0f)>9 ) ) r_meml=6; + if( r_memh || (r_A > 0x9f ) ) r_meml |= 0x60; + if( r_A > 0x99 ) r_memh=1; + if ( r_F & FLAG_N ) { SUB(r_meml); } + else + { + if( (r_A>0x90) && ( (r_A & 0x0f)>9) ) r_meml|=0x60; + ADD(r_meml); + } + r_F = ( r_F & ~( FLAG_C | FLAG_P) ) | r_memh | + parity_table[r_A]; + AddCycles( 4 ); break; + +case OUT_N_A : Z80OutPort( regs, Z80ReadMem( r_PC ), r_A ); r_PC++; + AddCycles( 11 ); break; + +case IN_A_N : r_A = Z80InPort( Z80ReadMem( r_PC ) + (r_A << 8)); + r_PC++; AddCycles( 11 ); break; + +case EX_HL_xSP : r_meml = Z80ReadMem(r_SP); + r_memh = Z80ReadMem(r_SP+1); + Z80WriteMem(r_SP, r_L, regs); + Z80WriteMem(r_SP+1, r_H, regs); + r_L = r_meml; + r_H = r_memh; + AddCycles( 19 ); break; + +case EXX : EX_WORD(r_BC, r_BCs); EX_WORD(r_DE, r_DEs); + EX_WORD(r_HL, r_HLs); + AddCycles( 4 ); break; + +case EX_DE_HL : EX_WORD( r_DE, r_HL ); + AddCycles( 4 ); + break; + +case AND_N : AND_mem( r_PC ); + r_PC++; + AddCycles( 4+3 ); + break; + +case XOR_N : XOR_mem( r_PC ); + r_PC++; + AddCycles( 4+3 ); + break; + +case OR_N : OR_mem( r_PC ); + r_PC++; + AddCycles( 4+3 ); + break; + +case DI : r_IFF1 = r_IFF2 = 0; + AddCycles( 4 ); + break; + +case CALL : + CALL_nn(); + AddCycles( 4+3+3+3+3+1 ); + break; + +case CALL_NZ : if( TEST_FLAG(Z_FLAG) ) + { r_PC += 2; AddCycles( 4+3+3 ); } + else + { + CALL_nn(); + AddCycles( 4+3+3+3+3+1 ); + } + break; + +case CALL_NC : if( TEST_FLAG(C_FLAG) ) + { r_PC += 2; AddCycles( 4+3+3 ); } + else + { CALL_nn(); + AddCycles( 4+3+3+3+3+1 ); + } + break; + +case CALL_PO : if( TEST_FLAG(P_FLAG) ) + { r_PC += 2; AddCycles( 4+3+3 ); } + else + { CALL_nn(); + AddCycles( 4+3+3+ 3+3+1 ); + } + break; + +case CALL_P : if( TEST_FLAG(S_FLAG) ) + { r_PC += 2; AddCycles( 4+3+3 ); } + else + { CALL_nn(); + AddCycles( 4+3+3+3+3+1 ); + } + break; + + +case CALL_Z : if( TEST_FLAG(Z_FLAG) ) + { CALL_nn(); + AddCycles( 4+3+3+3+3+1 ); + } + else + { r_PC += 2; AddCycles( 4+3+3 ); } + break; + +case CALL_C : if( TEST_FLAG(C_FLAG) ) + { CALL_nn(); + AddCycles( 4+3+3+ 3+3+4 ); + } + else + { r_PC += 2; AddCycles( 4+3+3 ); } + break; + +case CALL_PE : if( TEST_FLAG(P_FLAG) ) + { CALL_nn(); + AddCycles( 4+3+3+3+3+1 ); + } + else + { r_PC += 2; AddCycles( 4+3+3 ); } + break; + +case CALL_M : if( TEST_FLAG(S_FLAG) ) + { CALL_nn(); + AddCycles( 4+3+3+3+3+1 ); + } + else + { r_PC += 2; AddCycles( 4+3+3 ); } + break; + +case EI : r_IFF1 = r_IFF2 = 1; + /* + Why Marat Fayzullin does this? -> + + regs->IFF2 |= 0x01; + if( regs->IRequest != INT_NOINT ) + { + regs->IBackup = regs->ICount; + regs->ICount = 0x1; + r_IFF |= 0x20; + }*/ + AddCycles( 4 ); + break; + +case RST_00 : RST(0x00); AddCycles( 11 ); break; +case RST_08 : RST(0x08); AddCycles( 11 ); break; +case RST_10 : RST(0x10); AddCycles( 11 ); break; +case RST_18 : RST(0x18); AddCycles( 11 ); break; +case RST_20 : RST(0x20); AddCycles( 11 ); break; +case RST_28 : RST(0x28); AddCycles( 11 ); break; +case RST_30 : RST(0x30); AddCycles( 11 ); break; +case RST_38 : RST(0x38); AddCycles( 11 ); break; + +default: +// exit(1); +///!!! if( regs->DecodingErrors ) +///!!! printf("z80 core: Unknown instruction: %02Xh at PC=%04Xh.\n", +///!!! Z80ReadMem(r_PC-1), r_PC-1 ); + break; diff --git a/programs/emulator/e80/trunk/z80/opddfdcb.c b/programs/emulator/e80/trunk/z80/opddfdcb.c new file mode 100644 index 0000000000..ebee5fb876 --- /dev/null +++ b/programs/emulator/e80/trunk/z80/opddfdcb.c @@ -0,0 +1,196 @@ +/*====================================================================/* + opcodes_ddfdcb.c -> This file executes the DD/FD CB PREFIX opcodes. + + Those are the double prefix opcodes. We found the DD prefix, which + means that we must treat HL as IX, and then we found the CB prefix, + so we must apply this rule to the CB PREFIX list of opcodes. A + signed byte displacement is also added, and it's located BEFORE + the DD CB opcode: + + ie: CB 2E = SRA (HL) + DD CB xx 2E = SRA (IX+xx) + + (or...) + + Those are the double prefix opcodes. We found the FD prefix, which + means that we must treat HL as IY, and then we found the CB prefix, + so we must apply this rule to the CB PREFIX list of opcodes. A + signed byte displacement is also added, and it's located BEFORE + the FD CB opcode: + + ie: CB 2E = SRA (HL) + FD CB xx 2E = SRA (IY+xx) + + Call here using something like #define REGISTER regs->IX + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + =====================================================================*/ + +/* 15 clock cycles minimum = FD/DD CB xx opcode = 4 + 4 + 3 + 4 */ + +tmpreg.W = REGISTER.W + (offset) Z80ReadMem( r_PC ); +r_PC++; +r_meml = Z80ReadMem( tmpreg.W ); +opcode = Z80ReadMem( r_PC ); +r_PC++; + +switch(opcode) +{ + + case RLC_xIXY : RLC(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case RRC_xIXY : RRC(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case RL_xIXY : RL(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case RR_xIXY : RR(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case SLA_xIXY : SLA(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case SRA_xIXY : SRA(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case SLL_xIXY : SLL(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case SRL_xIXY : SRL(r_meml); Z80WriteMem(tmpreg.W, r_meml, regs); + AddCycles( 23 ); break; + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x47: + case BIT_0_xIXY : BIT_BIT(0, r_meml); AddCycles( 15+5 ); break; + + case 0x48: + case 0x49: + case 0x4a: + case 0x4b: + case 0x4c: + case 0x4d: + case 0x4f: + case BIT_1_xIXY : + BIT_BIT(1, r_meml); AddCycles( 15+5 ); break; + + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x57: + case BIT_2_xIXY : BIT_BIT(2, r_meml); AddCycles( 15+5 ); break; + + case 0x58: + case 0x59: + case 0x5a: + case 0x5b: + case 0x5c: + case 0x5d: + case 0x5f: + case BIT_3_xIXY : BIT_BIT(3, r_meml); AddCycles( 15+5 ); break; + + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x67: + case BIT_4_xIXY : BIT_BIT(4, r_meml); AddCycles( 15+5 ); break; + + case 0x68: + case 0x69: + case 0x6a: + case 0x6b: + case 0x6c: + case 0x6d: + case 0x6f: + case BIT_5_xIXY : BIT_BIT(5, r_meml); AddCycles( 15+5 ); break; + + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x77: + case BIT_6_xIXY : BIT_BIT(6, r_meml); AddCycles( 15+5 ); break; + case 0x78: + case 0x79: + case 0x7a: + case 0x7b: + case 0x7c: + case 0x7d: + case 0x7f: + case BIT_7_xIXY : BIT_BIT7(r_meml); AddCycles( 15+5 ); break; + + case RES_0_xIXY : BIT_RES_mem(0, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case RES_1_xIXY : BIT_RES_mem(1, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case RES_2_xIXY : BIT_RES_mem(2, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case RES_3_xIXY : BIT_RES_mem(3, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case RES_4_xIXY : BIT_RES_mem(4, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case RES_5_xIXY : BIT_RES_mem(5, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case RES_6_xIXY : BIT_RES_mem(6, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case RES_7_xIXY : BIT_RES_mem(7, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_0_xIXY : BIT_SET_mem(0, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_1_xIXY : BIT_SET_mem(1, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_2_xIXY : BIT_SET_mem(2, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_3_xIXY : BIT_SET_mem(3, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_4_xIXY : BIT_SET_mem(4, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_5_xIXY : BIT_SET_mem(5, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_6_xIXY : BIT_SET_mem(6, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + case SET_7_xIXY : BIT_SET_mem(7, tmpreg.W, r_meml ); + AddCycles( 15+5+3 ); break; + + +/* + I must still include the undocumented opcodes such as: + LD B, RLC(REGISTER+dd) and so on ... + +*/ + default: + AddCycles( 15 ); +// exit(1); +///!!! if(regs->DecodingErrors) +///!!! { +///!!! printf("z80 core: Unknown instruction: "); +///!!! if( regs->we_are_on_ddfd == WE_ARE_ON_DD ) +///!!! printf("DD"); +///!!! else +///!!! printf("FD"); +///!!! printf("CB %02Xh %02Xh at PC=%04Xh.\n", +///!!! Z80ReadMem(r_PC-2), Z80ReadMem(r_PC-1), r_PC-4 ); +///!!! } + break; +} diff --git a/programs/emulator/e80/trunk/z80/tables.h b/programs/emulator/e80/trunk/z80/tables.h new file mode 100644 index 0000000000..6974e70f32 --- /dev/null +++ b/programs/emulator/e80/trunk/z80/tables.h @@ -0,0 +1,829 @@ +/*===================================================================== + tables.h -> Header file containing the defines for Z80 opcodes. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + ======================================================================*/ + +#ifndef TABLES_H +#define TABLES_H + +/*--- One byte opcodes: ----------------------------------------------*/ +#define NOP 0 +#define LD_BC_NN 1 +#define LD_xBC_A 2 +#define INC_BC 3 +#define INC_B 4 +#define DEC_B 5 +#define LD_B_N 6 +#define RLCA 7 +#define EX_AF_AF 8 +#define ADD_HL_BC 9 +#define LD_A_xBC 10 +#define DEC_BC 11 +#define INC_C 12 +#define DEC_C 13 +#define LD_C_N 14 +#define RRCA 15 +#define DJNZ 16 +#define LD_DE_NN 17 +#define LD_xDE_A 18 +#define INC_DE 19 +#define INC_D 20 +#define DEC_D 21 +#define LD_D_N 22 +#define RLA 23 +#define JR 24 +#define ADD_HL_DE 25 +#define LD_A_xDE 26 +#define DEC_DE 27 +#define INC_E 28 +#define DEC_E 29 +#define LD_E_N 30 +#define RRA 31 +#define JR_NZ 32 +#define LD_HL_NN 33 +#define LD_xNN_HL 34 +#define INC_HL 35 +#define INC_H 36 +#define DEC_H 37 +#define LD_H_N 38 +#define DAA 39 +#define JR_Z 40 +#define ADD_HL_HL 41 +#define LD_HL_xNN 42 +#define DEC_HL 43 +#define INC_L 44 +#define DEC_L 45 +#define LD_L_N 46 +#define CPL 47 +#define JR_NC 48 +#define LD_SP_NN 49 +#define LD_xNN_A 50 +#define INC_SP 51 +#define INC_xHL 52 +#define DEC_xHL 53 +#define LD_xHL_N 54 +#define SCF 55 +#define JR_C 56 +#define ADD_HL_SP 57 +#define LD_A_xNN 58 +#define DEC_SP 59 +#define INC_A 60 +#define DEC_A 61 +#define LD_A_N 62 +#define CCF 63 +#define LD_B_B 64 +#define LD_B_C 65 +#define LD_B_D 66 +#define LD_B_E 67 +#define LD_B_H 68 +#define LD_B_L 69 +#define LD_B_xHL 70 +#define LD_B_A 71 +#define LD_C_B 72 +#define LD_C_C 73 +#define LD_C_D 74 +#define LD_C_E 75 +#define LD_C_H 76 +#define LD_C_L 77 +#define LD_C_xHL 78 +#define LD_C_A 79 +#define LD_D_B 80 +#define LD_D_C 81 +#define LD_D_D 82 +#define LD_D_E 83 +#define LD_D_H 84 +#define LD_D_L 85 +#define LD_D_xHL 86 +#define LD_D_A 87 +#define LD_E_B 88 +#define LD_E_C 89 +#define LD_E_D 90 +#define LD_E_E 91 +#define LD_E_H 92 +#define LD_E_L 93 +#define LD_E_xHL 94 +#define LD_E_A 95 +#define LD_H_B 96 +#define LD_H_C 97 +#define LD_H_D 98 +#define LD_H_E 99 +#define LD_H_H 100 +#define LD_H_L 101 +#define LD_H_xHL 102 +#define LD_H_A 103 +#define LD_L_B 104 +#define LD_L_C 105 +#define LD_L_D 106 +#define LD_L_E 107 +#define LD_L_H 108 +#define LD_L_L 109 +#define LD_L_xHL 110 +#define LD_L_A 111 +#define LD_xHL_B 112 +#define LD_xHL_C 113 +#define LD_xHL_D 114 +#define LD_xHL_E 115 +#define LD_xHL_H 116 +#define LD_xHL_L 117 +#define HALT 118 +#define LD_xHL_A 119 +#define LD_A_B 120 +#define LD_A_C 121 +#define LD_A_D 122 +#define LD_A_E 123 +#define LD_A_H 124 +#define LD_A_L 125 +#define LD_A_xHL 126 +#define LD_A_A 127 +#define ADD_B 128 +#define ADD_C 129 +#define ADD_D 130 +#define ADD_E 131 +#define ADD_H 132 +#define ADD_L 133 +#define ADD_xHL 134 +#define ADD_A 135 +#define ADC_B 136 +#define ADC_C 137 +#define ADC_D 138 +#define ADC_E 139 +#define ADC_H 140 +#define ADC_L 141 +#define ADC_xHL 142 +#define ADC_A 143 +#define SUB_B 144 +#define SUB_C 145 +#define SUB_D 146 +#define SUB_E 147 +#define SUB_H 148 +#define SUB_L 149 +#define SUB_xHL 150 +#define SUB_A 151 +#define SBC_B 152 +#define SBC_C 153 +#define SBC_D 154 +#define SBC_E 155 +#define SBC_H 156 +#define SBC_L 157 +#define SBC_xHL 158 +#define SBC_A 159 +#define AND_B 160 +#define AND_C 161 +#define AND_D 162 +#define AND_E 163 +#define AND_H 164 +#define AND_L 165 +#define AND_xHL 166 +#define AND_A 167 +#define XOR_B 168 +#define XOR_C 169 +#define XOR_D 170 +#define XOR_E 171 +#define XOR_H 172 +#define XOR_L 173 +#define XOR_xHL 174 +#define XOR_A 175 +#define OR_B 176 +#define OR_C 177 +#define OR_D 178 +#define OR_E 179 +#define OR_H 180 +#define OR_L 181 +#define OR_xHL 182 +#define OR_A 183 +#define CP_B 184 +#define CP_C 185 +#define CP_D 186 +#define CP_E 187 +#define CP_H 188 +#define CP_L 189 +#define CP_xHL 190 +#define CP_A 191 +#define RET_NZ 192 +#define POP_BC 193 +#define JP_NZ 194 +#define JP 195 +#define CALL_NZ 196 +#define PUSH_BC 197 +#define ADD_N 198 +#define RST_00 199 +#define RET_Z 200 +#define RET 201 +#define JP_Z 202 +#define PREFIX_CB 203 +#define CALL_Z 204 +#define CALL 205 +#define ADC_N 206 +#define RST_08 207 +#define RET_NC 208 +#define POP_DE 209 +#define JP_NC 210 +#define OUT_N_A 211 +#define CALL_NC 212 +#define PUSH_DE 213 +#define SUB_N 214 +#define RST_10 215 +#define RET_C 216 +#define EXX 217 +#define JP_C 218 +#define IN_A_N 219 +#define CALL_C 220 +#define PREFIX_DD 221 +#define SBC_N 222 +#define RST_18 223 +#define RET_PO 224 +#define POP_HL 225 +#define JP_PO 226 +#define EX_HL_xSP 227 +#define CALL_PO 228 +#define PUSH_HL 229 +#define AND_N 230 +#define RST_20 231 +#define RET_PE 232 +#define JP_xHL 233 +#define JP_PE 234 +#define EX_DE_HL 235 +#define CALL_PE 236 +#define PREFIX_ED 237 +#define XOR_N 238 +#define RST_28 239 +#define RET_P 240 +#define POP_AF 241 +#define JP_P 242 +#define DI 243 +#define CALL_P 244 +#define PUSH_AF 245 +#define OR_N 246 +#define RST_30 247 +#define RET_M 248 +#define LD_SP_HL 249 +#define JP_M 250 +#define EI 251 +#define CALL_M 252 +#define PREFIX_FD 253 +#define CP_N 254 +#define RST_38 255 + + + +/*--- CB Prefix opcodes: ---------------------------------------------*/ +#define RLC_B 0 +#define RLC_C 1 +#define RLC_D 2 +#define RLC_E 3 +#define RLC_H 4 +#define RLC_L 5 +#define RLC_xHL 6 +#define RLC_A 7 +#define RRC_B 8 +#define RRC_C 9 +#define RRC_D 10 +#define RRC_E 11 +#define RRC_H 12 +#define RRC_L 13 +#define RRC_xHL 14 +#define RRC_A 15 +#define RL_B 16 +#define RL_C 17 +#define RL_D 18 +#define RL_E 19 +#define RL_H 20 +#define RL_L 21 +#define RL_xHL 22 +#define RL_A 23 +#define RR_B 24 +#define RR_C 25 +#define RR_D 26 +#define RR_E 27 +#define RR_H 28 +#define RR_L 29 +#define RR_xHL 30 +#define RR_A 31 +#define SLA_B 32 +#define SLA_C 33 +#define SLA_D 34 +#define SLA_E 35 +#define SLA_H 36 +#define SLA_L 37 +#define SLA_xHL 38 +#define SLA_A 39 +#define SRA_B 40 +#define SRA_C 41 +#define SRA_D 42 +#define SRA_E 43 +#define SRA_H 44 +#define SRA_L 45 +#define SRA_xHL 46 +#define SRA_A 47 +#define SLL_B 48 +#define SLL_C 49 +#define SLL_D 50 +#define SLL_E 51 +#define SLL_H 52 +#define SLL_L 53 +#define SLL_xHL 54 +#define SLL_A 55 +#define SRL_B 56 +#define SRL_C 57 +#define SRL_D 58 +#define SRL_E 59 +#define SRL_H 60 +#define SRL_L 61 +#define SRL_xHL 62 +#define SRL_A 63 +#define BIT_0_B 64 +#define BIT_0_C 65 +#define BIT_0_D 66 +#define BIT_0_E 67 +#define BIT_0_H 68 +#define BIT_0_L 69 +#define BIT_0_xHL 70 +#define BIT_0_A 71 +#define BIT_1_B 72 +#define BIT_1_C 73 +#define BIT_1_D 74 +#define BIT_1_E 75 +#define BIT_1_H 76 +#define BIT_1_L 77 +#define BIT_1_xHL 78 +#define BIT_1_A 79 +#define BIT_2_B 80 +#define BIT_2_C 81 +#define BIT_2_D 82 +#define BIT_2_E 83 +#define BIT_2_H 84 +#define BIT_2_L 85 +#define BIT_2_xHL 86 +#define BIT_2_A 87 +#define BIT_3_B 88 +#define BIT_3_C 89 +#define BIT_3_D 90 +#define BIT_3_E 91 +#define BIT_3_H 92 +#define BIT_3_L 93 +#define BIT_3_xHL 94 +#define BIT_3_A 95 +#define BIT_4_B 96 +#define BIT_4_C 97 +#define BIT_4_D 98 +#define BIT_4_E 99 +#define BIT_4_H 100 +#define BIT_4_L 101 +#define BIT_4_xHL 102 +#define BIT_4_A 103 +#define BIT_5_B 104 +#define BIT_5_C 105 +#define BIT_5_D 106 +#define BIT_5_E 107 +#define BIT_5_H 108 +#define BIT_5_L 109 +#define BIT_5_xHL 110 +#define BIT_5_A 111 +#define BIT_6_B 112 +#define BIT_6_C 113 +#define BIT_6_D 114 +#define BIT_6_E 115 +#define BIT_6_H 116 +#define BIT_6_L 117 +#define BIT_6_xHL 118 +#define BIT_6_A 119 +#define BIT_7_B 120 +#define BIT_7_C 121 +#define BIT_7_D 122 +#define BIT_7_E 123 +#define BIT_7_H 124 +#define BIT_7_L 125 +#define BIT_7_xHL 126 +#define BIT_7_A 127 +#define RES_0_B 128 +#define RES_0_C 129 +#define RES_0_D 130 +#define RES_0_E 131 +#define RES_0_H 132 +#define RES_0_L 133 +#define RES_0_xHL 134 +#define RES_0_A 135 +#define RES_1_B 136 +#define RES_1_C 137 +#define RES_1_D 138 +#define RES_1_E 139 +#define RES_1_H 140 +#define RES_1_L 141 +#define RES_1_xHL 142 +#define RES_1_A 143 +#define RES_2_B 144 +#define RES_2_C 145 +#define RES_2_D 146 +#define RES_2_E 147 +#define RES_2_H 148 +#define RES_2_L 149 +#define RES_2_xHL 150 +#define RES_2_A 151 +#define RES_3_B 152 +#define RES_3_C 153 +#define RES_3_D 154 +#define RES_3_E 155 +#define RES_3_H 156 +#define RES_3_L 157 +#define RES_3_xHL 158 +#define RES_3_A 159 +#define RES_4_B 160 +#define RES_4_C 161 +#define RES_4_D 162 +#define RES_4_E 163 +#define RES_4_H 164 +#define RES_4_L 165 +#define RES_4_xHL 166 +#define RES_4_A 167 +#define RES_5_B 168 +#define RES_5_C 169 +#define RES_5_D 170 +#define RES_5_E 171 +#define RES_5_H 172 +#define RES_5_L 173 +#define RES_5_xHL 174 +#define RES_5_A 175 +#define RES_6_B 176 +#define RES_6_C 177 +#define RES_6_D 178 +#define RES_6_E 179 +#define RES_6_H 180 +#define RES_6_L 181 +#define RES_6_xHL 182 +#define RES_6_A 183 +#define RES_7_B 184 +#define RES_7_C 185 +#define RES_7_D 186 +#define RES_7_E 187 +#define RES_7_H 188 +#define RES_7_L 189 +#define RES_7_xHL 190 +#define RES_7_A 191 +#define SET_0_B 192 +#define SET_0_C 193 +#define SET_0_D 194 +#define SET_0_E 195 +#define SET_0_H 196 +#define SET_0_L 197 +#define SET_0_xHL 198 +#define SET_0_A 199 +#define SET_1_B 200 +#define SET_1_C 201 +#define SET_1_D 202 +#define SET_1_E 203 +#define SET_1_H 204 +#define SET_1_L 205 +#define SET_1_xHL 206 +#define SET_1_A 207 +#define SET_2_B 208 +#define SET_2_C 209 +#define SET_2_D 210 +#define SET_2_E 211 +#define SET_2_H 212 +#define SET_2_L 213 +#define SET_2_xHL 214 +#define SET_2_A 215 +#define SET_3_B 216 +#define SET_3_C 217 +#define SET_3_D 218 +#define SET_3_E 219 +#define SET_3_H 220 +#define SET_3_L 221 +#define SET_3_xHL 222 +#define SET_3_A 223 +#define SET_4_B 224 +#define SET_4_C 225 +#define SET_4_D 226 +#define SET_4_E 227 +#define SET_4_H 228 +#define SET_4_L 229 +#define SET_4_xHL 230 +#define SET_4_A 231 +#define SET_5_B 232 +#define SET_5_C 233 +#define SET_5_D 234 +#define SET_5_E 235 +#define SET_5_H 236 +#define SET_5_L 237 +#define SET_5_xHL 238 +#define SET_5_A 239 +#define SET_6_B 240 +#define SET_6_C 241 +#define SET_6_D 242 +#define SET_6_E 243 +#define SET_6_H 244 +#define SET_6_L 245 +#define SET_6_xHL 246 +#define SET_6_A 247 +#define SET_7_B 248 +#define SET_7_C 249 +#define SET_7_D 250 +#define SET_7_E 251 +#define SET_7_H 252 +#define SET_7_L 253 +#define SET_7_xHL 254 +#define SET_7_A 255 + + +/*--- ED opcodes: ----------------------------------------------------*/ +#define IN_B_xC 64 +#define OUT_xC_B 65 +#define SBC_HL_BC 66 +#define LD_xNNe_BC 67 +#define NEG 68 +#define RETN 69 +#define IM_0 70 +#define LD_I_A 71 +#define IN_C_xC 72 +#define OUT_xC_C 73 +#define ADC_HL_BC 74 +#define LD_BC_xNNe 75 +#define ED_4C 76 /* * NEG */ +#define RETI 77 +#define ED_4E 78 /* * IM 0/1 */ +#define LD_R_A 79 +#define IN_D_xC 80 +#define OUT_xC_D 81 +#define SBC_HL_DE 82 +#define LD_xNNe_DE 83 +#define ED_54 84 /* * NEG */ +#define ED_55 85 /* * RET */ +#define IM_1 86 +#define LD_A_I 87 +#define IN_E_xC 88 +#define OUT_xC_E 89 +#define ADC_HL_DE 90 +#define LD_DE_xNNe 91 +#define ED_5C 92 /* * NEG */ +#define ED_5D 93 /* * RET */ +#define IM_2 94 +#define LD_A_R 95 +#define IN_H_xC 96 +#define OUT_xC_H 97 +#define SBC_HL_HL 98 +#define LD_xNNe_HL 99 +#define ED_64 100 /* * NEG */ +#define ED_65 101 /* * RET */ +#define ED_66 102 /* * IM 0 */ +#define RRD 103 +#define IN_L_xC 104 +#define OUT_xC_L 105 +#define ADC_HL_HL 106 +#define LD_HL_xNNe 107 +#define ED_6C 108 /* * NEG */ +#define ED_6D 109 /* * RET */ +#define ED_6E 110 /* * IM 0 */ +#define RLD 111 +#define IN_F_xC 112 +#define ED_71 113 /* * OUT (C), 0 */ +#define SBC_HL_SP 114 +#define LD_xNNe_SP 115 +#define ED_74 116 /* * NEG */ +#define ED_75 117 /* * RET */ +#define ED_76 118 /* * IM 1 */ +#define ED_77 119 /* * NOP */ +#define IN_A_xC 120 +#define OUT_xC_A 121 +#define ADC_HL_SP 122 +#define LD_SP_xNNe 123 +#define ED_7C 124 /* * NEG */ +#define ED_7D 125 /* * RET */ +#define ED_7E 126 /* * IM 2 */ +#define ED_7F 127 /* * NOP */ +#define LDI 160 +#define CPI 161 +#define INI 162 +#define OUTI 163 +#define LDD 168 +#define CPD 169 +#define IND 170 +#define OUTD 171 +#define LDIR 176 +#define CPIR 177 +#define INIR 178 +#define OTIR 179 +#define LDDR 184 +#define CPDR 185 +#define INDR 186 +#define OTDR 187 +#define ED_FE 254 + + +/*--- DD xx opcodes: -------------------------------------------------*/ +/* Those are the DD xx opcodes where HL is treated as IX + a + signed byte displacement n when required: DD opcode n: */ + +/*--- FD xx opcodes: -------------------------------------------------*/ +/* Those are the FD xx opcodes where HL is treated as IY + a + signed byte displacement n when required: FD opcode n: */ + +#define ADD_IXY_BC 9 +#define ADD_IXY_DE 25 +#define LD_IXY_NN 33 +#define LD_xNN_IXY 34 +#define INC_IXY 35 +#define INC_IXYh 36 +#define DEC_IXYh 37 +#define LD_IXYh_N 38 +#define ADD_IXY_IXY 41 +#define LD_IXY_xNN 42 +#define DEC_IXY 43 +#define INC_IXYl 44 +#define DEC_IXYl 45 +#define LD_IXYl_N 46 +#define INC_xIXY 52 +#define DEC_xIXY 53 +#define LD_xIXY_N 54 +#define ADD_IXY_SP 57 +#define LD_B_IXYh 68 +#define LD_B_IXYl 69 +#define LD_B_xIXY 70 +#define LD_C_IXYh 76 +#define LD_C_IXYl 77 +#define LD_C_xIXY 78 +#define LD_D_IXYh 84 +#define LD_D_IXYl 85 +#define LD_D_xIXY 86 +#define LD_E_IXYh 92 +#define LD_E_IXYl 93 +#define LD_E_xIXY 94 +#define LD_IXYh_B 96 +#define LD_IXYh_C 97 +#define LD_IXYh_D 98 +#define LD_IXYh_E 99 +#define LD_IXYh_IXYh 100 +#define LD_IXYh_IXYl 101 +#define LD_H_xIXY 102 +#define LD_IXYh_A 103 +#define LD_IXYl_B 104 +#define LD_IXYl_C 105 +#define LD_IXYl_D 106 +#define LD_IXYl_E 107 +#define LD_IXYl_IXYh 108 +#define LD_IXYl_IXYl 109 +#define LD_L_xIXY 110 +#define LD_IXYl_A 111 +#define LD_xIXY_B 112 +#define LD_xIXY_C 113 +#define LD_xIXY_D 114 +#define LD_xIXY_E 115 +#define LD_xIXY_H 116 +#define LD_xIXY_L 117 +#define LD_xIXY_A 119 +#define LD_A_IXYh 124 +#define LD_A_IXYl 125 +#define LD_A_xIXY 126 +#define ADD_IXYh 132 +#define ADD_IXYl 133 +#define ADD_xIXY 134 +#define ADC_IXYh 140 +#define ADC_IXYl 141 +#define ADC_xIXY 142 +#define SUB_IXYh 148 +#define SUB_IXYl 149 +#define SUB_xIXY 150 +#define SBC_IXYh 156 +#define SBC_IXYl 157 +#define SBC_xIXY 158 +#define AND_IXYh 164 +#define AND_IXYl 165 +#define AND_xIXY 166 +#define XOR_IXYh 172 +#define XOR_IXYl 173 +#define XOR_xIXY 174 +#define OR_IXYh 180 +#define OR_IXYl 181 +#define OR_xIXY 182 +#define CP_IXYh 188 +#define CP_IXYl 189 +#define CP_xIXY 190 +#define POP_IXY 225 +#define EX_IXY_xSP 227 +#define PUSH_IXY 229 +#define JP_IXY 233 +#define LD_SP_IXY 249 + + + + +/*--- DD CB Prefix opcodes: ------------------------------------------*/ +/* Those are the CB xx opcodes where HL is treated as IX + a + signed byte displacement n: DD CB n opcode: */ +/*--- FD CB Prefix opcodes: ------------------------------------------*/ +/* Those are the CB xx opcodes where HL is treated as IY + a + signed byte displacement n: FD CB n opcode: */ + +#define RLC_IXYh 4 +#define RLC_IXYl 5 +#define RLC_xIXY 6 +#define RRC_IXYh 12 +#define RRC_IXYl 13 +#define RRC_xIXY 14 +#define RL_IXYh 20 +#define RL_IXYl 21 +#define RL_xIXY 22 +#define RR_IXYh 28 +#define RR_IXYl 29 +#define RR_xIXY 30 +#define SLA_IXYh 36 +#define SLA_IXYl 37 +#define SLA_xIXY 38 +#define SRA_IXYh 44 +#define SRA_IXYl 45 +#define SRA_xIXY 46 +#define SLL_IXYh 52 +#define SLL_IXYl 53 +#define SLL_xIXY 54 +#define SRL_IXYh 60 +#define SRL_IXYl 61 +#define SRL_xIXY 62 +#define BIT_0_IXYh 68 +#define BIT_0_IXYl 69 +#define BIT_0_xIXY 70 +#define BIT_1_IXYh 76 +#define BIT_1_IXYl 77 +#define BIT_1_xIXY 78 +#define BIT_2_IXYh 84 +#define BIT_2_IXYl 85 +#define BIT_2_xIXY 86 +#define BIT_3_IXYh 92 +#define BIT_3_IXYl 93 +#define BIT_3_xIXY 94 +#define BIT_4_IXYh 100 +#define BIT_4_IXYl 101 +#define BIT_4_xIXY 102 +#define BIT_5_IXYh 108 +#define BIT_5_IXYl 109 +#define BIT_5_xIXY 110 +#define BIT_6_IXYh 116 +#define BIT_6_IXYl 117 +#define BIT_6_xIXY 118 +#define BIT_7_IXYh 124 +#define BIT_7_IXYl 125 +#define BIT_7_xIXY 126 +#define RES_0_IXYh 132 +#define RES_0_IXYl 133 +#define RES_0_xIXY 134 +#define RES_1_IXYh 140 +#define RES_1_IXYl 141 +#define RES_1_xIXY 142 +#define RES_2_IXYh 148 +#define RES_2_IXYl 149 +#define RES_2_xIXY 150 +#define RES_3_IXYh 156 +#define RES_3_IXYl 157 +#define RES_3_xIXY 158 +#define RES_4_IXYh 164 +#define RES_4_IXYl 165 +#define RES_4_xIXY 166 +#define RES_5_IXYh 172 +#define RES_5_IXYl 173 +#define RES_5_xIXY 174 +#define RES_6_IXYh 180 +#define RES_6_IXYl 181 +#define RES_6_xIXY 182 +#define RES_7_IXYh 188 +#define RES_7_IXYl 189 +#define RES_7_xIXY 190 +#define SET_0_IXYh 196 +#define SET_0_IXYl 197 +#define SET_0_xIXY 198 +#define SET_1_IXYh 204 +#define SET_1_IXYl 205 +#define SET_1_xIXY 206 +#define SET_2_IXYh 212 +#define SET_2_IXYl 213 +#define SET_2_xIXY 214 +#define SET_3_IXYh 220 +#define SET_3_IXYl 221 +#define SET_3_xIXY 222 +#define SET_4_IXYh 228 +#define SET_4_IXYl 229 +#define SET_4_xIXY 230 +#define SET_5_IXYh 236 +#define SET_5_IXYl 237 +#define SET_5_xIXY 238 +#define SET_6_IXYh 244 +#define SET_6_IXYl 245 +#define SET_6_xIXY 246 +#define SET_7_IXYh 252 +#define SET_7_IXYl 253 +#define SET_7_xIXY 254 + +#endif diff --git a/programs/emulator/e80/trunk/z80/z80.c b/programs/emulator/e80/trunk/z80/z80.c new file mode 100644 index 0000000000..33cfdaa284 --- /dev/null +++ b/programs/emulator/e80/trunk/z80/z80.c @@ -0,0 +1,407 @@ +/*===================================================================== + z80.c -> Main File related to the Z80 emulation code. + + Please read documentation files to know how this works :) + + Thanks go to Marat Fayzullin (read z80.h for more info), Raúl Gomez + (check his great R80 Spectrum emulator!), Philip Kendall (some code + of this emulator, such as the flags lookup tabled are from his fuse + Spectrum emulator) and more people I forget to name here ... + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + ======================================================================*/ + +#include "z80.h" +#include "tables.h" + + +/* RAM variable, debug toggle variable, pressed key and + row variables for keyboard emulation */ +extern byte *RAM; +extern int debug, main_tecla, scanl; + +extern int fila[5][5]; + +//extern char *tapfile; +//extern FILE *tapfile; +extern char *tfont; + +#include "macros.c" + + +/*==================================================================== + void Z80Reset( Z80Regs *regs, int cycles ) + + This function simulates a z80 reset by setting the registers + to the values they are supposed to take on a real z80 reset. + You must pass it the Z80 register structure and the number + of cycles required to check for interrupts and do special + hardware checking/updating. + ===================================================================*/ +void Z80Reset( Z80Regs *regs, int int_cycles ) +{ + /* reset PC and the rest of main registers: */ + regs->PC.W = regs->R.W = 0x0000; + + regs->AF.W = regs->BC.W = regs->DE.W = regs->HL.W = + regs->AFs.W = regs->BCs.W = regs->DEs.W = regs->HLs.W = + regs->IX.W = regs->IY.W = 0x0000; + + /* Make the stack point to $F000 */ + regs->SP.W = 0xF000; + + /* reset variables to their default values */ + regs->I = 0x00; + regs->IFF1 = regs->IFF2 = regs->IM = regs->halted = 0x00; + regs->ICount = regs->IPeriod = int_cycles; + + regs->IRequest = INT_NOINT; + regs->we_are_on_ddfd = regs->dobreak = regs->BorderColor = 0; + +//#ifdef _DEBUG_ + regs->DecodingErrors = 1; +//#endif + +} + + +/*==================================================================== + word Z80Run( Z80Regs *regs, int numopcodes ) + + This function does the whole Z80 simulation. It consists on a + for(;;) loop (as stated on Marat's Fayzullin HOWTO -How to + Write a Computer Emulator-) which fetchs the next opcode, + interprets it (using a switch statement) and then it's + executed in the right CASE: of that switch. I've put the different + case statements into C files included here with #include to + make this more readable (and programming easier! :). + + This function will change regs->ICount register and will execute + an interrupt when it reaches 0 (or <0). You can then do anything + related to your machine emulation here, using the Z80Hardware() + function. This function must be filled by yourself: put there + the code related to the emulated machine hardware, such as + screen redrawing, sound playing and so on. This functions can + return an special value to make Z80Run stop the emulation (and + return to the caller): that's INT_QUIT. If there is time to + execute an interrupt, please return INT_IRQ or INT_NMI. Return + INT_NOINT if there is no time for an interrupt :) . + + Z80Execute() will change PC and all the z80 registers acording + to the executed opcode, and those values will be returned when + a INT_QUIT is received. + + Pass as numcycles the number of clock cycle you want to execute + z80 opcodes for or < 0 (negative) to execute "infinite" opcodes. + ===================================================================*/ +word Z80Run( Z80Regs *regs, int numcycles ) +{ + /* opcode and temp variables */ + register byte opcode; + eword tmpreg, ops, mread, tmpreg2; + unsigned long tempdword; + register int loop; + unsigned short tempword; + + /* emulate cycles */ + loop = (regs->ICount - numcycles); + + /* this is the emulation main loop */ + while( regs->ICount > loop ) + { + #ifdef DEBUG + /* test if we have reached the trap address */ + if( regs->PC.W == regs->TrapAddress && regs->dobreak != 0 ) + return(regs->PC.W); + #endif + + if( regs->halted == 1 ) + { r_PC--; AddCycles(4); } + + /* read the opcode from memory (pointed by PC) */ + opcode = Z80ReadMem(regs->PC.W); + regs->PC.W++; + + /* increment the R register and decode the instruction */ + AddR(1); + switch(opcode) + { + #include "opcodes.c" + case PREFIX_CB: + AddR(1); + #include "op_cb.c" + break; + case PREFIX_ED: + AddR(1); + #include "op_ed.c" + break; + case PREFIX_DD: + case PREFIX_FD: + AddR(1); + if( opcode == PREFIX_DD ) + { + #define REGISTER regs->IX + regs->we_are_on_ddfd = WE_ARE_ON_DD; + #include "op_dd_fd.c" + #undef REGISTER + } + else + { + #define REGISTER regs->IY + regs->we_are_on_ddfd = WE_ARE_ON_FD; + #include "op_dd_fd.c" + #undef REGISTER + } + regs->we_are_on_ddfd = 0; + break; + } + + /* patch ROM loading routine */ + // address contributed by Ignacio Burgueño :) +// if( r_PC == 0x0569 ) + if( r_PC >= 0x0556 && r_PC <= 0x056c ) + Z80Patch( regs ); + + /* check if it's time to do other hardware emulation */ + if( regs->ICount <= 0 ) + { + tmpreg.W = Z80Hardware(regs); + regs->ICount += regs->IPeriod; + loop = regs->ICount + loop; + + /* check if we must exit the emulation or there is an INT */ + if( tmpreg.W == INT_QUIT ) + return( regs->PC.W ); + if( tmpreg.W != INT_NOINT ) + Z80Interrupt( regs, tmpreg.W ); + } + } + + return(regs->PC.W); +} + + + +/*==================================================================== + void Z80Interrupt( Z80Regs *regs, word ivec ) + ===================================================================*/ +void Z80Interrupt( Z80Regs *regs, word ivec ) +{ + word intaddress; + + /* unhalt the computer */ + if( regs->halted == 1 ) + regs->halted = 0; + + if( regs->IFF1 ) + { + PUSH(PC); + regs->IFF1 = 0; + switch(regs->IM) + { + case 0: r_PC = 0x0038; AddCycles(12); break; + case 1: r_PC = 0x0038; AddCycles(13); break; + case 2: intaddress = (((regs->I & 0xFF)<<8) | 0xFF); + regs->PC.B.l = Z80ReadMem(intaddress); + regs->PC.B.h = Z80ReadMem(intaddress+1); + AddCycles(19); + break; + } + + } + +} + + +/*==================================================================== + word Z80Hardware(register Z80Regs *regs) + + Do here your emulated machine hardware emulation. Read Z80Execute() + to know about how to quit emulation and generate interrupts. + ===================================================================*/ +word Z80Hardware( register Z80Regs *regs ) +{ + if( + debug != 1 // && scanl >= 224 + ) + { + ; + } + return( INT_IRQ ); +} + + +/*==================================================================== + void Z80Patch( register Z80Regs *regs ) + + Write here your patches to some z80 opcodes that are quite related + to the emulated machines (i.e. maybe accessing to the I/O ports + and so on), such as ED_FE opcode: + + case ED_FE: Z80Patch(regs); + break; + + This allows "BIOS" patching (cassette loading, keyboard ...). + ===================================================================*/ +void Z80Patch( register Z80Regs *regs ) +{ + +///!!! if( tapfile != NULL ) +///!!! { +///!!! LoadTAP( regs, tapfile ); +///!!! POP(PC); +///!!! } + + /* + if( strlen(tapfile) != 0 ) + { + if( LoadTapFile( regs, tapfile ) ) + { POP(PC); } + } + else + { + FileMenu( tfont, 3, tapfile ); + if( strlen(tapfile) != 0 ) + if( LoadTapFile( regs, tapfile ) ) + { POP(PC); } + } + */ +} + + +/*==================================================================== + byte Z80Debug( register Z80Regs *regs ) + + This function is written for debugging purposes (it's supposed to + be a debugger by itself!). It will debug a single opcode, given + by the current PC address. + + Return DEBUG_OK to state success and DEBUG_QUIT to quit emulation. + ===================================================================*/ +byte Z80Debug( register Z80Regs *regs ) +{ + return( DEBUG_QUIT ); +} + + + +/*==================================================================== + byte Z80MemRead( register word address ) + + This function reads from the given memory address. It is not inlined, + and it's written for debugging purposes. + ===================================================================*/ +byte Z80MemRead( register word address, Z80Regs *regs ) +{ + return(Z80ReadMem(address)); +} + + +/*==================================================================== + void Z80MemWrite( register word address, register byte value ) + + This function writes on memory the given value. It is not inlined, + ands it's written for debugging purposes. + ===================================================================*/ +void Z80MemWrite( register word address, register byte value, Z80Regs *regs ) +{ + Z80WriteMem( address, value, regs ); +} + + +/*==================================================================== + byte Z80InPort( register word port ) + + This function reads from the given I/O port. It is not inlined, + and it's written for debugging purposes. + ===================================================================*/ +byte Z80InPort( register word port ) +{ + int porth; + int code = 0xFF; + + porth = port >> 8; + + if (!(porth & 0x01)) code &= fila[4][1]; + if (!(porth & 0x02)) code &= fila[3][1]; + if (!(porth & 0x04)) code &= fila[2][1]; + if (!(porth & 0x08)) code &= fila[1][1]; + if (!(porth & 0x10)) code &= fila[1][2]; + if (!(porth & 0x20)) code &= fila[2][2]; + if (!(porth & 0x40)) code &= fila[3][2]; + if (!(porth & 0x80)) code &= fila[4][2]; + + /* + issue 2 emulation, thx to Raul Gomez!!!!! + I should implement this also: + if( !ear_on && mic_on ) + code &= 0xbf; + where earon = bit 4 of the last OUT to the 0xFE port + and micon = bit 3 of the last OUT to the 0xFE port + */ + code &= 0xbf; + + if( (port & 0xFF) == 0xFF ) + { + if( (rand() % 10) > 7 ) return(0xff); + else return( rand()%0xFF ); + } + + return( code ); +} + + +/*==================================================================== + void Z80OutPort( register word port, register byte value ) + + This function outs a value to a given I/O port. It is not inlined, + and it's written for debugging purposes. + ===================================================================*/ +void Z80OutPort( register Z80Regs *regs, + register word port, register byte value ) +{ + /* change border colour */ + if( ! (port & 0x01) ) + regs->BorderColor = (value & 0x07); +} + + + +/*==================================================================== + static void Z80FlagTables ( void ); + + Creates a look-up table for future flag setting... + Taken from fuse's sources. Thanks to Philip Kendall. + ===================================================================*/ +void Z80FlagTables(void) +{ + int i,j,k; + byte parity; + + for(i=0;i<0x100;i++) { + sz53_table[i]= i & ( FLAG_3 | FLAG_5 | FLAG_S ); + j=i; parity=0; + for(k=0;k<8;k++) { parity ^= j & 1; j >>=1; } + parity_table[i]= ( parity ? 0 : FLAG_P ); + sz53p_table[i] = sz53_table[i] | parity_table[i]; + } + + sz53_table[0] |= FLAG_Z; + sz53p_table[0] |= FLAG_Z; +} + diff --git a/programs/emulator/e80/trunk/z80/z80.h b/programs/emulator/e80/trunk/z80/z80.h new file mode 100644 index 0000000000..4ee01bef5d --- /dev/null +++ b/programs/emulator/e80/trunk/z80/z80.h @@ -0,0 +1,188 @@ +/*===================================================================== + z80.c -> Header file related to the Z80 emulation code. + + Please read documentation files to know how this works :) + + Thanks to Marat Fayzullin for writing the "How to write a Computer + Eemulator" HOWTO. This emulator is based on his tutorials and the + code organization (very readable!) of his "Z80 Portable Emulator". + I've learnt a lot from it, and I've taken some ideas of his code + to write this emulator.I think that almost all of the undocumented + Z80 opcodes are covered on this emulator. I also asked Marat + Fayzullin (by email) about ideas and so on (his Z80 emulator is + quite good, so go check it :-). + + Of course, I can't forget Raúl Gomez (he answered me thousands + of email questions) and Philip Kendall. Whitout his ___kind___ + people surely you won't be reading this file now... + + "Programming the Z80" (from Rodnay Zaks) and the comp.sys.sinclair + FAQ were another excelent sources of info! + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Copyright (c) 2000 Santiago Romero Iglesias. + Email: sromero@escomposlinux.org + ======================================================================*/ + + +#ifndef Z80_H +#define Z80_H + +#define USING_ALLEGRO + +#define DEBUG +#define _DEV_DEBUG_ /* development debugging */ +#define LOW_ENDIAN +/*#define HI_ENDIAN */ + +/* Used by the Z80Debug() function */ +#define DEBUG_OK 1 +#define DEBUG_QUIT 0 + + +#define video vscreen + + +/*=== Some common standard data types: ==============================*/ +typedef unsigned char byte; +typedef unsigned short word; +typedef unsigned long dword; +typedef signed char offset; + + +/*--- Thanks to Philip Kendall for it's help using the flags --------*/ +extern byte halfcarry_add_table[]; +extern byte halfcarry_sub_table[]; +extern byte overflow_add_table[]; +extern byte overflow_sub_table[]; +extern byte sz53_table[]; +extern byte sz53p_table[]; +extern byte parity_table[]; + +extern byte ioblock_inc1_table[]; +extern byte ioblock_dec1_table[]; +extern byte ioblock_2_table[]; + + +/*===================================================================== + Z80 Flag Register: --------------------------------- + | 7 6 5 4 3 2 1 0 | + --------------------------------- + | S Z x H x O/P N C | + --------------------------------- + If (1) means that: S = Negative result. + Z = Zero result. + x = special cases (by opcode) + H = Halfcarry/borrow. + O/P = Overflow/Parity Flag. + N = Substraction. + C = Carry/borrow. + ====================================================================*/ +#define S_FLAG 0x80 +#define Z_FLAG 0x40 +#define H_FLAG 0x10 +#define P_FLAG 0x04 +#define O_FLAG 0x04 +#define N_FLAG 0x02 +#define C_FLAG 0x01 + + +/* + Defines for interrupts and special Z80Hardware() codes: +======================================================================= + INT_QUIT = Exit the emulation (for Z80Run()) + INT_NOINT = No interrupt required + INT_IRQ = Standard RST 38h interrupt + INT_NMI = Non-maskerable interrupt +*/ +#define INT_QUIT 0xFFFE +#define INT_NOINT 0xFFFF +#define INT_IRQ 0x0038 +#define INT_NMI 0x0066 + + + +/*=== A register is defined as follows: =============================*/ +typedef union +{ +#ifdef LOW_ENDIAN + struct + { + byte l,h; + } B; +#else + struct + { + byte h,l; + } B; +#endif + word W; +} eword; + + +#define WE_ARE_ON_DD 1 +#define WE_ARE_ON_FD 2 + +/*=== Now we define the Z80 registers using the previous definition =*/ +typedef struct +{ + char machine_type; + byte *RAM; + int we_are_on_ddfd; + + /* general and shadow z80 registers */ + eword AF, BC, DE, HL, IX, IY, PC, SP, R, + AFs, BCs, DEs, HLs; + + /* IFF and I registers, used on interrupts. */ + byte IFF1, IFF2, I, halted; + char IM; + word IRequest; + + /* the following is to take care of cycle counting */ + int IPeriod, ICount, IBackup; + + /* DecodingErrors = set this to 1 for debugging purposes in order + to trap undocumented or non implemented opcodes. + Trace = set this to 1 to start tracing. It's also set + when PC reaches TrapAddress value. */ + byte DecodingErrors; + word TrapAddress; + byte Trace, dobreak; + byte BorderColor; + +} Z80Regs; + + +/*==================================================================== + Function declarations, read the .c file to know what they do. + ===================================================================*/ +void Z80Reset( register Z80Regs *regs, int ); +void Z80Interrupt( register Z80Regs *, register word ); +word Z80Run( register Z80Regs *, int ); +byte Z80MemRead( register word, Z80Regs * ); +void Z80MemWrite( register word, register byte, Z80Regs * ); +byte Z80InPort( register word ); +void Z80OutPort( register Z80Regs *regs, register word, register byte ); +void Z80Patch( register Z80Regs * ); +byte Z80Debug( register Z80Regs * ); +word Z80Hardware( register Z80Regs * ); + +void Z80FlagTables(void); +word ParseOpcode( char *, char *, char *, word, Z80Regs * ); +word Z80Dissasembler ( Z80Regs *, char *, char * ); + +#endif diff --git a/programs/emulator/fceu/ChangeLog.txt b/programs/emulator/fceu/ChangeLog.txt new file mode 100644 index 0000000000..37febc734d --- /dev/null +++ b/programs/emulator/fceu/ChangeLog.txt @@ -0,0 +1,2183 @@ +0.98.12: + + Win32: Fixed the behavior of the sound logging function. + + Fixed a bug that was causing 2xscale/3xscale to be broken + when clipping the leftmost and rightmost 8 columns. + + Added an iNES header correction entry for JustBreed. + + Modified the MMC5 "ELROM" board emulation to not emulate WRAM. + + Corrected various pieces of code that were causing compiler warnings. + + Win32: Scaling settings(x, y, stretch to fill screen) are now respected while + using a special scaler in full screen mode, though if x or y scale is + less than what is needed for a particular scaler, it will be + adjusted. + + Win32: The window will be reblitted when it becomes invalidated while + a game is loaded(such as when you're resizing the window). + + When the PPU is in a "dead" state after starting up, the graphics + buffer is now cleared. Previously, particularly in the Windows port, when + a game was closed, and a new game was loaded, the last image from + the previous game would be displayed for a short time. + + Win32: Blit skipping will now occur when sound is disabled and FCE Ultra is + running behind the desired frame rate. + + Win32: Blit-skipping behavior can now be configured to some extent in the "Timing" configuration + window. + + Win32: Added a "Recent Directories" submenu to the "File" menu. + + Removed some debugging code that shouldn't have been enabled in 0.98.11. + +0.98.11: + + Win32: Special scalers are now also supported in windowed mode. For Scale2x/Scale3x, + the fastest "desktop" bit depth is 16bpp. For hq2x/hq3x, it is 32bpp. + + The shared video blitting code(drivers/common/vidblit.c) can now blit using Scale2x + and Scale3x to any target bit depth(8bpp, 16bpp, 24bpp, and 32bpp) instead of just + 8bpp, as it was before. + HQ2x and HQ3x can now blit to 16bpp, 24bpp(untested), and 32bpp. The 16bpp and + 24bpp targets are done doing post-processing conversion, after HQ2x/HQ3x, which + really does hurt speed. + + Changed a few names in the credits section of the documentation to their + aliases. Names you didn't get to pick to have are so troublesome. :b + I also made various fixes/updates to the documentation. + + Updated the FAQ with some information regard video mode bit depths and speed. + + SDL: Disabled the fast-forward-key speed-limiting code. I thought I had + done this before... + + Fixed a major bug in the movie recording code, and added some code to automatically detect + and fix playback of broken movies from earlier versions. + + Did a little swapping thing with mapper 90 and 209. I moved back Mortal Kombat 3 + to mapper 90, and moved Shin Samurai Spirits 2 to mapper 209. Sorry for any confusion. + Mapper 90 should be considered as having the fancy nametable select mode disabled, with + mapper 209 having it enabled. + + Added support for mapper 160, which turns out to be the same hardware as mapper + 90. Joy. + + Improved mapper 90 emulation. This mapper really needs low-level + emulation for IRQs to work right, though. :/ + + Win32: Fixed the "hide left/right 8 video columns" feature. + + Since FCE Ultra is ending(or has already exceeded? :b) its actively-updated life, + I've gone ahead and added per-game hacks for "Kick Master" and the PAL version + of "Star Wars". See the documentation for more details. + + Minor optimizations to the high-quality sound emulation code. The FIR filter + code is the bottleneck, though, so these changes won't have much of an effect + on overall speed. + + Altered MMC3 IRQ emulation(and the hooks in ppu.c for it). + + Fixed a rather major typo in the VRC7-emulation code. + +0.98.10: + + Reimplemented network play. It now requires a standalone network play server, which + will be released as a later time. For fun, "starmen.net" is running this server, + which is publicly accessible. + I also made various code fixes/improvements to allow for network play, particularly + with the command handling code. + + Reworked much of the VS Unisystem emulation code, partially based on information from + MAME. The following games are now supported: + + Battle City + Castlevania + Clu Clu Land + Dr. Mario + Duck Hunt + Excitebike + Excitebike (Japanese) + Freedom Force + Goonies, The + Gradius + Gumshoe + Hogan's Alley + Ice Climber + Ladies Golf + Mach Rider + Mach Rider (Japanese) + Mighty Bomb Jack (Japanese) + Ninja Jajamaru Kun (Japanese) + Pinball + Pinball (Japanese) + Platoon + RBI Baseball + Slalom + Soccer + Star Luster + Stroke and Match Golf + Stroke and Match Golf - Ladies + Stroke and Match Golf (Japanese) + Super Mario Bros. + Super Sky Kid + Super Xevious + Tetris + TKO Boxing + Top Gun + + Win32-native: Fixed a bug in the debugger's breakpoint list that appeared when + one tried to delete a breakpoint(the control accidentally had auto-sort enabled, + causing a discrepancy between what was displayed and what was contained in internal + data structures). + + The current disk image XOR original disk image is now stored in save states. This + should greatly increase compressability(important for network play), and make + it a little more legal to distribute such save states now. + + Modified the save state format to allow for more precise and larger version numbers. + + Various minor code changes. + + Fixed initialization of the FCEUGameInfo structure, which previously led + to problems with sound output on the SexyAL-using ports(Linux). + + Apparently I added support for mapper 255 a while back. Documentation updated. + + Added iNES header correction information for Armored Scrum Object and Alpha Mission. + + Merged banksw.h into ines.c, fixed some of its prototypes in ines.h. + +0.98.9: + + Win32-native: Fixed the speed throttling used when sound is disabled. In previous + 0.98.x Win32-native releases, emulation was running at 1/2 the speed it should + have been when sound was disabled. + + Win32-native: Moved settings in the "Miscellaneous" configuration window + to where they should have been in the first place, and added "GUI" and "Timing" + configuration windows to accommodate some. + + Win32-native: Fixed the handling of the "Scroll Lock" key used to disable and + enable Family BASIC Keyboard input. + + Updated documentation to handle some slight differences in the Win32-native + port("Win32-native" is what the Win32 port using native APIs, as opposed to something + like GTK+ and SDL, will be referred to in documentation now). I also made + some other minor wording adjustments to the documentation. + + Added an iNES header correction for Dragonball. + +0.98.8: + + Fixed a typo in sound.c that caused only part of the sound registers + to be saved in save states. + + Win32: Switched over to the DirectDraw7 interface, from DirectDraw4's. + The surface Flip() method will now block, which results in somewhat + smoother animation/scrolling, especially when combined with the + auto blit-skip implemented in 0.98.6 when sound is enabled. + + Win32: Undid a change made in the last release that limited the + speed of fast-forwarding when using the tilde key. I really do + need to implement some sort of unified timing/blit skip system... + + Win32: Added an option, disabled by default, to ask for confirmation + before exiting FCE Ultra. + + Win32: Added an option, enabled by default, to disable the system + screen saver while a game is loaded. + + Win32: Added a new video synchronization mode, a "lazy" wait for + vblank/vertical retrace. It calls Sleep(0) in its wait loop. This + still uses all available cpu cycles, but it is much more friendly + to other processes than the old-style wait for vblank. + + Win32: Added support for joystick POV hats. + +0.98.7: + + Fixed a bug in the debugger's disassembler when disassembling + opcode 0xBC. + + Fixed the behavior of the right mouse button with zapper emulation, to + correspond with what it is documented as doing. + + Win32: Added proper support for maximizing the window. + + Win32: Rewrote most of the input and input configuration code. + + Win32: Changed the configurable aspect ratio to something sensical, the current + display's pixel aspect ratio, default of 1:1(square pixels). + + Win32: Made the default full-screen video mode the custom video mode. I should have + done this a long time ago to make custom video mode configuration more straighforward + for users... + + Added some JACK audio code to be used by the SDL build. I'll test it and complete + it later. + +0.98.6: Made several code modifications to work with older versions of gcc. + + Fixed more header file network play #ifdef-age. + + Fixed a typo in cart.h. + + Fixed some funky code in FCEU_memmove(). + + Fixed some source code causing compiler warnings. + + Fixed SexyAL's format conversion code to not rely on deprecated casting semantics. + + Readded the native Win32 code, and made many improvements. The major thing + that needs to be done now with it is to rewrite the input handling code and input + configuration code. + +0.98.5: + Added LL to the 64-bit integer constants in ines.c + + Fixed OpenGL support under Mac OS X. + + Added the ability to hide background and/or sprites with the F4 key. + +0.98.4: + Moved NETWORK #ifdef's to netplay.c to simplify things. + + Fixed gzip file loading code(I think). I'm still a bit unsure about the semantics + of dup() and close(), though. + + Corrected FDS code to try loading the FDS image before loading the BIOS. + + Readded "native" SDL sound code, used for Mac OS X(and maybe BeOS). + +0.98.3: + Removed the wxWindows GUI code. GTK+ 2 code will take its place, + once it is ready. + + Added reset and power commands to the movie format. More commands(such as insert + disk, eject disk, flip dip switch, etc.) will be added simultaneously as work + on network play continues. + + Modified SexyAL OSS code to not adjust the number of fragments to a power of 2. + It works fine on my card, allowing finer-grained buffer size control, + but I'm not sure it will work with all chips. + + Fixed parsing of the "-specialfs" command-line argument. + + Added the hq3x scaler. + + Updated to the latest Scale2x code. I also added the Scale3x scaler. + + Changed the keyboard assignments for toggling full screen to "Alt" + "Enter". + + FCEUI_SaveState() and FCEUI_LoadState() changed. Porters should read + driver.h. + + Miscellaneous changes to accommodate new network play plan. It's not close + to being finished. + + Altered RTI emulation. In Paris Dakar Rally's NMI handler, it does "CLI ; RTI". + Previously, FCE Ultra would generate an interrupt right after RTI occured, due to the + presumed latency that RTI had with the I flag. I changed it so there is no latency, so + no interrupt will occur in this case(interrupts kill this game). The interrupt source + is the "frame IRQ", which it never disables, if anyone cares. + This change does break the "Stars SE" demo, though. Hmm. + + "FCEUGameInfo" is now a pointer, rather than just a statically-allocated structure. + This may cause some null-dereferencing-related crashes, but it should help keep + code a little cleaner(maybe?). + + Played around with the FDS FM code some more. It's still not right. Bah. + + Hacked in support for entering Datach/Barcode World barcodes without a GUI, using the + F8 key and the numeric keys. + + Added code to save/load movies. Movie support will only record/play back the + states of the four emulated gamepads. + + Modified the sound code to use timestamp/timestampbase differently. In addition, + timestampbase is now saved in save states("timestamp" doesn't need to be saved, since + it's reset to 0 at the end of each emulated frame). + +0.98.2: + Fixed a few problems with the SDL command-line build code + for Win32. Also, SDL 1.2.7 seems to have a bug that breaks FCE Ultra's + full-screen/windowed switching capabilities(at least under Win32). + Stupid everything. + + Minor SexyAL changes. + + Updated documentation. + +0.98.1: + + Increased the volume of the FME07 sound channels. + + Fixed a bug in the SexyAL endian conversion code. + + Made the SexyAL chunk conversion loop work. + + Replaced the old OPL2 emulator with a modified version of + Mitsutaka Okazaki's YM2413 emulator for the VRC7 sound emulation. + + Decreased the pitch of the FME 07 expansion sound channels by one octave. + + Decreased volume of output of $5011 in MMC5 emulation code. + + +0.98.0: Some changes I made aren't listed below. Ah well. The magnitude + of the changes was too great... + + + Default sound volume is 100(%), which makes a lot more sense than 75%, but not much. + It's multiplied by 3/4 internally now. + + Added support for the Datach barcode reader(GUI interface only). The emulation code + was adapted from the VirtuaNES source code. + + Reassigned the Datach games to mapper 157, from 16, with CRC32 checks. + + Increased the maximum number of screen snapshots in the snapshots directory + to 99999(from 999). + + Reassigned the following games to mapper 210, using CRC32 checks: + Chibi Maruko Chan + Dream Master + Family Circuit '91 + Famista '92 + Famista '93 + Famista '94 + Heisei Tensai Bakabon + Top Striker + Wagyan Land 2 + Wagyan Land 3 + If you use a hack/translation of one or more of these games, you will of course + need to manually change the mapper number in the header for it to work properly in + FCE Ultra. Family Circuit '91 still may not fit in with the rest of these games, + but it's definitely not a "stock" mapper 19 setup. + + Fixed an OpenGL palette bug when using scanlines(previously, I think it was + setting the palette of the scanlines overlay texture instead of the actual image + texture in some instances). The bug showed up on games that make use of the color + deemphasis bits. + + Rewrote a lot of the PPU background rendering code to be more accurate(and + obfuscated!). This eliminates the X-offset hack I made earlier. + + Removed some of the NSF visualization code, and altered the look of the NSF + display slightly. The NSF waveform visualization code will now take into + account the current volume setting. + + Changed the default key bindings for the standard emulated gamepad + to something more compatible with window managers. I may change it back, but probably + not, since it is easily configurable now. + + Updated the MMC5, VRC6, and FME07 low-quality sound emulation code + with the compatible parts of the high-quality sound emulation code for those chips. + + Adjusted timing of horizontal scroll update(near the beginning of hblank. I made + it occur sooner). I also added a hack to allow X-offset(fine X scroll) changes mid + scanline, however, it is extremely ugly, and may not work correctly for everything + (doing it correctly would probably kill speed). + I mainly did it to fix games like F-1 Race and Mach Rider, and other racing + games that are extremely sensitive to horizontal scrolling timing. + + Some FDS IRQ emulation changes to fix some screen corruption problems + in "Kaettekita Mario Bros". + + Removed zlib(the code, not support). + I also removed support for compiling without zlib(it's small, simple, provides + very useful functions, and may provide critical features for fceu in the future). + + *undone, breaks debugger, FIXME.* Replaced some inline functions with macros in x6502.c. + + Increased the speed of Namco 106 sound emulation in HQ sound mode. + + Many many sound emulation changes and adjustments based on blargg's tests. + The default sound volume is about 150% what it was before, because the sound range + has changed(now -soundvol 100 is like -soundvol 200 on older builds), and the + default "soundvol" setting is 75. 100 clips on some Namco games, and 200 clips + on many games, so I'll probably have the configurable volume range as [0:125]. + What exactly is "%" supposed to mean in this case.... 100% of what?! + + When using low-quality sound emulation mode, total emulation speed is about 10% + less than previous builds. The change in speed for high-quality sound emulation + mode is significantly less. + + Added beginnings of SexyAL to source code tree, removed SDL sound support, and + old OSS code. + + Copied over some autoconf/automake stuff from phamicom. It stills needs a bit + of work... + + Fixed DMC IRQ emulation. Fixes many CodeMasters games. Finally. ^_^ + + Restructured a lot of files, changed the interface between driver and + emulator code slightly. + + * Insert stuff here * + +November 28, 2003 - Snapshot + + Removed the DOS, Linux SVGAlib, and Win32 targets. *GASP* + Win32 support will return(eventually), using SDL + wxWindows. + SDL can use svgalib or GGI anyway, so it shouldn't be a huge loss. + DOS support will only return if someone ports SDL to DOS. ^_^ + It would be nice if SDL could accept modelines. Maybe in SDL 2.0... + + Merged fce.c and svga.c into fceu.c, and fce.h and svga.h into fceu.h. + + Reassigned "Mortal Kombat 3 - Special 56 Peoples" to mapper 209. + + Added emulation of the "Oeka Kids" tablet. + + Added emulation of the Family Trainer. + + Added emulation of the "Ultimate Quiz King" buzzers. + + Added emulation of the Mahjong controller. + + Added emulation of HyperShot controllers. + + Fixed loading of NSFs with load addresses below $8000. + + Cleaned and simplified some of the NES APU code. + + Altered mapper 65 emulation. Fixes Kaiketsu Yanchamaru 3. Does it break anything? + + Wrote a small FAQ file. + + Fixed displaying of garbage and other unpleasantness on the first scanline. I need + to clean up that code, though. + + Fixed color deemphasis emulation when all bits are set. For some + reason, I had commented out the code. Bleh. + + NSF player now writes $C0 to $4017 if the FDS is being used(the FDS + BIOS writes $C0 to $4017). $40 for all other NSFs. + + Added support for iNES mapper 58(nnnesterj). + + Added support for iNES mapper 208. + + Reassigned "Fudou Myouou Den" to mapper 207(CRC32 checks). + + Reassigned "Karnov" to mapper 206(CRC32 checks). + + Fixed the mapper 95 code, which was horribly broken. + + Differentiated between mappers 33 and 48. Added CRC checks to assign + some games to mapper 48. "Flintstones 2" and "Don Doko Don 2" are + the games that need to be assigned to 48. Are there others? + + Replaced usage of TriggerIRQ to X6502_IRQBegin/X6502_IRQEnd combos in + various mapper emulation files. 67, 33/48, 40, 73, 42, 65, 6, 182 + Removed function TriggerIRQ() from x6502.c + + Fixed the sound volume of the VRC7 emulation in high-quality sound mode. + Decreased(slightly) the volume of VRC7 emulation in both high-quality sound modes. + + Decreased the volume of the MMC5 expansion sound channels. + + Decreased the volume of the FME-7/mapper 69 expansion sound channels. + + Added FCEU_gmalloc(), which will call exit() if memory allocation fails, + otherwise it is guaranteed to return a memory block. + This will be used in the mapper code mainly. It should only + be used for small memory chunks. The reasoning is that if 64 some like KB of + RAM or less can't be allocated, for example, it'd probably be best to + exit the emulator ASAP. It also helps to simplify code logic, and + help (me) with modularization. + The behavior of this may change in the future. I still need to think about it. + I should probably save the configuration file regularly(or much better, + use the registry) on the Windows port, though. + + Cleaned up the save-state saving/loading code a bit, and added + support for linked save state structures for better modularity and + less code duplication. + + Merged the iNES and UNIF MMC1, MMC3, and MMC5 code more completely. + I may need to sanify CHR RAM and WRAM allocation for pedanticness, + though. Also worked on Tengen RAMBO-1 emulation, and mapper 90 emulation. + ***THIS MAKES SAVE STATES FOR GAMES THAT USE THESE EXPANSION CHIPS INCOMPATIBLE + WITH PREVIOUS VERSIONS*** + I plan on doing the same thing with other mappers/boards in the future, though. + Always on the quest for 1.0... + +November 12, 2003 - 0.97.5 Release + + Windows: Added limited support for arguments that change configuration + to be passed to FCE Ultra. Example: fceu -pal 1 c:\streetgangs.nes + It may be useful in frontends. + + Fixed filename generation for automatic IPS patching when a file + with no extension is loaded. Before this change, FCEU would + look for "game..ips" with a file named "game". + + Converted and updated the cheat guide in(to) HTML. + + Added support for iNES mappers 202,203,231 from info from cah4e3. + Fixed support for mappers 60, 200. + + Fixed various major bugs in the breakpoint deletion code. + + UN*X: Added support for OSS(/dev/dsp) devices that don't support mono + sound. + + Increased PPU startup idle time to 2 frames. Fixes that + unlicensed "Earthworm Jim 3" game. Does it break anything? + +November 9, 2003 - 0.97.4 Release + + Fixed another obscure PPU emulation screen corruption bug. + + Added support for Game Genie cheats in the cheat interface. + + Windows: Reworked the cheat interface, merging the cheat search + and cheat list windows into one. + + Windows: Greatly improved the CPU debugger. + The code still needs a lot of cleaning, though. + + Readjusted VRC6 IRQ emulation timing. + + Added support for the UNIF MMC3 board TEROM. The maximum PRG/CHR sizes + may not be correct in this implementation, though. + +November 8, 2003 - 0.97.3 Release + + Added a control to set the highest quality sound mode in Windows. + This change requires that any users who previously set + "high quality sound" to set it again. + + Fixed the volume of high-quality sound mode again. The changes + I made earlier didn't affect all the filter coefficients. + +November 8, 2003 - 0.97.2 Release + + Made a minor optimization to writes to palette memory. + + Altered VRC6 IRQ emulation timing slightly. + + Fixed a weirdo PPU emulation bug that could cause garbage on the right + side of the screen in certain situations. Thanks to FrenziedPanda for + bugging me enough to make me look into the problem and fix it. + I should be on the lookout to see if the fix breaks anything, though. + + Fixed the volume of high-quality sound mode(-soundq 1). It was + at 1/4 the volume it should have been. I compensated by increasing + the precision of the filter coefficients, which increased the sound + quality of that mode slightly without hurting performance. + +November 7, 2003 - 0.97.1 Release + + Fixed mapper 105 emulation. I had begun merging it into the + rest of the MMC1 code for 0.97, but I hadn't finished it. + + Changed things like RdMem(_PC++); to RdMem(_PC); _PC++; + Darn evil global variables. I need to fix them. Screw speed. + + Expanded checks for the global variable "fceuindbg"(used in debug + mode to prevent reads in the debugger from altering any registers). + +November 6, 2003 - 0.97 Release + * Note: I still had much more I had wanted to get done for 0.97, + but I lost even more interest. The Windows port still doesn't + have a way to enable the "highest" sound emulation mode, nor the + low pass filter code, not to mention that the lowpass filter code + isn't complete(I would need to design a high-order FIR filter from an IIR + filter to work properly-have the correct rolloff, among other + things-at finite playback rates). + + Fixed a bug in the IPS patcher. The recorded size wasn't being updated + after a successful realloc() was made, which could lead to corrupted patch + data from some patches. + + Added support for mappers 200, 201 from submitted code. + + Rewrote mapper 15 support to make more sense(well, depending + on your point of view...). + + Fixed 256KB CHR select support for mapper 115. + + Added support for mapper 12 from code from cah4e3. + +October 16, 2003 - Snapshot + + Fixed support for mapper 245(for nonencrypted/non-smynes-screwed up + ROM images only. Fixes "Yong Zhe Dou E Long [...] Dragon Quest 7". + + Added support for mappers 60, 62, 230, 244 from submitted code. + + Modified mapper 90 emulation to allow game-select on reset + for "Final Fight 3". + + Modified mapper 45 emulation to allow "Super 8-in-1" to work. + + Added a low-pass filter, and an option to enable it(CLI ports). + + 0x00 is now written to $4011 in the NSF player code instead of 0x40. + Fixed some other similar sound register init problems that I had fixed + in Festalon but forgot to fix in FCEU. Grrr. + + Removed some unnecessary 64-bit integer usage from FIR sound filtering + code. + + Added a new sound quality mode. Higher than high, it's highest(in + FCE Ultra, for now). Still need to fix the interface to allow + enabling it in the Windows port. + + Added some code for lower-level MMC3 IRQ emulation. It isn't completed + , and will not work properly as-is. I'm still playing around with + it occasionally. + + Fixed the sprite overflow flag(I think I fixed it), that was broken in an earlier + pre-0.97 release. + + Fixed support for iNES mapper 193. + + Command line arguments "-pal" and "-gg" now take extra arguments(1/0) + and are remembered in the configuration file. + +September 27, 2003 - Snapshot + + Added support for iNES mapper 50. + + Modified the UNIF board initialization code. Hopefully, this + new interface will eventually be used with the iNES code. + + Miscellaneous code cleanups. + + /dev/dsp is now set to 8(previously 9) buffers of 128 samples in length + in the SDL code. + + Tried to make the save state code more expandable and modular. + + Moved a lot of the PPU code into ppu.c. + + Added more extensive debugging code to the 6502 emulator, to allow + for memory read/write hooks(including zero page addressing modes). + + Readadjusted DMC timings when PAL emulation is enabled. It looks + like it was correct before I had made the August 2 change. Thanks + to Bananmos for the information. I think. :/ + + Added support for iNES mapper 193 from information from virtuanes. + I think my dump of it is "bad", though. PRG and CHR pages look + like they are in the wrong order(logical vs physical? Who's to say + what's physical?). + +September 1, 2003 - Snapshot + + Fixed some minor initialization issues with iNES mappers 7 and 34. + + Added support for UNIF board NES-GNROM. + + Removed support for save states created with versions of FCE Ultra + less than 0.56. + + Replaced SDL sound buffering code with a lock-free FIFO implementation + written by David Olofson, with a few modifications by myself. + + Fixed a VRC7 NSF bug(it showed up under the reworked driver/file + loading order in the cli code). + + The board in "Rolling Thunder" has "RAMBO 1" on it, not "RAMBO-1". + +August 9, 2003 - Snapshot + + Removed the old plain text documentation and replaced it with + a new document in HTML. It is not completed yet, though. + + Rewrote the SDL-native audio code to be less wacky and more + thread-safe(hopefully). I'm still waiting for a new SDL audio + API... + + Altered the MMC5 IRQ timing. Fixes minor graphical glitches + in Castlevania 3. Does it break anything? + + Removed some debugging code that got into the last snapshot. + +August 5, 2003 - Snapshot + + Added some code in the IPS patcher to allow for expanding the size of files. + + Fixed a double free() bug with a mapper 51 game(in ines.c). + + Added support for "Alien Syndrome" (US release) as iNES mapper 158. + It looks like a derivative of the normal RAMBO-1 board(or is that + the name of the chip?), similar to TKSROM/TLSROM(mapper 118). + + Improved the "native" SDL sound code. It will now call SDL_Delay(), + among other nice things. The code could probably be improved more, + though. + + Added support for decimal components in xscale/yscale in the SDL + port. Set the default xscale for windowed mode to 2.40(to get a + more correct aspect ratio, assuming the display is currently at + a 4:3 aspect ratio). + + Modified args.c to handle floating-point numbers. + +August 2, 2003 - Snapshot. + + Disabled texture wrapping with OpenGL(there were problems at the edges + of the screen with linear interpolation). Bah. Now the edges + are too bright... + + Improved the accuracy of the DMC timing when PAL emulation is enabled. + I still don't think it's totally correct, though. + + Changed the default settings for the SDL code. Full screen + is now 640x480x8bpp by default, xscale and yscale are 2 for both full + screen and windowed, opengl support is enabled, linear interpolation + for OpenGL is enabled, and X-axis stretching is + enabled(in full screen). + + "Scanlines" were enabled in 8bpp to 8bpp blits in + drivers/common/vidblit.c when they shouldn't have been. Fixed. + + Fixed OpenGL code under big-endian platforms. + +August 1, 2003 - Snapshot. + + Various code clean-ups. + + Played around with adding a GTK+ GUI to the SDL code. + + Rewrote part of the hq sound rectangle wave code. + + Replaced the high-quality sound inline assembly filter code with + slightly faster C code. + + Hacked around with GP32 support. I don't know if the GP32 would + be fast enough, though. + + Skipped frames will now have D5 of $2002 set at the beginning + of the frame. Fixes "Bee 52". I must see if it breaks anything. + + Added OpenGL support to the SDL code. + + Removed the PPU drawing inline assembly code, replacing it with a faster + algorithm written in C. + + "Disabling" the 8-sprite limitation will no longer cause + "Bee 52" to break. However, the "Solstice" wizard will still + have the weird thing growing out of his face in the introduction, + since it depends on no more sprites to be rendered. + + Added entry for that Black Bass game for header corrections in + ines.c + + Strip color burst bit(D0 of $2001) is only "emulated" if bg or + sprite rendering are turned on, at the end of the scanline. + Doing it with pixel/tile granularity would require modifying + the sprite graphics data copying routine, which I don't + feel like doing. Fixes that crazy Sayoonara demo by Chris Covell. + I also modified the NES RAM initialization code. + + Adjusted VRC7 IRQ emulation for better Lagrange Point goodness. + + Added support for iNES mapper 91. (VirtuaNES) + +0.96: + Improved RAMBO-1(mapper 64) emulation. "Skull and Crossbones" is + now playable. + +0.95: + + timestamp and timestampbase are no longer saved/loaded to/from + save states. They were causing too many problems I didn't + want to fix, and I never intended them to be saved in save states + when I wrote the code that uses them. + I think the reason they were being saved was that I wanted to make it + possible to add movie support and network play save state loading + (distributing the save state over the network). So if someone in + the future wants to add these features, the issues(primarily with + zapper emulation and sound emulation) with saving the time stamp will + need to be resolved. + + Fixed some crashing bugs when save states are loaded when + high-quality sound emulation is enabled. It is like patching + holes in a swiss-cheese boat. All the holes may be patched, but + it looks ugly. At least it tastes good... + TODO: Look into saving more data in the save states, especially + data that is based off of "timestamp" and "timestampbase". Also + look into validating this data. Right now, corrupt save state data + might cause memory corruption in FCE Ultra. + + Fixed some bugs in the NSF player. + + Cleaned up more code. + + Reduced the usage of TriggerIRQ(). + + Split the palette code into a new file, palette.c, from svga.c + + Low-G-Man(NTSC and PAL versions) are now recognized by CRC32 value, + and WRAM will be disabled if they are loaded. A warning/status message + will also be printed regarding this issue. + + Decreased the volume of the DMC/PCM channel in low-quality sound + emulation. + + Low-quality sound emulation now uses 32-bit integers for much + better speed. + + FCEUI_CRC32() wasn't returning anything. D'oh. Fixed. + + Added somewhat crude support for games that switch background CHR data + mid-scanline (this is needed in games such as Mother, Pirates!, + Business Wars, and Marble Madness). + + Altered NMI, IRQ, and BRK emulation again. Fixes some games, + like Bases Loaded 2 and Dynamite Bowling, and maybe some others. + I had to increase the size of the IRQlow variable for delayed + NMI execution... I also had to add a delay between PPU reset + and the PPU actually doing anything, to fix "Knight Rider". + + Fixed a mapper 90 save state bug. + + /dev/dsp code now searches for /dev/dsp before /dev/dspX (where X is + a non-negative integer). + + SDL joystick axes configuration is now done from the joystick. + + Tweaked various Konami mappers' IRQ counter emulation. + + Added custom SDL throttle code that gives up time slices instead of + using 100% cpu. + + Fixed an issue with sprite priorities on MSB-first platforms. + + Modified powerpad.c to avoid a symbol conflict when compiling on the + Power PC architecture. + +0.94r3: + sound.c: + Fixed a divide-by-zero bug that occurred when a virtual + reset(like by pressing F10) occurred when sound emulation was + disabled. + +0.94r2: + drivers/common/vidblit.c: + Fixed code for 32bpp blur effect. + + drivers/cli/sdl-video.c: + Added error message for unsupported bit depths. + + mappers/simple.c, ines.c: + Used this bug fix pseudo-release as an excuse to add + support for mapper 107. Information taken from virtuanes. + +0.94(fixed release) +--- + Fixed call to InitUNIXDSPSound in svgalib.c + + Added man pages. + +0.94 +--- + Added support for rapid fire A/B buttons on physical joysticks + in SDL/svgalib/DOS code. + + Implemented "high-quality" Namco 106 emulation(used for hq sound mode). + In this case, "high-quality" means sounding more like it should, + not necessarily cleaner. I'm not certain that it's totally correct, + but it's in the right direction. + + RAM cheats should no longer affect Game Genie emulation. I still + need to completely verify this. There may be some sort of race + condition. + + Removed various minor speed hacks in the name of style and + correctness(and to make maintaining FCE Ultra easier for those + people who are not me). :) + + Removed NSF cpu hacks, as I changed code to make them unnecessary. + + Fixed another FDS IRQ emulation bug. "Famicom Grand Prix II" works + now. + + Fixed a memory leak and a heap corruption bug in "file.c". + + Added support for on-the-fly IPS patching. + Place the IPS file in the same directory as the file to load, + and name it filename.ips. + + Examples: Boat.nes - Boat.nes.ips + Boat.zip - Boat.zip.ips + Boat.nes.gz - Boat.nes.gz.ips + Boat - Boat.ips + + Some operating systems and environments will hide file extensions. + Keep this in mind if you are having trouble. + + Patching is supported for all supported formats(iNES, FDS, UNIF, and + NSF), but it will probably only be useful for the iNES format. It + can be used with the FDS format, but be warned that it will permanently + patch your disk image, as the disk image is written back to disk + when the game is unloaded(unless the disk image is in a zip file, in + which case it isn't written back to disk). UNIF files can't be + patched well with the IPS format because they are chunk-based with no + fixed offsets. Support for a UNIF patching format may be added + in the future(probably by someone else.). + + Added more games to the list in ines.c for having battery-backed + WRAM, for header corrections. + + Copied over the 96KHz filter coefficients from Festalon that I forgot + to do in 0.92. Oops. + + +0.93 +--- + + Reduced the volume of the FDS sound channel. + + Fixed a bug in the FDS IRQ emulation code that caused "Lutter" to not work. + + Fixed a bug in unif.c that would cause a crash if a unif file were + loaded without a board name being specified(as could happen + with a corrupted nsf). + + Fixed a bug in general.c relating to relative filenames(running + fce ultra like "./fceu ../big.nes" would work, but "./fceu ../big" + would not work- it crashed). + + + +0.92r2 +--- + Fixed dpcm irq bug that broke Cobra Triangle. + +.92 +--- + + Removed NSF player background, and added some special effects goodies. + + Changed the NSF player to use the emulated gamepad as input instead + of having special NSF-player-only keys. + + Added support for mapper 249(using nonencrypted games), thanks to SARO + for info. SMYNES sucks. + + Updated video blitting library-thing(vidblit.c) with more special + effects, and removed 24bpp support. + + SDL cleanupification. + + Added support for mapper 61. + + nnnesterj: Added support for mapper 57. + + Fixed mapper number for "Golden Game 150 in 1". Changed it to 235 + from 43. + + DDraw back buffer surfaces are now created in system memory if the + hardware blitter can't do stretching. + + Restructured file wrapping code. + + Added new cheat search methods. + + Fixed a major cheat unloading memory bug(and memory leak). + + Emulated that funky nonlinear DAC effect for hi-quality sound. + + More fixes/cleanups to FDS emulation code. + + Tweaked PPU timing a bit. + + Improved network play. + + Holding the enter key down will no longer do fun stuff to the nsf + player. + + Improved NSF player. It should support streaming pcm nsfs now... + + Changed FDS keyboard keys around a bit. F6 is the disk select key, + and F8 is the disk insert/eject key. + F8 to insert VS Unisystem coin, F6 to view/toggle dip switches. + Hopefully people won't complain after blindly hitting the save state + buttons. :) + + Many fixes and improvements to the Windows port. No more cpu-consuming + wait loops(specifically, sound). Added a message window. + + FDS sound emulation improvements. + + FDS disks are now auto-inserted on power on(or was it loading a new + game...). + + Changed the default last rendered scanline to 231. + + ines header corrections are now printed as status messages, not errors. + + Rearranged input updating code. + + Fixed a sprite transfer bug. Fixes PAL version of Rainbow Islands. + + Debugger hooks added. + + Small optimizations in Refreshline and FetchSpriteData to hopefully + offset the slight slowdown in the cpu core. + + MapperHBIRQHook is now called differently(depending on hi/low bg/spr + addresses). + + Added support for unif board UNL-8237. + + Added support for mapper 144(death race). + + Added partial support for mapper 74. + + Fixed a cpu emulation bug in GETIYWR. It would sometimes set "target" + to 0x10000, which was a BAD THING(overflow; now it wraps). + + Tried to add support for mapper 241. Needs special keyboard emulation. + I think. + + Internal RAM is now initialized to something other than 0. Fixes + Minna no Taabou no Nakayoshi Dai Sakusen. + + Reassigned "The Money Game" to mapper 155. It doesn't seem to + respect the WRAM enable/disable bits. Silly game. And + Tatakae!! Rahmen Man. + + Added support for mapper 115(still needs 256KB CHR select), 241, 114,88. + + Attempted to add support for mappers 91, 187. + + Modified frame IRQ to not break so many damn games. + + Fixed sprite hit detection loop. + + Improved support for mappers 80, 90,117,154, 189. + nnnester and virtuanes. + + Reassigned "Devil Man" to mapper 154. + + Removed bogus Trojan header fix in ines.c. + + + +.81-post: +---- + Fixed/Worked around(?) compilation problems on gcc 3.2.x. + +.81: +---- + + More SDL goodies. + + Renamed "Makefile.olinuxsdl" to "Makefile.unixsdl" + + More SDL fixes and cleanups. + + BeOS port is now compiled with the "-no-fpic" flag, which allows + me to use my inline assembly. The executable work fine as far as + I can tell. + + Added "Makefile.beos". gcc doesn't like my inline assembly + used in RefreshLine(),so this port will likely be slightly slower than + other x86 ports. + + Added a check to make sure SIGBUS is not equal to SIGSEGV in + drivers/cli/main.c. Needed for compiling under BeOS. + + Renamed the "PI" member of the X6502 structure due to conflicts with + a defined symbol with some math header files. + + Merged fcelineasm.h into fceline.h + + Fixed(possibly) a possible problem in fcelineasm.h with input register + clobbering. + + More SDL changes. + + Added speed throttling code to the CLI code, and added a command + line switch "-nothrottle". + + Lots of restructuring/rewriting/merging of the MMC3 code. + + Updated DOS code to use the generic CLI wrapper. + + Reads from $4090 and $4092 now return the current envelope setting + in FDS sound emulation. I'm not sure if this is correct... Affects + "Ai Senshi Nicole" and "Bio Miracle Bokutte Upa". + + Added native SDL sound support to the SDL code. the "olinuxsdl" + now uses this code by default instead of the unixdsp sound code. + + Modified MMC3 IRQ counter emulation. I'll need to watch out to see + if it breaks any games. Fixes: MegaMan 3, Gun Nac, Klax(Japanese). + + Changed a few memory reads in x6502.c to use RdRAM instead of RdMem, + resulting in a slight speed increase. + + Cleaned up mapper 250 emulation code. + + Added support for iNES mapper 51(thanks to Kevin Horton for the + information). + + Merged some iNES mappers corresponding to bootleg multicarts + based on MMC3s with mbshare/mmc3.c. + + Added support for iNES mapper 52(thanks to Kevin Horton for the + information). + + Made some hacks to the MMC3 emulation code so that I can add support + for pirate MMC3 multicarts more easily. I should clean it up later. + Moved mapper 44 emulation code to mbshare/mmc3.c. + + Saving screen snapshots will no longer corrupt the frame buffer + for one frame(unless memory couldn't be allocated). + + Fixed screen snapshot saving(it was sort of broken due to the + changes made to the driver<->emulator interface code; status + messages were being saved to the image). FCEUI_SaveSnapshot() + no longer returns a value(the request to save a screen snapshot is + serviced before status information would be written in the next frame). + + nosprites is now set to 0 before RefreshSprite() returns, to prevent + problems if a game turns off the bg and sprites when FetchSpriteData() + for the next scanline is called but then turns on sprites when + the actual scanline is drawn. + + PPU_hook() is now called more often if PPU_hook is non-null. + Made changes to mappers 118, 95, 9, and 10 to compensate. + No games seem to be broken, and I added support for mapper 96 + (though the games aren't very playable because the special controller + isn't emulated). + + Romance of the 3 Kingdoms is now recognized to use 16KB ex-WRAM. + + Added support for mapper 185...sort of. I think this is another + instance of incompatible hardware being lumped onto one mapper number. + Sigh. + + Added support for "Famicom Jump 2" as iNES mapper 153. + If a good(as far as I can tell) dump is loaded, FCE Ultra will + automatically fix the mapper number. + I also made some changes to the mapper 16 IRQ emulation code. + + BRK now sets the I flag. + + Reads from $4015 no longer reset DPCM IRQ. + + Changed emulation of RTI instruction slightly. + + X.IRQlow is now set to 0 in PowerNES(). + + The VS Unisystem bit in the iNES header is no longer looked at( + I was having too many problems with this bit being set when it + shouldn't have been). Now, VS Unisystem emulation is enabled + when a known VS Unisystem game is loaded. I also rewrote the VS + Unisystem detection function. + + iNES mapper 1 now supports pageable CHR RAM if no CHR ROM is present. + Fixes "Family School". + + Mapper 70 no longer has a mirroring control emulated, and I extended + the number of 8KB CHR pages supported to 16. + + Cleaned up iNES MMC5 save RAM loading/saving code and added + support for MMC1 games with 16KB of RAM(the second 8KB are saved), + via CRC32s(currently only Genghis Khan(USA) and Nobunaga's Ambition( + USA and Japan) are recognized). + + Added support for the MMC5 Koei game "Ishin no Arashi", in the iNES + format(I added an entry with its CRC32 value and the number of 8KB + WRAM banks it needs). + + Better iNES mapper 33/48 IRQ counter emulation. + + Added the game "Uchuusen - Cosmo Carrier" to this list. I'm + beginning to hate the iNES format more and more...or maybe + just Fanwen. :) + + Added the mapper 32 game "Major League" to the list of games + that usually need iNES header correction...but in this case, the + iNES header cannot specify that this game needs to have one-screen + mirroring. + + iNES header information is now printed before any header corrections + are made based on a database. + + Fixed a bug in mapper 32 emulation. "Ai Sensei no Oshiete" + works now. + + Tried to add support for iNES mappers 245 and 249. + + Fixed the MMC5 read handler to return the data last on the data + bus instead of 0xFF when a read was made to an unmapped address. + This seems to fix the lockup problems in "Bandit Kings of Ancient + China". + + Reversed "Modified the time at which the "y scroll" register is updated + during hblank." The changes broke Klax. + + Added an unsigned 64-bit base timestamp variable "timestampbase". + Adding this to the 32-bit variable "timestamp" will return + the number of cycles executed since emulation started(in the future + I'll probably change it to since reset or power toggle). + This allowed me to replace "lastn" hack in the MMC1 code with + something better. + + Changed my mind and undid the removal of support for old save states. + + Removed support for old save states and in general I won't + try to support save states made with previous versions. + + MMC1: Writes to $8000-$FFFF with D7 set will now cause + the first MMC1 register to be OR'ed with 0x0C. I'm not sure + if this is correct, but it doesn't seem to break anything + and it fixes Robocop 3. I'll see if anyone reports games + not working in .81 that worked in .80. + + Worked on a generic driver interface wrapper very similar + to the driver interface FCE Ultra used to use(I'm getting + tired of all of the duplicated driver code). Eventually, + the DOS, SVGAlib, and SDL ports will use this wrapper. + + Similar change to the argument parsing code. + + Changed configuration file saving-loading routines and the + configuration structure to allow for linking config structures + to each other). + + Small fix to the emulation of the MMC5 split screen mode. + + Made Linux SDL code compilable again. + + Changes to MMC5 EXRAM emulation(read/write). + + Fixes to the emulation of the MMC5's split screen mode, based on + observations while using CastleVania 3 and a Game Genie(on a real + NES). + + Fixed a bug in ines.c that caused any calls to AddExState() from + a mapper initialization function to be effectively "erased"(ResetExState() + was called after the mapper was initialized). Fixes the VRC7 sound + state saving/loading stuff. + + Finished adding support for the MMC5's split screen mode(this does + not mean that the support is complete, but at least the intro in + "Uchuu Keibitai SDF" works correctly now). + + Worked on adding support for the MMC5's split screen mode. Not + completed. + + Reverted to .80's FDS sound code. + + Modified the time at which the "y scroll" register is updated + during hblank. + + NSF playing code will now disable FDS sound output on song init + (fixes some problems with the Zelda no Densetsu NSF rip). + + Increased the emulated clock speed of the FDS sound emulation code + to give better quality output. + + Modified NMI to occur a few cycles later. Fixes BattleToads...but + it may have broken other games. Also modified the way NMI's are + handled in x6502.c. + + Modified ines.c to memset() GameMemBlock to 0 on virtual power toggle. + Also, trainers are now loaded into their own buffer instead of + directly into emulated WRAM and copied into emulated WRAM on + power toggle; I've been meaning to do this for quite some time. + + Changes to the way the zapper cursor is drawn on the screen. + + FCEUD_WriteSoundData(), FCEUD_BlitScreen(), and FCEUD_UpdateInput() + have been combined into one function: FCEUD_Update(). + + More fixes to the network play code, and a fix to the Windows network + play driver code that fixes(hopefully) a rather evil bug that caused + lockups when the remote stopped network play. + + Added code to set the battery-backed bit in RAM if a game needs it, + based on CRC32. + + Added more games to the list of games that commonly have bad iNES + headers, in ines.c + + Updated docs and usage.h for DOS and Linux regarding the new video + mode and the new refresh rates. + + Linux: Fixed a bug with video mode 6(a few upper scanlines were being + cut off). Increased the refresh rate of video mode 3 to 120hz. + + Increased the refresh rate of video mode 2 to 65 hz in the Linux port. + + Screen snapshots can now be taken while playing an NSF. + + Added a new sexy tweaked vga mode that I created to the Linux svgalib + port. It's 256x224 at a refresh rate of 103hz. Hopefully it won't + blow up anyone's monitor. ;) + DOS port will follow eventually. + + Modified Makefile.base to produce an executable named "fceu" instead + of "fce". + + The plans(cycle-accurate ppu emulation) for .90 were a bit ambitious, + and I still need to make other fixes before then. + + Fixed some minor(usually) bugs with setting 256x240 tweaked VGA mode + in DOS and Linux ports. + +.80: +---- + + Cleaned/fixed a few things in the mapper 19 emulation code. + Family Circuit '91 still doesn't work quite right... I wonder if + it's a bad dump. + + Added input override code to Windows port. + + Added code to fix iNES header information in RAM and suggest + changes to the user. + + Added support for iNES mapper 152(to be used with games set to + mapper 70, that use one-screen mirroring instead of h/v mirroring). + + Blits using the DirectX blitting function(method?) to the primary + surface are now done with the asynchronous flag set(if that + fails, a "normal" blit is tried). + + The DirectX blit buffer(secondary surface that FCE Ultra writes to + directly and then uses the DirectDraw blit function on to blit + to the primary buffer) is now created without specifying it + should be in system memory or video memory, except in the case + when no hardware blitting is available, and then DDraw is explicitly + told to create the surface in system memory. + + Added Family Keyboard support to the DOS port. + + Cleaned up the VRC7 sound emulation code. I need to find a way + to save the current sound state in a save state. + + Found out the real name of the "Space Shadow" gun; it's + called the "Hyper Shot". I'm still not sure who made it, though. + Possibly Bandai did. The interesting thing is that Konami + also made a Famicom accessory(dual square boxy things with two buttons + on each) with the same name(though there might not be a space in the + name). + + Only the upper two bits read from $4016/$4017 are undefined. + Bit5 is always 0, though. Fixed the bug in "input.c". + Silly kevtris' old documents. New kevtris' brain is always good. + + Family Keyboard support for the Windows port. + + Added support for the Family Basic Keyboard to the Linux port, other + ports todo. + Might want to add support for the tape recorder at some time. + Also mapped the "Scroll Lock" key to disable/enable command keys + so that the FBK is more useable. It doesn't disable CTRL C, + though... + + Changed a lot of inlined functions in x6502.c to macros so that + I could test out some optimization ideas. + + DOS code updates for game input override support. + + Small optimzation to opcode $4c, and relative jumps. + + Added some code to ines.c to set controller information in + FCEUGameInfo(returned by FCEUI_LoadGame()) based on crc32 values. + + Updated user documentation and usage.h for DOS and SVGAlib input + command-line changes. + + Added an option to disable the four-score(to Windows and Linux ports + so far). + + Updated Windows interface to support the new Famicom expansion + devices. + + (Re)Added support for the Famicom 4-player device. + + Improved Zapper emulation...sort of. It still needs a lot of work. :/ + + Added *partial* support for the "Space Shadow" gun. + + Added support for the Arkanoid controller(both NES and Famicom style). + + Added code to support the extension Famicom input devices. + + Added PAL scanline start/end drawing settings to Windows port. + + Added pause emulation key(F2) to Windows port. + + In the process of rewriting/fixing up input code stuff. + + Minor bug fix to Power Pad emulation code. + + VS Hogan's Alley and VS Duck Hunt automatically select the zapper + now(though it only works on the SVGAlib port). + + Undid some FDS sound code changes introduced in 0.76 that totally + screwed up sound. Oops. + + Added code to allow different settings for first/last scanline + drawn while in PAL emulation mode, to the Linux and DOS ports. + + Added convenience(it's not necessary, but it reduces redundant and + confusing code in the driver code) function + FCEUI_GetCurrentVidSystem(int *slstart, int *slend). + + Updated file "TODO". + + Changed #include to #include "zlib/unzip.h" + in file.c. + + NSF 6502 player now initialized the stack pointer on reset. + + Worked on de-emphasis emulation code quite a bit. + The deemphasized palette calculated at the end of the frame is now + based on what deemphasis bits were set for the longest during + the screen(sampling interval is a scanline) update loop. + Added a "static" deemphasized palette at $40-$7F in the palette table. + This corresponds to the colors when all of the deemphasis bits are set. + I did this to fix the PAL game "Noah's Ark", without breaking + anything else. The only downside is a slight speed loss(~2% on + my system when sound is disabled), but this is acceptable to me, + at least. + Maybe it's time to write hi/true-color ppu drawing code... + + + Fixed an out of bounds array access in svga.c in SetNESDeemph(). + The variable "lastd" in svga.c was being initialized to the wrong value. + Thanks to "Jarod CANAL" for pointing this out. + + Removed FCEUI_SetFirstRenderedLine or whatever it was called and + the function to set the last line. Replaced with: + void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall); + + Changed SetVidSys(int w) to ResetVidSys() in fce.c. Reenabled + PAL/NTSC emulation overrides based on game loaded(really only useful + for NSFs and UNIFs now). + + UNIF loading code now recognizes the chunk "CTRL" and tries + to use it. Only the svgalib code supports overriding of input + settings based on game loaded, now, though... + The user is still going to have to configure powerpad settings + on his/her own. + + Fixed return values of FCEU_fseek() and fixed a problem in unif.c + related to it. + + Changed mechanism for how FCE Ultra tells the driver + code what type of system is being emulated. A structure of + type "FCEUGI" is returned from FCEUI_LoadGame(). + + Fixed a major mapper 64 emulation bug introduced in 0.76. + + Modified BlitVidHi() in drivers/win/video.c to speed it up. + + Added support for loading the iNES-format Game Genie ROM image. + + Removed ggrom.h and added code to load the Game Genie ROM + image from a file. + + Added Windows netplay.c. (new: the user exiting the emulator + while stuck in a blocking recv() or send() loop now works.) + + Fixed a vram address register bug in fce.c that I created when I got + rid of the pair/dpair data types. + + Added new mappers/92.c + + Removed mappers/92.c until I can contact LULU or rewrite it. + + drivers/win changes. Removed netplay.c until I can rewrite it. + + Got rid of pair/dpair data types. + + Got rid of silly "TempArray" thing. + + Began adding GPL headers to files. FCE Ultra is going to be in + a state of legal limbo for the next few days... + + Replaced crc32.c and crc32.h, and added some #ifdef's and #defines + to use the crc32 code in zlib instead if zlib is linked with + FCE Ultra. + + More fixes to sb.c. + + Cleaned up drawing.h and ggrom.h(even though ggrom.h will *probably* + be removed before the next release). + + Redid frameskip code. + + Rewrote necessary pieces of sb.c and sb.h and fixed quite a few + bugs. I still need to test it on various other sound cards, though. + + Rewrote(more like "recreated in my own image") DOS keyboard driver. + Removed unused "keyscan.h" from drivers/svgalib + + Rewrote part of(the parts that Marat wrote - the connection and + closing parts) the Linux TCP/IP network play code. I guess it works, + but I haven't tested it very much. In any case, it's still dangerous + to use network play in FCE Ultra with SVGAlib, since recv() or send() + might block and since the keyboard is in raw mode, you have a problem. + Maybe a future SVGAlib will fix the general problem of lockups if + keyboard_update() isn't called, though it is only partly SVGAlib's + problem... + + Fixed FCEU_fseek() when used with a compressed file in the PKZIP + format that has been loaded. Fixes a UNIF loading problem. + Also added a check to the return value of FCEU_fseek() in unif.c. + + Replaced Marat's 6502 emulation core with my own. + It should be fully functional, but as always, I don't know if + I implemented the undocumented instructions correctly. + Several things are correct in this new core that were not in + Marat's(D flag is no longer cleared by interrupts, for example). + + Altered mapper 16 irq counter emulation slightly. + + Fixed the behavior of the SXA, SYA, and XAS opcodes based on the + documentation I have. I'm not sure what happens when page crossing + occurs with those instructions on a real NES, though. + Also CHANGED(not fixed) emulation of opcode $8B("XAA"). + + Changed some of the M* functions(absolute indexed and maybe some others) + to perform dummy reads. + + Changed some of the macros in m6502.c to inlined functions so + that I can modify and examine them more easily. + +.77: +---- + + Fixed a silly network play bug(in the global network play code) + that caused excessive lag. + + Added a "niceness" setting to the sound configuration dialog. + Removed obsolete information from the dialog. + + Fixed speed throttling code in Windows port when PAL emulation is + disabled/enabled and a new game hasn't been loaded yet. + + Commented out a printf() to debug stuff in fds.c(oops). + + Applied PK's joystick patch to the osdl code. It allows the user + to map axes and it fixes a joystick button mapping configuration saving + bug. + + Added two command line options new to Linux port to DOS port. + Just need to test them... + + Added some stuff to unif.c to allow for boards that can support + CHR RAM instead of CHR ROM(darn Sachen boards...). Fixes UNIF + version of "Q-Boy". + + Added command line option "-snapname" to Linux port. I'll add it + to the Windows port as well, but probably not to the DOS port. + + Added clip option to Linux port. + + Fixed sound logging(in Windows port) so that multiple recording + sessions now work. + + Added an option to clip the leftmost and rightmost 8 columns + of graphics in the Windows port. + + Added a submenu that lists recently opened files, in the Windows + port. + +.76: +---- + + Updated porting.txt. + + Added speed throttling code to Windows port that's used when sound is + disabled(and an option in the "Miscellaneous" + configuration window to disable it). + + Added cheat interface to DOS build. + + A few tweaks to the text cheat interface code in the cheat listing code. + Added a command to quickly toggle the status of the cheat(though a + cheat can still be disabled/enabled by (M)odifying the cheat). + + Support for UNIF UNL-TC-U01-1.5M board added. Same credits as below. + + Rewrote mapper 228 code just for the heck of it(actually, I couldn't + figure out why some(about two) of the games in the Action 52 cart + weren't working in .75(and .76). I traced it back to .71, where an apparent bug in + the undocumented 6502 opcode emulation allowed it to work, which + was later fixed for the .72 release(opcode 0x7C)). I'm thinking + that the dump is bad... + + Added a few crc32 checks to ines.c to check for and report when + a known(by me) bad(hacked or bad dump) game is loaded. + + Added support for the following UNIF boards. Thanks to Quietust + and Kevin Horton for the information. Some problems still exist + with a few games that use these boards, though... + + UNL-Sachen-8259B + UNL-Sachen-8259A + UNL-Sachen-74LS374N + UNL-SA-016-1M + UNL-SA-72007 + UNL-SA-72008 + UNL-SA-0036 + UNL-SA-0037 + + Fixes to some stuff in cart.c(for example, calling setprg32() when + only 16kb of prg data is present now works). + + Added support for iNES mapper 189. + + Tried to add support for the UNIF board "UNL-H2288". Failed. + + Updated "cheat.txt" to fix a few typos and added an example of finding + and adding a cheat using the Linux port's text interface. The actual + section on the Linux cheat interface still needs to be written, however. + + Changed network play code in the Windows port and fixed a bug. + Fixed a similar bug in the Linux netplay code....sort of. + + A few cosmetic changes to the dialogs in the Windows port. + + Fixed sound initialization on the Windows port(it was being initialized + when FCE Ultra started even if it was disabled by the user. Oops.). + + Joystick button configuration code in Windows port changed slightly + to be more useable. + + Changed reference to video mode 5 in the linux port to "1 per 4". + It may not be very meaningful, but it is certainly better + than "TV Emulation". I'll change the Windows port reference later. + + Documented video mode 7(320x240) for the Linux port. Also added + a check for the FBDev driver in order to use this mode instead + of a tweaked vga mode if that driver is being used. + + Added/Fixed cheat interface for Linux port. It's still not perfect, + though. The code is ugly... + + Callback function for FCEUI_ListCheats() now receives + status information(enabled/disabled). + + Callback functions for cheat functions now must return 0 to + stop listing cheats or 1 to continue. + + Fixed a problem(the cheat code was reading in cheats + for address $0000 from cheat files if any blank lines were present). + + SDL port zlib changes(linked dynamically to zlib now). + + More changes to envelope decay + looping on code. No longer + depends on value @ $4017. It now sounds correct based on some + tests I did with SMB3 and a GG, but Goonies 2 doesn't sound right( + based on a sound file sent to me by another person). + + Added support for iNES mapper 140. Thanks to Quietust for the + information. + + I need to figure out how to deal with the problem of so many + bad NSFs that most people consider good... + + Changed envelope decays a bit. Their behavior now depends on bit + 7 of $4017. I don't know if this is right... + + Addition of debug.c for some debugging stuff. + + Updated zlib to 1.1.4. + + Modified code in various files to allow UNIF games to override + current selected video system emulation(NTSC or PAL). Need to + make sure this really works. + + Changed sound.c to prevent desynchronization during network play. + This might slow down sound emulation slightly, especially when + sound emulation is disabled. I really don't care... + + Updating network play code. More info later... + + Moved the sound/video/etc output code in EmLoop() to the top of the + for(;;) loop so that initialization prior to calling EmLoop() will + be the same as initialization done during a call to a FCEUD_* function. + + A few very small changes to sound emulation in fds.c. + + Changed unlink() to remove() in cheat.c and removed the including + of the header file unistd.h. + + Split up the cc=... statement in RefreshLine() to make it easier + to read and not ambiguous(to Borland's C compiler). + + Changed a lot of the function declarations in cheat.c. I'll need + to verify that cheat searching still works ok and that cheats still work + ok. I'll also need to update the Windows(and Linux console) cheat code + to prevent compiler warnings. + + Fixed various minor code problems(not minor if you want to use a + compiler besides gcc). This is an ongoing process... + + Removed bit fields after reading about and thinking about possible + portability problems, though I kept some optimizations in fceline.h + + Minor code simplification in drivers/win/joystick.c(replaced + "case 200 ... 207" and "case 208 ... 215". + + Modified some code to use bit-fields in the graphics rendering code + in fce.c and fceline.h. gcc seems to be able to optimize the new + code to run faster. + + Fixed m6502.c and fce.c to initialize variables on virtual power + toggle. This should fix network play on the Windows port. + I'm also in the process of cleaning up fce.c. + +.75: +---- + Fixed directories configuration stuff in Windows port(corresponds + to .75r2). + + More changes to square wave channel envelope/volume emulation... + Changes described in the large paragraph some lines down have been + abandoned. + + Added a command line switch to set the volume in the dos port. + + Changed Windows sound configuration dialog. Now buffer length is + specified in time, not samples. I also added a volume control. + + Reduced the volume on 8-bit sound output on all ports by 1/2. + + Added a function FCEUI_SetSoundVolume(). Added support for setting + the volume via the command line in the Linux port, other ports coming + soon. + + Changed FCEUD_WriteSoundData() again. No longer has a "Check" + argument. All clipping(ugh) is done internally now. + + Added a directories configuration dialog to the Windows port. I worked + on it too long and I became a zombie, so it might have a few bugs. + That's what guine...err...users are for. ;) Don't expect me to do + anything like this for any other port, though. I don't feel like + doing it on the DOS port, and the Linux and other UNIXy ports shouldn't + really need it. + + Made some changes to the rectangle/square wave channel emulation to + fix the pops in SMB. I have no idea if what I did is correct. To + be honest, I'm not sure I know EXACTLY what I did, but it's something + like this: Writes to $4003/$4007 now reset the duty cycle count + and reload the cycle counter with the current wavelength. Writes to + $4003/$4007 now do not update the amplitude output of the channels; they + will be updated after the cycle counter hits 0(or below). + + More information in iNES informational output. + + Minor changes to mappers/16.c. + + Increased the volume of the VRC6's sawtooth wave channel. + + Added more information to the RAM cheat guide. + + Changed the triangle wave generation code slightly. I decided + to remove support for the higher-frequency triangle waves, as they + are too cpu-costly to create and are probably not very audible on a + real NES anyway. + + Major changes to how sound is mixed. This necessitated a high pass + DC-offset removing filter, and a low-pass filter just to make things + sound better. ^_^ + Note: FCEUD_WriteSoundData() no longer needs to clear the waveform + data referenced by the passed pointer; it's done internally now. + + Fixed JMP ($xxxx) - now handles wrapping like it occurs on a real 6502 + (hopefully; I'm assuming that the same holds true for the NES' cpu). + + Added the ability to load a custom global palette in the DOS port. + + Fixed bug in drivers/common/unixdsp.c(wrong return value if sample + rate was out of range). + + Many sound fixes... - Frequency sweeps, length counter stuff,... + + Changed Windows port to use IDirectInput7 and IDirectInputDevice7 + interfaces. + + Fixed a Game Genie bug in the core emulation code. It only appeared + in the Windows port, though. (Enabling gg emulation, loading a game, + and then disabling gg emulation and loading a new game while in the + gg code entry screen would cause the new loaded game to not work + correctly). + + Modified windows port to use the config saving/loading stuff in + drivers/common/config.c + + Mapper 45 cleanups/fixes. + + Added the ability to load a custom global palette in the Linux port. + Yay. + + Fixed a large number of overcomplicated code and silly bugs in + drivers/common/config.c. This changes the format of the configuration + structure, too. Also added support for saving/loading strings with + automatic memory allocation when strings are loaded. + + Minor change in InitNetplay(). + + Fixed bad type conversions for pointers to functions and fixed + some bad declarations of functions. + + Reenabled zlib support for the sdl build. I need to pay attention + to patches that modify lines than don't fit on my screen. + + Fixed vidblit.c to not emit so many warnings when compiling. + +.74: +---- + + Stop sound in Windows port when user clicks l/m/r mouse buttons + in the non-client area of the window. + + Added "Drag and drop" file open support to Windows port. + + Various code cleanups. + + mappers/33.c optimization. + + Rewrote the function "FCEU_MakeFName()". + + Removed crc32.h from mappers directory. + + Modified some of the window resizing code in the Windows port. + + Added support for waiting for vblank/double buffering to the Windows + port. + + Added/Fixed support for iNES mapper 248. + + After an NSF file is loaded, information about its header is now + displayed. + + Fixed a typo in the Namco 106 extra ram handling code. + + Improved the quality of the Namco 106's extra sound channels. + - Thank Mamiya and Applepie(real name?) for info. + + When an NSF file is being played, FCE Ultra will no longer go through + its scanline rendering loop. This speeds up NSF playback considerably. + + Updated "porting.txt". + + Moved some stuff from DriverInterface() to their own functions. + + Fixed some iNES mapper 18 IRQ counter emulation bugs. "Ninja Jajamaru - + Ginga Dai Sakusen" now works. + + Rewrote large pieces of the mapper 64 code. "Skull and Crossbones" + still doesn't work, though. + + Changed format of iNES header information output, added "ROM CRC32" info. + + Modified the way cycle timing is done slightly. No change + for NTSC emulation, but PAL emulation is a little more accurate. + + Changed the behavior of indirect indexed(I hope I got that right ;)) + instructions to behave more like a real 6502(junk reads are now + performed). + + A few optimizations/cleanups in m6502.c. + +0.73 +---- + + * Fixed several bugs with sprite emulation. Several games(such + as "Trojan" and "VS Duck Hunt") that were broken in .71 and .72 now + work ok. + * Added support for iNES mapper 82. Thanks to those who work on + "unofficial nester". + * Added support for iNES mapper 250(used by "Time Diver Avenger"). + * Fixed the documentation to show that iNES mappers 48, 83, and 232 + are supported. + * Removed various pieces of stale code and fixed a few minor bugs. + * Fixed a triangle wave channel bug(the channel was sometimes enabled + when it shouldn't have been). + * Writing to $4010 with the upper bit clear now acknowledges the DPCM + IRQ. This appears to fix "Stunt Buggies". + * Rewrote pieces of the Zapper emulation code to be cleaner and more + accurate. + * Rewrote the VS Unisystem dip switch drawing code. + * Simplified the setting of VS Unisystem dip switches. The "V" key + now toggles viewing AND editing of dip switches. + +0.72 +---- + + * Various minor bug fixes. + * Various code cleanups and size and speed optimizations. + * Removed some (apparently) unused MMC5 sound emulation code. + * Changed the behavior of $2003 and $4014 to better simulate what occurs + in a real NES. + * Fixed a few bugs in the undocumented 6502 opcode emulation code. + The Game Genie code "NUTANT" for SMB 3 works correctly now, at + least(previously it caused the game to lock up at the end of levels). + * Rewrote large pieces of the 6502 memory fetching code, resulting + in a slight slowdown in the speed of emulation. Benefits include: + Game Genie emulation now works(again) and 6502 emulation is more + accurate. + * Added support for iNES mapper 72. Thanks to rinao for the information. + * Fixed support for iNES mapper 77(used by Napoleon Senki). + * Fixed/Added support for iNES mapper 226. Apparently I made a mistake + in the documentation. Thanks to Mark K. for the information. + * Added support for iNES mapper 227. Thanks to Mark K. for the + information. + * Added support for iNES mapper 234(used by the Maxi-15). Thanks + to Mark K. for the information. Note that many of the Maxi-15 + ROM images on the Internet have corrupt CHR data(graphics), or the + mapper number is set incorrectly(usually to 11). Use a utility to + fix the mapper number. + * Added support for the following UNIF boards(prefixes omitted): + - EKROM (and fixed the reference to "Gemfire" in the documentation). + - HKROM + * Added the ability to enable and disable individual RAM cheats. + * Fixed some problems with the cheat search code(the NES' internal + RAM was being searched differently than any external RAM, which + was being search incorrectly). + +0.71 +---- + + * Fixed a 6502 emulation bug that was causing some Koei games + (ex: Nobunaga's Ambition, Genghis Khan) to not work. + * Extensive PPU/CPU timing adjustments. + * Fixed support for iNES mapper 40. + * Added support for the following UNIF boards(prefixes omitted): + - ETROM + - ELROM + - EWROM + * Fixed a few bugs in the UNIF code. + * Added support for loading and saving cheat files and an interface + to search for/add/delete/list cheats(no interface yet on Linux/DOS). + * Fixed a few minor bugs in the Windows DX code. + * Command line options to control the number of sound fragments + and the fragment size have been added(Linux). + +0.70 +---- + + * Adjusted PPU/CPU timing. + * Removed(until I understand the problem) a hack to get one of the + games in the Caltron 6-in-1 to work. + * Fixed an MMC3 IRQ emulation bug("Project Q" works better now). + * Fixed a problem/misunderstanding regarding the upper scanline. + It can now be displayed again. + * More accurate sprite hit emulation(fixes the title screen of + "Ultimate Stuntman"). + * VRAM bank switching for iNES mapper 4 is now possible(and enabled + for all mapper 4 games without CHR ROM). Fixes "Tenchi o Kurau 2". + * Added support for the Famicom's four-player adapter and the ability + to enable it(it is disabled by default to prevent compatibility + problems). + * Added an option(under miscellaneous configuration) to automatically + open the "File Open" dialog box when FCE Ultra is started. + * Sound sampling rate is now configurable. + * Fixed some bugs in the DirectSound code. + * Joystick button configuration is a little more user friendly(and + stable, hopefully) (Linux). + +0.62 +---- + + * Added support for the Famicom Disk System's extra sound channel. + * Updated the version of Tatsuyuki Satoh's OPL2 emulator used in + FCE Ultra from .36f to .37a. The sound quality in "Lagrange Point" + seems to have improved. + * Added support for iNES mapper 242(used by "Wai Xing Zhan Shi"). + * Fixed a network play bug that could cause desynchronizations + if more than one network play session occured since FCE Ultra + was started. This bug only showed up on the Windows port, though. + * Increased the volume of the noise and triangle sound channels. + * Fixed a save state loading bug. + * Fixed a small memory leak that was being caused by the VRC7 + state loading code. + * Fixed a bug that could cause FCE Ultra to crash if a virtual disk + was being read and the user ejected the virtual disk. + * Various minor bug fixes/code cleanups. + * NTSC color "emulation" can now be enabled again(the code to + enable it was broken in the last version). (Linux) + +0.61 +---- + + * Speed optimizations in sprite rendering code. + * Screen snapshots are now saved in the PNG format instead of the PCX + format. + * Fixed Game Genie emulation(it wasn't working in the last release). + Also added support for Game Genie emulation to the UNIF code. + * Rewrote command line option parsing code. + * Fixed a problem(if FCE Ultra was configured to connect to a remote + host and the remote host was given as an IP address, and the IP + address couldn't be reverse resolved, which is commonly the case + on home LANs, the connection attempt would fail) in the network + play code. I had misinterpreted the Winsock API documentation + when I wrote the code. (Windows) + +0.60 +---- + + * Various speed optimizations. + * Sound is no longer messed up when a JAM/KIL opcode is emulated. + * Fixed an overflow bug that occured when $4014 was written to + during certain(rare) conditions. + * Fixed a few save state bugs. + * Fixed a MMC1 CHR bank switching bug. + * Added emulation of the MMC5's WRAM write-enable/disable registers. + * Fixed a sound frame IRQ emulation bug. "Qix" works now. + * Added UNIF support. Some of the board emulation is still a bit + buggy, though. Look at the documentation for a list of supported + boards. + * Updated the "Palette Notes" section of the documentation. Also + fixed a few other problems with the documentation. + * Added support for loading files in the PKZIP and gzip + compressed file formats via zlib. + * Added the ability to configure the first scanline and the last + scanline to draw to the screen. Enabling PAL emulation no longer + will cause all 239 scanlines to be displayed, though an option + to override these settings for when PAL emulation is enabled may + be in the next version. + * Fixed a bug that would cause the emulated D-pad of virtual gamepads + emulated through the keyboard to be duplicated through "higher" + virtual gamepads(gamepad 1 would affect 2,3,4; gamepad 2 would + affect 3,4; etc.). (Windows) + +0.55 +---- + * Rewrote window resizing code. The window will now resize itself + to a multiple of the NES' screen dimensions nearest to the user + selected dimensions. (Windows) + * Added an option to use buttons instead of axes on physical joysticks + for the emulated D-Pad. This is useful for some digital joysticks. (Windows) + * Fixed a bug that would cause FCE Ultra to crash if sound were + disabled during emulation. (Windows) + * Added the ability to "fast forward" emulation. + * Added an option to allow more than 8 sprites per scanline to be + displayed. + * Added an option to save all extra non-volatile game data + (such as battery-backed RAM) in a directory under FCE Ultra's + base directory(as opposed to the directory the game is located in). + * Added an option to allow the emulator to change to a full screen + video mode once a new game is loaded. (Windows) + * Rewrote pieces of DirectInput joystick handling code. Hopefully + it should increase compatibility. (Windows) + * Added the ability to automatically obtain button numbers when + configuring joysticks, by pressing buttons on the joystick. + * Added the ability to close the current game(decreases CPU usage). (windows) + * Increased the speed of various function calls by passing + arguments to functions through registers instead of through the + stack. + * Added emulation of the MMC5's raw PCM register. + * Added the ability to save/load save states while network play + is occuring. + * Having PAL emulation enabled will no longer override the + NTSC/PAL settings in NSF headers. + * Fixed a bug that got into the .54 release. Extraneous data was + being returned on reads from $2002, which caused problems + with some games(such as "Choujin Sentai Jetman"). + +0.54 +---- + * Fixed a bug that would cause a wrong battery-backed WRAM file + name to be produced if FCE Ultra was passed a file name without + any directory component(such as "fceu SuperBlah.nes"). + * Fixed an iNES mapper 118 emulation bug that got into the code + in a recent code cleanup. "Armadillo" is playable again. + * Fixed a typo(and bug) in the MMC5 emulation code. + * Data returned from emulated reads to "unmapped" areas or + memory locations where bits are undefined should now be correct. + * Fixed emulation of the sprite memory transfer register $4014. + It now takes into account the last value written to $2003 and + starts the transfer to that location in sprite memory(like on + a real NES). + * Added a video configuration dialog box. (Windows) + * Added the ability to configure a custom video mode. Aspects + that are configurable include width, height, bits per pixel, + and size transforming(stretching and scaling). (Windows) + +0.53 +---- + + * Fixed a bug with joysticks that occured on systems with multiple + joysticks. (Windows) + * Added support for iNES mappers 77 and 92(thanks to LULU for the code for both). + * Added partial(timer is non-configurable) support for iNES mapper 105. + * Changed save state format again. Save states made with previous + versions should still be compatible, though this may change in + future versions. + * Small optimization to sprite emulation code. + * Rewrote color-deemphasis code to use integer math instead of + floating-point math. + * Rewrote and restructured input code. (Linux) + * Added command line option "-f8bit" to force 8-bit sound. (Linux) + * Rewrote and restructured input code. Among other new features, + keyboard keys are now somewhat configurable. (Windows) + * Writes to $4003/$4007 will now reset the emulated square wave + duty cycle generator. + * Added emulation of the Power Pad. + * Rewrote joystick device reading code to use the event-driven + interface. This should fix various problems regarding support + for joysticks with many buttons. (linux) + +0.52 +---- + + * Fixed a PCM emulation bug(digitized voices in "Ikari Warriors 2" + and "The Immortal", among others, work now). + * Fixed noise channel's LSFR update frequencies(hopefully). + * Various minor bug fixes. + +0.51 +---- + + * Added support for iNES mappers 86 and 89. + * Reduced byte size of the NSF player's background. + * Adjusted CPU/PPU timing. + * Fixed sound channel frequency calculations for when PAL emulation is enabled. + * Rewrote large pieces of the sound code and got rid of the sound queue. Sound quality should be slightly better now. + * Various minor bug fixes. + + Windows: + + * Fixed an FDS side reset bug when a new game is loaded. + * Screen width/depth/height changes while FCE Ultra is in windowed mode are handled now. + * Changed the configuration file format. + * Added a palette configuration dialog. + * Added the ability to load a custom NES palette. + * Added an option to double 16-bit sound volume. + * Added an option to force 8-bit sound. + * Added an option to use a secondary sound buffer(versus the primary). + * Added an option to wait for vertical blank if sound is disabled. + * Added an option to run while focus is lost. + +0.50 +---- + + * Many bug fixes. + * Sound code partially rewritten to improve quality(near-perfect + raw PCM now) and eliminate the need for a separate thread. + This created a small problem with network play, though, so read + the network play notes section. Also, synchronizing to + vertical blank has been removed. + * Rewrote other pieces of sound code. No more "buzzing" in MegaMan 2, + Codemasters games' intros, etc. + * Added support for the NES Zapper and the VS Unisystem's light + gun. Be sure to read "Light Gun Notes". + * Changed save state format. Save states should now be much + smaller for most games. Most(not all) save states created with + an older version should work. + * Added support for VS Duck Hunt and VS Hogan's Alley. + diff --git a/programs/emulator/fceu/FCEU ReadMe.txt b/programs/emulator/fceu/FCEU ReadMe.txt new file mode 100644 index 0000000000..f8c0518ebd --- /dev/null +++ b/programs/emulator/fceu/FCEU ReadMe.txt @@ -0,0 +1,152 @@ + +*******************************RUSSIAN**************************************** + +==Î ïðîãðàììå FCEU== + FCE Ultra - îäèí èç ëó÷øèõ ýìóëÿòîðîâ NES íà Linux, DOS, Windows, +BeOS, Mac OS X, à òåïåðü è íà Kolibri è Menuet! + +Ñàéò: http://fceultra.sourceforge.net + +Ïîääåðæèâàåìûå ìàïïåðû: 0-11, 13, 15-19, 21-26, 32-34, 40-49, 51, 52, 57, 61, 64-80, + 82, 83, 85-90, 92-97, 99, 105, 107, 112-119, 140, 144, + 151-156, 180, 182, 184, 189, 225-229, 232, 234, 235, 240, + 242, 246, 248-250 + +Ïîñëå çàïóñêà ïðîãðàììû íóæíî ïðîïèñàòü ïîëíûé ïóòü ê íóæíîìó ôàéëó NES +è íàæàòü Enter (ïóòü îòîáðàæàåòñÿ â âåðõíåé ÷àñòè îêíà). + +Âåðñèÿ ýìóëÿòîðà: 0.96 +Âåðñèÿ ïîðòà: 0.3 + +==Ïîðòåð== +Asper +Ïèñàòü ñþäà: asper.85@mail.ru + +Îñíîâíûå êëàâèøè: + + Äëÿ ýìóëèðóåìîãî óñòðîéñòâà Family BASIC Keyboard: + Âêëþ÷èòü/Âûêëþ÷èòü Ââîä Êëàâèàòóðû Scroll Lock + (âêëþ÷åíèå ââîäà ñ ýìóëèðóåìîé êëàâèàòóðû îòêëþ÷àåò + êîììàíäíûå êëàâèøè) + Âñå ýìóëèðóåìûå êëàâèøè îòîáðàæàþòñÿ íà áëèæàéøóþ äîñòóïíóþ êëàâèøó + íà êëàâèàòóðå ÏÊ çà íåáîëüøèìè èñêëþ÷åíèÿìè. Ýìóëèðóåìàÿ êëàâèøà "@" + îòîáðàæàåòñÿ íà êëàâèøó "`"(grave), è ýìóëèðóåìàÿ êëàâèøà "kana" + îòîáðàæàåòñÿ íà êëàâèøó "Insert" (â áëîêå êëàâèø ðàçìåðà 3x2 íàä + êóðñîðíûìè êëàâèøàìè). + + Äëÿ ýìóëèðóåìûõ óñòðîéñòâ game pads: + A Turbo B + S Turbo A + Left Control or Z or Space B + Left Alt or X A + Enter/Return Ñòàðò + Tab or BackSpace Ñåëåêò + Cursor Down Âíèç + Cursor Up Ââåðõ + Cursor Left Âëåâî + Cursor Right Âïðàâî + + Äëÿ ýìóëèðóåìûõ óñòðîéñòâ power pads(êëàâèøè ñîîòâåòñòâóþò ðàñïîëîæåíèþ + êíîïîê íà ñòîðîíå "B"): + O P [ ] + K L ; ' + M , . / + + Äëÿ FDS èãð: + F6 Âûáðàòü äèñê/ñòîðîíó äèñêà. + F8 Èçâëå÷ü/Âñòàâèòü äèñê. + + Äëÿ VS Unisystem èãð: + F8 Âñòàâèòü ìîíåòó. + F6 Îòîáðàçèòü/Ñêðûòü dip ïåðåêëþ÷àòåëè. + 1-8 Ïåðåêëþ÷èòü dip ïåðåêëþ÷àòåëè (êîãäà dip + ïåðåêëþ÷àòåëè îòîáàæàþòñÿ). + + 0-9 Âûáðàòü ñëîò ñîõðàíåíèÿ. + Caps Lock Âûáðàòü âèðòóàëüíûé äæîéñòèê. + + F2 Ìàññøòàáèðîâàòü îêíî. + F3 Îòêðûòü ôàéë. + F5/F7 Ñîõðàíèòü/Çàãðóçèòü ñîõðàíåíèå. + F9 Ñîõðàíèòü ñíèìîê ýêðàíà. + F10 Ïåðåçàãðóçêà. + F11 Âûêëþ÷èòü/Âêëþ÷èòü. + ESC/F12 Âûõîä. + + +*******************************ENGLISH**************************************** + + +==About program FCEU== + FCE Ultra - is is one of the best emulators of NES on Linux, DOS, Windows, +BeOS, Mac OS X, and now on Kolibri and Menuet! + +Website: http://fceultra.sourceforge.net + +Supported mappers: 0-11, 13, 15-19, 21-26, 32-34, 40-49, 51, 52, 57, 61, 64-80, + 82, 83, 85-90, 92-97, 99, 105, 107, 112-119, 140, 144, + 151-156, 180, 182, 184, 189, 225-229, 232, 234, 235, 240, + 242, 246, 248-250 + +After program executing you have to input full path to the NES file that you want +to be executed and press Enter (the path echo on the upper part of the window). + +Emulator version number: 0.96 +Port version 0.3 + +==Porter== +Asper +mailto: asper.85@mail.ru + + +Main keys: + + For emulated Family BASIC Keyboard: + Enable/Disable Keyboard Input Scroll Lock + (enabling emulated keyboard input will disable + commands keys) + All emulated keys are mapped to the closest open key on the PC + keyboard, with a few exceptions. The emulated "@" key is + mapped to the "`"(grave) key, and the emulated "kana" key + is mapped to the "Insert" key(in the 3x2 key block above the + cursor keys). + + For emulated game pads: + A Turbo B + S Turbo A + Left Control or Z or Space B + Left Alt or X A + Enter/Return Start + Tab or BackSpace Select + Cursor Down Down + Cursor Up Up + Cursor Left Left + Cursor Right Right + + For emulated power pads(keys correspond to button locations on + side "B"): + O P [ ] + K L ; ' + M , . / + + For FDS games: + F6 Select disk/disk side. + F8 Eject/Insert disk. + + For VS Unisystem games: + F8 Insert coin. + F6 Show/Hide dip switches. + 1-8 Toggle dip switches(when dip switches + are shown). + + 0-9 Select save state. + Caps Lock Select virtual joystick. + + F2 Scale window. + F3 Open file. + F5/F7 Save/Load state. + F9 Save screen snapshot. + F10 Reset. + F11 Power off/on. + ESC/F12 Exit. + diff --git a/programs/emulator/fceu/History.txt b/programs/emulator/fceu/History.txt new file mode 100644 index 0000000000..3a9c6b46be --- /dev/null +++ b/programs/emulator/fceu/History.txt @@ -0,0 +1,33 @@ +01.09.08 == Port v0.1 == Emulator v0.42 +- çàãðóçêà NES ôàéëîâ | - load NES files +- èñïîëíåíèå NES ôàéëîâ | - execute NES files +- ìàññøòàáèðîâàíèå ðàçìåðà îêíà | - scale window size +- ðàáîòàåò â ÎÑ Kolibri è Menuet | - work in OS Kolibri and Menuet + + +24.10.08 == Port v0.2 == Emulator v0.42 +- ðàáîòà ñ ñèñ. ôóíêöèåé 70 | - working with sys. function 70 +- ñîçäàíèå ñîõðàíåíèé | - make saves +- çàãðóçêà ñîõðàíåíèé | - load saves +- ñîçäàíèå ñêðèíøîòîâ | - make screenshots +- äîáàâëåíû êëàâèøè Òóðáî A è Òóðáî B | - Turbo A and Turbo B keys were added +- ðàáîòàåò òîëüêî â ÎÑ Kolibri èç-çà | - work in OS Kolibri only because of + èñïîëüçîâàíèÿ ñèñ. ôóíêöèè 70 | using sys. function 70 + +09.07.09 == Port v0.3 == Emulator v0.96 +- äîáàâëåíî 33 íîâûõ ìàïïåðà | - 33 new mappers were add + ( 48, 51, 52, 57, 61, 72, 74, 77, 82, 83, 88, 92, 96, 114, 115-117, 140, + 144, 152-156, 189, 227, 232, 234, 235, 242, 248-250 ) + +- äîáàâëåíû íîâûå ýìóëèðóåìûå | - new emulated devices were add + óñòðîéñòâà | + ( power pads, game pads, zapper, arkanoid, shadow, Family BASIC Keyboard ) + +- âûáîð âèðòóàëüíîãî äæîéñòèêà | - select virtual joysticks +- óñêîðåííûé âûâîä ãðàôèêè | - faster graphics output +- âûâîä fps | - fps output +- ñîîáùåíèÿ òåïåðü âûâîäÿòñÿ íà äîñêó | - messages now output to the debug board + îòëàäêè | +- ñì. ôàéë "ChangeLog.txt" ÷òîáû | - see file "ChangeLog.txt" for full list of changes + ïðîñìîòðåòü âåñü ñïèñîê èçìåíåíèé | + diff --git a/programs/emulator/fceu/fce b/programs/emulator/fceu/fce new file mode 100644 index 0000000000000000000000000000000000000000..5f193028030991260134a16902c48b387997143f GIT binary patch literal 113006 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%0AxC$`^tR3iL> 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≫)z`8 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 literal 0 HcmV?d00001