From 812bae4a84bbd638e86e71bb36c95b1e09cca824 Mon Sep 17 00:00:00 2001 From: CleverMouse Date: Fri, 15 Jun 2012 14:18:39 +0000 Subject: [PATCH] add hd_load to russian livecd git-svn-id: svn://kolibrios.org@2783 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/common/HD_load/9x2klbr/LDKLBR.VXD | Bin 0 -> 4402 bytes data/common/HD_load/memdisk | Bin 0 -> 20056 bytes data/common/games/fara | Bin 0 -> 9085 bytes data/common/games/fara.gfx | Bin 0 -> 59246 bytes data/common/games/fceu/ChangeLog.txt | 2183 ++++++++ data/common/games/fceu/FCEU ReadMe.txt | 152 + data/common/games/fceu/History.txt | 33 + data/common/games/fceu/fce | Bin 0 -> 113006 bytes data/common/games/lrl | Bin 0 -> 71406 bytes data/common/games/lrl.hsr | Bin 0 -> 154 bytes data/common/games/lrl.lev | Bin 0 -> 6265 bytes data/common/games/pig/evil.png | Bin 0 -> 55002 bytes data/common/games/pig/font.png | Bin 0 -> 13161 bytes data/common/games/pig/glasfont.png | Bin 0 -> 151595 bytes data/common/games/pig/icons.png | Bin 0 -> 112843 bytes data/common/games/pig/lifepig.png | Bin 0 -> 6101 bytes data/common/games/pig/pig | Bin 0 -> 156155 bytes data/common/games/pig/pigframe.png | Bin 0 -> 52725 bytes data/common/games/pig/slime.png | Bin 0 -> 67475 bytes data/common/games/pig/stars.png | Bin 0 -> 1467 bytes data/common/games/pig/tiles.png | Bin 0 -> 42465 bytes data/common/games/soko/lev/100boxes.lev | Bin 0 -> 609 bytes data/common/games/soko/lev/990602.lev | Bin 0 -> 2377 bytes data/common/games/soko/lev/aenigma.lev | Bin 0 -> 5650 bytes data/common/games/soko/lev/albg-bst.lev | Bin 0 -> 3239 bytes data/common/games/soko/lev/albg1-1.lev | Bin 0 -> 5825 bytes data/common/games/soko/lev/albg1-2.lev | Bin 0 -> 4374 bytes data/common/games/soko/lev/albg1-3.lev | Bin 0 -> 2652 bytes data/common/games/soko/lev/autogen.lev | Bin 0 -> 1841 bytes data/common/games/soko/lev/bagle.lev | Bin 0 -> 1712 bytes data/common/games/soko/lev/bagle2.lev | Bin 0 -> 1442 bytes data/common/games/soko/lev/boxxle1.lev | Bin 0 -> 9704 bytes data/common/games/soko/lev/boxxle2.lev | Bin 0 -> 8811 bytes data/common/games/soko/lev/cantrip.lev | Bin 0 -> 1214 bytes data/common/games/soko/lev/cantrip2.lev | Bin 0 -> 892 bytes data/common/games/soko/lev/dh1.lev | Bin 0 -> 1067 bytes data/common/games/soko/lev/dh2.lev | Bin 0 -> 1378 bytes data/common/games/soko/lev/dim-york.lev | Bin 0 -> 2156 bytes data/common/games/soko/lev/erim.lev | Bin 0 -> 2800 bytes data/common/games/soko/lev/fpok.lev | Bin 0 -> 1570 bytes data/common/games/soko/lev/grig2001.lev | Bin 0 -> 7416 bytes data/common/games/soko/lev/grig2002.lev | Bin 0 -> 3085 bytes data/common/games/soko/lev/handmade.lev | Bin 0 -> 3064 bytes data/common/games/soko/lev/heytak.lev | Bin 0 -> 840 bytes data/common/games/soko/lev/howard1.lev | Bin 0 -> 7762 bytes data/common/games/soko/lev/howard2.lev | Bin 0 -> 3689 bytes data/common/games/soko/lev/howard3.lev | Bin 0 -> 1704 bytes data/common/games/soko/lev/howard4.lev | Bin 0 -> 3393 bytes data/common/games/soko/lev/jcd.lev | Bin 0 -> 3110 bytes data/common/games/soko/lev/jct.lev | Bin 0 -> 19577 bytes data/common/games/soko/lev/kokoban.lev | Bin 0 -> 2562 bytes data/common/games/soko/lev/kompact.lev | Bin 0 -> 2638 bytes data/common/games/soko/lev/loma.lev | Bin 0 -> 3026 bytes data/common/games/soko/lev/maelstrm.lev | Bin 0 -> 2717 bytes data/common/games/soko/lev/mariob.lev | Bin 0 -> 2126 bytes data/common/games/soko/lev/masmicro.lev | Bin 0 -> 9099 bytes data/common/games/soko/lev/massasq.lev | Bin 0 -> 7585 bytes data/common/games/soko/lev/micrcosm.lev | Bin 0 -> 2380 bytes data/common/games/soko/lev/microban.lev | Bin 0 -> 7630 bytes data/common/games/soko/lev/minicosm.lev | Bin 0 -> 2117 bytes data/common/games/soko/lev/nabocosm.lev | Bin 0 -> 2300 bytes data/common/games/soko/lev/novoban.lev | Bin 0 -> 2190 bytes data/common/games/soko/lev/numbers.lev | Bin 0 -> 551 bytes data/common/games/soko/lev/online.lev | Bin 0 -> 712 bytes data/common/games/soko/lev/original.lev | Bin 0 -> 10001 bytes data/common/games/soko/lev/picocosm.lev | Bin 0 -> 1232 bytes data/common/games/soko/lev/sasq_.lev | Bin 0 -> 6536 bytes data/common/games/soko/lev/sasq_iii.lev | Bin 0 -> 8098 bytes data/common/games/soko/lev/sasq_iv.lev | Bin 0 -> 6419 bytes data/common/games/soko/lev/sasq_v.lev | Bin 0 -> 7199 bytes data/common/games/soko/lev/sasq_vi.lev | Bin 0 -> 8471 bytes data/common/games/soko/lev/simple.lev | Bin 0 -> 5559 bytes data/common/games/soko/lev/sokevo.lev | Bin 0 -> 4886 bytes data/common/games/soko/lev/sokhard.lev | Bin 0 -> 1367 bytes data/common/games/soko/lev/sokolate.lev | Bin 0 -> 2135 bytes data/common/games/soko/lev/soloban.lev | Bin 0 -> 1025 bytes data/common/games/soko/lev/stilmore.lev | Bin 0 -> 4346 bytes data/common/games/soko/lev/sven.lev | Bin 0 -> 68047 bytes data/common/games/soko/lev/takaken.lev | Bin 0 -> 281 bytes data/common/games/soko/lev/titlscrn.lev | Bin 0 -> 1094 bytes data/common/games/soko/lev/twisty.lev | Bin 0 -> 225 bytes data/common/games/soko/rules.txt | 180 + data/common/games/soko/skin.raw | Bin 0 -> 11520 bytes data/common/games/soko/soko | Bin 0 -> 2948 bytes data/common/games/soko/soko-4.lev | Bin 0 -> 160 bytes data/common/games/soko/soko-5.lev | Bin 0 -> 2652 bytes data/common/games/soko/soko-6.lev | Bin 0 -> 1568 bytes data/common/games/soko/soko-7.lev | Bin 0 -> 3980 bytes data/common/games/soko/soko-8.lev | Bin 0 -> 415 bytes data/common/games/soko/soko-9.lev | Bin 0 -> 554 bytes data/rus/Makefile | 44 + data/rus/Makefile.fasm | 11 + programs/hd_load/9x2klbr/9x2klbr.asm | 202 + programs/hd_load/9x2klbr/DEFFILE.DEF | 23 + programs/hd_load/9x2klbr/Klbrico.res | Bin 0 -> 1204 bytes programs/hd_load/9x2klbr/V86MMGR.INC | 178 + programs/hd_load/9x2klbr/VMM.INC | 4522 +++++++++++++++++ programs/hd_load/9x2klbr/comp_ldr.bat | 1 + programs/hd_load/9x2klbr/compile.txt | 12 + programs/hd_load/9x2klbr/make_vxd.bat | 2 + programs/hd_load/9x2klbr/masmstub | Bin 0 -> 64 bytes programs/hd_load/9x2klbr/mtldr | Bin 0 -> 3224 bytes programs/hd_load/9x2klbr/mtldr.inc | 204 + .../hd_load/9x2klbr/mtldr_code/compile.bat | 4 + programs/hd_load/9x2klbr/mtldr_code/fat32.inc | 112 + programs/hd_load/9x2klbr/mtldr_code/mtldr.asm | 733 +++ programs/hd_load/9x2klbr/mtldr_code/ntfs.inc | 519 ++ programs/hd_load/9x2klbr/readme_dos.txt | 33 + programs/hd_load/9x2klbr/readme_win.txt | 33 + programs/hd_load/9x2klbr/vxd.asm | 234 + programs/hd_load/meosload/AUTOEXEC.BAT | 28 + programs/hd_load/meosload/CONFIG.SYS | 27 + programs/hd_load/meosload/History.txt | 9 + programs/hd_load/meosload/L_readme.txt | 18 + programs/hd_load/meosload/L_readme_Win.txt | 18 + programs/hd_load/meosload/MeOSload.asm | 364 ++ programs/hd_load/mtldr/fat32.inc | 112 + programs/hd_load/mtldr/install.txt | 101 + programs/hd_load/mtldr/mtldr.asm | 852 ++++ programs/hd_load/mtldr/ntfs.inc | 531 ++ programs/hd_load/mtldr/vista_install.bat | 4 + programs/hd_load/mtldr/vista_remove.bat | 1 + programs/hd_load/mtldr_install/compile.bat | 1 + .../mtldr_install/mtldr_code/compile.bat | 1 + .../mtldr_install/mtldr_code/fat32.inc | 112 + .../mtldr_install/mtldr_code/mtldr.asm | 786 +++ .../hd_load/mtldr_install/mtldr_code/ntfs.inc | 531 ++ .../hd_load/mtldr_install/mtldr_install.asm | 1426 ++++++ programs/hd_load/mtldr_install/rsrc.res | Bin 0 -> 1204 bytes programs/hd_load/usb_boot/BOOT_F32.ASM | 183 + programs/hd_load/usb_boot/MBR | Bin 0 -> 512 bytes programs/hd_load/usb_boot/fat32.inc | 83 + programs/hd_load/usb_boot/inst.asm | 492 ++ programs/hd_load/usb_boot/mtldr.asm | 453 ++ programs/hd_load/usb_boot/readme.txt | 48 + programs/hd_load/usb_boot/rsrc.res | Bin 0 -> 1204 bytes programs/hd_load/usb_boot/setmbr.asm | 389 ++ programs/hd_load/usb_boot_old/MeOSload.asm | 449 ++ programs/hd_load/usb_boot_old/enable.asm | 74 + programs/hd_load/usb_boot_old/usb_boot.rtf | 61 + .../hd_load/usb_boot_old/usb_boot_1251.txt | 57 + .../hd_load/usb_boot_old/usb_boot_866.txt | 57 + 142 files changed, 16683 insertions(+) create mode 100644 data/common/HD_load/9x2klbr/LDKLBR.VXD create mode 100644 data/common/HD_load/memdisk create mode 100644 data/common/games/fara create mode 100644 data/common/games/fara.gfx create mode 100644 data/common/games/fceu/ChangeLog.txt create mode 100644 data/common/games/fceu/FCEU ReadMe.txt create mode 100644 data/common/games/fceu/History.txt create mode 100644 data/common/games/fceu/fce create mode 100644 data/common/games/lrl create mode 100644 data/common/games/lrl.hsr create mode 100644 data/common/games/lrl.lev create mode 100644 data/common/games/pig/evil.png create mode 100644 data/common/games/pig/font.png create mode 100644 data/common/games/pig/glasfont.png create mode 100644 data/common/games/pig/icons.png create mode 100644 data/common/games/pig/lifepig.png create mode 100644 data/common/games/pig/pig create mode 100644 data/common/games/pig/pigframe.png create mode 100644 data/common/games/pig/slime.png create mode 100644 data/common/games/pig/stars.png create mode 100644 data/common/games/pig/tiles.png create mode 100644 data/common/games/soko/lev/100boxes.lev create mode 100644 data/common/games/soko/lev/990602.lev create mode 100644 data/common/games/soko/lev/aenigma.lev create mode 100644 data/common/games/soko/lev/albg-bst.lev create mode 100644 data/common/games/soko/lev/albg1-1.lev create mode 100644 data/common/games/soko/lev/albg1-2.lev create mode 100644 data/common/games/soko/lev/albg1-3.lev create mode 100644 data/common/games/soko/lev/autogen.lev create mode 100644 data/common/games/soko/lev/bagle.lev create mode 100644 data/common/games/soko/lev/bagle2.lev create mode 100644 data/common/games/soko/lev/boxxle1.lev create mode 100644 data/common/games/soko/lev/boxxle2.lev create mode 100644 data/common/games/soko/lev/cantrip.lev create mode 100644 data/common/games/soko/lev/cantrip2.lev create mode 100644 data/common/games/soko/lev/dh1.lev create mode 100644 data/common/games/soko/lev/dh2.lev create mode 100644 data/common/games/soko/lev/dim-york.lev create mode 100644 data/common/games/soko/lev/erim.lev create mode 100644 data/common/games/soko/lev/fpok.lev create mode 100644 data/common/games/soko/lev/grig2001.lev create mode 100644 data/common/games/soko/lev/grig2002.lev create mode 100644 data/common/games/soko/lev/handmade.lev create mode 100644 data/common/games/soko/lev/heytak.lev create mode 100644 data/common/games/soko/lev/howard1.lev create mode 100644 data/common/games/soko/lev/howard2.lev create mode 100644 data/common/games/soko/lev/howard3.lev create mode 100644 data/common/games/soko/lev/howard4.lev create mode 100644 data/common/games/soko/lev/jcd.lev create mode 100644 data/common/games/soko/lev/jct.lev create mode 100644 data/common/games/soko/lev/kokoban.lev create mode 100644 data/common/games/soko/lev/kompact.lev create mode 100644 data/common/games/soko/lev/loma.lev create mode 100644 data/common/games/soko/lev/maelstrm.lev create mode 100644 data/common/games/soko/lev/mariob.lev create mode 100644 data/common/games/soko/lev/masmicro.lev create mode 100644 data/common/games/soko/lev/massasq.lev create mode 100644 data/common/games/soko/lev/micrcosm.lev create mode 100644 data/common/games/soko/lev/microban.lev create mode 100644 data/common/games/soko/lev/minicosm.lev create mode 100644 data/common/games/soko/lev/nabocosm.lev create mode 100644 data/common/games/soko/lev/novoban.lev create mode 100644 data/common/games/soko/lev/numbers.lev create mode 100644 data/common/games/soko/lev/online.lev create mode 100644 data/common/games/soko/lev/original.lev create mode 100644 data/common/games/soko/lev/picocosm.lev create mode 100644 data/common/games/soko/lev/sasq_.lev create mode 100644 data/common/games/soko/lev/sasq_iii.lev create mode 100644 data/common/games/soko/lev/sasq_iv.lev create mode 100644 data/common/games/soko/lev/sasq_v.lev create mode 100644 data/common/games/soko/lev/sasq_vi.lev create mode 100644 data/common/games/soko/lev/simple.lev create mode 100644 data/common/games/soko/lev/sokevo.lev create mode 100644 data/common/games/soko/lev/sokhard.lev create mode 100644 data/common/games/soko/lev/sokolate.lev create mode 100644 data/common/games/soko/lev/soloban.lev create mode 100644 data/common/games/soko/lev/stilmore.lev create mode 100644 data/common/games/soko/lev/sven.lev create mode 100644 data/common/games/soko/lev/takaken.lev create mode 100644 data/common/games/soko/lev/titlscrn.lev create mode 100644 data/common/games/soko/lev/twisty.lev create mode 100644 data/common/games/soko/rules.txt create mode 100644 data/common/games/soko/skin.raw create mode 100644 data/common/games/soko/soko create mode 100644 data/common/games/soko/soko-4.lev create mode 100644 data/common/games/soko/soko-5.lev create mode 100644 data/common/games/soko/soko-6.lev create mode 100644 data/common/games/soko/soko-7.lev create mode 100644 data/common/games/soko/soko-8.lev create mode 100644 data/common/games/soko/soko-9.lev create mode 100644 programs/hd_load/9x2klbr/9x2klbr.asm create mode 100644 programs/hd_load/9x2klbr/DEFFILE.DEF create mode 100644 programs/hd_load/9x2klbr/Klbrico.res create mode 100644 programs/hd_load/9x2klbr/V86MMGR.INC create mode 100644 programs/hd_load/9x2klbr/VMM.INC create mode 100644 programs/hd_load/9x2klbr/comp_ldr.bat create mode 100644 programs/hd_load/9x2klbr/compile.txt create mode 100644 programs/hd_load/9x2klbr/make_vxd.bat create mode 100644 programs/hd_load/9x2klbr/masmstub create mode 100644 programs/hd_load/9x2klbr/mtldr create mode 100644 programs/hd_load/9x2klbr/mtldr.inc create mode 100644 programs/hd_load/9x2klbr/mtldr_code/compile.bat create mode 100644 programs/hd_load/9x2klbr/mtldr_code/fat32.inc create mode 100644 programs/hd_load/9x2klbr/mtldr_code/mtldr.asm create mode 100644 programs/hd_load/9x2klbr/mtldr_code/ntfs.inc create mode 100644 programs/hd_load/9x2klbr/readme_dos.txt create mode 100644 programs/hd_load/9x2klbr/readme_win.txt create mode 100644 programs/hd_load/9x2klbr/vxd.asm create mode 100644 programs/hd_load/meosload/AUTOEXEC.BAT create mode 100644 programs/hd_load/meosload/CONFIG.SYS create mode 100644 programs/hd_load/meosload/History.txt create mode 100644 programs/hd_load/meosload/L_readme.txt create mode 100644 programs/hd_load/meosload/L_readme_Win.txt create mode 100644 programs/hd_load/meosload/MeOSload.asm create mode 100644 programs/hd_load/mtldr/fat32.inc create mode 100644 programs/hd_load/mtldr/install.txt create mode 100644 programs/hd_load/mtldr/mtldr.asm create mode 100644 programs/hd_load/mtldr/ntfs.inc create mode 100644 programs/hd_load/mtldr/vista_install.bat create mode 100644 programs/hd_load/mtldr/vista_remove.bat create mode 100644 programs/hd_load/mtldr_install/compile.bat create mode 100644 programs/hd_load/mtldr_install/mtldr_code/compile.bat create mode 100644 programs/hd_load/mtldr_install/mtldr_code/fat32.inc create mode 100644 programs/hd_load/mtldr_install/mtldr_code/mtldr.asm create mode 100644 programs/hd_load/mtldr_install/mtldr_code/ntfs.inc create mode 100644 programs/hd_load/mtldr_install/mtldr_install.asm create mode 100644 programs/hd_load/mtldr_install/rsrc.res create mode 100644 programs/hd_load/usb_boot/BOOT_F32.ASM create mode 100644 programs/hd_load/usb_boot/MBR create mode 100644 programs/hd_load/usb_boot/fat32.inc create mode 100644 programs/hd_load/usb_boot/inst.asm create mode 100644 programs/hd_load/usb_boot/mtldr.asm create mode 100644 programs/hd_load/usb_boot/readme.txt create mode 100644 programs/hd_load/usb_boot/rsrc.res create mode 100644 programs/hd_load/usb_boot/setmbr.asm create mode 100644 programs/hd_load/usb_boot_old/MeOSload.asm create mode 100644 programs/hd_load/usb_boot_old/enable.asm create mode 100644 programs/hd_load/usb_boot_old/usb_boot.rtf create mode 100644 programs/hd_load/usb_boot_old/usb_boot_1251.txt create mode 100644 programs/hd_load/usb_boot_old/usb_boot_866.txt diff --git a/data/common/HD_load/9x2klbr/LDKLBR.VXD b/data/common/HD_load/9x2klbr/LDKLBR.VXD new file mode 100644 index 0000000000000000000000000000000000000000..5fba35d0b2753f5998d5247ad45b5be4277b8e1c GIT binary patch literal 4402 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 literal 0 HcmV?d00001 diff --git a/data/common/games/fara b/data/common/games/fara new file mode 100644 index 0000000000000000000000000000000000000000..70b3056f2e7423ba5d81f86ba736dbba0e3b63ab GIT binary patch literal 9085 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 literal 0 HcmV?d00001 diff --git a/data/common/games/fara.gfx b/data/common/games/fara.gfx new file mode 100644 index 0000000000000000000000000000000000000000..f0309b540298a5af6aa3d0c917661610f9ef0176 GIT binary patch literal 59246 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 literal 0 HcmV?d00001 diff --git a/data/common/games/fceu/ChangeLog.txt b/data/common/games/fceu/ChangeLog.txt new file mode 100644 index 0000000000..37febc734d --- /dev/null +++ b/data/common/games/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/data/common/games/fceu/FCEU ReadMe.txt b/data/common/games/fceu/FCEU ReadMe.txt new file mode 100644 index 0000000000..f8c0518ebd --- /dev/null +++ b/data/common/games/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/data/common/games/fceu/History.txt b/data/common/games/fceu/History.txt new file mode 100644 index 0000000000..3a9c6b46be --- /dev/null +++ b/data/common/games/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/data/common/games/fceu/fce b/data/common/games/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 diff --git a/data/common/games/lrl b/data/common/games/lrl new file mode 100644 index 0000000000000000000000000000000000000000..789d877cc7294e7e9357755942af6ebb77d94a6c GIT binary patch literal 71406 zcmV(tKhg|JBIvU24m$vDj9 zsLgZB2sSfbn{6YQUq@NJ~h~ zjSOM6u#xM-0Kcu0!m# zXx$WPrU@$%(j9v^W2;xNo|fo=3O$dEN_NXJhitf_AEx8S_;iVh4;FmJ+WDr?f{Xz! z(TUl5hO`yaskKQa83f}KfvjwfC$`bSp}Kt7#@>b{NNeakaqsY%?47!tj?ZHbT->XK zCoQl-#kKRIa(SQ6&;n+O+1M;I)AbI|naJb(yBQ9?I&(_^<%1bC^DrajkP_d5eMqWN zkIN%alhuk`0g zF+g42e(2(g5mnkwCUFv;YAU(5J!g3y_9axqqSRv@kD_J-Fq=tktThv9d{~E?C<34O zQpxn08*)}j6g9&|+@gjZ@&;#MMsPwBGi-cD=0;3SOA2Z{JN+kDzhOz7vJk(@WdRH{ zb|jbFsWM60GcaZ+I$h45iPTvoCw70{NyDsyxF7rXt!Sb;UoVD|(C*$4l69qY4EZ4u ztmp-d(fz9RIpbowb{KWt7J<#YX-Ug_F*7QRPS5uqza)tW3sI-g9V!d6QXfe=g{lim zXcQxD_N%Ny4kz8O1PuPE6A1JS9l-T^OjjUTKZG(#lRs3{G?3@^VakqGaR&wI+kGlw z9$q<%UB$0ldQ=>JO+Ym}5I?|`#Tf-x(^TaOM*F@RPGhALa+>FD%cZRbaBvp2Ccb`Ze_ z@RW{?wztu9+A3i_$b#o)J-aBbz?(;BwqRWeGe?QCvfgrRaWaZSFmDQTZ0mJTlMM{M z2u{3fw!==2kTBn{pAR|N@uIB@<5A*g{Lnk5ls0})Bt`1XRysQt3G&A8Xa)EIcuQZ9 z-^szxc$MC3b=TmOBsr~fgaqFaVKU2AXb?_77Ysak#v!e%0^Hb-ypimsy#I34g zijDmCwDB~d1!Et+<=oF35}#6P)gqjSb)q3uNyl|pab$iJFF`daCy>YmX`Odq46qX5 z;yl7MyFwbTA@K^8-o-2P{zk!-`czET^Shva;1mj|10QpCZVXgjLg93S_D=8GCWToT z`b9l!^T?$~fn_i%GcAk7o~k`wWc|AWF}iqNvG%{M=ugN9;e_oeh8C%dU@TyBEm!M0 zyB1uR4QW@}t+e(TUidlhNnjbodN3$b)`O`lt-o-Xe>7LNou$x!wg)V#!F|kxbR8K4 zVGayyMnKAM>U&E+Tlj4{bKP8Zg_S_o^dKpq=PCiXky1- zlM0ZcpXp`kHXt=TD9iy?>dvzZrwT`Xif{nH{j!|ZN&=2Ir!8nyJQZCQdd_!)?{MKJ zBJmRE5xt6Wx+e>f%a&nsA2(D1Hvi&p3=F|SvufHsN2IW_k4-fbBPRvr-+q5XBR(20 zUSJw$mYfeNZ+>4!Z#%oH_~{}!4p`^E7{)gtQ~0ev0-s;8-JmsQ^pOO*(;W?~^R;n2&9K68J4{wHS0%X0z9ZB;AfEblvfdv3~bVo38Kxfzmd{Z4L z8V*rb?A^po8>&y_9aSd#Ncz<(EqI98fX6kbL=%`sQdU$of$fZb6HsAgeU>Z{g7+V} z(SPREgWnyQyFAU{M^ly>_Q0uGw@eaPb+2{i?`PvMq!CDOA79 z@Qhu`3jFC(VP2yxH9?&Tb^SvdHjs=lkUDI%zdwiL6cCEH|G{(2mQ^1G6LEi4Z%9sI zkjt;J7`?J?$`Wj`wdvQ&t1N)+&M6a_1M0e~iYtjPkzFeC9I0DJ2O&pk>uf_ipWoZ+ zG!4jGZBZYUp%&v)tZ~>LH%xCn*WTEuLi*;cNl?b|Q;Kqh(5INhQG7%ZAzvFB)E!cC zso@#(Hf_wCI*PxJiED>e_-t{WWig6766f7epz}y^K|TJ(R!Ig`90)Dllz()f^ML@b z3~wms#hq^fQsJ~pevbR%XZ@v&panPVHpFm#8NK#kb9x&QRtEK#t{faX4$=O)^-Q>C zB6k_AqdhyK(8QpiZ!*E);b5>=!-_^|N&uC4XM+i-R(drkq^Vu_-ebQ-X9irZ8g8lb z>V7pQRKOc)Vgl?u=FOLkjp)xvR~C^oHV!JpC9PD564mCgSVF?hfVz{U2CNBwcqe^6 z_DZq+ncy)~lVCJbK!nu%#176s?hR2vvqYm%LL~_~v>&mvCq{#9<~On6h#WfDlO7EZI6jhKMUB&(rIG#E z>k0jP`3Q&n8^t#<~Adb(Lbysi#1+7WN%vbgS1wPB4Y7z;WAX!E&(hGL^mhl1%S( zq*y#CNf#LLtgTJvqExRsALoik&C31?slRephU9AFJiT$yd)Z8Fl;AH0NlBZ{-27&vN;H9I8*H2>!(Tmk51Rg zw@GJEDVFR2;7VB~bUgvPps5JGv z6|4B!Qg-d*RFMneidVJf`>11t_e$^q{Uii|7oRqp6QSpB>Ot1xlvZMOve*GUgQCxl zQtmyB9v}y!(ph_v6%4%5o0^)YYX%HP5VUB~v-4$h?I2q#k85yq;fO8+*WO?tD=&n^ zKJg5<-M?ZxKVS#h{?p63X6dHl*0q`_sY2#!+jNi8fRB3EUrKZ*MXM6AXdZnO;QhzH zrlQPfPm|gbxK-pM8kL{Ij{2Q5ByNp<(>?=wnc1_fT*$}SaL-GlxV&Lz%2>M7hJEDH zy#DRp_}QmKv19iWC+S-i1Qn>RaAdxq$>_usoN%5n-rQ})x?;&V^`H+cD0@e$$Ob_P zvj?8+<1l#s;dF|MU*Rm=hf133wF`A(f@)XTtG9{!9_cGqfsid5PCduQ44r&=v7C@c zTvN>z)P6Dzs4R?CAWrUwmKyt~<@`1eI3IfTCU$4S48p3XBzXJ$4yuzq(^*}YMIRlk z4ywG%MvsYSt7UI!q16Xm95js)v=)s+0R6;Zd;{b$fOcA)i*^kitUt9Vj09b&`!`9f zrF?iHmIJ+~(|h?&s#PD+TFj6|2l(sr{*ZODgYLX&q~B6>hhl|Agi3jtVA?RrkD5?H zQgQL{S8IT7D8#Yexq!b7L>J^+Sz1ln39M(5>kZ^owX<2v z6dP}MPr7v{2e_UZO*~kVM4G+sw*M?mj^;0onv>zG>W^~8NF;SH!Q6vR5RdcMP&?JK zOV6Qa!%q9C$s#*8BFR}GRLs4!zREu{P5oQ4AI&9$XkB-wM&^(rO}@`IGtOz4a8FDS z?^12M7gr-@NPMI>$tO;@_-@u-(HR-kAUrwu)9wy@57;JHgPuAyRS8+eN-}MYjzu_8 z(u6NER=lXV$j|MzfFF78ayt|XN`7aLt|^@57edNJW!0|8jC|ZPqh!3Dh|S{fKo~?U zM=tTo0*tyF95`I1zX8@h-^n7Qitg)sTNNziQ6I^1wm>NYS`V=f+bl%gUp3H=MPW3% z7|Z`wi17Ge{t24~HukpX*VG9C<$KuuQ6$;pL6B|KzU3cu0J&=WKy0xa>Cz8}?^_~X zf@;7F1?F*6=2LVWOINZ+ha1j26#&Bux`s)-Bqx5!Ib=N0*dcUES*DCtXspw+rpt&G zM+5m!3Sy-uU=>qRKc*t9CLkf^3A4f>#ZxPq?a{pS)!R8q$E9xoNZ@lq+PE&Dl&}8(@tC^Kb4n6=mf4(2^2X zpni!A_Fn!wAN&pqI#>XPB4R^c*YV2n>*`tD*l_XTQM#o3&|OH6t<<$iV<;H?({2E5 zfyjl0Ei|F7E?~b)q^=k?C?8XQI%=vcw{*zLEvt+4L{zI*m6IBel@uu)a%&j^;iyH= z&L0&M1r7d|^(|J?bm|(X%E=J?6;c-m6oh9!n?IubaGKZhnK%WI4?dW*$??C+^JpMw#{mNCwkC!^&`>EYZy#8CB%7z!D000&ks$~R%J>u*yoVJlM2vTS3Qo8PQ!{aQe=uA(k+q?tBfr>Q4< zWp9m{|I`+=(hNuH4&wjgO7F#M8@M6G^7WLclQ*o{7Ire;)kPtsB$9|_+8vPvs$* z5zF)Pur>FG(9gl#upswY-ZaNX|A-CKZU3OIG;xaG+xG5G641%?H$gol&}yH)hR6E} z2P11J*MeFehKYQtg|6F0$pAzZe35Mjl^*-^2hQy8eofG3r8>=?qi2hlG|Hjkvwe-pL{-dfFeOJ34(y6cT zDAg&V2p$RrrNJ`^H!@tMPrm-}IKbTl{Hn~#mRM>U?AH#=q`2E9Pg*NQ;J$VB`ZL{% z1zl*vvf`?-fkBxutuAb!K#=9e)Q_<7Qt?#|sBxBq)Amp{?;AqrY_QRB|!>N=IYw zSyyF)5{-452rN?kT(x2*MwftAgi(V43LV2EtmxL=ggX$Vw0lZCBB^(I2Y28onBw80@e6{sp)2p`@8@ZtX|I|K%t0TG{` z(LUYJMi2n?r78m|+ur2|VkBgoq}&>)wKfV|nil!5oU8I6Ks^xnIVp}m>s~Ms?9|Tr z3GG)(*~$+$D__VzP^*=~w@gv`*gQO$NF)y8O>H_t{)>F@vxhWNbqbcF2Nq2Jpb+p} zTm{=t5CF)=AKesA2%GTE1Z51CIxHoZC#l>fvD$W8l|>!Vd8t3<(ruMy*zov?Pj(~b zqXjcKY%Xn?@ybIO0o8)u)UT`8H)WCk1O78qEvWEK!$tw7N5LkQ$){;}|K&wPWCdE= z2!F216o^~Y!J#VOP=wA^+hyM~879e`HCMMnUL+gK0}5`se>)JC6^!>&m17H>;tw`0 z+#lsK>=(N&N>UCdRz{tQl`atk%RVoPD;lG-t;-3AORV4@5tFB2uPXA#TG5EL)R{@_ zG~ubZ-&^?Yuquz!Do#UPGUMExi|H=Mu-B{XeJt#+Iz$xh?%_j>fGPNF@Q#}FHc;&> zc-M_My#J@k_yzA=qdR7LuumkEpOMcI!V_xtAu}0NpU?L-&6YExG{0l4Rrz4Re_yo2 z#PiN9dHrrpN9u(ml0?C4sY}xhmktqTJ&|C7zk|O}@7I3cP_B@fPdGlOG0TphC-!`8 zou7CnA zDJ6@hyiD$(4BK~Dnmc-2nE%J*hRC{qL(&FBfHL=kAyE~ItYfo&FbmDh{j*Yuf;50t8Pr#go9)&R0We$&+`WoT^Gx_);1(VjS#N zx)}^%Sh+7RMX=Zyl5wz|tabSQ;#B#J3Dza3@%-)vS@2_v-EY$iCXDz4NR8X&U1)O+ z`HyUq$2^#TS{_%;<^|ypN0rOlvF*da1j>>SO4 z_2@x=;VEtPeMaR?;@6-Gi-T?(bqO7^VhG{6hQ%McLgjnjqSh4V=~*^Vohzc#p@bb}?(BeSOV1Np!+=T9&8s zbCe)%`rFhtR8di6OjUd`Cv5nTq6dg1o8%VYco5H8LLyP9P$&g>2cRl~5y#_Z32%ah zCC?MMT^8?7?DT5b8m;~;Qf4=fNLoJJrV%gJlGQz@n1IS*&73+th!>=mT&Y2k%?i2u z`ipMUS%!OHJ#{0(CvD8yblkUjI6SJ$9^f@ejB`|vKQFEw;_DLg_{4OL_|6z~#9hUM zy?qQ~#Sz)a#YFJhTm0o)@hm@8V+bmLgeNrcm%CT6XqCl6;Le{}qbTpCswS2+B6Qtl z2O--QVHA;KfDiM;2Dvh#Uh(AiAIe84U2Qg%2O7hiQ1wg^zEtKpTk9O>#7 z-iyGLg)b}-pxv%hvVDDR9@1sKRd*&C0m)zAj~Fnsno?gR)8TGE#}MK@v{{&`;Ipop zqzI0-57T3a^~58zB*1sYs>JC|Ytm6|mHLX60ff5d9;{W2fJy8<{2uwbY>RWwf{G!o zJ3N?V(u)haqGyN~5qR?%+2(P0AowO&F$p>_ z!af+NHf1bU zyJGdTEA7ZMnh#IT+LKSnK&;u{$s&+$H?1}4iYI%ew09*r81Y5_=lwLeHr ztmQK!x7Q6eehJEJ1a(r)6X*#m-Yo&CQx4qkh_FWAUaLA=y<$>gnIOOF@^epCQYi%W_|j41momg{XsV4(A?7AP+6Iv) z*2r+lkj|Vs_}Vtqd-z(#gYPX`5c1>?3Yc%(FJ-BxA7YtkPtT$Jd~S7q7x~7)eyc`r zca`gsYXTV@&EMa_@;)Ba_6%4M*_tGsNhR#~*lXZD#f;D>v^0x%P%B0!^X{4K&zPi% zd6`>SA`TO<`5qm;rl}*Yx{$!O7GGhL0!)i?UgsH!6d0b4bRA}*nV*$@@+p}m?@jat zc;ZO6p8BawKRXs;6pcpy6F*-xGRqI`Up(K%VBztdf1THDsi6I(xAbx<4FMJ^z>}z?CydMLB|L8XY zz*$hBC+DA&*@@Z75G$MaCXrlKTx8Mf*6R{m(Lm6y*8zyGbotq57Y-@`f${ZeSah+G zyn6Op?+0O3pJcDDIs@`ZK_5_-P*i5gsyP{VBL1cB#n~c}H>E-QHV0b4(hRpku0=Q_ zAK_Jk!mzPj)dkD@c)k&F0Sw`Q-K!f8&j{9WX>t$9aLZGHQj}o@R^61w7|j>by6vtY zp1S1BGZ%$mwx1G5?E=|1?CRw27iZu%bT27Np|}KZB3HV`K`V;AX`$qi1?_V4o<^|+ zwk;ZRjeBKWs^vwvLN1h0)7n3;oZHFtg-dml7BCC>bQ#=;O=^#;d@2CtwyEu31>QEh z#$yseR!~bFXlH5!UfKq4v4iU6=gKod*nN&GNCNngK8D~vgwyiR!1!i{!QsAN349WM z5%@IN+q7T>e0xWTo^>^J06Mx{De840ipGPXw?1WSGy4AA7DM4Frn8RsnAtR7?cAe( z%mFeWFJM0vWr;6V`LAiwZEt+)6X4~k$Yd?ocoBvZS|ysp*Y5wpKt=e$t*?268U3;7 zt7034PAE5B?&?Q+U8fo4XR-x~7KD!@5eeC*phGUoAJeNy|9D~m`x2C@kI+r5(yS_0 z_N=UkqZl%moB6y~2I6>GXUXtHo*znnoG`sWc!~se%JpC30D;b2fBRoyCD{xLR69z7 z7Kz5)c=Sapt!1BDfM0Zx)!h5s{7F)00_Er8BY+c_GRz@<3vSw@_I_SQIwRFHf1hqg zW)Hwl_bDV|RdjC-gsu3l!1$Ay-wnDKu15m96DWPQL}NSLfC71)isE}!f`s(qp0?n( zPDjI-DcvJP%6t1XLBPQ6{93a)hN5(We#zj}3H;6Qe7eN=ZKO8qBT4=r@;%_RZ-5H8 zUAgn^wV)@Ab|FYYCFuCD`e|H-h^zw}SC-qOCPeIX#GU8RlX2#+_Yi$NhE>mdr*ZJ# z`^^NYtv5d)c|nGu3};2MArBxnCQp0O>`s($1-y*LkuGCb!~Ba#n)b9jdZWxhqM*M2 zBjs?dQ52s=N=4l*h;ab>Ps&d|Wc!T@3!-aW=&o8GS*rw+(Qr@sqGDp72=kV8o4`R< zRP(hx^jVBN86dE-PFx4p71KyHT;37czaWffb0ny`S7mei2J^|H^NU-fPrX8E(~e+S zsmS3aMcB^+;TLp+mfwoWKoYDDj_Ir;oeKh;!C+2eBP63?)2qp6?Wm1XkuS6VZ@nJA zCpumGVH?$|*C-9M)O?tGYA0!b{d3jLpgwrqlkl1tYlz)T<$91xA>&KuNE1a0VH7^v zV53us?PvBNUpt#!(ja~4LY>@ePEC?f3uV~AKBL|svqea4R$g3H zN>R@yVey(Y3XQ)|m`B>DFJVyW?y!P08Y=48Sb8~q%>wWUCbJI~dCJ(a>}kRi#ksy< zG4W(YB%MHjk(;kX9QK1$TqIOrw`(8&HI^p?|Ie5J|?9Z)8EFOsZDOJ*&c6;|t zWP>KCu{R-o?>FkEh;-|~L>`tYs7A&^y=sQ8LaynyMP0BHxxrz}uAYUu*=WO4rt?~E zf(#G<>u9R#ar`=);1l!G*1EL~`0$4sykeEAoi;MQKY^W0c=PfcOez zPdU7J?-b#+8__f?TSWA}@DLTq?2Vu1$+a)L?}Q%Paly?;ewlE1hhZZ4Zj^1-GSXh@ z>60&iS~c~7|M)1v`>*FgN7vP8y(>+hZ99O$m>0ORMf@g5$LftF5)B}x+R?{?9inM} zV4*sj?u$6{eM>CRTd6{5?k_*Yg#99!@g0F&DwKzxH`U(w`7waYM7>pmm18rc_=mLz zG#<}Q{&Juvit@(q6Lf!#;U6FjJv*9P3rB&F&cqLT(BsEK(SoJ1M)nEj+Q@PqAQV8n zV$3_bOu$^##Cu=e-Vs-F5JtTS< zpHO(=6UX_5WWb7SmR}fR6^XX&$_@Ay`3b!KL&Z+jLNlG_Mb%T55I<*4kF`tuoFE+w z-MXHD5cs5l5g1w?_$g!<4xs#z+8_T|=m||KT9gE#j}WnqR=mc=Kz^YN}?gCunU! z=D<^iPyP&aZb{}=3Sd*QkRP#*T?9A1JJ#nKj5r;#mqppBYBW+b473hEN8zF7&XtKKNcz}reW7t}a_7VdiTSJLy>q7M- zo7plbG{!h3ihO1&e0JgOYm>+Krgeu%5^1mJR{b`$GxySOw3DPUgVT*?GqI48@2LBa zoRJ8Z;(<-C&_x;;IuDSn**m1fI@!~2JAiEl0=^U~uP)?fY|N1Xgb*SPBSMdM&{FdV zi158K{yXx;snW>h(9L`v$A&nJI(y=hu-rJ>_$c(Xi8rDp{G%=hSH_l{s6o-Brh&guZ@>tABd+SE_yE5HhkuC+P z;+qMDLSY>JTvoYLneBBPFj8RiY7cTx9-sZ22k*vyPC~<^mi+Mnkk; zmTp~sUQZ)(cj*&tQc%Lpy)J5}m!465&3ThXBG>x%{?e*##M5NH^b{!JrQg5*x%o7v z*xRA4L4~;Wj4k&?mVpZUS#7=hZ6t9`pY{Yl7s!>LoS+t*GBt1P#==}8->tBV~E3HUWsL~-G<$q~d}anOJa4r#Pxg3Y+}Oz4!l zw?;a9bi^z%)9|jf6I{f3BNBKFhIQndHEK)(G~$nG>U91D)c{t3F-8Rl&LLcXs$%wr zg8Lkk1fb9HhMUoRsC0jsYuOCY@od-&$UufPg|c1ndG3PfO^l z|Cb>X1y7mpl+7xebB0)82)=M4-xzpIJ~tPsInLh7M8Jlck*+@OgZrjvV-X7d*uRYZ zS(2_G8%5*6UuPkH>U)97%|y^)(sRjV*r;7&JSrP{`L*9<_0txNf&neI84PNwwCgq~ zevYaB!gUd)?EqI9R+M1P+*f|T0By$VXN*MuFAG6!KOYWu6$qK=6|?LusCGsoVv55GLEB-}UBU&A`Pi-%HNJMju4o&V zLy$Y0U)`kFHTKgRn42BvqX@?-9L?N8YN;CXGNVZq3zi?j>=%`THtJjBb(M8FMBgzTr^ zX;_bev6w;TKl}DU!8&IZuVA6Yi%bmpAy_t${ISC5jq0LM=@b6JNj5{Eksuk*gJw&G zFM>n8DB?1Qff#lv@!SYL)6kh$SS!Mto{Vzo7b1-RHq??6*cDRo3+Db6|G2-f} z+ldLi@m$E@%m4{#j#(B^;P4;AQFrvcf?uy36D5$sXt)WL*y2_^XzW4#|5V-iLj zdacYLFaPbp8Z~F!etJe=c#e=DNc=0^Raw4E5C3o4f7cIm_DFe66-@1hKqJmkbcN7% z1fS5|mQII7d6;lXATmW6anFxmR;Rr!qieI}&Q=9B?=W#8N-~t3B*o z4(C9?xVeaS5#wBmUgEPfzenH3xNVRJ9>aNFw)NxL-YRQkajBp9_v8))4lf+M<}YOR z#9XCAVpZ-cSANyMsV%YH?)-M1bQQc|uDqd67~^U;!Zwcb+37J#?s|{gPB$S`$XG5{YnnBFqHRa<y?xSli zmdQz6$~}m~t%6at(w@{{V*N8(6Bb>@cuDmKo_ILCA@4V?_fbU*Vw0>=uy)PZZ1+T1 za#TZ?K_z8C>JB4|(05y|l3yPl_{Sg#UUUd z-g60D`f3sZ^zA3ujF?(M>N>Kzr;?v`VB#OgOKD$_GfdJzkq3RA+L?SxZfjavw~44~ zw#caci5IYW8GExGOK{fx$C1y&y@#1;bGRlIbG&JqDMZ<4ZJKws4q2TjjKqf-@q`lr zgX)N#^3l2(g~OseVZ?T7jBC!WJ`R=?T4nM#EqcGqdfOS$63O#rGlRq0ljxx85950* zOe`sh4F?Y!#xnb|4GsAmqI%b8s^`VXdq>r%v5%TE{vg7*xrudKYVA*73xtUE(%0#& zSiEl;PyV2ifwdY2_ve4^72;nP#`Dsq44ptZwktve^h>%TSvs`#Ymrg3f`m5@6W{85*Mye#Q^=M!9o@^+J(H>=JSV(4UWgb_lQ*8GPDRkclHt_HZS2_(kkT8#7NPLYU1#Sc8^r|ywH*nXS8Lv`l=FgSTL zBa7@%-6{rw=u`iM&%R)1Dr3q>(D54T4Iq62iAMKAxkhcF)ym( zQJ7$xjW9DMx<-DWj&g%c_}9Q{+-KGBB)#OG+Y@@+zRb&5j4>Xsy!&(PwtJ)a&Ua$=5OyamCKg|uhBug!qgM!&0lhH<)>SIcxy0GxsM4@1pO)|Z0fYv+Twgw znkOX)p0tesI7KDCw(C|0LC#S_;p_&tIi@{qYWwsQKV`*CE5Uh88VHbKnT<&k> zZt==3=bLbC>8L#ehJ)yulHHj-3J>fQ9GWV2bE!yxrzXAXBpIjD%Kl;D7#vdarG>y3 zOt90j@6;-2yZ1@e_AOE90n8khyr>;7#FFaN7d%h-4NHIAkZ33K5mWA7Mg_dxZ++eH zpxX7$?^8h%aigbXC-wx#L?@G*@TCBqFP=544U&eAzGgoXxt#jTHjv`S`4(fnBFP;~ z(p+%yzfaZ3c;@CzgC7$?W8O@PbO7X*GWqNYY5;G0ILHRg;i*wKtN($Vy1;dvG@%F> zSfiOvau?AxVxeyZj=EYs_f=dvwwdb`Ed0_TYz^eD$6St5rmVvC{f)ZgIrRcJ%OURM z(x-_)#nr;I^#LC+oX{;ilY*)_>$8}(9RkLw;gs;pz6F7em<$02RzI6v<6><5`5ixdhR19>I9w4gg|1kfbS1iFo`70Z^GrsJ2P!EDs2d| zZEiPL)?-EkL%h*h0P<1gOY==%z-4N*4@Q4*pJftEEs29*Ek`sL%=Amy3uPI6x}n56 zdajlyk3ilJBV!j;3G%V<>7tU_%9>6FaGHKtP04I1)=s5$288U(JdvfGo;R)6(k7F{Hfm)$#CmB@+Lw#-YEOP<)ldx} zZW@38Cd$&XCRA4d48KLxV7QNLi2)b|HfXQj&i5;&BkG?X`CA9R-T20DPr*m6@5-=- zYqKkRB=4>b)`FL3j93Q?I`K*#VsS1>P86DEc*fi)!CdDZh zHTvl9gSYd!$VJDlQp;9lh!vW9lqW#J1%~BEn<6^D>U%cCyTJf23iTT_Vi42SQ3_cp zbwf*kq_`E0aHAkKP3qyGx6JuX!oF&~)qY0WYGjv3*4UEwmOvy0mbNh4Uze+NU>1Rc z7#=p&9&~rbdHxMgpB|KDxTArjh7^my29V|q?U4vKANlz zhcLQ&ofyAJYG|bVFu)ZIu)%4)t!qNG9*ffvaUvcJ{ViBmN{0{~QIqT~`Le8r`ATg_ zD3n);NDG@LLSjB|xe2ejtLQo!@NAiGYoAjAqe*J^a{(DeE+ChJh@OnqtEjKasy~jO zHI&YcQ0~?teLZ#>l_MJPDATUo_ZRRcacL6eN$kHB*?r{BmEbG~2=40Z@P>hP+1*mA=S~^4N6kmbVSw!@b81#o zZ9i{Slt&jC(@H?xp-6zd$ELSzoOh=0tvM*UE&Y;Xo(anS?rm@m(x+;P?m_G&v^W_{ zguzK|htvgE^`5zmLemW%H3umRW#LscF)OX7aph!8vO6G5;z9%McpUgy%HPkXcdV&| zOsyX{BzXI#^L!MLSQ9v)$w{13F(QFO4p+Ul(4-Y3^UQZbQ`Vi;2vURhn*%=!+0m-P zHUQ;>yTr)Axd}AMAAPUMaQnEqX8-+viBd+Q_6T>h4HInZc#%UP!RR4Ruywb0${iRp zW9r?+30?ZZgn-wIf5W|4nr;KuPuALn%QEcqq8ELeQWQF>q0<|%kisz z$GDk`byNY;M~s@4YVJfhZN+qCawT+)M~x9Nd*n3>ULj=#@Rqpn%XoQ@m|t=GxsBTK zi>SA|9So)7Vl-W3`L*92crW#RUccFQ`oWW_ssAm4M>qm@NX8ew0Ok=>Ldf7UL0Vp+ z)WA7GR+AH^U>wc&c^sI!n~Gzt0F89AfWeB<{*;!b2>hI##$4x}`xq-7GtgB`(1UE$ zwR*nqnF#C7tREBI*HRuO6-3kTY7%`!U1M!rrKvXu;UuttW-Ru@Hk(nPE8|FWWf249 zid(v`c*f%rs$RWE7}B82z7w9K#sFQnvBzRu(KckvU*Fi&Wwd)#?>-{w7*dzbLM-Nu z8g+-Qhx;$}J+xc92>HoPZ{JJ{K9xH|PMNRK)W3KSgGcAgQ;o}SOwdWOUNr+Zp=qXh zSp=TMZlw8G?j<$e@1__GHs)WZL@On{P?gRu;OiIp;$ZTApZX2w8USF6MuG;hBTsPO7MXv4X5Ylb|$N@uNduGmxZCv)~4pAq;0z^?St$B}PZ1 z^5bYjQ5m_Vv&sq9W+4^{3pC1vdg@~^*1B_umKD{c{)Zb5k9acXR#T6ysBl|QKwvXGH}LT z;#u3Pt1zS;wr>-;H8w4URmzuqecO+{oPVoO z|LlD~H>L})YG36$g*d_IZ`v|OacQi&9XB%il#`ld>}QW)7$b^i2br=Sx{IEl4klba zL$eytqY%{vTGJK`!R0=)toCGp0Zk?1EoiQ%G1}ZBQQ8dM&ToHFV0Z3vjC^jNew}U zg<450b=ZluPFC%_UL&xkyr$SQ-laP8-9tl{+bEbKt&}}p2N{Hio`as{B?SwQ6ry0p zv6xZJc2SK;Ju!YOy2MT71CoiRsj?4KOWSNRK69Y{|>>HUBEE&E|hu zj3m+yy*wVNz0f)JYSdpSClgx^W1KhZbmG(#ki&drPNCC;Elb9y`}d5HWioNs(bdMV z@z6ox82bYmV$r|hRvjW!6c=}bP4iNF4WwS0)iLE_`(>#iTV;_Ar!+?v_jOMX z_DYe(1>5+VjGB{Yj*fnp=WH@EnDG{K1Toy1u;$2~q~&_zIZIW2fvU;g9#=NU9Gwru zUbO&QBXu*DsjPWh=A=$g)=~9AI}c!qE;7#EGlY)^MqY6&$$!0x{7l1HWAF_Mm&-PR zS?3RD5eoJpsxa5pw^1SIU*jes=K~*MG3)&Z$~*-G=1JyxDMf`T>dvG!u{-soBF3LS zapNV(f1ifCQ04ozMXraB%@0zb%Ht=E+2)+8>3e`9pF0F>{$|o&LLH|%9nlg2)it__ zM?KTnqv+z_K#dl179H!zZHq%&@t8*ZLlZI{`oyp&mT#|_LY}@1mhvZse`Ki8RH@M6 zGq!};HR9HAl^ccVacpbP7LEo}{z?kD{ck2wC?!-^pW*tbB6<-24T*Q2QHuqgYnsgT%(mpHG>h@1mk*tnJwJ zV0$7o_|X|2Ls*jO%vxjLtfFh*!0dR>IMG@L6-f?~FiVpRnypr;@)nuH3nDM@a94n+ zCdCU*x-G{nF) zS)~4K*eqhQ0b8Sz4C0c*O=^m{f$;x-jKM8sXp7-5I70ih_b6@nLu-}XGCI{*O4Gy& zwa|fe7-e4Laoy`RG`*eTzFPv=US^b&K79kzg9iG z9sZQB?Rr%HeDM&v+PHj*$TXv_`hsG%Aeknm)QvwDPR5h$_VHQhKy87kzJzf;;G0El4Q)-4Ek54+1v z5CMZHEPFj;$N^+deVB~E%A=DRo6Xx!Faf%7lm!_;MEQLicyb?dMmyS75F)vo+ zuxsnqW=0TJzB~-bz$)nvJw+R!>u)Tqf{ZK^+{A}?khW~mp@fMwz{|CY$;0N>Zo%p1 zOR?MP2H~Bk~qiadIScW>q z$q^72Y=jyA0>O?<&)?7*%t`3IR4w&0J?+vdOlQpTCI8 z8wV~;$0)kQc(uLyxe@h92`+d~> zC0!n}Zj7=_EzPV+>V{7}A?#W0hRZcdJBH}qVX7?~_r9+4kM6=_S$#e}AwhE~tlP_& z>}vW>bE=&mk6`8dwIQTA09O&;TaI241A{tta`fFnancm22J8iX)Q+I4fSpJbhy@^L zm|eEI>t-N<76BW&f#c~7HXX=2VFJn^%TD$a&QQuNCKDrLvqZw3b6_` zp_CotO>jBvd?9PSVAtiO_Q)Dw6cE&8ChL`b|1zH7b5APXof!i~Znd7J{n3^mY-z&> zrW+KgZ5#}t)k_|{nec}g=Ghk_SZ667>jHI-(Xe~=Qy)y<3m!Z|IgfT~b`E<3$_TWFS(-SJ%1mEaNsb zL>B~!mQ^;;*jO-IFVXciv<5($97Wb89&N*|Q%S3V+s2)ezd@C2j?u6%PO|^=GGHXA z$r2nSh+z+!q^ZNSYFpvf(=iPBsy23QIWM#6!Id7*3$J(dm6CRTzQIXDLCaI%1gVmn zukp{GALm;#`g#+Pr$ZeaZSYhGD>cMaa8%9Hksl5+J~w=-fFiYUbVaALh`aO2_jh#n zb`o^aU4f+!IE3Jlu$Z3RGG#e@?-<5}Xc2WbM%qrE0CqzY61Hr)ZL5kzFsd6$*rtgW3THeMo6Di4v*WJ|NT>9pFdXdAl_Uv=7=FnZ>nolR zIBtiEowr4!9z%L5b<=?s{hL_OL6pTw6#sLk;nq@E&+6Pw=%a+3# zV>gmB`(T-bIWBB)a;?>s&F)+>m>zX1k{i(=4(%F9UyP+@z*qY9%kbcb)=-2CbPt!iJvR0qVo{WWpOU3mkb~j{lfZKMRPMG~%4{hd zdIfx>l=CK-5VAL_JVc^A@vilW%%ay!=9|&bd`K=H>yw&)j5ZEF zCiqc%|8w?ep{`x0;#amPRe%gQy7cUz1=trHghY8L;L-ztw0m7$E0=S!&X{X`8ismm zOK@l=1Z=0sPooYBq$N>gq%7E@bczRZ<3BQK*}-jyHbsj>!1R1N zGB%Zp-W#IM!dan{txF6T_ZfZOX`&;48BUl`kb7|C%fGOiS9(`?qceb^Cj3(h)?o)c zzp$%{^;^oyVSNV?JQ#OF?pT?LG|nTZ3I9#lbNNk=9a(h0i95dJfZUW?J~kup`?!?S zI%Em>-?M>Av~r$@45^$5K4e$Uu??;_b7CVqL7&|AbnPu;clMU=>N}6kz>_ITooLi9 zCsI^}x~l9)ZE2HI*8a8ZCJBBwXbOY(4Ywc97D=?w{XfE z-mC>)qhZlF+5Lz+$HX9F17~y-)zu!5FEB7e8@*ic2t4A=eAn3@1VfGup1m)+o1@TM z)a3Q;*VN-)rsK4(;i0okkggXtDDWY<*)fgzNzYVcNi? z=Xy2=5C4v8p6hzItX@mcFkWWJD8MevPnDaj045IfY~Y0?a=Cl}D>(P!;ud}ApRSxR zQ8-4DhPEDQwe0T^lXeV?XS>U5-L51 zaxHxaELt0&%93S>cmEjj){U!1P=B6oY+agk>ltqSgnp5({1*uObsmR`?_ZNpIQ-hb&ntV#qyi%a=w6 zICC!lnV=*?!}oYT{CQn-1zv<F^#}uKd)XKL++zs@tm=TZKYwh zr?DVr9kTQ?T3J5dwWoRG)!|d_WQ2zo(BwYb`=Vd+m^a%M#507~nq+}51zaeP-0xN@ zX`TmGyy!s3E+Md#?=-c>yie=bFl~FPE0|4DU!bzbkZgbM9#hjI7eL1gNEo3$L~SOV zlRzT^Djm<1EJkSAx1UBQv*L7*K z&?V8qW#VIWEjfhJ2F6Ng1lDV)HRjtNkMiTDLe_-f{a^QvoZ_wZg|Xxq&-s6XHm8gu zw8zX`_U5Hzi26A*{*})^O_k!0nZn{<>GlSl!F6>llT_2vs=pJ~N*6ePP9lETYL`Nr zjkUeqVRtPuKRV^YU1d|E^V`OFz!A?{2>rbVH(^*=-<|H`FL=W1{Y5G9FR8XX$1AEZ zS`*eye58+R=61WmZs>3%FIuG&F_m&Z;rw}ggbFh#L5Cb0A+8$p9Sw8eI&}>tP{{ce z4b`dk?i3kL(+8;1)(}<+JYhLzVuCwa(b`y15zE0qQv$Y-#J}FRj@s{^REEzzAByO{ z4+#&y)j1=}!L$Mvz_O!!mn#bog{W*-p{w zz@ofqGjoW)olCclY_y3oRC^#)G-M_P$%Vh36|(G2?h58$riYxIR$&8Ertt*Zde0eT zOLLqzAy>yj_)h*CT@g@kr(dSpXZu@WXE0xPD(%SV(RHSs8CMrkIUAharAdTuYxE;} z;e#NYL&J^x%d+l5tf5Xr0Ti3_Q0F3e1b4h@M|gU)1;}Q(!@9jM;j#qab(nMd?J2QAZxp5NEu} z4IxL$*K!~S6I`;S-ZgTlQG0$}J`nf}{RE;d5=dP@M5SHv=`x1J8lFg7T#^ z^sGGCL3c>KwPT&?@tGag!5Gyzl-M$;{_X5-1)~#zZN7IglIq8xQH$mb;Tt%|9uRRw z2MbH!+>rgzBBv}ZJ7-VT*fpiRk|1{iVh`TZ8I$_u(Y70NZ8q!4?GNLbG`u`_gTi0* zpqrgD#5zQf0U4L>W5WAek(+4;o`@2l*9dm$BB`Px;^upx#7Se%zM6o>T3Geis8aV6 zOteN@3r{#%roz4No|Iwwic$l7+P9u?`{ZDBIC0oNxn7t@OB+@455s+(Z&*);y-j=9 zuDK7lmXGgGx4IpfAZ6kkSBW=_Qxiww;YD88*ZQGS#`L}^jO%sAG>z)z|2bv?KQ1ob zdUGZe(eN~_s*d^aqZV?{kDKbgHS*~*ydO*>R0|rCI<<^0Tx(!@h-@#`(qa}!?s;2j zEgKs8af`m<^)QMU6M)}{ib^I~wxs`l*|%a+(s-Nfd->9daPefVD$Iav-g$CO;aww_$d4=j)z(eW64gqvdsWyvsz2 z%ojX-58$|Gnu3#B=xa^%!ge2{6lg&?>XYF6n<5LtqD6iq8TS^8^eVv+B`93LRXIry_ja@;aW%9HEi-ny zD?99iY|8gNq4T&1aH3wH&iZwwvupPG4MnJfvkZ|c!k7^DQj-AuSvF?#uIJ@6{3D$d zI%KS863UOFqS_>LHh>f0WaEP#%g@iD82&+&u_;G`N%pl7aR&?b6c#aRI zux(a*X*b522NPp^ey6|EdicC3U$$~6xrD_#QirnVCs5KL%V`Qn8BqTmt{f}&^C*H>jzk?l zmJ+qOM{+9h;?v-h+cZNJYNCGjCy$&9S}I}?B1W^FHflmz>SgwS-P|Cx+?6=0=~r=Y zwF(mJgmhObyBxBk0K*K>eJTuUL@fQ9!U4&kJE>tk*VXaq07v1}JF0A{$u-qdjTP^j zeA%)s%7k=#(w!q7xn`KGtNY$`DVBei{Ou|!eB7#o*JVPkJ8egVmK^4RXd&->!vZb( zgBSbMYi8adzaqzI(r2VG*|>N36Rh<0Iq-G&V`<2jtP~FBse!o@l=}|i7fp!?D-O9TP{x@yY`Q-I`Ol#ZVkI-qjCy_!z*`+>9R))d0b1e(pazqBT`B<%o%#+Dpjck0z6O#KIa=s9?kq3;w6Nh)-8`twR+(+A zuN!mob-Z7j%9qXH)^UYP=YYV$w*t1V<(0Je?fVIn&Wh|@QR)w22sXeZ{0*~Ts!^W) z(Tl~Iz+-tr;Zg+9o0}@+;zv-!?+-Es^d_;?3TV0kh39ZH_8I2BMks!@RDV@+#RbXE za(P4xkBLX~T*)o&T=wc9F!*{%M=d(~*nkb;y+!k4hVanR2c~gd67@GxP%L@X4fUXf zWi&FX6~sBRA#3K{CX&fKV`Z(}=+K@1+i2FpS!ANP&X&MB&nO*vr0J4dC?I63FSh%% z!Bb8;M!*IiH;Qz7p&`BjfNOy5e}5a|1Gf@YA^EtN9r^o%EY6^&LG(qE1DM>FISt-$ zr^o69-=H|UE0Z40ilhNqIh`$bmv94f@pY3raZFHh0Ea6Xb0D%uVF!a zmByGLTUl43hT05%F@M8q+FSY@vKP@5Uq(+dlG&u=?A>n-fJ&-NkwTHNd~}oUW!`>h z{M#;vozU>dcbdJOuAsRkO~TCn3#RsZDQV#PsFm!(Q9PiQJ}mdl&{^_&E}r8lWSieo zoZ_rbhNC>tNc5PoM$V!r9mw?YQOZ~7i!8O(pGsRwYMxa{gf!A0eOcOQwIRP;J8lsb z@bK}0eRoQkdIq+SUz6{bWZEkTHFFRFpRPA+PaZbdK}Cf?PCn@+Yvr5^_5FSHgKYD0 z44Q%Ju7lh=p=@LwzYe+2fjhUL4s14JMFEk-HKZ=#V*ABHl1b7v!Z3Yg`C?iV1n zw@%nW-y<{Cac}g^rE}+f!&VF^EaR~5!o8Nb$>YNO=!IHCtsbx{m|Cnv)L_Wz6@}L3%t)%d$e+6&L0+6u zTB&X|qv|(k)og^i`%v1CDsa^jxGzX@SoCJ5Y!c(+d#E}c+Km`-x!)2=>y8P-JmMx5 zep?Js`}1b?+iCUbJ*A3Lf;$)>t>$o+ur*B#PU#j021bw`2Mc=r8!4!gHe=Y1USkITOh$Kx1%Zl zhhVBTkx+)W_DY>CA$#Gc;Z0mJ@bTck%I+a_oCzmenQO# z@y#WGD+Zgeb; zr!irvw*8K)x^Z=>-| zr39-_Y6HlXF=V@i8RgZ#EArW<u{Euk_MuxN zLCi5nTOZ966NuS#5CJGcVO?~JT&`lL7!t{^@$3di@mod}m@tcjQMmx!|JZ;~@*Bbh zq;WU+n2%UfWuTae|2_Eo9WM!8uBJLM0QD201EnVi1ph8Ec{s>dr^rBL#`n=RlW|xl z`8up*P1wcMBlj0!)RR@CC0Hry8 z{phkc0^yQ{%K0-nr}Sq{X2m=@5iIsKOTaNtqD>I+eh&QV3pX^hdDw8V)SS;T4KA3O z3W?CPrYh&PO$#sWqC(M-#D^d2gwxBq9(*+ka{=JPt$YpMU(V#E;GUz*#9S1CD7yn^ z8Q)#9c(^=YIu$9-<}4et8>981H}7m^NG?^+{r`(EP-I{8e_1~x{kCdz;49=?+p16E zKD3NnFP_Zvs;&fBi1Cdz?IWk9E-IK8M!n+OPm5@z)xO$DN<6S2if-)4_KhGl zVh%erb2%sA7dULM&>6KT(KIyC5F-q=CxfREQ6{=D5>ZJRk{EvuAi$$Js+53(v%a5h zg6X58w5GCn5VZ~1C3TA*u59A_ov!$Y)7oGb$g^_QyI&y@;u_R8Gy}5CbH8E3>@_32 z!Fp0BfGdp|cl)icP7^pg?iUsJKihzpVW4M&ZQNI3cs$;}*G+3e9K*!ltabD0R3C6Q z9620Hw4v~hK~z%yZ3X^Cn5VWxN!@#E;JL9RU5iLKa7^%Xow=}%=rh4;mO2q;jbBd^ zZB`W!RHmRk3{cOj{x4LkorM)=qnM3KVW}#A3mxTAGRy&50yA=JDI}41|AK6WjXq!)D1*#{@zKnIN@HGPTkcF)WMdU9Z6 zHmp0gEEXkK;qB|+wnFX=s{byuQ#~GmLsw;<8);_ zT-5DbNvvdvl8IDmIdKPMtI%X3k+Bs(f&<1*&xZy-3k53S&Rc|Lo>5Z%9BfF8g0=f^ z!=3y42vPWg2kWntY0wa+i`fxj#4z9G)_2;=C>i^Nah^ zOgTD~CI3oZ;k+4)q{i)CvJF#pP#jEVT={%6E7%q;=;XvT-m-flT;-~DW%3c3&!~jT z7g<|wp{wPH$>4%k&%KyRZc6!KXql2vj*}4Gv+flLQTDR_H5wEUxaHjc= zEcUYX63RiwYc2GE-)e^j`1;-BCS$!P7i?mC7w0Rj?b?$m-C3L-VSQdXMc+W<`Ecj^ zvX+O}q)nGrJS^qbjx}Fsr&OJ>9iY{B+8$SMH;yR@m?)2x(J*B7zeR*wKBi$4Uy@Q9 ziQqLB?Go_5lqt|A$R{F%nbD6WW;|<3h}?l2?XzPqdH5cu%Sx^uw9|PEAPxtWJvD}c z8?lv9`~Ir6<}1U)YBCyTtRNr74s|*ENuGiZ`ELXb6Nmu!vsc+2L&Y*Yqhu8v zSm|ZpRFR)ohG2~41|hRBCux%31bMZP;(wORUJirC(uXY=PA2i6+^;0=0kL$8uJJr3 zLtzHCiEi^l$(q8V{?UH3Q1F)kfHdtdrEeQuzlsZjsG4GnUQ|f8)gzv#b9-(dujjv3lr2=WQ!_04?gmcP^hvH&ZLdh`5FqAe$vbg z?*xQWVrGEz2l#w25({hAYMtBF>?{goST)fT3dYR;+GD%mBh8X-vD#UseB|LsED@La zlwB=KzFDZ=&||~YEqzB9M$*_iSD=Ur=VhUYT&;k4p)t&y%nT(eLc;*eYL=$INyJr#WRtP(UoJ;_oAz=)>fE}Dyn?Kb) zZ>D%i@yJwUqsXCUkK-Qg6-Yj=hqCi5iI+5H(|YAb^yD_0*O!FtI-H}fZ+pcn0(u7T z=$5qQ=aEe+O_%?BH+Ch6q=9B#noEjE81x%PVxg^b=&Y%$W)|%+tXZiRBm5;H z_t?1R7(o;v)Z?copjPb2NS3P#?@BQxn&Il-GM;b-OJ&tj7B0&|)>4Wa%=yN+@CPn=>KM zjUHk<_qk=2CI^^pgxNUc$PvBAFGO7vP!xE*Bi_%KcqJwQ%)`@@PBKRMCZo@}w%rNc zhLjwqbKC%42fs;2Zv*~bT4U4#m=F&|c?}+fM$8VnF+t$ym6un(IG-LjA>$QE^s=F+ zQT{lkVzM10Z<@f9Q!w=rw0}#JI#}OOdM|Hd(NR`G(RN)Lz1|g+A&!bY8gC?s>Zw*I zO_2M#$dqqs-Wtm0c5=o1cW*7cfG3eTq4jna5!h&11Qo}Ci*6AH7eW%lhN=Wik!R=t ze7UFfS-{H{Zk88uop22!v<05I1%i8`hnc^_fYfxWuXjMbTnx8MF7=b#4@*B<(Nzy5 zRze6aS6Khs>%$?KxP_~)v>o8~QIu_AJ`p7E1(YEnW>I|%lOOS>yd&gjys-aU???^iOd$|iv$BVR zu{8SB1)J-xikqD>ZK*@j2iCDOc~Z)~r_3+0 zMt3`oIGyFqPp2Jg{p(7I;z8dVeg;QIwI&!7P^#n$)KpqV!2(xjfiubNO{JD0b>)z_L<3hhc9Lz|2+ zdO?1&@^UsBJlbH!o9Oo$*MNXj+bJR;9@lHVoYW*&sYE+R-fUP5re0_#a_nVAti4OF zipzCuV;FpFWCB+qzUx&!SB^}$WAQ-B1;>9K9hv@%&T^c`*)Sze^muWshpDZ$zVvzp zUXI;N6tu4Mv~!Y-@<7f5Cz)JH>*dY}u|iiacm@!Y8byoaIEwcGtfS{sGLN$I(wTR~A!U`;1WQnztzL+&U^q>9}cArS_p^gLW@N4<;{yoSx^zTXn=Sja6Sj(xrLXh4T{Fn4ChEre^?xR`NjBX zNp*ZR?T;WPvFUv3$jB>;@G-}IdoUijvHv%8j>wkCo%(dmn9&_pGkbS@k}p|cr;$o` ziwgGzaNabo^okxwHk}{;)Qz&=gdWH%_{-=D;vR%ObEUO)&{9Vy!9LW#L4RBc>0=ql zenVU7v zG|}~vog74MU&`)}onK>29G-@kkv6+wDOsi+)wBciq~R30?G4+rJoNuW$MGrbTJ-gf z9r%OYCbZAZA&w@7jD+3#xKqem^Ag>E>YdgI?0+S}dRl zXZw_?r0^Ld*`7V+vcT4!IN&peER3d&foHA&&|<9V7eBL18h50?L!V>p3AVlRTKFxl z#X`la{}V1~4DXma`}`V5QR;LO(X+_)U`fApFNd>R7f`B0x<~W6e4o>>R$#`RwMK=O zSt^|)Tm288xJP39KgP)j*#PTA_+2lPLdK?vOWA?hOK8(X-s+3vWwlENSY5=4^xbPl z!EztGdAA`bwjJuzNDUYhXT;5=hy>338Okr15LFhu-;gMu&%XFpNkBkaXmPVo^g-rN z;|Hw(I}lvPd*LRBA9wCIngZYcS_PDdsa=uzn;EQ|q7N=e)Em!+3GazhLHlVWiDs#h zrj#lFa-KF?LAFplXkQ0;Z|i7*QwHAqd*!6rhR@I%Af%5J8TAgUf=P5=$Nc=|g`?%M zi0LukLj5VL@xo^S}lS|<0ivNbBYB@B)|9Cq8- z;k~#&{-Cx+3tIf|DH3h-tN|@Ubh?;Xy=!&Z{knEdpA!I_V*YgWHJoYM|NF6Ex%Md5>-0i!DXlA1Jk>BynW%s2o(ffp*T5zUWq4cW45cMdv+RE8vzr1^lDn&Y>cW zS#~*pGC(rZLmVnsH#OSvSo%Fw6z=>p-N!T-B1bcQ;lj!>>Ew;5!Xj_Fx{o;Cz?e$Z zc%SDaQG+k`1!cA2N9P8N4ixE)K!h@Hqe)YkRQF62={>FkM6|KNVw&4JQp7JDho|$M zbnD+b^3(aZ)$w8c;pbrNr)3QrHPJOhY-D49>~g|K!i2a}%EU3yluI+WfKp}n>s3+k z$MQ=FeH!JFQ<3YFr~|^uZRRroTP|9EcTgs4G?VoAF(Q3sDaV8fShna=D=X1E8$Ols z`)ue!>StIwY#rJNFNj@R9+EBkdF(G-$nrbzBVvMurSg$_gkBM4N~&?H-A?mBy9Lif z8^RNQS3?rtz*iZNk%Lwp-^$R0ha&wwm=QNy^cD(VZgpkF+}N-pl|&@~ZQG5oHO-L2 z+7_TgIGQp&83Iin?M{W{ob$@%nzEbo$*=`0M%MI_m~Nr74UONHpN+r6=HBiq?c$ha zDNz@eI#=lw@iAf4kMj!pTrHri$M$SS=eX<{N1ntDQ4!_4h5xt?3ZleR1WxV(jnz+2 zfCF<9q>8>F*_l^2cNTEDy))I|ME++G1Rz@XM0zDVvVSwZZkha+gXAN6uuIEv{=4X-^=cPoP*eCpt=}fV#zqfC2;27hyY(lG006xf6vPh(;!j^t$E)j6T3uRbB7H z0|7?i6O{6gpvH5XcjuydP|A6cBt@^kWyd!s#HqKIFeT^5uT~;u-i{;urvU_l;*3WWjrsM+19VU|cxAIn@*4 z5*X_PuiQRT9(P*PFBQEZt+c@6U~Bep9Cm}HP8IH7z7osQxIIX$;CCr#{-brsCNK^?;bf(B(iTLYErGB*@LtCt1Y!(UgCfYbM@hk zE}bq}&}$jIXDkAqA5=ad2*~YseU^X2^|WDmOG>UA+)aGEzP&!j!MQElaxdMojJ0eY z=yFtVb6`Ib|Navjr}X*hz3a+TYfLE0(E=y1`7$lGZKjJ?lo6M_bbV956q-IwEe_I$ z)QPwyI_1^$4AtzD_0^j7P_L?Xwe3c>)YRwz_B_wo3!(;`drkgWEGQ@c^eGLg-kV__ ze#S!j$3`Qr7S|uWa2M`YNw^kW*3Tc|uv*=wr{jubVM_zM$o44XT=A zU;ZAYODHObzwYq;fsrU_Q@;20AFFWHt3BZO2NI0PBq3Hjp_#3A>%dMEr&XyfeVz-& z#uAKK)P+$lMo?LIszm>Cg(kO)qv61s^WvcuHIXDjYUxgC8@c?o{N1J~6Hilz(onS! z9n@7m;Ag|a@>^0$Aopm!CA3$r*8mi%*#sdAjI|tA1FgINH^h%OB`V&=!_Ld^a;%HD zjf3V>(BnlgsZhL=Tui%(1rIVt{SUy~o9MC&&Ee@+FS$-usD1Ie6HsSvNo}`#dJOo> zXx^CN$*gosJOS`WChPmu1LZ(H_nMg?YqFheyJCW*f|$iUN=FXQS@Wk)x3=p?dkBA* z_witUhJC2sqb<=*5QN2Qisqpk9TXj^6NRM&WszOU9#;zzFU?3GVmo!~MXB$tqWE8K zbcXZhG4v!l*uK9p5L=e^j71)VZ_j+(!#(F*zECCaW9bKY*Y^!2zA4_+VfiaUC-aYh(3P@jr)tq53P_(yX0_c_Gbu!}}ot!R;i6?;`xC!|s zWJ`K&-T|VB`W|b~x*==++s=~+tz3nfw5nF8Br->xQ!vXaYx+2*H7aYqkW8qC9opR7wT6evwi0wCe_i8Did1?av9OXRBpX9{x&cFiDd{1wx0G=} z-)pnHFas|~!{XE{JU-Ly(B>&v)t9 zeWJRykJsVVZb|Hf`m@PK0O?`Wa)eF zIoYw6UnC<L)CSq?Ms+kV5KI#)@ z&cn=zaRQk73i5ImEWGnvUCs3VH}9@_`=9Nz+CvJvpsYcp(~qjPrnuRgCgc}eVma43s406+w;7)I0)X+B!Q7Mo;0 z6jDh&?1%ie(X=?|hB}g2fw?2Md;3h-fmi;w^Boa?Onopq(WgRmP8gCDs?Etc3Un?a z#F-s2AzMT@!f7aZQFSc0?=2%*t-A973Sh$W+^2RslM&S!@FS@(@u zX;Y;Z7c^)6x~;co1E6r?O-UIVgBIv{l;2u{!*$T5DM-R~9fg-J+7U$z362`10;wp? zalM1)#}WdxDWyD#Fz!|4Pz}9@M9==K9q2l26HI&hLJ}mMP!wNlAxa$miPc)G@-MEAzPTr-@>GF&=iPqJIR_#wNeI;dFIfiC z8+eoVw9P*$3dN4!E8`! zbGxQTCCzV+uxZFQ_KBD-*5__6UeUD|jeAIqhvLZG`PbzX~yf zp%E6^PiSxE9K&_%*(vR`Vrm&P=_vXU7o1b0`{bTlL_cj>0_3<3Sh`#Miu)W*X_(FD zSI%K$clqWjgzHDrGXs0&rGo%0*@zfOw<2dD7K6QKlo9oDC*=*%f|z6KEcqjQ>162A zyVLqE6a7=xyI{gNYOTvkt}KAUHL;tZsQ9gGtcO$4Y_8E8$b|gxTLH9eq~((_ic9^N z$yscQr|4u4S=>9^849X7`-@8#fvu)%vwwsA>aTd#*o zi5X743Av#QrY)1vQ*q1ap!$mB{gueWT4&CDI7Ai$e5jAOdm`q1M&kAy^H#BIz(Oh( zA1^YeQy+}r>(m!9iqld&XqDRSoi-%r_2-xg%g(8TyERwX_M>jW+S!%8ba*ny)`+ps zY;U{lPBa1rG0irlq*?9CI5D+lP}Z2t)>VDYiT0C^n*~Sp!07jn$C$jX5SA|Oxc(H} zvRt3n#co7bW+MbAXcanzqEvwJQ2?J5h9pdeH})=505o-|vB;&B*M%YGx+d9wt}Yzk5#536?~D(;a6%nbfg$1XIUOGn!`)0un|Dcy3V5SuoQa1#kp>)z3Pa=2e6Y)|syG+-U|#%Ux|nr2L2DfLYog2LMVZ~(>q-Z8wb9+F4~`u7&vT^LgLP}+&F{onAwxWL~Mm|BjESOP(z4iStE{#-(O~c3fxw& zoMCIoVixVmjXcjiapi|EPo%6zFhfI&ahl-3<1UAcLg`Z|6OlPvH^-nZC|QCeYr^%+ zxiXrhV$68pA__Uk1;?)o#hWgaa6%*gFUvOlvkzYq&e1JTkStX3s-P=g=VJdCt^Aw-b$$vlW z@<4ir@=GMJ(}!g%r9Ryf61SVQQbomU2XS_$=FcvVfbw)MM)W0nC&>xc!YciSqk@k_ z(2jFvcNah zUDUbjQfP@zRu&}XCknTvQAC{qT3c^X%Z1cn1uOL6m?kQ-bK~&GL?~|6iuto zWTW0lYM0-U&dIxQmGYRg4V*WBfcjJ=;NqiiorpNPaZT^(#)#7yH>j&ilU2 z>)5YiRqsH+?gCc#W=+f4QAyG^N~qQvf#Cr5Wn!n6WrzluNm=nXx;VKlClCG_YdasK zIxq>5QbJ9$r+F3P+U6aoLPlm8q|1u73n1S0{j`=@z@Ls^ zk>-h*i~7mDPsKSOW4uOS^Le_s);j|1(PLP#0*+vz-SRoagX%}v zP}tevQ(o7og|+bBGUn-}pm1CrW~RV2mdj(4{aMe>Gga5U`o;0sAx98kV#BL&|8?Mx zk=A_v8?jWew_2DseZM3D>CQ%sRj|~5UDirv6mCLPpdzV^{-|bP3~meFRS#-Zg5Wu@ z0V^j=aGy9S$aKe5Ac=@T{J}xrN-M0XTb%~XuLF+HL}3Rm@J;HPnT~k%T+%q9hKF$b zd}7@Dw$Uip+JEo8VvEgwHU+;x8l_m~tkMt~2uUU`U1={Ha8#bwd#>rC>?>(`W5?W{ zK|HHvYcUH0@wl9wNy)#V2Z?GI$)LRfO2%ErgR|G2Nkm+z^5dx`Ig#X|y2G?@3!V}H zJ4f#(iIsx4oC}CAZ)|MO|6qZeM^wyQr*tE&H0J>kT#Jr86V?l%y_@N9Tqtz5+rLxv-zE> zB+D%Lb2!gAv)>Js7UYrqU#w2a07*c$za{~w1gmK`1w{q9M>bbU!viMr>KT#Emk6P1 zC;fXr>x+hBP}TFT-U3=*ATmt}?;l0cFZJhD^GhO!XM4i^(*y&wt6kgLUG3XpqW%7) z2$+%?IK6Fj>*8f+1mnu~o{eUBledE&WhwZ^iVJZ;9_I**Q_4?lrEbkyMU!z{YC!%aN-Y5Hul8gWR28=u<24z>f?ht{D5j zWDd|PwISCFL7)h1o85V&ZG5a$E-X_@PB zu9$kB!h}65&fw%Kd%4};PexQjq3gGkDtSgHw5nJzJ4~i7=Hj_{fl@B2-j&R+%aXEu zIV`MiadYPaoRT2}6Y}>lMj~I{eW`YLWkk_#59z}riCX9xeS`AV&-;Im$k_2s&x2Sc zGX>i9cQ~RxZiwDwp$rm@W;KHlG8fY9b2q2wp`Tu~VxesLUV@k9cTTR8qvETngK_uS z4Ykz4ai(3kt1nY8*KJ>{WUTf#(h>4{RSr?1{15oxLD%jkekrn+Qx#tNuk%I9&mw@A zC&7cH|G*;X<^Z;bJA|Vqh}-yTql#a&{Y@T?ZDCMRW&R%}P*oEmo);I**o<57B`iy$gk=N+qBt~YO`iTMQ zcAxR%?hN8w@ln1+OWW1azW!9yqpDaiVP5xl(T0EghBDY1{mx5z!sGz@;ICVXLbBo) z;CHSo)t`2F!N9^3kz8rGgY{ewu7sJdYV;d{2C(jkWqAqq{)CeyKJ~$JmuLSs8zSFb00^pFB#w%<_^exm_>#K3%pcv)YF3|I&)Xn)QF>TetneRX_cGokyuf!oX&nFjX(KnQgdI@?Y=CKn`Tn3@7k zTqv)}9h8&7{IK!tbz$+Pk`zGtDA>-!31NIc5-eVGthf$+e%(xJ|jv!=d!zUG^|xJFv{*x zGaezw&y>SxW5=yVQB6=Hf0#2FXFrc;WlVZU6GQal%&a3&;t07FaD3G2({w*wPaoDiOBo&+!M=HSUIU9x1kO@9WmP<4l6>_Q6xQ!9Yi zffKWab@R(@FuB$#^1}mDxH9o=Thi-j@>8Mdzt0Qg0-<6yXUleNf{Q?B7@_aS^ce_H z>*mMtP>5wrBHUdn8jcfK>WZ-aZ>?^7z+$RIz`c4r0ri~825#Q{jnd6xa-6lHr2Xho z7QaX5HQ#F6ZuvpUyb*Zf^11^FJme0HKg$??<7(QL@!HI@1Vyb~ao(iPzh3lg--D)O zaYUH41(nd^^_s;+OAy$$Ina&0h1hFPlj%2Y?jz_nv|52W>ipC&gsC z@3S8Ewn&2dNy-%ee|{UkadfZNp58jJ5zU1!0>@DKfPq5T?3=Jsq`lG!#{U8t zR`aAb{5}bN;Ybs3=H=m7GFRBfJPO4ha;Tfk7feU_wDO@EpQz>_E^y`H;R~wkx_c4n z;n?dwA^qdldez{aq$lxFJVX2~`HV03ock6K=rd=WZiL22Bt3!?H(kPq$G=1yWMTvGddi?{4dwrFBqRgT+Q;g<_5^_h_ zfd^bidX$lpMFl}q8ucm&l;8$6FKqq3dNMC5%wu98!O{tGu?`GHLUXVgG}vH25g zr0hv=Wt6k|GHI9C{k)7bFmjwhF+<{u8R~w2xD2|+C^CDAG(_W&s!S^^QGm?az=lP(#VE+-LMCnwJ3OcpQJ{r<9ABGzG48)pb2lPNy&i zW|`Pv0krqc-!gYZl1kH}V zs@(F72ZR}=o~x*b2p#!+hH=XKdih`L7`?DzjS|Rs6J&M|-}08jB+>_!MG|FIdQ2|Bw+fJr#3q9Up9OSV=QKP~%#F}G2*+}bOBd{v9S*BfH=10#p z#Lel_dHI||I8}%`e8w75QK$nyS#i?5O7Qe1yrp(h=b_nOA&u}=Eoy!x?9Ir9Fiz(} z-c7u)88?a%Z)b%if~e;|58>#iiY_I}-Wv$K-*5%MyR4*R=~iXpIDeGo#Vra@eM9OYpCJJBh|!3XT}qqH%PId9&X-FDkuL{>u&OK04v5&&3Poq{RPO z$nHspkqqW9MYPo@5v<>h1A1x4h)R>1qGZB8&Pf)rcI?7+PInmok=pjEJ~8alJ6Ol6 zqMcq=)Oby#+OsC9J{+>VHj+dr1et5#5&#nDkul!;6OV9ZJ-+}z>3yc^yfdX$$I44u zMpHXAODnKT^u*`Dp>*LA-Llm-lX>GVfXj#RCZ6f&6=`iOENG;TAWR#(3Aw0?4 zup*U0F!B|LUpXuPO7e%Lm2~ti=Be;RJ<@?U1zGlb$|1E>;Pxrsd5>Fy-YN?)(+E=h z0dC9^4*WM-*;J%SN*yO(0~tVES;T0OOCWGj))p*K3E8x`>AaJ4EtNkVH1}9ZufN9J z8YfaVM6teY->ZAOBU9T#ITITh>4=kE9Qg;k%i4{#{q68*0wN@a!3jVrV;#^RVqx3w^AiC{O2~`XLTSyk8s&?iJXGmpnoF8mu3zuU@qvS93E1Q zXu7_U>JzvxnihlDmJxrky=I5UQy!9E&Z+7_GrMwnmqiOo8;ogu0E8|O$Mm1*NjW=) z99MDBSpm$KMS;fZ8gHy)BNB8wazZWJvMW$WK88)|JCk=G+E+qdWxJ6py$KSbeK{UW z1)D>pOdWNrwo+YY!Eilf-!g`|Awy4bUF{q!2byT8ud#G&0WGANxY{PCQi}Km9n=Ou(~DPm9+~ctU&Ka}u~o4bMuu$J4HHR}YlzN6(}CM)%Pv^tBqHFa}b{YmnWWCc>U6@s{+d>5rsfgRX_SaaM^EnHu6kX{0I(v>7?G5(Im(G>K( zAiW##T8HQ=3zOjEWir`KcCSBy{VjvV<=8qDjYxdqp`8Ic@+Vbm(I=SE{Eq)mN~^|y zsao^TeaXr;L#zU)?QZ?F+o+{9H$kJ!<9_4dWM-LKVtB|-^7l>vxHiGzG!_TOjp#H! zsV#x=Tlpr87d~-pMoV&R=?4EV+5jw5lxOOq zVt3BOQ(WhY4X@W>m&G3Ro-b$}*)3=l5v|A!BDd^?NyO8;Nj0jmf~SuG%(Yx)m=k36VRKuj6D-V{P%u6_7Z9gkL(gFaE7^2JPznF^`G_lTVXbFs ze$wWgZ$qJr(P{9zHhkN;03p~e>n*B3BSCYJG zNV$Whv$(tZI4D;GA?8Sn1j#koeRW3uYjc4VCVzN==uJHCPL(jnn7Hn5c@gJ7Oo0|X z*xS>OCmmd%Z&9V*3t)GMh`FhYvF&~t1Kz0cVk(Zm#j^jTsPmCnPs2Rcyl2b^&uoYI zf?a2L2(8e7A_P_+MlfvE9mo}i0IVtTf9Ii2ZqS@VrrIDT=H@@(X4yPMz@HjFcN ziU9{Y^=cmbC5+!?U=a2ae^a3ijT|S^p%f+$Vg8vg{xtC5 z7Z9LPn)_mgN1bUdxN>&0oAxhX=M4kcF4sRe)9?D_mpbR{Jo?{NE-#HK5W?$Uw?u?G zpHuYR1YiYNCpD1GT;UKTNW)JH?RwOd`mE+nS3I)=M00b#x>QeQ|N zRb7siHiZ|O*gc^M6F5C17dG`n>-DEjfS)K6_%qAj2P}ar>oUoD41o22oloF2$lUDQ zHD|%%{NK+)h39CDn6*G-{=|dM(!LMBGU(5egjBjY#>q=8uQuuN!jJ`yqMGFEdsPoX ze>v*zavaYck4sv4Fk!R7OeAo5>~X!rh#QgXiYaE|g%4v@FU9QxMhDF1FDcDZXrMoj zy6v-(S!N7TI$$1a$Rj2<&e17zNbSZS1e!nr15BFfJ%+#-Lxet3n4D zX3IM<2nohmWY=;mtnEr3*lDn+KMvdMQf21v`uSdud69vdUZfn}3`qSHtW9pnB{HyK z35_i%Wav$9UMv|hskN@J*zI(9wa7mE%(sF{(=cwjD6m6&LAl=yZDzMCA}TekJlIJh zUb7LoREP(a7(z^|rdo$;C7kucY0X`jmJIYrdpKrGqx>Ta*PXQ4dTHu$8`*er0n%t~kdW3A@gFcS z?D6d@$7IOAT)WuDlhL^C2W&4-XXxNptG$AVeB|6&4QN0R5lNpcJjThgI9~Jciiw$? zW!)SmX2qWBt0-0%cJ8I?wh;-@7VS!x0=jxyy(MD~c6WH%Ab+VzHPO@WBLi16hyX5H zk*fDFq}440^M3=I){_NuTZv=LYpAyTD}(r_Se+FdJv0d!#HrwQ=Ql{V0 z#VUWoy1Qc0CSFQPv`UI8N(ujIIyi&o1snS>0(RJk>*wo_2&JQ!lgutF%pkduwLH_* zpG;JdarR1?-)t#kBgx~HQlatrTLSE^z(8Nx{8Q>V@x z913^n>+U4<`D0(Sp`j^y6T2B0BknI0zZ!+@`T@*Xm#*hd#TE+%S{K$f#wQ_S<8v6c zcA#>YPH$AEiQZu=C`_5<-S`Yqq4^Z?k>5uK^Lexg02c1QJPg$S=c}7vhZde8+)oX) zqGPki)iysJ=_w)Pk&wm=+b#lus=K^-T-WOt%iUT-HiUhEh*@v^Y`L#nW z+ncMBUGCRrS;&9NLH-G6N>B!_!By*# z&yi^arZ_gvv?7VV&qwTItA6BAm469FOZRhIfmy)SIIh)I2?=sw(QOQi6;HzRy>vFx z8)eUs8jCnYg-zHxFd#sE586G7xRao~1m=&8IPB%OlGDVl<`P1Kc6%jlt0xSMo` zHnV*2tfO#0k|y7(Yj#chM#nX{5`nO<7#7bRyq3&3fU#mq z#X2XkU`qhaF-Xstm-9>qLxJ4mKZTXW-c2an4amkolVVW~+R(-1dq79bJw-QRBprpY z*&&lJ4vric%~VO}Sex~Hw5H@7JOcYtvyX`*hoT#=SwJI8R&@e(PLgUQMj63NVG#84 zTs(F4L$G}V93#uaOP6m&l98$(>7q_C1ybq5e|qQ>59PmR+sjQPC#Tnj2%JW!X=Ydg zLJ9|i#bmjK+{<8Qq&=QpkG3%~EMH>^8G)V0{sWL@q<3$jrVk+`=*8hWq{14zq0Oim z&e=B^p@&m{cAYY!;zo+v2 z{=^o)g*~MkX|w%>8FRS9CC3P(t{&k%xRE}!{J_^C0hbdaA~Vnmb2TJcbCk z%a{vPfSbM^dUy59;un1TrY>@daI@RCK|>p9cm^9*2Uzym=qm-@TII!sA*P)M0Hwam zmQ}Dd!Oy~4i$Y8d;a3Hbquw3!LzY31M40+BERVpGg*DhKCYExE;nL z6xH?SmUockmj+BNg@^^Yj$$>J(cE)MY-1ZxSjg!a-F<4$Eh6`iCYVg$?)5AE4a9rE zU92gDY+8|fDmZpCyqBhq3=&pUE@7R~db9#EHamwcV|E>i)z0(1-}!>tJmN* zCK>GDsQM6o||cUVixG%M9PENw$@ z=S&X@a&g)bz@8RQM2RG2z3cY7&8>Ke(IUMi7VfF-%+~t4jL6IY_Pfei^$3=4_k$^? zsXcY1Mq_|*uUO?a--!bd+Mu*GZi*)&BugpR#OpB$@c7U^kN_6N8_S|Q+J_K=42Eo_ zdLyVz1f>Aj6I}NRl&tyhddrLB_|KY6*Mk)z&>C=pvn1xAQu4!ov_h@K<{%#3nT+Lj zdiGD3KR!x+3BCc7ZkuMB^}zOVC7cCP>)DA>5s%6z-YYxg+mLBx(yD4{hjc24zWXOL zCZUC19TmG=u2Ezp2tKWByq0k%BMM=XZ0gl_)?_@Om?EG^gyPzgrV9H-)ykw|`@b)j z7n3C=0kq5o@HXWE~E-oT5Dg z7sgFoneZ|x=UP7py)mG%`!Vj_psQc{l>8=qD5hiw$y4~sdKQ4O#zH;2`)a{zwyZmG|6~_^?u}!{* zQ82}`tsap4I<6hYA&AO(tjGdI9%OY@oHI*xfU~q_wN++`^V!g1NU-=K^#n!H-vwM6 zr&eG;i(hD1J+0=Igcogh=kVHMnc$ju@6#wD|1N~=egkn%yTg_TTV`Noj|TgrU|)5y zhr&Gt+^Gh*4BzVKoaD%vJ0&FJ6h)C<@>CE`fM6U|rn6x1)~_*TU=qa_ zEc6BUF|329`*>1%?)$L!Ny=i(LvYRBG3G$?8ks00J}eDoy)q>CbbBK=FDK=|{h(1Y z-o2dTnj6B&MP}5kSE}>v7Pj*495uR2^IYW1v@D}r=iIScWz_#P2%!;%7S2zf2Crh6 zC#T{8z-JO+g4+EktxOxW)unCbPS#b^WZLz2oVV$tQ^nZXuQA<=}0g%1%nk!_a$K%uLhaX&O%Y?gpB8|OW_?iF=sQeNm zVkj0q$zm?e%fA90aNDU~CDCf9lkNO@OXFtKhLmjK5ZapF2Fd#=4m!?*Vnk2MO6mM= zdk#ncp^7ntq@90hG2Cxh6a;agtGOrwpb87l_A0Y@IdVnI+70F-Q;4vp3ZEZ?O}L^7 zusTJax0Np-@1DkGgR3dK+v9Jd55H9%P*K2pCFGkWAMcW@TK}k-98kMXVFZTvf0bxm zt|dIm!E`ZeI@-s3WlM@G}RzA)$UPWh0`5&$P}Z4r5v*2C-Ro zhxSNadDVT3_s8+i3^CIXWH3?IxgFRxXOv?0C5vKzp?@>9R>)l z9K~gsmpl=FrK>Z(yLXx^9aJFxeutV9pVO%`T+o5Avlz^!^e4>{69w)#hzpzJR8h0s z!J^#W(=^2N1_Eto(GLg2M@G;;yGC~G@ARM6cw%~S5{R1(l{!aMm& z9L1@Gn?$uzq|r&YHr`~l!PS#K4#BZB3-0AP)HCJH!4iLRf156~3WkA|dY;hHyPYbx zhb~xy-bUbHD$p@tlC6GJn28jA)KH;smCFU@Nf?U`>sPZB)@kT3&}1~vjpNhcl(_Q_ zz;Jl3)}o>)3n@50AjE{1s1p?=<=r+I-o@z%*?<3OVR`|e$hi8h`b=QwfKBXo0dHPC zH}*|T3yDgLXOaz$M;qyOs>N_~~Ly zd+VrZXa(F8qG0cNJ!))drAaa16v0v>&2`+N`aRp*2O-Y*P2eAmbaw@Wu63q(`(O{~ zqdRzWkBMd|V20|Wr2c+`F`YMk^Qd(YJ3j^gWFBQDbzzfzN88Zu{H%g|3L!U-v#QA7 zj|q?I(X%c9LK!-NrZXpF3fsOz0vGjL^!K9X%P#`a7RUO_Uk$)cYo($~Tbim}6DF~2$VNcyg7bT zozS0jbecsL?Qd?zLZY9QVTv(k(YKWM%b?KjiCGc*iWzfgu% zaATHtj_am5vhy{SILR%8K8KqWs;l@;|pCCBR*=eNs}h9)oeFAXJ)~JJJ{F zZqd@i_Hn!pg)ZVQt0%_ue=X=y>>w;NNJ6ZO3h6#qUV6YS=%0=Hfk{%+sOc+<5uIl( z4}B92{5%7-_6-h*OEqZ6kvWHp)_F*W&8E@c9%;L<3Z{etE+BtoN9vR zdF!}{@+lE1{i*t;vsk~qQ!4i-K8*m<(oP%qN!4Q={T6%TI>e6nAMNc@!EZAYnbKtN~$tE*&B5I0LSha-?;<@ zYzCn27Wzme5?yjZ2-rWzY1#r9IZvX4>tva}X|xoVWHFJg#ep!wx2Idw&CLn6US? zKjih$J(V-7P{6X$Vr4loN8HI%iV>w(+_BbI%w^YZ{g-9^PSr0l3TisVv5A)dGX1p` z9{nX`S)fRbJONgrDr}yWE@s9Au4Ul&#K*b!k(a0l@pi$FyhbqSubMjz%yZ9F3~=7d z@6RtCvt7b1=;4NzqP*q^GKx&OXaTOA$x76CTrA$g!U^#`3q7rOBA^gzneoR{fv8|6 zc?ny5SKJ&HTDIeUWHJMps;2ln2lu+h6fG8AxixCXsEYJ@X@Zs$rF_)BeA9~CS7INR zkXRf=cMd^4+jb)u8Rl2D_cqIiD%MsUsVRC=;Mz=&5$P1HVp!~`XOdC-#KG2b#~ldi zLSbEvj+0BQR({dsRuw$C0JRkXlHb=`5akBZLwrK>2FMNJEviLqO6+ViF++QRV_7P- z1B6o@Z+RE$_WkWVKoDOu#;CJr!q(|UMM&+(YOl3OQW%&N!b3D2TlM>#Xs8fmDtq)f zjG|V%JPt;t=kC`UODzHi8j;UTjN;ZYRr{v~T)qEw)FAZ3*maKMGli^aDl)<04RRxknrk+=7Vi)_y?S)w{>~ z*H#n95c!DKgvX5?(aU{)bxGXS(%_Cyt;C6=s+Vk5ynN7Yr+vT2=r4y9tFhffz=Db= zm2j&DeiBBKY`nSGeQeZv}Y-I=Ec&9AON<2rU~=($@U!XcIsc)a3sx7({){ zyzP~qf9s^=K#Og17EvXa&3Ey&K?F$)6l3>0g zd_E$t2;bAVbLi`>ucfd69+WuZY(N-;cBZi}?$UK=R4C(EJCX|j-5-Iq#t*DKHn} zQPFWNQ3UO{1}Xjl)yB~zaI)Yl4>Eax z4WKRcTfx5>q|h5z?gb2XTL>MaeLS#x9n=F`gpR01Si}+wsO4=Rhiy!?o=<$aT@YsZ zz6+(XD95~nBsc$s>KoKYe5=#_y#857w`W_1`!Eq#tw4CqHhsBt#e%V%k}#*qnLW9Qs$RZ%xkUEW7p7 zsJuKh?Mf8PJ9-sHtnsxs@9GZeMs=dRp5H#&`2S_27WFZZom(HG(CTorudUs65?j?} zqTQF(9Rt6pMx4jHdnPioZy#M z5=DLK3?-<`f(X9F&}{r~UVxyp6*#CIR3wA}7nxdnPnP5=ur2oGWw{?2!yL77k;+%> zRM?x$*6?QDNwv&A{_oxGuB~$O_&H@#ZyR7M_UL$q zy2F*^7$-|_)-gRk|P-U~KlB&EcJ zHr>^?vF7gDxEtaW#iWa-&$YX2xwIPhi&GSFBbxi+mX!E}RUvLBHl#PDZae+C~U9CbjRSmfl`y5u*Y7M_x7hlFm__ZLHam`OmAB z+-tTUxrYTpb;u7QX-Y&b09CEmZ^c2OkZoVcg8H+#{m2B~+4xpgzYf!8k81@q>)WQ~ zkC?XulmO8x!DsbfA3aLnLX4hZti4ZEp(sp_e|W>3)zlOMv?ozXdIS5%jqAabMxR>* z1Gea|W_S{3f%0=42g}M976gRyY&ldJ0Ofo^j}An)3FG73AeXP~la>Ua$2uLscVjv$ zt_^*`G-QI}BquX-lwcX|%^_Hw(aj1fGI#gRw3!*H;IJm0bMp%ENbq9n;D4lzT+xTFvmsV4dcDk2kk^MB3_7Xe6WgKXBwKoCd| znDXg}qKe(3llpNSKGl5G=8ilJ{r2A)7_Iqw_c=t_p~BNqvEG!Q!at75De?{TRa^xH z3Ji+MEeXVj7)2I;&W3Q%IzL5do8_y+D$2Wn$+GlYfhC_c3Vbc3W}+wYdtdl%>QihW zY~UWgw-w#r1zfgCu^(tP@rGQ$abGtnz|`+>4hu6WF&%V#0t`%nr~zJXCJquHo#1Am zb#6L#YxR}3z#QU>uf}}2us_>IXF%cp+U(3C9{8gXQ6~dy&K;%GA@yMxZ=%veQPXo9Z(y!9x^y)f0 zKGf^xUBqtqi<0e53^3ZkkG~K2GPlAKBJDa&x{4o=8!R)1uHo0zq!KInQ-o>Q`yCRW zHFJ9UOMGS{1u`gPn^CrR&Ieff_?{cEk+K)%1-Lkfe}klo>FMzs(3sw~-iW|;hMK>p z^)2sU^{)7Zq1(l1zB1)<+fX3(&f05c)H8*GeSDlQHc>UKVHg9@`ItDSHymFFZgF^3 zosSIUZ|^Isy&52|KVx-4Q%jmDvhvB^(H-VSn(5Kr1kF03t)H`l3= zx@%cAm$przslSLPSzjTu#fEGK8KsZ1rv0-6LE_38cSK? z`~|^j|Ez*y=_7C*l5f!SWJj-RVn!~VOI0~J39fm%#=Uqxo@mL|s(10e0>><2`pJ7J z{s!3Z6;PiijKj-Cy`Q1^3@@~z$vG;CZ-XuW5GyKgx|JjsA@K3%co}vQ_eHO$bfo!p zR?@G#a$jfaYP=yLF8L45IL0xHV4bxaIx9Z!+5buI&lk>xO8P~49+*w>2mBxo27mTX~0v+x?CHma{q0*}*THMggH0n8em0RY` z6ntfB54FFBq@iG(8rSr`>~~!v^g!-a?;M3HeVb^hnz@^_vZ|Id3mad}_&1J{;Lyx@ z_wjhVzb{YAEt_vu8?a)q7pD72k;Gl9?);plMMlac~b&eJ*_>|8Uf5fj2oOPJ-d&8jN3qT?-vr=p4@@dBltDx7%V@(o7?q!(JXL1J%aC6$QBxWdN|07G2?4$B08bNhX^E))78KAh9W9aU|yjc8%J zM6cu@=0-2b%CVo~w;-&I)*5w*+;R^tn^@B!)U3@LjjB6NQO|CO^mf8F0j`R(jdnQf z4;38Fp9M~t?e{*@Nu-koMXO-B09FU*i&#yV{fgEwhYV8vkZ#2ZCQr5x8I zGia(2+@Vn=Ds|b(E=%zO{?hYF2jQ+}o}vZx%8-OWK5s59swa|P$qWs0oL$Va^q`hc z5*Xwt8qrHHzLwFzE#D-pdbLCS>(emyumwq_`dLSwGcyS?ud(~btKTZ@*KAshL>j2nUOtaK@$gk3i!1-*lo zyryOKRu_D&F1i<}moC5{K^*{lC_i|~eas|K{3Ym`aOvi_ca-_Zd=$`wqrF-6xD+yI6wmk9Tje&AqKMRW>(Fk$a==Q4|N~Hqvw*`7{U3Jzq zMF9+WtfH6K^T8*WQwvQy2`h>aW^1UMo;d0Pc%lYg3?E#|z`tJwG-Se^D#5s@BYaZo zMvCc+BHl^j3g&DVjysoR9`J*pg>%VH`o6Y7e(nmwkBO>X7G64SE)Y$pot+i$1#_u< zO=}P^fjE`XvA$2Yh;f8bu1qy-@?ToHJ}(mMy1h~c?IN^sYbdq=Q5B;*KbLY!TD%0@ ztzlezPYfMly3kcD$ePeo*v?z4_<54yHX`6gYqmV@JC3%!ih<=_V(#Ea@=xOIE4JWS zI`;oTI<~Dm`+YfLc-uqvi~cf0npvYnK~DWUv*tVX>vDt8hi`Ir*7h2T#oiXqKtQ*H z*`X8|Z`R%~TMXtwWh3=GE>=n&$-ge>&l997tF#BzBbUtj*-tCJpt@i>6K4DN`+#PK zG92M(I+J$%pG$Utj-1oB%o+83YR&^nne2Sy)tib(|ISepc?M`7s*!dl2g;}8_*Ro6 zE@L72%pm^YPY7vSiY#_WO)o7WF;lwy>~Dd(`}9WUP z$T>|$As9rqF8~{8Gnv8YD%_OQRj>Sknd-cn|Fypexp@%cV&q5K9l8ES@RC~Z&yFK` z5-N3QAjaw$ZTY$&6QY2`(|Obh$63RMJPT(#zXcUuD&xDi43sWFyt553n%1?tQqKYn zP+G(+@1hv}`F@3A)IH%{o6aHR>MWe&)U3xn;v9@4TwAYwKI`KYHu>HFUn~9p4Q|xo33eyP9I!R zQHVW)+GM@36HILkjv;g#yL{P4m_fmN+*P`@<%MLB;m_cZ6>vaMHm_4UkAF%Rq{k+` zdEbMkjuO!$NgeTaVbJT{l;Ibje&iP?zQM|`;?(`U$~;Qf8t zEYJA<-}DD%-@xdE2XWM}-7w(3dfiw8-g4fefmTJ|R-A=Nv&VD8Nyp19$3P(E((mZh z;ArP&0ztl+H7tQ0WR`mG(XyKao2n@G0dmp3G?t{y|4{NKVJc*7c-C}1sy86(Q%6z( z@69fK+!eRzskAV)J_T%%9!6U(9{5gVkl&APinaX#wBdXRlHD29t^_j{i;1QEYPO+)liS97|`YX zx;zkIGpS^7S?*Q*;c?JEo7LkZur0~1sR7!S*d_bm7LeTN#O+YssTRuT3G$)1MKZ!0 zR@rV6iwZqUSAFD@bI6Y?ZKu41hDZLYEijX_)gg9Gl7BjQaczL6u1Fs~Y+Dn)D!~Qh z0U~s0;B4B5MoxCS%Vd$EKl~Wy(c~13PSjiyyyUTb-pk_yO~!>QP)G_9sgp5vO+R2A z|K_t@(d{(T7Tv3D7e(;fjX0g3kDlK29fB;hZl_1@+Vu`$kt*Tz5woRAvM&HoBf)b! zgG8bi-L-o(uQUTxTX;P5*H-= z9g`fnXhDt~7NS^MhXatUgs16k ziJ7uChNa~*0j9?$18-h=P8651RrDWIcj1VJ7j$3D;`%9zs~#qm23N@CZg%N4`O-vR zlW8Cl3~p1uzYC=*(t&Na_Jla+n_}suP47$oeVNkShZe+Xn;*Tl9X9qHQ^mo7{-ylt zx2%sW?nLe`6ZB~EoX&2*WyGGz#)mk+pdb1>s!7;H^tdSBg5Lq>w@VXGKLeyz}Kc zui|2qM^8|?>9d4paEfCwkJPuGof|w(u0!5e#age$FM6q{5eu=eTrwx8)It~?`7j~D zpjLX>$3Bxw;n+y>8KV*LZ@i*~`eRfNIH$O{`tpi@)NgImP8 zd{XJk1?9)rn9yY}N~BPHt0!&#%sGmT9#F2815Vv+a8l;Tn1f7EkGtjJPvb`VbwJ(=s9iT(+v9ipzrlzK=E5jL+4Zf222B} z6aPFhGFCZF!3~I(bo=CNOKcXn)uB`QXWlgF&C`0P3AiUcm|UEXqXeBcQ`b$H{y$6y zo4skgEaXN|g1c`OcbhagYG)93HN|$%;mTEEe9ViI&AS=Q@Uk9-rYSK&N)bSxU7L#< zNl@T3vMj##-qPxOMG(Tn>0St6kmzA%{Cooy;S934xAD0liX4T z4mBd-dHaHq*o`Xsju%h9%uee+wx2V5uCtp50%R@gy~%1V&J3&S8o|$^(vK4X8jK(X zM#bGe9P&Z5i*795sBaUo?v06c7Gv4|Ly_BfM_^5gb38g{w6!&map6MrFc>1(a~L=6 z16YFIWu);QQPjsmo58joZ!Eh-Btw0fc)3-7#^-! zF-n;KZ4ROQzuCe*X{W5RH)KaCZJ-$i>?#Gm=cB^tMDX(!sXCav4mpG5QnaG`9H?`! zPcC1J796pZ4E?-d}cHZhLeqfI1M4s!My+{U z?x7qfXksvK-N}#^;XB{70h<~ijn&f_lW+R=-dl9HKRvB8lU)|w%Su?a!IAC@8Y^7V zfgmTmH1&BvZ9xpR&F@p41{x*u@zC@nsA0%IgjlQAm0ZLJB6m_{EkQfuxy*zfy)6TsD#9ym^zzySd>oAM^@tx!ZcxII5Zm{a;s^Qoj5bcfUqzipMCZ(_hhcGvL z$EYn0G9|62lqHe&b{TdMy;E)?l^k)qBKoL%hiK8L@0w5iA)Y~RPJqo#T1l);e*;lo0sb1-IyX+38$rMJe?m^s`L z+I%gIrkSAB4(=TL8%P^4heNa~KF~4;l(3HQwD)LceS3hx25~r-+8RaW>HOn%9Jvaf zT0_oCl+m%n_41Ah*HH8cRT~qjT?UcxQ9DEZhm5j^+?|H&oo8b|Q&gwRL@bVq)I;>} zGD)@H`SE#?x}Qgz>%4jW$u zEQv-Zqy?4g(=2X_VaChUoEYRT_E4s#-<0BtjpDGVx14wFknct-nSW2R^o=~YBlrop za3%D-6^&o{=MsTEp-ol)a|4X|f)V>>KBGsAjWrn7ABlCgr&NG>9lW~4uSQa?Z%@F# zWZ&nLT>dSNCU>Ap;npQF5RrG*_s7^#*bW%AyxO0%Z?LpnZJX670H~pCG~z?dI(NQ_ z5mTNKSs{7fA_zvTaUNnQZ{$v}FEM6IsDe^%>%N}|x7;v&vBg13&T2q&K3frNYy7GZ zWwq0NqZ9u5pC^c%vO~Sx8(WXD8FeCD0;rqLYc`uDCY_p{0Q6P`36?H9=Qm?(#ALZp zz!N}ct4ATO@#;?rO-Pf2Q4u&|{cl$zPlO>KYfpN{yvk#e-ZVnPe`U;yQk*4#$x!yaoH@ zTTg_3hP?_R|EGu8t?FE9?^9`x}vNQ&CQh#uzkUrlQ zJN-tzmiyEj;X}Z9BxZlm{4o??;EWuzASzqcfqwa`*0?P!+30!R(|NfbnC&)wSw5#T zZR0^bvp`dk6h5mgf0rZ%5j5+*KV{|DsPX7DGqC?jVkso2aaA%cG42;@7GJ7Nf5=wb zaZiw46QO8`6j0dF^3)i^QT1>Qv@NM0DZr58#gl*+LbyQg6V1Z_O-t6X-?UdTM>`8c zoE5|T=DO~GaS3s_&+1e|ww=~F!@uLQQ8h7SmT>tCr!vcTdTHWsTdwVJZha~Zx%WzD zYwy+gOXTE8yENvL&Kd8|G7>`Ns2=B8y45yn%rz#n&B}5D=?*X*>HQ5GQ<*!|V)$tE z-*iyvLT}?QZ(&g1{WOX{l6#!NkMMvkGYJ!OM0p#QRCJ5oSBCHzz@J)Ig5?G5sdu75wan--@u+) zh_Kn|m$DiqGRGi}HBoN@*ml`|}BnoPC=nugb+bOAu4Fg2c;w*Xil|bjfT+H4S z=g*0_$D}^q??7f}Uf8sSzD|zYpMnk6?(7`=;+gu+R5yzmePpP~?3e-;?G)t%N_Ceg=;D)Y{-zKb*sZ7~=iK(~$z_5jH^n3NWJ^|YVVpeT)Evu+)9bNYS41j>s~U?nxwxRG+_jRJ`BgLHwlptov~tri9We= zz`;vb!;KSDY)HZW;;F+2DQ%=2X*yQ9M^UK7*(XJ@@aV}G_<>?aHfr05G24Jh7MKM$ zE)F8S8az0+338~6YNhEG(l#VQUmL#4WFn%0(0+g>a(&2~K1B5u zE>$R&2SCpf+~#$w!DS3O0s=JbfQB5vxG;3F=s^j5S@D7>I_e9Q?(>p&7U$qGkkD7s zLuFCn!#CZ=B?1R4VFQ&ML67yQjN%9KTl4Nafz~HX^)9=crS{5nL@{S2ULUSfW#5;5 zI;o{&PZAjvKTLU1y+|c{4nRM)ZKiA&_dDMM>`QIlx|@bU>=e@GKxfX6N~E<1hd?{N zG>v(yfHm0mHzf-~79w*wbAVGVh#+Xj_^WJM-<=rwY)kLPElOLnu@X zJ_R>6ylWTu8GS}ZX>xa_jCg>^s%zGSc^_;VK=n)G0$YTwI_o#6w12`Yalo;q1{lDX zedf)AYA(rRBB^RyLP`dGjLBCeT=5GC3)z=+Q>D+B=dVUpe$fV5^0+9+{+YYgVkUxX zK;%T@2Y2S5_~F2hk!_-z;HNeRu7`9ReRcPWYu8vqNol=;FUJBspxKV4aBE}+xp_I9 z4x;#d3xjYh4rMIeDxG)f^FH%ou*ja;Y~3(y^7-0UA5H9&FC*2w8{Hrz2GA!IK0y1zW^-N@|hoHI4!9BZFr!=n4Vz8>*9 zD6{E%fn*iPSa=4z`v7nQFP?;P2yHV-V*kaqz9nK9Gb}~(9+#;~M*p5&1p4nzt~(gegSz)x zvFt#gG6a{UG3JZSR?w~P<%JO&?ru4<;WfQ+y*1Bm!*zxDHk#Knm1Jp10K?b>jhyny`T2sv-7YZ9UvKri#Zfk)gi3yIM~M9UU@_T))PI zF%Fc)^ggbzTkqPRpnSCRXN*-?7ZGrqN*@(FL+K3ux?S_J7f?@>ji6fsC*keL?QI^t zz&OCj-im=Xs0|)?R z;9};Cl?T_gajOW*uc(tX$^*k4B`>Xdq3fFo#NiCjq-CKM1<*?p5S|ElB85MeY%)nI zJg!3L&4@qdx7Ad;$7q@Tg#`0~T%qqS?yKJ|F{9F&iH|-W`ryb~w5m1!2pzBBq9~N<-blSgG4h81 zB(3TI(d02W?fmBdzOAhM!VT!re%?5LjEqLjMaayzqBfO$z%Ilqx(z$P0m{X&cf%LZ zcKnG#v1N|_K)d)V^tR7yp7YmyU)#<;KnDjqe9gWX3G>86Z!f=t5?le&Ia=EZ%+w*X z*?q>Ck?j8Yzj5an+Vqdz9=CJsE=Msr+gHuN3_SqmZ!%^lFF>xz*VcX0ev~kBR`&=^ z+0mD0-7KIvOK_Sk{V@g0YzecYw3!YttQ~@O?jf8oSHFXP6}*fQ2aI@j;)S#=)Y|YA zqA|tG*2Wxb9_EoArRyJ~W6A3#nyzMU456ua+-OHp%D`}LY(#Vx?yoR}4%VS9am;v2 zI1q)V*`$A#(<#n&j%*T?Vf8z3)6MK4JbT7@0}B?Mno|N2I()s=mIYgyG(zL$kmesJ zZQnT;SoTE)sy9F-KnP@VJv=t3UwTE_#3dW?6_*9v&o(xMCWC7ln0ICIMZHMi?*j)p zQ99|msR5mDnvdpcJU5}(+@$6MFrJwbCXB3`RbziLyJY_jR53MtcqTwIO2VSSe2e090emeeFK6-`v{o+8aMz%dU%Fkx8EWOA^<%%kf9ufzlR+nEKD{@-eyUxx zGqWnrF!IQ0qkHTdz(G0O#HulD8g}doD}iZ|u2*;6y?7f|u=a+^3s5`$PufOk4@%hi zoEzS!aZmHYtx?}GT2Cox*jNJU@9(cI)iOEK`NxBos+AdE=HvDWl!%)+WyBuhygnV(;MB`~t(Ot*hmVk_E7 zPmdmCiX0Qy^9LY6A>>QMDD$;wv#%aNr?>K2KNLRp?F2##~aTO)i}PzxuGX4IKClEG!1Kl z)knk8`g&SMo>T)7SVe zyoXrSo(N?uQ6D7FkOdpP;h)}J{smR?c`_D^8&5r(XZXh)YU^}#zFS;2 zChiA1p{(IgA)x`R0Qa}gj9eq187*v!Glb|nG`>_q=SK&=+eq89un__ojbmWE zLG54>oiDW-rP1YYdKww-SfC;|v6_D{nXjts%A^41;02UiI=9$?2$`I^;@Tp0vs3+!r z(jL4)VBo4U5X>^oEm%$Z2xW2UtJJ`Y1_E;3)dn&NEtCijqm=f;%+90xxLy#k!A@!} zhdEhmwP>j^A4u5ynqzz-<<*9EkhV)IPhPHsvygmi$UAX(BwyA(SfLNA&RqiK)$WPC{J?@CaH4#B^;|NTwWe?%h)Os8`gk$Q?<3R= z-P4xc8!^- zFEETNls0ag1)c~&3(=Ol=%+#^Odj@q1k1&esg^aEeIkz7a zwgYeCxP=j^r5ShU$J8^D~H<4n>D%A`+v=CbHGr?}es$|=2eiL{22xXIo1 zi{Rp?Py;l~y9e4dlT13iKV#9XKY`!7?U8oP7i0}IGZQ=M-*zczHB(nezqEPpKM=|_ zK9Cgon8%YYP=@C_i45f>$1svR>lz$XITy7XWK9*m)e{q7+pqP4f1ZFrXQxt=DQErY z60JKt)il>rzb1{Z47GzFkJ`UPp{n2-!jY+|CN;*k8=pJssDMn8jJy+`#!_qu4#A0A z>vrpVH*bqzqsNV1xGS*T)-N`o(s4Bm_6GK904?|o=*ioN&pmJDIJZ6@Lb*QB-h!!E zu2r9Rk0fW*U&pFQCs_G+hp}fv+)n7;eW$l^VtS+QDeb6UK*(I%p?IKr{?clJmmGL6 zhPgu_zk4T3?@*6>;a+VYc%4Q4(@idR*x(Cf6Ip|dTO0DZ{Tt#d{Ui9msyRbUK@hv0>H2x;TG;1ctKFJ5w+WU->~=BsJhQQAvsT$ z$EhHroCd%9wj$2jU;NAt6kjNOI7x&m)v39z9GUEM*iY}^R0eUen{1_Octg_8qE{iy zO#E1H9kdQ}e!nkzRH_`1oy&NrDfXj-HYAw4>Z(8`b&UXKLWcV1Eahrowk=5;!(m4H z=s0t~IH`Hb90=9VM7m`wR*w*&&Fy;n?0Rf=+5hSSnPUVjPMmWCcYrYwUVh-4J3*HU z&|d^48Ygv#d0^;~z8d!O1Q+Ux5mD;C2Ot0D`>Us zN1aoB&EGqG8UTu30hw^#bX({IC8999ydNp@db?=b_3^)bU z);G+f02XwEsra_X6+n&D`Ue3&Sl6~G3T&;cI>EI_SrC0;8=R(%+8Sp4zJX&UtRso4 zw0#-HTfdyDPU^)?QL?e6%wVxr%MDgulBYi%hg26Y1^BndrI<*>1qlIO-0>Q52OYrb zZTYe=nv@kHKZg^&QV6di<-nJmI&tq&UEa=dFqcvRnJ`>#*DuzHznZ7DnX&(yMBsfK zNIoV<6Re3uuOZvNFN4Gfkx?R4BAlr63PuVrPKi@UD`3x#784OF(&x+(>pVX^_6GvT zjFze<^ry=^uP!goZ|?gH{Do^5NorZ@Wx>Fgf(^TgbovOiW0*ZSf{a<`aU)2FdB0^! zBnRDw+qbFM-Ly693I+y$7%jYFe|p!e0>Cv)$EFEHgnr0hag?H&omwJ9j8QV``!+HW z=*0so82=1Vr_M{+Gu*u~5^O$*X|dtwtUAHG!(c+}YYf4ik&R|Ta&|x7cOwx@>z!46 zch51DMr$&{H@TUvJy-#sBuZ^(@qt6A-y+k@6#PMCB43Na)jiMS`aY9pD=~1V4#BUq zTE+_VQiHAl!L_aaP+ATh@0Za^Xq$clyGD-6%|&#)5m0aB8y$@EF|bDCBOVS(7W>dK zmN1Wy074scf|zHM(xx@bx5vl$g*0OWd|tMlW{QAo=0GA>Y_08ebwbvY`8-8FS;Wc`bSaUYvZjQ!<2@4a})_xS%AMA8UHm z+3!sbAp|eBqZ5{+T-fJCm>a7uYBDDGXP#=MVm!w5D(@Rb3(5e@M~=(8EfH&hxUIaj%-T7D zvQa$1P)Dj(B=C`$8JW>34Nsl#sGr~Gs=#m5Xscd>c4ugxo6!dY#VGj^+WcgWD<-br zJ7hS*$&9i=VEgQlu;3GT ztcIZ&AHWxP(PXtp)EEnRAo3PLnl7E9qi^+KZE9Tg_jmCL(J3U_|E@PwJ=3+>d7wxH zLD@zJqeFvcdjT7Yy#2fkv*<$0lffI%XBWWn7#SG)2)Jdu_osX1g1K@VsyN+qI0U>DKrdHmn>C_zrw6iXdBK>I) ztMGVFw|zXpxbZu0rK*a#ZL*aafjg(G^#T2o=vNh)(I+{x?fieiP{Yl9=wq!(DC5H;-;F4T9)-&X)prSC(#GFu#!}>}A)t;~C(XCx71+!`X zV8*SI?rs}wiZ@GQR$+-QClnP&c#2wpxq$!)VqIG*R>c1_Epv|APKND%YX}8o#@EEi z24`$_K#85A@j3&SfG{A}igG7-EY-Ba=BPkimlujd{R&RIR`Ikp zXhs8Au}*kaSS2?$2C&t&o>H5Qt)wfcM=}E6tu(54(~m~3E=g6eu=7lnTnJg>xrs4} z?Y`)3B}o^n#*-i61aNsr^fQS2*2^g zhf1R`abS0Py!+c{N=3-vs-vqV<)Nztg_Q#J6sNw!DKL|Gv}ZRZVI#WQylcdYX4Ii$ z*SeWoJe1BY?)YjQGT(KPbzS~G%tt*x-c+w2U3{0cUH@KSh|<)sH}>a6S}}6qmaMiF zmC?dXKnIsv!`8?4!cwhCJc6GumS(y^B++Seu$Z&uU13a}qp_<_ zeW7Sm$@nkBH|iSlwB05hYuvewTBT}Sg1YhyJSbx__Qx<0d{5j{F0r4?f@~iE^7S9m zy%5@O;X9Z`q~TTv#o*&|M~<7naM0##T;*s-&MUYC;`_p{773j4n4}JoHY)_6(Pbf-qu{#K?~ zy%Afe*{lOCzPb5}aoMHT2sNE?2_(NVeG$xI{`o<%k}tLhK4EYs_{rXJ0F^(ogWI)d z-cf~BKJvhW{jy2T$+xLHEY#gqi3!QkV*7%kMVd?%Ol|&ASJ9o#Go)@vK#LRw0-E%m z0lxVck*Vgf@+4O__V`F5<>dMH>{WD1MRDra7HH7)k6D(ll!g2RArZwJZNmUb-a5e% zzyU|9=1ILm8f2^(bxM>$q=bClz3k!u+(k6&$ajxRl&CN>L58s&0A8D`&A|SnHIhKj zQi0n%k~i)X7a+W79oZ3?nM$zPoLbPiUZu3&py5gCiPby7?4M^eY-#USKlpICD|d;qC~Cl z>Fauc!(-2AMM;Yh5EZ3yu2!`2*r^9W!n;=pen`FDQ+mN0R@DC9OWOND{yLRmcXB+) zsCD1R(ybXAk)rV$V?{jELI_B`cUOcR2|{HjCm zX^PL4Z0Ol6M~t}|Q&BcOx%jX?RPMz6k8VA1#ML%gu4V zC%oJwmIR}X%8U0Hw82QfLV0A3jH7`^YvNt@` zze=y~Qz%{lB+BGz&LmUmB%nh&45XbQ5CcT>*Vx31^ycd~+v=}Y<2XPf3PO}-;ov-H ziS)@?a*J1QVhNH9WF=gfIYPD?lDNv);S!*IN`bp?t3;h* z_PFnk?&CPpV2w?-`lD*PM-RD%MrfydTL<#NpPqsjz8q9))bg010CED%9L{XT3Kbuh zr8?#vzOnFhmpDIYJzKmRx>$P_cXMvV6=YYY?-{zR`B4X=G2|EVpP~^;AG$=h_GVsQ zQLIW%%c=cA2*?A8&HCg5MeAZ71{a%dYbiuWD4Q5EjTTvduw@kt9k?;309{*N88vu- zviDiV$-p8L)bAX7b4FKGX+QEy!MT+>Z1bolE4UUTl66~!>bsJoR4v`|-71cI{jWi4 znI;FS?1}xR)PVowkldp~Dwd#{n;fo+|Js|?&h#f3B(N~hd7N23*TeNDvhJZ{aKMhq zWuM&zGEcNfuU>)AT*heYhD>^rw_mV-)sl^*BZue+qz_OPOPokpO5L)W!G8_9C4}?W zKy*? zz_ml3Fc1b07sd`=f8H#9_XA;`c;<(yj}A^TG^`%}9E$jc!c4$Idnot>0Y4ajF zN7c}dn!FK)rV%`EnF+4_yhEurGJBJ(Ti7_1D_uKWZEF!(g!22|Gu=B1eh|Fncbo?QSRBD1av0SQ0E4E6$i+$50j1XK1w5Yj zt42n&JM5UvUV#6s8p5|s<`20Alir$)WKq2{)&R9b2Sot^&-!p@MVD4imhkQOSes-* zqdcvssaPhsOgrC*$)N*F>4In-0It_p&9*ZkX6G)R5YmHF7D%*sHTyxhY8t(zTnc$^ zB?ftKm=%w2t*3%hM}c}pw)cz$ceaO6%-;!wMD9MuP1&r@iIw>49RL`zP|l8xi`KJwG z)G*^_u6&V#FYUFp`p7D&_+p$kM=b~>z?EX+t=hPt75z^8)V9U%Mxyr{E;06WPvMu2 zmFtvK%pBY0i|-^{m}-G76*SWxi4u}HPJ+^*R458yZ?jVuh$Timy0qakh2o2(-}-=L zb2#ad9G>bL`)G545rY)REbp9dd9Y#0nMt+zGfU#J{D_~ zTvRO#&r2Oisl1P*rEwBFMw&FF+Gh)j&Id2XEX)L#*|OXO@G@Tw4`^rGZY>Y{|FfN) zyMZp~J?p$CY<=PM3FO}j(kFtvt8>Q5qVm`x>Uf!4TaJNc*U@bl=&KWXit zZ@zP;;|yjty0Lr4nGN=P3%K~zS#s}?bt5(wt%1~PHYBxBv&D1JP^ni*`DKw=WfmHI|u?g!Hg$@)UT{%!cXun%YJi`X)>PWdrH%f z)GU#hv7($dtU9mKdTPE0s*vRSc+;bqdQ+*dbmG1#2&6uK3mG=~)%{bqh_M7Jeb<*hN43z zK%hI^gw^D5jy%U)x(N-ep*Sj7Gu7^jb?*Rp^FC3;&H#LsF0!(-z`c0ks50KM<3uyZ zJOMoF7&lFw>ap?O<`=z)kyUE`KTCY9mNk}};gc1m6+tc&xk=Yyp^dUKQ6?i~W^o+d z?V;qAY%sU9iE3~{LE2mn3@uOCWPvp%Y%08muhv~4#p(Qf@5GUV&i`AdVTIo^+85h@ zMv`p%JmVj;TPv`zq1@25RN%`=Gouw?3&prc1yh90@-d~~THQf@Eu{d9IA{jcKs7t# ztfd-f~h3a>Ks;i$pvt@otiM)P_=mW2p?eM*v-f9Y2#qm8bpGfjzeps z(T0R6oReZ@vaFSb^4Q~`{3ni zNkr7=i=4EGvPmY+p3-}cR6~S~zdDjhDXWm-3`v^H*I|BRZXoiBB=%)1qImMPu0ZCg z$q|rdbr)h1<7rA4GUW%C6&qElU^$x)Xp+D;Zmp3v+FE1SB1P4>5WxTKdZl5@i=Rku zB^J|a;$7BfJUd9ViU7RSo1I!L)OFC(4vCB|*JGES1JZrkALku;aZQipoe#G_CEaE@ zG>4`(xTp3rec9MNde@~??b5;dGrR4MQ%bI+F9cPrfdP_k;lL*E;RdCAY!#H%hqES| zpO$(lpp!B`N=~P(GatQK7``nbOkwjO1|sxP-BgCUJb7m-rOYtd5nUhtXqQZSEa*#E2+ax~|1Pf0yux6eJ%bM5aO(;e-bF3! zmSIZ{eGHz1OcdDHp&94Cyj4&mMBVhrV2Q-gMr;`*fM9%q6U+x*nXc(wDf zEbC-5%1*9J(nCrrpc+ySQiVgeTrE=M^NK8bwYlEtoakU3E1}x8pO@*MfC=L{(F#*k z|8c^v2I4Y^*Rr7_Zmw%t8^W~rBi*l5^z(!gInM&#vWWmptKVVgSrc2>`&xHJ&lQ99 z#s#r$^8cy(c_RitpUE}^A?)TA-x4itx!E`+cv5J*0zSX*3d`u+D(QXRoze8j%4jyd z`Fl6W-tjPOK9}_OD4q2Ln-}gfVzEm}QA|HvMD56Q>j<~Cf@Do~i?IeS5-bVpdK*~5d@JMGnYKo zr3dA9TM@h_NYiJJE|x7xA}qRtXRiO#Z0yct%MFwakmtjMnOWp0eXTOYqCB1CpAhrn zK*;G9%elluVIfwM7C(a?cHg6YI9DA&oN8*1032DC8z>+T$4JC(dj+xp2yokuRSy3?$2!+G@%>({HIq)uTt{zxwNi8}*nb^@}2xezvI)l(A@ z^Ebc7Gl7qhM>u`=wu&}$G(MKDvSWOud+{_la-T0DQ&_B}?;k`L7}jbmylA=f`q8PoDk1u+0WEY#VU2yYc4}_2Oygo%s6} zzZ4KwkPYAb>I=4`_H{F6bF|7U79z$U@x*2lEK&d+nmb&8oxL#kM8AmY9t zNCHqL2UqeBovhT{8q?W&_O`F_`kMu_qQytcTVDw8^0M_}H4A10-wW=btZlzx?x^1z2B0g2q%GTlWauACuqi<(H?GOA}9F8$4Rn8q$=zla%H8gK{V z9)I(SKUqil*;Bh(F}|IVxLmP18*$Cw4jBw9b&)TEm4_a zvzDvxUh`?b2sU)6K%THTL)W@Qe4g!H3A5ainmqSCVpE*Z&FLn9l40B~OT1p2T;nv( z>q`lP75HP%X1(3`?uw^0(k(&Oq+f#iLzTbcy@w2y(cwcgn0-YlBn|lS=Xs&YZGHfK zb^5QHs`nIYrpSza*^S@wRi?9wJ00YD=DdX9ig;k`_OUsx5#%6|1aJu>La!S zatjZRYiG;^yDoCU7}ZwSm1mtf`+j@lD;e}5CDkxc4M{05`GkcoG+X}+$)V7YGPWxd zn^p!E7=HH(LG03&go2syw@sYy6JrtTXX0p1)uS2)Np7i{%|-Kb5D&2fH=tECA^e_X z^6$-&5y}k00bt)iP!9SLaeASRzJ6-FVhFH? zl2VPsZDmI1FMm(HXaUO_dFn*FQ@+`@j*Rj@qR;N8do)PAedT=0lGb-X=gCao^MwKD zCRmV}CSV~fmo=;?YLxEgGS)Erkd$fDYZ1(2_?IR(f(zpJV-``%9C!)2lxvX>L*ia> zLK#%zs+p)_S|?C@ROhjW`uEh|8_+~oJc7lh?V;wv1ACa~XO*rD8*XcqFX9CgVX<@6pZE+He3e>fml%&NT>u80@`O51a*)PW&Mh>Qiipf8Lks5cCU{(h7qC@j;TN|?uuAX?koY(Jw$`SyC{Tol}iispd$}0x+hv!>SWIn0ywH?)A1A^>(4up z!2Sf+pc%W_%eKuCob#Fz&cN5*@2g+=VeYq~Q ztESrIY-=?q3W@FlmhWx(%|;o>2^lp90ln?~-&j|qg^j!DFCh4l#U?6j#|#0bIyh&y zWK{VnB$JE=fKFe>5Q8(s&w+fEKM)?F42XTN%5si*7T_U)T3dhV4jz3FSpL1XE&HOVJ#-4P%7%d|~p=rmQPTs)Y9=iK?LfUkHL~>9}4tNqfvK5+xf8 zk^rJuRLq-m1iaLSG)rDW`GUbV}Dw`B*;W%*aQe$(_d|r7A932WOyXi zPetwrY?FN_k(>K^+QG=gYVbO|XPbPMaN zisf#R>i@P?D;{CKQQbHsGPbL zRU|ocmB#qPrmd^eGT`R0MP7xTV~=MC4^Y1UI0puMONTZB{wgbbhP=kqpWyE|#L9Q( z8(tWeud;a3O}?Yf;M{eiDUm)R-V;8KU(u%f`B)D#o%>^;S6MTU)Hh5&O_~NfM>vo1 zxSJ%&JmX3ifE>?lebQtkvG99hO&lZwhDe!=0_cO(iypQU5RUkAgc}3*5`pd-!;~76 z6J@YI=RMC^zrOZKXaWg-mY}E*w+YY(IIpEgGqjeWQv<;M*ad5k&lKX4cbB8Mq zP$siq^Eqk4YagbTiArx*B)SASaUZh36UC?t5`>pO$w8Ft*<@94 z=63vQ!M8VH5=0IY`*b$j#RYyQUh&JuC`<+D5f6pI2fKD2YV8{M>ZR;VY|D(P!afuv zB$8vM*@+cqszAxpPE=IKK9(+_Pbo|T!Dn|acg|b0EiuSm^)^rsih&R>lf9U}ywAPK z+#b(obCo%&4}_8?!uuQ`pAA*XhZ-82MJeOapzz(vJP&fP4@RndQ|%DlJo^h$W~~zR z`8S-*uc-EUV6;n%KnX%O~Trcruya9Dj&b^-{QAWQ0%r>RwNHqkNH4GBWN9qNV+S>6FS^Lib_ET86_ zlAmjx)ooW~x&BUqx{v+$(ODe4 z%9Zzi0m2qHJ9wdxQu}XaqU(}I&)!Btd1Op6el{P7hJ$S8Bj1xqirKq8K+SW5Gg8t1UD|V1pcL`?-E~f%Jk{N0AntteRV7=$AE3k4uA*Po%%+IIKgw|Y&-Sru>t(D&CE zowxKbe0r`Ta{5eTIbtR#$Jtz+cnwa0q)3>X!oH6Rh(4;wL_4(oY3X@yXfq|AiGX<# z8`%8-W?wV_BDD0yr}EEN_**FE(0u};JCy?DI3+m$QrQZ%U@Qu0l|sx2ihPx(W5Wh_ zMKX(m#&saEXUOzWbFf&ru1i9|AFJD37T3kyP2(pp?ejG42G_Yp6OD18KCQ|qoI z!&z(Ni)g3OAR*=WWO$A?m5{Mda$7_dW^n5-AvhSE=E`?#atn2k_L3t^5ont}c=5@h zA?xktkl5xUfsS@yh?Y#@ie?=5NsS~G>NfR?A&;|{`x8*0F6mQFm$Lxx{`Q3NB4niu zHy7|$bf@rl!O0nL$RnZVu*whAD4IkX6OL<$2vKb-Oa?Lyw;=Yn{O41QA4Kwm=}z>BI~ki5vop=hY8anV3rG12WFAUK@= zd~^?}U<>JaS8tx#cb?CphAFqH&sSz*zz;hl9FO{_wf0l}Mt$iimf}#BQF8mu%a5V- ztLdz=H^Q^tk~~pm87X6^J|PZ`D;`O-c7`x_$!xJLM5!!&-*auhBnOxXOsX zV<%&eNbh!`V9C~}eGFJx(gV^E@d1cVO*4N|W0a?BS-nJ$!HacsU*@tNBt+^SpCfw7R}t)^`gq`K)2`DN(m@4jYU5 za)?w}6Qe*00%2v#8vwFmPP@gaD_E35F#2x#{ZcNBdN;$|wk}4K94CcZ7>XF+rLsdz zR@@gI{z#sqbQw|QT{g}?=qe=cKJ?vK8#T3{V&c<^SL)!vu=N98PbaZ=Hn69OiPx9m z&fwEu`R7%9k3zCtlHi;Te~mx{}z#GILahTE%ldcTU>skMXY z%0K7EFK%Fy4;6n%g;jpKz>Q>t`if}fd9qVaP@(B$lX0{&j1(Hx;4vXUJHK=? z9H4+l$0-_uR%nEq)-qzmIJRDJ!Dn0p=h#Y>YXV>YA2(mAqvg||e{*e&J_k+&vz#(VSw+i`O8^{U`znlA z*O)fWXRpjHjJ`-;nmz$G7Rl+LBmRX#Qpkog*VQc*TTbp4OQ90GB`0$*E!~e1wJgVM zbXRCSPp6^i6ml~K^A+l3I2Hl~4g5|BaUSVxKg*Wel(D533RJtZs=yq;B z>*OkKq^I~I)!nqRf>~FoQjpq*>wY*;oIbn?RSJD$p;#cr#NcI-DAkoZ2WH?l$)G05 z1FNv!+f!hxU)C)k6>RC1ix{8jn=_04(Gos_ad+;NfM+0`0g!!OE(Mqs?^V6sTTT7N zfjVT2nY!ubJ_>(??&a^Go}!@SmnpowAD}Ss*I*Th2ZV3Gs(f5T5h8@ZP>QapBaV9a&Wa$QE{3x<%G5 z$Ru?Il2!v*%u6fI1l=7evL4}=0uYB(o{F33h$*~aO$n?>M z!3!%@E2NuM_@;l#O*yjHCT_{WGt~ixS~u4uH#xAI-kEL<<-@VC4$D~xoHWA5Pc>pK zspop6gtLF%!9;8+>k#7naEPyM8yNrWbfjDmkqY6A)GZlrAlH4pyqF&jN>8VJRtwFE z4!VFRueP{rZgajoWudZ%Px!}~q}LIJhRNaNbhbrFDx=PafOgo<_mZMY#-X`<6g#;E z*iWAnb2$Z7!$1}_Itk&m!E<`wWQH8^^jYRrw3Mc9-<6TltzPmlYVNs~}AZ=d& z=p8fK{{PM^d}iF+e8gYqgta@m#UI>MOg4d z(Z=`zJrN2d5=xFz6G^}Pbc~EK%9|zTP|0XZM?NfUgxLO6FyvAkd1xp@9(qMRUR_W# zt1Ap&XbES-JZxZpK^Ns|=nCzdmcVHz8iNS4Px`LFOz>NeHVy9qoaVK;eggppo;>Np z3-@@zT9Nrqlev5dol}D%b_TDidy1i(M^O^1M)||I0guS znrHRHUULN%-G82Xo#mkBfDr&*BerPjhi-w~TP0Zf3OfPn$Do8N_|oThRsi&;yhK1% z{Zb{3J(1l~owemCPIY%SwB1@?f8K@xoS$#caiYh>KP-j%Y!@D6327$OCf&%dndx|{ zThfPOQQi4sgJ)f19{7AnKT|}U_(b0nbmT1iR&rlj08&QuD8AH1KD^(^YQK9nS_YP8 zc#N6V>={b^%h94TJ2K84HgTCdQAZ;5UjC92Cd)w}m*?@rZ=4;M%c9&bYJFYX7;r57scflFIyr2Uf$taUJ&&Ze7SPo$`+o|zE^eYPB-dCg_mxkd_>mw3loW5q!~`+-jNTP}?qX^=~L z=G0nEu9`NQ&~(?svvvRv4Mj?5x_QL$l8>xuvy=)L&FO*E3Iv#Q2a(`0s|^Di4#La} z$oa+db-qX5F$V*f2NIO-t!0SY1bUP_w6xg)%cYG&;mfg*^RI=1qkHcf<`a>l;W*0T zPXi_f>x#@+zz~I>ORNlc(ul`1w$i}56s9O(NR$@;#AZWY9)@-oiuF3{v8NXKbq_XP zVl&8I7kQkEUoH8;{TuAU_aBrcPLqio{mtJCmyZ}2Pg!{lz7rb5LA?CScY?T!|zY-}t%jUS~0*ZDzsphqg zw2y(zwdS?n5B;UUO6^yXtuL-JO*@6ZZ-CHZ;C#XNKWF8jQm#T!dQ|~&O0fmUVR27X zt!yZowTyr0r9epBHDs%^YL06Lkqbb6&)cL=iwdUntuO?T`5h0eleC^qjB*I3_v9ff zii@-9adXH-Ynx>E{{&8KSKIf_cc|`dB6k~u1ca#1ID!$^?U}G3L?Z-vrih)Y&BtXz(DK=HSAjd@w89hi|_y~rCQb|m;_-ACBDI_*?L_q9*NrF-Jx3) zVTp(=R~IsvsYI*yrlesko+vpAM9|3B9)pI~H$0OMNf;YBFn;6ox+Ytg>STE#$p*>4 zP#sQI#zlqurIHig{>N1`p$H^gK6`&Tu#>X`|FOMGjm*f=&v(*-ZCl2L5?>O3GFWjP zk_5yS(<*Haf4a%yWW9_<&-4DDadw+ZWTk`=MJ_BU3K!(>>UzsS8cgR$k`6c67z4vo zU#grleZeVSfr2EWdsvQUS+9m{lD>2$KuEzhq= z(n@TMjNSx!*nUf!dh-DbWD?Gp8X$E9G~TdV?2R_pgf&(F%G2)!Ue%nN`8p#tfI?@k z8Tr2DC?M#AmQfX;5njMCK`8>-?)y9)oiX9Be$?(N0x5oaWE?^UIN0z9kZfw49 z<#VhJel!4?@yYsJ(2F^h1jD6`#8?Kg)^)=8`17&{I5 z#+WlJZaiQfrq0j_r!UEtu?p^>pY!&(FW)8I9U4731fYT-zT;i_>vRTOMnVka)8t0% zj2Ph!Wc}y#1gEd}pyFLx{L6h(1Bp4Jq;+r7_OK3&A|ndZCYEl_@2ia`E6=osojMi+ z&@EdFaF|b*3(rgv&kBtH+ki0xuDT2)H}BzQfHfvg6y-2oGey7($)mWTZ_NN^@}t{5 zx|wHtaWyk6zR{~FhX%$iflU*p7~loyEcU-QJvL^0d@?@yXa1+ELfWbKuhd(06!b5# zd3DRtD0h)*DbWF?1rPf}P_{F7>h%N`k%JKrk(U&EyvT?H!3gbgqzT#P}%;xGc>KA%oF2;LkVqV z#Q%x=l256tf?Tpr1O8RUbrcRYPA+D?@>~TwUFu;#vn|KxSwo&yu`e~)E+b?LoO=pI zm89gZt7aF5mLbS9KD@1c$qKB}H3~7O>2rt&Br#HAYeOrr-Q^&%L%&EM02C>CT@>-^ zH`NQTzmY*F;l^TJMW5?BJjP(f0+L^5rw4^BBmJPHp||?JWA3+#%pA}UavU_vr`Q?T zmSIs!N1Vm_+bzA<5_+$E1^^xWI0xQvN18xzX1~8*uh#!eD7ngH?xYK=?x@fqHur>V zazL9&C|CbQq@%KV>JAJPDu(UN=!vL{qs&`1{2Jg!-jO>LMCPxhODFrh|M^%p{pm}k zkWs(j1ua`P4%1Bidc!=mT|ZXDzUtV6bfqBcPuG_JxpUce@1|3%5EZmzP+o`$!QsP3 zd$?9hK*t4J=e$=Dd_vMM#*=|^jp*7#j|cBM*XrGBH*-@6WG0nusu*6;=xxrWmvU&fuR3i7A$JMk$*ZFtQ9tKMn9AFHVpOIad?{mCU%-;9R7~8Z>DR3`o@4l ztO_1Qg)D#v&-SAmYl}1PV}*B+@+QxTJL4zh8>DNBc9RfcBO6UTTKW@!r|7q`D)oi> z!&6h1WXKsFbqnCIPuem>IbajJ>$iiCro;c@NV(&6wi%#{Cx+H(4}b}jDG{|o%w--;PkFQo z0=zaCviyU5ek}@zktxv*O#&UH#^SVWs^SlJ=TNpRMti8&@>TyIcDExYp1a1pLQm$(o$qouHb;`Y9Y z)9JRJqi{JNRadldOm~Ugyy6X?S?aL>8Gy|ep}qhqGNECMg9#U;F?%~nm6CKA*%ZG) z%`XqUtvHUap1{4X$V2M6h>-oj4rZ{*%DKOAms-_OGP~K!W%NveyK2U-vt~(R7eNVT zSh4LrcQSD}G|P&U?=>pWjbj>P5J!RMV5Roq)k2#YUj(Txg&F!LXI?ZF77g!+(|)^TS&Sl*A2FQ z^(_-XVCBw~s3(;cVTGk<#^=t5nO=(c@PzQh(&;DE29C&SZ^x@M%FROB2y*1LChZj? z`N_nrq%pN$0>;fnu1?DM8o&?Y%<5=Di`b&tCP)Jonp@9A9OfM)>xh8)z^l!O3wG(s z&T8oY%4%@PF30klV0ziCh&o&O5IN{eV>}h}^QbXyeZ63hp~DfAXktPYE`uMEd_~#P z(|-8WxlAC;s-ZXe-*Sip-l%ua9Jh%HA8&poqU^yfJIJW4dw6M)kiLz#JG_biL#*GB zj3bf!hfx7RCgr3GkU^@#;Ah%9d0jE}xfx$Ll|KzBhnkU3W9OCEq2at5>cnKB@-iuA zW@=ctX6aK>aFI0ny4&ib@`#K7j>L0m`ZG`&CjrZE>gYsfL=T$t(IJnYV@0EBy6oxY zOiir5XOP0-!@whOd2oi%N;DSAddQAsUAv49LfhViXp2zK3{KWenhwWXl(WzYA_oJ& z73bUkN2V3{k_L7B!9mn`b`&NXrl2v$v&>p-CuXmg;64yF9CTmSJSTtj6E4R7r717E z*9||r2*M1|XL+7#tgsBZU7@YlPnVfi5ek7rOR3|n-E_6>M@i%(fjN)HMaq}?{C)fi zw>rg^FuKs<5rFuHZZLBG6c4dFa%ocnCU;tiW{RNLfF$sdd(z`~blH#_y?!4G!p^^q z8^vpF4quP{0RG-jpJ<|?O4D4C|L?M01g-}?8t^A_4b(mHVf$T$`;(4s-0VfqIi%Sm z^eJI8KQp^KumeG|eX;=toMn^kSm#ac7`=7u!QVhbzUc|;UraRAzqO6zEu z(gAI-w8CbRHSRKq(V?!;0YVc(n%!#Q1JOcjXV<)0!2&U0lGXq11s~_&_(d22D;{Y5 zk3*Gt*Nt|Oj8dg~8d-eHn?oLN4}#Ya9u2>iWS{bknj5tfUXwkS`G>;W>1}}D2ya&z0TSaUndVNInGWZ%@{^6i& z{6S?=`~9y|qcw!xM+IC`h5vkig0zT%bO8gVSuDv>(+di#0G1U&Q@ruq421Y|brQo+ z1&v)1eWr7NUKP4V&BdRaU1-TM1FW(DEv24)mjjKAcnPvq0u!J?D779GsN6y%0^xsC zln#7XYj|!2Esb6c)z*O_mNQ9{oC1QQs`QWPn=#Riz0Qg{?!Gp9h?Od~9JIaeip3y& zGMR(b)J#D^yI@|lzJgB}jJ0kl3)*P23)H)Q3x!=4885crLO}>olE;;>(!sv5v>#Th z;lket|9g${surMh$|XC@%;hYgTd4ZX0jpH{036UXc>VuTBT*~eFH&Z2C|y!(0Q)Vk oYA?T6IQKg0mn5w5Dt`lf_8_gY&$UyOGpCtg!TU4-`33+02EKL+2mk;8 literal 0 HcmV?d00001 diff --git a/data/common/games/lrl.hsr b/data/common/games/lrl.hsr new file mode 100644 index 0000000000000000000000000000000000000000..4c662e03d184cf1a4683cdb732297881044c7b32 GIT binary patch literal 154 zcmeatPf1k>D$UDFEmH8wEK61J$V|^r2u{u~N-dUR3(HI{$u9!SGBBL*?6P~nC|4rQ z#DG;o#E_AJ-7P;~!8b9lv^cd0u0w&Dfq~O8FF&s`Hy=gf3nK#qw-3Sva2*Ul002^p BFo6I7 literal 0 HcmV?d00001 diff --git a/data/common/games/lrl.lev b/data/common/games/lrl.lev new file mode 100644 index 0000000000000000000000000000000000000000..5e1f3ed95fd76b85c395f99e2eaefe048a6820dc GIT binary patch literal 6265 zcmds5+j84B5UnWLN^H4S)7VMemwbXKN<)5xpZX2;LuWeaOgqi@_nbYu3y`9s@#HN? z41ze=vlpxuke>hkZWxFp*(~a0XJmsD!p(bExBm)A2C602jP+Q117<&{tfLUQo zdab4BnzEQFaLH7mB$WtQ4{Rq^nK4|)HbQA7BUhA@`9LQ9FMuUhqRyp<8Gx0Bg7T24 zwi^%vLX^7Ls1%mky4E(EXvG#oPtVJ!(av^#zd;_ny;?TgH>>9T>*_(+VNuKE#VmI< zn_}uynFJA4Lund=nE~A)tE`1@i5gF=OVoT5H+olXDAsFr_WQlzM5$J*6W#3$cV?TO z@b34vTQrwGSCZ1}wIrOGdR#Mu!YpSe9$8gpK}nBoRcp-34~dz$QUs2OSv+P6Y5cYI z`X{;5zVF{558iE54_2rLPt9`nY$%x+9?EU@?wcmU5a0Qzz`i?<(n49|vh{XwCw*O@ z2HTu%bA>_;h@cvCU5*$%%DNgusSip=dPxLn#!?jW!98lV2aw>jDK)RiOd6Z9ZUe zVAmOnvsX658cs*NHRhYyOcc6zof~aq?s%dp7)CG~9A#2c5bYElj$jVdQjx1d7N|r* zu%pFiQ0k$o&}-^2SsBeKvr0>6`o6zKJy=~Yn~(Q67gkO4^YUyxaJ%JO-BU++Rp#TQ zm`5WBVV~uVxlaZ|;k?PlyJpR2xl*CbEms}S!pzTU%*L~lP5!dVP;s7Pjy<9&Mydks zHisJ8q>GScTtPjpf$DU@=LmHvY|a!ipQ7}K&Bad9YtbBv5E@uBD|X|)@A-Y<3FpEF zdGN~y^#J1!%ei_W!qi-OS}gbmYK|kTZApAmyiS@??Y^KGvgvNY4<2h}$vvS?i^~!Uwww7_+aez_Bck5d?A6U`QoPly?ieUto;=oS?Pvt5I6! z1T(T1(asA`$`((_sxL{ruFB>_nML_BMJFI+`F-ILzaK1-2WNgdu<7caIK2s&1)x?$iuiufW0%@1KsEw8n<4Jq2qW~ zHtA>44&OBF+k;SBjQw}LuvVr8iX%Tz10uT0t>Ml)IK^RiG$@S?hq?UbNZ~@Gx?9 zt)o z7}k-bm*b{-aCf(C9`07n-J)qeF1}q4Qgt<;j$?c7-(?ihz=aA2;mOmi2lFud_xT<86qyQI+Bj#-9aSsNWt>9zrQF(>i$+dQP5w|383xj_?2g literal 0 HcmV?d00001 diff --git a/data/common/games/pig/evil.png b/data/common/games/pig/evil.png new file mode 100644 index 0000000000000000000000000000000000000000..a58776f5ec7c317d42320f3c2112cbd6bb9924b7 GIT binary patch literal 55002 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
5cbh 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 B&*T6A literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/simple.lev b/data/common/games/soko/lev/simple.lev new file mode 100644 index 0000000000000000000000000000000000000000..9bd04550957b40ca10056637de0e90994b7802c7 GIT binary patch literal 5559 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 literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/sokevo.lev b/data/common/games/soko/lev/sokevo.lev new file mode 100644 index 0000000000000000000000000000000000000000..42ca104d9757ab171d2972ad8fad8ccd2f5fd9dc GIT binary patch literal 4886 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 IPUb)U2gK)`{r~^~ literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/sokhard.lev b/data/common/games/soko/lev/sokhard.lev new file mode 100644 index 0000000000000000000000000000000000000000..d0a77f68e9fffc63807d5accf16402bb6c11a13a GIT binary patch literal 1367 zcmZ`(TaM#K3?%iiWg7`v_8dS*$Pw7>8N`p>46xYbo7{FKRYFVk)8 zFP8%c(k=$kY!T0yqLBr>AmJGBCd{y39;RXZKa>Wb*sG{eNS@^#RUTj84kf;lfET_~ zKos)7$AW5^oz|*Zp6qED|F$DZkRldeLVPMBNIMHkn(inZ5x8njy^a0zbAN0(IP<8I zH8KjL0Ez^oSU_`#8IcUuUIdzBC7hfrz+h~!E_L5EBC2BUa9ljY6zug7tZ@$&OtPIdII|OlSl|aV%VzA-|`METyw* zmLF|;9!5KnbV^&#s&vJ7)IbW?BDeu0;R;j*Hk%DlFH_%-=jI)t!VfI8=LmQgi&lA0 z(xM{c%850*udo8yh0dO%`eZlzFl&gVpq6W9+-J%ljc$QPA?@A`$%&-U4lb8c;u+=M z6Rj4X4bx%gPPfAQTPQFBA#q$NJ*X%nZ3V^Ee}L7h{`}QFx}z>$g)G4+SQWHHB=U*G={3Ki}+B3U%NI7ksD@1*#E2Gif;E9o@OEb+h=(F5f3REs=r@6XL->DFx72 z3nOjOj2(c`%hA*r%# z_ZWqM^@CRDRU`)#7@tKFdbf|QrJTU0Hj4>RE4S=eCRT|Hrv}Y^+)Sp z`vdKg=HCokZVO<3N0Laf0k73+@i-yej;;Fc?648O)9fIn z`&m4AB0tQsf#swzOlqClg0W#!}0AWYz80_Ye2Ck z?qcg*&_FgqWiUL1O8M~IJi6&|4k4X#EXjHkY^qeU1_hD{dR{<&*!#Wxx_naSax{!d zCfHzV;o)0;V3JH!DawYuXaw2eym{{A9Zz-CrH-hRpwn8{64**A6(qPfC!l|@k?Qk} zs&pXVsFuV|mGDP5q0o`u?7X?o3IUQ6YtDlWbC17)+~Mj?AcbSxmJ>=r%1O25xma{4 zMrdCf?PF011A${oLR!k&!raLtxh2z{*CJIm&?fGai3)EC1w)gh=i}1}pp& zs~FfulMu9ap_sk0-XHWYo4=Z`?ySn_$i65^7$o9-D9*Ftw+POPIa2akxiwmnS(OGx zxskRCG@Bm9zbNmE zpiAB-en@)Uj#`f6PIHHHd8*;!O#_ZGjY!JNl+hqW4lTt#;=SBi{Vj*vgg+g}uBn_R2h;Ae>lx3PowE@E1T-S@m@+o4)ijr9AQ7^+!m$eAw zI8ThYGx;VH8RFoEvXn%&r4<(er$}i@&-yyawrp=cON%%lly&SulwK`mSTYWAJFY$4 zogvez$Fu?0NWK_dl@Pa(I+uDOxQy>r;`OaQC%FriohdPSf(@F-1xG>z);MDLuL6Hi zLS<$VNh}1I6%tqwy69ZEk$foWomKE+Y`v<#TI+ZT~ z!xvc4-e}{Q3dS^1UHGp=+oqn zAqi<7dGia^+SgaV%Dtr|I<>B)JYmnuqI;9Dok=;U!V{~&Z2R+)^6 H(yjjhU-Q8F literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/soloban.lev b/data/common/games/soko/lev/soloban.lev new file mode 100644 index 0000000000000000000000000000000000000000..0e67d8ea47a065096f396be64e42c48679aa5af2 GIT binary patch literal 1025 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 KPXZQKWBUVF^E}}I literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/titlscrn.lev b/data/common/games/soko/lev/titlscrn.lev new file mode 100644 index 0000000000000000000000000000000000000000..0c7acf79a77a1be08f7242770b3fabf435e10202 GIT binary patch literal 1094 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 literal 0 HcmV?d00001 diff --git a/data/common/games/soko/soko-5.lev b/data/common/games/soko/soko-5.lev new file mode 100644 index 0000000000000000000000000000000000000000..ab118f88946129132384fb2e483cd5d5bcc02a94 GIT binary patch literal 2652 zcmZ`*%W~T`6a_#^A|=_Ps7$8mbOEip=*D%r4?t2c$B8qwr)y9)ZE>QAEGail|Jq;R zo(nOS)B_YP0P)qw}c+(o=l;j5&t4#ix->kOsth&mo6ITTc zjKokoiU$dsSZ*-Fa_W11%Un+Ls@{&>sjE1KtE|)%bIpdJCk3bpqhL4>Kva>ozIX7h z_y+FBudf5ywiF4S5|HF%XCeq%!?}juh?wUHJh>U!46o} z%tP$o-+A63UKcfai$XL@%Xv$)CHxysLWoMRZ_UBn|LMo*@|Y!DiI{{NU+s0UFcyj@ z(9`j|NnV#(MXDHOV8jB-f!!h4Z@xNP(tdK7!{c}~F}Y~}zIsoy|j2JboKHs9}_Z;H>?>-1xG%oD^w zBLz{7JTL**60spAb`@EQkPuWmNP(}cerGY&4N{~b24CP1?ATEo_&?jS*PCLy$}0Iy zR=bHi5z`i>m}ZwaH?qEj3ls|5I+pL}mjZuV;WJ|2@gLZ;Dbwzrc4;1H!(CH~+@A0; zdO*Y@^oJi4?)7?;wEoi6ok*O>whSeVAiI=_a9o8HF{8qi8UPm9#FSYnw6@4e1nR4I z@CZsC@4?y)lz9XN4?ck+S3U>!dJpDWkDG6qQJlFJM9u7|wf9(k|Ah_8b-rFpghk#^ z`HxSS@)TT8B|w-li$}1M<|B>1MK-GxOUX4lo^4dG4*cVzqa&HYXJ?B+TeISdf;d7f zF$~QE^tDHi-J|Bc-=?i)kYbpx4;^HIcp_v1=jqNPO{ChB{WIJiuMWEpynZ{2T{YlS zmN^+3gBfL`tlnpD0@sFNbE7$;Fhr|@_h};Gqqx~|7S8?M zLC@Y&vtoUfZDgF@WKQD7BE~gg97RTNaV?56M9bx-3}jGJn$SA3{~^L8$#KR_0NC{p zFRHXGaYv*#X})=rxN69z0hbPyJ=!MV43dS0K~>?G__8_5uGjT;1(5$cC(=Zl6FQ07 z2RV=5h*Asml;p|?5WzY`cMT^j!Clz%Ey{b`aB~8o!ImPC+^|%@CZ=%$Z=u~OO8^wA z*8Vj?$LjgL)1vq&^(srR#(c^n$KG{@NnBGzMdMfV8QDUv5e6(hnzp(>W^ z>{H!TNw@?*92GiLWDB22;D7>(M1x-nOa&^2upPwDozhoF|6rPaDsF3h6>Rc)J`*qwMd>w$+e!Gj{^ z6Ltyo$Bh=fmJ)+-F;leIwc3PJqYe5m-{+T^jIx`2vq1}Q95G(BfGx<=rZs0V2wG3X z_@Zeh3W#q5U%R6$99}u|Lg_&G4qB4f%RK;x4l^_k^H~~#vmjl(8dbV;>TXZ0Vaq8 z%yNQB!~r-0M_4!kP7W}9HTG`20*$7sf9mI}zuxwHgD7#||=JSj~;>gY^Z#nv5NG@H}+d+T$C^R|S zOeR?p(iuxCZTvKn;o7xbPAi_nmwHe-r>`i-`A9~z7v)(Rl6w2}_|V{Io5^X`I;T0@ zu}|z!eTQM-hLUdw5(*j)ITGVEBya=;2?W>9u?89=?eltjd~|60bTj!RyM!e4Oiq?z zgZ)})MsBp`z++(#l)1-6Pc!BD5)ls$jUeK)tbK`OK$mis6}cpbq-VfN1aJZi;34g_ z!VjnhYn938RsrYioG4r)ckzJg%sxy0^+c<)dgef#a;H3`5_D5cx-7JXPCCj404lsC$g%IMD0?+lHjrP}NF55k)09A0!W0!SpfA>Ku; zysA0YnlxMkC8>U@aJQ38Y;sXQ^mYk;_07hfO!06mQb#{SBpQ^`tc^!rr9j-68;b(| zSHbA4#6OKo;u?M$)=i1GMY@>9|z2-!;f~ zUA9Mtjx2BK&Y=j%1?r*x$VZCrP;-5r9(w)e4cjZg2h9L_hU*9(b^IWSggD0FgIT5E z_+ztr)ATMLGdiyyj*pup?=a*2IL-Jad9!YmEw4-T85%v^(UAO&?sI=3|3*#1Afgi_ zW3C<9MsIdPtA5ybd;rd#J;hlqZdnZ9ZAqH{{jWice(%o literal 0 HcmV?d00001 diff --git a/data/common/games/soko/soko-7.lev b/data/common/games/soko/soko-7.lev new file mode 100644 index 0000000000000000000000000000000000000000..47d4dae73234045cb7884bdcf3536c519cd5d32d GIT binary patch literal 3980 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 literal 0 HcmV?d00001 diff --git a/data/common/games/soko/soko-8.lev b/data/common/games/soko/soko-8.lev new file mode 100644 index 0000000000000000000000000000000000000000..62a85fe5abf1dccc448773d51e5515243b1522d0 GIT binary patch literal 415 zcmZ{g%S{6@5QhJmjq(r_VTlHS@JMbRZzR?^(*Q@LNJvq*PYI?2m*CpcKp3w$cq4J~ zVf_8yJkGQE&HMN1>-hO`aCZ+oBuNmLC1ZCvFWb*Y>M0=g1qlj4aT(fY1gjgmY&>h~ zSx6w15ZoWH$d=DzS-56aizf3#aVGPi!PFj}bbK9qyqUcvp9hpqxRBH_!pI6a9BXr50%l)n>>|*)j;r{xJ zoDqsj2BDx@Q9jXBNu?6P4h=L6EHuP>pck^L~k z1h0bfS+(CyCwBhuwCZX)A+Z7TB6*fvwATV{55PlSk%Nm$B?b1o>FV=b_!kTHU5|A} z0$3EX68_Dioj%|1CWTovFI|1A9jFo!TNAQiMPW_Y5PJ&N^k}hsUfzQjx#uWv2XLea z6*3@@Y#?ze2_|;d+}2&KE1ewAR-#_TZR2aIF#Ko0eQnf0iJY77P3oOF80~$eKD}ttbp6(ipy;OAA3TK*Z=?k literal 0 HcmV?d00001 diff --git a/data/rus/Makefile b/data/rus/Makefile index 0a57931226..4b2f05cf65 100644 --- a/data/rus/Makefile +++ b/data/rus/Makefile @@ -196,6 +196,21 @@ FASM_PROGRAMS_CD:=\ drivers/atikms:DRIVERS/ATIKMS:$(REPOSITORY)/drivers/video/drm/radeon/atikms.asm \ # end of list +# The list of all FASM programs which needs to be compiled without KPACKing. +FASM_NOKPACK_PROGRAMS:=\ + distr_data/9x2klbr.exe::$(PROGS)/hd_load/9x2klbr/9x2klbr.asm \ + distr_data/MeOSload.com::$(PROGS)/hd_load/meosload/MeOSload.asm \ + distr_data/mtldr::$(PROGS)/hd_load/mtldr/mtldr.asm \ + mtldr_for_installer::$(PROGS)/hd_load/mtldr_installer/mtldr_code/mtldr.asm \ + distr_data/mtldr_install.exe::$(PROGS)/hd_load/mtldr_installer/mtldr_installer.asm \ + distr_data/MeOSload_for_usb_boot_old.com::$(PROGS)/hd_load/usb_boot_old/MeOSload.asm \ + distr_data/enable_for_usb_boot_old.exe::$(PROGS)/hd_load/usb_boot_old/enable.asm \ + distr_data/BOOT_F32.BIN::$(PROGS)/hd_load/usb_boot/BOOT_F32.ASM \ + distr_data/MTLD_F32::$(PROGS)/hd_load/usb_boot/mtldr.asm \ + distr_data/inst.exe::$(PROGS)/hd_load/usb_boot/inst.asm \ + distr_data/setmbr.exe::$(PROGS)/hd_load/usb_boot/setmbr.asm \ +#end of list + # The list of all NASM programs with one main NASM file. # Format of an item is exactly the same as in the previous list. NASM_PROGRAMS:=\ @@ -306,6 +321,32 @@ MKISOFS_EXTRA:=\ Docs/cp1251/readme.txt=docs/README.WIN.TXT \ Docs/cp1251/stack_ru.txt=docs/STACK_RU.WIN.TXT \ Docs/cp1251/sysfuncr.txt=docs/SYSFUNCR.WIN.TXT \ + HD_Load/9x2klbr/=distr_data/9x2klbr.exe \ + HD_Load/9x2klbr/=../common/hd_load/9x2klbr/LDKLBR.VXD \ + HD_Load/9x2klbr/=$(PROGS)/hd_load/9x2klbr/readme_dos.txt \ + HD_Load/9x2klbr/=$(PROGS)/hd_load/9x2klbr/readme_win.txt \ + HD_Load/MeOSLoad/=distr_data/MeOSLoad.com \ + HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/AUTOEXEC.BAT \ + HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/CONFIG.SYS \ + HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/L_readme.txt \ + HD_Load/MeOSLoad/=$(PROGS)/hd_load/meosload/L_readme_Win.txt \ + HD_Load/mtldr/=distr_data/mtldr \ + HD_Load/mtldr/=$(PROGS)/hd_load/mtldr/install.txt \ + HD_Load/mtldr/=$(PROGS)/hd_load/mtldr/vista_install.bat \ + HD_Load/mtldr/=$(PROGS)/hd_load/mtldr/vista_remove.bat \ + HD_Load/=distr_data/mtldr_install.exe \ + HD_Load/memdisk=../common/hd_load/memdisk \ + HD_Load/USB_Boot/=distr_data/BOOT_F32.BIN \ + HD_Load/USB_Boot/=distr_data/MTLD_F32 \ + HD_Load/USB_Boot/=distr_data/inst.exe \ + HD_Load/USB_Boot/=distr_data/setmbr.exe \ + HD_Load/USB_Boot/=$(PROGS)/hd_load/usb_boot/readme.txt \ + HD_Load/USB_boot_old/=$(PROGS)/hd_load/usb_boot_old/usb_boot.rtf \ + HD_Load/USB_boot_old/=$(PROGS)/hd_load/usb_boot_old/usb_boot_866.txt \ + HD_Load/USB_boot_old/=$(PROGS)/hd_load/usb_boot_old/usb_boot_1251.txt \ + HD_Load/USB_boot_old/MeOSload.com=distr_data/MeOSload_for_usb_boot_old.com \ + HD_Load/USB_boot_old/enable.exe=distr_data/enable_for_usb_boot_old.exe \ + /=../common/games \ #end of list # Text files which need to be recoded to cp1251 from native aka cp866 @@ -418,6 +459,9 @@ File\ Managers/.dir: mkdir -p "File Managers" touch "File Managers/.dir" +# extra dependency for mtldr_install.exe +distr_data/mtldr_install.exe: mtldr_for_installer + # FASM black magic goes to Makefile.fasm. include Makefile.fasm diff --git a/data/rus/Makefile.fasm b/data/rus/Makefile.fasm index acf397fb86..7e81ac5935 100644 --- a/data/rus/Makefile.fasm +++ b/data/rus/Makefile.fasm @@ -37,9 +37,20 @@ $(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) -include .deps/$(4).Po endef +define fasm_nokpack_meta_rule +$(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) + fasm -m 65536 "$$<" "$$@" -s .deps/$(4).fas + prepsrc .deps/$(4).fas /dev/null + prepsrc .deps/$(4).fas /dev/stdout | \ + perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$$$1 if/^;include\\ \x27(.*?)\x27/;' \ + -e 'END{$$$$a=join " \\\n ",@a;print q`$(1): `,"$$$$a\n$$$$a:\n"}' > .deps/$(4).Po +-include .deps/$(4).Po +endef + progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD) $(SKIN_SOURCES),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) +$(foreach f,$(FASM_NOKPACK_PROGRAMS),$(eval $(call fasm_nokpack_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) # Rule for the kernel differs: it uses kerpack instead of kpack. kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir diff --git a/programs/hd_load/9x2klbr/9x2klbr.asm b/programs/hd_load/9x2klbr/9x2klbr.asm new file mode 100644 index 0000000000..48352be052 --- /dev/null +++ b/programs/hd_load/9x2klbr/9x2klbr.asm @@ -0,0 +1,202 @@ + format PE GUI 4.0 +section '.text' code readable executable +entry start +start: + push ebp + mov ebp, info + xor ebx, ebx +; set current directory to exe dir + push 300 + push ebp + push ebx + call [GetModuleFileNameA] + lea edi, [ebp+eax] + xchg eax, ecx + mov al, '\' + std + repnz scasb + cld + jz @f + pop ebp + ret +@@: + mov byte [edi+1], bl + push ebp + call [SetCurrentDirectoryA] +; parse command line + call [GetCommandLineA] + xchg eax, esi +; skip leading spaces +@@: + lodsb + cmp al, 0 + jz cmdlineend + cmp al, ' ' + jbe @b + cmp al, '"' + jz p +; skip EXE name +@@: + lodsb + cmp al, ' ' + ja @b + dec esi + jmp q +p: + lodsb + cmp al, 0 + jz cmdlineend + cmp al, '"' + jnz p +q: +; skip leading spaces + lodsb + cmp al, 0 + jz cmdlineend + cmp al, ' ' + jbe q + dec esi +; now esi points to 1st argument + jmp @f +cmdlineend: + mov esi, def +@@: + mov al, 'c' + cmp byte [esi+1], ':' + jnz @f + lodsb + inc esi +@@: + mov [ebp], al + lodsb + cmp al, '\' + jz paramsok +usage: + mov esi, usagemsg + jmp failmsg +paramsok: + cmp byte [esi], '\' + jz usage + mov edi, esi + mov al, 0 + xor ecx, ecx + dec ecx + repnz scasb + not ecx + cmp ecx, 290 + jae usage + lea edi, [ebp+1] + cmp ecx, 1 + rep movsb + jz copydefname + cmp byte [edi-2], '\' + jnz namegiven +copydefname: + dec edi + mov ecx, defnamesz + mov esi, defname + rep movsb +namegiven: + push ebx ; hTemplateFile +; push 0x04000000 ; dwFlagsAndAttributes = FILE_FLAG_DELETE_ON_CLOSE + push ebx + push ebx ; dwCreationDisposition + push ebx ; lpSecurityAttributes + push ebx ; dwShareMode + push ebx ; dwDesiredAccess + push name ; lpFileName + call [CreateFileA] + inc eax + mov esi, errmsg + jz failmsg + dec eax + push ebx + push ebx + push ebx + push ebx + sub edi, ebp + push edi + push ebp + push 0Fh + push eax + call [DeviceIoControl] + test eax, eax + mov esi, errmsg2 + jz failmsg + push ebx + push 2 ; EWX_REBOOT + call [ExitWindowsEx] + pop ebp + ret +failmsg: + push ebx + push ebx + push esi + push ebx + call [MessageBoxA] + pop ebp + ret + +align 4 +data import + dd 0,0,0 + dd rva kernel32_name + dd rva kernel32_thunks + dd 0,0,0 + dd rva user32_name + dd rva user32_thunks + dd 0,0,0,0,0 +kernel32_thunks: +CreateFileA dd rva CreateFileA_thunk +CloseHandle dd rva CloseHandle_thunk +DeviceIoControl dd rva DeviceIoControl_thunk +GetCommandLineA dd rva GetCommandLineA_thunk +SetCurrentDirectoryA dd rva SetCurrentDirectoryA_thunk +GetModuleFileNameA dd rva GetModuleFileNameA_thunk + dd 0 +user32_thunks: +MessageBoxA dd rva MessageBoxA_thunk +ExitWindowsEx dd rva ExitWindowsEx_thunk + dw 0 +CreateFileA_thunk: + dw 0 + db 'CreateFileA' +CloseHandle_thunk: + dw 0 + db 'CloseHandle' +DeviceIoControl_thunk: + dw 0 + db 'DeviceIoControl' +GetCommandLineA_thunk: + dw 0 + db 'GetCommandLineA' +SetCurrentDirectoryA_thunk: + dw 0 + db 'SetCurrentDirectoryA' +GetModuleFileNameA_thunk: + dw 0 + db 'GetModuleFileNameA' +MessageBoxA_thunk: + dw 0 + db 'MessageBoxA' +ExitWindowsEx_thunk: + dw 0 + db 'ExitWindowsEx',0 +kernel32_name db 'kernel32.dll',0 +user32_name db 'user32.dll',0 +end data + +section '.data' data readable writable +data resource from 'klbrico.res' +end data + +name db '\\.\' +vxdfilename db 'ldklbr.vxd',0 +errmsg db 'Cannot load driver',0 +errmsg2 db 'Invalid parameter',0 +usagemsg db 'Usage: 9x2klbr [[drive:]\[path\][imagename]]',0 +def db '\' +defname db 'kolibri.img',0 +defnamesz = $ - defname + +info rb 300 diff --git a/programs/hd_load/9x2klbr/DEFFILE.DEF b/programs/hd_load/9x2klbr/DEFFILE.DEF new file mode 100644 index 0000000000..2684f09da2 --- /dev/null +++ b/programs/hd_load/9x2klbr/DEFFILE.DEF @@ -0,0 +1,23 @@ +VXD LDKLBR DYNAMIC + +SEGMENTS + _LPTEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE + _LTEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE + _LDATA CLASS 'LCODE' PRELOAD NONDISCARDABLE + _TEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE + _DATA CLASS 'LCODE' PRELOAD NONDISCARDABLE + CONST CLASS 'LCODE' PRELOAD NONDISCARDABLE + _TLS CLASS 'LCODE' PRELOAD NONDISCARDABLE + _BSS CLASS 'LCODE' PRELOAD NONDISCARDABLE + _ITEXT CLASS 'ICODE' DISCARDABLE + _IDATA CLASS 'ICODE' DISCARDABLE + _PTEXT CLASS 'PCODE' NONDISCARDABLE + _PDATA CLASS 'PDATA' NONDISCARDABLE SHARED + _STEXT CLASS 'SCODE' RESIDENT + _SDATA CLASS 'SCODE' RESIDENT + _16ICODE CLASS '16ICODE' PRELOAD DISCARDABLE + _RCODE CLASS 'RCODE' + +EXPORTS + + LDKLBR_DDB @1 \ No newline at end of file diff --git a/programs/hd_load/9x2klbr/Klbrico.res b/programs/hd_load/9x2klbr/Klbrico.res new file mode 100644 index 0000000000000000000000000000000000000000..06b56a382738ce098f6f7c92b169878ad31f2478 GIT binary patch literal 1204 zcma)6T}&KR7(ELjk|;7vOln^k=?fZ@?r?Jxp2P>Aj0uqKbseb`rTb<(0G+2CY(- z7Er8v_^hLC6~Q2=F8f7$+2iPX@dXSty$0ua2fmB+U@CDQ_r8u|{`(79z4Zl_ejLHC zcfUnGJ%K-0ej+SjXD3%^DP>NGfTX3h_uM7g#BDnkO~~9>EMmptf&B1bu*Zts^as07 zKi?S)55A#02YWi-3bwPCp0qoI!8a#Mo^m3=&eLBSm5zOCwA%|$=7;w;KXJ3w?9~r) z@40R^b7xLwGTH3xEX~PMsDV4KJ16C44UjGeCQ5-Wa!O&p*wa<6s!_GdPlF1IKK|1u z<)hMHCj6I=r;Hk;$89W3ev0{P!&sjB980%HvGPk2nbahHo4tXx`#)o2aRwXN1?1P4 zvAy*>w&h>cSZ(*wH)ImWn;3BG%f=UfQkC$Ot3<0BFB6ZQLB zMH|t)5Ee;3E<#}+@pYn{F^y3{s8LEv8bG)1+Ns zO{4HC&g$!{pR4It)XR7?b*b01XInH)N3#&1Vpgj?V`>`XWo3Tif|;65vKJ>REJTFh zB+_IqfC^ZlkWd{o-6z6iOe7Q*oYZQ@MVsQi17RQ2TdJAxTOR^;#1cms@7KAol#vyY z$bipx;2WJcD+-L+mSBf-jKBMFG#W=5C>Jb{*Bk7pRm3Fl-J8TLv%nVgxLc9W^GBShteW79LU*^E0qK5|rX`TEp!#--cp zwic+|dYc%<#i1gXTW7AgZtAl=O5Y@A+tI7LDlO@9`ek_3jX1jr)T{ze)9WgfPtZ@G ei>}}v@c-gL{sh&hsgLTZunjb-IkL-BnEN+{6UDRu literal 0 HcmV?d00001 diff --git a/programs/hd_load/9x2klbr/V86MMGR.INC b/programs/hd_load/9x2klbr/V86MMGR.INC new file mode 100644 index 0000000000..5c8da95ea6 --- /dev/null +++ b/programs/hd_load/9x2klbr/V86MMGR.INC @@ -0,0 +1,178 @@ +;****************************************************************************** +; +; (C) Copyright MICROSOFT Corp., 1988-1990 +; +; Title: V86MMGR.Inc - Public services for V86MMGR +; +; Version: 2.00 +; +; Date: 29-Nov-88 +; +; Author: ARR +; +;------------------------------------------------------------------------------ +; +; Change log: +; +; DATE REV DESCRIPTION +; ----------- --- ----------------------------------------------------------- +; 29-Nov-1988 ARR Original +; 26-Apr-1989 RAL New mapper services +; +;============================================================================== + +Begin_Service_Table V86MMGR + +V86MMGR_Service V86MMGR_Get_Version, LOCAL +V86MMGR_Service V86MMGR_Allocate_V86_Pages, LOCAL +V86MMGR_Service V86MMGR_Set_EMS_XMS_Limits, LOCAL +V86MMGR_Service V86MMGR_Get_EMS_XMS_Limits, LOCAL +; +; Services used for API mapping. +; +V86MMGR_Service V86MMGR_Set_Mapping_Info, VxD_ICODE +V86MMGR_Service V86MMGR_Get_Mapping_Info +V86MMGR_Service V86MMGR_Xlat_API +V86MMGR_Service V86MMGR_Load_Client_Ptr +V86MMGR_Service V86MMGR_Allocate_Buffer +V86MMGR_Service V86MMGR_Free_Buffer +V86MMGR_Service V86MMGR_Get_Xlat_Buff_State +V86MMGR_Service V86MMGR_Set_Xlat_Buff_State +V86MMGR_Service V86MMGR_Get_VM_Flat_Sel +V86MMGR_Service V86MMGR_Map_Pages +V86MMGR_Service V86MMGR_Free_Page_Map_Region +;*********************************************************** +; END OF 3.00 level services +; +V86MMGR_Service V86MMGR_LocalGlobalReg +V86MMGR_Service V86MMGR_GetPgStatus, LOCAL +V86MMGR_Service V86MMGR_SetLocalA20, VxD_ICODE +V86MMGR_Service V86MMGR_ResetBasePages, LOCAL +V86MMGR_Service V86MMGR_SetAvailMapPgs, VxD_ICODE +V86MMGR_Service V86MMGR_NoUMBInitCalls, VxD_ICODE + +IFNDEF WIN31COMPAT + +; Services added post Win 3.1 +V86MMGR_Service V86MMGR_Get_EMS_XMS_Avail, LOCAL +V86MMGR_Service V86MMGR_Toggle_HMA +V86MMGR_Service V86MMGR_Dev_Init, LOCAL +V86MMGR_Service V86MMGR_Alloc_UM_Page, LOCAL + +ENDIF ; WIN31COMPAT + +ifdef NEC_98 +;;V86MMGR_Service V86MMGR_EMM_B0Bank_CHK +V86MMGR_Service V86MMGR_Check_NHSupport, LOCAL +endif + +End_Service_Table V86MMGR + +; +; BITS of returned EAX flags for V86MMGR_GetPgStatus +; +V86PS_ROM equ 0000000000000001b ; Page contains global ROM +V86PS_RAM equ 0000000000000010b ; Page contains global RAM +V86PS_EMM equ 0000000010000000b ; Page belongs to EMM driver +V86PS_XMS equ 0000000100000000b ; Page belongs to XMS driver +V86PS_MAP equ 0000001000000000b ; Page belongs to mapper +V86PS_UMB equ 0001000000000000b ; Page contains imported UMB + ; (Note that V86PS_XMS is not + ; necessarily set) + +; +; BITS of ECX flags for V86MMGR_Allocate_V86_Pages +; +AV86PLocked EQU 00000000000000000000000000000001B +AV86PLockedBit EQU 0 ; VM memory is to be + ; ALWAYS LOCKED regardless of + ; pager type or whether VM + ; is suspended. +; +; BITS of ECX flags for V86MMGR_Set_EMS_XMS_Limits +; +; NOTE: If neither Limit_DisableHMA or Limit_EnableHMA is set, the HMA +; state is not altered. +; +EMS_XMS_Limit_DisableHMA EQU 00000000000000000000000000000001B +EMS_XMS_Limit_DisableHMABit EQU 0 +EMS_XMS_Limit_EnableHMA EQU 00000000000000000000000000000010B +EMS_XMS_Limit_EnableHMABit EQU 1 +EMS_XMS_Limit_XMS_Is_Locked EQU 00000000000000000000000000000100B +EMS_XMS_Limit_XMS_Is_LockedBit EQU 2 +EMS_XMS_Limit_EMS_Is_Locked EQU 00000000000000000000000000001000B +EMS_XMS_Limit_EMS_Is_LockedBit EQU 3 + + + +; +; API mapper equates and macros +; + +Xlat_Exec_Int EQU 000h +Xlat_Fixed_Len EQU 001h +Xlat_Var_Len EQU 002h +Xlat_Calc_Len EQU 003h +Xlat_ASCIIZ EQU 004h +Xlat_Jmp_To_Proc EQU 005h +Xlat_Return_Ptr EQU 006h +Xlat_Return_Seg EQU 007h +Xlat_ASCIIZ_InOut EQU 008h + + +Xlat_API_Exec_Int MACRO Int_Number + db Xlat_Exec_Int + db Int_Number + ENDM + +Xlat_API_Fixed_Len MACRO Ptr_Seg, Ptr_Off, Length + db Xlat_Fixed_Len + dw Length + dw (Client_&Ptr_Seg*100h)+Client_&Ptr_Off + ENDM + +Xlat_API_Var_Len MACRO Ptr_Seg, Ptr_Off, Len_Reg + db Xlat_Var_Len + db Client_&Len_Reg + dw (Client_&Ptr_Seg*100h)+Client_&Ptr_Off + ENDM + +Xlat_API_Calc_Len MACRO Ptr_Seg, Ptr_Off, Calc_Proc_Addr + db Xlat_Calc_Len + dd OFFSET32 Calc_Proc_Addr + dw (Client_&Ptr_Seg*100h)+Client_&Ptr_Off + ENDM + +Xlat_API_ASCIIZ MACRO Ptr_Seg, Ptr_Off + db Xlat_ASCIIZ + dw (Client_&Ptr_Seg*100h)+Client_&Ptr_Off + ENDM + +Xlat_API_ASCIIZ_InOut MACRO Ptr_Seg, Ptr_Off + db Xlat_ASCIIZ_InOut + dw (Client_&Ptr_Seg*100h)+Client_&Ptr_Off + ENDM + +Xlat_API_Jmp_To_Proc MACRO Proc_Name + db Xlat_Jmp_To_Proc + dd OFFSET32 Proc_Name + ENDM + + +Xlat_API_Return_Ptr MACRO Ptr_Seg, Ptr_Off + db Xlat_Return_Ptr + dw (Client_&Ptr_Seg*100h)+Client_&Ptr_Off + ENDM + +Xlat_API_Return_Seg MACRO Ptr_Seg + db Xlat_Return_Seg + db Client_&Ptr_Seg + ENDM + +; +; The V86MMGR does W386_Device_Broadcast call outs. The 'subfunction' number +; for these call outs is contained in the CX register. These are the equates +; for the subfunction numbers. +; +V86CallOut_LclA20forGlblHMA equ 0 ; Should A20 state be local + ; even if HMA is GLOBAL? diff --git a/programs/hd_load/9x2klbr/VMM.INC b/programs/hd_load/9x2klbr/VMM.INC new file mode 100644 index 0000000000..be531f1caf --- /dev/null +++ b/programs/hd_load/9x2klbr/VMM.INC @@ -0,0 +1,4522 @@ +ifndef _VMM_ +_VMM_ EQU 1 +FALSE EQU 0 +VMM_TRUE EQU (NOT FALSE) +DEBLEVELRETAIL EQU 0 +DEBLEVELNORMAL EQU 1 +DEBLEVELMAX EQU 2 +ifndef DEBLEVEL +ifdef DEBUG +DEBLEVEL EQU DEBLEVELNORMAL +else +DEBLEVEL EQU DEBLEVELRETAIL +endif +endif +ifndef WIN31COMPAT +WIN40SERVICES EQU 1 +WIN403SERVICES EQU 1 +endif +ifndef WIN40COMPAT +WIN41SERVICES EQU 1 +endif +ifdef MASM6 +ifndef NO_MASM6_OPTIONS + + + + option oldmacros +ifndef NEWSTRUCTS + option oldstructs +endif + option noscoped + option segment:flat + option offset:flat + option proc:private +endif +endif + + + + +IFDEF MASM6 +BeginDoc MACRO + ENDM +EndDoc MACRO + ENDM + +BeginMsg MACRO + ENDM +EndMsg MACRO + ENDM +ELSE +BeginDoc EQU <> +EndDoc EQU <> + +BeginMsg EQU <> +EndMsg EQU <> +ENDIF + +UNDEFINED_DEVICE_ID EQU 00000H +VMM_DEVICE_ID EQU 00001H +DEBUG_DEVICE_ID EQU 00002H +VPICD_DEVICE_ID EQU 00003H +VDMAD_DEVICE_ID EQU 00004H +VTD_DEVICE_ID EQU 00005H +V86MMGR_DEVICE_ID EQU 00006H +PAGESWAP_DEVICE_ID EQU 00007H +PARITY_DEVICE_ID EQU 00008H +REBOOT_DEVICE_ID EQU 00009H +VDD_DEVICE_ID EQU 0000AH +VSD_DEVICE_ID EQU 0000BH +VMD_DEVICE_ID EQU 0000CH +VKD_DEVICE_ID EQU 0000DH +VCD_DEVICE_ID EQU 0000EH +VPD_DEVICE_ID EQU 0000FH +BLOCKDEV_DEVICE_ID EQU 00010H +VMCPD_DEVICE_ID EQU 00011H +EBIOS_DEVICE_ID EQU 00012H +BIOSXLAT_DEVICE_ID EQU 00013H +VNETBIOS_DEVICE_ID EQU 00014H +DOSMGR_DEVICE_ID EQU 00015H +WINLOAD_DEVICE_ID EQU 00016H +SHELL_DEVICE_ID EQU 00017H +VMPOLL_DEVICE_ID EQU 00018H +VPROD_DEVICE_ID EQU 00019H +DOSNET_DEVICE_ID EQU 0001AH +VFD_DEVICE_ID EQU 0001BH +VDD2_DEVICE_ID EQU 0001CH +WINDEBUG_DEVICE_ID EQU 0001DH +TSRLOAD_DEVICE_ID EQU 0001EH +BIOSHOOK_DEVICE_ID EQU 0001FH +INT13_DEVICE_ID EQU 00020H +PAGEFILE_DEVICE_ID EQU 00021H +SCSI_DEVICE_ID EQU 00022H +MCA_POS_DEVICE_ID EQU 00023H +SCSIFD_DEVICE_ID EQU 00024H +VPEND_DEVICE_ID EQU 00025H +APM_DEVICE_ID EQU 00026H +VPOWERD_DEVICE_ID EQU APM_DEVICE_ID +VXDLDR_DEVICE_ID EQU 00027H +NDIS_DEVICE_ID EQU 00028H +BIOS_EXT_DEVICE_ID EQU 00029H +VWIN32_DEVICE_ID EQU 0002AH +VCOMM_DEVICE_ID EQU 0002BH +SPOOLER_DEVICE_ID EQU 0002CH +WIN32S_DEVICE_ID EQU 0002DH +DEBUGCMD_DEVICE_ID EQU 0002EH +CONFIGMG_DEVICE_ID EQU 00033H +DWCFGMG_DEVICE_ID EQU 00034H +SCSIPORT_DEVICE_ID EQU 00035H +VFBACKUP_DEVICE_ID EQU 00036H +ENABLE_DEVICE_ID EQU 00037H +VCOND_DEVICE_ID EQU 00038H +ISAPNP_DEVICE_ID EQU 0003CH +BIOS_DEVICE_ID EQU 0003DH +IFSMgr_Device_ID EQU 00040H +VCDFSD_DEVICE_ID EQU 00041H +MRCI2_DEVICE_ID EQU 00042H +PCI_DEVICE_ID EQU 00043H +PELOADER_DEVICE_ID EQU 00044H +EISA_DEVICE_ID EQU 00045H +DRAGCLI_DEVICE_ID EQU 00046H +DRAGSRV_DEVICE_ID EQU 00047H +PERF_DEVICE_ID EQU 00048H +AWREDIR_DEVICE_ID EQU 00049H +DDS_DEVICE_ID EQU 0004AH +NTKERN_DEVICE_ID EQU 0004BH +VDOSKEYD_DEVICE_ID EQU 0004BH +ACPI_DEVICE_ID EQU 0004CH +UDF_DEVICE_ID EQU 0004DH +SMCLIB_DEVICE_ID EQU 0004EH +ETEN_Device_ID EQU 00060H +CHBIOS_Device_ID EQU 00061H +VMSGD_Device_ID EQU 00062H +VPPID_Device_ID EQU 00063H +VIME_Device_ID EQU 00064H +VHBIOSD_Device_ID EQU 00065H +BASEID_FOR_NAMEBASEDVXD EQU 0f000H +BASEID_FOR_NAMEBASEDVXD_MASK EQU 0fffH +VMM_INIT_ORDER EQU 000000000H +DEBUG_INIT_ORDER EQU 000000000H +DEBUGCMD_INIT_ORDER EQU 000000000H +PERF_INIT_ORDER EQU 000900000H +APM_INIT_ORDER EQU 001000000H +VPOWERD_INIT_ORDER EQU APM_INIT_ORDER +BIOSHOOK_INIT_ORDER EQU 006000000H +VPROD_INIT_ORDER EQU 008000000H +VPICD_INIT_ORDER EQU 00C000000H +VTD_INIT_ORDER EQU 014000000H +VWIN32_INIT_ORDER EQU 014100000H +VXDLDR_INIT_ORDER EQU 016000000H +NTKERN_INIT_ORDER EQU 016200000H +CONFIGMG_INIT_ORDER EQU 016400000H +ENUMERATOR_INIT_ORDER EQU 016800000H +ISAPNP_INIT_ORDER EQU ENUMERATOR_INIT_ORDER +EISA_INIT_ORDER EQU ENUMERATOR_INIT_ORDER +PCI_INIT_ORDER EQU ENUMERATOR_INIT_ORDER +BIOS_INIT_ORDER EQU ENUMERATOR_INIT_ORDER+1 +ACPI_INIT_ORDER EQU ENUMERATOR_INIT_ORDER+2 +VCDFSD_INIT_ORDER EQU 016F00000H +IOS_INIT_ORDER EQU 017000000H +PAGEFILE_INIT_ORDER EQU 018000000H +PAGESWAP_INIT_ORDER EQU 01C000000H +PARITY_INIT_ORDER EQU 020000000H +REBOOT_INIT_ORDER EQU 024000000H +EBIOS_INIT_ORDER EQU 026000000H +VDD_INIT_ORDER EQU 028000000H +VSD_INIT_ORDER EQU 02C000000H +VCD_INIT_ORDER EQU 030000000H +COMMDRVR_INIT_ORDER EQU (VCD_INIT_ORDER-1) +PRTCL_INIT_ORDER EQU (COMMDRVR_INIT_ORDER-2) +MODEM_INIT_ORDER EQU (COMMDRVR_INIT_ORDER-3) +PORT_INIT_ORDER EQU (COMMDRVR_INIT_ORDER-4) +VMD_INIT_ORDER EQU 034000000H +VKD_INIT_ORDER EQU 038000000H +VPD_INIT_ORDER EQU 03C000000H +BLOCKDEV_INIT_ORDER EQU 040000000H +MCA_POS_INIT_ORDER EQU 041000000H +SCSIFD_INIT_ORDER EQU 041400000H +SCSIMASTER_INIT_ORDER EQU 041800000H +INT13_INIT_ORDER EQU 042000000H +VMCPD_INIT_ORDER EQU 048000000H +BIOSXLAT_INIT_ORDER EQU 050000000H +VNETBIOS_INIT_ORDER EQU 054000000H +DOSMGR_INIT_ORDER EQU 058000000H +DOSNET_INIT_ORDER EQU 05C000000H +WINLOAD_INIT_ORDER EQU 060000000H +VMPOLL_INIT_ORDER EQU 064000000H +UNDEFINED_INIT_ORDER EQU 080000000H +VCOND_INIT_ORDER EQU UNDEFINED_INIT_ORDER +WINDEBUG_INIT_ORDER EQU 081000000H +VDMAD_INIT_ORDER EQU 090000000H +V86MMGR_INIT_ORDER EQU 0A0000000H +IFSMgr_Init_Order EQU 10000H+V86MMGR_Init_Order +FSD_Init_Order EQU 00100H+IFSMgr_Init_Order +VFD_INIT_ORDER EQU 50000H+IFSMgr_Init_Order +UNDEF_TOUCH_MEM_INIT_ORDER EQU 0A8000000H +SHELL_INIT_ORDER EQU 0B0000000H + + + + + + +IO_Delay macro +jmp $+2 +ENDM + +VXD_FAILURE EQU 0 +VXD_SUCCESS EQU 1 + +Pushad_Struc STRUC +Pushad_EDI DD ? +Pushad_ESI DD ? +Pushad_EBP DD ? +Pushad_ESP DD ? +Pushad_EBX DD ? +Pushad_EDX DD ? +Pushad_ECX DD ? +Pushad_EAX DD ? +Pushad_Struc ENDS +ifndef Not_VxD +??_CUR_CODE_SEG = 0 + +??_LCODE = 1 +??_ICODE = 2 +??_PCODE = 3 +??_SCODE = 4 +??_DBOCODE = 5 +??_16ICODE = 6 +??_RCODE = 7 +??_LOCKABLECODE = 8 + +?_LCODE equ <(??_CUR_CODE_SEG MOD 16) - ??_LCODE> +?_ICODE equ <(??_CUR_CODE_SEG MOD 16) - ??_ICODE> +?_PCODE equ <(??_CUR_CODE_SEG MOD 16) - ??_PCODE> +?_SCODE equ <(??_CUR_CODE_SEG MOD 16) - ??_SCODE> +?_DBOCODE equ <(??_CUR_CODE_SEG MOD 16) - ??_DBOCODE> +?_16ICODE equ <(??_CUR_CODE_SEG MOD 16) - ??_16ICODE> +?_RCODE equ <(??_CUR_CODE_SEG MOD 16) - ??_RCODE> +?_LOCKABLECODE equ <(??_CUR_CODE_SEG MOD 16) - ??_LOCKABLECODE> + +ifndef NO_SEGMENTS + + + + + +IFDEF MASM6 +_FLAT EQU FLAT +ELSE +_FLAT EQU USE32 +ENDIF + + +_LTEXT SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_LTEXT ENDS + +_TEXT SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_TEXT ENDS + + +_PTEXT SEGMENT DWORD PUBLIC _FLAT 'PCODE' +_PTEXT ENDS + + + +MakeCodeSeg MACRO seglist, classname, grpname, iseg + + IRP segname, + +IFNB + segname SEGMENT DWORD PUBLIC _FLAT "&classname&CODE" +ELSE + segname SEGMENT DWORD PUBLIC _FLAT "&segname&CODE" +ENDIF + +IFB +VxD_&&segname&&_CODE_SEG MACRO +segname SEGMENT +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_PCODE + ASSUME cs:FLAT, ds:FLAT, es:FLAT, ss:FLAT + + ENDM +ELSE +VxD_&&segname&&_CODE_SEG MACRO +segname SEGMENT +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + iseg + ASSUME cs:FLAT, ds:FLAT, es:FLAT, ss:FLAT + + ENDM +ENDIF + +VxD_&&segname&&_CODE_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +segname ENDS + ENDM + +segname ENDS + +IFNDEF BLD_COFF +IFNB + _&grpname GROUP segname +ELSE + _&&segname GROUP segname +ENDIF +ENDIF + + ENDM + + ENDM + +MakeCodeSeg , \ + LOCKABLE, LOCKABLE, ??_LOCKABLECODE +MakeCodeSeg INT21 +MakeCodeSeg SYSEXIT +MakeCodeSeg RARE +MakeCodeSeg W16 +MakeCodeSeg W32 +MakeCodeSeg VMCREATE +MakeCodeSeg VMDESTROY +MakeCodeSeg THCREATE +MakeCodeSeg THDESTROY +MakeCodeSeg VMSUSPEND +MakeCodeSeg VMRESUME +MakeCodeSeg PNP +MakeCodeSeg DOSVM + + + + + + + + + + + +DefLockableCodeBegin MACRO name, private +VxD_L0CKABLE_BEGIN_CODE_SEG +IFB + PUBLIC name +ENDIF +name LABEL NEAR +ifdef BLD_COFF + DD ? +endif +VxD_L0CKABLE_BEGIN_CODE_ENDS +ifndef WIN31COMPAT +if DEBLEVEL +VxD_LOCKED_DATA_SEG + PUBLIC name&_Debug_Flags +name&_Debug_Flags DD DFS_TEST_BLOCK +VxD_LOCKED_DATA_ENDS +??_debug_flags equ +endif +endif + ENDM + + + + + + + + + +DefLockableCodeEnd MACRO name, private +VxD_LOCKABLE_END_CODE_SEG +IFB + PUBLIC name +ENDIF +name LABEL NEAR +ifdef BLD_COFF + DD ? +endif +VxD_LOCKABLE_END_CODE_ENDS + ENDM + + + + + +CodeLockFlags MACRO name +ifndef WIN31COMPAT +if DEBLEVEL + ifndef name&_Debug_Flags + VxD_LOCKED_DATA_SEG + extrn name&_Debug_Flags:dword + VxD_LOCKED_DATA_ENDS + ??_debug_flags equ + endif +endif +endif + ENDM + + + + + + +MarkCodeLocked MACRO +ifndef WIN31COMPAT +if DEBLEVEL +ifdef ??_debug_flags + pushfd + and ??_debug_flags,NOT DFS_TEST_BLOCK + popfd +endif +endif +endif + ENDM + + + + + + +MarkCodeUnlocked MACRO +ifndef WIN31COMPAT +if DEBLEVEL +ifdef ??_debug_flags + pushfd + or ??_debug_flags,DFS_TEST_BLOCK + popfd +endif +endif +endif + ENDM + + + +_ITEXT SEGMENT DWORD PUBLIC _FLAT 'ICODE' +_ITEXT ENDS + + +_LDATA SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_LDATA ENDS + +_DATA SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_DATA ENDS + + +_PDATA SEGMENT DWORD PUBLIC _FLAT 'PDATA' +_PDATA ENDS + + +_IDATA SEGMENT DWORD PUBLIC _FLAT 'ICODE' +_IDATA ENDS + + +_BSS SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_BSS ENDS + +CONST SEGMENT DWORD PUBLIC _FLAT 'LCODE' +CONST ENDS + +_TLS SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_TLS ENDS + + +_STEXT SEGMENT DWORD PUBLIC _FLAT 'SCODE' +_STEXT ENDS + + +_SDATA SEGMENT DWORD PUBLIC _FLAT 'SCODE' +_SDATA ENDS + + +_DB0START SEGMENT DWORD PUBLIC _FLAT 'DBOCODE' +_DB0START ENDS + + +_DB1CODE SEGMENT DWORD PUBLIC _FLAT 'DBOCODE' +_DB1CODE ENDS + + +_DB2DATA SEGMENT DWORD PUBLIC _FLAT 'DBOCODE' +_DB2DATA ENDS + +if DEBLEVEL + +_PATHSTART SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_PATHSTART ENDS + + +_PATHDATA SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_PATHDATA ENDS + + +_PATHEND SEGMENT DWORD PUBLIC _FLAT 'LCODE' +_PATHEND ENDS +endif + + +_16ICODE SEGMENT WORD USE16 PUBLIC '16ICODE' +_16ICODE ENDS + + +_RCODE SEGMENT WORD USE16 PUBLIC 'RCODE' +_RCODE ENDS + +IFNDEF BLD_COFF +_LGROUP GROUP _LTEXT, _TEXT, _LDATA, _DATA, _BSS, CONST, _TLS +_IGROUP GROUP _ITEXT, _IDATA +_SGROUP GROUP _STEXT, _SDATA +_DBOGROUP GROUP _DB0START, _DB1CODE, _DB2DATA +IF DEBLEVEL +_PGROUP GROUP _PATHSTART, _PATHDATA, _PATHEND +ENDIF +ENDIF + +endif + + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:FLAT + +OFFSET32 EQU + + +BeginDoc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EndDoc + +Begin_Service_Table MACRO Device_Name, Def_Segment + +IFDEF Device_Name&_Name_Based + IFNDEF @@NextInternalID + @@NextInternalID = 0 + ENDIF + @@NextInternalID = (@@NextInternalID + 1) + Device_Name&_Internal_ID = @@NextInternalID + BASEID_FOR_NAMEBASEDVXD + DefineVxDName Device_Name, %Device_Name&_Internal_ID +ENDIF + +IFB + BST2 Device_Name, VxD +ELSE + BST2 Device_Name, Def_Segment +ENDIF + ENDM + +DefineVxDName MACRO Device_Name, InternalID + @@VxDName&InternalID EQU <___&Device_Name&STable> +ENDM + + +BST2 MACRO Device_Name, Def_Segment + +Num_&Device_Name&_Services = 0 + +IFDEF Create_&Device_Name&_Service_Table + + +Def_Segment&_LOCKED_DATA_SEG + +Device_Name&_Service_Table LABEL DWORD + +Device_Name&_Service MACRO Procedure, Local_Seg, Condition, StdCallBytes, fastcall +LOCAL $$&Procedure, extrnproc, tableproc + + extrnproc MACRO + IFNB + IFB + .err + ENDIF + EXTRN @&&Procedure&&@&&StdCallBytes:NEAR + ELSE + IFNB + EXTRN _&&Procedure&&@&&StdCallBytes:NEAR + ELSE + EXTRN Procedure:NEAR + ENDIF + ENDIF + ENDM + + tableproc MACRO + IFNB + dd OFFSET32 @&&Procedure&&@&&StdCallBytes + ELSE + IFNB + dd OFFSET32 _&&Procedure&&@&&StdCallBytes + ELSE + dd OFFSET32 Procedure + ENDIF + ENDIF + ENDM + + IFNB + $$&&Procedure MACRO extern + IFDEF &Condition + IFNB + extrnproc + ELSE + tableproc + ENDIF + ELSE + IFB + dd 0 + ENDIF + ENDIF + ENDM + ENDIF + + IFDIFI , + PUBLIC _&&Procedure + IF1 + _&&Procedure LABEL DWORD + IFNB + PUBLIC __&&Procedure + __&&Procedure LABEL DWORD + ENDIF + ENDIF + IFDIFI , + IFNB +Local_Seg&&_SEG + ELSE +Def_Segment&_CODE_SEG + ENDIF + IFNB + $$&&Procedure extern + ELSE + extrnproc + ENDIF + IFNB +Local_Seg&&_ENDS + ELSE +Def_Segment&_CODE_ENDS + ENDIF + ENDIF + IFNB + $$&&Procedure + ELSE + tableproc + ENDIF + + IFDEF Device_Name&_Name_Based + @@&&Procedure = (Device_Name&_Internal_ID SHL 16) + Num_&Device_Name&_Services + ELSE + @@&&Procedure = (Device_Name&_Device_ID SHL 16) + Num_&Device_Name&_Services + ENDIF + ELSE + dd 0 + ENDIF + Num_&Device_Name&_Services = Num_&Device_Name&_Services + 1 + IFNB + Purge $$&&Procedure + ENDIF + Purge extrnproc + Purge tableproc + ENDM + + Device_Name&_StdCall_Service MACRO Procedure, Args, Local_Seg, Condition + Device_Name&_Service Procedure, Local_Seg, Condition, %Args*4 + ??_standardccall&&_Procedure = Args + ENDM + + Device_Name&_FastCall_Service MACRO Procedure, Args, Local_Seg, Condition + Device_Name&_Service Procedure, Local_Seg, Condition, %Args*4, TRUE + ??_fastcall&&_Procedure = Args + ENDM + +ELSE + + + +IFDEF Device_Name&_Name_Based + +Device_Name&_Service MACRO Procedure, Local_Seg, Condition + + + IFDIFI , + @@&&Procedure = (Device_Name&_Internal_ID SHL 16) + Num_&Device_Name&_Services + ENDIF + Num_&Device_Name&_Services = Num_&Device_Name&_Services + 1 + + ENDM +ELSE + +Device_Name&_Service MACRO Procedure, Local_Seg, Condition + + IFDIFI , + @@&&Procedure = (Device_Name&_Device_ID SHL 16) + Num_&Device_Name&_Services + ENDIF + Num_&Device_Name&_Services = Num_&Device_Name&_Services + 1 + + ENDM + +ENDIF + + Device_Name&_StdCall_Service MACRO Procedure, Args, Local_Seg, Condition + Device_Name&_Service Procedure, Local_Seg, Condition + ??_standardccall_&&Procedure = Args + ENDM + + Device_Name&_FastCall_Service MACRO Procedure, Args, Local_Seg, Condition + Device_Name&_Service Procedure, Local_Seg, Condition + ??_fastcall_&&Procedure = Args + ENDM + +ENDIF + + ENDM + + + + +End_Service_Table MACRO Device_Name, Def_Segment + + PURGE Device_Name&_Service + +IFDEF Create_&Device_Name&_Service_Table + +IFB +VxD_LOCKED_DATA_ENDS +ELSE +Def_Segment&_LOCKED_DATA_ENDS +ENDIF + +ENDIF + + ENDM + +GetVxDServiceOrdinal macro reg,service + mov reg,@@&service + endm + +GetVxDServiceAddress macro reg,service + mov reg,OFFSET32 service + endm + + + + + + + + + + + + + + + + + + +Begin_Win32_Services MACRO VxDName +ifndef Create_Win32_Services + Create_Win32_Services = 0 +endif + .errb , + ??w32svcno = 0 +if Create_Win32_Services +VxDName&_Win32_Services label dword + dd csvc&VxDName, 0 +endif + ??inw32svc = 1 + + VxDName&_Win32_Service MACRO Name + .erre ??inw32svc, + if Create_Win32_Services + dd OFFSET32 Name,cparm&&Name + endif + @32&&Name equ ((VxDName&_Device_ID SHL 16) + ??w32svcno) + ??w32svcno = ??w32svcno + 1 + ENDM + ENDM + + + + + + + + + + +End_Win32_Services MACRO VxDName + .errb , +if Create_Win32_Services + csvc&VxDName equ ($ - VxDName&_Win32_Services)/8 - 1 +endif + ??inw32svc = 0 + PURGE VxDName&_Win32_Service + ENDM + + + + + + + + + + + +Declare_Win32_Service MACRO Name, cParms +ifndef Create_Win32_Services + Create_Win32_Services = 0 +endif +if Create_Win32_Services + ?merge ,,,,,<_>,,<@>,%(cParms*4 + 8) + ?merge ,,,,, +VxD_CODE_SEG + ?merge ,,,,,<_>,,<@>,%(cParms*4 + 8),<:NEAR> +VxD_CODE_ENDS +endif + ENDM + + + + + + + + + + + + +Win32call MACRO Service, CallBack +ifndef Create_Win32_Services + Create_Win32_Services = 0 +endif +ife Create_Win32_Services + mov eax,@32&Service +ifdef IS_16 + movzx esp,sp +endif + call fword ptr [CallBack] +ifdef DEBUG + int 3 +endif +endif + ENDM + + + + + + + +Dword_Align MACRO Seg_Name + LOCAL segn +IFDEF MASM6 + align 4 +ELSE +IFNB + segn equ Seg_Name +ELSE +IFE ?_LCODE + segn equ <_LTEXT> +ELSE +IFE ?_ICODE + segn equ <_ITEXT> +ELSE +IFE ?_PCODE + segn equ <_PTEXT> +ELSE +IFE ?_SCODE + segn equ <_STEXT> +ELSE +.err +ENDIF +ENDIF +ENDIF +ENDIF +ENDIF +IF (($-OFFSET segn:0) MOD 4) +db 4 - (($-OFFSET segn:0) MOD 4) DUP (90h) +ENDIF +ENDIF + ENDM + + +BeginDoc + + + + + + + + + + + + + + + + + +EndDoc + +Fatal_Error MACRO Msg_Ptr, Exit_Flags + pushad +IFB + xor esi, esi +ELSE + mov esi, Msg_Ptr +IFB + xor eax, eax +ELSE + mov eax, Exit_Flags +ENDIF +ENDIF + VMMCall Fatal_Error_Handler + ENDM + +EF_Hang_On_Exit EQU 1h + + +cb_s STRUC +CB_VM_Status DD ? +CB_High_Linear DD ? +CB_Client_Pointer DD ? +CB_VMID DD ? +CB_Signature DD ? +cb_s ENDS +VMCB_ID EQU 62634D56H +VMSTAT_EXCLUSIVE_BIT EQU 00H +VMSTAT_EXCLUSIVE EQU (1 SHL VMSTAT_EXCLUSIVE_BIT) +VMSTAT_BACKGROUND_BIT EQU 01H +VMSTAT_BACKGROUND EQU (1 SHL VMSTAT_BACKGROUND_BIT) +VMSTAT_CREATING_BIT EQU 02H +VMSTAT_CREATING EQU (1 SHL VMSTAT_CREATING_BIT) +VMSTAT_SUSPENDED_BIT EQU 03H +VMSTAT_SUSPENDED EQU (1 SHL VMSTAT_SUSPENDED_BIT) +VMSTAT_NOT_EXECUTEABLE_BIT EQU 04H +VMSTAT_NOT_EXECUTEABLE EQU (1 SHL VMSTAT_NOT_EXECUTEABLE_BIT) +VMSTAT_PM_EXEC_BIT EQU 05H +VMSTAT_PM_EXEC EQU (1 SHL VMSTAT_PM_EXEC_BIT) +VMSTAT_PM_APP_BIT EQU 06H +VMSTAT_PM_APP EQU (1 SHL VMSTAT_PM_APP_BIT) +VMSTAT_PM_USE32_BIT EQU 07H +VMSTAT_PM_USE32 EQU (1 SHL VMSTAT_PM_USE32_BIT) +VMSTAT_VXD_EXEC_BIT EQU 08H +VMSTAT_VXD_EXEC EQU (1 SHL VMSTAT_VXD_EXEC_BIT) +VMSTAT_HIGH_PRI_BACK_BIT EQU 09H +VMSTAT_HIGH_PRI_BACK EQU (1 SHL VMSTAT_HIGH_PRI_BACK_BIT) +VMSTAT_BLOCKED_BIT EQU 0AH +VMSTAT_BLOCKED EQU (1 SHL VMSTAT_BLOCKED_BIT) +VMSTAT_AWAKENING_BIT EQU 0BH +VMSTAT_AWAKENING EQU (1 SHL VMSTAT_AWAKENING_BIT) +VMSTAT_PAGEABLEV86BIT EQU 0CH +VMSTAT_PAGEABLEV86_BIT EQU VMSTAT_PAGEABLEV86BIT +VMSTAT_PAGEABLEV86 EQU (1 SHL VMSTAT_PAGEABLEV86BIT) +VMSTAT_V86INTSLOCKEDBIT EQU 0DH +VMSTAT_V86INTSLOCKED_BIT EQU VMSTAT_V86INTSLOCKEDBIT +VMSTAT_V86INTSLOCKED EQU (1 SHL VMSTAT_V86INTSLOCKEDBIT) +VMSTAT_IDLE_TIMEOUT_BIT EQU 0EH +VMSTAT_IDLE_TIMEOUT EQU (1 SHL VMSTAT_IDLE_TIMEOUT_BIT) +VMSTAT_IDLE_BIT EQU 0FH +VMSTAT_IDLE EQU (1 SHL VMSTAT_IDLE_BIT) +VMSTAT_CLOSING_BIT EQU 10H +VMSTAT_CLOSING EQU (1 SHL VMSTAT_CLOSING_BIT) +VMSTAT_TS_SUSPENDED_BIT EQU 11H +VMSTAT_TS_SUSPENDED EQU (1 SHL VMSTAT_TS_SUSPENDED_BIT) +VMSTAT_TS_MAXPRI_BIT EQU 12H +VMSTAT_TS_MAXPRI EQU (1 SHL VMSTAT_TS_MAXPRI_BIT) +VMSTAT_USE32_MASK EQU (VMSTAT_PM_USE32 OR VMSTAT_VXD_EXEC) + +tcb_s STRUC +TCB_Flags DD ? +TCB_Reserved1 DD ? +TCB_Reserved2 DD ? +TCB_Signature DD ? +TCB_ClientPtr DD ? +TCB_VMHandle DD ? +TCB_ThreadId DW ? +TCB_PMLockOrigSS DW ? +TCB_PMLockOrigESP DD ? +TCB_PMLockOrigEIP DD ? +TCB_PMLockStackCount DD ? +TCB_PMLockOrigCS DW ? +TCB_PMPSPSelector DW ? +TCB_ThreadType DD ? +TCB_pad1 DW ? +TCB_pad2 DB ? +TCB_extErrLocus DB ? +TCB_extErr DW ? +TCB_extErrAction DB ? +TCB_extErrClass DB ? +TCB_extErrPtr DD ? +tcb_s ENDS +SCHED_OBJ_ID_THREAD EQU 42434854H +THFLAG_SUSPENDED_BIT EQU 03H +THFLAG_SUSPENDED EQU (1 SHL THFLAG_SUSPENDED_BIT) +THFLAG_NOT_EXECUTEABLE_BIT EQU 04H +THFLAG_NOT_EXECUTEABLE EQU (1 SHL THFLAG_NOT_EXECUTEABLE_BIT) +THFLAG_THREAD_CREATION_BIT EQU 08H +THFLAG_THREAD_CREATION EQU (1 SHL THFLAG_THREAD_CREATION_BIT) +THFLAG_THREAD_BLOCKED_BIT EQU 0AH +THFLAG_THREAD_BLOCKED EQU (1 SHL THFLAG_THREAD_BLOCKED_BIT) +THFLAG_RING0_THREAD_BIT EQU 1CH +THFLAG_RING0_THREAD EQU (1 SHL THFLAG_RING0_THREAD_BIT) +THFLAG_ASYNC_THREAD_BIT EQU 1FH +THFLAG_ASYNC_THREAD EQU (1 SHL THFLAG_ASYNC_THREAD_BIT) +THFLAG_CHARSET_BITS EQU 10H +THFLAG_CHARSET_MASK EQU (3 SHL THFLAG_CHARSET_BITS) +THFLAG_ANSI EQU (0 SHL THFLAG_CHARSET_BITS) +THFLAG_OEM EQU (1 SHL THFLAG_CHARSET_BITS) +THFLAG_UNICODE EQU (2 SHL THFLAG_CHARSET_BITS) +THFLAG_RESERVED EQU (3 SHL THFLAG_CHARSET_BITS) +THFLAG_EXTENDED_HANDLES_BIT EQU 12H +THFLAG_EXTENDED_HANDLES EQU (1 SHL THFLAG_EXTENDED_HANDLES_BIT) +THFLAG_OPEN_AS_IMMOVABLE_FILE_BIT EQU 13H +THFLAG_OPEN_AS_IMMOVABLE_FILE EQU (1 SHL THFLAG_OPEN_AS_IMMOVABLE_FILE_BIT) + +pmcb_s STRUC +PMCB_Flags DD ? +PMCB_Parent DD ? +pmcb_s ENDS + +VMFaultInfo STRUC +VMFI_EIP DD ? +VMFI_CS DW ? +VMFI_Ints DW ? +VMFaultInfo ENDS +Begin_Service_Table VMM, VMM +VMM_Service Get_VMM_Version, LOCAL +VMM_Service Get_Cur_VM_Handle +VMM_Service Test_Cur_VM_Handle +VMM_Service Get_Sys_VM_Handle +VMM_Service Test_Sys_VM_Handle +VMM_Service Validate_VM_Handle +VMM_Service Get_VMM_Reenter_Count +VMM_Service Begin_Reentrant_Execution +VMM_Service End_Reentrant_Execution +VMM_Service Install_V86_Break_Point +VMM_Service Remove_V86_Break_Point +VMM_Service Allocate_V86_Call_Back +VMM_Service Allocate_PM_Call_Back +VMM_Service Call_When_VM_Returns +VMM_Service Schedule_Global_Event +VMM_Service Schedule_VM_Event +VMM_Service Call_Global_Event +VMM_Service Call_VM_Event +VMM_Service Cancel_Global_Event +VMM_Service Cancel_VM_Event +VMM_Service Call_Priority_VM_Event +VMM_Service Cancel_Priority_VM_Event +VMM_Service Get_NMI_Handler_Addr +VMM_Service Set_NMI_Handler_Addr +VMM_Service Hook_NMI_Event +VMM_Service Call_When_VM_Ints_Enabled +VMM_Service Enable_VM_Ints +VMM_Service Disable_VM_Ints +VMM_Service Map_Flat +VMM_Service Map_Lin_To_VM_Addr +VMM_Service Adjust_Exec_Priority +VMM_Service Begin_Critical_Section +VMM_Service End_Critical_Section +VMM_Service End_Crit_And_Suspend +VMM_Service Claim_Critical_Section +VMM_Service Release_Critical_Section +VMM_Service Call_When_Not_Critical +VMM_Service Create_Semaphore +VMM_Service Destroy_Semaphore +VMM_Service Wait_Semaphore +VMM_Service Signal_Semaphore +VMM_Service Get_Crit_Section_Status +VMM_Service Call_When_Task_Switched +VMM_Service Suspend_VM +VMM_Service Resume_VM +VMM_Service No_Fail_Resume_VM +VMM_Service Nuke_VM +VMM_Service Crash_Cur_VM +VMM_Service Get_Execution_Focus +VMM_Service Set_Execution_Focus +VMM_Service Get_Time_Slice_Priority +VMM_Service Set_Time_Slice_Priority +VMM_Service Get_Time_Slice_Granularity +VMM_Service Set_Time_Slice_Granularity +VMM_Service Get_Time_Slice_Info +VMM_Service Adjust_Execution_Time +VMM_Service Release_Time_Slice +VMM_Service Wake_Up_VM +VMM_Service Call_When_Idle +VMM_Service Get_Next_VM_Handle +VMM_Service Set_Global_Time_Out +VMM_Service Set_VM_Time_Out +VMM_Service Cancel_Time_Out +VMM_Service Get_System_Time +VMM_Service Get_VM_Exec_Time +VMM_Service Hook_V86_Int_Chain +VMM_Service Get_V86_Int_Vector +VMM_Service Set_V86_Int_Vector +VMM_Service Get_PM_Int_Vector +VMM_Service Set_PM_Int_Vector +VMM_Service Simulate_Int +VMM_Service Simulate_Iret +VMM_Service Simulate_Far_Call +VMM_Service Simulate_Far_Jmp +VMM_Service Simulate_Far_Ret +VMM_Service Simulate_Far_Ret_N +VMM_Service Build_Int_Stack_Frame +VMM_Service Simulate_Push +VMM_Service Simulate_Pop +VMM_Service _HeapAllocate +VMM_Service _HeapReAllocate +VMM_Service _HeapFree +VMM_Service _HeapGetSize +HEAPZEROINIT EQU 00000001H +HEAPZEROREINIT EQU 00000002H +HEAPNOCOPY EQU 00000004H +HEAPALIGN_SHIFT EQU 16 +HEAPALIGN_MASK EQU 000F0000H +HEAPALIGN_4 EQU 00000000H +HEAPALIGN_8 EQU 00000000H +HEAPALIGN_16 EQU 00000000H +HEAPALIGN_32 EQU 00010000H +HEAPALIGN_64 EQU 00020000H +HEAPALIGN_128 EQU 00030000H +HEAPALIGN_256 EQU 00040000H +HEAPALIGN_512 EQU 00050000H +HEAPALIGN_1K EQU 00060000H +HEAPALIGN_2K EQU 00070000H +HEAPALIGN_4K EQU 00080000H +HEAPALIGN_8K EQU 00090000H +HEAPALIGN_16K EQU 000A0000H +HEAPALIGN_32K EQU 000B0000H +HEAPALIGN_64K EQU 000C0000H +HEAPALIGN_128K EQU 000D0000H +HEAPTYPESHIFT EQU 8 +HEAPTYPEMASK EQU 00000700H +HEAPLOCKEDHIGH EQU 00000000H +HEAPLOCKEDIFDP EQU 00000100H +HEAPSWAP EQU 00000200H +HEAPINIT EQU 00000400H +HEAPCLEAN EQU 00000800H +HEAPCONTIG EQU 00001000H +HEAPFORGET EQU 00002000H +HEAPLOCKEDLOW EQU 00000300H +HEAPSYSVM EQU 00000500H +HEAPPREEMPT EQU 00000600H +VMM_Service _PageAllocate +VMM_Service _PageReAllocate +VMM_Service _PageFree +VMM_Service _PageLock +VMM_Service _PageUnLock +VMM_Service _PageGetSizeAddr +VMM_Service _PageGetAllocInfo +VMM_Service _GetFreePageCount +VMM_Service _GetSysPageCount +VMM_Service _GetVMPgCount +VMM_Service _MapIntoV86 +VMM_Service _PhysIntoV86 +VMM_Service _TestGlobalV86Mem +VMM_Service _ModifyPageBits +VMM_Service _CopyPageTable +VMM_Service _LinMapIntoV86 +VMM_Service _LinPageLock +VMM_Service _LinPageUnLock +VMM_Service _SetResetV86Pageable +VMM_Service _GetV86PageableArray +VMM_Service _PageCheckLinRange +VMM_Service _PageOutDirtyPages +VMM_Service _PageDiscardPages +PAGEZEROINIT EQU 00000001H +PAGEUSEALIGN EQU 00000002H +PAGECONTIG EQU 00000004H +PAGEFIXED EQU 00000008H +PAGEDEBUGNULFAULT EQU 00000010H +PAGEZEROREINIT EQU 00000020H +PAGENOCOPY EQU 00000040H +PAGELOCKED EQU 00000080H +PAGELOCKEDIFDP EQU 00000100H +PAGESETV86PAGEABLE EQU 00000200H +PAGECLEARV86PAGEABLE EQU 00000400H +PAGESETV86INTSLOCKED EQU 00000800H +PAGECLEARV86INTSLOCKED EQU 00001000H +PAGEMARKPAGEOUT EQU 00002000H +PAGEPDPSETBASE EQU 00004000H +PAGEPDPCLEARBASE EQU 00008000H +PAGEDISCARD EQU 00010000H +PAGEPDPQUERYDIRTY EQU 00020000H +PAGEMAPFREEPHYSREG EQU 00040000H +PAGEPHYSONLY EQU 04000000H +PAGENOMOVE EQU 10000000H +PAGEMAPGLOBAL EQU 40000000H +PAGEMARKDIRTY EQU 80000000H +MAPV86_IGNOREWRAP EQU 00000001H +MPL_NonCached EQU 00000000H +MPL_HardwareCoherentCached EQU 00000001H +MPL_FrameBufferCached EQU 00000002H +MPL_Cached EQU 00000004H +VMM_Service _GetNulPageHandle +VMM_Service _GetFirstV86Page +VMM_Service _MapPhysToLinear +VMM_Service _GetAppFlatDSAlias +VMM_Service _SelectorMapFlat +VMM_Service _GetDemandPageInfo +VMM_Service _GetSetPageOutCount +GSPOC_F_GET EQU 00000001H +VMM_Service Hook_V86_Page +VMM_Service _Assign_Device_V86_Pages +VMM_Service _DeAssign_Device_V86_Pages +VMM_Service _Get_Device_V86_Pages_Array +VMM_Service MMGR_SetNULPageAddr +VMM_Service _Allocate_GDT_Selector +VMM_Service _Free_GDT_Selector +VMM_Service _Allocate_LDT_Selector +VMM_Service _Free_LDT_Selector +VMM_Service _BuildDescriptorDWORDs +VMM_Service _GetDescriptor +VMM_Service _SetDescriptor +ALLOCFROMEND EQU 40000000H +BDDEXPLICITDPL EQU 00000001H +ALDTSPECSEL EQU 00000001H +VMM_Service _MMGR_Toggle_HMA +MMGRHMAPHYSICAL EQU 00000001H +MMGRHMAENABLE EQU 00000002H +MMGRHMADISABLE EQU 00000004H +MMGRHMAQUERY EQU 00000008H +VMM_Service Get_Fault_Hook_Addrs +VMM_Service Hook_V86_Fault +VMM_Service Hook_PM_Fault +VMM_Service Hook_VMM_Fault +VMM_Service Begin_Nest_V86_Exec +VMM_Service Begin_Nest_Exec +VMM_Service Exec_Int +VMM_Service Resume_Exec +VMM_Service End_Nest_Exec +VMM_Service Allocate_PM_App_CB_Area, VMM_ICODE +VMM_Service Get_Cur_PM_App_CB +VMM_Service Set_V86_Exec_Mode +VMM_Service Set_PM_Exec_Mode +VMM_Service Begin_Use_Locked_PM_Stack +VMM_Service End_Use_Locked_PM_Stack +VMM_Service Save_Client_State +VMM_Service Restore_Client_State +VMM_Service Exec_VxD_Int +VMM_Service Hook_Device_Service +VMM_Service Hook_Device_V86_API +VMM_Service Hook_Device_PM_API +VMM_Service System_Control +VMM_Service Simulate_IO +VMM_Service Install_Mult_IO_Handlers +VMM_Service Install_IO_Handler +VMM_Service Enable_Global_Trapping +VMM_Service Enable_Local_Trapping +VMM_Service Disable_Global_Trapping +VMM_Service Disable_Local_Trapping +VMM_Service List_Create +VMM_Service List_Destroy +VMM_Service List_Allocate +VMM_Service List_Attach +VMM_Service List_Attach_Tail +VMM_Service List_Insert +VMM_Service List_Remove +VMM_Service List_Deallocate +VMM_Service List_Get_First +VMM_Service List_Get_Next +VMM_Service List_Remove_First +LF_ASYNC_BIT EQU 0 +LF_ASYNC EQU (1 SHL LF_ASYNC_BIT) +LF_USE_HEAP_BIT EQU 1 +LF_USE_HEAP EQU (1 SHL LF_USE_HEAP_BIT) +LF_ALLOC_ERROR_BIT EQU 2 +LF_ALLOC_ERROR EQU (1 SHL LF_ALLOC_ERROR_BIT) +LF_SWAP EQU (LF_USE_HEAP+(1 SHL 3)) +VMM_Service _AddInstanceItem +VMM_Service _Allocate_Device_CB_Area +VMM_Service _Allocate_Global_V86_Data_Area, VMM_ICODE +VMM_Service _Allocate_Temp_V86_Data_Area +VMM_Service _Free_Temp_V86_Data_Area +GVDAWordAlign EQU 00000001H +GVDADWordAlign EQU 00000002H +GVDAParaAlign EQU 00000004H +GVDAPageAlign EQU 00000008H +GVDAInstance EQU 00000100H +GVDAZeroInit EQU 00000200H +GVDAReclaim EQU 00000400H +GVDAInquire EQU 00000800H +GVDAHighSysCritOK EQU 00001000H +GVDAOptInstance EQU 00002000H +GVDAForceLow EQU 00004000H +TVDANeedTilInitComplete EQU 00000001H +VMM_Service Get_Profile_Decimal_Int, VMM_ICODE +VMM_Service Convert_Decimal_String, VMM_ICODE +VMM_Service Get_Profile_Fixed_Point, VMM_ICODE +VMM_Service Convert_Fixed_Point_String, VMM_ICODE +VMM_Service Get_Profile_Hex_Int, VMM_ICODE +VMM_Service Convert_Hex_String, VMM_ICODE +VMM_Service Get_Profile_Boolean, VMM_ICODE +VMM_Service Convert_Boolean_String, VMM_ICODE +VMM_Service Get_Profile_String, VMM_ICODE +VMM_Service Get_Next_Profile_String, VMM_ICODE +VMM_Service Get_Environment_String, VMM_ICODE +VMM_Service Get_Exec_Path, VMM_ICODE +VMM_Service Get_Config_Directory, VMM_ICODE +VMM_Service OpenFile, VMM_ICODE +VMM_OPENFILE_BUF_SIZE EQU 260 +VMM_Service Get_PSP_Segment, VMM_ICODE +VMM_Service GetDOSVectors, VMM_ICODE +VMM_Service Get_Machine_Info +GMIF_80486_BIT EQU 10H +GMIF_80486 EQU (1 SHL GMIF_80486_BIT) +GMIF_PCXT_BIT EQU 11H +GMIF_PCXT EQU (1 SHL GMIF_PCXT_BIT) +GMIF_MCA_BIT EQU 12H +GMIF_MCA EQU (1 SHL GMIF_MCA_BIT) +GMIF_EISA_BIT EQU 13H +GMIF_EISA EQU (1 SHL GMIF_EISA_BIT) +GMIF_CPUID_BIT EQU 14H +GMIF_CPUID EQU (1 SHL GMIF_CPUID_BIT) +GMIF_80586_BIT EQU 15H +GMIF_80586 EQU (1 SHL GMIF_80586_BIT) +GMIF_4MEGPG_BIT EQU 16H +GMIF_4MEGPG EQU (1 SHL GMIF_4MEGPG_BIT) +GMIF_RDTSC_BIT EQU 17H +GMIF_RDTSC EQU (1 SHL GMIF_RDTSC_BIT) +VMM_Service GetSet_HMA_Info +VMM_Service Set_System_Exit_Code +VMM_Service Fatal_Error_Handler +VMM_Service Fatal_Memory_Error +VMM_Service Update_System_Clock +VMM_Service Test_Debug_Installed +VMM_Service Out_Debug_String +VMM_Service Out_Debug_Chr +VMM_Service In_Debug_Chr +VMM_Service Debug_Convert_Hex_Binary +VMM_Service Debug_Convert_Hex_Decimal +VMM_Service Debug_Test_Valid_Handle +VMM_Service Validate_Client_Ptr +VMM_Service Test_Reenter +VMM_Service Queue_Debug_String +VMM_Service Log_Proc_Call +VMM_Service Debug_Test_Cur_VM +VMM_Service Get_PM_Int_Type +VMM_Service Set_PM_Int_Type +VMM_Service Get_Last_Updated_System_Time +VMM_Service Get_Last_Updated_VM_Exec_Time +VMM_Service Test_DBCS_Lead_Byte +.errnz @@Test_DBCS_Lead_Byte - 100D1h + +VMM_Service _AddFreePhysPage, VMM_ICODE +VMM_Service _PageResetHandlePAddr +VMM_Service _SetLastV86Page, VMM_ICODE +VMM_Service _GetLastV86Page +VMM_Service _MapFreePhysReg +VMM_Service _UnmapFreePhysReg +VMM_Service _XchgFreePhysReg +VMM_Service _SetFreePhysRegCalBk, VMM_ICODE +VMM_Service Get_Next_Arena, VMM_ICODE +VMM_Service Get_Name_Of_Ugly_TSR, VMM_ICODE +VMM_Service Get_Debug_Options, VMM_ICODE +AFPP_SWAPOUT EQU 0001H +PCP_CHANGEPAGER EQU 1H +PCP_CHANGEPAGERDATA EQU 2H +PCP_VIRGINONLY EQU 4H +GNA_HIDOSLINKED EQU 0002H +GNA_ISHIGHDOS EQU 0004H +VMM_Service Set_Physical_HMA_Alias, VMM_ICODE +VMM_Service _GetGlblRng0V86IntBase, VMM_ICODE +VMM_Service _Add_Global_V86_Data_Area, VMM_ICODE +VMM_Service GetSetDetailedVMError +GSDVME_PRIVINST EQU 00010001H +GSDVME_INVALINST EQU 00010002H +GSDVME_INVALPGFLT EQU 00010003H +GSDVME_INVALGPFLT EQU 00010004H +GSDVME_INVALFLT EQU 00010005H +GSDVME_USERNUKE EQU 00010006H +GSDVME_DEVNUKE EQU 00010007H +GSDVME_DEVNUKEHDWR EQU 00010008H +GSDVME_NUKENOMSG EQU 00010009H +GSDVME_OKNUKEMASK EQU 80000000H +GSDVME_INSMEMV86 EQU 00020001H +GSDVME_INSV86SPACE EQU 00020002H +GSDVME_INSMEMXMS EQU 00020003H +GSDVME_INSMEMEMS EQU 00020004H +GSDVME_INSMEMV86HI EQU 00020005H +GSDVME_INSMEMVID EQU 00020006H +GSDVME_INSMEMVM EQU 00020007H +GSDVME_INSMEMDEV EQU 00020008H +GSDVME_CRTNOMSG EQU 00020009H +VMM_Service Is_Debug_Chr +VMM_Service Clear_Mono_Screen +VMM_Service Out_Mono_Chr +VMM_Service Out_Mono_String +VMM_Service Set_Mono_Cur_Pos +VMM_Service Get_Mono_Cur_Pos +VMM_Service Get_Mono_Chr +VMM_Service Locate_Byte_In_ROM, VMM_ICODE +VMM_Service Hook_Invalid_Page_Fault +VMM_Service Unhook_Invalid_Page_Fault +IPF_PGDIR EQU 00000001H +IPF_V86PG EQU 00000002H +IPF_V86PGH EQU 00000004H +IPF_INVTYP EQU 00000008H +IPF_PGERR EQU 00000010H +IPF_REFLT EQU 00000020H +IPF_VMM EQU 00000040H +IPF_PM EQU 00000080H +IPF_V86 EQU 00000100H +VMM_Service Set_Delete_On_Exit_File +VMM_Service Close_VM +CVF_CONTINUE_EXEC_BIT EQU 0 +CVF_CONTINUE_EXEC EQU (1 SHL CVF_CONTINUE_EXEC_BIT) +VMM_Service Enable_Touch_1st_Meg +VMM_Service Disable_Touch_1st_Meg +VMM_Service Install_Exception_Handler +VMM_Service Remove_Exception_Handler +VMM_Service Get_Crit_Status_No_Block + +.errnz @@Get_Crit_Status_No_Block - 100F1h + +ifdef WIN40SERVICES +VMM_Service _GetLastUpdatedThreadExecTime +VMM_Service _Trace_Out_Service +VMM_Service _Debug_Out_Service +VMM_Service _Debug_Flags_Service +endif +DFS_LOG_BIT EQU 0 +DFS_LOG EQU (1 SHL DFS_LOG_BIT) +DFS_PROFILE_BIT EQU 1 +DFS_PROFILE EQU (1 SHL DFS_PROFILE_BIT) +DFS_TEST_CLD_BIT EQU 2 +DFS_TEST_CLD EQU (1 SHL DFS_TEST_CLD_BIT) +DFS_NEVER_REENTER_BIT EQU 3 +DFS_NEVER_REENTER EQU (1 SHL DFS_NEVER_REENTER_BIT) +DFS_TEST_REENTER_BIT EQU 4 +DFS_TEST_REENTER EQU (1 SHL DFS_TEST_REENTER_BIT) +DFS_NOT_SWAPPING_BIT EQU 5 +DFS_NOT_SWAPPING EQU (1 SHL DFS_NOT_SWAPPING_BIT) +DFS_TEST_BLOCK_BIT EQU 6 +DFS_TEST_BLOCK EQU (1 SHL DFS_TEST_BLOCK_BIT) +DFS_RARE_SERVICES EQU 0FFFFFF80H +DFS_EXIT_NOBLOCK EQU (DFS_RARE_SERVICES+0) +DFS_ENTER_NOBLOCK EQU (DFS_RARE_SERVICES+DFS_TEST_BLOCK) +DFS_TEST_NEST_EXEC EQU (DFS_RARE_SERVICES+1) +DFS_WIMP_DEBUG EQU (DFS_RARE_SERVICES+2) +ifdef WIN40SERVICES +VMM_Service VMMAddImportModuleName +VMM_Service VMM_Add_DDB +VMM_Service VMM_Remove_DDB +VMM_Service Test_VM_Ints_Enabled +VMM_Service _BlockOnID +VMM_Service Schedule_Thread_Event +VMM_Service Cancel_Thread_Event +VMM_Service Set_Thread_Time_Out +VMM_Service Set_Async_Time_Out +VMM_Service _AllocateThreadDataSlot +VMM_Service _FreeThreadDataSlot +MUTEX_MUST_COMPLETE EQU 1 +MUTEX_NO_CLEANUP_THREAD_STATE EQU 2 +VMM_Service _CreateMutex +VMM_Service _DestroyMutex +VMM_Service _GetMutexOwner +VMM_Service Call_When_Thread_Switched +VMM_Service VMMCreateThread +VMM_Service _GetThreadExecTime +VMM_Service VMMTerminateThread +VMM_Service Get_Cur_Thread_Handle +VMM_Service Test_Cur_Thread_Handle +VMM_Service Get_Sys_Thread_Handle +VMM_Service Test_Sys_Thread_Handle +VMM_Service Validate_Thread_Handle +VMM_Service Get_Initial_Thread_Handle +VMM_Service Test_Initial_Thread_Handle +VMM_Service Debug_Test_Valid_Thread_Handle +VMM_Service Debug_Test_Cur_Thread +VMM_Service VMM_GetSystemInitState +VMM_Service Cancel_Call_When_Thread_Switched +VMM_Service Get_Next_Thread_Handle +VMM_Service Adjust_Thread_Exec_Priority +VMM_Service _Deallocate_Device_CB_Area +VMM_Service Remove_IO_Handler +VMM_Service Remove_Mult_IO_Handlers +VMM_Service Unhook_V86_Int_Chain +VMM_Service Unhook_V86_Fault +VMM_Service Unhook_PM_Fault +VMM_Service Unhook_VMM_Fault +VMM_Service Unhook_Device_Service +VMM_Service _PageReserve +VMM_Service _PageCommit +VMM_Service _PageDecommit +VMM_Service _PagerRegister +VMM_Service _PagerQuery +VMM_Service _PagerDeregister +VMM_Service _ContextCreate +VMM_Service _ContextDestroy +VMM_Service _PageAttach +VMM_Service _PageFlush +VMM_Service _SignalID +VMM_Service _PageCommitPhys +VMM_Service _Register_Win32_Services +VMM_Service Cancel_Call_When_Not_Critical +VMM_Service Cancel_Call_When_Idle +VMM_Service Cancel_Call_When_Task_Switched +VMM_Service _Debug_Printf_Service +VMM_Service _EnterMutex +VMM_Service _LeaveMutex +VMM_Service Simulate_VM_IO +VMM_Service Signal_Semaphore_No_Switch +VMM_Service _ContextSwitch +VMM_Service _PageModifyPermissions +VMM_Service _PageQuery +VMM_Service _EnterMustComplete +VMM_Service _LeaveMustComplete +VMM_Service _ResumeExecMustComplete +THREAD_TERM_STATUS_CRASH_PEND EQU 1 +THREAD_TERM_STATUS_NUKE_PEND EQU 2 +THREAD_TERM_STATUS_SUSPEND_PEND EQU 4 +VMM_Service _GetThreadTerminationStatus +VMM_Service _GetInstanceInfo +INSTINFO_NONE EQU 0 +INSTINFO_SOME EQU 1 +INSTINFO_ALL EQU 2 +VMM_Service _ExecIntMustComplete +VMM_Service _ExecVxDIntMustComplete +VMM_Service Begin_V86_Serialization +VMM_Service Unhook_V86_Page +VMM_Service VMM_GetVxDLocationList +VMM_Service VMM_GetDDBList +VMM_Service Unhook_NMI_Event +VMM_Service Get_Instanced_V86_Int_Vector +VMM_Service Get_Set_Real_DOS_PSP +GSRDP_Set EQU 0001H +VMM_Service Call_Priority_Thread_Event +VMM_Service Get_System_Time_Address +VMM_Service Get_Crit_Status_Thread +VMM_Service Get_DDB +VMM_Service Directed_Sys_Control +VMM_Service _RegOpenKey +VMM_Service _RegCloseKey +VMM_Service _RegCreateKey +VMM_Service _RegDeleteKey +VMM_Service _RegEnumKey +VMM_Service _RegQueryValue +VMM_Service _RegSetValue +VMM_Service _RegDeleteValue +VMM_Service _RegEnumValue +VMM_Service _RegQueryValueEx +VMM_Service _RegSetValueEx +ifndef REG_SZ +REG_SZ EQU 0001H +REG_BINARY EQU 0003H +endif +ifndef HKEY_LOCAL_MACHINE +HKEY_CLASSES_ROOT EQU 80000000H +HKEY_CURRENT_USER EQU 80000001H +HKEY_LOCAL_MACHINE EQU 80000002H +HKEY_USERS EQU 80000003H +HKEY_PERFORMANCE_DATA EQU 80000004H +HKEY_CURRENT_CONFIG EQU 80000005H +HKEY_DYN_DATA EQU 80000006H +endif +VMM_Service _CallRing3 +VMM_Service Exec_PM_Int +VMM_Service _RegFlushKey +VMM_Service _PageCommitContig +VMM_Service _GetCurrentContext +VMM_Service _LocalizeSprintf +VMM_Service _LocalizeStackSprintf +VMM_Service Call_Restricted_Event +VMM_Service Cancel_Restricted_Event +VMM_Service Register_PEF_Provider, VMM_ICODE +VMM_Service _GetPhysPageInfo +VMM_Service _RegQueryInfoKey +VMM_Service MemArb_Reserve_Pages +PHYSINFO_NONE EQU 0 +PHYSINFO_SOME EQU 1 +PHYSINFO_ALL EQU 2 +VMM_Service Time_Slice_Sys_VM_Idle +VMM_Service Time_Slice_Sleep +VMM_Service Boost_With_Decay +VMM_Service Set_Inversion_Pri +VMM_Service Reset_Inversion_Pri +VMM_Service Release_Inversion_Pri +VMM_Service Get_Thread_Win32_Pri +VMM_Service Set_Thread_Win32_Pri +VMM_Service Set_Thread_Static_Boost +VMM_Service Set_VM_Static_Boost +VMM_Service Release_Inversion_Pri_ID +VMM_Service Attach_Thread_To_Group +VMM_Service Detach_Thread_From_Group +VMM_Service Set_Group_Static_Boost +VMM_Service _GetRegistryPath, VMM_ICODE +VMM_Service _GetRegistryKey +REGTYPE_ENUM EQU 0 +REGTYPE_CLASS EQU 1 +REGTYPE_VXD EQU 2 +REGKEY_OPEN EQU 0 +REGKEY_CREATE_IFNOTEXIST EQU 1 +ASSERT_RANGE_NULL_BAD EQU 00000000H +ASSERT_RANGE_NULL_OK EQU 00000001H +ASSERT_RANGE_IS_ASCIIZ EQU 00000002H +ASSERT_RANGE_IS_NOT_ASCIIZ EQU 00000000H +ASSERT_RANGE_NO_DEBUG EQU 80000000H +ASSERT_RANGE_BITS EQU 80000003H +VMM_Service Cleanup_Thread_State +VMM_Service _RegRemapPreDefKey +VMM_Service End_V86_Serialization +VMM_Service _Assert_Range +VMM_Service _Sprintf +VMM_Service _PageChangePager +VMM_Service _RegCreateDynKey +VMM_Service _RegQueryMultipleValues +VMM_Service Boost_Thread_With_VM +BOOT_CLEAN EQU 00000001H +BOOT_DOSCLEAN EQU 00000002H +BOOT_NETCLEAN EQU 00000004H +BOOT_INTERACTIVE EQU 00000008H +VMM_Service Get_Boot_Flags +VMM_Service Set_Boot_Flags +VMM_Service _lstrcpyn +VMM_Service _lstrlen +VMM_Service _lmemcpy +VMM_Service _GetVxDName +VMM_Service Force_Mutexes_Free +VMM_Service Restore_Forced_Mutexes +VMM_Service _AddReclaimableItem +VMM_Service _SetReclaimableItem +VMM_Service _EnumReclaimableItem +VMM_Service Time_Slice_Wake_Sys_VM +VMM_Service VMM_Replace_Global_Environment +VMM_Service Begin_Non_Serial_Nest_V86_Exec +VMM_Service Get_Nest_Exec_Status +VMM_Service Open_Boot_Log +VMM_Service Write_Boot_Log +VMM_Service Close_Boot_Log +VMM_Service EnableDisable_Boot_Log +VMM_Service _Call_On_My_Stack +VMM_Service Get_Inst_V86_Int_Vec_Base +VMM_Service _lstrcmpi +VMM_Service _strupr +VMM_Service Log_Fault_Call_Out +VMM_Service _AtEventTime +endif +ifdef WIN403SERVICES +VMM_Service _PageOutPages +PAGEOUT_PRIVATE EQU 00000001H +PAGEOUT_SHARED EQU 00000002H +PAGEOUT_SYSTEM EQU 00000004H +PAGEOUT_REGION EQU 00000008H +PAGEOUT_ALL EQU (PAGEOUT_PRIVATE OR PAGEOUT_SHARED OR PAGEOUT_SYSTEM) +VMM_Service _Call_On_My_Not_Flat_Stack +VMM_Service _LinRegionLock +VMM_Service _LinRegionUnLock +VMM_Service _AttemptingSomethingDangerous +VMM_Service _Vsprintf +VMM_Service _Vsprintfw +VMM_Service Load_FS_Service +VMM_Service Assert_FS_Service +VMM_StdCall_Service ObsoleteRtlUnwind, 4 +VMM_StdCall_Service ObsoleteRtlRaiseException, 1 +VMM_StdCall_Service ObsoleteRtlRaiseStatus, 1 +VMM_StdCall_Service ObsoleteKeGetCurrentIrql, 0 +VMM_FastCall_Service ObsoleteKfRaiseIrql, 1 +VMM_FastCall_Service ObsoleteKfLowerIrql, 1 +VMM_Service _Begin_Preemptable_Code +VMM_Service _End_Preemptable_Code +VMM_FastCall_Service Set_Preemptable_Count, 1 +VMM_StdCall_Service ObsoleteKeInitializeDpc, 3 +VMM_StdCall_Service ObsoleteKeInsertQueueDpc, 3 +VMM_StdCall_Service ObsoleteKeRemoveQueueDpc, 1 +VMM_StdCall_Service HeapAllocateEx, 4 +VMM_StdCall_Service HeapReAllocateEx, 5 +VMM_StdCall_Service HeapGetSizeEx, 2 +VMM_StdCall_Service HeapFreeEx, 2 +VMM_Service _Get_CPUID_Flags +VMM_StdCall_Service KeCheckDivideByZeroTrap, 1 +endif +ifdef WIN41SERVICES +VMM_Service _RegisterGARTHandler +VMM_Service _GARTReserve +VMM_Service _GARTCommit +VMM_Service _GARTUnCommit +VMM_Service _GARTFree +VMM_Service _GARTMemAttributes +VMM_StdCall_Service KfRaiseIrqlToDpcLevel, 0 +VMM_Service VMMCreateThreadEx +VMM_Service _FlushCaches +PG_UNCACHED EQU 00000001H +PG_WRITECOMBINED EQU 00000002H +FLUSHCACHES_NORMAL EQU 00000000H +FLUSHCACHES_GET_CACHE_LINE_PTR EQU 00000001H +FLUSHCACHES_GET_CACHE_SIZE_PTR EQU 00000002H +FLUSHCACHES_TAKE_OVER EQU 00000003H +FLUSHCACHES_FORCE_PAGES_OUT EQU 00000004H +FLUSHCACHES_LOCK_LOCKABLE EQU 00000005H +FLUSHCACHES_UNLOCK_LOCKABLE EQU 00000006H +VMM_Service Set_Thread_Win32_Pri_NoYield +VMM_Service _FlushMappedCacheBlock +VMM_Service _ReleaseMappedCacheBlock +VMM_Service Run_Preemptable_Events +VMM_Service _MMPreSystemExit +VMM_Service _MMPageFileShutDown +VMM_Service _Set_Global_Time_Out_Ex +VMM_Service Query_Thread_Priority +endif +End_Service_Table VMM, VMM +COMNFS_FLAT EQU 0FFFFFFFFH +RS_RECLAIM EQU 00000001H +RS_RESTORE EQU 00000002H +RS_DOSARENA EQU 00000004H + +ReclaimStruc STRUC +RS_Linear DD ? +RS_Bytes DD ? +RS_CallBack DD ? +RS_RefData DD ? +RS_HookTable DD ? +RS_Flags DD ? +ReclaimStruc ENDS + +frmtx STRUC +frmtx_pfrmtxNext DD ? +frmtx_hmutex DD ? +frmtx_cEnterCount DD ? +frmtx_pthcbOwner DD ? +frmtx_htimeout DD ? +frmtx ENDS + +vmmfrinfo STRUC +vmmfrinfo_frmtxDOS DB SIZE frmtx DUP (?) +vmmfrinfo_frmtxV86 DB SIZE frmtx DUP (?) +vmmfrinfo_frmtxOther DB SIZE frmtx DUP (?) +vmmfrinfo ENDS + +DemandInfoStruc STRUC +DILin_Total_Count DD ? +DIPhys_Count DD ? +DIFree_Count DD ? +DIUnlock_Count DD ? +DILinear_Base_Addr DD ? +DILin_Total_Free DD ? +DIPage_Faults DD ? +DIPage_Ins DD ? +DIPage_Outs DD ? +DIPage_Discards DD ? +DIInstance_Faults DD ? +DIPagingFileMax DD ? +DIPagingFileInUse DD ? +DICommit_Count DD ? +DIReserved DD 2 DUP (?) +DemandInfoStruc ENDS + +InstDataStruc STRUC +InstLinkF DD 0 +InstLinkB DD 0 +InstLinAddr DD ? +InstSize DD ? +InstType DD ? +InstDataStruc ENDS +INDOS_FIELD EQU 100H +ALWAYS_FIELD EQU 200H +OPTIONAL_FIELD EQU 400H + +IPF_Data STRUC +IPF_LinAddr DD ? +IPF_MapPageNum DD ? +IPF_PTEEntry DD ? +IPF_FaultingVM DD ? +IPF_Flags DD ? +IPF_Data ENDS + +Exception_Handler_Struc STRUC +EH_Reserved DD ? +EH_Start_EIP DD ? +EH_End_EIP DD ? +EH_Handler DD ? +Exception_Handler_Struc ENDS +PR_PRIVATE EQU 80000400H +PR_SHARED EQU 80060000H +PR_SYSTEM EQU 80080000H +PR_FIXED EQU 00000008H +PR_4MEG EQU 00000001H +PR_STATIC EQU 00000010H +PD_ZEROINIT EQU 00000001H +PD_NOINIT EQU 00000002H +PD_FIXEDZERO EQU 00000003H +PD_FIXED EQU 00000004H +PC_FIXED EQU 00000008H +PC_LOCKED EQU 00000080H +PC_LOCKEDIFDP EQU 00000100H +PC_WRITEABLE EQU 00020000H +PC_USER EQU 00040000H +PC_INCR EQU 40000000H +PC_PRESENT EQU 80000000H +PC_STATIC EQU 20000000H +PC_DIRTY EQU 08000000H +PC_CACHEDIS EQU 00100000H +PC_CACHEWT EQU 00080000H +PC_PAGEFLUSH EQU 00008000H +ifdef WRITE_WATCH +PC_WRITE_WATCH EQU 00200000H +endif +PCC_ZEROINIT EQU 00000001H +PCC_NOLIN EQU 10000000H +MTRR_UC EQU 0 +MTRR_WC EQU 1 +MTRR_WT EQU 4 +MTRR_WP EQU 5 +MTRR_WB EQU 6 +ifndef _WINNT_ + +_MEMORY_BASIC_INFORMATION STRUC +mbi_BaseAddress DD ? +mbi_AllocationBase DD ? +mbi_AllocationProtect DD ? +mbi_RegionSize DD ? +mbi_State DD ? +mbi_Protect DD ? +mbi_Type DD ? +_MEMORY_BASIC_INFORMATION ENDS +PAGE_NOACCESS EQU 01H +PAGE_READONLY EQU 02H +PAGE_READWRITE EQU 04H +MEM_COMMIT EQU 1000H +MEM_RESERVE EQU 2000H +MEM_FREE EQU 10000H +MEM_PRIVATE EQU 20000H +endif + +pd_s STRUC +pd_virginin DD ? +pd_taintedin DD ? +pd_cleanout DD ? +pd_dirtyout DD ? +pd_virginfree DD ? +pd_taintedfree DD ? +pd_dirty DD ? +pd_type DD ? +pd_s ENDS +PD_SWAPPER EQU 0 +PD_PAGERONLY EQU 1 +PD_NESTEXEC EQU 2 +endif +PAGESHIFT EQU 12 +PAGESIZE EQU (1 SHL PAGESHIFT) +PAGEMASK EQU (PAGESIZE-1) +MAXSYSTEMLADDR EQU (0ffbfffffH) +MINSYSTEMLADDR EQU (0c0000000H) +MAXSHAREDLADDR EQU (0bfffffffH) +MINSHAREDLADDR EQU (80000000H) +MAXPRIVATELADDR EQU (7fffffffH) +MINPRIVATELADDR EQU (00400000H) +MAXDOSLADDR EQU (003fffffH) +MINDOSLADDR EQU (00000000H) +MAXSYSTEMPAGE EQU (MAXSYSTEMLADDR SHR PAGESHIFT) +MINSYSTEMPAGE EQU (MINSYSTEMLADDR SHR PAGESHIFT) +MAXSHAREDPAGE EQU (MAXSHAREDLADDR SHR PAGESHIFT) +MINSHAREDPAGE EQU (MINSHAREDLADDR SHR PAGESHIFT) +MAXPRIVATEPAGE EQU (MAXPRIVATELADDR SHR PAGESHIFT) +MINPRIVATEPAGE EQU (MINPRIVATELADDR SHR PAGESHIFT) +MAXDOSPAGE EQU (MAXDOSLADDR SHR PAGESHIFT) +MINDOSPAGE EQU (MINDOSLADDR SHR PAGESHIFT) +CBPRIVATE EQU (1+MAXPRIVATELADDR-MINPRIVATELADDR) +CBSHARED EQU (1+MAXSHAREDLADDR-MINSHAREDLADDR) +CBSYSTEM EQU (1+MAXSYSTEMLADDR-MINSYSTEMLADDR) +CBDOS EQU (1+MAXDOSLADDR-MINDOSLADDR) +CPGPRIVATE EQU (1+MAXPRIVATEPAGE-MINPRIVATEPAGE) +CPGSHARED EQU (1+MAXSHAREDPAGE-MINSHAREDPAGE) +CPGSYSTEM EQU (1+MAXSYSTEMPAGE-MINSYSTEMPAGE) +CPGDOS EQU (1+MAXDOSPAGE-MINDOSPAGE) +IFDEF DEBUG +DebFar EQU NEAR PTR +ELSE +DebFar EQU SHORT +ENDIF + +ASD_MAX_REF_DATA EQU 256 + +_vmmguid STRUC +Data1 DD ? +Data2 DW ? +Data3 DW ? +Data4 DB 8 DUP (?) +_vmmguid ENDS +ASD_ERROR_NONE EQU 00000000H +ASD_CHECK_FAIL EQU 00000001H +ASD_CHECK_SUCCESS EQU 00000002H +ASD_CHECK_UNKNOWN EQU 00000003H +ASD_ERROR_BAD_TIME EQU 00000004H +ASD_REGISTRY_ERROR EQU 00000005H +ASD_CLEAN_BOOT EQU 00000006H +ASD_OUT_OF_MEMORY EQU 00000007H +ASD_FILE_ERROR EQU 00000008H +ASD_ALREADY_SET EQU 00000009H +ASD_MISSING_CHECK EQU 0000000AH +ASD_BAD_PARAMETER EQU 0000000BH +ASD_OP_CHECK_AND_WRITE_FAIL_IF_UNKNOWN EQU 00000000H +ASD_OP_CHECK_AND_ALWAYS_WRITE_FAIL EQU 00000001H +ASD_OP_CHECK EQU 00000002H +ASD_OP_DONE_AND_SET_SUCCESS EQU 00000003H +ASD_OP_SET_FAIL EQU 00000004H +ASD_OP_SET_SUCCESS EQU 00000005H +ASD_OP_SET_UNKNOWN EQU 00000006H +ASD_OP_DONE EQU 00000007H +ASD_FLAG_STRING EQU 00000001H +ifndef Not_VxD +SYS_CRITICAL_INIT EQU 0000H +DEVICE_INIT EQU 0001H +INIT_COMPLETE EQU 0002H +SYS_VM_INIT EQU 0003H +SYS_VM_TERMINATE EQU 0004H +SYSTEM_EXIT EQU 0005H +SYS_CRITICAL_EXIT EQU 0006H +CREATE_VM EQU 0007H +VM_CRITICAL_INIT EQU 0008H +VM_INIT EQU 0009H +VM_TERMINATE EQU 000AH +VM_NOT_EXECUTEABLE EQU 000BH +DESTROY_VM EQU 000CH +VNE_CRASHED_BIT EQU 00H +VNE_CRASHED EQU (1 SHL VNE_CRASHED_BIT) +VNE_NUKED_BIT EQU 01H +VNE_NUKED EQU (1 SHL VNE_NUKED_BIT) +VNE_CREATEFAIL_BIT EQU 02H +VNE_CREATEFAIL EQU (1 SHL VNE_CREATEFAIL_BIT) +VNE_CRINITFAIL_BIT EQU 03H +VNE_CRINITFAIL EQU (1 SHL VNE_CRINITFAIL_BIT) +VNE_INITFAIL_BIT EQU 04H +VNE_INITFAIL EQU (1 SHL VNE_INITFAIL_BIT) +VNE_CLOSED_BIT EQU 05H +VNE_CLOSED EQU (1 SHL VNE_CLOSED_BIT) +VM_SUSPEND EQU 000DH +VM_RESUME EQU 000EH +SET_DEVICE_FOCUS EQU 000FH +BEGIN_MESSAGE_MODE EQU 0010H +END_MESSAGE_MODE EQU 0011H +REBOOT_PROCESSOR EQU 0012H +QUERY_DESTROY EQU 0013H +DEBUG_QUERY EQU 0014H +BEGIN_PM_APP EQU 0015H +BPA_32_BIT EQU 01H +BPA_32_BIT_FLAG EQU 1 +END_PM_APP EQU 0016H +DEVICE_REBOOT_NOTIFY EQU 0017H +CRIT_REBOOT_NOTIFY EQU 0018H +CLOSE_VM_NOTIFY EQU 0019H +CVNF_CRIT_CLOSE_BIT EQU 0 +CVNF_CRIT_CLOSE EQU (1 SHL CVNF_CRIT_CLOSE_BIT) +POWER_EVENT EQU 001AH +SYS_DYNAMIC_DEVICE_INIT EQU 001BH +SYS_DYNAMIC_DEVICE_EXIT EQU 001CH +CREATE_THREAD EQU 001DH +THREAD_INIT EQU 001EH +TERMINATE_THREAD EQU 001FH +THREAD_Not_Executeable EQU 0020H +DESTROY_THREAD EQU 0021H +PNP_NEW_DEVNODE EQU 0022H +W32_DEVICEIOCONTROL EQU 0023H +DIOC_GETVERSION EQU 0H +DIOC_OPEN EQU DIOC_GETVERSION +DIOC_CLOSEHANDLE EQU -1 +SYS_VM_TERMINATE2 EQU 0024H +SYSTEM_EXIT2 EQU 0025H +SYS_CRITICAL_EXIT2 EQU 0026H +VM_TERMINATE2 EQU 0027H +VM_NOT_EXECUTEABLE2 EQU 0028H +DESTROY_VM2 EQU 0029H +VM_SUSPEND2 EQU 002AH +END_MESSAGE_MODE2 EQU 002BH +END_PM_APP2 EQU 002CH +DEVICE_REBOOT_NOTIFY2 EQU 002DH +CRIT_REBOOT_NOTIFY2 EQU 002EH +CLOSE_VM_NOTIFY2 EQU 002FH +GET_CONTENTION_HANDLER EQU 0030H +KERNEL32_INITIALIZED EQU 0031H +KERNEL32_SHUTDOWN EQU 0032H +CREATE_PROCESS EQU 0033H +DESTROY_PROCESS EQU 0034H +ifndef WIN40COMPAT +SYS_DYNAMIC_DEVICE_REINIT EQU 0035H +endif +SYS_POWER_DOWN EQU 0036H +MAX_SYSTEM_CONTROL EQU 0036H +BEGIN_RESERVED_PRIVATE_SYSTEM_CONTROL EQU 70000000H +END_RESERVED_PRIVATE_SYSTEM_CONTROL EQU 7FFFFFFFH +endif +SYSSTATE_PRESYSCRITINIT EQU 00000000H +SYSSTATE_PREDEVICEINIT EQU 10000000H +SYSSTATE_PREINITCOMPLETE EQU 20000000H +SYSSTATE_VXDINITCOMPLETED EQU 40000000H +SYSSTATE_KERNEL32INITED EQU 50000000H +SYSSTATE_KERNEL32TERMINATED EQU 0A0000000H +SYSSTATE_PRESYSVMTERMINATE EQU 0B0000000H +SYSSTATE_PRESYSTEMEXIT EQU 0E0000000H +SYSSTATE_PRESYSTEMEXIT2 EQU 0E4000000H +SYSSTATE_PRESYSCRITEXIT EQU 0F0000000H +SYSSTATE_PRESYSCRITEXIT2 EQU 0F4000000H +SYSSTATE_POSTSYSCRITEXIT2 EQU 0FFF00000H +SYSSTATE_PREDEVICEREBOOT EQU 0FFFF0000H +SYSSTATE_PRECRITREBOOT EQU 0FFFFF000H +SYSSTATE_PREREBOOTCPU EQU 0FFFFFF00H +BeginDoc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EndDoc + + + + + + + + + + + + +??_pf_Check equ 1 +??_pf_ArgsUsed equ 2 +??_pf_Entered equ 4 +??_pf_Left equ 8 +??_pf_Returned equ 16 + +??_pushed = 0 +??_align = 0 +??_ends equ <> + +BeginProc macro Name, P1, P2, P3, P4, P5, P6, P7, LastArg + local Profile_Data, prelabeldata, ??_hookvar + ??_frame = 0 + ??_aframe = 0 + ??_taframe = 0 + ??_initaframe = 0 + ??_numargs = 0 + ??_numlocals = 0 + ??_numlocalsymbols = 0 + ??_procflags = 0 + ??_esp = 0 + ??_pushed = 0 + ??_align = 0 + ??_hook = 0 + ??_hookarg = 0 + ??_service = 0 + ??_async_service = 0 +IF DEBLEVEL GT DEBLEVELNORMAL + ??_log = DFS_LOG + ??_profile = DFS_PROFILE + ??_test_cld = DFS_TEST_CLD +ELSE + ??_log = 0 +IFDEF DEBUG +IFDEF profileall +IF ?_ICODE + ??_profile = DFS_PROFILE +ELSE + ??_profile = 0 +ENDIF +ELSE + ??_profile = 0 +ENDIF +ELSE + ??_profile = 0 +ENDIF + ??_test_cld = 0 +ENDIF + ??_might_block = 0 + ??_test_reenter = 0 + ??_never_reenter = 0 + ??_not_swapping = 0 + ??_prolog_disabled = 0 + ??_public = 1 + ??_cleanoff = 0 + ??_ccall = 0 + ??_pcall = 0 + ??_scall = 0 + ??_fastcall = 0 + ??_w32svc = 0 + ??_fleave = FALSE + + ??_name equ + + .errnb ??_ends, + .errnb , + + + irp arg, + if ??_hookarg + ??_hookarg = 0 + ??_hookvar equ + elseifdef ?&&arg&&_BeginProc + ?&&arg&&_BeginProc + elseifdef VxD_&&arg&&_CODE_SEG + ??_ends textequ + VxD_&&arg&&_CODE_SEG + else + .err + endif + endm + + + ifndef Not_VxD + ife ??_service + ifndef profileall + ??_profile = 0 + endif + ifdef VMMSYS + ??_prolog_disabled = 1 + endif + else + ??_test_cld = DFS_TEST_CLD + endif + + ife ?_16ICODE + ??_prolog_disabled = 1 + else + ife ?_RCODE + ??_prolog_disabled = 1 + else + ife ?_PCODE + ??_might_block = DFS_TEST_BLOCK + endif + if ??_service + ife ??_async_service + ??_test_reenter = DFS_TEST_REENTER + endif + endif + endif + endif + endif + + if ??_esp + + ??_basereg equ + ??_initaframe = 4 + else + + ??_basereg equ + ??_initaframe = 8 + endif + @Caller equ + + ??_cleanoff = ??_pcall or ??_scall or ??_fastcall + + + ??_dfs = ??_never_reenter + ??_test_reenter + ??_not_swapping + \ + ??_log + ??_profile + ??_test_cld + ??_might_block + + if ??_prolog_disabled + ??_dfs = 0 + endif + + + + ifndef Not_VxD + + if ??_hook + if ??_align + Dword_Align + endif + prelabeldata: + ifndef ??_hookvar + .err + endif + jmp short Name + jmp [??_hookvar] + ifdef DEBUG + Profile_Data dd 0 + endif + if ??_align + .errnz ($ - prelabeldata) mod 4 + endif + endif + + ifdef DEBUG + ?prolog_&Name label near + if (??_service OR ??_profile) AND (??_hook EQ 0) + jmp short Name + if ??_align + Dword_Align + endif + + IF ?_ICODE + ifdef profileall + ?ProfileHeader_BeginProc Profile_Data, %@filename + else + Profile_Data dd 0 + endif + ELSE + Profile_Data dd 0 + ENDIF + + endif + endif + + if ??_align + Dword_Align + endif + + endif + + Name proc near + + + + ife ??_pcall or ??_ccall or ??_scall or ??_fastcall + if ??_public + public Name + else + ifdef DEBUG + % ?merge @FileName,$,Name,: + % ?merge public,,,,,@FileName,$,Name + endif + endif + endif + if ??_ccall + if ??_public + _&Name equ Name + ifdef Not_VxD + public C Name + else + public _&Name + endif + endif + endif + if ??_pcall + if ??_public + ?toupper Name + ?merge public,,,,%?upper + endif + endif + + + + ife ??_scall or ??_fastcall + ?_BeginProc_Debug_Prologue + endif + + + +endm + +?_BeginProc_Debug_Prologue MACRO + ifndef Not_VxD + ifdef DEBUG + if ??_dfs EQ DFS_LOG + VMMCall Log_Proc_Call + else + if ??_dfs EQ DFS_TEST_REENTER + VMMCall Test_Reenter + else + if ??_dfs or ?_LOCKABLECODE eq 0 + ifdef WIN31COMPAT + if ??_dfs AND DFS_LOG + VMMCall Log_Proc_Call + endif + if ??_dfs AND DFS_TEST_REENTER + VMMCall Test_Reenter + endif + else + ife ?_LOCKABLECODE + ifdef ??_debug_flags + push ??_debug_flags + if ??_dfs + pushfd + or dword ptr [esp+4],??_dfs + popfd + endif + VMMCall _Debug_Flags_Service + elseif ??_dfs + push ??_dfs + VMMCall _Debug_Flags_Service + endif + else + push ??_dfs + VMMCall _Debug_Flags_Service + endif + endif + else + ifdef profileall + IncProfileCount + endif + endif + endif + endif + endif + endif +ENDM + + + + + + +?_BeginProc macro +endm + +?PUBLIC_BeginProc macro + ??_public = 1 +endm + +?LOCAL_BeginProc macro + ??_public = 0 +endm + +?HIGH_FREQ_BeginProc macro + ??_align = 1 +endm + +?HOOK_PROC_BeginProc macro + ??_hook = 1 + ??_hookarg = 1 +endm + +?SERVICE_BeginProc macro + ??_service = 1 + .erre ?_16ICODE, + .erre ?_RCODE, +endm + +?ASYNC_SERVICE_BeginProc macro + ??_service = 1 + ??_async_service = 1 + .errnz ?_LCODE, +endm + +?NO_LOG_BeginProc macro + ??_log = 0 +endm + +?NO_PROFILE_BeginProc macro + ??_profile = 0 +endm + +?NO_TEST_CLD_BeginProc macro + ??_test_cld = 0 +endm + +?TEST_BLOCK_BeginProc macro + ??_might_block = DFS_TEST_BLOCK +endm + +?TEST_REENTER_BeginProc macro + ??_test_reenter = DFS_TEST_REENTER +endm + +?NEVER_REENTER_BeginProc macro + ??_never_reenter = DFS_NEVER_REENTER +endm + +?NOT_SWAPPING_BeginProc macro + ??_not_swapping = DFS_NOT_SWAPPING +endm + +?NO_PROLOG_BeginProc macro + ??_prolog_disabled = 1 +endm + +?ESP_BeginProc macro + ??_esp = VMM_TRUE + ifndef Not_VxD + .erre ?_16ICODE, + .erre ?_RCODE, + endif +endm + +?CCALL_BeginProc macro + ??_ccall = 1 +endm + +?PCALL_BeginProc macro + ??_pcall = 1 +endm + +?SCALL_BeginProc macro + ??_scall = 1 +endm + +?FASTCALL_BeginProc macro + ??_fastcall = 1 +endm + +?ICALL_BeginProc macro + ??_scall = 1 +endm + +?W32SVC_BeginProc macro + ??_scall = 1 + ??_w32svc = 1 +endm + +ifdef DEBUG +ifdef profileall +?ProfileHeader_BeginProc macro PL, filename +ifndef _&filename&__proc_list + _&filename&__proc_list = 0 + PUBLIC _&filename&__proc_list +endif + dd OFFSET32 _&filename&__proc_list +PL dd 0 +_&filename&__proc_list = PL +endm +endif + +IncProfileCount macro + if ??_service OR ??_profile + inc dword ptr [??_name-4] + else + ifndef profileall + .err + endif + endif +endm +else +IncProfileCount macro +endm +endif + + + + + + + + + + + + + + + + +ArgVar macro name,length,used + ??_numargs = ??_numargs + 1 + if ??_pcall + ?mkarg , , , %??_numargs + else + ?arg , , + endif + ??_procflags = ??_procflags OR ??_pf_Check + endm + +?mkarg macro name, length, used, num + .xcref ?MKA&num + ?deflocal + ?MKA&num ¯o + ?argvar , , + &endm + ??_aframe = ??_aframe + 4 + endm + .xcref ?mkarg + +?argvar macro name,length,used + local a + a = ??_taframe + ??_aframe = ??_aframe + 4 + ??_taframe = ??_taframe + 4 + ifidni , + ?setname , , + elseifidni , + ?setname , , + elseifidni , + ?setname , , + ?setname ,, + ?setname ,, + ?setname ,, + ?setname ,, + ?setname ,, + ?setname ,, + else + ??_aframe = ??_aframe - 4 + ((length + 3)/4)*4 + ??_taframe = ??_taframe - 4 + ((length + 3)/4)*4 + ?setname , <[??_basereg+??_initaframe+a]>, + endif +endm + +?arg macro name,length,used + if ??_fastcall + if ??_numargs le 2 + if length gt 4 + .err + endif + ??_aframe = ??_aframe + 4 + if ??_numargs eq 1 + ?merge ecx_,name,,,equ,ecx + else + ?merge edx_,name,,,equ,edx + endif + else + ?argvar name, length, used + endif + else + ?argvar name, length, used + endif +endm + + + + + + +?setname macro name, value, used + ?deflocal + ifidni , + name equ _inaccessible_NOTUSED_ + else + name equ value + ??_procflags = ??_procflags OR ??_pf_ArgsUsed OR ??_pf_Check + endif +endm + + + + + + + + + + + + + + + + + + + +LocalVar macro name,length,flag + local a + ??_numlocals = ??_numlocals + 1 + ??_pad = 1 + ifidni , + ??_pad = 0 + endif + ifidni , + ??_frame = ??_frame + 1 + 3 * ??_pad + a = ??_frame + ?deflocal + name equ byte ptr [??_basereg-a] + elseifidni , + ??_frame = ??_frame + 2 + 2 * ??_pad + a = ??_frame + ?deflocal + name equ word ptr [??_basereg-a] + elseifidni , + ??_frame = ??_frame + 4 + a = ??_frame + ?deflocal + name equ dword ptr [??_basereg-a] + name&l equ word ptr [??_basereg-a] + name&ll equ byte ptr [??_basereg-a] + name&lh equ byte ptr [??_basereg-a+1] + name&h equ word ptr [??_basereg-a+2] + name&hl equ byte ptr [??_basereg-a+2] + name&hh equ byte ptr [??_basereg-a+3] + else + ??_frame = ??_frame + ((length + 3)/4)*4 + a = ??_frame + ?deflocal + name equ [??_basereg-a] + endif + ??_procflags = ??_procflags OR ??_pf_Check +endm + +?deflocal macro name + irp nm, + ??_numlocalsymbols = ??_numlocalsymbols + 1 + ?dodeflocal , %(??_numlocalsymbols) + endm +endm + .xcref ?deflocal + +?dodeflocal macro name, num + .xcref ?LOC&num + ?LOC&num ¯o + name equ <__inaccessible__NOTINSCOPE__> + &endm + endm + .xcref ?dodeflocal + + + +EnterProc macro + .errnz ??_frame and 3, + if ??_scall + if ??_public + ifdef Not_VxD + ?merge %??_name,@,%(??_aframe),,label,near + ?merge public,,,,C,%??_name,@,%(??_aframe) + else + ?merge _,%??_name,@,%(??_aframe),label,near + ?merge public,,,,,_,%??_name,@,%(??_aframe) + endif + endif + ?_BeginProc_Debug_Prologue + endif + if ??_fastcall + if ??_public + ifdef Not_VxD + ?merge %??_name,@,%(??_aframe),,label,near + ?merge public,,,,C,%??_name,@,%(??_aframe) + else + ?merge @,%??_name,@,%(??_aframe),label,near + ?merge public,,,,,@,%??_name,@,%(??_aframe) + endif + endif + ?_BeginProc_Debug_Prologue + endif + if ??_pcall + ??_aframe = 0 + ?count = ??_numargs + rept ??_numargs + ?invprg ,%?count + ?count = ?count - 1 + endm + endif + ??_fleave = FALSE + if ??_esp + if ??_frame + sub esp, ??_frame + ??_pushed = ??_pushed + ??_frame + ??_fleave = VMM_TRUE + endif + else + if ??_frame eq 0 + if (??_taframe eq 0) OR ((??_procflags AND ??_pf_ArgsUsed) EQ 0) + ifdef DEBUG + push ebp + mov ebp,esp + ??_fleave = VMM_TRUE + endif + else + push ebp + mov ebp,esp + ??_fleave = VMM_TRUE + endif + else + enter ??_frame, 0 + ??_fleave = VMM_TRUE + endif + endif + ??_procflags = ??_procflags OR ??_pf_Entered +endm + + + + + + + + + + + + + + + +LeaveProc macro flags + if ??_fleave + if ??_esp + ifidni , + lea esp,[esp + ??_frame] + else + add esp,??_frame + endif + else + leave + endif + endif + ??_procflags = ??_procflags OR ??_pf_Left +endm + + + + + + + +Return macro + if ??_cleanoff OR ??_w32svc + if ??_w32svc AND (??_taframe LT 8) + ret 8 + else + ret ??_taframe + endif + else + ret + endif + ??_procflags = ??_procflags OR ??_pf_Returned + endm + + + + +EndProc macro Name, Flag + Name endp +if ??_w32svc + if ??_taframe lt 8 + cparm&Name equ 0 + else + cparm&Name equ (??_taframe/4 - 2) + endif +endif +if ??_procflags AND ??_pf_Left +if ??_fleave +if ??_esp + ??_pushed = ??_pushed - ??_frame +endif +endif +endif +ifdifi , + if ??_pushed ne 0 + %out Warning: stack not balanced in Name + endif + if ??_procflags AND ??_pf_Check + ife ??_procflags AND ??_pf_Entered + %out Warning: ArgVar/LocalVar without EnterProc in Name + endif + ife ??_procflags AND ??_pf_Left + %out Warning: ArgVar/LocalVar without LeaveProc in Name + endif + ife ??_procflags AND ??_pf_Returned + %out Warning: ArgVar/LocalVar without Return in Name + endif + endif +endif +ifdifi , + ?count = 0 + rept ??_numlocalsymbols + ?count = ?count + 1 + ?invprg ,%?count + endm +endif + ??_ends + ??_ends equ <> + endm + + + + + + + +cCall macro name, arglst, flags + ife .TYPE name + CondExtern name, near + endif + ifdef ??_nonstandardccall_&name + PushCParams , + else + PushCParams , + endif + call name + ifdef ??_nonstandardccall_&name + ClearCParams PRESERVE_FLAGS + else + ClearCParams + endif + endm + .xcref cCall + + + + + + +pCall macro name, arglst + local ??saved + ife .TYPE name + ?toupper name + else + ?upper equ + endif + CondExtern %?upper, near + ??saved = ??_pushed + irp x, + push x + ??_pushed = ??_pushed + 4 + endm + call ?upper + ??_pushed = ??saved + endm + .xcref pCall + + + + + + + +sCall macro name, arglst + local ??saved + ??saved = ??_pushed + PushCParams + ?scall _, name, %(??_argc * 4) + ??_pushed = ??saved + endm + .xcref sCall + + + + + + + + + + + + + + +fCall macro name, arglst, flags + local ??saved + ??saved = ??_pushed + ife .TYPE name + CondExtern name, near + endif + PushCParams , + ?scall @, name, %(??_argc * 4) + ifdef ??_nonstandardccall_&name + ClearCParams PRESERVE_FLAGS + else + ClearCParams + endif + ??_pushed = ??saved + endm + .xcref fCall + + + + + +iCall equ + + + + + + + + + + + + + + +IFNDEF STANDARD_CCALL +NONSTANDARD_CCALL = 1 +ENDIF + +PushCParams macro arglst, flags + LOCAL ??_pushedargs + + ??_argc = 0 +IFDEF NONSTANDARD_CCALL + ??_popargs = 0 +ELSE + ??_popargs = ??_align EQ 0 +ENDIF + ifidni , + ??_popargs = 1 + elseifidni , + ??_popargs = 0 + elseifidni , + ??_popargs = 0 + endif + + irp x, + ??_argc = ??_argc + 1 + ifidni , + if ??_argc eq 1 + ifdifi , + .err + endif + elseif ??_argc eq 2 + ifdifi , + .err + endif + else + ?marg ,%??_argc + endif + else + ?marg ,%??_argc + endif + endm + ?count = ??_argc + ifidni , + ??_pushedargs = ??_argc-2 + else + ??_pushedargs = ??_argc + endif + if ??_pushedargs GT 0 + rept ??_argc + ?invprg ,%?count + ?count = ?count - 1 + endm + endif + endm + + + + + + + + + + + + + + + + +ClearCParams macro fPreserveFlags + if ??_argc ne 0 + if (??_popargs) AND (??_argc LE 2) + rept ??_argc + pop ecx + endm + elseifidni , + lea esp, [esp][??_argc * 4] + else + add esp,??_argc * 4 + endif + endif + ??_pushed = ??_pushed - (??_argc * 4) + endm + + + +?marg macro name, num + .xcref + .xcref ?AM&num + .cref + ?AM&num ¯o + push name + ??_pushed = ??_pushed + 4 + &endm + endm + .xcref ?marg + + + +?invprg macro name1, name2 + name1&name2 + purge name1&name2 + endm + .xcref ?invprg + + + +?scall macro prefix, name1, name2 + CondExtern prefix&name1&@&name2, near + call prefix&name1&@&name2 + endm + .xcref ?scall + + + +?merge macro l1, l2, l3, l4, op, r1, r2, r3, r4, r5, r6, r7, r8, r9 + l1&l2&l3&l4 op r1&r2&r3&r4&r5&r6&r7&r8&r9 + endm + + + +?toupper macro s + ?upper equ <> + irpc x, + if '&x' GE 'a' + if '&x' LE 'z' + ?t1 substr ,'&x'-'a'+1,1 + ?upper catstr ?upper,?t1 + else + ?upper catstr ?upper,<&x> + endif + else + ?upper catstr ?upper,<&x> + endif + endm + endm + .xcref + + + + + + +CondExtern macro name,dist + ifdef MASM6 + ifndef name + externdef name:dist + endif + else + if2 + ifndef name + extrn name:dist + endif + endif + endif +endm + + + +SaveReg macro reglist + irp reg, + ifidni , + pushfd + ??_pushed = ??_pushed + 4 + else + ifidni , + pushad + ??_pushed = ??_pushed + SIZE Pushad_Struc + else + push reg + ??_pushed = ??_pushed + 4 + endif + endif + endm +endm + + + + + + + +RestoreReg macro reglist + irp reg, + ifidni , + popfd + ??_pushed = ??_pushed - 4 + else + ifidni , + popad + ??_pushed = ??_pushed - SIZE Pushad_Struc + else + pop reg + ??_pushed = ??_pushed - 4 + endif + endif + endm +endm + +ifdef DEBUG +Begin_Profile_List macro devname +ifdef profileall +VxD_DATA_SEG + db 'PROCLIST' +PUBLIC devname&_Proc_Profile_List +devname&_Proc_Profile_List label dword +endif +endm + +Profile_Link macro modname +ifdef profileall +ifdifi ,@filename +EXTRN _&modname&__proc_list:near +endif + dd OFFSET32 _&modname&__proc_list +endif +endm + +End_Profile_List macro +ifdef profileall + dd 0 +VxD_DATA_ENDS +endif +endm + + +endif +ifndef Not_VxD +RESERVED_LOW_BOOST EQU 00000001H +CUR_RUN_VM_BOOST EQU 00000004H +LOW_PRI_DEVICE_BOOST EQU 00000010H +HIGH_PRI_DEVICE_BOOST EQU 00001000H +CRITICAL_SECTION_BOOST EQU 00100000H +TIME_CRITICAL_BOOST EQU 00400000H +RESERVED_HIGH_BOOST EQU 40000000H +PEF_WAIT_FOR_STI_BIT EQU 0 +PEF_WAIT_FOR_STI EQU (1 SHL PEF_WAIT_FOR_STI_BIT) +PEF_WAIT_NOT_CRIT_BIT EQU 1 +PEF_WAIT_NOT_CRIT EQU (1 SHL PEF_WAIT_NOT_CRIT_BIT) +PEF_DONT_UNBOOST_BIT EQU 2 +PEF_DONT_UNBOOST EQU (1 SHL PEF_DONT_UNBOOST_BIT) +PEF_ALWAYS_SCHED_BIT EQU 3 +PEF_ALWAYS_SCHED EQU (1 SHL PEF_ALWAYS_SCHED_BIT) +PEF_TIME_OUT_BIT EQU 4 +PEF_TIME_OUT EQU (1 SHL PEF_TIME_OUT_BIT) +PEF_WAIT_NOT_HW_INT_BIT EQU 5 +PEF_WAIT_NOT_HW_INT EQU (1 SHL PEF_WAIT_NOT_HW_INT_BIT) +PEF_WAIT_NOT_NESTED_EXEC_BIT EQU 6 +PEF_WAIT_NOT_NESTED_EXEC EQU (1 SHL PEF_WAIT_NOT_NESTED_EXEC_BIT) +PEF_WAIT_IN_PM_BIT EQU 7 +PEF_WAIT_IN_PM EQU (1 SHL PEF_WAIT_IN_PM_BIT) +PEF_THREAD_EVENT_BIT EQU 8 +PEF_THREAD_EVENT EQU (1 SHL PEF_THREAD_EVENT_BIT) +PEF_WAIT_FOR_THREAD_STI_BIT EQU 9 +PEF_WAIT_FOR_THREAD_STI EQU (1 SHL PEF_WAIT_FOR_THREAD_STI_BIT) +PEF_RING0_EVENT_BIT EQU 10 +PEF_RING0_EVENT EQU (1 SHL PEF_RING0_EVENT_BIT) +PEF_WAIT_CRIT_BIT EQU 11 +PEF_WAIT_CRIT EQU (1 SHL PEF_WAIT_CRIT_BIT) +PEF_WAIT_CRIT_VM_BIT EQU 12 +PEF_WAIT_CRIT_VM EQU (1 SHL PEF_WAIT_CRIT_VM_BIT) +PEF_PROCESS_LAST_BIT EQU 13 +PEF_PROCESS_LAST EQU (1 SHL PEF_PROCESS_LAST_BIT) +PEF_WAIT_PREEMPTABLE_BIT EQU 14 +PEF_WAIT_PREEMPTABLE EQU (1 SHL PEF_WAIT_PREEMPTABLE_BIT) +PEF_WAIT_FOR_PASSIVE_BIT EQU 15 +PEF_WAIT_FOR_PASSIVE EQU (1 SHL PEF_WAIT_FOR_PASSIVE_BIT) +PEF_WAIT_FOR_APPY_BIT EQU 16 +PEF_WAIT_FOR_APPY EQU (1 SHL PEF_WAIT_FOR_APPY_BIT) +PEF_WAIT_FOR_WORKER_BIT EQU 17 +PEF_WAIT_FOR_WORKER EQU (1 SHL PEF_WAIT_FOR_WORKER_BIT) +PEF_WAIT_NOT_TIME_CRIT_BIT EQU PEF_WAIT_NOT_HW_INT_BIT +PEF_WAIT_NOT_TIME_CRIT EQU PEF_WAIT_NOT_HW_INT +PEF_WAIT_NOT_PM_LOCKED_STACK_BIT EQU PEF_WAIT_NOT_NESTED_EXEC_BIT +PEF_WAIT_NOT_PM_LOCKED_STACK EQU PEF_WAIT_NOT_NESTED_EXEC +PEF_WAIT_FOR_CONFIGMG_CALLABLE EQU PEF_WAIT_FOR_WORKER +PEF_WAIT_FOR_CONFIGMG_QUICK EQU PEF_WAIT_FOR_APPY +BLOCK_SVC_INTS_BIT EQU 0 +BLOCK_SVC_INTS EQU (1 SHL BLOCK_SVC_INTS_BIT) +BLOCK_SVC_IF_INTS_LOCKED_BIT EQU 1 +BLOCK_SVC_IF_INTS_LOCKED EQU (1 SHL BLOCK_SVC_IF_INTS_LOCKED_BIT) +BLOCK_ENABLE_INTS_BIT EQU 2 +BLOCK_ENABLE_INTS EQU (1 SHL BLOCK_ENABLE_INTS_BIT) +BLOCK_POLL_BIT EQU 3 +BLOCK_POLL EQU (1 SHL BLOCK_POLL_BIT) +BLOCK_THREAD_IDLE_BIT EQU 4 +BLOCK_THREAD_IDLE EQU (1 SHL BLOCK_THREAD_IDLE_BIT) +BLOCK_FORCE_SVC_INTS_BIT EQU 5 +BLOCK_FORCE_SVC_INTS EQU (1 SHL BLOCK_FORCE_SVC_INTS_BIT) + +Client_Reg_Struc STRUC +Client_EDI DD ? +Client_ESI DD ? +Client_EBP DD ? +Client_res0 DD ? +Client_EBX DD ? +Client_EDX DD ? +Client_ECX DD ? +Client_EAX DD ? +Client_Error DD ? +Client_EIP DD ? +Client_CS DW ? +Client_res1 DW ? +Client_EFlags DD ? +Client_ESP DD ? +Client_SS DW ? +Client_res2 DW ? +Client_ES DW ? +Client_res3 DW ? +Client_DS DW ? +Client_res4 DW ? +Client_FS DW ? +Client_res5 DW ? +Client_GS DW ? +Client_res6 DW ? +Client_Alt_EIP DD ? +Client_Alt_CS DW ? +Client_res7 DW ? +Client_Alt_EFlags DD ? +Client_Alt_ESP DD ? +Client_Alt_SS DW ? +Client_res8 DW ? +Client_Alt_ES DW ? +Client_res9 DW ? +Client_Alt_DS DW ? +Client_res10 DW ? +Client_Alt_FS DW ? +Client_res11 DW ? +Client_Alt_GS DW ? +Client_res12 DW ? +Client_Reg_Struc ENDS + +Client_Word_Reg_Struc STRUC +Client_DI DW ? +Client_res13 DW ? +Client_SI DW ? +Client_res14 DW ? +Client_BP DW ? +Client_res15 DW ? +Client_res16 DD ? +Client_BX DW ? +Client_res17 DW ? +Client_DX DW ? +Client_res18 DW ? +Client_CX DW ? +Client_res19 DW ? +Client_AX DW ? +Client_res20 DW ? +Client_res21 DD ? +Client_IP DW ? +Client_res22 DW ? +Client_res23 DD ? +Client_Flags DW ? +Client_res24 DW ? +Client_SP DW ? +Client_res25 DW ? +Client_res26 DD 5 DUP (?) +Client_Alt_IP DW ? +Client_res27 DW ? +Client_res28 DD ? +Client_Alt_Flags DW ? +Client_res29 DW ? +Client_Alt_SP DW ? +Client_Word_Reg_Struc ENDS + +Client_Byte_Reg_Struc STRUC +Client_res30 DD 4 DUP (?) +Client_BL DB ? +Client_BH DB ? +Client_res31 DW ? +Client_DL DB ? +Client_DH DB ? +Client_res32 DW ? +Client_CL DB ? +Client_CH DB ? +Client_res33 DW ? +Client_AL DB ? +Client_AH DB ? +Client_Byte_Reg_Struc ENDS +?UnionSize = 0 +if size Client_Reg_Struc gt ?UnionSize + ?UnionSize = size Client_Reg_Struc +endif +CRS equ <(byte ptr 0)> + +if size Client_Word_Reg_Struc gt ?UnionSize + ?UnionSize = size Client_Word_Reg_Struc +endif +CWRS equ <(byte ptr 0)> + +if size Client_Byte_Reg_Struc gt ?UnionSize + ?UnionSize = size Client_Byte_Reg_Struc +endif +CBRS equ <(byte ptr 0)> + + +tagCLIENT_STRUC STRUC + DB ?UnionSize dup(?) +tagCLIENT_STRUC ENDS + +IF 0 +.ERRNZ Client_SP - Client_ESP +.ERRNZ Client_AL - Client_EAX + +endif +DYNA_LINK_INT EQU 20H + + + + + + + + + + + + +DeclareNonstandardCcallService macro arglst + irp x, + ??_nonstandardccall_&&x = 1 + endm +endm + + + + + + +DeclareNonstandardCcallService <_BlockOnID, _LocalizeSprintf> +DeclareNonstandardCcallService <_SetLastV86Page> + +BeginDoc + + + + + + + + + + + + + +EndDoc + + +BeginDoc + + + + + + + + +EndDoc + +DefTable MACRO vt, vn + vt EQU +ENDM + +GenDD2 MACRO vt, sn, jf + dd OFFSET32 vt[sn+jf] +ENDM + +GenDD MACRO P, vid, snum, jflag + LOCAL vtable +IFDEF @@VxDName&vid + Deftable vtable, %@@VxDName&vid + EXTRN vtable:DWORD + GenDD2 %vtable, snum, jflag +ELSE + dd @@&P+jflag +ENDIF + +ENDM + + +VxDCall MACRO P, Param, flags + ??_vxdid = (@@&P SHR 16) + ??_servicenum = (@@&P AND 0FFFFh) + + ifdef ??_standardccall_&P + PushCParams , + .errnz ??_argc ne ??_standardccall_&P, + else + ifdef ??_fastcall_&P + PushCParams , + .errnz ??_argc ne (??_fastcall_&P), + else + ifdef ??_nonstandardccall_&P + PushCParams , + else + PushCParams , + endif + endif + endif + int Dyna_Link_Int + GenDD P, %??_vxdid, %??_servicenum, 0 + ifndef ??_standardccall_&P + ifndef ??_fastcall_&P + ifdef ??_nonstandardccall_&P + ClearCParams PRESERVE_FLAGS + else + ClearCParams + endif + else + if(??_argc gt 2) + ??_pushed = ??_pushed - ((??_argc - 2) * 4) + endif + endif + else + ??_pushed = ??_pushed - (??_argc * 4) + endif + ENDM + +VxDJmp MACRO P, Param + ??_vxdid = (@@&P SHR 16) + ??_servicenum = (@@&P AND 0FFFFh) + ifdef ??_fastcall_&P + PushCParams , + .errnz ??_argc gt 2, + else + .errnb , + endif + int Dyna_Link_Int + GenDD P, %??_vxdid, %??_servicenum, DL_Jmp_Mask + ENDM + +DL_Jmp_Mask EQU 8000h +DL_Jmp_Bit EQU 0Fh + +VMMCall MACRO P, Param + .ERRNZ (@@&P SHR 16) - VMM_DEVICE_ID + VxDCall

, + ENDM + +VMMJmp MACRO P, Param + .ERRNZ (@@&P SHR 16) - VMM_DEVICE_ID + VxDJmp

, + ENDM + +WDMCall MACRO P, Param, flags + ifdef ??_standardccall_&P + PushCParams , + .errnz ??_argc ne ??_standardccall_&P, + else + ifdef ??_fastcall_&P + PushCParams , + .errnz ??_argc ne (??_fastcall_&P), + else + ifdef ??_nonstandardccall_&P + PushCParams , + else + PushCParams , + endif + endif + endif + mov eax,WDM@@&P + int WDM_DynaLink_Int + nop + nop + nop + ifndef ??_standardccall_&P + ifndef ??_fastcall_&P + ifdef ??_nonstandardccall_&P + ClearCParams PRESERVE_FLAGS + else + ClearCParams + endif + else + if(??_argc gt 2) + ??_pushed = ??_pushed - ((??_argc - 2) * 4) + endif + endif + else + ??_pushed = ??_pushed - (??_argc * 4) + endif + ENDM + +WDMJmp MACRO P, Param + ifdef ??_fastcall_&P + PushCParams , + .errnz ??_argc gt 2, + else + .errnb , + endif + mov eax, WDM@@&P+WDM_DL_Jmp_Mask + int WDM_DynaLink_Int + nop + nop + nop + ENDM + +WDM_DL_Jmp_Mask EQU 80000000h +WDM_DL_Jmp_Bit EQU 31 + +BeginDoc + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EndDoc + + + + +VxD_CODE_SEG EQU +VxD_CODE_ENDS EQU + + +VxD_LOCKED_CODE_SEG MACRO +_LTEXT SEGMENT +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_LCODE + ASSUME cs:FLAT, ds:FLAT, es:FLAT, ss:FLAT + + ENDM + +VxD_LOCKED_CODE_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +_LTEXT ENDS + ENDM + + + + +VxD_PAGEABLE_CODE_SEG MACRO +_PTEXT SEGMENT +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_PCODE + ASSUME cs:FLAT, ds:FLAT, es:FLAT, ss:FLAT + + ENDM + +VxD_PAGEABLE_CODE_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +_PTEXT ENDS + ENDM + + + + +VxD_DEBUG_ONLY_CODE_SEG MACRO +_DB1CODE SEGMENT +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_DBOCODE + ASSUME cs:FLAT, ds:FLAT, es:FLAT, ss:FLAT + ENDM + +VxD_DEBUG_ONLY_CODE_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +_DB1CODE ENDS + ENDM + + + + +VxD_INIT_CODE_SEG MACRO +_ITEXT SEGMENT +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_ICODE + ASSUME cs:FLAT, ds:FLAT, es:FLAT, ss:FLAT + ENDM + +VxD_INIT_CODE_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +_ITEXT ENDS + ENDM + +VxD_ICODE_SEG equ VxD_INIT_CODE_SEG +VxD_ICODE_ENDS equ VxD_INIT_CODE_ENDS + + + + +VxD_DATA_SEG EQU +VxD_DATA_ENDS EQU + +VxD_LOCKED_DATA_SEG MACRO NO_ALIGN +_LDATA SEGMENT +IFB + ALIGN 4 +ENDIF + ENDM + +VxD_LOCKED_DATA_ENDS MACRO +_LDATA ENDS + ENDM + + + + +VxD_IDATA_SEG MACRO +_IDATA SEGMENT + ENDM +VxD_IDATA_ENDS MACRO +_IDATA ENDS + ENDM + + + + +VxD_PAGEABLE_DATA_SEG MACRO NO_ALIGN +_PDATA SEGMENT +IFB + ALIGN 4 +ENDIF + ENDM + +VxD_PAGEABLE_DATA_ENDS MACRO +_PDATA ENDS + ENDM + + + + +VxD_STATIC_CODE_SEG MACRO +_STEXT SEGMENT +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_SCODE + ASSUME cs:FLAT, ds:FLAT, es:FLAT, ss:FLAT + + ENDM + +VxD_STATIC_CODE_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +_STEXT ENDS + ENDM + + + + +VxD_STATIC_DATA_SEG MACRO NO_ALIGN +_SDATA SEGMENT +IFB + ALIGN 4 +ENDIF + ENDM + +VxD_STATIC_DATA_ENDS MACRO +_SDATA ENDS + ENDM + + + +VxD_DEBUG_ONLY_DATA_SEG MACRO NO_ALIGN +_DB2DATA SEGMENT +IFB + ALIGN 4 +ENDIF + ENDM + +VxD_DEBUG_ONLY_DATA_ENDS MACRO +_DB2DATA ENDS + ENDM + + + + +VxD_16BIT_INIT_SEG MACRO +_16ICODE SEGMENT +ASSUME CS:_16ICODE, DS:NOTHING, ES:NOTHING, SS:NOTHING +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_16ICODE + ENDM + +VxD_16BIT_INIT_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +_16ICODE ENDS + ENDM + + + +VxD_REAL_INIT_SEG MACRO +_RCODE SEGMENT +ASSUME CS:_RCODE, DS:_RCODE, ES:_RCODE, SS:_RCODE +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHL 4 + ??_RCODE + ENDM + +VxD_REAL_INIT_ENDS MACRO +??_CUR_CODE_SEG = ??_CUR_CODE_SEG SHR 4 +_RCODE ENDS + ENDM + +endif +ifndef DDK_VERSION +ifdef WIN31COMPAT +DDK_VERSION EQU 30AH +else +ifdef WIN40COMPAT +DDK_VERSION EQU 400H +else +DDK_VERSION EQU 40AH +endif +endif +endif + +VxD_Desc_Block STRUC +DDB_Next DD ? +DDB_SDK_Version DW DDK_VERSION +DDB_Req_Device_Number DW UNDEFINED_DEVICE_ID +DDB_Dev_Major_Version DB 0 +DDB_Dev_Minor_Version DB 0 +DDB_Flags DW 0 +DDB_Name DB " " +DDB_Init_Order DD UNDEFINED_INIT_ORDER +DDB_Control_Proc DD ? +DDB_V86_API_Proc DD 0 +DDB_PM_API_Proc DD 0 +DDB_V86_API_CSIP DD 0 +DDB_PM_API_CSIP DD 0 +DDB_Reference_Data DD ? +DDB_Service_Table_Ptr DD 0 +DDB_Service_Table_Size DD 0 +DDB_Win32_Service_Table DD 0 +DDB_Prev DD 'Prev' +DDB_Size DD SIZE(VxD_Desc_Block) +DDB_Reserved1 DD 'Rsv1' +DDB_Reserved2 DD 'Rsv2' +DDB_Reserved3 DD 'Rsv3' +VxD_Desc_Block ENDS +ifndef Not_VxD +DDB_SYS_CRIT_INIT_DONE_BIT EQU 0 +DDB_SYS_CRIT_INIT_DONE EQU (1 SHL DDB_SYS_CRIT_INIT_DONE_BIT) +DDB_DEVICE_INIT_DONE_BIT EQU 1 +DDB_DEVICE_INIT_DONE EQU (1 SHL DDB_DEVICE_INIT_DONE_BIT) +DDB_HAS_WIN32_SVCS_BIT EQU 14 +DDB_HAS_WIN32_SVCS EQU (1 SHL DDB_HAS_WIN32_SVCS_BIT) +DDB_DYNAMIC_VXD_BIT EQU 15 +DDB_DYNAMIC_VXD EQU (1 SHL DDB_DYNAMIC_VXD_BIT) +DDB_DEVICE_DYNALINKED_BIT EQU 13 +DDB_DEVICE_DYNALINKED EQU (1 SHL DDB_DEVICE_DYNALINKED_BIT) +BeginDoc + + + + + + + +EndDoc +Declare_Virtual_Device MACRO Name, Major_Ver, Minor_Ver, Ctrl_Proc, Device_Num, Init_Order, V86_Proc, PM_Proc, Reference_Data + LOCAL V86_API_Offset, PM_API_Offset, Serv_Tab_Offset, Serv_Tab_Len, Ref_Data_Offset + +dev_id_err MACRO + +IFNDEF Name&_Name_Based +.err +ENDIF + ENDM + +IFB + V86_API_Offset EQU 0 +ELSE + IFB + dev_id_err + ENDIF + V86_API_Offset EQU +ENDIF + +IFB + PM_API_Offset EQU 0 +ELSE + IFB + dev_id_err + ENDIF + PM_API_Offset EQU +ENDIF + +IFDEF Name&_Service_Table + IFB + dev_id_err + ELSE + IFE Device_Num - UNDEFINED_DEVICE_ID + dev_id_err + ENDIF + ENDIF + Serv_Tab_Offset EQU + Serv_Tab_Len EQU Num_&Name&_Services +ELSE + Serv_Tab_Offset EQU 0 + Serv_Tab_Len EQU 0 +ENDIF + +IFNB + .erre (Device_Num LT BASEID_FOR_NAMEBASEDVXD), +ENDIF + +IFB + Ref_Data_Offset EQU 0 +ELSE + Ref_Data_Offset EQU +ENDIF + +IFDEF DEBUG +VxD_IDATA_SEG + db 0dh, 0ah, 'D_E_B_U_G===>' + db "&Name", '<===', 0dh, 0ah +VxD_IDATA_ENDS +ENDIF + +VxD_LOCKED_DATA_SEG + +PUBLIC Name&_DDB +Name&_DDB VxD_Desc_Block <,,Device_Num,Major_Ver,Minor_Ver,,"&Name",Init_Order,\ + OFFSET32 Ctrl_Proc, V86_API_Offset, PM_API_Offset, \ + ,,Ref_Data_Offset,Serv_Tab_Offset, Serv_Tab_Len> + +VxD_LOCKED_DATA_ENDS + + ENDM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Begin_Control_Dispatch MACRO VxD_Name, p1, p2 +??_cd_low = 0FFFFFFFFh +??_cd_high = 0 + +BeginProc VxD_Name&_Control, p1, p2, LOCKED +ENDM + +End_Control_Dispatch MACRO VxD_Name + LOCAL ignore, table + +procoff MACRO num +IFDEF ??_cd_&&num + dd OFFSET32 ??_cd_&&num +ELSE + dd OFFSET32 ignore +ENDIF +ENDM + +IF ??_cd_low EQ ??_cd_high + cmp eax, ??_cd_low + ?merge ,,,,,, %(??_cd_low) + clc + ret +ELSE +IF ??_cd_low GT 0 + sub eax, ??_cd_low +ENDIF + cmp eax, ??_cd_high - ??_cd_low + 1 + jae short ignore + jmp [eax*4+table] +ignore: + clc + ret + +table label dword + REPT ??_cd_high - ??_cd_low + 1 + procoff %(??_cd_low) + ??_cd_low = ??_cd_low + 1 + ENDM +ENDIF + +EndProc VxD_Name&_Control + +PURGE procoff +PURGE Begin_Control_Dispatch +PURGE Control_Dispatch +PURGE End_Control_Dispatch +ENDM + +BeginDoc + + + + + + + + + + + + + + + + + + + + +EndDoc +Control_Dispatch MACRO Service, Procedure, callc, arglst + LOCAL Skip_Interseg_Jump + +.errnz ?_LCODE, + +IFB + +IFDEF ??_cd_low +Equate_Service MACRO Serv +??_cd_&&Serv equ Procedure +ENDM + +Equate_Service %(Service) + +IF Service LT ??_cd_low +??_cd_low = Service +ENDIF +IF Service GT ??_cd_high +??_cd_high = Service +ENDIF + +PURGE Equate_Service + +ELSE + cmp eax, Service + jz Procedure +ENDIF + +ELSE + + cmp eax, Service + jne SHORT Skip_Interseg_Jump + callc Procedure, +IF Service EQ PNP_NEW_DEVNODE + stc +ELSE + cmp eax,1 +ENDIF + ret +Skip_Interseg_Jump: + +ENDIF + + ENDM + +BYTE_INPUT EQU 000H +BYTE_OUTPUT EQU 004H +WORD_INPUT EQU 008H +WORD_OUTPUT EQU 00CH +DWORD_INPUT EQU 010H +DWORD_OUTPUT EQU 014H +OUTPUT_BIT EQU 2 +OUTPUT EQU (1 SHL OUTPUT_BIT) +WORD_IO_BIT EQU 3 +WORD_IO EQU (1 SHL WORD_IO_BIT) +DWORD_IO_BIT EQU 4 +DWORD_IO EQU (1 SHL DWORD_IO_BIT) +STRING_IO_BIT EQU 5 +STRING_IO EQU (1 SHL STRING_IO_BIT) +REP_IO_BIT EQU 6 +REP_IO EQU (1 SHL REP_IO_BIT) +ADDR_32_IO_BIT EQU 7 +ADDR_32_IO EQU (1 SHL ADDR_32_IO_BIT) +REVERSE_IO_BIT EQU 8 +REVERSE_IO EQU (1 SHL REVERSE_IO_BIT) +IO_SEG_MASK EQU 0FFFF0000H +IO_SEG_SHIFT EQU 10H +BeginDoc + + + + + + +EndDoc +Dispatch_Byte_IO MACRO In_Proc, Out_Proc + LOCAL Byte_IO + cmp ecx, Byte_Output + jbe SHORT Byte_IO + VMMJmp Simulate_IO +Byte_IO: +IFIDNI , + je Out_Proc +ELSE +IFIDNI , + jb In_Proc +ELSE + je Out_Proc + jmp In_Proc +ENDIF +ENDIF + ENDM + +BeginDoc + + + + + + + +EndDoc +Emulate_Non_Byte_IO MACRO + LOCAL Byte_IO + cmp ecx, Byte_Output + jbe SHORT Byte_IO + VMMJmp Simulate_IO +Byte_IO: + ENDM + +BeginDoc + + + + + + + + +EndDoc + + +VxD_IOT_Hdr STRUC +VxD_IO_Ports DW ? +VxD_IOT_Hdr ENDS + +VxD_IO_Struc STRUC +VxD_IO_Port DW ? +VxD_IO_Proc DD ? +VxD_IO_Struc ENDS +.ERRNZ SIZE VxD_IOT_Hdr - 2 +Begin_VxD_IO_Table MACRO Table_Name +PUBLIC Table_Name +Table_Name LABEL WORD + +ifndef MASM6 +IF2 +IFNDEF Table_Name&_Entries +.err +ENDIF + dw Table_Name&_Entries +ELSE + dw ? +ENDIF +ELSE + dw Table_Name&_Entries +ENDIF + + ENDM + +.ERRNZ SIZE VxD_IO_Struc - 6 +VxD_IO MACRO Port, Proc_Name + dw Port + dd OFFSET32 Proc_Name + ENDM + +End_VxD_IO_Table MACRO Table_Name + +IFNDEF Table_Name +.err +ELSE + Table_Name&_Entries EQU (($-Table_Name)-2) / (SIZE VxD_IO_Struc) +IF Table_Name&_Entries LE 0 +.err +ENDIF +ENDIF + ENDM + + + + + + + + + + + + + +Push_Client_State MACRO Can_Trash_EDI + sub esp, SIZE Client_Reg_Struc + ??_pushed = ??_pushed + SIZE Client_Reg_Struc + ifidni , + mov edi, esp + VMMCall Save_Client_State + else + push edi + lea edi, [esp+4] + VMMCall Save_Client_State + pop edi + endif + ENDM + +Pop_Client_State MACRO Can_Trash_ESI + ifdifi , + push esi + lea esi, [esp+4] + VMMCall Restore_Client_State + pop esi + else + mov esi, esp + VMMCall Restore_Client_State + endif + add esp, SIZE Client_Reg_Struc + ??_pushed = ??_pushed - SIZE Client_Reg_Struc + ENDM + +BeginDoc + + + + + + + + + + + + + + +EndDoc + +CallRet MACRO P1, P2 +IFDEF DEBUG +IFIDNI , + call P2 +ELSE + call P1 +ENDIF + ret +ELSE + jmp P1 P2 +ENDIF + ENDM + +BeginDoc + + + + + + + + + + + + + + + +EndDoc + +CallJmp MACRO Function_Name, Return_Label +IFDEF DEBUG + call Function_Name + jmp Return_Label +ELSE + push Return_Label + jmp Function_Name +ENDIF + ENDM + + +BeginDoc + + + + + + +EndDoc + +IFDEF DEBUG + +VxDCallRet macro p:req + VxDCall p + ret +endm + +VMMCallRet macro p:req + VMMCall p + ret +endm + +ELSE + +VxDCallRet equ +VMMCallRet equ + +ENDIF + + + +PClient_DS equ WORD PTR -4 +PClient_ES equ WORD PTR -8 +PClient_FS equ WORD PTR -12 +PClient_GS equ WORD PTR -16 + + + + + + + + + + + +Client_Ptr_Flat MACRO Reg_32, Cli_Seg, Cli_Off, Can_Trash_EAX + +IFDIFI , + IFDIFI , + xchg Reg_32, eax + ENDIF +ENDIF +IFB + mov ax, (Client_&Cli_Seg * 100h) + 0FFh +ELSE + mov ax, (Client_&Cli_Seg * 100h) + Client_&Cli_Off +ENDIF + VMMCall Map_Flat + +IFDIFI , + xchg Reg_32, eax +ENDIF + + ENDM + + + +VxDint MACRO Int_Number + if (OPATTR Int_Number) AND 4 + push Int_Number + else + push DWORD PTR Int_Number + endif + VMMCall Exec_VxD_Int + ENDM + +VxDintMustComplete MACRO Int_Number + if (OPATTR Int_Number) AND 4 + push Int_Number + else + push DWORD PTR Int_Number + endif + VMMCall _ExecVxDIntMustComplete + ENDM + +Load_FS macro + VMMCall Load_FS_Service +endm + +endif +DUPLICATE_DEVICE_ID_BIT EQU 0 +DUPLICATE_DEVICE_ID EQU (1 SHL DUPLICATE_DEVICE_ID_BIT) +DUPLICATE_FROM_INT2F_BIT EQU 1 +DUPLICATE_FROM_INT2F EQU (1 SHL DUPLICATE_FROM_INT2F_BIT) +LOADING_FROM_INT2F_BIT EQU 2 +LOADING_FROM_INT2F EQU (1 SHL LOADING_FROM_INT2F_BIT) +DEVICE_LOAD_OK EQU 0 +ABORT_DEVICE_LOAD EQU 1 +ABORT_WIN386_LOAD EQU 2 +DEVICE_NOT_NEEDED EQU 3 +NO_FAIL_MESSAGE_BIT EQU 15 +NO_FAIL_MESSAGE EQU (1 SHL NO_FAIL_MESSAGE_BIT) +LDRSRV_GET_PROFILE_STRING EQU 0 +LDRSRV_GET_NEXT_PROFILE_STRING EQU 1 +LDRSRV_RESERVED EQU 2 +LDRSRV_GET_PROFILE_BOOLEAN EQU 3 +LDRSRV_GET_PROFILE_DECIMAL_INT EQU 4 +LDRSRV_GET_PROFILE_HEX_INT EQU 5 +LDRSRV_COPY_EXTENDED_MEMORY EQU 6 +LDRSRV_GET_MEMORY_INFO EQU 7 +LDRSRV_RegOpenKey EQU 100H +LDRSRV_RegCreateKey EQU 101H +LDRSRV_RegCloseKey EQU 102H +LDRSRV_RegDeleteKey EQU 103H +LDRSRV_RegSetValue EQU 104H +LDRSRV_RegQueryValue EQU 105H +LDRSRV_RegEnumKey EQU 106H +LDRSRV_RegDeleteValue EQU 107H +LDRSRV_RegEnumValue EQU 108H +LDRSRV_RegQueryValueEx EQU 109H +LDRSRV_RegSetValueEx EQU 10AH +LDRSRV_RegFlushKey EQU 10BH +LDRSRV_COPY_INIT EQU 1 +LDRSRV_COPY_LOCKED EQU 2 +LDRSRV_COPY_PAGEABLE EQU 3 +RCODE_OBJ EQU -1 +LCODE_OBJ EQU 01H +LDATA_OBJ EQU 02H +PCODE_OBJ EQU 03H +PDATA_OBJ EQU 04H +SCODE_OBJ EQU 05H +SDATA_OBJ EQU 06H +CODE16_OBJ EQU 07H +LMSG_OBJ EQU 08H +PMSG_OBJ EQU 09H +DBOC_OBJ EQU 0BH +DBOD_OBJ EQU 0CH +PLCODE_OBJ EQU 0DH +PPCODE_OBJ EQU 0FH +ICODE_OBJ EQU 11H +IDATA_OBJ EQU 12H +ICODE16_OBJ EQU 13H +IMSG_OBJ EQU 14H + +ObjectLocation STRUC +OL_LinearAddr DD ? +OL_Size DD ? +OL_ObjType DB ? +ObjectLocation ENDS +MAXOBJECTS EQU 25 + +Device_Location_List STRUC +DLL_DDB DD ? +DLL_NumObjects DB ? +DLL_ObjLocation DB SIZE ObjectLocation * 1 DUP (?) +Device_Location_List ENDS +PE_BIT EQU 0 +PE_MASK EQU (1 SHL PE_BIT) +MP_BIT EQU 1 +MP_MASK EQU (1 SHL MP_BIT) +EM_BIT EQU 2 +EM_MASK EQU (1 SHL EM_BIT) +TS_BIT EQU 3 +TS_MASK EQU (1 SHL TS_BIT) +ET_BIT EQU 4 +ET_MASK EQU (1 SHL ET_BIT) +PG_BIT EQU 31 +PG_MASK EQU (1 SHL PG_BIT) +CF_BIT EQU 0 +CF_MASK EQU (1 SHL CF_BIT) +PF_BIT EQU 2 +PF_MASK EQU (1 SHL PF_BIT) +AF_BIT EQU 4 +AF_MASK EQU (1 SHL AF_BIT) +ZF_BIT EQU 6 +ZF_MASK EQU (1 SHL ZF_BIT) +SF_BIT EQU 7 +SF_MASK EQU (1 SHL SF_BIT) +TF_BIT EQU 8 +TF_MASK EQU (1 SHL TF_BIT) +IF_BIT EQU 9 +IF_MASK EQU (1 SHL IF_BIT) +DF_BIT EQU 10 +DF_MASK EQU (1 SHL DF_BIT) +OF_BIT EQU 11 +OF_MASK EQU (1 SHL OF_BIT) +IOPL_MASK EQU 3000H +IOPL_BIT0 EQU 12 +IOPL_BIT1 EQU 13 +NT_BIT EQU 14 +NT_MASK EQU (1 SHL NT_BIT) +RF_BIT EQU 16 +RF_MASK EQU (1 SHL RF_BIT) +VM_BIT EQU 17 +VM_MASK EQU (1 SHL VM_BIT) +AC_BIT EQU 18 +AC_MASK EQU (1 SHL AC_BIT) +VIF_BIT EQU 19 +VIF_MASK EQU (1 SHL VIF_BIT) +VIP_BIT EQU 20 +VIP_MASK EQU (1 SHL VIP_BIT) + + + + + + +IFDEF MASM6 +loopde EQU +loopdne EQU +loopdz EQU +loopdnz EQU +ELSE +loopd EQU +loopde EQU +loopdne EQU +loopdz EQU +loopdnz EQU +ENDIF + +P_SIZE EQU 1000H +P_PRESBIT EQU 0 +P_PRES EQU (1 SHL P_PRESBIT) +P_WRITEBIT EQU 1 +P_WRITE EQU (1 SHL P_WRITEBIT) +P_USERBIT EQU 2 +P_USER EQU (1 SHL P_USERBIT) +P_ACCBIT EQU 5 +P_ACC EQU (1 SHL P_ACCBIT) +P_DIRTYBIT EQU 6 +P_DIRTY EQU (1 SHL P_DIRTYBIT) +P_AVAIL EQU (P_PRES+P_WRITE+P_USER) +PG_VM EQU 0 +PG_SYS EQU 1 +PG_RESERVED1 EQU 2 +PG_PRIVATE EQU 3 +PG_RESERVED2 EQU 4 +PG_RELOCK EQU 5 +PG_INSTANCE EQU 6 +PG_HOOKED EQU 7 +PG_IGNORE EQU 0FFFFFFFFH +D_PRES EQU 080H +D_NOTPRES EQU 0 +D_DPL0 EQU 0 +D_DPL1 EQU 020H +D_DPL2 EQU 040H +D_DPL3 EQU 060H +D_SEG EQU 010H +D_CTRL EQU 0 +D_GRAN_BYTE EQU 000H +D_GRAN_PAGE EQU 080H +D_DEF16 EQU 000H +D_DEF32 EQU 040H +D_CODE EQU 08H +D_DATA EQU 0 +D_X EQU 0 +D_RX EQU 02H +D_C EQU 04H +D_R EQU 0 +D_W EQU 02H +D_ED EQU 04H +D_ACCESSED EQU 1 +RW_DATA_TYPE EQU (D_PRES+D_SEG+D_DATA+D_W) +R_DATA_TYPE EQU (D_PRES+D_SEG+D_DATA+D_R) +CODE_TYPE EQU (D_PRES+D_SEG+D_CODE+D_RX) +D_PAGE32 EQU (D_GRAN_PAGE+D_DEF32) +SELECTOR_MASK EQU 0FFF8H +SEL_LOW_MASK EQU 0F8H +TABLE_MASK EQU 04H +RPL_MASK EQU 03H +RPL_CLR EQU (NOT RPL_MASK) +IVT_ROM_DATA_SIZE EQU 500H +endif diff --git a/programs/hd_load/9x2klbr/comp_ldr.bat b/programs/hd_load/9x2klbr/comp_ldr.bat new file mode 100644 index 0000000000..92b1ea7fa2 --- /dev/null +++ b/programs/hd_load/9x2klbr/comp_ldr.bat @@ -0,0 +1 @@ +fasm 9x2klbr.asm 9x2klbr.exe diff --git a/programs/hd_load/9x2klbr/compile.txt b/programs/hd_load/9x2klbr/compile.txt new file mode 100644 index 0000000000..9f52e1938c --- /dev/null +++ b/programs/hd_load/9x2klbr/compile.txt @@ -0,0 +1,12 @@ +Изменение кода mtldr требует перекомпиляции VxD. +Изменение кода VxD требует перекомпиляции VxD. +Изменение кода exe-шника отражается только на exe-шнике. +После компиляции mtldr требуется перегнать бинарник mtldr в inc-файл, + понятный masm'у. Это делается через bintodb (взятого из пакета masm): + File->Open->mtldr, подредактировать по существующему образцу, + File->Save->mtldr.inc. +Для компиляции mtldr и 9x2klbr.exe требуется fasm, для компиляции ldklbr.vxd + требуется пакет masm. +Компилирующие bat-ники прилагаются. + diamond + mailto: diamondz@land.ru \ No newline at end of file diff --git a/programs/hd_load/9x2klbr/make_vxd.bat b/programs/hd_load/9x2klbr/make_vxd.bat new file mode 100644 index 0000000000..540306b454 --- /dev/null +++ b/programs/hd_load/9x2klbr/make_vxd.bat @@ -0,0 +1,2 @@ +ml /coff /c /Cx /DMASM6 /DBLD_COFF /DIS_32 vxd.asm +link /vxd /stub:masmstub /def:deffile.def vxd.obj diff --git a/programs/hd_load/9x2klbr/masmstub b/programs/hd_load/9x2klbr/masmstub new file mode 100644 index 0000000000000000000000000000000000000000..119ed9c8a9a339d9e333a719f17ea67a36388d39 GIT binary patch literal 64 zcmeZ`a$sO&U|?VZ;{X4F1c(C!4nQ20;a;?ba~BWeS;Zayea!3-wq1EnP3$3`AaqbjLN(srmZ$JnC zy34?R-@fm!_v77B8}x_=MFB)_4Jy+>UyX#Of*osMhu0a;5_i}8DCQ% z{!OyyXcYJpJ*If!tIE;gqi2KHIKzma(a;kH7sbv7zKEy?Qn4f{uWNYL?6O&F%{G_I z=~_ZG=C#hfb-P@38>-B^oK9h{(^_kDEi=1BhojD6H#;3>B08RRIQKiuP`B6CaG*i3 z)h{#ewmKY6!Mxk)5b7MFjXYYmx#0fg^jT=W$1FM;#C`jmF2Potc?+F;;C>v}Z+^52 zhYEW0!)CJX(amHB$y>9&yuwnmX~TxiW_ltxMMo`}J3eixRS;ZtyF|f8^2*CLm(5#M z*I>4qYwKLL-Gb9~fY9yp-vy`B3@)p^-sV6<(&iJ}?*yBp7T@Y^^|)s?3}hDuWcOYX zU2~CIt6-f|7X+IxHV2y{@If*~NMf3Xv%@gBs6p42N*(=#@9Zn}VZhIMMt>t^zox`T z|1cQ*nk$oxuPgBp-z$og{TC&@r>y(rlY@&~eB<Bl$UO{ai2R;&+Q+ztZcXF9JUz-ArC51W~XyGR)ZldA?!ks9xIvQZ! z`z2A2&BT&{lBn85$8Ayd&^>*1S2ldrB}QSr(&PyL#pCNYzV^yr^fvxuq&$i5_6ta{@AyE?oB0KP_nU9 z=bj>mZ=L*%?kk0%D=`-0BjEEZu$@*>e8TsELOuH}77-0H#^FAlZ2Um!CZ*ElDs_EA zeTA*@yD>9*^=I0EFUmi+TO;MX@qJ|cI=t%th|K{GVJ6RcbCpLpd3$UJf5GeV=kgwvT>o# z6XHYTTGhZX1HO|=Xe2|r%zWIZC+?Lb@D>`nj|m)8)UO%A;Q8{3r{5eK!!htqlxCN2 z+Qi5ecUC_3SlZskn&VzP&NZf2@IeTLXqz-oal z*FHmXajCIQ*@PZ%L-9N?k+kRFYga5ZK9vQR)U6~mqI)683^WHVY9?{T{A-^GJg0nx zDKMcYl~L8sYV)L?keb1A14@^MP;lK(^o^q_h8dFe)$tHR1U95S?H1p z(+EvL1i9eu(U6T@8KkZFUSV-D5q?^1b?J+Lzn^tyn$L`kmsN+`&1)vkh?DVthKT>^ z(vsLeW;NH+8hsZ_aQZ^QN7Z4t8`~@YV?d8zzkvyZN(iZXY=)8|@ZggaOgW|v@j841 zEa16v*bcI`iRh6hW)E2z$D=TDy!W5Uu>6!(UdOFsrdKugCz&;}{?w|pGOz=L^a&%d>*KWUdx1S?ykEgEt)Z@1K}K#xVu+Nm&7oVegL7Ez={x;$|r z{mqi5x8=xge}av(WG3CfdaqK|$?eEstDzP7jp;#5XkR$XoNYckdLeeMITQ{cQe-1? zHm*$}@Mj5I%^)u#%hjmynJ^~NjTb%$P3QTh-UO_~Vk5lg{RA{l&5Ca)R+MXa&)*X( zp3v||S`(f=mg%FGS;8Qf;Jxvvl9{<6N0wU?>&NHU@Rzy7bwWtum&E#y)H5H#uCce&Pg; zeioNovlF(_@bzQPuuw{2jc^7Y7rn7Ju*riu&M81J}>>;IVW{E(|JkN?n3@a2h;e6Pr7^`c{p& zEKMhT=Z4B-hc^`j+vbtQ+auq&GWT6Zw0l+6j+(!DR;oZDy2HR`ctO8-I<+6b-f3R39f-=))# z>N1dtzXc44FzZdXu_eN|jYAQp;1XD>)%@?=`7cG1?);(14D@rhVaoQ1e(sDiuY>sN rhq0yP=sS*d5oU1lY`fr_ZoBz0!;o7r%1D%{XKgNrZSTGH4uSj^=n{hM literal 0 HcmV?d00001 diff --git a/programs/hd_load/9x2klbr/mtldr.inc b/programs/hd_load/9x2klbr/mtldr.inc new file mode 100644 index 0000000000..e14e67fa63 --- /dev/null +++ b/programs/hd_load/9x2klbr/mtldr.inc @@ -0,0 +1,204 @@ +mtldr_size = 3224 +mtldr: +db 255,255,255,255,128,208,12,250,176,17,230,32,227,0,230,160 +db 227,0,176,8,230,33,227,0,176,112,230,161,227,0,176,4 +db 230,33,227,0,176,2,230,161,227,0,176,1,230,33,227,0 +db 230,161,227,0,176,0,230,33,227,0,230,161,227,0,184,3 +db 0,205,16,176,52,230,67,227,0,176,255,230,64,227,0,230 +db 64,227,0,184,1,194,205,21,233,184,1,172,132,192,116,9 +db 180,14,187,7,0,205,16,235,242,195,102,3,6,0,208,102 +db 96,102,59,6,152,220,114,55,128,62,228,208,0,116,93,102 +db 104,0,0,0,0,102,80,6,83,102,104,16,0,1,0,184 +db 0,66,138,22,4,208,137,230,30,22,31,205,19,31,131,196 +db 16,102,97,114,55,129,195,0,2,102,64,73,117,193,195,102 +db 49,210,102,15,183,14,158,220,102,247,241,254,194,136,209,102 +db 15,164,194,16,247,54,156,220,136,214,136,197,192,228,6,8 +db 225,184,1,2,138,22,4,208,205,19,235,197,190,229,208,232 +db 121,255,235,254,0,68,105,115,107,32,114,101,97,100,32,101 +db 114,114,111,114,33,0,2,32,75,111,108,105,98,114,105,79 +db 83,32,98,111,111,116,108,111,97,100,101,114,44,32,114,117 +db 110,110,105,110,103,32,111,110,32,0,117,110,107,110,111,119 +db 110,32,102,105,108,101,115,121,115,116,101,109,44,32,99,97 +db 110,110,111,116,32,99,111,110,116,105,110,117,101,0,70,65 +db 84,49,50,47,70,65,84,49,54,32,45,32,117,110,115,117 +db 112,112,111,114,116,101,100,13,10,0,70,65,84,51,50,13 +db 10,0,78,84,70,83,13,10,0,69,114,114,111,114,58,32 +db 0,77,70,84,0,92,0,36,73,78,68,69,88,95,82,79 +db 79,84,32,110,111,116,32,102,111,117,110,100,0,99,97,110 +db 110,111,116,32,114,101,97,100,32,97,116,116,114,105,98,117 +db 116,101,0,36,68,65,84,65,32,110,111,116,32,102,111,117 +db 110,100,0,105,115,32,97,32,100,105,114,101,99,116,111,114 +db 121,0,110,111,116,32,97,32,100,105,114,101,99,116,111,114 +db 121,0,116,111,111,32,102,114,97,103,109,101,110,116,101,100 +db 32,102,105,108,101,0,101,120,116,101,110,100,101,100,32,109 +db 101,109,111,114,121,32,101,114,114,111,114,0,98,97,100,32 +db 99,108,117,115,116,101,114,0,100,97,116,97,32,101,114,114 +db 111,114,0,49,192,142,216,142,192,142,208,102,188,254,255,0 +db 0,252,251,138,22,4,208,180,8,205,19,115,5,185,255,255 +db 136,206,15,182,198,64,163,156,220,136,202,131,226,63,137,22 +db 158,220,247,226,134,205,192,237,6,65,137,14,160,220,247,225 +db 163,152,220,137,22,154,220,138,22,4,208,180,65,187,170,85 +db 205,19,114,15,129,251,85,170,117,9,246,193,1,116,4,254 +db 6,228,208,190,246,208,232,226,253,102,161,0,208,102,131,248 +db 255,117,20,102,49,192,185,1,0,187,0,5,232,224,253,102 +db 161,198,6,102,163,0,208,185,1,0,187,0,5,232,207,253 +db 15,182,6,13,5,163,172,220,102,129,62,54,5,70,65,84 +db 49,116,29,102,129,62,82,5,70,65,84,51,116,26,102,129 +db 62,3,5,78,84,70,83,15,132,231,0,232,141,253,235,254 +db 190,62,209,232,133,253,235,254,190,90,209,232,125,253,102,15 +db 183,6,11,5,102,15,182,30,13,5,102,247,227,102,163,180 +db 220,102,15,183,30,14,5,102,137,30,200,220,102,15,182,6 +db 16,5,102,247,38,36,5,102,1,216,102,15,182,30,13,5 +db 102,41,216,102,41,216,102,163,166,220,129,6,5,208,0,208 +db 102,161,44,5,199,6,164,220,117,209,80,139,54,5,208,86 +db 172,60,92,116,4,60,0,117,247,103,135,68,36,2,198,68 +db 255,0,137,54,5,208,232,114,3,89,132,201,116,13,246,69 +db 11,16,190,194,209,15,132,58,3,235,207,246,69,11,16,190 +db 179,209,15,133,45,3,191,5,0,104,0,32,7,38,198,69 +db 251,1,38,102,199,69,252,1,0,0,0,102,171,6,30,7 +db 232,242,3,7,115,36,38,102,139,77,248,38,102,3,77,252 +db 102,57,200,116,14,38,102,199,5,1,0,0,0,102,175,102 +db 171,235,218,38,102,255,69,248,235,211,102,49,192,102,171,233 +db 184,0,190,98,209,232,163,252,102,15,183,6,11,5,102,80 +db 102,15,182,30,13,5,102,247,227,102,163,180,220,102,199,6 +db 166,220,0,0,0,0,102,139,14,64,5,128,249,0,127,12 +db 246,217,102,49,192,102,64,102,211,224,235,3,102,247,225,102 +db 163,184,220,102,91,102,49,210,102,247,243,163,188,220,199,6 +db 164,220,113,209,102,15,182,6,13,5,102,247,38,48,5,139 +db 14,188,220,187,0,64,137,223,83,232,78,252,232,152,3,95 +db 184,128,0,187,0,7,232,39,4,190,163,209,15,130,99,2 +db 137,30,162,220,129,6,5,208,0,208,102,184,5,0,0,0 +db 199,6,164,220,117,209,80,139,54,5,208,86,172,60,92,116 +db 4,60,0,117,247,103,135,68,36,2,198,68,255,0,137,54 +db 5,208,232,121,6,89,132,201,117,220,49,246,6,15,161,100 +db 172,60,0,190,141,209,15,132,25,2,190,1,0,102,49,255 +db 104,0,16,7,49,219,100,102,173,102,145,103,227,66,100,102 +db 173,102,96,102,15,182,14,13,5,102,247,225,102,3,6,166 +db 220,232,198,251,180,135,102,139,14,180,220,102,81,209,233,190 +db 83,214,6,30,7,205,21,7,132,228,190,230,209,15,133,210 +db 1,102,89,102,1,14,109,214,102,97,102,64,226,195,235,182 +db 30,7,199,6,164,220,141,220,102,49,192,187,0,5,185,1 +db 0,232,46,1,161,14,5,3,6,28,5,163,200,220,147,15 +db 182,6,16,5,247,38,22,5,1,216,187,0,7,139,14,17 +db 5,131,193,15,193,233,4,232,8,1,1,200,163,170,220,193 +db 225,9,137,223,1,203,198,7,0,128,61,0,190,169,209,15 +db 132,112,1,190,141,220,232,237,1,116,8,131,231,224,131,199 +db 32,235,230,131,231,224,190,179,209,246,69,11,16,15,133,82 +db 1,139,69,26,80,72,72,15,182,14,13,5,247,225,3,6 +db 170,220,163,174,220,247,54,172,220,102,15,183,192,104,0,32 +db 31,190,1,0,102,43,4,114,17,102,131,60,0,104,141,209 +db 15,132,32,1,89,131,198,8,235,234,102,3,4,102,3,68 +db 4,106,0,31,102,15,183,14,172,220,82,102,247,225,90,102 +db 15,183,210,102,1,208,102,3,6,166,220,102,163,176,220,88 +db 104,0,16,7,80,49,219,232,87,0,193,225,5,140,192,1 +db 200,142,192,88,232,13,0,114,235,184,75,76,190,130,220,234 +db 0,0,0,16,187,0,7,80,209,232,103,3,4,36,137,194 +db 193,232,9,3,6,200,220,185,2,0,6,30,7,232,50,0 +db 7,129,226,255,1,1,211,139,7,89,247,193,1,0,116,3 +db 193,232,4,37,255,15,190,252,209,61,247,15,15,132,147,0 +db 195,72,72,15,182,14,13,5,247,225,3,6,170,220,102,15 +db 183,192,102,96,102,15,183,219,190,83,214,102,193,224,9,102 +db 5,0,0,16,147,102,137,68,18,102,184,0,0,48,9,140 +db 192,102,193,224,4,102,1,216,102,137,68,26,180,135,193,225 +db 8,6,106,0,7,205,21,7,128,252,0,190,230,209,117,67 +db 102,97,195,0,0,0,0,0,0,0,0,0,0,0,0,0 +db 0,0,0,255,255,0,0,1,147,0,0,255,255,0,0,16 +db 147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +db 0,0,0,86,190,105,209,232,193,249,139,54,164,220,232,186 +db 249,190,110,209,232,180,249,94,232,176,249,235,254,103,139,116 +db 36,2,137,54,164,220,104,169,209,235,217,187,0,9,137,223 +db 102,80,232,153,0,139,14,180,220,193,233,5,102,88,128,61 +db 0,116,218,103,139,116,36,2,102,80,232,57,0,116,17,131 +db 231,224,131,199,32,226,229,102,88,232,137,0,115,191,114,203 +db 102,88,103,139,116,36,2,137,54,164,220,131,231,224,190,179 +db 209,139,69,20,102,193,224,16,139,69,26,102,133,192,190,163 +db 209,116,128,194,2,0,81,185,9,0,172,60,46,116,21,60 +db 0,116,35,60,97,114,7,60,122,119,3,128,13,32,174,225 +db 233,65,89,195,176,32,73,243,174,117,246,247,199,1,0,117 +db 240,185,4,0,235,212,176,32,73,243,174,117,228,247,199,1 +db 0,117,7,185,3,0,243,174,117,215,49,201,89,195,102,37 +db 255,255,255,15,102,15,182,14,13,5,102,247,225,102,3,6 +db 166,220,233,245,248,187,0,7,102,80,102,193,232,7,102,59 +db 6,137,220,116,15,102,163,137,220,102,3,6,200,220,185,1 +db 0,232,214,248,102,88,102,131,224,127,103,102,139,4,133,0 +db 7,0,0,102,37,255,255,255,15,102,61,247,255,255,15,190 +db 252,209,15,132,221,254,195,139,93,4,139,77,6,67,1,251 +db 67,129,199,254,1,73,139,7,171,67,67,129,199,254,1,226 +db 245,195,3,125,20,131,61,255,116,20,57,5,117,11,61,128 +db 0,117,13,128,125,9,0,116,7,3,125,4,235,231,49,255 +db 195,3,116,32,102,49,219,172,132,192,116,78,104,141,209,15 +db 182,200,193,233,4,15,132,139,254,146,131,226,15,15,132,131 +db 254,1,206,1,214,88,86,78,102,15,190,4,73,116,9,78 +db 102,193,224,8,138,4,226,247,102,149,78,102,15,190,4,137 +db 209,73,116,9,78,102,193,224,8,138,4,226,247,94,102,1 +db 235,102,171,102,137,216,102,171,235,173,102,49,192,102,171,195 +db 87,80,38,198,7,1,67,83,137,30,196,220,3,125,20,232 +db 115,255,133,255,116,42,128,125,8,0,117,22,137,254,95,79 +db 176,0,170,139,68,16,171,145,3,116,20,243,164,137,251,88 +db 95,195,102,131,125,16,0,117,214,137,254,95,232,98,255,87 +db 103,131,124,36,2,32,15,132,173,0,103,139,124,36,4,184 +db 32,0,232,45,255,133,255,15,132,156,0,6,187,0,192,103 +db 139,124,36,6,83,255,54,196,220,30,7,232,146,255,143,6 +db 196,220,94,187,0,128,83,86,232,136,0,94,91,1,218,103 +db 139,68,36,4,7,57,7,117,103,61,128,0,117,6,128,127 +db 6,0,117,92,102,131,127,16,0,116,85,102,131,127,8,0 +db 117,13,80,103,139,68,36,2,59,6,196,220,88,117,65,102 +db 96,102,139,71,16,137,211,255,54,196,220,6,30,7,232,142 +db 0,7,143,6,196,220,102,97,102,96,137,215,3,125,20,232 +db 179,254,102,139,71,8,102,59,69,16,117,243,137,254,103,139 +db 124,36,32,131,239,4,232,184,254,103,137,124,36,32,102,97 +db 3,95,4,57,211,114,142,91,88,95,59,30,196,220,117,2 +db 75,249,195,172,60,0,117,11,173,102,15,183,208,145,137,223 +db 243,164,195,102,49,210,102,173,102,145,103,227,47,102,173,102 +db 151,102,81,102,139,14,180,220,102,137,248,102,247,225,83,232 +db 232,246,91,102,89,102,71,102,161,180,220,102,1,194,102,193 +db 232,4,140,197,1,197,142,197,226,215,235,202,142,193,195,190 +db 0,7,102,139,14,184,220,102,247,225,83,255,54,164,220,199 +db 6,164,220,113,209,232,9,0,143,6,164,220,95,232,247,253 +db 195,104,141,209,128,60,0,117,53,102,133,210,15,133,196,252 +db 102,61,0,0,1,0,15,131,186,252,102,129,249,0,0,1 +db 0,15,131,175,252,59,68,2,15,131,168,252,59,76,2,15 +db 135,161,252,131,198,3,1,198,137,223,243,164,88,195,102,139 +db 62,180,220,102,247,247,137,22,196,220,1,209,102,80,102,145 +db 102,49,210,102,72,102,247,247,102,64,102,145,102,88,131,198 +db 1,102,49,210,83,102,139,28,102,133,219,15,132,169,0,102 +db 1,218,131,198,8,102,57,208,115,235,102,139,124,252,102,82 +db 102,87,102,41,194,102,1,223,102,41,215,102,57,202,114,3 +db 102,137,202,131,62,196,220,0,117,47,102,96,102,15,182,30 +db 13,5,146,247,227,145,102,151,102,247,227,103,139,92,36,40 +db 232,247,245,103,137,92,36,40,102,97,102,1,208,102,41,209 +db 102,95,102,90,117,159,91,88,195,102,81,102,15,182,14,13 +db 5,102,137,248,102,82,102,247,225,104,0,16,7,49,219,232 +db 200,245,137,217,86,87,139,54,196,220,103,139,124,36,20,41 +db 241,30,6,31,7,243,164,103,137,124,36,20,6,31,95,94 +db 102,90,102,89,102,71,199,6,196,220,0,0,102,64,102,73 +db 116,174,102,74,117,132,235,162,190,141,209,233,181,251,139,30 +db 162,220,137,30,198,220,83,232,181,254,161,184,220,1,6,162 +db 220,95,184,144,0,87,139,30,162,220,137,30,192,220,232,79 +db 253,190,119,209,15,130,139,251,137,30,162,220,95,184,160,0 +db 139,30,162,220,137,30,194,220,232,53,253,115,6,199,6,194 +db 220,0,0,137,30,162,220,139,54,192,220,139,30,162,220,232 +db 33,254,102,139,111,8,131,195,16,3,31,246,71,12,2,117 +db 44,103,139,116,36,2,15,182,79,80,141,127,82,49,192,172 +db 60,97,114,7,60,122,119,3,128,13,32,175,225,241,114,13 +db 119,6,103,128,62,0,116,64,3,95,8,235,206,246,71,12 +db 1,15,132,56,251,131,62,194,220,0,15,132,47,251,3,95 +db 8,102,139,71,248,102,247,38,180,220,139,54,194,220,102,137 +db 233,139,30,162,220,232,41,254,139,62,162,220,232,24,252,139 +db 30,162,220,131,195,24,235,145,103,139,116,36,2,137,54,164 +db 220,103,128,124,36,4,0,116,25,190,194,209,246,71,75,16 +db 15,132,207,250,102,139,7,139,30,198,220,137,30,162,220,194 +db 2,0,190,179,209,246,71,75,16,15,133,182,250,102,139,7 +db 139,30,198,220,137,30,162,220,187,0,64,83,232,176,253,95 +db 184,128,0,104,0,32,7,49,219,232,84,252,190,163,209,15 +db 132,144,250,137,30,162,220,194,2,0,14,31,14,7,187,0 +db 5,137,222,185,1,0,81,102,161,176,220,102,80,232,74,244 +db 104,0,16,7,49,255,185,8,0,243,167,190,8,210,15,133 +db 97,250,128,14,145,208,1,128,14,211,208,1,49,219,102,88 +db 89,232,38,244,128,38,144,208,254,128,38,211,208,253,102,199 +db 6,101,214,0,0,1,147,102,15,183,6,174,220,102,193,224 +db 9,102,5,0,0,16,147,102,163,109,214,190,83,214,30,7 +db 180,135,185,0,1,205,21,128,252,0,190,230,209,15,133,18 +db 250,203,1,1,0,10,220,0,0,255,255,255,255,107,101,114 +db 110,101,108,46,109,110,116,0 \ No newline at end of file diff --git a/programs/hd_load/9x2klbr/mtldr_code/compile.bat b/programs/hd_load/9x2klbr/mtldr_code/compile.bat new file mode 100644 index 0000000000..511b3602e2 --- /dev/null +++ b/programs/hd_load/9x2klbr/mtldr_code/compile.bat @@ -0,0 +1,4 @@ +fasm mtldr.asm ..\mtldr +cd .. +bintodb +cd mtldr_code diff --git a/programs/hd_load/9x2klbr/mtldr_code/fat32.inc b/programs/hd_load/9x2klbr/mtldr_code/fat32.inc new file mode 100644 index 0000000000..197c6260db --- /dev/null +++ b/programs/hd_load/9x2klbr/mtldr_code/fat32.inc @@ -0,0 +1,112 @@ +fat32_parse_dir: +; in: eax=directory cluster +; out: eax=entry cluster + mov bx, 900h + mov di, bx + push eax + call read_cluster + mov cx, word [cluster_size] + shr cx, 5 ; div 20h +.scan_cluster: + pop eax + cmp byte [di], 0 + jz file_not_found + mov si, [esp+2] + push eax + call fat_compare_name + jz .file_found + and di, not 1Fh + add di, 20h + loop .scan_cluster + pop eax + call next_cluster + jnc file_not_found + jc fat32_parse_dir +.file_found: + pop eax + mov si, [esp+2] + mov [cur_obj], si + and di, not 1Fh + mov si, directory_string + mov ax, [di+14h] + shl eax, 10h + mov ax, [di+1Ah] + test eax, eax + mov si, nodata_string + jz find_error_si + ret 2 + +fat_compare_name: + push cx + mov cx, 9 +.scan: + lodsb + cmp al, '.' + jz .ext + cmp al, 0 + jz .nameend + cmp al, 'a' + jb .notletter + cmp al, 'z' + ja .notletter + or byte [di], 20h +.notletter: + scasb + loopz .scan +.notfound: + inc cx ; to clear ZF flag + pop cx + ret +.ext: + mov al, ' ' + dec cx + repz scasb + jnz .notfound + test di, 1 + jnz .notfound + mov cx, 4 + jmp .scan +.nameend: + mov al, ' ' + dec cx + repz scasb + jnz .notfound + test di, 1 + jnz .file_found + mov cx, 3 + repz scasb + jnz .notfound +.file_found: + xor cx, cx ; to set ZF flag + pop cx + ret + +read_cluster: +; in: eax=cluster,bx->buffer + and eax, 0FFFFFFFh + movzx ecx, byte [50Dh] ; sects_per_clust + mul ecx + add eax, [data_start] +; call read +; ret + jmp relative_read +next_cluster: + mov bx, 700h +; sector is 200h bytes long, one entry in FAT occupies 4 bytes => 80h entries in sector + push eax + shr eax, 7 ; div 80h + cmp eax, [fat_cur_sector] + jz @f + mov [fat_cur_sector], eax + add eax, [fat_start] + mov cx, 1 + call relative_read +@@: + pop eax + and eax, 7Fh + mov eax, [700h+eax*4] + and eax, 0FFFFFFFh + cmp eax, 0FFFFFF7h + mov si, bad_cluster_string + jz find_error_si + ret diff --git a/programs/hd_load/9x2klbr/mtldr_code/mtldr.asm b/programs/hd_load/9x2klbr/mtldr_code/mtldr.asm new file mode 100644 index 0000000000..5d133b75e4 --- /dev/null +++ b/programs/hd_load/9x2klbr/mtldr_code/mtldr.asm @@ -0,0 +1,733 @@ +; KolibriOS bootloader +; this code has been written by diamond in 2005,2006 specially for KolibriOS + + format binary + use16 + + org 0xD000 + +; may be changed from ldklbr.vxd +partition_start dd -1 +boot_drive db 80h +imgnameofs dw menuet_img_name - 0xD000 + +macro out_delay port +{ + out port, al + jcxz $+2 +} + + cli +; reprogram IRQs + mov al, 11h + out_delay 20h + out_delay 0A0h + mov al, 8 + out_delay 21h + mov al, 70h + out_delay 0A1h + mov al, 4 + out_delay 21h + mov al, 2 + out_delay 0A1h + mov al, 1 + out_delay 21h + out_delay 0A1h + + mov al, 0 + out_delay 21h + out_delay 0A1h + +; set videomode + mov ax, 3 + int 10h +; reprogram timer + mov al, 00110100b + out_delay 43h + mov al, 0FFh + out_delay 40h + out_delay 40h + +; reset mouse + mov ax, 0C201h + int 15h + + jmp start + +out_string: + lodsb + test al, al + jz .xxx + mov ah, 0Eh + mov bx, 7 + int 10h + jmp out_string +.xxx: ret + +relative_read: + add eax, [partition_start] + +; read from hard disk +; drive_size must be already initialized +; in: eax = absolute sector +; cx = number of sectors +; es:bx -> buffer +read: + pushad + cmp eax, [drive_size] + jb .old_style +; new style - LBA, function 42 + cmp [has_lba], 0 + jz disk_error +; allocate disk address packet on the stack +; qword +8: absolute block number + push dword 0 ; dword +C is high dword + push eax ; dword +8 is low dword +; dword +4: buffer address + push es ; word +6 is segment + push bx ; word +4 is offset +; word +2: number of blocks = 1 +; word +0: size of packet = 10h + push dword 10010h +; now pair ss:sp contain address of disk address packet +.patch1: + mov ax, 4200h + mov dl, [boot_drive] + mov si, sp + push ds + push ss + pop ds + int 13h + pop ds + add sp, 10h +.end: + popad + jc disk_error + add bx, 200h + inc eax + dec cx + jnz read + ret +.old_style: +; old style - CHS, function 2 +; convert absolute sector in eax to cylinder-head-sector coordinates +; calculate sector + xor edx, edx + movzx ecx, [sectors] + div ecx +; sectors are counted from 1 + inc dl + mov cl, dl ; low 6 bits of cl = sector number +; calculate head number + shld edx, eax, 10h ; convert eax to dx:ax + div [heads] + mov dh, dl ; dh = head + mov ch, al ; ch = low 8 bits of cylinder + shl ah, 6 + or cl, ah ; high 2 bits of cl = high 2 bits of cylinder +.patch2: + mov ax, 201h ; function 2, al=1 - number of sectors + mov dl, [boot_drive] + int 13h + jmp .end + +disk_error: + mov si, disk_error_msg + call out_string + jmp $ + +has_lba db 0 + +disk_error_msg db 'Disk read error!',0 +start_msg db 2,' KolibriOS bootloader, running on ',0 +errfs_msg db 'unknown filesystem, cannot continue',0 +fat16_msg db 'FAT12/FAT16 - unsupported',13,10,0 +fat32_msg db 'FAT32',13,10,0 +ntfs_msg db 'NTFS',13,10,0 +error_msg db 'Error' +colon db ': ',0 +mft_string db 'MFT',0 +root_string db '\',0 +noindex_string db '$INDEX_ROOT not found',0 +invalid_read_request_string db 'cannot read attribute',0 +nodata_string db '$DATA ' +notfound_string db 'not found',0 +directory_string db 'is a directory',0 +notdir_string db 'not a directory',0 +fragmented_string db 'too fragmented file',0 +exmem_string db 'extended memory error',0 +bad_cluster_string db 'bad cluster',0 +data_error_msg db 'data error',0 + +start: + xor ax, ax + mov ds, ax + mov es, ax +; our stack is 4Kb-2b!!! (0xFFE) + mov ss, ax + mov esp, 0FFFEh + cld + sti +; calculate drive size + mov dl, [boot_drive] + mov ah, 8 ; 8 = get drive parameters + int 13h +; now: CF is set on error; +; ch = low 8 bits of maximum cylinder number +; cl : low 6 bits makes maximum sector number, high 2 bits are high 2 bits of maximum cylinder number +; dh = maximum head number + jnc @f + mov cx, -1 + mov dh, cl +@@: + movzx ax, dh + inc ax +; ax = number of heads + mov [heads], ax + mov dl, cl + and dx, 3Fh +; dx = number of sectors +; (note that sectors are counted from 1, and maximum sector number = number of sectors) + mov [sectors], dx + mul dx + xchg cl, ch + shr ch, 6 + inc cx +; cx = number of cylinders + mov [cyls], cx + mul cx + mov word [drive_size], ax + mov word [drive_size+2], dx +; this drive supports LBA? + mov dl, [boot_drive] + mov ah, 41h + mov bx, 55AAh + int 13h + jc .no_lba + cmp bx, 0AA55h + jnz .no_lba + test cl, 1 + jz .no_lba + inc [has_lba] +.no_lba: +; say hi to user + mov si, start_msg + call out_string + mov eax, [partition_start] + cmp eax, -1 + jnz @f +; now read first sector to determine file system type +; first sector of disk is MBR sector + xor eax, eax + mov cx, 1 + mov bx, 500h + call read + mov eax, [6C6h] ; first disk + mov [partition_start], eax +@@: + mov cx, 1 + mov bx, 500h + call read + movzx ax, byte [50Dh] + mov [sect_per_clust], ax +; determine file system + cmp dword [536h], 'FAT1' + jz fat1x + cmp dword [552h], 'FAT3' + jz fat32 + cmp dword [503h], 'NTFS' + jz ntfs +; mov si, errfs_msg ; already is + call out_string + jmp $ +fat1x: + mov si, fat16_msg + call out_string + jmp $ +fat32: + mov si, fat32_msg + call out_string + movzx eax, word [50Bh] ; bytes_per_sect + movzx ebx, byte [50Dh] ; sects_per_clust + mul ebx + mov [cluster_size], eax + movzx ebx, word [50Eh] ; reserved_sect + mov [fat_start], ebx + movzx eax, byte [510h] ; num_fats + mul dword [524h] ; sect_fat + add eax, ebx +; cluster 2 begins from sector eax + movzx ebx, byte [50Dh] ; sects_per_clust + sub eax, ebx + sub eax, ebx + mov [data_start], eax +; parse image name + add [imgnameofs], 0xD000 + mov eax, [52Ch] ; root_cluster + mov [cur_obj], root_string +.parsedir: + push ax + mov si, [imgnameofs] + push si +@@: + lodsb + cmp al, '\' + jz @f + cmp al, 0 + jnz @b +@@: + xchg ax, [esp+2] + mov byte [si-1], 0 + mov [imgnameofs], si + call fat32_parse_dir + pop cx + test cl, cl + jz .end + test byte [di+0Bh], 10h + mov si, notdir_string + jz find_error_si + jmp .parsedir +.end: + test byte [di+0Bh], 10h + mov si, directory_string + jnz find_error_si +; parse FAT chunk +; runlist at 2000:0000 + mov di, 5 + push 2000h + pop es + mov byte [es:di-5], 1 ; of course, non-resident + mov dword [es:di-4], 1 + stosd +.parsefat: + push es + push ds + pop es + call next_cluster + pop es + jnc .done + mov ecx, [es:di-8] + add ecx, [es:di-4] + cmp eax, ecx + jz .contc + mov dword [es:di], 1 + scasd + stosd + jmp .parsefat +.contc: + inc dword [es:di-8] + jmp .parsefat +.done: + xor eax, eax + stosd + jmp read_img_file + +ntfs: + mov si, ntfs_msg + call out_string + movzx eax, word [50Bh] ; bpb_bytes_per_sect + push eax + movzx ebx, byte [50Dh] ; bpb_sects_per_clust + mul ebx + mov [cluster_size], eax + mov [data_start], 0 + mov ecx, [540h] ; frs_size + cmp cl, 0 + jg .1 + neg cl + xor eax, eax + inc eax + shl eax, cl + jmp .2 +.1: + mul ecx +.2: + mov [frs_size], eax + pop ebx + xor edx, edx + div ebx + mov [frs_sectors], ax +; read first MFT record - description of MFT itself + mov [cur_obj], mft_string + movzx eax, byte [50Dh] ; bpb_sects_per_clust + mul dword [530h] ; mft_cluster + mov cx, [frs_sectors] + mov bx, 4000h + mov di, bx + push bx + call relative_read + call restore_usa +; scan for unnamed $DATA attribute + pop di + mov ax, 80h ; $DATA + mov bx, 700h + call load_attr + mov si, nodata_string + jc find_error_si + mov [free], bx +; load menuet.img +; parse image name + add [imgnameofs], 0xD000 + mov eax, 5 ; root cluster + mov [cur_obj], root_string +.parsedir: + push ax + mov si, [imgnameofs] + push si +@@: + lodsb + cmp al, '\' + jz @f + cmp al, 0 + jnz @b +@@: + xchg ax, [esp+2] + mov byte [si-1], 0 + mov [imgnameofs], si + call ntfs_parse_dir + pop cx + test cl, cl + jnz .parsedir +read_img_file: + xor si, si + push es + pop fs +; yes! Now read file to 0x100000 + lods byte [fs:si] + cmp al, 0 ; assume nonresident attr + mov si, invalid_read_request_string + jz find_error_si + mov si, 1 + xor edi, edi +; read buffer to 1000:0000 and move it to extended memory + push 1000h + pop es + xor bx, bx +.img_read_block: + lods dword [fs:si] ; eax=length + xchg eax, ecx + jecxz .img_read_done + lods dword [fs:si] ; eax=disk cluster +.img_read_cluster: + pushad +; read part of file + movzx ecx, byte [50Dh] + mul ecx + add eax, [data_start] + call relative_read +; move it to extended memory + mov ah, 87h + mov ecx, [cluster_size] + push ecx + shr cx, 1 + mov si, movedesc + push es + push ds + pop es + int 15h + pop es + test ah, ah + mov si, exmem_string + jnz find_error_si + pop ecx + add [dest_addr], ecx + popad + inc eax + loop .img_read_cluster + jmp .img_read_block +.img_read_done: +; menuet.img loaded; now load kernel.mnt +load_kernel: + push ds + pop es + mov [cur_obj], kernel_mnt_name +; read boot sector + xor eax, eax + mov bx, 500h + mov cx, 1 + call read_img +; init vars + mov ax, [50Eh] ; reserved_sect + add ax, [51Ch] ; hidden + mov word [fat_start], ax + xchg ax, bx + movzx ax, byte [510h] ; num_fats + mul word [516h] ; fat_length + add ax, bx +; read root dir + mov bx, 700h + mov cx, [511h] ; dir_entries + add cx, 0Fh + shr cx, 4 + call read_img + add ax, cx + mov [img_data_start], ax + shl cx, 9 + mov di, bx + add bx, cx + mov byte [bx], 0 +.scan_loop: + cmp byte [di], 0 + mov si, notfound_string + jz find_error_si + mov si, kernel_mnt_name + call fat_compare_name + jz .found + and di, not 1Fh + add di, 20h + jmp .scan_loop +.found: + and di, not 1Fh + mov si, directory_string + test byte [di+0Bh], 10h + jnz find_error_si +; found, now load it to 1000h:0000h + mov ax, [di+1Ah] +; first cluster of kernel.mnt in ax +; translate it to sector on disk in menuet.img + push ax + dec ax + dec ax + movzx cx, byte [50Dh] + mul cx + add ax, [img_data_start] +; now ax is sector in menuet.img + mov [kernel_mnt_in_img], ax + div [sect_per_clust] +; now ax is cluster in menuet.img and +; dx is offset from the beginning of cluster + movzx eax, ax + push 2000h + pop ds + mov si, 1 +.scani: + sub eax, [si] + jb .scanidone +; sanity check + cmp dword [si], 0 + push invalid_read_request_string + jz find_error_sp + pop cx +; next chunk + add si, 8 + jmp .scani +.scanidone: + add eax, [si] ; undo last subtract + add eax, [si+4] ; get cluster + push 0 + pop ds + movzx ecx, [sect_per_clust] + push dx + mul ecx ; get sector + pop dx + movzx edx, dx + add eax, edx + add eax, [data_start] + mov [kernel_mnt_1st], eax + pop ax + push 1000h + pop es +.read_loop: + push ax + xor bx, bx + call img_read_cluster + shl cx, 9-4 + mov ax, es + add ax, cx + mov es, ax + pop ax + call img_next_cluster + jc .read_loop + mov ax, 'KL' + mov si, loader_block + jmp 1000h:0000h + +img_next_cluster: + mov bx, 700h + push ax + shr ax, 1 + add ax, [esp] + mov dx, ax + shr ax, 9 + add ax, word [fat_start] + mov cx, 2 + push es + push ds + pop es + call read_img + pop es + and dx, 1FFh + add bx, dx + mov ax, [bx] + pop cx + test cx, 1 + jz .1 + shr ax, 4 +.1: + and ax, 0FFFh + mov si, bad_cluster_string + cmp ax, 0FF7h + jz find_error_si + ret +img_read_cluster: + dec ax + dec ax + movzx cx, byte [50Dh] ; sects_per_clust + mul cx + add ax, [img_data_start] + movzx eax, ax +; call read_img +; ret +read_img: +; in: ax = sector, es:bx->buffer, cx=length in sectors + pushad + movzx ebx, bx + mov si, movedesc + shl eax, 9 + add eax, 93100000h + mov dword [si+sou_addr-movedesc], eax + mov eax, 9300000h + mov ax, es + shl eax, 4 + add eax, ebx + mov [si+dest_addr-movedesc], eax + mov ah, 87h + shl cx, 8 ; mul 200h/2 + push es + push 0 + pop es + int 15h + pop es + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + popad + ret + +movedesc: + times 16 db 0 +; source + dw 0xFFFF ; segment length +sou_addr dw 0000h ; linear address + db 1 ; linear address + db 93h ; access rights + dw 0 +; destination + dw 0xFFFF ; segment length +dest_addr dd 93100000h ; high byte contains access rights + ; three low bytes contains linear address (updated when reading) + dw 0 + times 32 db 0 + +find_error_si: + push si +find_error_sp: + mov si, error_msg + call out_string + mov si, [cur_obj] + call out_string + mov si, colon + call out_string + pop si + call out_string + jmp $ + +file_not_found: + mov si, [esp+2] + mov [cur_obj], si + push notfound_string + jmp find_error_sp + + include 'fat32.inc' + include 'ntfs.inc' + +write1st: +; callback from kernel.mnt +; write first sector of kernel.mnt from 1000:0000 back to disk + push cs + pop ds + push cs + pop es +; sanity check + mov bx, 500h + mov si, bx + mov cx, 1 + push cx + mov eax, [kernel_mnt_1st] + push eax + call relative_read + push 1000h + pop es + xor di, di + mov cx, 8 + repz cmpsw + mov si, data_error_msg + jnz find_error_si +; ok, now write back to disk + or byte [read.patch1+2], 1 + or byte [read.patch2+2], 1 + xor bx, bx + pop eax + pop cx + call relative_read + and byte [read.patch1+1], not 1 + and byte [read.patch2+2], not 2 +; and to image in memory (probably this may be done by kernel.mnt itself?) + mov dword [sou_addr], 93010000h + movzx eax, [kernel_mnt_in_img] + shl eax, 9 + add eax, 93100000h + mov dword [dest_addr], eax + mov si, movedesc + push ds + pop es + mov ah, 87h + mov cx, 100h + int 15h + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + retf + +loader_block: + db 1 ; version + dw 1 ; flags - image is loaded + dw write1st ; offset + dw 0 ; segment + +fat_cur_sector dd -1 + +; ----------------------------------------------- +; ------------------ Settings ------------------- +; ----------------------------------------------- + +; must be in lowercase, see ntfs_parse_dir.scan, fat32_parse_dir.scan +kernel_mnt_name db 'kernel.mnt',0 + +; uninitialized data follows +drive_size dd ? ; in sectors +heads dw ? +sectors dw ? +cyls dw ? +free dw ? +cur_obj dw ? +data_start dd ? +img_data_start dw ? +sect_per_clust dw ? +kernel_mnt_in_img dw ? +kernel_mnt_1st dd ? +; NTFS data +cluster_size dd ? ; in bytes +frs_size dd ? ; in bytes +frs_sectors dw ? ; in sectors +mft_data_attr dw ? +index_root dw ? +index_alloc dw ? +ofs dw ? +dir dw ? +; FAT32 data +fat_start dd ? +cur_cluster dd ? + +; will be initialized by ldklbr.vxd +menuet_img_name rb 300 diff --git a/programs/hd_load/9x2klbr/mtldr_code/ntfs.inc b/programs/hd_load/9x2klbr/mtldr_code/ntfs.inc new file mode 100644 index 0000000000..3aae8be8c4 --- /dev/null +++ b/programs/hd_load/9x2klbr/mtldr_code/ntfs.inc @@ -0,0 +1,519 @@ +restore_usa: +; Update Sequence Array restore + mov bx, [di+4] + mov cx, [di+6] + inc bx + add bx, di + inc bx + add di, 1feh + dec cx +@@: + mov ax, [bx] + stosw + inc bx + inc bx + add di, 1feh + loop @b + ret + +find_attr: +; in: di->file record, ax=attribute +; out: di->attribute or di=0 if not found + add di, [di+14h] +.1: +; attributes codes are formally dwords, but all they fit in word + cmp word [di], -1 + jz .notfound + cmp word [di], ax + jnz .continue +; for $DATA attribute, scan only unnamed + cmp ax, 80h + jnz .found + cmp byte [di+9], 0 + jz .found +.continue: + add di, [di+4] + jmp .1 +.notfound: + xor di, di +.found: + ret + +process_mcb_nonres: +; in: si->attribute, es:di->buffer +; out: di->buffer end + add si, [si+20h] + xor ebx, ebx +.loop: + lodsb + test al, al + jz .done + push invalid_read_request_string + movzx cx, al + shr cx, 4 + jz find_error_sp + xchg ax, dx + and dx, 0Fh + jz find_error_sp + add si, cx + add si, dx + pop ax + push si + dec si + movsx eax, byte [si] + dec cx + jz .l1e +.l1: + dec si + shl eax, 8 + mov al, [si] + loop .l1 +.l1e: + xchg ebp, eax + dec si + movsx eax, byte [si] + mov cx, dx + dec cx + jz .l2e +.l2: + dec si + shl eax, 8 + mov al, byte [si] + loop .l2 +.l2e: + pop si + add ebx, ebp +; eax=length, ebx=disk block + stosd + mov eax, ebx + stosd + jmp .loop +.done: + xor eax, eax + stosd + ret + +load_attr: +; in: ax=attribute, es:bx->buffer, di->base record +; out: bx->buffer end; CF set if not found + push di + push ax + mov byte [es:bx], 1 + inc bx + push bx + mov [ofs], bx +; scan for attrubute + add di, [di+14h] +@@: + call find_attr.1 + test di, di + jz .notfound1 + cmp byte [di+8], 0 + jnz .nonresident +; resident attribute + mov si, di + pop di + dec di + mov al, 0 + stosb + mov ax, [si+10h] + stosw + xchg ax, cx + add si, [si+14h] + rep movsb + mov bx, di + pop ax + pop di + ret +.nonresident: +; nonresident attribute + cmp dword [di+10h], 0 + jnz @b +; read start of data + mov si, di + pop di + call process_mcb_nonres + push di +.notfound1: +; $ATTRIBUTE_LIST is always in base file record + cmp word [esp+2], 20h + jz .nofragmented +; scan for $ATTRIBUTE_LIST = 20h + mov di, [esp+4] + mov ax, 20h + call find_attr + test di, di + jz .nofragmented +; load $ATTRIBUTE_LIST itself + push es + mov bx, 0C000h + mov di, [esp+6] + push bx + push [ofs] + push ds + pop es + call load_attr + pop [ofs] + pop si + mov bx, 8000h + push bx + push si + call read_attr_full + pop si + pop bx + add dx, bx + mov ax, [esp+4] + pop es +.1: + cmp [bx], ax + jnz .continue1 +; only unnamed $DATA attributes! + cmp ax, 80h + jnz @f + cmp byte [bx+6], 0 + jnz .continue1 +@@: + cmp dword [bx+10h], 0 + jz .continue1 + cmp dword [bx+8], 0 + jnz @f + push ax + mov ax, [esp+2] + cmp ax, [ofs] + pop ax + jnz .continue1 +@@: + pushad + mov eax, [bx+10h] + mov bx, dx + push [ofs] + push es + push ds + pop es + call read_file_record + pop es + pop [ofs] + popad + pushad + mov di, dx + add di, [di+14h] +.2: + call find_attr.1 + mov eax, [bx+8] + cmp eax, [di+10h] + jnz .2 + mov si, di + mov di, [esp+20h] + sub di, 4 + call process_mcb_nonres + mov [esp+20h], di + popad +.continue1: + add bx, [bx+4] + cmp bx, dx + jb .1 +.nofragmented: + pop bx + pop ax + pop di + cmp bx, [ofs] + jnz @f + dec bx + stc +@@: + ret + +read_attr_full: +; in: si->decoded attribute data, bx->buffer +; out: edx=length in bytes + lodsb + cmp al, 0 + jnz .nonresident +; resident + lodsw + movzx edx, ax + xchg ax, cx + mov di, bx + rep movsb + ret +.nonresident: +; nonresident :-) + xor edx, edx +.loop: + lodsd + xchg ecx, eax + jecxz .loopend + lodsd + xchg edi, eax +; read ecx clusters from cluster edi to es:bx +.intloop: + push ecx +; read 1 cluster from physical cluster edi to es:bx + mov ecx, [cluster_size] + mov eax, edi + mul ecx + push bx + call relative_read + pop bx + pop ecx + inc edi + mov eax, [cluster_size] + add edx, eax + shr eax, 4 + mov bp, es + add bp, ax + mov es, bp + loop .intloop + jmp .loop +.loopend: + mov es, cx + ret + +read_file_record: +; in: eax=index of record, bx=buffer + mov si, 700h + mov ecx, [frs_size] + mul ecx + push bx + push [cur_obj] + mov [cur_obj], mft_string + call read_attr + pop [cur_obj] + pop di + call restore_usa + ret +read_attr: +; in: edx:eax=offset in bytes, ecx=size in bytes, bx=buffer, si=attribute + push invalid_read_request_string + cmp byte [si], 0 + jnz .nonresident + test edx, edx + jnz find_error_sp + cmp eax, 10000h + jae find_error_sp + cmp ecx, 10000h + jae find_error_sp + cmp ax, [si+2] + jae find_error_sp + cmp cx, [si+2] + ja find_error_sp + add si, 3 + add si, ax + mov di, bx + rep movsb + pop ax + ret +.nonresident: + mov edi, [cluster_size] + div edi + mov [ofs], dx + add cx, dx + push eax + xchg eax, ecx + xor edx, edx + dec eax + div edi + inc eax + xchg eax, ecx + pop eax + add si, 1 + xor edx, edx + push bx +; eax=offset in clusters, ecx=size in clusters +.scan: + mov ebx, [si] + test ebx, ebx + jz .notfound + add edx, ebx + add si, 8 + cmp eax, edx + jae .scan + mov edi, [si-4] +; now edx=end of block, ebx=length of block, edi=start of block on disk +; eax=required offset, ecx=required length + push edx + push edi + sub edx, eax + add edi, ebx + sub edi, edx + cmp edx, ecx + jb @f + mov edx, ecx +@@: +; read (edx) clusters from (edi=disk offset in clusters) to ([esp+8]) + cmp [ofs], 0 + jnz .ofs_read +.cont: + pushad + movzx ebx, byte [50Dh] +; xchg eax, edx +; mul ebx + xchg ax, dx + mul bx + xchg cx, ax + xchg eax, edi + mul ebx + mov bx, [esp+8+20h] + call relative_read + mov [esp+8+20h], bx + popad +.cont2: + add eax, edx + sub ecx, edx +.cont3: + pop edi + pop edx + jnz .scan + pop bx + pop ax + ret +.ofs_read: + push ecx + movzx ecx, byte [50Dh] ; bpb_sects_per_clust + mov eax, edi + push edx + mul ecx + push 1000h + pop es + xor bx, bx + call relative_read + mov cx, bx + push si + push di + mov si, [ofs] + mov di, [esp+8+12] + sub cx, si + push ds + push es + pop ds + pop es + rep movsb + mov [esp+8+12], di + push es + pop ds + pop di + pop si + pop edx + pop ecx + inc edi + mov [ofs], 0 + inc eax + dec ecx + jz .cont3 + dec edx + jnz .cont + jmp .cont2 +.notfound: + mov si, invalid_read_request_string + jmp find_error_si + +ntfs_parse_dir: +; in: eax=directory iRecord, [word sp+2]=filename +; out: si=$DATA attribute of file + mov bx, [free] + mov [dir], bx + push bx + call read_file_record + mov ax, word [frs_size] + add [free], ax + pop di +; find attributes $INDEX_ROOT, $INDEX_ALLOCATION, $BITMAP + mov ax, 90h ; $INDEX_ROOT + push di + mov bx, [free] + mov [index_root], bx + call load_attr + mov si, noindex_string + jc find_error_si + mov [free], bx + pop di + mov ax, 0A0h ; $INDEX_ALLOCATION + mov bx, [free] + mov [index_alloc], bx + call load_attr + jnc @f + mov [index_alloc], 0 +@@: + mov [free], bx +; search for entry + mov si, [index_root] + mov bx, [free] + call read_attr_full + mov ebp, [bx+8] ; subnode_size + add bx, 10h +.scan_record: + add bx, [bx] +.scan: + test byte [bx+0Ch], 2 + jnz .not_found + mov si, [esp+2] + movzx cx, byte [bx+50h] ; namelen + lea di, [bx+52h] ; name + xor ax, ax +@@: + lodsb + cmp al, 'a' + jb .notletter + cmp al, 'z' + ja .notletter + or byte [di], 20h +.notletter: + scasw + loopz @b + jb .not_found + ja @f + cmp byte [esi], 0 + jz .file_found +@@: + add bx, [bx+8] + jmp .scan +.not_found: + test byte [bx+0Ch], 1 + jz file_not_found + cmp [index_alloc], 0 + jz file_not_found + add bx, [bx+8] + mov eax, [bx-8] + mul [cluster_size] + mov si, [index_alloc] + mov ecx, ebp + mov bx, [free] + call read_attr + mov di, [free] + call restore_usa + mov bx, [free] + add bx, 18h + jmp .scan_record +.file_found: + mov si, [esp+2] + mov [cur_obj], si + cmp byte [esp+4], 0 + jz .need_file + mov si, notdir_string + test byte [bx+48h+3], 10h + jz find_error_si + mov eax, [bx] + mov bx, [dir] + mov [free], bx + ret 2 +.need_file: + mov si, directory_string + test byte [bx+48h+3], 10h ; directory? + jnz find_error_si +; read entry + mov eax, [bx] + mov bx, [dir] + mov [free], bx + mov bx, 4000h + push bx + call read_file_record + pop di + mov ax, 80h + push 2000h + pop es + xor bx, bx + call load_attr + mov si, nodata_string + jz find_error_si + mov [free], bx + ret 2 diff --git a/programs/hd_load/9x2klbr/readme_dos.txt b/programs/hd_load/9x2klbr/readme_dos.txt new file mode 100644 index 0000000000..56110073ae --- /dev/null +++ b/programs/hd_load/9x2klbr/readme_dos.txt @@ -0,0 +1,33 @@ +Ќ §­ зҐ­ЁҐ: ЇаЁ § ЇгбЄҐ (Ї®¤ Win95/98/ME) (Є®а४⭮) ўлЈаг¦ Ґв Windows Ё +ў¬Ґбв® ­Ґс § Јаг¦ Ґв KolibriOS. + +“бв ­®ўЄ  ­Ґ вॡгҐвбп. + +‡ ЇгбЄ: + 9x2klbr [[¤ЁбЄ:]\[Їгвм\][Ё¬п_®Ўа § ]] +” ©« ®Ўа §  ¤®«¦Ґ­ а бЇ®« Ј вмбп ­  ¦сбвЄ®¬ ¤ЁбЄҐ. +‡­ зҐ­Ёп Ї® 㬮«з ­Ёо: ¤ЁбЄ C:, Є в «®Ј Є®а­Ґў®©, ®Ўа § kolibri.img +‚ ЇгвЁ Ё ў Ё¬Ґ­Ё ®Ўа §  ¤®«¦­л Ўлвм в®«мЄ® бЁ¬ў®«л Ё§ ЇҐаў®© Ї®«®ўЁ­л +ASCII-в Ў«Ёжл. ‚ з бв­®бвЁ, ­Ґ ¤®«¦­® Ўлвм агббЄЁе ЎгЄў. + +FAT: ЏаЁ­Ё¬ овбп в®«мЄ® Є®а®вЄЁҐ Ё¬Ґ­  Ї Ї®Є Ё д ©« , в.Ґ. progra~1 ў¬Ґбв® +Program Files; ¤«п Ё¬с­ вЁЇ  kolibri Ё menuet.075 (­Ґ Ў®«ҐҐ 8 ЎгЄў ў Ё¬Ґ­Ё, +­Ґ Ў®«ҐҐ 3 ЎгЄў ў а биЁаҐ­ЁЁ, ­Ґв бЇҐжЁ «м­ле бЁ¬ў®«®ў) нв® ўлЇ®«­Ґ­® + ўв®¬ вЁзҐбЄЁ, ў ®ЎйҐ¬ б«гз Ґ Є®а®вЄ®Ґ Ё¬п ¬®¦­® г§­ вм, ­ ЇаЁ¬Ґа, +ў Explorer'®ўбЄ®¬ ¤Ё «®ЈҐ "Properties" (Ї®¤ § Ј®«®ўЄ®¬ "MS-DOS name"). + +‚Їа®зҐ¬, Ґб«Ё нвЁ вॡ®ў ­Ёп ­Ґ Ўг¤гв ўлЇ®«­Ґ­л, § Јаг§зЁЄ ­Ґ бв ­Ґв +д®а¬ вЁа®ў вм ¤ЁбЄ :-),   Їа®бв® б®®ЎйЁв, зв®, ¬®«, 'not found'. + +ЏаЁ¬Ґал: + 9x2klbr d:\download\kolibri\kolibri1.img + 9x2klbr c:\progra~1\kolibri\ + 9x2klbr \progra~1\kolibri\ + (Ўг¤Ґв Јаг§Ёвм Ё§ kolibri.img) + 9x2klbr e:\ + (нЄўЁў «Ґ­в­® 9x2klbr e:\kolibri.img) + 9x2klbr + (ЎҐ§ Ї а ¬Ґва®ў; нЄўЁў «Ґ­в­® 9x2klbr c:\kolibri.img) + + diamond + mailto: diamondz@land.ru diff --git a/programs/hd_load/9x2klbr/readme_win.txt b/programs/hd_load/9x2klbr/readme_win.txt new file mode 100644 index 0000000000..7e31e6c109 --- /dev/null +++ b/programs/hd_load/9x2klbr/readme_win.txt @@ -0,0 +1,33 @@ +Назначение: при запуске (под Win95/98/ME) (корректно) выгружает Windows и +вместо неё загружает KolibriOS. + +Установка не требуется. + +Запуск: + 9x2klbr [[диск:]\[путь\][имя_образа]] +Файл образа должен располагаться на жёстком диске. +Значения по умолчанию: диск C:, каталог корневой, образ kolibri.img +В пути и в имени образа должны быть только символы из первой половины +ASCII-таблицы. В частности, не должно быть русских букв. + +FAT: Принимаются только короткие имена папок и файла, т.е. progra~1 вместо +Program Files; для имён типа kolibri и menuet.075 (не более 8 букв в имени, +не более 3 букв в расширении, нет специальных символов) это выполнено +автоматически, в общем случае короткое имя можно узнать, например, +в Explorer'овском диалоге "Properties" (под заголовком "MS-DOS name"). + +Впрочем, если эти требования не будут выполнены, загрузчик не станет +форматировать диск :-), а просто сообщит, что, мол, 'not found'. + +Примеры: + 9x2klbr d:\download\kolibri\kolibri1.img + 9x2klbr c:\progra~1\kolibri\ + 9x2klbr \progra~1\kolibri\ + (будет грузить из kolibri.img) + 9x2klbr e:\ + (эквивалентно 9x2klbr e:\kolibri.img) + 9x2klbr + (без параметров; эквивалентно 9x2klbr c:\kolibri.img) + + diamond + mailto: diamondz@land.ru diff --git a/programs/hd_load/9x2klbr/vxd.asm b/programs/hd_load/9x2klbr/vxd.asm new file mode 100644 index 0000000000..71f293621e --- /dev/null +++ b/programs/hd_load/9x2klbr/vxd.asm @@ -0,0 +1,234 @@ + .386p +WIN40COMPAT = 1 + include vmm.inc + include v86mmgr.inc + DECLARE_VIRTUAL_DEVICE LDKLBR,1,0,LDKLBR_Control,UNDEFINED_DEVICE_ID,1 + +;Begin_control_dispatch LDKLBR +;Control_Dispatch w32_DeviceIoControl, OnDeviceIoControl +;Control_Dispatch Sys_Dynamic_Device_Exit, OnExit +;End_control_dispatch LDKLBR + +VxD_LOCKED_DATA_SEG +VkdControlProc dd 0 +vkdddb dd 0 +diskinfobuf: + db 10h,0,0,0FFh + db 0Ch dup (0) + +oldidt label fword + dw 03FFh + dd 0 + + include mtldr.inc + +imgname dd 0 + +VxD_LOCKED_DATA_ENDS + +VxD_LOCKED_CODE_SEG + +BeginProc NewControlProc + cmp eax, Reboot_Processor + jz short MyReboot + jmp [VkdControlProc] +EndProc NewControlProc + +BeginProc MyReboot + VMMCall _MapPhysToLinear,<0D000h,2000h,0> + push eax + VMMCall _MapPhysToLinear,<0,1000h,0> + xchg eax, ebx + cli + lea esi, [ebx+53Ch] + lodsd + mov [ebx+413h], ax + shr eax, 10h + mov [ebx+40Eh], ax +; restore BIOS IDT - vectors 00..1F + mov edi, ebx + mov ecx, 20h + rep movsd +; int 19 + mov eax, [ebx+810h] + mov [ebx+64h], eax +; vectors 40,41,42,43,46,4B,4F + lea edi, [ebx+40h*4] + movsd + movsd + movsd + movsd + scasd + scasd + movsd + add edi, 10h + movsd + add edi, 0Ch + movsd +; vectors 70..77 +; lea esi, [ebx+5DCh] + lea edi, [ebx+70h*4] + mov ecx, 8 + rep movsd + +; reboot to mtldr + mov dword ptr [ebx+467h], 0D000007h ; 0D00:0007 + mov al, 0Fh + out 70h, al + jecxz $+2 + jecxz $+2 + mov al, 5 + out 71h, al +; copy mtldr code + mov esi, offset mtldr +; mov edi, 0D000h + pop edi + push edi + mov ecx, mtldr_size + rep movsb +; copy mtldr parameters + mov esi, [imgname] + mov edi, esi + mov al, 0 + xor ecx, ecx + dec ecx + repnz scasb + pop edi + not ecx + movzx eax, word ptr [edi+5] + add edi, eax + rep movsb +; load old IDT + lidt [oldidt] +; reboot + mov al, 0FEh + out 64h, al + hlt +EndProc MyReboot + +BeginProc LDKLBR_Control + cmp eax, w32_DeviceIoControl + jz short OnDeviceIoControl + cmp eax, Sys_Dynamic_Device_Exit + jz short OnExit + cmp eax, Reboot_Processor + jz MyReboot + clc + ret + +OnExit: +; allow unload if and only if we are not hooking + cmp [VkdControlProc], 1 + cmc + ret + +OnDeviceIoControl: + cmp dword ptr [esi+12], DIOC_Open + jz @@open + cmp dword ptr [esi+12], 0Fh + jnz _exit +; request to set path of image + mov ecx, [esi+20] ; cbInBuffer + cmp ecx, 300 + ja short @@paramerr + test ecx, ecx + jnz short @@param1ok +@@paramerr: + xor eax, eax + inc eax +@@errret: + mov ecx, [vkdddb] + mov edx, [VkdControlProc] + mov [ecx + VxD_Desc_Block.DDB_Control_Proc], edx + mov [VkdControlProc], 0 + ret +@@param1ok: + mov eax, [esi+16] ; lpvInBuffer +; set drive + mov dl, [eax] + or dl, 20h + sub dl, 60h + jz short @@paramerr + cmp dl, 'z'-60h + ja short @@paramerr + push esi + Push_Client_State Uses_edi + mov ecx, 10h + stc + push ds + pop fs + mov esi, offset diskinfobuf + VMMCall Get_Cur_VM_Handle + VxDCall V86MMGR_Allocate_Buffer + VMMCall Begin_Nest_V86_Exec + assume ebp:ptr Client_Reg_Struc + mov [ebp.Client_AX], 440Dh + mov [ebp.Client_BL], dl + mov [ebp.Client_CX], 086Fh + mov [ebp.Client_DX], di + mov eax, edi + shr eax, 10h + mov [ebp.Client_DS], ax + mov eax, 21h + VMMCall Exec_Int + VMMCall End_Nest_Exec + mov ecx, 10h + stc + push ds + pop fs + VxDCall V86MMGR_Free_Buffer + Pop_Client_State Uses_esi + pop esi + mov al, byte ptr [diskinfobuf+3] + cmp al, 0FFh + jz @@errret + cmp al, 80h + jb @@paramerr + mov byte ptr [mtldr+4], al + mov eax, dword ptr [diskinfobuf+8] + mov dword ptr [mtldr], eax +; set path + mov ecx, [imgname] + jecxz @f + VMMCall _HeapFree, +@@: + mov ecx, [esi+20] + dec ecx + push ecx + VMMCall _HeapAllocate, + pop ecx + mov [imgname], eax + xchg edi, eax + mov esi, [esi+16] + inc esi +@@1: + lodsb + cmp al, 'A' + jb short @f + cmp al, 'Z' + ja short @f + or al, 20h +@@: + stosb + loop @@1 + xor eax, eax + ret +@@open: +; don't hook if already hooked + cmp [VkdControlProc], 0 + jnz short @f + mov eax, 0Dh + VMMCall Get_DDB + mov [vkdddb], ecx + mov eax, [ecx + VxD_Desc_Block.DDB_Control_Proc] + mov [VkdControlProc], eax + mov [ecx + VxD_Desc_Block.DDB_Control_Proc], NewControlProc +@@: + xor eax, eax +_exit: + ret +EndProc LDKLBR_Control + +VxD_LOCKED_CODE_ENDS + + end diff --git a/programs/hd_load/meosload/AUTOEXEC.BAT b/programs/hd_load/meosload/AUTOEXEC.BAT new file mode 100644 index 0000000000..1890ba536d --- /dev/null +++ b/programs/hd_load/meosload/AUTOEXEC.BAT @@ -0,0 +1,28 @@ +goto %config% +:dos1 +rem c:\vc401\vc +lh keyrus +lh mmouse +lh C:\WINDOWS\COMMAND\mscdex /d:12345678 +lh \dn\dn +bootgui=0 +:dos2 +rem essolo.com +lh keyrus +lh mmouse +lh \dn\dn +bootgui=0 +:win +rem c:\essolo.com +set path=C:\WINDOWS;C:\WINDOWS\COMMAND;c:\;c:\windows\;c:\windows\comand\;c:\arc\;c:\dn\ +C:\WINDOWS\COMMAND\DELTREE /y C:\WINDOWS\TEMP\*.* +mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi) +mode con codepage select=866 +keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys +goto continue +:meos +c:\kolibri\meosload.com +:l:\meosload.com +:continue +rem bootgui=1 + diff --git a/programs/hd_load/meosload/CONFIG.SYS b/programs/hd_load/meosload/CONFIG.SYS new file mode 100644 index 0000000000..c531c047d3 --- /dev/null +++ b/programs/hd_load/meosload/CONFIG.SYS @@ -0,0 +1,27 @@ +[menu] +menucolor=7 +menuitem=win,Windows 98SE +menuitem=dos1,Dos Navigator+CD +menuitem=dos2,Dos Navigator +menuitem=kos,KolibriOS +menudefault=win,15 +[dos1] +rem DEVICE=essolo.sys +DEVICE=C:\WINDOWS\himem.sys +device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1) +DEVICE=C:\WINDOWS\emm386.exe noems +device=osi105p.sys +dos=high,umb +[dos2] +rem DEVICE=essolo.sys +DEVICE=C:\WINDOWS\himem.sys +device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1) +DEVICE=C:\WINDOWS\emm386.exe noems +dos=high,umb +[win] +rem DEVICE=c:\essolo.sys +DEVICE=C:\WINDOWS\himem.sys +device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1) +Country=007,866,C:\WINDOWS\COMMAND\country.sys +[kos] +[common] diff --git a/programs/hd_load/meosload/History.txt b/programs/hd_load/meosload/History.txt new file mode 100644 index 0000000000..fa8b3570f0 --- /dev/null +++ b/programs/hd_load/meosload/History.txt @@ -0,0 +1,9 @@ +14.02.2003 +Version 1.0 - Base version + +11.06.2003 +Version 1.1 - Added support of loading from IMAGE-file. + (see of Ivan Poddubny kernel modification) + +28.10.2006 +menuet.img renamed to kolibri.img diff --git a/programs/hd_load/meosload/L_readme.txt b/programs/hd_load/meosload/L_readme.txt new file mode 100644 index 0000000000..4c8c5248c9 --- /dev/null +++ b/programs/hd_load/meosload/L_readme.txt @@ -0,0 +1,18 @@ +Љ Є нвЁ¬ Ї®«м§®ў вмбп? +‚ᥠ­Ё¦ҐЇҐаҐзЁб«Ґ­­®Ґ  Євг «м­® в®«мЄ® ¤«п вҐе, г Є®Ј® Ё¬Ґовбп б«Ґ¤гойЁҐ Ћ‘: +MS-DOS, Windows95, Windows98 Ё«Ё Ёе ¬®¤ЁдЁЄ жЁЁ. „«п вҐе, г Є®Ј® Windows2000 +Ё«Ё WindowsXP ­Ґ®Ўе®¤Ё¬® Ї®«м§®ў вмбп § Јаг§зЁЄ®¬ mtldr ( ўв®а Diamond), +в Є¦Ґ ўе®¤пйЁ¬ ў ¤ЁбваЁЎгвЁў. + +‘®§¤ с¬ Ї ЇЄг ­  ¤ЁбЄҐ: +C:\KOLIBRI Ё«Ё D:\KOLIBRI Ё«Ё E:\KOLIBRI Ё«Ё «оЎ®© ¤агЈ®© ¤ЁбЄ, ­  ў иҐ гᬮв७ЁҐ. +Џ®¬Ґй Ґ¬ ў нвг Ї ЇЄг MeOSload.com, е®вп Ї® ЇаҐ¦­Ґ¬г ¬®¦­® ҐЈ® ®бв ўЁвм Ё ў +Є®а­Ґ в®Ј® ¤ЁбЄ , ў Є®в®а®¬ ­ е®¤Ёвмбп Ї ЇЄ  KOLIBRI. +Џ®¬Ґй Ґ¬ KOLIBRI.IMG ў Ї ЇЄг KOLIBRI, е®вп ­ЁЄв® ў ¬ ­Ґ § ЇаҐй Ґв, Є Є Ё +а ­миҐ, ®бв ўЁвм ўбс ў Є®а­Ґ ¤ЁбЄ . +” ©«л Autoexec.bat Ё Config.sys ¤®«¦­л Ўлвм ¤®а Ў®в ­л ¤«п ўлЎ®а  § Јаг§ЄЁ +Љ®«ЁЎаЁ. ЏаЁ¬Ґа®¬ ¬®Јгв б«г¦Ёвм д ©«л, ў«®¦Ґ­­лҐ ў вг ¦Ґ Ї ЇЄг, Ё§ Є®в®а®© ўл +®вЄал«Ё нвг ¤®Єг¬Ґ­в жЁо. …б«Ё ў®§­ЁЄ­гв ў®Їа®бл, ®Ўа й ©вҐбм ­  д®аг¬ +http://meos.sysbin.com + +“¤ зЁ! diff --git a/programs/hd_load/meosload/L_readme_Win.txt b/programs/hd_load/meosload/L_readme_Win.txt new file mode 100644 index 0000000000..48a21965d3 --- /dev/null +++ b/programs/hd_load/meosload/L_readme_Win.txt @@ -0,0 +1,18 @@ +Как этим пользоваться? +Все нижеперечисленное актуально только для тех, у кого имеются следующие ОС: +MS-DOS, Windows95, Windows98 или их модификации. Для тех, у кого Windows2000 +или WindowsXP необходимо пользоваться загрузчиком mtldr (автор Diamond), +также входящим в дистрибутив. + +Создаём папку на диске: +C:\KOLIBRI или D:\KOLIBRI или E:\KOLIBRI или любой другой диск, на ваше усмотрение. +Помещаем в эту папку MeOSload.com, хотя по прежнему можно его оставить и в +корне того диска, в котором находиться папка KOLIBRI. +Помещаем KOLIBRI.IMG в папку KOLIBRI, хотя никто вам не запрещает, как и +раньше, оставить всё в корне диска. +Файлы Autoexec.bat и Config.sys должны быть доработаны для выбора загрузки +Колибри. Примером могут служить файлы, вложенные в ту же папку, из которой вы +открыли эту документацию. Если возникнут вопросы, обращайтесь на форум +http://meos.sysbin.com + +Удачи! diff --git a/programs/hd_load/meosload/MeOSload.asm b/programs/hd_load/meosload/MeOSload.asm new file mode 100644 index 0000000000..53f57a21de --- /dev/null +++ b/programs/hd_load/meosload/MeOSload.asm @@ -0,0 +1,364 @@ +; +; MenuesOS Boot Loader +; +; Author: Trans +; Date: 14.02.03 +; Version: 1.0 +; +; Current Version: 1.1 +; Date of modification: 11.06.03 +; +; Compile with FASM +; + +;--------Code------------ + org 100h +start: + push cs + pop ds + mov ax,0003h + int 10h + + mov dx,title + call print + mov dx,mes1 + call print + + mov dx,img0 + call file_open + test ax,ax + jnz loader_continue + mov dx,img2 + call file_open + test ax,ax + jne loader_continue + mov dx,img3 + call file_open + test ax,ax + je loader_not_find_file +loader_continue: + mov [handle],ax + +;---------Read boot-sector----------- + mov bx,ax + mov dx,buffer + mov cx,512 + call file_read + +;--------Read parametrs-------------- + mov ax,[buffer+0bh] + mov [SectSize],ax + mov al,[buffer+0dh] + mov [ClustSect],al + mov ax,[buffer+0eh] + mov [ResSect],ax + add ax,[ResRgn] + mov [FATRgn],ax + mov al,[buffer+10h] + mov [FATCnt],al + xor bx,bx + mov bl,al + mov ax,[buffer+11h] + mov [RootEnt],ax + shr ax,4 ; ax=ax*32/512 + mov [RootDirRgnSz],ax + mov ax,[buffer+16h] + mov [FATSect],ax + mul bx + mov [FATRgnSz],ax + add ax,[FATRgn] + mov [RootDirRgn],ax + add ax,[RootDirRgnSz] + mov [DataRgn],ax + +;------Read FATs and RootDir--------- + xor eax,eax + xor edx,edx + mov ax,[FATRgn] + mul [SectSize] + mov cx,dx + mov dx,ax + mov bx,[handle] + call file_offset + mov ax,[FATRgnSz] + mul [SectSize] + mov cx,ax + mov dx,buffer + mov bx,[handle] + call file_read + mov cx,[RootEnt] + shl cx,5 + mov dx,Root + mov bx,[handle] + call file_read + +;-------Search entry pointer in RootDir--------- + push ds + pop es + mov cx,[RootEnt] + mov bx,Root +loader_loc_00: + push cx + mov cx,11 + mov di,bx + mov si,kernel + repe cmpsb + jnz loader_notfound + pop cx + jmp loader_find +loader_notfound: + pop cx + add bx,32 + loop loader_loc_00 +loader_find: + + mov ax,[bx+1ah] + mov [FirstClust],ax + mov eax,[bx+1ch] + mov [filesize],eax + +;------Read Kernel---------------------- + call read_kernel + +;--------------------------------------- + + mov bx,[handle] + call file_close +;;;;;;;;;;;;;;;;;;;;;; + jmp loader_yes +;;;;;;;;;;;;;;;;;;;;;; +; mov dx,mes2 +; call print +;loader_key: +; mov ah,00h +; int 16h +; cmp al,1bh ;ESC +; je loader_no +; cmp al,6eh ;'n' +; je loader_no +; cmp al,4eh ;'N' +; je loader_no +; cmp al,79h ;'y' +; je loader_yes +; cmp al,59h ;'Y' +; je loader_yes +; jmp loader_key + +loader_not_find_file: + mov dx,mes4 + call print + jmp loader_exit + +loader_yes: + mov dx,yes + call print + mov ax,7000h + mov es,ax + mov si,move_kernel + xor di,di + mov cx,len_mk + rep movsb + jmp far 7000h:0000h +; jmp loader_exit +loader_no: + mov dx,no + call print + +loader_exit: + mov dx,mes3 + call print + retn +;----Subprogramms-------- + +print: +; in: dx - offset of ASCII string +; out: + mov ah,09h + int 21h + retn + +file_open: +; in: ds:dx - offset of ASCIIZ filename string +; out: ax - file handle (ax=0 - not found) + mov ax,3d00h + int 21h + jnc fo_exit + xor ax,ax +fo_exit: + retn + +file_close: +; in: bx - file handle +; out: + mov ah,3eh + int 21h + retn + +file_read: +; in: bx - file handle +; ds:dx - buffer +; cx - numbers of bytes +; out: + mov ah,3fh + int 21h + retn + +file_offset: +; in: bx - file handle +; cx:dx - offset in bytes (cx*65535+dx) +; out: + mov ax,4200h + int 21h + retn + +sector_find: +; in: ax - No of Cluster +; out: ax - 1st sector of Cluster + dec ax + dec ax + push bx + xor bx,bx + mov bl,[ClustSect] + mul bx + pop bx + add ax,[DataRgn] + retn + +read_cluster: +; in: ax - No of Cluster +; ds:dx - buffer +; out: + push dx + call sector_find + push ax + xor eax,eax + xor ebx,ebx + pop ax + mov bx,[SectSize] + mul ebx + mov dx,ax + shr eax,16 + mov cx,ax + mov bx,[handle] + call file_offset + xor ax,ax + mov al,[ClustSect] + mul [SectSize] + mov cx,ax + mov bx,[handle] + pop dx + call file_read + retn + +read_kernel: +; in: +; out: + mov ax,8000h + mov es,ax ;8000:0000 = 80000h - Temporal location of kernel + xor di,di ; + mov ax,[FirstClust] + mov bp,ax +rk_loc_00: + push es + mov dx,Root + call read_cluster + xor ax,ax ; Moving cluster to area of location kernel + mov al,[ClustSect] ; + mul [SectSize] ; + mov cx,ax ; + pop es ; + mov si,Root ; + rep movsb ; + cmp di,00h + jne rk_continue + mov ax,es + add ax,1000h + mov es,ax +rk_continue: + mov ax,bp + cmp ax,0ff8h + jae rk_done + shl ax,1 ; Val=Clustrer*1,5 //(Cluster*3)/2 + add ax,bp ; + shr ax,1 ; + mov bx,ax + add bx,buffer + mov ax,[bx] + bt bp,0 + jc rk_nechet + and ax,0fffh + jmp rk_chet +rk_nechet: + shr ax,4 +rk_chet: + mov bp,ax + jmp rk_loc_00 +rk_done: + retn + +move_kernel: +; in: +; out: + mov ax,8000h + mov ds,ax + mov ax,1000h + mov es,ax + xor si,si + xor di,di + mov cx,8000h + rep movsb + mov cx,8000h + rep movsb + mov bx,es + add bx,1000h + mov es,bx + mov bx,ds + add bx,1000h + mov ds,bx + mov cx,8000h + rep movsb + mov cx,8000h + rep movsb + mov ax,1000h + mov ds,ax + mov es,ax + jmp far 1000h:0000h + retn +len_mk=$-move_kernel + +;--------Data------------ +title db 'MenuetOS/KolibriOS Boot Loader. Ver.1.1 Copyright(C) 2003, Trans.',0ah,0dh,0ah,0dh,'$' +mes1 db 'It is alternative of boot from floppy.',0ah,0dh + db 'You MUST select HD booting !!!',0ah,0dh,0ah,0dh,'$' +mes2 db 'Are you sure loading KolibriOS? (Y/N):','$' +yes db 'Y','$' +no db 'N','$' +mes3 db 0ah,0dh,0ah,0dh,'See you later ...',0ah,0dh,'$' +mes4 db 0ah,0dh,0ah,0dh,'Not Found: ' +img0 db 'kolibri\kolibri.img',0,', ' +img2 db 'kolibri.img',0,', ' +img3 db 'menuet.img',0,' :($' +kernel db 'KERNEL MNT',0 +handle dw ? +SectSize dw ? ; +0bh +ClustSect db ? ; +0dh +ResSect dw ? ; +0eh +FATCnt db ? ; +10h +RootEnt dw ? ; +11h +FATSect dw ? ; +16h +filesize dd ? ; +1ch +FirstClust dw ? ; +1ah + +ResRgn dw 0 ; = VolumeStart +FATRgn dw ? ; = ResRgn+ResSect +RootDirRgn dw ? ; = FATRgn+(FATCnt*FATSect) +DataRgn dw ? ; = RootDirRgn+((RootEnt*32)/SectSize) +ResRgnSz dw ? ; = ResSect +FATRgnSz dw ? ; = FATCnt*FATSect +RootDirRgnSz dw ? ; = (RootEnt*32)/SectSize +;First sector of cluster N = DataRgn+((N-2)*ClustSect) + +buffer: + org 3000h +Root: + diff --git a/programs/hd_load/mtldr/fat32.inc b/programs/hd_load/mtldr/fat32.inc new file mode 100644 index 0000000000..197c6260db --- /dev/null +++ b/programs/hd_load/mtldr/fat32.inc @@ -0,0 +1,112 @@ +fat32_parse_dir: +; in: eax=directory cluster +; out: eax=entry cluster + mov bx, 900h + mov di, bx + push eax + call read_cluster + mov cx, word [cluster_size] + shr cx, 5 ; div 20h +.scan_cluster: + pop eax + cmp byte [di], 0 + jz file_not_found + mov si, [esp+2] + push eax + call fat_compare_name + jz .file_found + and di, not 1Fh + add di, 20h + loop .scan_cluster + pop eax + call next_cluster + jnc file_not_found + jc fat32_parse_dir +.file_found: + pop eax + mov si, [esp+2] + mov [cur_obj], si + and di, not 1Fh + mov si, directory_string + mov ax, [di+14h] + shl eax, 10h + mov ax, [di+1Ah] + test eax, eax + mov si, nodata_string + jz find_error_si + ret 2 + +fat_compare_name: + push cx + mov cx, 9 +.scan: + lodsb + cmp al, '.' + jz .ext + cmp al, 0 + jz .nameend + cmp al, 'a' + jb .notletter + cmp al, 'z' + ja .notletter + or byte [di], 20h +.notletter: + scasb + loopz .scan +.notfound: + inc cx ; to clear ZF flag + pop cx + ret +.ext: + mov al, ' ' + dec cx + repz scasb + jnz .notfound + test di, 1 + jnz .notfound + mov cx, 4 + jmp .scan +.nameend: + mov al, ' ' + dec cx + repz scasb + jnz .notfound + test di, 1 + jnz .file_found + mov cx, 3 + repz scasb + jnz .notfound +.file_found: + xor cx, cx ; to set ZF flag + pop cx + ret + +read_cluster: +; in: eax=cluster,bx->buffer + and eax, 0FFFFFFFh + movzx ecx, byte [50Dh] ; sects_per_clust + mul ecx + add eax, [data_start] +; call read +; ret + jmp relative_read +next_cluster: + mov bx, 700h +; sector is 200h bytes long, one entry in FAT occupies 4 bytes => 80h entries in sector + push eax + shr eax, 7 ; div 80h + cmp eax, [fat_cur_sector] + jz @f + mov [fat_cur_sector], eax + add eax, [fat_start] + mov cx, 1 + call relative_read +@@: + pop eax + and eax, 7Fh + mov eax, [700h+eax*4] + and eax, 0FFFFFFFh + cmp eax, 0FFFFFF7h + mov si, bad_cluster_string + jz find_error_si + ret diff --git a/programs/hd_load/mtldr/install.txt b/programs/hd_load/mtldr/install.txt new file mode 100644 index 0000000000..d5b322cf5c --- /dev/null +++ b/programs/hd_load/mtldr/install.txt @@ -0,0 +1,101 @@ +“бв ­®ўЄ  ®бгйҐбвў«пҐвбп б«Ґ¤гойЁ¬ Їа®бвл¬ бЇ®б®Ў®¬: + Ј 1. ‘Є®ЇЁаг©вҐ д ©«л mtldr Ё kolibri.img ў C:\ + (ЌҐ ­а ўЁвбп C:\? Џа®зЁв ©вҐ § ¬Ґз ­Ёп ­Ё¦Ґ.) + + Ј 2 ) „«п Ї®«м§®ў вҐ«Ґ© NT-ᥬҐ©бвў  ¤® Vista (NT/2k/XP/2003 Server (?)): + ¤®Ў ўм⥠ў boot.ini ў а §¤Ґ« [operating systems] бва®Єг +c:\mtldr="KolibriOS" + («ЁЎ® ®вЄалў «оЎл¬ ⥪бв®ўл¬ аҐ¤ Єв®а®¬ c:\boot.ini, + «ЁЎ® зҐаҐ§ Control Panel -> System -> Advanced -> Startup and Recovery + -> Edit). Ќ §ў ­ЁҐ ў Є ўлзЄ е ¬®¦ҐвҐ § ¬Ґ­Ёвм ­  ўбс, зв® ў ¬ ­а ўЁвбп, + Ї®¤ нвЁ¬ ­ §ў ­ЁҐ¬ бЁб⥬  Ўг¤Ґв Ї®пў«пвмбп ў бЇЁбЄҐ § Јаг§ЄЁ. +’ҐЇҐам ЇаЁ § Јаг§ЄҐ Ўг¤Ґв ўл¤ ў вмбп нЄа ­ ўлЎ®а  ®ЇҐа жЁ®­­®© бЁб⥬л. + + Ј 2Ў) „«п Ї®«м§®ў вҐ«Ґ© 9x-ᥬҐ©бвў  (95/98) +(  ¬®¦Ґв Ўлвм, нв® Ўг¤Ґв а Ў®в вм Ё ¤«п ­ҐЄ®в®але DOS): + ¤®Ў ўм⥠ў config.sys бва®Єг +install=c:\mtldr + ЇҐаў®© бва®Є®©, Ґб«Ё г ў б Їа®бв®© «Ё­Ґ©­л© config.sys, + ЇҐаў®© бва®Є®© ў ᮮ⢥вбвўго饩 ᥪ樨, Ґб«Ё config.sys + а §ЎЁв ­  ᥪ樨 (Ё ­ зЁ­ Ґвбп б [menu]) +’ҐЇҐам ЇаЁ § Јаг§ЄҐ mtldr Ўг¤Ґв бЇа иЁў вм: "Load KolibriOS? [y/n]: " Ё ®¦Ё¤ вм +­ ¦ вЁп ®¤­®Ј® Ё§ 'y','Y','n','N'. + +„«п Windows Millenium нв® ­Ґ а Ў®в Ґв, в.Є. Me'и­л© § Јаг§зЁЄ ­Ґ +§ Јаг¦ Ґв ў­Ґи­ҐЈ® Є®¤  Ё§ config.sys. (‘Ї бЁЎ® camper'г §  гЄ § ­ЁҐ +­  нв®в ЇаЁбЄ®аЎ­л© д Єв.) €бЇ®«м§г©вҐ 9x2klbr. + + Ј 2ў) „«п Ї®«м§®ў вҐ«Ґ© Vista: + ®вЄа®©вҐ Є®¬ ­¤­го бва®Єг б  ¤¬Ё­Ёбва в®абЄЁ¬Ё ЇаЁўЁ«ҐЈЁп¬Ё + (Їг­Єв "Run as administrator" ў Є®­вҐЄбв­®¬ ¬Ґ­о); + Ґб«Ё ўл ­Ґ Ї« ­ЁагҐвҐ гбв ­®ўЄЁ ­ҐбЄ®«мЄЁе ў аЁ ­в®ў Љ®«ЁЎаЁ + Є Є ®ЇЁб ­® ў § ¬Ґз ­Ёпе, Їа®бв® § ЇгбвЁвҐ ЇаЁ« Ј Ґ¬л© vista_install.bat; + Ё­ зҐ ўлЇ®«­ЁвҐ б«Ґ¤гойЁҐ Є®¬ ­¤л: +bcdedit /create /d "KolibriOS" /application BOOTSECTOR + (Ќ §ў ­ЁҐ ў Є ўлзЄ е ¬®¦ҐвҐ § ¬Ґ­Ёвм ­  ўбс, зв® ў ¬ ­а ўЁвбп, + Ї®¤ нвЁ¬ ­ §ў ­ЁҐ¬ бЁб⥬  Ўг¤Ґв Ї®пў«пвмбп ў бЇЁбЄҐ § Јаг§ЄЁ.) + „®«¦­® Ї®пўЁвмбп б®®ЎйҐ­ЁҐ вЁЇ  +"‡ ЇЁбм {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} гбЇҐи­® ᮧ¤ ­ ." + „ «ҐҐ ў Є®¬ ­¤ е Ї®¤бв ў«п©вҐ Ї®«г祭­®Ґ §­ зҐ­ЁҐ (®­®, ў®®ЎйҐ Ј®ў®ап, + а §­®Ґ ­  а §­ле Є®¬ЇмовҐа е). +bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} DEVICE PARTITION=C: +bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} PATH \mtldr +bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast + +“¤ «Ґ­ЁҐ ў б«гз пе 2 ) Ё 2Ў) ®бгйҐбвў«пҐвбп г¤ «Ґ­ЁҐ¬ ўўҐ¤с­­ле ¤ ­­ле ў +boot.ini Ё config.sys ᮮ⢥вб⢥­­®. “¤ «Ґ­ЁҐ ў б«гз Ґ 2ў) ¤Ґ« Ґвбп в Є: + +vista_remove.bat, Ґб«Ё гбв ­®ўЄ  Ўл«  зҐаҐ§ vista_install.bat; +bcdedit /delete {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} ў ®ЎйҐ¬ б«гз Ґ + +…б«Ё ўл ­Ґ Ї®¬­ЁвҐ ­ §­ зҐ­­л© ЇаЁ гбв ­®ўЄҐ GUID (нв® ­®а¬ «м­®Ґ пў«Ґ­ЁҐ), +в® г§­ вм ҐЈ® ¬®¦­®, ўлЇ®«­Ёў Є®¬ ­¤г bcdedit ЎҐ§  аЈг¬Ґ­в®ў Ё ­ ©¤п +ў ўлўҐ¤Ґ­­®¬ бЇЁбЄҐ ᮮ⢥вбвўгойЁ© н«Ґ¬Ґ­в. + +‚® ўбҐе б«гз пе ў нЄа ­Ґ ўлЎ®а  Ї а ¬Ґва®ў KolibriOS ¬®¦­® ­  ў®Їа®б, +®вЄг¤  Јаг§Ёвм ®Ўа § (Їг­Єв d, "®Ўа § ¤ЁбЄҐвл"), +®вўҐз вм "3" (ЁбЇ®«м§®ў вм 㦥 § Ја㦥­­л© ®Ўа §). + +‡ ¬Ґз ­Ёп: + +1. Џ®Є  зв® ўбс нв® а Ў®в Ґв ¤«п д ©«®ўле бЁб⥬ NTFS Ё FAT32, Ї®¤¤Ґа¦Є  FAT16 +­Ґ ॠ«Ё§®ў ­  ў бўп§Ё б ¬®Ё¬ Ј«гЎ®ЄЁ¬ гЎҐ¦¤Ґ­ЁҐ¬, з⮠ᥩз б FAT16 - ®ЎкҐЄв +зЁбв® Ёбв®аЁзҐбЄЁ©. …б«Ё ўл ЁбЇ®«м§гҐвҐ FAT16, г ў б бв®Ёв Windows Ё ўл Ї® +Є ЄЁ¬-в® ЇаЁзЁ­ ¬ ­Ґ е®вЁвҐ ЇҐаҐе®¤Ёвм ­  FAT32 - ­ ЇЁиЁвҐ ¬­Ґ +- ¬®¦Ґв Ўлвм, ў ¬ г¤ бвбп ¬Ґ­п ЇҐаҐгЎҐ¤Ёвм. + +2. ‘ ¬ § Јаг§зЁЄ mtldr ­Ґ®Ўп§ вҐ«м­® Ї®¬Ґй вм ў C:\. Џ®¤ 9x Ё Vista ®­ ¬®¦Ґв +а §¬Ґй вмбп Ј¤Ґ гЈ®¤­®, ў NT/2k/XP - ­  ¤ЁбЄҐ C:, ­® ­Ґ®Ўп§ вҐ«м­® +ў Є®а­Ґў®© Ї ЇЄҐ. (ђ §г¬ҐҐвбп, ЇаЁ гбв ­®ўЄҐ ­г¦­® гЄ §лў вм ў¬Ґбв® +c:\mtldr ॠ«м­л© Їгвм Ё ॠ«м­®Ґ Ё¬п д ©« .) + +3. ЋЎа § kolibri.img ⮦Ґ ­Ґ®Ўп§ вҐ«м­® Ї®¬Ґй вм ў C:\. Њ®¦­® ЎҐ§ ўбпЄЁе +Ё§¬Ґ­Ґ­Ё© ў гбв ­®ўЄҐ ЁбЇ®«м§®ў вм Є®а­Ґўго Ї ЇЄг «оЎ®Ј® «®ЈЁзҐбЄ®Ј® ¤ЁбЄ , +а §¬Ґй о饣®бп ­  ЇҐаў®¬ дЁ§ЁзҐбЄ®¬. + +4. …б«Ё е®зҐвбп ЁбЇ®«м§®ў вм «®ЈЁзҐбЄЁ© ¤ЁбЄ ­  ¤агЈ®¬ дЁ§ЁзҐбЄ®¬ ¤ЁбЄҐ? +‘Ј®¤Ёвбп «оЎ®© Ё§ б«Ґ¤гойЁе ў аЁ ­в®ў: +a) (…б«Ё ўл 㬥ҐвҐ а Ў®в вм б FASM'®¬) ‚ Ёб室­ЁЄ е (Є®в®алҐ ¬®¦­® бЄ з вм + ­  http://diamondz.land.ru, в ¬ ¦Ґ, Ј¤Ґ Ё б ¬ § Јаг§зЁЄ) Ї®¬Ґ­п©вҐ + Є®­бв ­вг boot_drive (ў Є®­жҐ mtldr.asm) б 80h ­  Ё¤Ґ­вЁдЁЄ в®а ¤ЁбЄ , + 80h ᮮ⢥вбвўгҐв ЇҐаў®¬г, 81h - ўв®а®¬г Ё в.¤. ЏҐаҐЄ®¬ЇЁ«Ёаг©вҐ. +Ў) (…б«Ё ўл 㬥ҐвҐ а Ў®в вм б hex-। Єв®а®¬) Џ®¬Ґ­п©вҐ Ў ©в Ї® ᬥ饭Ёо 0xD98 + б 80h ­  Ё¤Ґ­вЁдЁЄ в®а ¤ЁбЄ  (Є Є ў Їг­ЄвҐ  ). +ў) €бЇ®«м§г©вҐ гбв ­®ўйЁЄ mtldr_install (бЄ з вм ҐЈ® ¬®¦­® в ¬ ¦Ґ). + Ћ­ ­ бва®Ёв § Јаг§зЁЄ Ё б ¬ ¦Ґ ҐЈ® Ё гбв ­®ўЁв. + +5. …б«Ё 祬-в® ­Ґ ­а ўЁвбп Є®а­Ґў п Ї ЇЄ ? ’гв Ї®пў«повбп ¤ў  ў аЁ ­в : + ) ‚ Ёб室­ЁЄ е Ї®¬Ґ­п©вҐ бва®Єг kolibri_img_name (ў Є®­жҐ mtldr.asm) + ­  Їгвм Є д ©«г. Ќ ЇаЁ¬Ґа, ¤«п C:\Program Files\kolibri\kolibri.img § ЇЁиЁвҐ + 'progra~1\kolibri\kolibri.img' (ЇаЁ н⮬ ­г¦­л Ё¬Ґ­  8.3). ЏҐаҐЄ®¬ЇЁ«Ёаг©вҐ. +Ў) €бЇ®«м§г©вҐ гбв ­®ўйЁЄ mtldr_install. + +6. …б«Ё ў®бЇ®«м§®ў вмбп ४®¬Ґ­¤ жЁп¬Ё Їг­Єв®ў 2 Ё 5 Ё Ї®ўв®аЁвм гбв ­®ўЄг + ­ҐбЄ®«мЄ® а § ¤«п а §­ле а бЇ®«®¦Ґ­Ё© бўп§ЄЁ mtldr+kolibri.img, + ¬®¦­® Ї®«гзЁвм ў § Ја㧮筮¬ ¬Ґ­о ­ҐбЄ®«мЄ® ўе®¤®ў ¤«п а §­ле ўҐабЁ© + Љ®«ЁЎаЁ (Ё«Ё ¤«п ўҐабЁ© б а §­л¬Ё ­ бва®©Є ¬Ё). + +7. Џ®¦Ґ« ­Ёп, § ¬Ґз ­Ёп, ЇаҐ¤«®¦Ґ­Ёп ўлбл« ©вҐ ­  ¬л«®, гЄ § ­­®Ґ ­Ё¦Ґ. + + diamond + mailto: diamondz@land.ru diff --git a/programs/hd_load/mtldr/mtldr.asm b/programs/hd_load/mtldr/mtldr.asm new file mode 100644 index 0000000000..c44c383095 --- /dev/null +++ b/programs/hd_load/mtldr/mtldr.asm @@ -0,0 +1,852 @@ +; KolibriOS bootloader +; this code has been written by diamond in 2005,2006,2008 specially for KolibriOS + +; this code is loaded by ntldr to 0D00:0000 +; and by io.sys from config.sys to xxxx:0100 +; and by bootmgr in vista to 0000:7C00 + format binary + use16 + + org 0xD000 +; entry point for 9x and Vista booting + call @f +; db 'd' xor 'i' xor 'a' xor 'm' xor 'o' xor 'n' xor 'd' + db 'NTFS' +@@: + pop si + sub si, 3 + cmp si, 7C00h + jz boot_vista + mov si, load_question + 100h - 0D000h + call out_string +; mov si, answer + 100h - 0D000h ; already is +xxy: mov ah, 0 + int 16h + or al, 20h + mov [si], al + cmp al, 'y' + jz xxz + cmp al, 'n' + jnz xxy +; continue load Windows +; call out_string +; ret +out_string: + lodsb + test al, al + jz .xxx + mov ah, 0Eh + mov bx, 7 + int 10h + jmp out_string +.xxx: ret +xxz: +; boot KolibriOS + call out_string + push 0 + pop ds + mov word [4], new01handler + 100h - 0D000h + mov [6], cs + pushf + pop ax + or ah, 1 + push ax + popf +; int 19h +; pushf ; there will be no iret + call far [19h*4] +xxt: +; TF has been cleared when entered new01handler +; pushf +; pop ax +; and ah, not 1 +; push ax +; popf + xor di, di + mov ds, di + cmp word [8*4+2], 0F000h + jz @f + les bx, [8*4] + mov eax, [es:bx+1] + mov [8*4], eax +@@: + mov si, 100h +boot_vista: + push cs + pop ds + push 0D00h + pop es + mov cx, 2000h/2 + rep movsw + jmp 0D00h:0256h +load_question db 'Load KolibriOS? [y/n]: ',0 +answer db ? + db 13,10,0 + +new01handler: +; [sp]=ip, [sp+2]=cs, [sp+4]=flags + push bp + mov bp, sp + push bx + push ds + lds bx, [bp+2] + cmp word [bx], 19cdh + jz xxt + pop ds + pop bx + pop bp + iret + +relative_read: + add eax, [partition_start] + +; read from hard disk +; drive_size must be already initialized +; in: eax = absolute sector +; cx = number of sectors +; es:bx -> buffer +read: + pushad + cmp eax, [drive_size] + jb .old_style +; new style - LBA, function 42 + cmp [has_lba], 0 + jz disk_error +; allocate disk address packet on the stack +; qword +8: absolute block number + push dword 0 ; dword +C is high dword + push eax ; dword +8 is low dword +; dword +4: buffer address + push es ; word +6 is segment + push bx ; word +4 is offset +; word +2: number of blocks = 1 +; word +0: size of packet = 10h + push dword 10010h +; now pair ss:sp contain address of disk address packet +.patch1: + mov ax, 4200h + mov dl, [boot_drive] + mov si, sp + push ds + push ss + pop ds + int 13h + pop ds + add sp, 10h +.end: + popad + jc disk_error + add bx, 200h + inc eax + dec cx + jnz read + ret +.old_style: +; old style - CHS, function 2 +; convert absolute sector in eax to cylinder-head-sector coordinates +; calculate sector + xor edx, edx + movzx ecx, [sectors] + div ecx +; sectors are counted from 1 + inc dx + mov cl, dl ; low 6 bits of cl = sector number +; calculate head number + shld edx, eax, 10h ; convert eax to dx:ax + div [heads] + mov dh, dl ; dh = head + mov ch, al ; ch = low 8 bits of cylinder + shl ah, 6 + or cl, ah ; high 2 bits of cl = high 2 bits of cylinder +.patch2: + mov ax, 201h ; function 2, al=1 - number of sectors + mov dl, [boot_drive] + int 13h + jmp .end + +disk_error: + mov si, disk_error_msg + call out_string + jmp $ + +has_lba db 0 + +disk_error_msg db 'Disk read error!',0 +start_msg db 2,' KolibriOS bootloader',13,10,0 +part_msg db 'looking at partition ' +part_char db '0' ; will be incremented before writing message + db ' ... ',0 +errfs_msg db 'unknown filesystem',13,10,0 +fat16_msg db 'FAT12/FAT16 - unsupported',13,10,0 +fat32_msg db 'FAT32' +newline db 13,10,0 +ntfs_msg db 'NTFS',13,10,0 +error_msg db 'Error' +colon db ': ',0 +mft_string db 'MFT',0 +root_string db '\',0 +noindex_string db '$INDEX_ROOT not found',0 +invalid_read_request_string db 'cannot read attribute',0 +nodata_string db '$DATA ' +notfound_string db 'not found',0 +directory_string db 'is a directory',0 +notdir_string db 'not a directory',0 +fragmented_string db 'too fragmented file',0 +exmem_string db 'extended memory error',0 +bad_cluster_string db 'bad cluster',0 +data_error_msg db 'data error',0 + +; init procedure - ntldr jmps here + repeat 0D256h - $ + db 1 + end repeat +start: +; cs=es=0D00, ds=07C0, ss=0 +; esi=edi=ebp=0, esp=7C00 + xor ax, ax + mov ds, ax + mov es, ax +; our stack is 4Kb-512b-2b!!! (0xDFE) + mov ss, ax + mov esp, 0FFFEh + +; we are booting from hard disk identified by [boot_drive] + mov dl, [boot_drive] + cld + sti +; calculate drive size + mov ah, 8 ; 8 = get drive parameters + int 13h +; now: CF is set on error; +; ch = low 8 bits of maximum cylinder number +; cl : low 6 bits makes maximum sector number, high 2 bits are high 2 bits of maximum cylinder number +; dh = maximum head number + jnc @f + mov cx, -1 + mov dh, cl +@@: + movzx ax, dh + inc ax +; ax = number of heads + mov [heads], ax + mov dl, cl + and dx, 3Fh +; dx = number of sectors +; (note that sectors are counted from 1, and maximum sector number = number of sectors) + mov [sectors], dx + mul dx + xchg cl, ch + shr ch, 6 + inc cx +; cx = number of cylinders + mov [cyls], cx + mul cx + mov word [drive_size], ax + mov word [drive_size+2], dx +; this drive supports LBA? + mov dl, [boot_drive] + mov ah, 41h + mov bx, 55AAh + int 13h + jc .no_lba + cmp bx, 0AA55h + jnz .no_lba + test cl, 1 + jz .no_lba + inc [has_lba] +.no_lba: +; say hi to user + mov si, start_msg + call out_string +; now read first sector to determine file system type +; first sector of disk is MBR sector + xor eax, eax +new_partition_ex: + mov cx, 1 + mov bx, 0F000h + call read +new_partition: + mov bx, [cur_partition_ofs] + mov al, [bx+4] ; partition type + test al, al + jz next_partition + cmp al, 5 + jz @f + cmp al, 0xF + jnz not_extended +@@: +; extended partition + mov eax, [bx+8] ; partition start + add eax, [extended_part_start] + mov [extended_part_cur], eax +next_partition: + add [cur_partition_ofs], 10h + cmp [cur_partition_ofs], 0xF1FE + jb new_partition + mov eax, [extended_part_cur] + test eax, eax + jz partitions_done + cmp [extended_part_start], 0 + jnz @f + mov [extended_part_start], eax +@@: + mov [extended_parent], eax + and [extended_part_cur], 0 + mov [cur_partition_ofs], 0xF1BE + jmp new_partition_ex +partitions_done: + mov si, total_kaput + call out_string + jmp $ +not_extended: + mov eax, [bx+8] + add eax, [extended_parent] + mov [partition_start], eax + push ax + mov si, part_msg + inc [si+part_char-part_msg] + call out_string + pop ax + mov cx, 1 + mov bx, 500h + call read + movzx ax, byte [50Dh] + mov [sect_per_clust], ax +; determine file system + cmp dword [536h], 'FAT1' + jz fat1x + cmp dword [552h], 'FAT3' + jz fat32 + cmp dword [503h], 'NTFS' + jz ntfs + mov si, errfs_msg + call out_string + jmp next_partition +fat1x: + mov si, fat16_msg + call out_string + jmp next_partition +fat32: + mov si, fat32_msg + call out_string + movzx eax, word [50Bh] ; bytes_per_sect + movzx ebx, byte [50Dh] ; sects_per_clust + mul ebx + mov [cluster_size], eax + movzx ebx, word [50Eh] ; reserved_sect + mov [fat_start], ebx + movzx eax, byte [510h] ; num_fats + mul dword [524h] ; sect_fat + add eax, ebx +; cluster 2 begins from sector eax + movzx ebx, byte [50Dh] ; sects_per_clust + sub eax, ebx + sub eax, ebx + mov [data_start], eax +; parse image name + mov eax, [52Ch] ; root_cluster + mov [cur_obj], root_string +.parsedir: + push ax + mov si, [imgnameofs] + push si +@@: + lodsb + cmp al, 0 + jz @f + cmp al, '\' + jnz @b + dec si + mov [missing_slash], si + inc si +@@: + xchg ax, [esp+2] + mov byte [si-1], 0 + mov [imgnameofs], si + call fat32_parse_dir + call restore_slash + pop cx + test cl, cl + jz .end + test byte [di+0Bh], 10h + mov si, notdir_string + jz find_error_si + jmp .parsedir +.end: + test byte [di+0Bh], 10h + mov si, directory_string + jnz find_error_si +; parse FAT chunk +; runlist at 2000:0000 + mov di, 5 + push 2000h + pop es + mov byte [es:di-5], 1 ; of course, non-resident + mov dword [es:di-4], 1 + stosd +.parsefat: + push es + push ds + pop es + call next_cluster + pop es + jnc .done + mov ecx, [es:di-8] + add ecx, [es:di-4] + cmp eax, ecx + jz .contc + mov dword [es:di], 1 + scasd + stosd + jmp .parsefat +.contc: + inc dword [es:di-8] + jmp .parsefat +.done: + xor eax, eax + stosd + jmp read_img_file + +ntfs: + mov si, ntfs_msg + call out_string + movzx eax, word [50Bh] ; bpb_bytes_per_sect + push eax + movzx ebx, byte [50Dh] ; bpb_sects_per_clust + mul ebx + mov [cluster_size], eax + mov [data_start], 0 + mov ecx, [540h] ; frs_size + cmp cl, 0 + jg .1 + neg cl + xor eax, eax + inc eax + shl eax, cl + jmp .2 +.1: + mul ecx +.2: + mov [frs_size], eax + pop ebx + xor edx, edx + div ebx + mov [frs_sectors], ax +; read first MFT record - description of MFT itself + mov [cur_obj], mft_string + movzx eax, byte [50Dh] ; bpb_sects_per_clust + mul dword [530h] ; mft_cluster + mov cx, [frs_sectors] + mov bx, 4000h + mov di, bx + push bx + call relative_read + call restore_usa +; scan for unnamed $DATA attribute + pop di + mov ax, 80h ; $DATA + mov bx, 700h + call load_attr + mov si, nodata_string + jc find_error_si + mov [free], bx +; load kolibri.img +; parse image name + mov eax, 5 ; root cluster + mov [cur_obj], root_string +.parsedir: + push ax + mov si, [imgnameofs] + push si +@@: + lodsb + cmp al, 0 + jz @f + cmp al, '\' + jnz @b + dec si + mov [missing_slash], si + inc si +@@: + xchg ax, [esp+2] + mov byte [si-1], 0 + mov [imgnameofs], si + call ntfs_parse_dir + call restore_slash + pop cx + test cl, cl + jnz .parsedir +read_img_file: + xor si, si + push es + pop fs +; yes! Now read file to 0x100000 + lods byte [fs:si] + cmp al, 0 ; assume nonresident attr + mov si, invalid_read_request_string + jz find_error_si + mov si, 1 + xor edi, edi +; read buffer to 1000:0000 and move it to extended memory + push 1000h + pop es + xor bx, bx +.img_read_block: + lods dword [fs:si] ; eax=length + xchg eax, ecx + jecxz .img_read_done + lods dword [fs:si] ; eax=disk cluster +.img_read_cluster: + pushad +; read part of file + movzx ecx, byte [50Dh] + mul ecx + add eax, [data_start] + call relative_read +; move it to extended memory + mov ah, 87h + mov ecx, [cluster_size] + push ecx + shr cx, 1 + mov si, movedesc + push es + push ds + pop es + int 15h + pop es + test ah, ah + mov si, exmem_string + jnz find_error_si + pop ecx + add [dest_addr], ecx + popad + inc eax + loop .img_read_cluster + jmp .img_read_block +.img_read_done: +; kolibri.img loaded; now load kernel.mnt +load_kernel: + push ds + pop es + mov [cur_obj], kernel_mnt_name +; read boot sector + xor eax, eax + mov bx, 500h + mov cx, 1 + call read_img +; init vars + mov ax, [50Eh] ; reserved_sect + add ax, [51Ch] ; hidden + mov word [fat_start], ax + xchg ax, bx + movzx ax, byte [510h] ; num_fats + mul word [516h] ; fat_length + add ax, bx +; read root dir + mov bx, 700h + mov cx, [511h] ; dir_entries + add cx, 0Fh + shr cx, 4 + call read_img + add ax, cx + mov [img_data_start], ax + shl cx, 9 + mov di, bx + add bx, cx + mov byte [bx], 0 +.scan_loop: + cmp byte [di], 0 + mov si, notfound_string + jz find_error_si + mov si, kernel_mnt_name + call fat_compare_name + jz .found + and di, not 1Fh + add di, 20h + jmp .scan_loop +.found: + and di, not 1Fh + mov si, directory_string + test byte [di+0Bh], 10h + jnz find_error_si +; found, now load it to 1000h:0000h + mov ax, [di+1Ah] +; first cluster of kernel.mnt in ax +; translate it to sector on disk in kolibri.img + push ax + dec ax + dec ax + movzx cx, byte [50Dh] + mul cx + add ax, [img_data_start] +; now ax is sector in kolibri.img + mov [kernel_mnt_in_img], ax + div [sect_per_clust] +; now ax is cluster in kolibri.img and +; dx is offset from the beginning of cluster + movzx eax, ax + push 2000h + pop ds + mov si, 1 +.scani: + sub eax, [si] + jb .scanidone +; sanity check + cmp dword [si], 0 + push invalid_read_request_string + jz find_error_sp + pop cx +; next chunk + add si, 8 + jmp .scani +.scanidone: + add eax, [si] ; undo last subtract + add eax, [si+4] ; get cluster + push 0 + pop ds + movzx ecx, [sect_per_clust] + push dx + mul ecx ; get sector + pop dx + movzx edx, dx + add eax, edx + add eax, [data_start] + mov [kernel_mnt_1st], eax + pop ax + push 1000h + pop es +.read_loop: + push ax + xor bx, bx + call img_read_cluster + shl cx, 9-4 + mov ax, es + add ax, cx + mov es, ax + pop ax + call img_next_cluster + jc .read_loop + mov ax, 'KL' + mov si, loader_block + jmp 1000h:0000h + +img_next_cluster: + mov bx, 700h + push ax + shr ax, 1 + add ax, [esp] + mov dx, ax + shr ax, 9 + add ax, word [fat_start] + mov cx, 2 + push es + push ds + pop es + call read_img + pop es + and dx, 1FFh + add bx, dx + mov ax, [bx] + pop cx + test cx, 1 + jz .1 + shr ax, 4 +.1: + and ax, 0FFFh + mov si, bad_cluster_string + cmp ax, 0FF7h + jz find_error_si + ret +img_read_cluster: + dec ax + dec ax + movzx cx, byte [50Dh] ; sects_per_clust + mul cx + add ax, [img_data_start] + movzx eax, ax +; call read_img +; ret +read_img: +; in: ax = sector, es:bx->buffer, cx=length in sectors + pushad + movzx ebx, bx + mov si, movedesc + shl eax, 9 + add eax, 93100000h + mov dword [si+sou_addr-movedesc], eax + mov eax, 9300000h + mov ax, es + shl eax, 4 + add eax, ebx + mov [si+dest_addr-movedesc], eax + mov ah, 87h + shl cx, 8 ; mul 200h/2 + push es + push 0 + pop es + int 15h + pop es + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + popad + ret + +movedesc: + times 16 db 0 +; source + dw 0xFFFF ; segment length +sou_addr dw 0000h ; linear address + db 1 ; linear address + db 93h ; access rights + dw 0 +; destination + dw 0xFFFF ; segment length +dest_addr dd 93100000h ; high byte contains access rights + ; three low bytes contains linear address (updated when reading) + dw 0 + times 32 db 0 + +find_error_si: + push si +find_error_sp: + mov si, error_msg + call out_string + mov si, [cur_obj] + call out_string + mov si, colon + call out_string + pop si + call out_string + mov si, newline + call out_string + or [fat_cur_sector], -1 + mov [imgnameofs], kolibri_img_name + call restore_slash + mov sp, 0xFFFE + jmp next_partition + +file_not_found: + mov si, [esp+2] + mov [cur_obj], si + push notfound_string + jmp find_error_sp + +restore_slash: + mov si, [missing_slash] + test si, si + jz @f + and [missing_slash], 0 + mov byte [si], '\' +@@: ret + + include 'fat32.inc' + include 'ntfs.inc' + +write1st: +; callback from kernel.mnt +; write first sector of kernel.mnt from 1000:0000 back to disk + push cs + pop ds + push cs + pop es +; sanity check + mov bx, 500h + mov si, bx + mov cx, 1 + push cx + mov eax, [kernel_mnt_1st] + push eax + call relative_read + push 1000h + pop es + xor di, di + mov cx, 8 + repz cmpsw + mov si, data_error_msg + jnz find_error_si +; ok, now write back to disk + or byte [read.patch1+2], 1 + or byte [read.patch2+2], 1 + xor bx, bx + pop eax + pop cx + call relative_read + and byte [read.patch1+1], not 1 + and byte [read.patch2+2], not 2 +; and to image in memory (probably this may be done by kernel.mnt itself?) + mov dword [sou_addr], 93010000h + movzx eax, [kernel_mnt_in_img] + shl eax, 9 + add eax, 93100000h + mov dword [dest_addr], eax + mov si, movedesc + push ds + pop es + mov ah, 87h + mov cx, 100h + int 15h + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + retf + +loader_block: + db 1 ; version + dw 1 ; flags - image is loaded + dw write1st ; offset + dw 0 ; segment + +fat_cur_sector dd -1 +imgnameofs dw kolibri_img_name + +; ----------------------------------------------- +; ------------------ Settings ------------------- +; ----------------------------------------------- + +; must be in lowercase, see ntfs_parse_dir.scan, fat32_parse_dir.scan +kernel_mnt_name db 'kernel.mnt',0 +kolibri_img_name db 'kolibri.img',0 + +; change next variable if you want to boot from other physical drive +boot_drive db 80h + +total_kaput db 13,10,'Fatal: image is not found.',13,10,0 +missing_slash dw 0 + align 2 + +cur_partition_ofs dw 0xF1BE +extended_part_start dd 0 +extended_part_cur dd 0 +extended_parent dd 0 + +; uninitialized data follows +drive_size dd ? ; in sectors +heads dw ? +sectors dw ? +cyls dw ? +partition_start dd ? +free dw ? +cur_obj dw ? +data_start dd ? +img_data_start dw ? +sect_per_clust dw ? +kernel_mnt_in_img dw ? +kernel_mnt_1st dd ? +; NTFS data +cluster_size dd ? ; in bytes +frs_size dd ? ; in bytes +frs_sectors dw ? ; in sectors +mft_data_attr dw ? +index_root dw ? +index_alloc dw ? +ofs dw ? +dir dw ? +; FAT32 data +fat_start dd ? +cur_cluster dd ? +; file must be 16 sectors long + + repeat 0F000h - $ + db 2 + end repeat diff --git a/programs/hd_load/mtldr/ntfs.inc b/programs/hd_load/mtldr/ntfs.inc new file mode 100644 index 0000000000..1b38f5478f --- /dev/null +++ b/programs/hd_load/mtldr/ntfs.inc @@ -0,0 +1,531 @@ +restore_usa: +; Update Sequence Array restore + mov bx, [di+4] + mov cx, [di+6] + inc bx + add bx, di + inc bx + add di, 1feh + dec cx +@@: + mov ax, [bx] + stosw + inc bx + inc bx + add di, 1feh + loop @b + ret + +find_attr: +; in: di->file record, ax=attribute +; out: di->attribute or di=0 if not found + add di, [di+14h] +.1: +; attributes codes are formally dwords, but all they fit in word + cmp word [di], -1 + jz .notfound + cmp word [di], ax + jnz .continue +; for $DATA attribute, scan only unnamed + cmp ax, 80h + jnz .found + cmp byte [di+9], 0 + jz .found +.continue: + add di, [di+4] + jmp .1 +.notfound: + xor di, di +.found: + ret + +process_mcb_nonres: +; in: si->attribute, es:di->buffer +; out: di->buffer end + add si, [si+20h] + xor ebx, ebx +.loop: + lodsb + test al, al + jz .done + push invalid_read_request_string + movzx cx, al + shr cx, 4 + jz find_error_sp + xchg ax, dx + and dx, 0Fh + jz find_error_sp + add si, cx + add si, dx + pop ax + push si + dec si + movsx eax, byte [si] + dec cx + jz .l1e +.l1: + dec si + shl eax, 8 + mov al, [si] + loop .l1 +.l1e: + xchg ebp, eax + dec si + movsx eax, byte [si] + mov cx, dx + dec cx + jz .l2e +.l2: + dec si + shl eax, 8 + mov al, byte [si] + loop .l2 +.l2e: + pop si + add ebx, ebp +; eax=length, ebx=disk block + stosd + mov eax, ebx + stosd + jmp .loop +.done: + xor eax, eax + stosd + ret + +load_attr: +; in: ax=attribute, es:bx->buffer, di->base record +; out: bx->buffer end; CF set if not found + push di + push ax + mov byte [es:bx], 1 + inc bx + push bx + mov [ofs], bx +; scan for attrubute + add di, [di+14h] +@@: + call find_attr.1 + test di, di + jz .notfound1 + cmp byte [di+8], 0 + jnz .nonresident + jmp .resident +.aux_resident: + push di + popad +; resident attribute +.resident: + mov si, di + pop di + dec di + mov al, 0 + stosb + mov ax, [si+10h] + stosw + xchg ax, cx + add si, [si+14h] + rep movsb + mov bx, di + pop ax + pop di + ret +.nonresident: +; nonresident attribute + cmp dword [di+10h], 0 + jnz @b +; read start of data + mov si, di + pop di + call process_mcb_nonres + sub di, 4 + push di +.notfound1: +; $ATTRIBUTE_LIST is always in base file record + cmp word [esp+2], 20h + jz .nofragmented +; scan for $ATTRIBUTE_LIST = 20h + mov di, [esp+4] + mov ax, 20h + call find_attr + test di, di + jz .nofragmented +; load $ATTRIBUTE_LIST itself + push es + mov bx, 0C000h + mov di, [esp+6] + push bx + push [ofs] + push ds + pop es + call load_attr + pop [ofs] + pop si + mov bx, 8000h + push bx + push si + call read_attr_full + pop si + pop bx + add dx, bx + mov ax, [esp+4] + pop es +.1: + cmp [bx], ax + jnz .continue1 +; only unnamed $DATA attributes! + cmp ax, 80h + jnz @f + cmp byte [bx+6], 0 + jnz .continue1 +@@: + cmp dword [bx+10h], 0 + jz .continue1 + cmp dword [bx+8], 0 + jnz @f + push ax + mov ax, [esp+2] + cmp ax, [ofs] + pop ax + jnz .continue1 +@@: + pushad + mov eax, [bx+10h] + mov bx, dx + push [ofs] + push es + push ds + pop es + call read_file_record + pop es + pop [ofs] + popad + pushad + pop di + mov di, dx + add di, [di+14h] +.2: + call find_attr.1 + cmp byte [di+8], 0 + jz .aux_resident + mov eax, [bx+8] + cmp eax, [di+10h] + jnz .2 + mov si, di + mov di, [esp+1Eh] + call process_mcb_nonres + sub di, 4 + mov [esp+1Eh], di + push di + popad +.continue1: + add bx, [bx+4] + cmp bx, dx + jb .1 +.nofragmented: + pop bx + pop ax + pop di + cmp bx, [ofs] + jnz @f + dec bx + stc + ret +@@: + add bx, 4 + ret + +read_attr_full: +; in: si->decoded attribute data, bx->buffer +; out: edx=length in bytes + lodsb + cmp al, 0 + jnz .nonresident +; resident + lodsw + movzx edx, ax + xchg ax, cx + mov di, bx + rep movsb + ret +.nonresident: +; nonresident :-) + xor edx, edx +.loop: + lodsd + xchg ecx, eax + jecxz .loopend + lodsd + xchg edi, eax +; read ecx clusters from cluster edi to es:bx +.intloop: + push ecx +; read 1 cluster from physical cluster edi to es:bx + mov ecx, [cluster_size] + mov eax, edi + mul ecx + push bx + call relative_read + pop bx + pop ecx + inc edi + mov eax, [cluster_size] + add edx, eax + shr eax, 4 + mov bp, es + add bp, ax + mov es, bp + loop .intloop + jmp .loop +.loopend: + mov es, cx + ret + +read_file_record: +; in: eax=index of record, bx=buffer + mov si, 700h + mov ecx, [frs_size] + mul ecx + push bx + push [cur_obj] + mov [cur_obj], mft_string + call read_attr + pop [cur_obj] + pop di + call restore_usa + ret +read_attr: +; in: edx:eax=offset in bytes, ecx=size in bytes, bx=buffer, si=attribute + push invalid_read_request_string + cmp byte [si], 0 + jnz .nonresident + test edx, edx + jnz find_error_sp + cmp eax, 10000h + jae find_error_sp + cmp ecx, 10000h + jae find_error_sp + cmp ax, [si+2] + jae find_error_sp + cmp cx, [si+2] + ja find_error_sp + add si, 3 + add si, ax + mov di, bx + rep movsb + pop ax + ret +.nonresident: + mov edi, [cluster_size] + div edi + mov [ofs], dx + add cx, dx + push eax + xchg eax, ecx + xor edx, edx + dec eax + div edi + inc eax + xchg eax, ecx + pop eax + add si, 1 + xor edx, edx + push bx +; eax=offset in clusters, ecx=size in clusters +.scan: + mov ebx, [si] + test ebx, ebx + jz .notfound + add edx, ebx + add si, 8 + cmp eax, edx + jae .scan + mov edi, [si-4] +; now edx=end of block, ebx=length of block, edi=start of block on disk +; eax=required offset, ecx=required length + push edx + push edi + sub edx, eax + add edi, ebx + sub edi, edx + cmp edx, ecx + jb @f + mov edx, ecx +@@: +; read (edx) clusters from (edi=disk offset in clusters) to ([esp+8]) + cmp [ofs], 0 + jnz .ofs_read +.cont: + pushad + movzx ebx, byte [50Dh] +; xchg eax, edx +; mul ebx + xchg ax, dx + mul bx + xchg cx, ax + xchg eax, edi + mul ebx + mov bx, [esp+8+20h] + call relative_read + mov [esp+8+20h], bx + popad +.cont2: + add eax, edx + sub ecx, edx +.cont3: + pop edi + pop edx + jnz .scan + pop bx + pop ax + ret +.ofs_read: + push ecx + movzx ecx, byte [50Dh] ; bpb_sects_per_clust + mov eax, edi + push edx + mul ecx + push 1000h + pop es + xor bx, bx + call relative_read + mov cx, bx + push si + push di + mov si, [ofs] + mov di, [esp+8+12] + sub cx, si + push ds + push es + pop ds + pop es + rep movsb + mov [esp+8+12], di + push es + pop ds + pop di + pop si + pop edx + pop ecx + inc edi + mov [ofs], 0 + inc eax + dec ecx + jz .cont3 + dec edx + jnz .cont + jmp .cont2 +.notfound: + mov si, invalid_read_request_string + jmp find_error_si + +ntfs_parse_dir: +; in: eax=directory iRecord, [word sp+2]=filename +; out: si=$DATA attribute of file + mov bx, [free] + mov [dir], bx + push bx + call read_file_record + mov ax, word [frs_size] + add [free], ax + pop di +; find attributes $INDEX_ROOT, $INDEX_ALLOCATION, $BITMAP + mov ax, 90h ; $INDEX_ROOT + push di + mov bx, [free] + mov [index_root], bx + call load_attr + mov si, noindex_string + jc find_error_si + mov [free], bx + pop di + mov ax, 0A0h ; $INDEX_ALLOCATION + mov bx, [free] + mov [index_alloc], bx + call load_attr + jnc @f + mov [index_alloc], 0 +@@: + mov [free], bx +; search for entry + mov si, [index_root] + mov bx, [free] + call read_attr_full + mov ebp, [bx+8] ; subnode_size + add bx, 10h +.scan_record: + add bx, [bx] +.scan: + test byte [bx+0Ch], 2 + jnz .not_found + mov si, [esp+2] + movzx cx, byte [bx+50h] ; namelen + lea di, [bx+52h] ; name + xor ax, ax +@@: + lodsb + cmp al, 'a' + jb .notletter + cmp al, 'z' + ja .notletter + or byte [di], 20h +.notletter: + scasw + loopz @b + jb .not_found + ja @f + cmp byte [esi], 0 + jz .file_found +@@: + add bx, [bx+8] + jmp .scan +.not_found: + test byte [bx+0Ch], 1 + jz file_not_found + cmp [index_alloc], 0 + jz file_not_found + add bx, [bx+8] + mov eax, [bx-8] + mul [cluster_size] + mov si, [index_alloc] + mov ecx, ebp + mov bx, [free] + call read_attr + mov di, [free] + call restore_usa + mov bx, [free] + add bx, 18h + jmp .scan_record +.file_found: + mov si, [esp+2] + mov [cur_obj], si + cmp byte [esp+4], 0 + jz .need_file + mov si, notdir_string + test byte [bx+48h+3], 10h + jz find_error_si + mov eax, [bx] + mov bx, [dir] + mov [free], bx + ret 2 +.need_file: + mov si, directory_string + test byte [bx+48h+3], 10h ; directory? + jnz find_error_si +; read entry + mov eax, [bx] + mov bx, [dir] + mov [free], bx + mov bx, 4000h + push bx + call read_file_record + pop di + mov ax, 80h + push 2000h + pop es + xor bx, bx + call load_attr + mov si, nodata_string + jz find_error_si + mov [free], bx + ret 2 diff --git a/programs/hd_load/mtldr/vista_install.bat b/programs/hd_load/mtldr/vista_install.bat new file mode 100644 index 0000000000..b2fd812410 --- /dev/null +++ b/programs/hd_load/mtldr/vista_install.bat @@ -0,0 +1,4 @@ +bcdedit /create {AA48ABEF-FF35-4f09-874F-4CFF92467DC4} /d "KolibriOS" /application BOOTSECTOR +bcdedit /set {AA48ABEF-FF35-4f09-874F-4CFF92467DC4} DEVICE PARTITION=C: +bcdedit /set {AA48ABEF-FF35-4f09-874F-4CFF92467DC4} PATH \mtldr +bcdedit /displayorder {AA48ABEF-FF35-4f09-874F-4CFF92467DC4} /addlast \ No newline at end of file diff --git a/programs/hd_load/mtldr/vista_remove.bat b/programs/hd_load/mtldr/vista_remove.bat new file mode 100644 index 0000000000..dc9464484e --- /dev/null +++ b/programs/hd_load/mtldr/vista_remove.bat @@ -0,0 +1 @@ +bcdedit /delete {AA48ABEF-FF35-4f09-874F-4CFF92467DC4} \ No newline at end of file diff --git a/programs/hd_load/mtldr_install/compile.bat b/programs/hd_load/mtldr_install/compile.bat new file mode 100644 index 0000000000..c84690ebd3 --- /dev/null +++ b/programs/hd_load/mtldr_install/compile.bat @@ -0,0 +1 @@ +fasm mtldr_install.asm \ No newline at end of file diff --git a/programs/hd_load/mtldr_install/mtldr_code/compile.bat b/programs/hd_load/mtldr_install/mtldr_code/compile.bat new file mode 100644 index 0000000000..7a72cad097 --- /dev/null +++ b/programs/hd_load/mtldr_install/mtldr_code/compile.bat @@ -0,0 +1 @@ +fasm mtldr.asm ..\mtldr_for_installer diff --git a/programs/hd_load/mtldr_install/mtldr_code/fat32.inc b/programs/hd_load/mtldr_install/mtldr_code/fat32.inc new file mode 100644 index 0000000000..197c6260db --- /dev/null +++ b/programs/hd_load/mtldr_install/mtldr_code/fat32.inc @@ -0,0 +1,112 @@ +fat32_parse_dir: +; in: eax=directory cluster +; out: eax=entry cluster + mov bx, 900h + mov di, bx + push eax + call read_cluster + mov cx, word [cluster_size] + shr cx, 5 ; div 20h +.scan_cluster: + pop eax + cmp byte [di], 0 + jz file_not_found + mov si, [esp+2] + push eax + call fat_compare_name + jz .file_found + and di, not 1Fh + add di, 20h + loop .scan_cluster + pop eax + call next_cluster + jnc file_not_found + jc fat32_parse_dir +.file_found: + pop eax + mov si, [esp+2] + mov [cur_obj], si + and di, not 1Fh + mov si, directory_string + mov ax, [di+14h] + shl eax, 10h + mov ax, [di+1Ah] + test eax, eax + mov si, nodata_string + jz find_error_si + ret 2 + +fat_compare_name: + push cx + mov cx, 9 +.scan: + lodsb + cmp al, '.' + jz .ext + cmp al, 0 + jz .nameend + cmp al, 'a' + jb .notletter + cmp al, 'z' + ja .notletter + or byte [di], 20h +.notletter: + scasb + loopz .scan +.notfound: + inc cx ; to clear ZF flag + pop cx + ret +.ext: + mov al, ' ' + dec cx + repz scasb + jnz .notfound + test di, 1 + jnz .notfound + mov cx, 4 + jmp .scan +.nameend: + mov al, ' ' + dec cx + repz scasb + jnz .notfound + test di, 1 + jnz .file_found + mov cx, 3 + repz scasb + jnz .notfound +.file_found: + xor cx, cx ; to set ZF flag + pop cx + ret + +read_cluster: +; in: eax=cluster,bx->buffer + and eax, 0FFFFFFFh + movzx ecx, byte [50Dh] ; sects_per_clust + mul ecx + add eax, [data_start] +; call read +; ret + jmp relative_read +next_cluster: + mov bx, 700h +; sector is 200h bytes long, one entry in FAT occupies 4 bytes => 80h entries in sector + push eax + shr eax, 7 ; div 80h + cmp eax, [fat_cur_sector] + jz @f + mov [fat_cur_sector], eax + add eax, [fat_start] + mov cx, 1 + call relative_read +@@: + pop eax + and eax, 7Fh + mov eax, [700h+eax*4] + and eax, 0FFFFFFFh + cmp eax, 0FFFFFF7h + mov si, bad_cluster_string + jz find_error_si + ret diff --git a/programs/hd_load/mtldr_install/mtldr_code/mtldr.asm b/programs/hd_load/mtldr_install/mtldr_code/mtldr.asm new file mode 100644 index 0000000000..805089d34a --- /dev/null +++ b/programs/hd_load/mtldr_install/mtldr_code/mtldr.asm @@ -0,0 +1,786 @@ +; KolibriOS bootloader +; this code has been written by diamond in 2005,2006 specially for KolibriOS + +; this code is loaded by ntldr to 0D00:0000 +; and by io.sys from config.sys to xxxx:0100 +; and by bootmgr in vista to 0000:7C00 + format binary + use16 + + org 0xD000 + +; entry point for 9x booting + call @f +; db 'd' xor 'i' xor 'a' xor 'm' xor 'o' xor 'n' xor 'd' + db 'NTFS' + +; file offset +7 +; may be changed by installator +boot_drive db 80h +partition_start dd -1 +imgnameofs dw menuet_img_name + +@@: + pop si + sub si, 3 + cmp si, 7C00h + jz boot_vista + mov si, load_question + 100h - 0D000h + call out_string + mov si, answer + 100h - 0D000h +xxy: mov ah, 0 + int 16h + or al, 20h + mov [si], al + cmp al, 'y' + jz xxz + cmp al, 'n' + jnz xxy +; continue load Windows +; call out_string +; ret +out_string: + lodsb + test al, al + jz .xxx + mov ah, 0Eh + mov bx, 7 + int 10h + jmp out_string +.xxx: ret +xxz: +; boot KolibriOS + call out_string + push 0 + pop ds + mov word [4], new01handler + 100h - 0D000h + mov [6], cs + pushf + pop ax + or ah, 1 + push ax + popf +; int 19h +; pushf ; there will be no iret + call far [19h*4] +xxt: +; TF has been cleared when entered new01handler +; pushf +; pop ax +; and ah, not 1 +; push ax +; popf + push 0 + pop ds + cmp word [8*4+2], 0F000h + jz @f + les bx, [8*4] + mov eax, [es:bx+1] + mov [8*4], eax +@@: + mov si, 100h +boot_vista: + xor di, di + push cs + pop ds + push 0D00h + pop es + mov cx, 2000h/2 + rep movsw + jmp 0D00h:0256h + +new01handler: +; [sp]=ip, [sp+2]=cs, [sp+4]=flags + push bp + mov bp, sp + push bx + push ds + lds bx, [bp+2] + cmp word [bx], 19cdh + jz xxt + pop ds + pop bx + pop bp + iret + +relative_read: + add eax, [partition_start] + +; read from hard disk +; drive_size must be already initialized +; in: eax = absolute sector +; cx = number of sectors +; es:bx -> buffer +read: + pushad + cmp eax, [drive_size] + jb .old_style + xor dx, dx +; new style - LBA, function 42 + cmp [has_lba], dl + jz disk_error +; allocate disk address packet on the stack +; qword +8: absolute block number + push dx + push dx +; push dword 0 ; dword +C is high dword + push eax ; dword +8 is low dword +; dword +4: buffer address + push es ; word +6 is segment + push bx ; word +4 is offset +; word +2: number of blocks = 1 + push 1 +; word +0: size of packet = 10h + push 10h +; now pair ss:sp contain address of disk address packet +.patch1: + mov ax, 4200h + mov dl, [boot_drive] + mov si, sp + push ds + push ss + pop ds + int 13h + pop ds + lea sp, [si+10h] +.end: + popad + jc disk_error + add bx, 200h + inc eax + dec cx + jnz read + ret +.old_style: +; old style - CHS, function 2 +; convert absolute sector in eax to cylinder-head-sector coordinates +; calculate sector + xor edx, edx + movzx ecx, [sectors] + div ecx +; sectors are counted from 1 + inc dl + mov cl, dl ; low 6 bits of cl = sector number +; calculate head number +; shld edx, eax, 10h ; convert eax to dx:ax + push eax + pop ax + pop dx + div [heads] + mov dh, dl ; dh = head + mov ch, al ; ch = low 8 bits of cylinder + shl ah, 6 + or cl, ah ; high 2 bits of cl = high 2 bits of cylinder +.patch2: + mov ax, 201h ; function 2, al=1 - number of sectors + mov dl, [boot_drive] + int 13h + jmp .end + +disk_error: + mov si, disk_error_msg + call out_string + jmp $ + +answer db ? + db 13,10 +has_lba db 0 + +disk_error_msg db 'Disk read error!',0 +start_msg db 2,' KolibriOS bootloader, running on ',0 +errfs_msg db 'unknown filesystem, cannot continue',0 +fat16_msg db 'FAT12/FAT16 - unsupported',13,10,0 +fat32_msg db 'FAT32',13,10,0 +ntfs_msg db 'NTFS',13,10,0 +error_msg db 'Error' +colon db ': ',0 +mft_string db 'MFT',0 +root_string db '\',0 +noindex_string db '$INDEX_ROOT not found',0 +invalid_read_request_string db 'cannot read attribute',0 +nodata_string db '$DATA ' +notfound_string db 'not found',0 +directory_string db 'is a directory',0 +notdir_string db 'not a directory',0 +fragmented_string db 'too fragmented file',0 +bad_cluster_string db 'bad cluster',0 +exmem_string db 'extended memory error',0 + +load_question db 'Load KolibriOS? [y/n]: ',0 + + repeat 0D256h - $ + db 1 + end repeat + +start: + xor ax, ax + mov ds, ax + mov es, ax +; our stack is 4Kb-2b!!! (0xFFE) + mov ss, ax + mov esp, 0FFFEh + cld + sti +; calculate drive size + mov dl, [boot_drive] + mov ah, 8 ; 8 = get drive parameters + int 13h +; now: CF is set on error; +; ch = low 8 bits of maximum cylinder number +; cl : low 6 bits makes maximum sector number, high 2 bits are high 2 bits of maximum cylinder number +; dh = maximum head number + jnc @f + mov cx, -1 + mov dh, cl +@@: + movzx ax, dh + inc ax +; ax = number of heads + mov [heads], ax + mov dl, cl + and dx, 3Fh +; dx = number of sectors +; (note that sectors are counted from 1, and maximum sector number = number of sectors) + mov [sectors], dx + mul dx + xchg cl, ch + shr ch, 6 + inc cx +; cx = number of cylinders + mov [cyls], cx + mul cx + mov word [drive_size], ax + mov word [drive_size+2], dx +; this drive supports LBA? + mov dl, [boot_drive] + mov ah, 41h + mov bx, 55AAh + int 13h + jc .no_lba + cmp bx, 0AA55h + jnz .no_lba + test cl, 1 + jz .no_lba + inc [has_lba] +.no_lba: +; say hi to user + mov si, start_msg + call out_string + mov eax, [partition_start] + cmp eax, -1 + jnz @f +; now read first sector to determine file system type +; first sector of disk is MBR sector + xor eax, eax + mov cx, 1 + mov bx, 500h + call read + mov eax, [6C6h] ; first disk + mov [partition_start], eax +@@: + mov cx, 1 + mov bx, 500h + call read + movzx ax, byte [50Dh] + mov [sect_per_clust], ax +; determine file system + cmp dword [536h], 'FAT1' + jz fat1x + cmp dword [552h], 'FAT3' + jz fat32 + cmp dword [503h], 'NTFS' + jz ntfs +; mov si, errfs_msg ; already is + call out_string + jmp $ +fat1x: + mov si, fat16_msg + call out_string + jmp $ +fat32: + mov si, fat32_msg + call out_string + movzx eax, word [50Bh] ; bytes_per_sect + movzx ebx, byte [50Dh] ; sects_per_clust + mul ebx + mov [cluster_size], eax + movzx ebx, word [50Eh] ; reserved_sect + mov [fat_start], ebx + movzx eax, byte [510h] ; num_fats + mul dword [524h] ; sect_fat + add eax, ebx +; cluster 2 begins from sector eax + movzx ebx, byte [50Dh] ; sects_per_clust + sub eax, ebx + sub eax, ebx + mov [data_start], eax +; parse image name + mov eax, [52Ch] ; root_cluster + mov [cur_obj], root_string +.parsedir: + push ax + mov si, [imgnameofs] + push si +@@: + lodsb + cmp al, '\' + jz @f + cmp al, 0 + jnz @b +@@: + xchg ax, [esp+2] + mov byte [si-1], 0 + mov [imgnameofs], si + call fat32_parse_dir + pop cx + test cl, cl + jz .end + test byte [di+0Bh], 10h + mov si, notdir_string + jz find_error_si + jmp .parsedir +.end: + test byte [di+0Bh], 10h + mov si, directory_string + jnz find_error_si +; parse FAT chunk +; runlist at 2000:0000 + mov di, 5 + push 2000h + pop es + mov byte [es:di-5], 1 ; of course, non-resident + mov dword [es:di-4], 1 + stosd +.parsefat: + push es + push ds + pop es + call next_cluster + pop es + jnc .done + mov ecx, [es:di-8] + add ecx, [es:di-4] + cmp eax, ecx + jz .contc + mov dword [es:di], 1 + scasd + stosd + jmp .parsefat +.contc: + inc dword [es:di-8] + jmp .parsefat +.done: + xor eax, eax + stosd + jmp read_img_file + +ntfs: + mov si, ntfs_msg + call out_string + movzx eax, word [50Bh] ; bpb_bytes_per_sect + push eax + movzx ebx, byte [50Dh] ; bpb_sects_per_clust + mul ebx + mov [cluster_size], eax + mov [data_start], 0 + mov ecx, [540h] ; frs_size + cmp cl, 0 + jg .1 + neg cl + xor eax, eax + inc eax + shl eax, cl + jmp .2 +.1: + mul ecx +.2: + mov [frs_size], eax + pop ebx + xor edx, edx + div ebx + mov [frs_sectors], ax +; read first MFT record - description of MFT itself + mov [cur_obj], mft_string + movzx eax, byte [50Dh] ; bpb_sects_per_clust + mul dword [530h] ; mft_cluster + mov cx, [frs_sectors] + mov bx, 4000h + mov di, bx + push bx + call relative_read + call restore_usa +; scan for unnamed $DATA attribute + pop di + mov ax, 80h ; $DATA + mov bx, 700h + call load_attr + mov si, nodata_string + jc find_error_si + mov [free], bx +; load menuet.img +; parse image name + mov eax, 5 ; root cluster + mov [cur_obj], root_string +.parsedir: + push ax + mov si, [imgnameofs] + push si +@@: + lodsb + cmp al, '\' + jz @f + cmp al, 0 + jnz @b +@@: + xchg ax, [esp+2] + mov byte [si-1], 0 + mov [imgnameofs], si + call ntfs_parse_dir + pop cx + test cl, cl + jnz .parsedir +read_img_file: + xor si, si + push es + pop fs +; yes! Now read file to 0x100000 + lods byte [fs:si] + cmp al, 0 ; assume nonresident attr + mov si, invalid_read_request_string + jz find_error_si + mov si, 1 + xor edi, edi +; read buffer to 1000:0000 and move it to extended memory + push 1000h + pop es + xor bx, bx +.img_read_block: + lods dword [fs:si] ; eax=length + xchg eax, ecx + jecxz .img_read_done + lods dword [fs:si] ; eax=disk cluster +.img_read_cluster: + pushad +; read part of file + movzx ecx, byte [50Dh] + mul ecx + add eax, [data_start] + call relative_read +; move it to extended memory + mov ah, 87h + mov ecx, [cluster_size] + push ecx + shr cx, 1 + mov si, movedesc + push es + push ds + pop es + int 15h + pop es + test ah, ah + mov si, exmem_string + jnz find_error_si + pop ecx + add [dest_addr], ecx + popad + inc eax + loop .img_read_cluster + jmp .img_read_block +.img_read_done: +; menuet.img loaded; now load kernel.mnt +load_kernel: + push ds + pop es + mov [cur_obj], kernel_mnt_name +; read boot sector + xor eax, eax + mov bx, 500h + mov cx, 1 + call read_img +; init vars + mov ax, [50Eh] ; reserved_sect + add ax, [51Ch] ; hidden + mov word [fat_start], ax + xchg ax, bx + movzx ax, byte [510h] ; num_fats + mul word [516h] ; fat_length + add ax, bx +; read root dir + mov bx, 700h + mov cx, [511h] ; dir_entries + add cx, 0Fh + shr cx, 4 + call read_img + add ax, cx + mov [img_data_start], ax + shl cx, 9 + mov di, bx + add bx, cx + mov byte [bx], 0 +.scan_loop: + cmp byte [di], 0 + mov si, notfound_string + jz find_error_si + mov si, kernel_mnt_name + call fat_compare_name + jz .found + and di, not 1Fh + add di, 20h + jmp .scan_loop +.found: + and di, not 1Fh + mov si, directory_string + test byte [di+0Bh], 10h + jnz find_error_si +; found, now load it to 1000h:0000h + mov ax, [di+1Ah] +; first cluster of kernel.mnt in ax +; translate it to sector on disk in menuet.img + push ax + dec ax + dec ax + movzx cx, byte [50Dh] + mul cx + add ax, [img_data_start] +; now ax is sector in menuet.img + mov [kernel_mnt_in_img], ax + div [sect_per_clust] +; now ax is cluster in menuet.img and +; dx is offset from the beginning of cluster + movzx eax, ax + push 2000h + pop ds + mov si, 1 +.scani: + sub eax, [si] + jb .scanidone +; sanity check + cmp dword [si], 0 + push invalid_read_request_string + jz find_error_sp + pop cx +; next chunk + add si, 8 + jmp .scani +.scanidone: + add eax, [si] ; undo last subtract + add eax, [si+4] ; get cluster + push 0 + pop ds + movzx ecx, [sect_per_clust] + push dx + mul ecx ; get sector + pop dx + movzx edx, dx + add eax, edx + add eax, [data_start] + mov [kernel_mnt_1st], eax + pop ax + push 1000h + pop es +.read_loop: + push ax + xor bx, bx + call img_read_cluster + shl cx, 9-4 + mov ax, es + add ax, cx + mov es, ax + pop ax + call img_next_cluster + jc .read_loop + mov ax, 'KL' + mov si, loader_block + jmp 1000h:0000h + +img_next_cluster: + mov bx, 700h + push ax + shr ax, 1 + add ax, [esp] + mov dx, ax + shr ax, 9 + add ax, word [fat_start] + mov cx, 2 + push es + push ds + pop es + call read_img + pop es + and dx, 1FFh + add bx, dx + mov ax, [bx] + pop cx + test cx, 1 + jz .1 + shr ax, 4 +.1: + and ax, 0FFFh + mov si, bad_cluster_string + cmp ax, 0FF7h + jz find_error_si + ret +img_read_cluster: + dec ax + dec ax + movzx cx, byte [50Dh] ; sects_per_clust + mul cx + add ax, [img_data_start] + movzx eax, ax +; call read_img +; ret +read_img: +; in: ax = sector, es:bx->buffer, cx=length in sectors + pushad + movzx ebx, bx + mov si, movedesc + shl eax, 9 + add eax, 93100000h + mov dword [si+sou_addr-movedesc], eax + mov eax, 9300000h + mov ax, es + shl eax, 4 + add eax, ebx + mov [si+dest_addr-movedesc], eax + mov ah, 87h + shl cx, 8 ; mul 200h/2 + push es + push 0 + pop es + int 15h + pop es + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + popad + ret + +movedesc: + times 16 db 0 +; source + dw 0xFFFF ; segment length +sou_addr dw 0000h ; linear address + db 1 ; linear address + db 93h ; access rights + dw 0 +; destination + dw 0xFFFF ; segment length +dest_addr dd 93100000h ; high byte contains access rights + ; three low bytes contains linear address (updated when reading) + dw 0 + times 32 db 0 + +find_error_si: + push si +find_error_sp: + mov si, error_msg + call out_string + mov si, [cur_obj] + call out_string + mov si, colon + call out_string + pop si + call out_string + jmp $ + +file_not_found: + mov si, [esp+2] + mov [cur_obj], si + push notfound_string + jmp find_error_sp + + include 'fat32.inc' + include 'ntfs.inc' + +write1st: +; callback from kernel.mnt +; write first sector of kernel.mnt from 1000:0000 back to disk + push cs + pop ds + push cs + pop es +; sanity check + mov bx, 500h + mov si, bx + mov cx, 1 + push cx + mov eax, [kernel_mnt_1st] + push eax + call relative_read + push 1000h + pop es + xor di, di + mov cx, 8 + repz cmpsw + mov si, data_error_msg + jnz find_error_si +; ok, now write back to disk + or byte [read.patch1+2], 1 + or byte [read.patch2+2], 1 + xor bx, bx + pop eax + pop cx + call relative_read + and byte [read.patch1+1], not 1 + and byte [read.patch2+2], not 2 +; and to image in memory (probably this may be done by kernel.mnt itself?) + mov dword [sou_addr], 93010000h + movzx eax, [kernel_mnt_in_img] + shl eax, 9 + add eax, 93100000h + mov dword [dest_addr], eax + mov si, movedesc + push ds + pop es + mov ah, 87h + mov cx, 100h + int 15h + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + retf + +loader_block: + db 1 ; version + dw 1 ; flags - image is loaded + dw write1st ; offset + dw 0 ; segment + +fat_cur_sector dd -1 + +data_error_msg db 'data error',0 + +; ----------------------------------------------- +; ------------------ Settings ------------------- +; ----------------------------------------------- + +; must be in lowercase, see ntfs_parse_dir.scan, fat32_parse_dir.scan +kernel_mnt_name db 'kernel.mnt',0 + +; will be initialized by installer +menuet_img_name rb 300 + +; uninitialized data follows +drive_size dd ? ; in sectors +heads dw ? +sectors dw ? +cyls dw ? +free dw ? +cur_obj dw ? +data_start dd ? +img_data_start dw ? +sect_per_clust dw ? +kernel_mnt_in_img dw ? +kernel_mnt_1st dd ? +; NTFS data +cluster_size dd ? ; in bytes +frs_size dd ? ; in bytes +frs_sectors dw ? ; in sectors +mft_data_attr dw ? +index_root dw ? +index_alloc dw ? +ofs dw ? +dir dw ? +; FAT32 data +fat_start dd ? +cur_cluster dd ? diff --git a/programs/hd_load/mtldr_install/mtldr_code/ntfs.inc b/programs/hd_load/mtldr_install/mtldr_code/ntfs.inc new file mode 100644 index 0000000000..1b38f5478f --- /dev/null +++ b/programs/hd_load/mtldr_install/mtldr_code/ntfs.inc @@ -0,0 +1,531 @@ +restore_usa: +; Update Sequence Array restore + mov bx, [di+4] + mov cx, [di+6] + inc bx + add bx, di + inc bx + add di, 1feh + dec cx +@@: + mov ax, [bx] + stosw + inc bx + inc bx + add di, 1feh + loop @b + ret + +find_attr: +; in: di->file record, ax=attribute +; out: di->attribute or di=0 if not found + add di, [di+14h] +.1: +; attributes codes are formally dwords, but all they fit in word + cmp word [di], -1 + jz .notfound + cmp word [di], ax + jnz .continue +; for $DATA attribute, scan only unnamed + cmp ax, 80h + jnz .found + cmp byte [di+9], 0 + jz .found +.continue: + add di, [di+4] + jmp .1 +.notfound: + xor di, di +.found: + ret + +process_mcb_nonres: +; in: si->attribute, es:di->buffer +; out: di->buffer end + add si, [si+20h] + xor ebx, ebx +.loop: + lodsb + test al, al + jz .done + push invalid_read_request_string + movzx cx, al + shr cx, 4 + jz find_error_sp + xchg ax, dx + and dx, 0Fh + jz find_error_sp + add si, cx + add si, dx + pop ax + push si + dec si + movsx eax, byte [si] + dec cx + jz .l1e +.l1: + dec si + shl eax, 8 + mov al, [si] + loop .l1 +.l1e: + xchg ebp, eax + dec si + movsx eax, byte [si] + mov cx, dx + dec cx + jz .l2e +.l2: + dec si + shl eax, 8 + mov al, byte [si] + loop .l2 +.l2e: + pop si + add ebx, ebp +; eax=length, ebx=disk block + stosd + mov eax, ebx + stosd + jmp .loop +.done: + xor eax, eax + stosd + ret + +load_attr: +; in: ax=attribute, es:bx->buffer, di->base record +; out: bx->buffer end; CF set if not found + push di + push ax + mov byte [es:bx], 1 + inc bx + push bx + mov [ofs], bx +; scan for attrubute + add di, [di+14h] +@@: + call find_attr.1 + test di, di + jz .notfound1 + cmp byte [di+8], 0 + jnz .nonresident + jmp .resident +.aux_resident: + push di + popad +; resident attribute +.resident: + mov si, di + pop di + dec di + mov al, 0 + stosb + mov ax, [si+10h] + stosw + xchg ax, cx + add si, [si+14h] + rep movsb + mov bx, di + pop ax + pop di + ret +.nonresident: +; nonresident attribute + cmp dword [di+10h], 0 + jnz @b +; read start of data + mov si, di + pop di + call process_mcb_nonres + sub di, 4 + push di +.notfound1: +; $ATTRIBUTE_LIST is always in base file record + cmp word [esp+2], 20h + jz .nofragmented +; scan for $ATTRIBUTE_LIST = 20h + mov di, [esp+4] + mov ax, 20h + call find_attr + test di, di + jz .nofragmented +; load $ATTRIBUTE_LIST itself + push es + mov bx, 0C000h + mov di, [esp+6] + push bx + push [ofs] + push ds + pop es + call load_attr + pop [ofs] + pop si + mov bx, 8000h + push bx + push si + call read_attr_full + pop si + pop bx + add dx, bx + mov ax, [esp+4] + pop es +.1: + cmp [bx], ax + jnz .continue1 +; only unnamed $DATA attributes! + cmp ax, 80h + jnz @f + cmp byte [bx+6], 0 + jnz .continue1 +@@: + cmp dword [bx+10h], 0 + jz .continue1 + cmp dword [bx+8], 0 + jnz @f + push ax + mov ax, [esp+2] + cmp ax, [ofs] + pop ax + jnz .continue1 +@@: + pushad + mov eax, [bx+10h] + mov bx, dx + push [ofs] + push es + push ds + pop es + call read_file_record + pop es + pop [ofs] + popad + pushad + pop di + mov di, dx + add di, [di+14h] +.2: + call find_attr.1 + cmp byte [di+8], 0 + jz .aux_resident + mov eax, [bx+8] + cmp eax, [di+10h] + jnz .2 + mov si, di + mov di, [esp+1Eh] + call process_mcb_nonres + sub di, 4 + mov [esp+1Eh], di + push di + popad +.continue1: + add bx, [bx+4] + cmp bx, dx + jb .1 +.nofragmented: + pop bx + pop ax + pop di + cmp bx, [ofs] + jnz @f + dec bx + stc + ret +@@: + add bx, 4 + ret + +read_attr_full: +; in: si->decoded attribute data, bx->buffer +; out: edx=length in bytes + lodsb + cmp al, 0 + jnz .nonresident +; resident + lodsw + movzx edx, ax + xchg ax, cx + mov di, bx + rep movsb + ret +.nonresident: +; nonresident :-) + xor edx, edx +.loop: + lodsd + xchg ecx, eax + jecxz .loopend + lodsd + xchg edi, eax +; read ecx clusters from cluster edi to es:bx +.intloop: + push ecx +; read 1 cluster from physical cluster edi to es:bx + mov ecx, [cluster_size] + mov eax, edi + mul ecx + push bx + call relative_read + pop bx + pop ecx + inc edi + mov eax, [cluster_size] + add edx, eax + shr eax, 4 + mov bp, es + add bp, ax + mov es, bp + loop .intloop + jmp .loop +.loopend: + mov es, cx + ret + +read_file_record: +; in: eax=index of record, bx=buffer + mov si, 700h + mov ecx, [frs_size] + mul ecx + push bx + push [cur_obj] + mov [cur_obj], mft_string + call read_attr + pop [cur_obj] + pop di + call restore_usa + ret +read_attr: +; in: edx:eax=offset in bytes, ecx=size in bytes, bx=buffer, si=attribute + push invalid_read_request_string + cmp byte [si], 0 + jnz .nonresident + test edx, edx + jnz find_error_sp + cmp eax, 10000h + jae find_error_sp + cmp ecx, 10000h + jae find_error_sp + cmp ax, [si+2] + jae find_error_sp + cmp cx, [si+2] + ja find_error_sp + add si, 3 + add si, ax + mov di, bx + rep movsb + pop ax + ret +.nonresident: + mov edi, [cluster_size] + div edi + mov [ofs], dx + add cx, dx + push eax + xchg eax, ecx + xor edx, edx + dec eax + div edi + inc eax + xchg eax, ecx + pop eax + add si, 1 + xor edx, edx + push bx +; eax=offset in clusters, ecx=size in clusters +.scan: + mov ebx, [si] + test ebx, ebx + jz .notfound + add edx, ebx + add si, 8 + cmp eax, edx + jae .scan + mov edi, [si-4] +; now edx=end of block, ebx=length of block, edi=start of block on disk +; eax=required offset, ecx=required length + push edx + push edi + sub edx, eax + add edi, ebx + sub edi, edx + cmp edx, ecx + jb @f + mov edx, ecx +@@: +; read (edx) clusters from (edi=disk offset in clusters) to ([esp+8]) + cmp [ofs], 0 + jnz .ofs_read +.cont: + pushad + movzx ebx, byte [50Dh] +; xchg eax, edx +; mul ebx + xchg ax, dx + mul bx + xchg cx, ax + xchg eax, edi + mul ebx + mov bx, [esp+8+20h] + call relative_read + mov [esp+8+20h], bx + popad +.cont2: + add eax, edx + sub ecx, edx +.cont3: + pop edi + pop edx + jnz .scan + pop bx + pop ax + ret +.ofs_read: + push ecx + movzx ecx, byte [50Dh] ; bpb_sects_per_clust + mov eax, edi + push edx + mul ecx + push 1000h + pop es + xor bx, bx + call relative_read + mov cx, bx + push si + push di + mov si, [ofs] + mov di, [esp+8+12] + sub cx, si + push ds + push es + pop ds + pop es + rep movsb + mov [esp+8+12], di + push es + pop ds + pop di + pop si + pop edx + pop ecx + inc edi + mov [ofs], 0 + inc eax + dec ecx + jz .cont3 + dec edx + jnz .cont + jmp .cont2 +.notfound: + mov si, invalid_read_request_string + jmp find_error_si + +ntfs_parse_dir: +; in: eax=directory iRecord, [word sp+2]=filename +; out: si=$DATA attribute of file + mov bx, [free] + mov [dir], bx + push bx + call read_file_record + mov ax, word [frs_size] + add [free], ax + pop di +; find attributes $INDEX_ROOT, $INDEX_ALLOCATION, $BITMAP + mov ax, 90h ; $INDEX_ROOT + push di + mov bx, [free] + mov [index_root], bx + call load_attr + mov si, noindex_string + jc find_error_si + mov [free], bx + pop di + mov ax, 0A0h ; $INDEX_ALLOCATION + mov bx, [free] + mov [index_alloc], bx + call load_attr + jnc @f + mov [index_alloc], 0 +@@: + mov [free], bx +; search for entry + mov si, [index_root] + mov bx, [free] + call read_attr_full + mov ebp, [bx+8] ; subnode_size + add bx, 10h +.scan_record: + add bx, [bx] +.scan: + test byte [bx+0Ch], 2 + jnz .not_found + mov si, [esp+2] + movzx cx, byte [bx+50h] ; namelen + lea di, [bx+52h] ; name + xor ax, ax +@@: + lodsb + cmp al, 'a' + jb .notletter + cmp al, 'z' + ja .notletter + or byte [di], 20h +.notletter: + scasw + loopz @b + jb .not_found + ja @f + cmp byte [esi], 0 + jz .file_found +@@: + add bx, [bx+8] + jmp .scan +.not_found: + test byte [bx+0Ch], 1 + jz file_not_found + cmp [index_alloc], 0 + jz file_not_found + add bx, [bx+8] + mov eax, [bx-8] + mul [cluster_size] + mov si, [index_alloc] + mov ecx, ebp + mov bx, [free] + call read_attr + mov di, [free] + call restore_usa + mov bx, [free] + add bx, 18h + jmp .scan_record +.file_found: + mov si, [esp+2] + mov [cur_obj], si + cmp byte [esp+4], 0 + jz .need_file + mov si, notdir_string + test byte [bx+48h+3], 10h + jz find_error_si + mov eax, [bx] + mov bx, [dir] + mov [free], bx + ret 2 +.need_file: + mov si, directory_string + test byte [bx+48h+3], 10h ; directory? + jnz find_error_si +; read entry + mov eax, [bx] + mov bx, [dir] + mov [free], bx + mov bx, 4000h + push bx + call read_file_record + pop di + mov ax, 80h + push 2000h + pop es + xor bx, bx + call load_attr + mov si, nodata_string + jz find_error_si + mov [free], bx + ret 2 diff --git a/programs/hd_load/mtldr_install/mtldr_install.asm b/programs/hd_load/mtldr_install/mtldr_install.asm new file mode 100644 index 0000000000..1412f85429 --- /dev/null +++ b/programs/hd_load/mtldr_install/mtldr_install.asm @@ -0,0 +1,1426 @@ + format PE GUI 4.0 +section '.text' code readable executable +entry start +start: + xor ebx, ebx + push ofn + call [GetOpenFileNameA] + test eax, eax + jnz @f + push ebx + call [ExitProcess] +@@: + call [GetVersion] + test eax, eax + sets [b9x] + js install_9x + mov [img_name+2], bl + push ebx + push ebx + push 3 + push ebx + push 3 + push 80000000h + push dn + call [CreateFileA] + inc eax + jnz @f +norights: + push 10h + push ebx + push norightsmsg +mbx: + push ebx + call [MessageBoxA] + push ebx + call [ExitProcess] +@@: + lea esi, [eax-1] + push ebx + push tmp + push 12 + push sdn + push ebx + push ebx + push 0x2D1080 + push esi + call [DeviceIoControl] + test eax, eax + jnz @f +cnr: + push esi + call [CloseHandle] + jmp norights +@@: + push ebx + push tmp + push 20h + push pi + push ebx + push ebx + push 0x74004 + push esi + call [DeviceIoControl] + test eax, eax + jz cnr + push esi + call [CloseHandle] + cmp [sdn], 7 + jz @f + push 10h + push 0 + push nohd + jmp mbx +@@: + mov al, byte [sdn+4] + or al, 80h + mov [mtldr_code+7], al + mov eax, [pi] + mov edx, [pi+4] + shrd eax, edx, 9 + shr edx, 9 + jz @f +m1e: push 10h + push ebx + push m1 + jmp mbx +@@: +install_cmn: + mov [mtldr_code+8], eax + mov esi, img_name + mov edi, img_real_name + mov byte [esi+2], '\' + push 256 + push edi + push esi + call [GetShortPathNameA] + cmp eax, 256 + jb @f + push 10h + push ebx + push ptl + jmp mbx +@@: + test eax, eax + jnz @f + push esi edi + mov ecx, 256/4 + rep movsd + pop edi esi +@@: + cmp byte [edi], 0 + jz lcd + cmp byte [edi], 'A' + jb lcc + cmp byte [edi], 'Z' + ja lcc + add byte [edi], 20h +lcc: + inc edi + jmp @b +lcd: + mov esi, img_real_name + cmp [b9x], 0 + jnz @f + cmp byte [esi], 'c' + jnz notc +@@: + push 256/4 + pop ecx + lea edi, [esi+ecx*4] + rep movsd + mov edi, esi + xor eax, eax + or ecx, -1 + repnz scasb + dec edi + std + mov al, '\' + repnz scasb + cld + inc edi + inc edi + mov eax, 'mtld' + stosd + mov al, 'r' + stosb + jmp cmn +notc: + mov dword [mtldr_name], 'C:\m' + mov dword [mtldr_name+4], 'tldr' + mov edi, mtldr_name+8 +cmn: + and word [edi], 0 +mf: + push mtldr_name + call [GetFileAttributesA] + inc eax + jnz @f + call [GetLastError] + cmp eax, 2 + jz fo +@@: + cmp byte [edi], 0 + jnz @f + mov byte [edi], '0' + jmp mf +@@: + cmp byte [edi], '9' + jae @f +mfi: + inc byte [edi] + jmp mf +@@: + ja @f + mov byte [edi], 'A' + jmp mf +@@: + cmp byte [edi], 'Z' + jb mfi +nomx: push 10h + push ebx + push nom + jmp mbx +fo: + cmp [b9x], 0 + jnz install_9x_2 + call write_mtldr1 + push ecx + call [GetVersion] + pop ecx + cmp al, 6 + jae install_vista + mov al, 2 + mov edi, tmp_data + neg ecx + add ecx, 2000h - mtldr_code_size + push ebx + push tmp + push ecx + push edi + push esi + rep stosb + call [WriteFile] + push esi + call [CloseHandle] + push bootini + mov edi, systitle+1 + mov esi, ostitle + mov byte [edi-1], '"' +@@: + lodsb + test al, al + jz @f + stosb + jmp @b +@@: + mov word [edi], '"' + push bootini + call [GetFileAttributesA] + push eax + and al, not 1 + push eax + push bootini + call [SetFileAttributesA] + push bootini + push systitle + push mtldr_name + push mtldr_name + push mtldr_name + call [CharToOemA] + push osstr + call [WritePrivateProfileStringA] + xchg eax, [esp] + push eax + push bootini + call [SetFileAttributesA] + pop eax + test eax, eax + jnz suci +; failed, delete written mtldr + call delete_mtldr + push 10h + push ebx + push insterr + jmp mbx +suci: + push 40h + push suct + push succ + jmp mbx + +install_9x: + mov al, [img_name] + or al, 20h + sub al, 'a'-1 + mov byte [regs], al + push ebx + push ebx + push 3 + push ebx + push 3 + push 80000000h + push vwin32 + call [CreateFileA] + inc eax + jz norights + dec eax + xchg eax, esi + push ebx + push tmp + push 28 + push regs + push 28 + push regs + push 1 + push esi + call [DeviceIoControl] + push eax + push esi + call [CloseHandle] + pop eax + test eax, eax +@@: jz norights + mov al, [diskinfobuf+3] + cmp al, 0xFF + jz @b + cmp al, 80h + jb norights + mov [mtldr_code+7], al + cmp dword [diskinfobuf+12], 0 + jnz m1e + mov eax, [diskinfobuf+8] + jmp install_cmn + +install_9x_2: + push ebx + push ebx + push 3 + push ebx + push 1 + push 80000000h + push config + call [CreateFileA] + inc eax + jnz @f +ie2: + push 10h + push ebx + push insterr2 + jmp mbx +@@: + dec eax + xchg eax, esi + push ebx + push esi + call [GetFileSize] + inc eax + jz ie2 + dec eax + xchg eax, ebp + push 4 + push 1000h + push ebp + push ebx + call [VirtualAlloc] + xchg eax, edi + test edi, edi + jz ie2 + push ebx + push tmp + push ebp + push edi + push esi + call [ReadFile] + push esi + call [CloseHandle] + push ebx + push 80h + push 2 + push ebx + push ebx + push 40000000h + push config + call [CreateFileA] + inc eax + jz ie2 + dec eax + xchg eax, esi + mov eax, dword [edi] + or eax, 0x20202000 + cmp eax, '[men' + jz menu + push ostitle + call [lstrlenA] + cmp eax, 17 + ja bt1 + push esi edi + mov esi, ostitle + mov edi, mtldr_code+23Ah + mov ecx, eax + rep movsb + mov dword [edi], '? [y' + mov dword [edi+4], '/n]:' + mov word [edi+8], ' ' + pop edi esi + jmp ct1 +bt1: + push img_real_name+3 + call [lstrlenA] + add eax, mtldr_code_size+1+100h + mov word [mtldr_code+0x19], ax +ct1: + push ebx + push tmp + push 8 + push install + push esi + call [WriteFile] +cfgd: + mov eax, mtldr_name + push eax + push eax + push eax + call [CharToOemA] + call [lstrlenA] + push ebx + push tmp + push eax + push mtldr_name + push esi + call [WriteFile] + push ebx + push tmp + push 2 + push newline + push esi + call [WriteFile] + push ebx + push tmp + push ebp + push edi + push esi + call [WriteFile] + push esi + call [CloseHandle] + call write_mtldr1 + push ostitle + call [lstrlenA] + cmp eax, 11 + jbe @f + push ebx + push tmp + push ld2sz + push ld2 + push esi + push ebx + push tmp + push eax + push ostitle + push esi + push ebx + push tmp + push ld1sz + push ld1 + push esi + call [WriteFile] + call [WriteFile] + call [WriteFile] +@@: + push esi + call [CloseHandle] + jmp suci +menu: + push edi + or ecx, -1 +mes: + mov al, 0xA + repnz scasb + cmp byte [edi], '[' + jz med + cmp dword [edi], 'menu' + jnz mes + cmp dword [edi+4], 'item' + jnz mes + cmp byte [edi+8], '=' + jnz mes + mov eax, [edi+9] + or eax, ' ' + cmp eax, 'koli' + jnz mes + mov eax, [edi+13] + and eax, 0xFFFFFF + or eax, ' ' + cmp eax, 'bri' + jnz mes + movzx eax, byte [edi+16] + or al, 0x20 + mov [menuitems+eax], 1 + jmp mes +med: + cmp word [edi-4], 0x0A0D + jnz @f + dec edi + dec edi + jmp med +@@: + sub edi, [esp] + push ebx + push tmp + push edi + push dword [esp+12] + push esi + call [WriteFile] + add [esp], edi + sub ebp, edi + mov ecx, 7 + cmp [menuitems+0x20], 0 + jnz @f + cmp [menuitems+','], 0 + jz mef +@@: + mov eax, '0' +mel1: + cmp [menuitems+eax], 0 + jz med1 + inc eax + cmp al, '9'+1 + jb mel1 + jnz @f + mov al, 'a' + jmp mel1 +@@: + cmp al, 'z' + jbe mel1 + push ebx + push tmp + push ebp + push dword [esp+12] + push esi + call [WriteFile] + push esi + call [CloseHandle] + jmp nomx +med1: + mov [menuitem+7], al + mov ecx, 8 +mef: + push ebx + push tmp + push ecx + push menuitem + push esi + push ebx + push tmp + push ecx + push menuitem + push esi + push ebx + push tmp + push 9 + push mis + push esi + call [WriteFile] + call [WriteFile] + push ebx + push tmp + push title9xsz + push title9x + push esi + call [WriteFile] + push ebx + push tmp + push ostitle + call [lstrlenA] + push eax + push ostitle + push esi + call [WriteFile] + push ebx + push tmp + push title9x2sz + push title9x2 + push esi + call [WriteFile] + call [WriteFile] + push ebx + push tmp + push 11 + push sec9x2 + push esi + call [WriteFile] + mov byte [mtldr_code+1], 37h + pop edi + jmp cfgd + +install_vista: + push esi + call [CloseHandle] + mov edi, sbn + call adjust_privilege + mov edi, srn + call adjust_privilege + push ebx + push ebx + call [CoInitializeEx] + test eax, eax + js we + push ebx + push ebx + push ebx + push 3 + push ebx + push ebx + push ebx + push -1 + push ebx + call [CoInitializeSecurity] + test eax, eax + jns @f +we2: + call [CoUninitialize] +we: + call delete_mtldr + push 10h + push ebx + push wmierr + jmp mbx +@@: + push ebx + push esp + push IID_IWbemLocator + push 1 + push ebx + push CLSID_WbemLocator + call [CoCreateInstance] + pop edi + test eax, eax + js we2 + push ebx + push esp + push ebx + push ebx + push ebx + push ebx + push ebx + push ebx + push ns + push edi + mov esi, [edi] + call dword [esi+12] + push eax + push edi + call dword [esi+8] + pop eax + pop edi + test eax, eax + js we2 + push ebx + push ebx + push 3 + push 3 + push ebx + push ebx + push 10 + push edi + call [CoSetProxyBlanket] + test eax, eax + jns @f +we3: + mov eax, [edi] + push edi + call dword [eax+8] + jmp we2 +@@: + xor esi, esi + push osp + push osn + push bs + call call_method + test eax, eax + js we3 + mov esi, guid + mov ebp, menuitems + push esi + call [CoCreateGuid] + push 2000h/2 + push ebp + push esi + call [StringFromGUID2] + mov esi, [varout+8] + push con + push bs + call call_method + jns @f +wecei: + mov ebp, coerr +wece: + mov eax, [esi] + push esi + call dword [eax+8] + mov eax, [edi] + push edi + call dword [eax+8] + call [CoUninitialize] + call delete_mtldr + push 10h + push ebx + push ebp + jmp mbx +@@: + pop eax + push esi + push eax + mov ebp, tmp_data + mov dword [vartmpstr+8], ebp + mov dword [vari32+8], 0x12000004 + push 2000h/2 + push ebp + push -1 + push ostitle + push ebx + push ebx + call [MultiByteToWideChar] + mov esi, [varout+8] + push ssen + push bo + call call_method + mov ebp, setproperr + js wece2 + sub dword [esp], 24 + mov byte [vari32+8], 2 + push 2000h/2 + push tmp_data + push -1 + push mtldr_name+2 + push ebx + push ebx + call [MultiByteToWideChar] + push ssen + push bo + call call_method + js wece2 + mov dword [vari32+8], 0x11000001 + mov ecx, tmp_data + mov dword [ecx], '\' + ('?' shl 16) + mov dword [ecx+4], '?' + ('\' shl 16) + xor eax, eax + mov dword [ecx+12], eax + mov al, [mtldr_name+1] + shl eax, 16 + mov al, [mtldr_name] + mov dword [ecx+8], eax + push spden + push bo + call call_method + js wece2 + mov eax, [esi] + push esi + call dword [eax+8] + pop eax + pop esi + push eax + push oon + push bs + call call_method + mov ebp, orerr + js wece3 + pop eax + push esi + push eax + mov esi, [varout+8] + mov dword [vari32+8], 0x24000001 + push gen + push bo + call call_method + js wece2 + push esi + mov esi, [varout+8] + push ebx + push ebx + push varout + push ebx + push idsn + mov eax, [esi] + push esi + call dword [eax+16] + push eax + mov eax, [esi] + push esi + call dword [eax+8] + pop eax + pop esi + test eax, eax + js wece2 + push esi + cmp word [varout], 2008h + jnz wece4 + mov esi, [varout+8] + cmp word [esi], 1 + jnz wece4 + push dword [esi+20] + mov eax, [esi+16] + inc eax + push eax + push esp + push esi + call [SafeArrayRedim] + pop ecx + pop ecx + test eax, eax + js wece4 + push menuitems + call [SysAllocString] + test eax, eax + jz wece4 + push eax + mov ecx, [esi+16] + add ecx, [esi+20] + dec ecx + push ecx + mov ecx, esp + push eax + push ecx + push esi + call [SafeArrayPutElement] + pop ecx + call [SysFreeString] + pop esi + push solen + push bo + call call_method + js wece2 + push varout + call [VariantClear] + mov eax, [esi] + push esi + call dword [eax+8] + pop eax + pop esi + mov eax, [esi] + push esi + call dword [eax+8] + mov eax, [edi] + push edi + call dword [eax+8] + call [CoUninitialize] + jmp suci +wece4: + pop esi +wece2: + mov eax, [esi] + push esi + call dword [eax+8] + pop eax + pop esi + push eax +wece3: + mov dword [vartmpstr+8], menuitems + pop eax + push dop + push don + push bs + call call_method + pop eax + jmp wece + +write_mtldr1: + push ebx + push 80h + push 2 + push ebx + push ebx + push 40000000h + push mtldr_name + call [CreateFileA] + inc eax + jnz @f + push 10h + push ebx + push noc + jmp mbx +@@: + dec eax + xchg eax, esi + push ebx + push tmp + push mtldr_code_size + push mtldr_code + push esi + call [WriteFile] + push img_real_name + push img_real_name + call [CharToOemA] + mov edi, img_real_name+3 + push edi + call [lstrlenA] + inc eax + push eax + push ebx + push tmp + push eax + push edi + push esi + call [WriteFile] + pop ecx + ret +delete_mtldr: + push mtldr_name + push mtldr_name + push mtldr_name + call [OemToCharA] + call [DeleteFileA] + ret + +adjust_privilege: + cmp [advapi32], 0 + jnz @f + push advapi32_name + call [LoadLibraryA] + mov [advapi32], eax + mov esi, eax + test esi, esi + jz ape + push opts + push esi + call [GetProcAddress] + mov [OpenProcessToken], eax + test eax, eax + jz ape + push lpvs + push esi + call [GetProcAddress] + mov [LookupPrivilegeValueA], eax + test eax, eax + jz ape + push atps + push esi + call [GetProcAddress] + mov [AdjustTokenPrivileges], eax + test eax, eax + jz ape +@@: + push ebx + push esp + push 28h + call [GetCurrentProcess] + push eax + call [OpenProcessToken] + test eax, eax + pop esi + jz ape + push 2 + push ebx + push ebx + mov eax, esp + push 1 + push eax + push edi + push ebx + call [LookupPrivilegeValueA] + test eax, eax + jz ape2 + mov eax, esp + push ebx + push ebx + push ebx + push eax + push ebx + push esi + call [AdjustTokenPrivileges] + test eax, eax + jz ape2 + add esp, 10h + push esi + call [CloseHandle] + ret +ape2: + add esp, 10h + push esi + call [CloseHandle] +ape: + push 10h + push ebx + push apf + jmp mbx + +call_method: + push ebx + mov eax, esp + push ebx + push eax + push ebx + push ebx + push dword [eax+8] + mov eax, [edi] + push edi + call dword [eax+24] + xchg edi, [esp] + test eax, eax + js r + push ebx + mov eax, esp + push ebx + push eax + push ebx + push dword [eax+16] + mov eax, [edi] + push edi + call dword [eax+76] + push eax + mov eax, [edi] + push edi + call dword [eax+8] + pop eax + pop edi + test eax, eax + js r + push ebx + push esp + push ebx + mov eax, [edi] + push edi + call dword [eax+60] + push eax + mov eax, [edi] + push edi + call dword [eax+8] + pop eax + pop edi + test eax, eax + js r +cml1: + mov eax, [esp+16] + add dword [esp+16], 8 + cmp dword [eax], 0 + jz cme1 + push ebx + push dword [eax+4] + push ebx + push dword [eax] + mov eax, [edi] + push edi + call dword [eax+20] + test eax, eax + js r2 + jmp cml1 +cme1: + and dword [varout], 0 + mov ecx, [esp+8] + test esi, esi + jz cms + push ebx + push ebx + push varout + push ebx + push rpn + mov eax, [esi] + push esi + call dword [eax+16] + test eax, eax + js r2 + cmp word [varout], 8 + jnz r2 + mov ecx, [varout+8] +cms: + pop edx + push edx + push ebx + mov eax, esp + push ebx + push eax + push edi + push ebx + push ebx + push dword [eax+16] + push ecx + mov eax, [edx] + push edx + call dword [eax+96] + push eax + mov eax, [edi] + push edi + call dword [eax+8] + push varout + call [VariantClear] + pop eax + pop edi + test eax, eax + js r + push ebx + push ebx + push varout + push ebx + push retvaln + mov eax, [edi] + push edi + call dword [eax+16] + test eax, eax + js r2 + mov eax, 80000000h + cmp word [varout], 11 + jnz r2 + cmp word [varout+8], 0 + jz r2 + mov eax, [esp+16] + mov eax, [eax-4] + test eax, eax + jz r2 + push ebx + push ebx + push varout + push ebx + push eax + mov eax, [edi] + push edi + call dword [eax+16] + test eax, eax + js r2 + cmp word [varout], 13 + setnz al + shl eax, 31 +r2: + push eax + mov eax, [edi] + push edi + call dword [eax+8] + pop eax +r: + pop edi + test eax, eax + ret 8 + +ofn_hook: + cmp dword [esp+8], 2 + jnz @f + push 260 + push ostitle + push 23 + push dword [esp+12+4] + call [GetDlgItemTextA] +@@: + xor eax, eax + ret 10h + +section '.data' data readable writable +data resource from 'rsrc.res' +end data + + align 4 +ofn: + dd 76 + dd 0 + dd ofn_title_template + dd filter + dd 0 + dd 0 + dd 0 + dd img_name + dd 100h + dd 0 + dd 0 + dd 0 + dd ofn_title + dd 818A4h + dd 0 + dd aImg + dd 0 + dd ofn_hook + dd 0 +ofn_title_template: + dw 1,-1 + dd 0 + dd 0 + dd 56000444h + dw 2 + dw 0,0,275,28 + dw 0,0,0 + dw 8 + dd 0 + du 'MS Sans Serif',0 + align 4 + dd 0 + dd 0 + dd 50010000h + dw 5,12,45,9 + dw -1 + dw 0 + dw -1,82h + du 'Title:',0 + dw 0 + align 4 + dd 0 + dd 204h + dd 50010080h + dw 54,10,218,12 + dw 23 + dw 0 + dw -1,81h + du 'KolibriOS',0 + dw 0 + +filter db 'Image files (*.img)',0,'*.img',0,'All files',0,'*.*',0,0 +ofn_title db 'Select KolibriOS image file',0 +aImg db 'img',0 +norightsmsg db 'Cannot query drive info.',10 + db 'Probably it is invalid drive or you are not administrator',0 +nohd db 'Image must be on hard disk!',0 +m1 db 'Please mail to diamondz@land.ru',0 +nom db "Too many mtldr's found!",0 +noc db 'Cannot create mtldr file!',0 +osstr db 'operating systems',0 +bootini db 'c:\boot.ini',0 +insterr db 'Cannot write to boot.ini. Probably you are not administrator.',0 +insterr2 db 'Cannot open config.sys',0 +ptl db 'Path is too long',0 +succ db 'Installation successful!',0 +suct db 'Success',0 +vwin32 db '\\.\vwin32',0 +config db 'C:\config.sys',0 +sec9x2 db ']',13,10 +install db 'install=' +newline db 13,10 +menuitem db 'kolibri',0 +mis db 'menuitem=' +title9x db ',Load ' +title9xsz = $ - title9x +title9x2 db 13,10,13,10,'[' +title9x2sz = $ - title9x2 +ld1 db 'Load ' +ld1sz = $ - ld1 +ld2 db '? [y/n]: ',0 +ld2sz = $ - ld2 +apf db 'Cannot adjust backup and restore privileges',0 +opts db 'OpenProcessToken',0 +lpvs db 'LookupPrivilegeValueA',0 +atps db 'AdjustTokenPrivileges',0 +sbn db 'SeBackupPrivilege',0 +srn db 'SeRestorePrivilege',0 +wmierr db 'BCD WMI API: initialization error',0 +coerr db 'Cannot create BCD object for KolibriOS loader',0 +setproperr db 'Cannot create BCD element in object for KolibriOS loader',0 +orerr db 'Cannot add KolibriOS loader in BCD display list',0 +ns du 'root\wmi',0 +retvaln du 'ReturnValue' +emptystr du 0 +rpn du '__Relpath',0 +bs du 'BcdStore',0 +bo du 'BcdObject',0 +osn du 'OpenStore',0 +con du 'CreateObject',0 +don du 'DeleteObject',0 +oon du 'OpenObject',0 +ssen du 'SetStringElement',0 +spden du 'SetPartitionDeviceElement',0 +gen du 'GetElement',0 +solen du 'SetObjectListElement',0 +fn du 'File',0 +storen du 'Store',0 +idn du 'Id',0 +idsn du 'Ids',0 +tn du 'Type',0 +obn du 'Object',0 +sn du 'String',0 +dtn du 'DeviceType',0 +aon du 'AdditionalOptions',0 +pn du 'Path',0 +en du 'Element',0 +bg du '{9dea862c-5cdd-4e70-acc1-f32b344d4795}',0 + +align 4 +advapi32 dd 0 + +regs: + dd 0 + dd diskinfobuf + dd 86Fh + dd 440Dh + dd 0 + dd 0 + dd 1 + +diskinfobuf: + db 10h,0,0,0FFh + times 0Ch db 0 + +IID_IWbemLocator: + dd 0DC12A687h + dw 737Fh + dw 11CFh + db 88h, 4Dh, 00h, 0AAh, 00h, 4Bh, 2Eh, 24h +CLSID_WbemLocator: + dd 4590F811h + dw 1D3Ah + dw 11D0h + db 89h, 1Fh, 00h, 0AAh, 00h, 4Bh, 2Eh, 24h +IID_IWbemClassObject: + dd 0DC12A681h + dw 737Fh + dw 11CFh + db 88h, 4Dh, 00h, 0AAh, 00h, 4Bh, 2Eh, 24h +varemptystr: + dd 8, 0, emptystr, 0 +vartmpstr: + dd 8, 0, menuitems, 0 +varbootmgr: + dd 8, 0, bg, 0 +vari32: + dd 3, 0, 10400008h, 0 +vari32_pd: + dd 3, 0, 2, 0 +osp: + dd fn, varemptystr + dd 0, storen + dd idn, vartmpstr + dd tn, vari32 + dd 0, obn + dd tn, vari32 + dd sn, vartmpstr + dd 0, 0 + dd tn, vari32 + dd dtn, vari32_pd + dd aon, varemptystr + dd pn, vartmpstr + dd 0, 0 + dd idn, varbootmgr + dd 0, obn + dd tn, vari32 + dd 0, en + dd tn, vari32 + dd idsn, varout + dd 0, 0 + +dop: + dd idn, vartmpstr + dd 0, 0 + +data import +macro thunk a +{a#_thunk:dw 0 +db `a,0} + dd 0,0,0, rva kernel32_name, rva kernel32_thunks + dd 0,0,0, rva user32_name, rva user32_thunks + dd 0,0,0, rva comdlg32_name, rva comdlg32_thunks + dd 0,0,0, rva ole32_name, rva ole32_thunks + dd 0,0,0, rva oleaut32_name, rva oleaut32_thunks + dd 0,0,0,0,0 +kernel32_name db 'kernel32.dll',0 +user32_name db 'user32.dll',0 +advapi32_name db 'advapi32.dll',0 +comdlg32_name db 'comdlg32.dll',0 +ole32_name db 'ole32.dll',0 +oleaut32_name db 'oleaut32.dll',0 + +kernel32_thunks: +GetVersion dd rva GetVersion_thunk +CreateFileA dd rva CreateFileA_thunk +DeviceIoControl dd rva DeviceIoControl_thunk +CloseHandle dd rva CloseHandle_thunk +GetFileAttributesA dd rva GetFileAttributesA_thunk +SetFileAttributesA dd rva SetFileAttributesA_thunk +GetLastError dd rva GetLastError_thunk +ReadFile dd rva ReadFile_thunk +WriteFile dd rva WriteFile_thunk +ExitProcess dd rva ExitProcess_thunk +WritePrivateProfileStringA dd rva WritePrivateProfileStringA_thunk +GetShortPathNameA dd rva GetShortPathNameA_thunk +lstrlenA dd rva lstrlenA_thunk +VirtualAlloc dd rva VirtualAlloc_thunk +GetFileSize dd rva GetFileSize_thunk +DeleteFileA dd rva DeleteFileA_thunk +MultiByteToWideChar dd rva MultiByteToWideChar_thunk +GetCurrentProcess dd rva GetCurrentProcess_thunk +LoadLibraryA dd rva LoadLibraryA_thunk +GetProcAddress dd rva GetProcAddress_thunk + dw 0 +thunk GetVersion +thunk CreateFileA +thunk DeviceIoControl +thunk CloseHandle +thunk GetFileAttributesA +thunk SetFileAttributesA +thunk GetLastError +thunk ReadFile +thunk WriteFile +thunk ExitProcess +thunk WritePrivateProfileStringA +thunk GetShortPathNameA +thunk lstrlenA +thunk VirtualAlloc +thunk GetFileSize +thunk DeleteFileA +thunk MultiByteToWideChar +thunk GetCurrentProcess +thunk LoadLibraryA +thunk GetProcAddress + +user32_thunks: +MessageBoxA dd rva MessageBoxA_thunk +CharToOemA dd rva CharToOemA_thunk +OemToCharA dd rva OemToCharA_thunk +GetDlgItemTextA dd rva GetDlgItemTextA_thunk + dw 0 +thunk MessageBoxA +thunk CharToOemA +thunk OemToCharA +thunk GetDlgItemTextA + +comdlg32_thunks: +GetOpenFileNameA dd rva GetOpenFileNameA_thunk + dw 0 +thunk GetOpenFileNameA + +ole32_thunks: +CoInitializeEx dd rva CoInitializeEx_thunk +CoUninitialize dd rva CoUninitialize_thunk +CoInitializeSecurity dd rva CoInitializeSecurity_thunk +CoCreateInstance dd rva CoCreateInstance_thunk +CoSetProxyBlanket dd rva CoSetProxyBlanket_thunk +CoCreateGuid dd rva CoCreateGuid_thunk +StringFromGUID2 dd rva StringFromGUID2_thunk + dw 0 +thunk CoInitializeEx +thunk CoUninitialize +thunk CoInitializeSecurity +thunk CoCreateInstance +thunk CoSetProxyBlanket +thunk CoCreateGuid +thunk StringFromGUID2 + +oleaut32_thunks: +VariantClear dd rva VariantClear_thunk +SafeArrayRedim dd rva SafeArrayRedim_thunk +SafeArrayPutElement dd rva SafeArrayPutElement_thunk +SysAllocString dd rva SysAllocString_thunk +SysFreeString dd rva SysFreeString_thunk + dw 0 +thunk VariantClear +thunk SafeArrayRedim +thunk SafeArrayPutElement +thunk SysAllocString +thunk SysFreeString +end data + +mtldr_code: + file 'mtldr_for_installer' +mtldr_code_size = $ - mtldr_code + +dn db '\\.\' +img_name rb 256 +img_real_name rb 256 +mtldr_name rb 256 +tmp_data rb 2000h +ostitle rb 260 +systitle rb 262 + +align 4 +OpenProcessToken dd ? +LookupPrivilegeValueA dd ? +AdjustTokenPrivileges dd ? +tmp dd ? +sdn rd 3 +pi rd 8 +varout rd 4 +guid rd 4 +b9x db ? +menuitems rb 100h diff --git a/programs/hd_load/mtldr_install/rsrc.res b/programs/hd_load/mtldr_install/rsrc.res new file mode 100644 index 0000000000000000000000000000000000000000..a0ee457d20b4e757b31cd7e06c7bd0250835cdde GIT binary patch literal 1204 zcmb7@!D<^Z5QfL`f>H{#-@r>xd5ie42OkW56&(T+)Ubj=SGV+SdbB8k=CBVD=%q(P z4>mNQexvo)PH`z6_;=>lj7BqBjfhAMavp&BLf*n^knMFYw(Vlz+_Jy3>_2#uGfU33o%Y=Z7TF)U@K06lN6zIIfu~k((`{I!MVh7A zlSyVbP1BqUL}rO}U`Ni@vC_`pxIq;oI_ z8Z*v8!oDnlM~{bhUld==|C$4nt-R-6O!g!y+BhC~)vwHJ>1@?kGai;Tx#AW*Zyy+huD{dXp{GE5o(M_`|I_EN3hClLqaOC4cbuffer + movzx ecx, byte [7C0Dh] + mul ecx + add eax, [data_start] + +; read procedure +; in: eax = absolute sector +; cx = number of sectors +; es:bx -> buffer +read: + add eax, [7C1Ch] ; hidden sectors + push es +read_loop: + pushad +; allocate disk address packet on the stack +; qword +8: absolute block number + push 0 + push 0 ; dword +C is high dword + push eax ; dword +8 is low dword +; dword +4: buffer address + push es ; word +6 is segment + push bx ; word +4 is offset +; word +2: number of blocks, limited to 7Fh + sub cx, 7Fh + sbb ax, ax + and ax, cx + add ax, 7Fh + push ax + shl ax, 5 + mov cx, es + add cx, ax + mov es, cx +; word +0: size of packet = 10h + push 10h +; now pair ss:sp contain address of disk address packet + mov ax, 4200h + mov dl, [boot_drive] + mov si, sp + int 13h + mov si, disk_read_err + jc sayerr + popaw + popad + add eax, 7Fh + sub cx, 7Fh + ja read_loop + pop es + ret + +next_cluster: + push es + push ds + pop es + mov bx, 7E00h +; sector is 200h bytes long, one entry in FAT occupies 4 bytes +; => 80h entries in sector + push eax + shr eax, 7 ; div 80h + cmp eax, [fat_cur_sector] + jz @f + mov [fat_cur_sector], eax + add eax, [fat_start] + mov cx, 1 + call read +@@: + pop eax + and eax, 7Fh + mov eax, [7E00h+eax*4] + and eax, 0FFFFFFFh + cmp eax, 0FFFFFF7h + mov si, bad_cluster + jz sayerr + pop es + ret + +out_string: + lodsb + test al, al + jz .xxx + mov ah, 0Eh + mov bx, 7 + int 10h + jmp out_string +.xxx: ret + +file_not_found_msg db 'Cannot find file ' +mtldr_f db 'MTLD_F32 ' + db 13,10,0 +disk_read_err db 'Disk read error',13,10,0 +bad_cluster db 'Bad cluster',13,10,0 +fat_cur_sector dd -1 + + times (7DFEh - $) db 0 + db 55h, 0AAh + +virtual at 7A00h +fat_start dd ? +data_start dd ? +boot_drive db ? +end virtual diff --git a/programs/hd_load/usb_boot/MBR b/programs/hd_load/usb_boot/MBR new file mode 100644 index 0000000000000000000000000000000000000000..8cafa988103874ebc6ad9de77f608ba42d32d15b GIT binary patch literal 512 zcmXp$(05@EL(T61_5k@m`=o33OS1)p?|jPmdCBR$``9a z*XCmao+XkNIwjv0Y-QiV-u+>X4MWMF-Rulo_|6Kv{?y?o@WPFuSnHpgKtml1cL_I; zLk2@l7Gsvc z7N_nnXN40Ji~0OZxQ(6!ofVFn@cLTf&%>U1Wr;bNDGCLNMJ1UfnfZANC5cHnsSK_~ wMfpVvIr)hxnR)37`30#(i6tObab OK + cmp byte [n+8], 11 + jnz d +@@: + mov eax, a + mov ecx, n + mov byte [eax+2], '\' + push ecx + push ebx ; nFileSystemNameSize + push ebx ; lpFileSystemNameBuffer + push ebx ; lpFileSystemFlags + push ebx ; lpMaximumComponentLength + push ebx ; lpVolumeSerialNumber + push 1024 ; nVolumeNameSize + mov edx, [eax] + mov [ecx], edx + mov word [ecx+3], ' [' + add ecx, 5 + mov byte [ecx], bl + push ecx ; lpVolumeNameBuffer + push eax ; lpRootPathName + call [GetVolumeInformationA] + pop eax + push eax + cmp byte [eax+5], bl + jz nol +@@: + inc eax + cmp byte [eax-1], bl + jnz @b + mov word [eax-1], ']' +; jmp @f +nol: + mov byte [eax+3], bl +@@: + push ebx + push 180h ; LB_ADDSTRING + call ListCommand +d: + mov edx, a + inc byte [edx] + test esi, esi + jnz l + pop esi + ret + +install: + push ebx ; hTemplateFile + push ebx ; dwFlagsAndAttributes + push 3 ; dwCreationDisposition = OPEN_EXISTING + push ebx ; lpSecurityAttributes + push 3 ; dwShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE + push 0C0000000h ; dwDesiredAccess = GENERIC_READ|GENERIC_WRITE + push eax + call [CreateFileA] + cmp eax, -1 + jz deverre + push esi ebp + mov ebp, bootsect_dev + xchg esi, eax + push eax + mov eax, esp + push ebx + push eax + push 512 + push ebp + push esi + call [ReadFile] + test eax, eax + jnz @f +deverrl: + push esi + call [CloseHandle] + pop eax + pop ebp esi +deverre: + push 10h + push ebx + push deverr + push edi + call [MessageBoxA] + ret +@@: +; make sure that this is FAT32 volume + cmp word [ebp+0Bh], 200h ; bytes per sector + jnz bootinv + cmp word [ebp+0Eh], bx ; reserved sectors + jz bootinv + cmp byte [ebp+10h], bl ; number of FATs + jz bootinv + cmp word [ebp+11h], bx ; root dir entries + jnz bootinv ; must be 0 for FAT32 + cmp word [ebp+16h], bx ; length of one copy of FAT1x + jnz bootinv + cmp dword [ebp+20h], ebx ; length of one copy of FAT32 + jz bootinv + cmp byte [ebp+42h], ')' ; magic value + jz @f +bootinv: + push 10h + push ebx + push nofat32 + jmp re +@@: +; ok, this is really correct FAT32 volume, so start install +; copy file mtldr_f + push 80h + push mtldr_out + call [SetFileAttributesA] + push ebx ; bFailIfExists + push mtldr_out ; lpNewFileName + push mtldr_in ; lpExistingFileName + call [CopyFileA] + test eax, eax + jnz @f + push 10h + push ebx + push mterr +re: + push edi + call [MessageBoxA] + jmp r +@@: + push 7 + push mtldr_out + call [SetFileAttributesA] +; load bootsector + push ebx ; hTemplateFile + push ebx ; dwFlagsAndAttributes + push 3 ; dwCreationDisposition = OPEN_EXISTING + push ebx ; lpSecurityAttributes + push 1 ; dwShareMode = FILE_SHARE_READ + push 80000000h ; dwDesiredAccess = GENERIC_READ + push btname + call [CreateFileA] + cmp eax, -1 + jnz @f +bterrc: + push 40h + push ebx + push bterr + jmp re +@@: + mov ecx, esp + push eax + push ebx + push ecx + push 512 + push bootsect_new + push eax + call [ReadFile] + pop ecx + push eax + push ecx + call [CloseHandle] + pop eax + test eax, eax + jz bterrc + cmp dword [esp], 512 + jnz bterrc +; patch bootsector with real values + push esi edi + mov esi, bootsect_new + mov edi, bootsect_dev + movsb + movsb + movsb + add esi, 57h + add edi, 57h + mov ecx, 200h-5Ah + rep movsb + pop edi esi +; write bootsector + push ebx + push ebx + push ebx + push esi + call [SetFilePointer] + test eax, eax + jnz deverrl + mov eax, esp + push ebx + push eax + push 512 + push ebp + push esi + call [WriteFile] + test eax, eax + jz deverrl + cmp dword [esp], 512 + jnz deverrl +; Patch backup copy of boot sector, ignore errors + movzx eax, word [ebp+50] + test eax, eax + jz done_succ +; sanity check: it must be in the reserved area, not in data + cmp ax, word [ebp+14] + jae done_succ + shl eax, 9 + push ebx + push ebx + push eax + push esi + call [SetFilePointer] + cmp eax, -1 + jz done_succ + mov eax, esp + push ebx + push eax + push 512 + push ebp + push esi + call [WriteFile] +; done! +done_succ: + push 40h + push ok + push succ + push edi + call [MessageBoxA] + push ebx + call [PostQuitMessage] +r: + pop eax + push esi + call [CloseHandle] + pop ebp esi + ret + +section '.rdata' data readable + +data resource from 'rsrc.res' +end data + +ClassName db 'LISTBOX',0 +WndName db 'Select drive',0 +deverr db 'Cannot open physical device or device error (no administrator rights?)',0 +nofat32 db 'Not FAT32 volume. Sorry, only FAT32 is supported at moment.',0 +ok db 'Success',0 +succ db 'Kolibri flash loader was successfully installed!',10 + db 'Now you can copy the image kolibri.img and boot!',0 +mterr db 'Cannot copy MTLD_F32',0 +bterr db 'Cannot load ' +btname db 'BOOT_F32.BIN',0 + +data import +macro thunk a +{a#_thunk:dw 0 +db `a,0} + dd 0,0,0, rva kernel32_name, rva kernel32_thunks + dd 0,0,0, rva user32_name, rva user32_thunks + dd 0,0,0, rva gdi32_name, rva gdi32_thunks + dd 0,0,0,0,0 +kernel32_name db 'kernel32.dll',0 +user32_name db 'user32.dll',0 +gdi32_name db 'gdi32.dll',0 +kernel32_thunks: +GetLogicalDrives dd rva GetLogicalDrives_thunk +GetDriveTypeA dd rva GetDriveTypeA_thunk +GetVolumeInformationA dd rva GetVolumeInformationA_thunk +CreateFileA dd rva CreateFileA_thunk +ReadFile dd rva ReadFile_thunk +WriteFile dd rva WriteFile_thunk +SetFilePointer dd rva SetFilePointer_thunk +CloseHandle dd rva CloseHandle_thunk +SetErrorMode dd rva SetErrorMode_thunk +CopyFileA dd rva CopyFileA_thunk +SetFileAttributesA dd rva SetFileAttributesA_thunk +DeviceIoControl dd rva DeviceIoControl_thunk + dw 0 +thunk GetLogicalDrives +thunk GetDriveTypeA +thunk GetVolumeInformationA +thunk CreateFileA +thunk ReadFile +thunk WriteFile +thunk SetFilePointer +thunk CloseHandle +thunk SetErrorMode +thunk CopyFileA +thunk SetFileAttributesA +thunk DeviceIoControl +user32_thunks: +CreateWindowExA dd rva CreateWindowExA_thunk +GetMessageA dd rva GetMessageA_thunk +TranslateMessage dd rva TranslateMessage_thunk +DispatchMessageA dd rva DispatchMessageA_thunk +PostQuitMessage dd rva PostQuitMessage_thunk +CallWindowProcA dd rva CallWindowProcA_thunk +SetWindowLongA dd rva SetWindowLongA_thunk +SendMessageA dd rva SendMessageA_thunk +MessageBoxA dd rva MessageBoxA_thunk + dw 0 +thunk CreateWindowExA +thunk GetMessageA +thunk TranslateMessage +thunk DispatchMessageA +thunk PostQuitMessage +thunk CallWindowProcA +thunk SetWindowLongA +thunk SendMessageA +thunk MessageBoxA +gdi32_thunks: +GetStockObject dd rva GetStockObject_thunk + dw 0 +thunk GetStockObject +end data + +a2_src: + db '\\.\' + db '?:',0,0 + db '?:\' + db 'MTLD_F32',0 + +section '.data' data readable writable + +;a2 db '\\.\' +;a db '?:',0,0 +;mtldr_out db '?:\' +;mtldr_in db 'MTLD_F32',0 +a2 rb 4 +a rb 4 +mtldr_out rb 3 +mtldr_in rb 9 + +align 4 +OldWndProc dd ? +devpath rb 1024 +n rb 1032 +bootsect_dev rb 512 +bootsect_new rb 512 diff --git a/programs/hd_load/usb_boot/mtldr.asm b/programs/hd_load/usb_boot/mtldr.asm new file mode 100644 index 0000000000..427d410971 --- /dev/null +++ b/programs/hd_load/usb_boot/mtldr.asm @@ -0,0 +1,453 @@ +; KolibriOS bootloader +; this code has been written by diamond in 2005,2006,2007 specially for KolibriOS + +; this code is loaded by our bootsector to 0000:8000 + format binary + use16 + +out_string = 0x7DA2 +read_cluster = 0x7D0A +relative_read = 0x7D18 +next_cluster = 0x7D5C + + org 0x8000 +start: +; cs=ds=0, es undefined, ss=0, sp=7C00 + movzx esp, sp + push 1000h + pop es +; say hi to user + mov si, start_msg + call out_string +; parse image name + mov eax, [7C2Ch] ; root_cluster + and eax, 0xFFFFFFF + mov [cur_obj], root_string +.parsedir: + push ax + mov si, [imgnameofs] + push si +@@: + lodsb + cmp al, 0 + jz @f + cmp al, '\' + jnz @b + dec si + mov [missing_slash], si + inc si +@@: + xchg ax, [esp+2] + mov byte [si-1], 0 + mov [imgnameofs], si + call fat32_parse_dir + call restore_slash + pop cx + test cl, cl + jz .end + test byte [es:di+0Bh], 10h + mov si, notdir_string + jz find_error_si + jmp .parsedir +.end: + test byte [es:di+0Bh], 10h + mov si, directory_string + jnz find_error_si +; parse FAT chunk +; runlist at 5000:0000 + mov di, 4 + push 5000h + pop es + mov dword [es:di-4], 1 + stosd +.parsefat: + call next_cluster + jnc .done + mov ecx, [es:di-8] + add ecx, [es:di-4] + cmp eax, ecx + jz .contc + mov dword [es:di], 1 + scasd + stosd + jmp .parsefat +.contc: + inc dword [es:di-8] + jmp .parsefat +.done: + xor eax, eax + stosd +read_img_file: + xor si, si + push es + pop fs +; yes! Now read file to 0x100000 + xor edi, edi +; read buffer to 1000:0000 and move it to extended memory + push 1000h + pop es + xor bx, bx +.img_read_block: + lods dword [fs:si] ; eax=length + xchg eax, ecx + jecxz .img_read_done + lods dword [fs:si] ; eax=disk cluster +.img_read_cluster: + pushad +; read part of file + movzx esi, byte [7C0Dh] + mul esi + add eax, [7A04h] + push ax + mov ax, 0x200 + div si + cmp cx, ax + jb @f + mov cx, ax +@@: + pop ax + add [esp+1Ch], ecx + sub [esp+18h], cx + imul cx, si + push cx + call relative_read + pop cx +; move it to extended memory + mov byte [sou_addr+2], 1 +.move_loop: + push cx + cmp cx, 80h + jbe @f + mov cx, 80h +@@: + mov ah, 87h + xchg cl, ch + mov si, movedesc + push cx es + push ds + pop es + int 15h + pop es cx + test ah, ah + mov si, exmem_string + jnz find_error_si + add [dest_addr], ecx + add [dest_addr], ecx + inc byte [sou_addr+2] + mov al, ch + mov ah, cl + pop cx + sub cx, ax + jnz .move_loop + popad + test cx, cx + jnz .img_read_cluster + jmp .img_read_block +.img_read_done: +; kolibri.img loaded; now load kernel.mnt +load_kernel: + push ds + pop es + mov [cur_obj], kernel_mnt_name +; read boot sector + xor eax, eax + mov bx, 500h + mov cx, 1 + call read_img +; init vars + mov ax, [50Eh] ; reserved_sect + add ax, [51Ch] ; hidden + mov word [fat_start], ax + xchg ax, bx + movzx ax, byte [510h] ; num_fats + mul word [516h] ; fat_length + add ax, bx +; read root dir + mov bx, 700h + mov cx, [511h] ; dir_entries + add cx, 0Fh + shr cx, 4 + call read_img + add ax, cx + mov [img_data_start], ax + shl cx, 9 + mov di, bx + add bx, cx + mov byte [bx], 0 +.scan_loop: + cmp byte [di], 0 + mov si, notfound_string + jz find_error_si + mov si, kernel_mnt_name + call fat_compare_name + jz .found + and di, not 1Fh + add di, 20h + jmp .scan_loop +.found: + and di, not 1Fh + mov si, directory_string + test byte [di+0Bh], 10h + jnz find_error_si +; found, now load it to 1000h:0000h + mov ax, [di+1Ah] +; first cluster of kernel.mnt in ax +; translate it to sector on disk in kolibri.img + push ax + dec ax + dec ax + movzx cx, byte [50Dh] + mul cx + add ax, [img_data_start] +; now ax is sector in kolibri.img + mov [kernel_mnt_in_img], ax + movzx cx, byte [7C0Dh] + div cx +; now ax is cluster in kolibri.img and +; dx is offset from the beginning of cluster + movzx eax, ax + push 5000h + pop ds + xor si, si + mov si, 1 +.scani: + sub eax, [si] + jb .scanidone +; sanity check + cmp dword [si], 0 + push data_error_msg + jz find_error_sp + pop cx +; next chunk + add si, 8 + jmp .scani +.scanidone: + add eax, [si] ; undo last subtract + add eax, [si+4] ; get cluster + push 0 + pop ds + movzx ecx, byte [7C0Dh] + push dx + mul ecx ; get sector + pop dx + movzx edx, dx + add eax, edx + add eax, [7A04h] + mov [kernel_mnt_1st], eax + pop ax + push 1000h + pop es +.read_loop: + push ax + xor bx, bx + call img_read_cluster + shl cx, 9-4 + mov ax, es + add ax, cx + mov es, ax + pop ax + call img_next_cluster + jc .read_loop + mov ax, 'KL' + mov si, loader_block + jmp 1000h:0000h + +img_next_cluster: + mov bx, 700h + push ax + shr ax, 1 + add ax, [esp] + mov dx, ax + shr ax, 9 + add ax, word [fat_start] + mov cx, 2 + push es + push ds + pop es + call read_img + pop es + and dx, 1FFh + add bx, dx + mov ax, [bx] + pop cx + test cx, 1 + jz .1 + shr ax, 4 +.1: + and ax, 0FFFh + mov si, bad_cluster_string + cmp ax, 0FF7h + jz find_error_si + ret +img_read_cluster: + dec ax + dec ax + movzx cx, byte [50Dh] ; sects_per_clust + mul cx + add ax, [img_data_start] + movzx eax, ax +; call read_img +; ret +read_img: +; in: ax = sector, es:bx->buffer, cx=length in sectors + pushad + movzx ebx, bx + mov si, movedesc + shl eax, 9 + add eax, 93100000h + mov dword [si+sou_addr-movedesc], eax + mov eax, 9300000h + mov ax, es + shl eax, 4 + add eax, ebx + mov [si+dest_addr-movedesc], eax + mov ah, 87h + shl cx, 8 ; mul 200h/2 + push es + push 0 + pop es + int 15h + pop es + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + popad + ret + +movedesc: + times 16 db 0 +; source + dw 0xFFFF ; segment length +sou_addr dw 0000h ; linear address + db 1 ; linear address + db 93h ; access rights + dw 0 +; destination + dw 0xFFFF ; segment length +dest_addr dd 93100000h ; high byte contains access rights + ; three low bytes contains linear address (updated when reading) + dw 0 + times 32 db 0 + +find_error_si: + push si +find_error_sp: + mov si, error_msg + call out_string + mov si, [cur_obj] + call out_string + mov si, colon + call out_string + pop si + call out_string + mov si, newline + call out_string + jmp $ + +file_not_found: + mov si, [esp+2] + mov [cur_obj], si + push notfound_string + jmp find_error_sp + +restore_slash: + mov si, [missing_slash] + test si, si + jz @f + and [missing_slash], 0 + mov byte [si], '\' +@@: ret + + include 'fat32.inc' + +if 0 +write1st: +; callback from kernel.mnt +; write first sector of kernel.mnt from 1000:0000 back to disk + push cs + pop ds + push cs + pop es +; sanity check + mov bx, 500h + mov si, bx + mov cx, 1 + push cx + mov eax, [kernel_mnt_1st] + push eax + call relative_read + push 1000h + pop es + xor di, di + mov cx, 8 + repz cmpsw + mov si, data_error_msg + jnz find_error_si +; ok, now write back to disk + or byte [read.patch1+2], 1 + or byte [read.patch2+2], 1 + xor bx, bx + pop eax + pop cx + call relative_read + and byte [read.patch1+1], not 1 + and byte [read.patch2+2], not 2 +; and to image in memory (probably this may be done by kernel.mnt itself?) + mov dword [sou_addr], 93010000h + movzx eax, [kernel_mnt_in_img] + shl eax, 9 + add eax, 93100000h + mov dword [dest_addr], eax + mov si, movedesc + push ds + pop es + mov ah, 87h + mov cx, 100h + int 15h + cmp ah, 0 + mov si, exmem_string + jnz find_error_si + retf +else +write1st = 0 +end if + +loader_block: + db 1 ; version + dw 1 ; flags - image is loaded + dw write1st ; offset + dw 0 ; segment + +imgnameofs dw kolibri_img_name + +; ----------------------------------------------- +; ------------------ Settings ------------------- +; ----------------------------------------------- + +; must be in lowercase, see ntfs_parse_dir.scan, fat32_parse_dir.scan +kernel_mnt_name db 'kernel.mnt',0 +kolibri_img_name db 'kolibri.img',0 + +missing_slash dw 0 + +start_msg db 2,' KolibriOS bootloader, FAT32 flash version' +newline db 13,10,0 +error_msg db 'Error' +colon db ': ',0 +root_string db '\',0 +nodata_string db '$DATA ' +notfound_string db 'not found',0 +directory_string db 'is a directory',0 +notdir_string db 'not a directory',0 +exmem_string db 'extended memory error',0 +bad_cluster_string db 'bad cluster',0 +data_error_msg db 'data error',0 + + align 2 + +; uninitialized data follows +cur_obj dw ? +img_data_start dw ? +kernel_mnt_in_img dw ? +fat_start dw ? +kernel_mnt_1st dd ? diff --git a/programs/hd_load/usb_boot/readme.txt b/programs/hd_load/usb_boot/readme.txt new file mode 100644 index 0000000000..e7f4e4246a --- /dev/null +++ b/programs/hd_load/usb_boot/readme.txt @@ -0,0 +1,48 @@ +В комплект поставки входят: +BOOT_F32.BIN - бутсектор для FAT32; +MTLD_F32 - вспомогательный файл загрузчика; +inst.exe - установщик под линейку WinNT+; +setmbr.exe - устанавливает стандартный MBR (читайте ниже); +readme.txt - этот файл. + +Для установки необходима флешка с файловой системой FAT32, свободного места +на которой достаточно для размещения файла kolibri.img и плюс ещё пара Кб +на загрузчик. + +Установка для пользователей WinNT+: +Запускаете inst.exe, появляется список подключённых флешек, выбираете +ту, на которую хотите установить, и дважды щёлкаете по ней. Об успехе программа +сообщит. О неуспехе (не удалось прочитать/записать на диск или диск не +является FAT32-томом) - тоже. +Копируете на флешку файл kolibri.img с нужной вам версией +дистрибутива. (Эти два действия можно осуществлять в любом порядке.) +Теперь с флешки можно грузиться. + +Я столкнулся с ситуацией, когда (недавно выпущенная) флешка отказывается +загружаться, выдавая сообщение "Pen drive Without Operating System.Remove +Pen Drive And Reboot." Если вместо загрузки появляется +такое же или подобное сообщение, скорее всего, поможет setmbr.exe. +Его нужно запускать с правами администратора. После запуска в появившемся +списке нужно дважды щёлкнуть по диску, соответствующему вашей флешке. +Об успехе и неуспехе программа сообщит. + +Установка для пользователей других операционных систем: +автоматическая - пока не поддерживается. Если вы умеете работать с редактором +дисков, вам помогут следующие сведения: inst.exe при установке делает +следующее: +- считывает бутсектор, убеждается, что он действительно FAT32; +- копирует на флешку файл MTLD_F32, попутно устанавливая ему атрибуты +"скрытый","системный","только для чтения" (для самого загрузчика атрибуты +роли не играют, это чтобы файл не лез на глаза кому не надо); +- считывает файл BOOT_F32.BIN; в прочитанных данных заменяет параметры +начиная со смещения 3 и заканчивая 0x5A (0x57 байт) из бутсектора флешки; +- то, что получилось, записывает назад в бутсектор флешки, +а также в резервную копию бутсектора, если она есть (поле размером в 2 байта +со смещением 0x32) (резервную копию менять на самом деле необязательно, +всё равно в реальной жизни она не нужна). + +Например, под Linux новый бутсектор на диск /dev/sdb1 (замените на устройство, +соответствующее FAT32-тому) можно установить последовательностью из двух команд: +dd if=/dev/sdb1 of=BOOT_F32.BIN bs=1 skip=3 seek=3 count=87 conv=notrunc +dd if=BOOT_F32.BIN of=/dev/sdb1 bs=512 count=1 conv=notrunc +Копирование файлов mtld_f32 и kolibri.img осуществляется обычным способом. diff --git a/programs/hd_load/usb_boot/rsrc.res b/programs/hd_load/usb_boot/rsrc.res new file mode 100644 index 0000000000000000000000000000000000000000..a0ee457d20b4e757b31cd7e06c7bd0250835cdde GIT binary patch literal 1204 zcmb7@!D<^Z5QfL`f>H{#-@r>xd5ie42OkW56&(T+)Ubj=SGV+SdbB8k=CBVD=%q(P z4>mNQexvo)PH`z6_;=>lj7BqBjfhAMavp&BLf*n^knMFYw(Vlz+_Jy3>_2#uGfU33o%Y=Z7TF)U@K06lN6zIIfu~k((`{I!MVh7A zlSyVbP1BqUL}rO}U`Ni@vC_`pxIq;oI_ z8Z*v8!oDnlM~{bhUld==|C$4nt-R-6O!g!y+BhC~)vwHJ>1@?kGai;Tx#AW*Zyy+huD{dXp{GE5o(M_`|I_EN3hClLqaOC4c\cf0\ulnone \'ea\'ee\'f2\'ee\'f0\'fb\'e9 \'ff \'ef\'e5\'f0\'e5\'f0\'e0\'e1\'ee\'f2\'e0\'eb \'e2 \'ef\'f0\'ee\'e3\'f0\'e0\'ec\'ec\'f3 \b enable.exe\par +\b0\'cf\'ee\'e7\'e6\'e5 \'ea\'ee\'e4 \'e1\'fb\'eb \'ef\'e5\'f0\'e5\'ef\'e8\'f1\'e0\'ed \'ed\'e0 \'f1\'e8\'ed\'f2\'e0\'ea\'f1\'e8\'f1 \lang1033\b FASM\lang1049\b0 (\'ee\'f0\'e8\'e3\'e8\'ed\'e0\'eb \'e1\'fb\'eb \'e4\'eb\'ff \lang1033\b TASM\lang1049\b0 ), \'f2\'ee\'e2\'e0\'f0\'e8\'f9\'e5\'ec \cf2\lang1033\b Serge\cf0\lang1049\b0 , \'e7\'e0 \'f7\'f2\'ee \'e5\'ec\'f3 \'ee\'e3\'f0\'ee\'ec\'ed\'ee\'e5 \'f1\'ef\'e0\'f1\'e8\'e1\'ee, \'ef\'ee\'f1\'ea\'ee\'eb\'fc\'ea\'f3 \'f3 \'ec\'e5\'ed\'ff \'ed\'e5 \'f5\'e2\'e0\'f2\'e8\'eb\'ee \'f3\'ec\'e0 \'e8 \'f2\'e5\'f0\'ef\'e5\'ed\'e8\'ff \'f1\'e4\'e5\'eb\'e0\'f2\'fc \'fd\'f2\'ee \'f1\'e0\'ec\'ee\'ec\'f3.\par +\par +\'c8\'f2\'e0\'ea, \'fd\'f2\'ee \'e1\'fb\'eb\'ee \'e4\'eb\'e8\'ed\'ed\'ee\'e5 \'ee\'f2\'f1\'f2\'f3\'ef\'eb\'e5\'ed\'e8\'e5, \'ed\'ee \'e1\'e5\'e7 \'ed\'e5\'e3\'ee \'e2\'fb \'e1\'fb \'ed\'e5 \'ef\'ee\'ed\'ff\'eb\'e8 \'e2\'f1\'fe \'e8\'e4\'e5\'fe \'ef\'f0\'e5\'e4\'eb\'ee\'e6\'e5\'ed\'ed\'ee\'e3\'ee \'ec\'ed\'ee\'e9 \'f1\'ef\'ee\'f1\'ee\'e1\'e0 \'e7\'e0\'e3\'f0\'f3\'e7\'ea\'e8.\par +\'ce\'f1\'f2\'e0\'eb\'ee\'f1\'fc \'eb\'e8\'f8\'fc \'f1\'ea\'ee\'ef\'e8\'f0\'ee\'e2\'e0\'f2\'fc \'ed\'e0 \'ab\'f4\'eb\'e5\'f8\'ea\'f3\'bb \'f4\'e0\'e9\'eb\'fb \b enable.exe \b0\'e8 \lang1033\b meosload\lang1049 .\lang1033 com\lang1049 ,\b0 \'e0 \'f2\'e0\'ea\'e6\'e5 \'ef\'f0\'ee\'ef\'e8\'f1\'e0\'f2\'fc \'e2 \b Autoexec.bat \b0\'e8\'f5 \'e7\'e0\'e3\'f0\'f3\'e7\'ea\'f3 (\b Autoexec.bat\b0 \'ec\'ee\'e6\'ed\'ee \'f0\'e5\'e4\'e0\'ea\'f2\'e8\'f0\'ee\'e2\'e0\'f2\'fc \'eb\'fe\'e1\'fb\'ec \'f2\'e5\'ea\'f1\'f2\'ee\'e2\'fb\'ec \'f0\'e5\'e4\'e0\'ea\'f2\'ee\'f0\'ee\'ec) \'e8, \'f0\'e0\'e7\'f3\'ec\'e5\'e5\'f2\'f1\'ff, \'ed\'e0 \'ab\'f4\'eb\'e5\'f8\'ea\'e5\'bb \'e2 \'ea\'ee\'f0\'ed\'e5 \'e4\'e8\'f1\'ea\'e0 \'e4\'ee\'eb\'e6\'e5\'ed \'ed\'e0\'f5\'ee\'e4\'e8\'f2\'fc\'f1\'ff \'f1\'e0\'ec \'f4\'e0\'e9\'eb \'ee\'e1\'f0\'e0\'e7\'e0 \lang1033\b kolibri\lang1049 .\lang1033 img\lang1049 .\par +\b0\par +\'c2\'ee\'f2 \'e2 \'ef\'f0\'e8\'ed\'f6\'e8\'ef\'e5 \'e8 \'e2\'f1\'e5. \'ce\'f1\'f2\'e0\'eb\'ee\'f1\'fc \'ef\'e5\'f0\'e5\'e7\'e0\'e3\'f0\'f3\'e7\'e8\'f2\'fc \'ea\'ee\'ec\'ef\'fc\'fe\'f2\'e5\'f0 \'e8 \'e2\'fb\'e1\'f0\'e0\'f2\'fc \'e7\'e0\'e3\'f0\'f3\'e7\'ea\'f3 \'f1 \cf2\lang1033\b USB\lang1049 \lang1033 Flash\cf0\lang1049\b0 \'ed\'e0\'ea\'ee\'ef\'e8\'f2\'e5\'eb\'ff. \'c2 \'f1\'e8\'ed\'e5\'ec \'ee\'ea\'ed\'e5 \'e7\'e0\'e3\'f0\'f3\'e7\'ea\'e8 \'e2 \'ea\'e0\'f7\'e5\'f1\'f2\'e2\'e5 \'e7\'e0\'e3\'f0\'f3\'e7\'ee\'f7\'ed\'ee\'e3\'ee \'f3\'f1\'f2\'f0\'ee\'e9\'f1\'f2\'e2\'e0 \'ed\'f3\'e6\'ed\'ee \'e2\'fb\'e1\'f0\'e0\'f2\'fc \'ef\'f3\'ed\'ea\'f2 \b 3-\'e8\'f1\'ef\'ee\'eb\'fc\'e7\'ee\'e2\'e0\'f2\'fc \'f3\'e6\'e5 \'e7\'e0\'e3\'f0\'f3\'e6\'e5\'ed\'ed\'fb\'e9 \'ee\'e1\'f0\'e0\'e7.\par +\par +\b0 P.S.\par +1) \'d5\'ee\'f7\'f3 \'e2\'fb\'f0\'e0\'e7\'e8\'f2\'fc \'e1\'ee\'eb\'fc\'f8\'f3\'fe \'ef\'f0\'e8\'e7\'ed\'e0\'f2\'e5\'eb\'fc\'ed\'ee\'f1\'f2\'fc \'e7\'e0 \'ef\'ee\'ec\'ee\'f9\'fc \'e2 \'ef\'ee\'e4\'e3\'ee\'f2\'ee\'e2\'ea\'e5 \'ec\'e0\'f2\'e5\'f0\'e8\'e0\'eb\'e0 \cf2\b\'c0\'ed\'e4\'f0\'e5\'fe (NoName)\b0 , \b\'dd\'e4\'f3\'e0\'f0\'e4\'f3 (DoomEdArchangel)\b0 \'e8 \b\'d1\'e5\'f0\'e3\'e5\'fe (Serge).\cf0\b0\par +2) \'c2 \'e0\'f0\'f5\'e8\'e2\'e5 \'f1 \'fd\'f2\'e8\'ec \'f4\'e0\'e9\'eb\'ee\'ec \'f1\'ee\'e4\'e5\'f0\'e6\'e0\'f2\'fc\'f1\'ff \'f3\'ef\'ee\'ec\'ff\'ed\'f3\'f2\'fb\'e5 \'e2 \'f2\'e5\'ea\'f1\'f2\'e5 \b enable.exe \b0\'e8 \lang1033\b meosload\lang1049 .\lang1033 com\lang1049\b0 \'e8 \'e8\'f5 \'e8\'f1\'f5\'ee\'e4\'ed\'fb\'e5 \'ea\'ee\'e4\'fb.\par +} + \ No newline at end of file diff --git a/programs/hd_load/usb_boot_old/usb_boot_1251.txt b/programs/hd_load/usb_boot_old/usb_boot_1251.txt new file mode 100644 index 0000000000..187e6dd672 --- /dev/null +++ b/programs/hd_load/usb_boot_old/usb_boot_1251.txt @@ -0,0 +1,57 @@ +Автор: Mario79 +xx.01.2006 - набор статьи +20.03.2006 - публикация статьи +23.03.2006 - исправление и дополнение статьи +26.02.2007 - переработано и дополнено в связи с изменившимися реалиями + +Загрузка ОС Колибри с USB Flash Drive +На сегодняшний день ОС Колибри не имеет поддержки USB устройств на уровне самой системы, по этой причине для запуска с USB Flash накопителей приходится идти на определенные хитрости. +Существует 2 известных способа запустить ОС Колибри с «флешки». + +1) Эмуляция флоппи диска в BIOS. +Метод прост до тупости на «флешку» записывается IMG образ, с полной эмуляцией, то есть 0 сектор IMG образа становится 0 сектором «флешки», и так далее пока все сектора образа не будут скопированы на накопитель. Из недостатков этого способа сразу можно заметить потерю рабочего пространства выше 1,44 Мб. Особенно обидным это является для накопителей, емкость которых намного превышает этот размер. +Как производится такая «установка» системы в разных ос: +а) ОС Linux описание можно получить, введя в консоли команду man dd +б) ОС Windows запись можно произвести с помощью программы WinHex (или аналогичной), копированием 2880 секторов с диска A (floppy disk) на диск, который является Flash накопителем, начиная с 0 сектора. +в) DOS можно просто отформатировать эмулируемое устройство, разумеется, если это позволяет BIOS материнской платы компьютера. + +2) Эмуляция Flash накопителя как жесткого диска в BIOS. +Здесь надо сделать пояснение: даже если ваш BIOS эмулирует «флешку» как флоппи диск это совсем не означает, что вы ограничены размерами файловой системы FAT12, которая в основном применяется на флоппи дисках и имеет ограничение на размер около 4 Мб. +На практике это означает, что отформатированный в FAT16 накопитель будет замечательно видеться как флоппи диск с размером до 2 Гб. К сожалению, все мои попытки загрузиться с применением файловой системы FAT32, которая позволила бы на полный размер использовать USB Flash накопители размером более 2 Гб, не увенчались успешно. + +Вернемся непосредственно к загрузке. +Поскольку на данный момент Колибри не является полностью самостоятельной ОС, то повсеместно она применяется параллельно с другими ОС. Эта ситуация привела к тому, что собственного независимого загрузчика (если не считать флоппи диски) у Колибри фактически нет. +На сегодняшний день остались актуальными только 2 загрузчика: meosload.com и mtldr. +Оба могут запускаться из среды DOS. +Установка Колибри на флешку в моем варианте начинается с установки DOS на флешку, как первичной системой, из-под которой будут запущены загрузчики Колибри. Конечно, в этом случае с точки зрения лицензии лучше использовать полные аналоги DOS, которые имеют свободную лицензию на использование, но не в этом суть, так что не будем отвлекаться на мелочи. + +Установить DOS на «флешку» можно несколькими способами: +а) ОС Windows при форматировании флешки выбрать пункт скопировать системные файлы, в общем, то же самое что и для флоппи дискеты. К сожалению, этот метод подходит только для линейки 9х, на 2К не проверял, но в ХР этот пункт недоступен. +б) DOS при наличии эмуляции «флешки» как гибкого или жесткого диска может сделать диск загрузочным. Для этого нужно ввести команду sys X: где Х заменить на букву, под которой у вас значится эмулируемый Flash накопитель (Будьте осторожны, если вы укажите не тот диск, то можете убить загрузчик установленной на ваш жесткий диск ОС). При этом DOS, может, и будет ругаться, но не обращайте на это внимание и выберите F (продолжить), главное чтобы в загрузочный сектор накопителя был записан загрузчик, который и будет запускать DOS с «флешки». +В результате мы будем иметь USB Flash накопитель с установленным DOS. + +Из всех файлов, которые будут находиться на «флешке» необходимы только Command.com, Io.sys, Msdos.sys - остальные можно удалить, для наших целей они не нужны. Если по какой либо причине эти три файла не скопировались на накопитель, то скопируйте их вручную. Далее желательно перезагрузить компьютер и проверить загрузку DOS с флешки. Если все пройдет нормально, то вы получите приглашение командной строки DOS, в противном случае нужно попытаться установить снова. +В дополнение к этим трем файлам потребуется в ручную создать еще пару пустых файлов: Config.sys, Autoexec.bat - это необходимо, для того чтобы сделать впоследствии полностью автоматическую загрузку Колибри, а не стартовать загрузчик из командной строки каждый раз. + +Ну, вот половина работы сделана. Далее возникают некоторые трудности, которые мы успешно разрешим (для того я и писал эту статью). +Трудности заключаются в том, что в стандартном варианте ни один загрузчики не загружает IMG образ в память (загружается и запускается только ядро), поскольку подразумевается, что образ будет загружен ядром. Но как вы, наверное, уже догадались образ ядру грузить просто не откуда, так как с USB устройствами Колибри пока не дружит. + +Отсюда остается один выход - сделать так чтобы загрузчик загрузил не только ядро, но и образ по нужному месту в памяти. НО! (Опять это но!) Загрузчик запущен в DOS, который работает в реальном (Real mode) режиме процессора, с ограничением на адресацию памяти в 1 Мб, а образ в адресном пространстве Колибри как раз должен располагаться, аккурат начиная с первого мегабайта и далее в памяти. +Как же быть? Эврика! DOS ведь может обращаться через дополнительные драйверы к памяти выше первого мегабайта (кстати так и поступает ядро при загрузке образа с флоппи), но реализовано это так коряво, что пользоваться этим не хочется совсем. (Конечно это мое субъективное мнение). + +Одновременно с этим есть другой способ обратиться к памяти выше первого мегабайта. В процессорах х86 существует возможность установить недокументированный, но считающийся практически стандартным «нереальный» (Unreal mode) режим работы. +Конечно, прямая адресация в таком режиме невозможна, но можно обращаться к памяти косвенно через регистры, у которых были изменены лимиты адресации. +В результате получаем сравнительно простой способ доступа к памяти вплоть до 4 Гб, находясь фактически в реальном режиме работы процессора. + +В результате я доработал загрузчик meosload.com (поскольку в его коде мне оказалось проще разобраться), теперь он загружает и ядро и образ, а затем стартует ОС. +Для включения «нереального» рема работы процессора я изначально использовал код, взятый с который я переработал в программу enable.exe +Позже код был переписан на синтаксис FASM (оригинал был для TASM), товарищем Serge, за что ему огромное спасибо, поскольку у меня не хватило ума и терпения сделать это самому. + +Итак, это было длинное отступление, но без него вы бы не поняли всю идею предложенного мной способа загрузки. +Осталось лишь скопировать на «флешку» файлы enable.exe и meosload.com, а также прописать в Autoexec.bat их загрузку (Autoexec.bat можно редактировать любым текстовым редактором) и, разумеется, на «флешке» в корне диска должен находиться сам файл образа kolibri.img. + +Вот в принципе и все. Осталось перезагрузить компьютер и выбрать загрузку с USB Flash накопителя. В синем окне загрузки в качестве загрузочного устройства нужно выбрать пункт 3-использовать уже загруженный образ. + +P.S. +1) Хочу выразить большую признательность за помощь в подготовке материала Андрею (NoName), Эдуарду (DoomEdArchangel) и Сергею (Serge). +2) В архиве с этим файлом содержаться упомянутые в тексте enable.exe и meosload.com и их исходные коды. \ No newline at end of file diff --git a/programs/hd_load/usb_boot_old/usb_boot_866.txt b/programs/hd_load/usb_boot_old/usb_boot_866.txt new file mode 100644 index 0000000000..250e84d7b1 --- /dev/null +++ b/programs/hd_load/usb_boot_old/usb_boot_866.txt @@ -0,0 +1,57 @@ +Ђўв®а: Mario79 +xx.01.2006 - ­ Ў®а бв вмЁ +20.03.2006 - ЇгЎ«ЁЄ жЁп бв вмЁ +23.03.2006 - ЁбЇа ў«Ґ­ЁҐ Ё ¤®Ї®«­Ґ­ЁҐ бв вмЁ +26.02.2007 - ЇҐаҐа Ў®в ­® Ё ¤®Ї®«­Ґ­® ў бўп§Ё б Ё§¬Ґ­ЁўиЁ¬Ёбп ॠ«Ёп¬Ё + +‡ Јаг§Є  Ћ‘ Љ®«ЁЎаЁ б USB Flash Drive +Ќ  ᥣ®¤­пи­Ё© ¤Ґ­м Ћ‘ Љ®«ЁЎаЁ ­Ґ Ё¬ҐҐв Ї®¤¤Ґа¦ЄЁ USB гбва®©бвў ­  га®ў­Ґ б ¬®© бЁб⥬л, Ї® нв®© ЇаЁзЁ­Ґ ¤«п § ЇгбЄ  б USB Flash ­ Є®ЇЁвҐ«Ґ© ЇаЁе®¤Ёвбп Ё¤вЁ ­  ®ЇаҐ¤Ґ«Ґ­­лҐ еЁва®бвЁ. +‘гйҐбвўгҐв 2 Ё§ўҐбв­ле бЇ®б®Ў  § ЇгбвЁвм Ћ‘ Љ®«ЁЎаЁ б «д«ҐиЄЁ». + +1) ќ¬г«пжЁп д«®ЇЇЁ ¤ЁбЄ  ў BIOS. +ЊҐв®¤ Їа®бв ¤® вгЇ®бвЁ ­  «д«ҐиЄг» § ЇЁблў Ґвбп IMG ®Ўа §, б Ї®«­®© н¬г«пжЁҐ©, в® Ґбвм 0 ᥪв®а IMG ®Ўа §  бв ­®ўЁвбп 0 ᥪв®а®¬ «д«ҐиЄЁ», Ё в Є ¤ «ҐҐ Ї®Є  ўбҐ ᥪв®а  ®Ўа §  ­Ґ Ўг¤гв бЄ®ЇЁа®ў ­л ­  ­ Є®ЇЁвҐ«м. €§ ­Ґ¤®бв вЄ®ў нв®Ј® бЇ®б®Ў  ба §г ¬®¦­® § ¬ҐвЁвм Ї®вҐао а Ў®зҐЈ® Їа®бва ­бвў  ўлиҐ 1,44 ЊЎ. Ћб®ЎҐ­­® ®ЎЁ¤­л¬ нв® пў«пҐвбп ¤«п ­ Є®ЇЁвҐ«Ґ©, Ґ¬Є®бвм Є®в®але ­ ¬­®Ј® ЇаҐўли Ґв нв®в а §¬Ґа. +Љ Є Їа®Ё§ў®¤Ёвбп в Є п «гбв ­®ўЄ » бЁбвҐ¬л ў а §­ле ®б: + ) Ћ‘ Linux ®ЇЁб ­ЁҐ ¬®¦­® Ї®«гзЁвм, ўўҐ¤п ў Є®­б®«Ё Є®¬ ­¤г man dd +Ў) Ћ‘ Windows § ЇЁбм ¬®¦­® Їа®Ё§ўҐбвЁ б Ї®¬®ймо Їа®Ја ¬¬л WinHex (Ё«Ё  ­ «®ЈЁз­®©), Є®ЇЁа®ў ­ЁҐ¬ 2880 ᥪв®а®ў б ¤ЁбЄ  A (floppy disk) ­  ¤ЁбЄ, Є®в®ал© пў«пҐвбп Flash ­ Є®ЇЁвҐ«Ґ¬, ­ зЁ­ п б 0 ᥪв®а . +ў) DOS ¬®¦­® Їа®бв® ®вд®а¬ вЁа®ў вм н¬г«Ёа㥬®Ґ гбва®©бвў®, ࠧ㬥Ґвбп, Ґб«Ё нв® Ї®§ў®«пҐв BIOS ¬ вҐаЁ­бЄ®© Ї« вл Є®¬ЇмовҐа . + +2) ќ¬г«пжЁп Flash ­ Є®ЇЁвҐ«п Є Є ¦ҐбвЄ®Ј® ¤ЁбЄ  ў BIOS. +‡¤Ґбм ­ ¤® ᤥ« вм Ї®пб­Ґ­ЁҐ: ¤ ¦Ґ Ґб«Ё ў и BIOS н¬г«ЁагҐв «д«ҐиЄг» Є Є д«®ЇЇЁ ¤ЁбЄ н⮠ᮢᥬ ­Ґ ®§­ з Ґв, зв® ўл ®Ја ­ЁзҐ­л а §¬Ґа ¬Ё д ©«®ў®© бЁб⥬л FAT12, Є®в®а п ў ®б­®ў­®¬ ЇаЁ¬Ґ­пҐвбп ­  д«®ЇЇЁ ¤ЁбЄ е Ё Ё¬ҐҐв ®Ја ­ЁзҐ­ЁҐ ­  а §¬Ґа ®Є®«® 4 ЊЎ. +Ќ  Їа ЄвЁЄҐ нв® ®§­ з Ґв, зв® ®вд®а¬ вЁа®ў ­­л© ў FAT16 ­ Є®ЇЁвҐ«м Ўг¤Ґв § ¬Ґз вҐ«м­® ўЁ¤Ґвмбп Є Є д«®ЇЇЁ ¤ЁбЄ б а §¬Ґа®¬ ¤® 2 ѓЎ. Љ ᮦ «Ґ­Ёо, ўбҐ ¬®Ё Ї®ЇлвЄЁ § Јаг§Ёвмбп б ЇаЁ¬Ґ­Ґ­ЁҐ¬ д ©«®ў®© бЁб⥬л FAT32, Є®в®а п Ї®§ў®«Ё«  Ўл ­  Ї®«­л© а §¬Ґа ЁбЇ®«м§®ў вм USB Flash ­ Є®ЇЁвҐ«Ё а §¬Ґа®¬ Ў®«ҐҐ 2 ѓЎ, ­Ґ 㢥­з «Ёбм гбЇҐи­®. + +‚Ґа­Ґ¬бп ­ҐЇ®б।б⢥­­® Є § Јаг§ЄҐ. +Џ®бЄ®«мЄг ­  ¤ ­­л© ¬®¬Ґ­в Љ®«ЁЎаЁ ­Ґ пў«пҐвбп Ї®«­®бвмо б ¬®бв®п⥫쭮© Ћ‘, в® Ї®ўбҐ¬Ґбв­® ®­  ЇаЁ¬Ґ­пҐвбп Ї а ««Ґ«м­® б ¤агЈЁ¬Ё Ћ‘. ќв  бЁвг жЁп ЇаЁўҐ«  Є ⮬г, зв® б®Ўб⢥­­®Ј® ­Ґ§ ўЁбЁ¬®Ј® § Јаг§зЁЄ  (Ґб«Ё ­Ґ бзЁв вм д«®ЇЇЁ ¤ЁбЄЁ) г Љ®«ЁЎаЁ д ЄвЁзҐбЄЁ ­Ґв. +Ќ  ᥣ®¤­пи­Ё© ¤Ґ­м ®бв «Ёбм  Євг «м­л¬Ё в®«мЄ® 2 § Јаг§зЁЄ : meosload.com Ё mtldr. +ЋЎ  ¬®Јгв § ЇгбЄ вмбп Ё§ б।л DOS. +“бв ­®ўЄ  Љ®«ЁЎаЁ ­  д«ҐиЄг ў ¬®Ґ¬ ў аЁ ­вҐ ­ зЁ­ Ґвбп б гбв ­®ўЄЁ DOS ­  д«ҐиЄг, Є Є ЇҐаўЁз­®© бЁб⥬®©, Ё§-Ї®¤ Є®в®а®© Ўг¤гв § ЇгйҐ­л § Јаг§зЁЄЁ Љ®«ЁЎаЁ. Љ®­Ґз­®, ў н⮬ б«гз Ґ б в®зЄЁ §аҐ­Ёп «ЁжҐ­§ЁЁ «гзиҐ ЁбЇ®«м§®ў вм Ї®«­лҐ  ­ «®ЈЁ DOS, Є®в®алҐ Ё¬Ґов бў®Ў®¤­го «ЁжҐ­§Ёо ­  ЁбЇ®«м§®ў ­ЁҐ, ­® ­Ґ ў н⮬ бгвм, в Є зв® ­Ґ Ўг¤Ґ¬ ®вў«ҐЄ вмбп ­  ¬Ґ«®зЁ. + +“бв ­®ўЁвм DOS ­  «д«ҐиЄг» ¬®¦­® ­ҐбЄ®«мЄЁ¬Ё бЇ®б®Ў ¬Ё: + ) Ћ‘ Windows ЇаЁ д®а¬ вЁа®ў ­ЁЁ д«ҐиЄЁ ўлЎа вм Їг­Єв бЄ®ЇЁа®ў вм бЁб⥬­лҐ д ©«л, ў ®ЎйҐ¬, в® ¦Ґ б ¬®Ґ зв® Ё ¤«п д«®ЇЇЁ ¤ЁбЄҐвл. Љ ᮦ «Ґ­Ёо, нв®в ¬Ґв®¤ Ї®¤е®¤Ёв в®«мЄ® ¤«п «Ё­Ґ©ЄЁ 9е, ­  2Љ ­Ґ Їа®ўҐап«, ­® ў •ђ нв®в Їг­Єв ­Ґ¤®бвгЇҐ­. +Ў) DOS ЇаЁ ­ «ЁзЁЁ н¬г«пжЁЁ «д«ҐиЄЁ» Є Є ЈЁЎЄ®Ј® Ё«Ё ¦ҐбвЄ®Ј® ¤ЁбЄ  ¬®¦Ґв ᤥ« вм ¤ЁбЄ § Ја㧮з­л¬. „«п нв®Ј® ­г¦­® ўўҐбвЁ Є®¬ ­¤г sys X: Ј¤Ґ • § ¬Ґ­Ёвм ­  ЎгЄўг, Ї®¤ Є®в®а®© г ў б §­ зЁвбп н¬г«ЁагҐ¬л© Flash ­ Є®ЇЁвҐ«м (Ѓг¤м⥠®бв®а®¦­л, Ґб«Ё ўл гЄ ¦ЁвҐ ­Ґ в®в ¤ЁбЄ, в® ¬®¦ҐвҐ гЎЁвм § Јаг§зЁЄ гбв ­®ў«Ґ­­®© ­  ў и ¦ҐбвЄЁ© ¤ЁбЄ Ћ‘). ЏаЁ н⮬ DOS, ¬®¦Ґв, Ё Ўг¤Ґв агЈ вмбп, ­® ­Ґ ®Ўа й ©вҐ ­  нв® ў­Ё¬ ­ЁҐ Ё ўлЎҐаЁвҐ F (Їа®¤®«¦Ёвм), Ј« ў­®Ґ зв®Ўл ў § Ја㧮з­л© ᥪв®а ­ Є®ЇЁвҐ«п Ўл« § ЇЁб ­ § Јаг§зЁЄ, Є®в®ал© Ё Ўг¤Ґв § ЇгбЄ вм DOS б «д«ҐиЄЁ». +‚ १г«мв вҐ ¬л Ўг¤Ґ¬ Ё¬Ґвм USB Flash ­ Є®ЇЁвҐ«м б гбв ­®ў«Ґ­­л¬ DOS. + +€§ ўбҐе д ©«®ў, Є®в®алҐ Ўг¤гв ­ е®¤Ёвмбп ­  «д«ҐиЄҐ» ­Ґ®Ўе®¤Ё¬л в®«мЄ® Command.com, Io.sys, Msdos.sys - ®бв «м­лҐ ¬®¦­® г¤ «Ёвм, ¤«п ­ иЁе 楫Ґ© ®­Ё ­Ґ ­г¦­л. …б«Ё Ї® Є Є®© «ЁЎ® ЇаЁзЁ­Ґ нвЁ ваЁ д ©«  ­Ґ бЄ®ЇЁа®ў «Ёбм ­  ­ Є®ЇЁвҐ«м, в® бЄ®ЇЁаг©вҐ Ёе ўагз­го. „ «ҐҐ ¦Ґ« вҐ«м­® ЇҐаҐ§ Јаг§Ёвм Є®¬ЇмовҐа Ё Їа®ўҐаЁвм § Јаг§Єг DOS б д«ҐиЄЁ. …б«Ё ўбҐ Їа®©¤Ґв ­®а¬ «м­®, в® ўл Ї®«гзЁвҐ ЇаЁЈ« иҐ­ЁҐ Є®¬ ­¤­®© бва®ЄЁ DOS, ў Їа®вЁў­®¬ б«гз Ґ ­г¦­® Ї®Їлв вмбп гбв ­®ўЁвм б­®ў . +‚ ¤®Ї®«­Ґ­ЁҐ Є нвЁ¬ в६ д ©« ¬ Ї®вॡгҐвбп ў агз­го ᮧ¤ вм ҐйҐ Ї аг Їгбвле д ©«®ў: Config.sys, Autoexec.bat - нв® ­Ґ®Ўе®¤Ё¬®, ¤«п в®Ј® зв®Ўл ᤥ« вм ўЇ®б«Ґ¤бвўЁЁ Ї®«­®бвмо  ўв®¬ вЁзҐбЄго § Јаг§Єг Љ®«ЁЎаЁ,   ­Ґ бв ав®ў вм § Јаг§зЁЄ Ё§ Є®¬ ­¤­®© бва®ЄЁ Є ¦¤л© а §. + +Ќг, ў®в Ї®«®ўЁ­  а Ў®вл ᤥ« ­ . „ «ҐҐ ў®§­ЁЄ ов ­ҐЄ®в®алҐ ваг¤­®бвЁ, Є®в®алҐ ¬л гбЇҐи­® а §аҐиЁ¬ (¤«п в®Ј® п Ё ЇЁб « нвг бв вмо). +’аг¤­®бвЁ § Є«оз овбп ў ⮬, зв® ў бв ­¤ ав­®¬ ў аЁ ­вҐ ­Ё ®¤Ё­ § Јаг§зЁЄЁ ­Ґ § Јаг¦ Ґв IMG ®Ўа § ў Ї ¬пвм (§ Јаг¦ Ґвбп Ё § ЇгбЄ Ґвбп в®«мЄ® п¤а®), Ї®бЄ®«мЄг Ї®¤а §г¬Ґў Ґвбп, зв® ®Ўа § Ўг¤Ґв § Ја㦥­ п¤а®¬. Ќ® Є Є ўл, ­ ўҐа­®Ґ, 㦥 ¤®Ј ¤ «Ёбм ®Ўа § п¤аг Јаг§Ёвм Їа®бв® ­Ґ ®вЄг¤ , в Є Є Є б USB гбва®©бвў ¬Ё Љ®«ЁЎаЁ Ї®Є  ­Ґ ¤аг¦Ёв. + +Ћвбо¤  ®бв Ґвбп ®¤Ё­ ўл室 - ᤥ« вм в Є зв®Ўл § Јаг§зЁЄ § Јаг§Ё« ­Ґ в®«мЄ® п¤а®, ­® Ё ®Ўа § Ї® ­г¦­®¬г ¬Ґбвг ў Ї ¬пвЁ. ЌЋ! (ЋЇпвм нв® ­®!) ‡ Јаг§зЁЄ § Їг饭 ў DOS, Є®в®ал© а Ў®в Ґв ў ॠ«м­®¬ (Real mode) ०Ё¬Ґ Їа®жҐбб®а , б ®Ја ­ЁзҐ­ЁҐ¬ ­   ¤аҐб жЁо Ї ¬пвЁ ў 1 ЊЎ,   ®Ўа § ў  ¤аҐб­®¬ Їа®бва ­б⢥ Љ®«ЁЎаЁ Є Є а § ¤®«¦Ґ­ а бЇ®« Ј вмбп,  ЄЄга в ­ зЁ­ п б ЇҐаў®Ј® ¬ҐЈ Ў ©в  Ё ¤ «ҐҐ ў Ї ¬пвЁ. +Љ Є ¦Ґ Ўлвм? ќўаЁЄ ! DOS ўҐ¤м ¬®¦Ґв ®Ўа й вмбп зҐаҐ§ ¤®Ї®«­ЁвҐ«м­лҐ ¤а ©ўҐал Є Ї ¬пвЁ ўлиҐ ЇҐаў®Ј® ¬ҐЈ Ў ©в  (Єбв вЁ в Є Ё Ї®бвгЇ Ґв п¤а® ЇаЁ § Јаг§ЄҐ ®Ўа §  б д«®ЇЇЁ), ­® ॠ«Ё§®ў ­® нв® в Є Є®апў®, зв® Ї®«м§®ў вмбп нвЁ¬ ­Ґ е®зҐвбп ᮢᥬ. (Љ®­Ґз­® нв® ¬®Ґ бгЎкҐЄвЁў­®Ґ ¬­Ґ­ЁҐ). + +Ћ¤­®ўаҐ¬Ґ­­® б нвЁ¬ Ґбвм ¤агЈ®© бЇ®б®Ў ®Ўа вЁвмбп Є Ї ¬пвЁ ўлиҐ ЇҐаў®Ј® ¬ҐЈ Ў ©в . ‚ Їа®жҐбб®а е е86 бгйҐбвўгҐв ў®§¬®¦­®бвм гбв ­®ўЁвм ­Ґ¤®Єг¬Ґ­вЁа®ў ­­л©, ­® бзЁв ойЁ©бп Їа ЄвЁзҐбЄЁ бв ­¤ ав­л¬ «­ҐаҐ «м­л©» (Unreal mode) ०Ё¬ а Ў®вл. +Љ®­Ґз­®, Їап¬ п  ¤аҐб жЁп ў в Є®¬ ०Ё¬Ґ ­Ґў®§¬®¦­ , ­® ¬®¦­® ®Ўа й вмбп Є Ї ¬пвЁ Є®бўҐ­­® зҐаҐ§ ॣЁбвал, г Є®в®але Ўл«Ё Ё§¬Ґ­Ґ­л «Ё¬Ёвл  ¤аҐб жЁЁ. +‚ १г«мв вҐ Ї®«гз Ґ¬ ба ў­ЁвҐ«м­® Їа®бв®© бЇ®б®Ў ¤®бвгЇ  Є Ї ¬пвЁ ўЇ«®вм ¤® 4 ѓЎ, ­ е®¤пбм д ЄвЁзҐбЄЁ ў ॠ«м­®¬ ०Ё¬Ґ а Ў®вл Їа®жҐбб®а . + +‚ १г«мв вҐ п ¤®а Ў®в « § Јаг§зЁЄ meosload.com (Ї®бЄ®«мЄг ў ҐЈ® Є®¤Ґ ¬­Ґ ®Є § «®бм Їа®йҐ а §®Ўа вмбп), ⥯Ґам ®­ § Јаг¦ Ґв Ё п¤а® Ё ®Ўа §,   § вҐ¬ бв авгҐв Ћ‘. +„«п ўЄ«о祭Ёп «­ҐаҐ «м­®Ј®» ६  а Ў®вл Їа®жҐбб®а  п Ё§­ з «м­® ЁбЇ®«м§®ў « Є®¤, ў§пвл© б Є®в®ал© п ЇҐаҐа Ў®в « ў Їа®Ја ¬¬г enable.exe +Џ®§¦Ґ Є®¤ Ўл« ЇҐаҐЇЁб ­ ­  бЁ­в ЄбЁб FASM (®аЁЈЁ­ « Ўл« ¤«п TASM), в®ў аЁйҐ¬ Serge, §  зв® Ґ¬г ®Ја®¬­®Ґ бЇ бЁЎ®, Ї®бЄ®«мЄг г ¬Ґ­п ­Ґ еў вЁ«® г¬  Ё вҐаЇҐ­Ёп ᤥ« вм нв® б ¬®¬г. + +€в Є, нв® Ўл«® ¤«Ё­­®Ґ ®вбвгЇ«Ґ­ЁҐ, ­® ЎҐ§ ­ҐЈ® ўл Ўл ­Ґ Ї®­п«Ё ўбо Ё¤Ґо ЇаҐ¤«®¦Ґ­­®Ј® ¬­®© бЇ®б®Ў  § Јаг§ЄЁ. +Ћбв «®бм «Ёим бЄ®ЇЁа®ў вм ­  «д«ҐиЄг» д ©«л enable.exe Ё meosload.com,   в Є¦Ґ Їа®ЇЁб вм ў Autoexec.bat Ёе § Јаг§Єг (Autoexec.bat ¬®¦­® । ЄвЁа®ў вм «оЎл¬ ⥪бв®ўл¬ аҐ¤ Єв®а®¬) Ё, ࠧ㬥Ґвбп, ­  «д«ҐиЄҐ» ў Є®а­Ґ ¤ЁбЄ  ¤®«¦Ґ­ ­ е®¤Ёвмбп б ¬ д ©« ®Ўа §  kolibri.img. + +‚®в ў ЇаЁ­жЁЇҐ Ё ўбҐ. Ћбв «®бм ЇҐаҐ§ Јаг§Ёвм Є®¬ЇмовҐа Ё ўлЎа вм § Јаг§Єг б USB Flash ­ Є®ЇЁвҐ«п. ‚ бЁ­Ґ¬ ®Є­Ґ § Јаг§ЄЁ ў Є зҐб⢥ § Ја㧮筮Ј® гбва®©бвў  ­г¦­® ўлЎа вм Їг­Єв 3-ЁбЇ®«м§®ў вм 㦥 § Ја㦥­­л© ®Ўа §. + +P.S. +1) •®зг ўла §Ёвм Ў®«миго ЇаЁ§­ вҐ«м­®бвм §  Ї®¬®йм ў Ї®¤Ј®в®ўЄҐ ¬ вҐаЁ «  Ђ­¤аҐо (NoName), ќ¤г а¤г (DoomEdArchangel) Ё ‘ҐаЈҐо (Serge). +2) ‚  аеЁўҐ б нвЁ¬ д ©«®¬ ᮤҐа¦ вмбп гЇ®¬п­гвлҐ ў ⥪б⥠enable.exe Ё meosload.com Ё Ёе Ёб室­лҐ Є®¤л. \ No newline at end of file

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 z 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 Rrz!vd002ovPDHLkV1o1i%nSek literal 0 HcmV?d00001 diff --git a/data/common/games/pig/icons.png b/data/common/games/pig/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1d07b1b25e14715c96934d85d2bf7c79261d1f GIT binary patch literal 112843 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 literal 0 HcmV?d00001 diff --git a/data/common/games/pig/lifepig.png b/data/common/games/pig/lifepig.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa42d72ba106640dd3361d8ba5c1f384f89a292 GIT binary patch literal 6101 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 buaf@-<>ec&mbfcT00000NkvXXu0mjfAVsQ{ literal 0 HcmV?d00001 diff --git a/data/common/games/pig/pig b/data/common/games/pig/pig new file mode 100644 index 0000000000000000000000000000000000000000..25d2c40abce6cbcc14468ef5d1a874a3e6d9726c GIT binary patch literal 156155 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�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≫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 z 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 e`ch%1;mnI8`+8 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%0A+@P0uG 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 JPDHLkV1nSxbI1Sy literal 0 HcmV?d00001 diff --git a/data/common/games/pig/stars.png b/data/common/games/pig/stars.png new file mode 100644 index 0000000000000000000000000000000000000000..c31540afeb946a17c05fe8abb8c687d9a968a0b7 GIT binary patch literal 1467 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%0DviCLKnaU0!EhvFj^K&1Bx=OuoRGP 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 W0@lc>i5>=eQ;=1WDSl!2>AwK%AYlFg literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/100boxes.lev b/data/common/games/soko/lev/100boxes.lev new file mode 100644 index 0000000000000000000000000000000000000000..b7836270df83e684b013c43900215f1e6bc3072c GIT binary patch literal 609 zcmYjPTW;ep3?yYENZbdsz#c$H*dyrS7De}?KmFP-Ca&8WP;JF^&|W(y=nfO0Ci%P@^5apFMU2z&B8lSWIH5)~@A3p0CcLJ`rCuUh^(UaU8dACsG> z>Fu5F*c+_#Zv%wvv9yjyArGJ}QY?q{->>7Qxw;*4cFSw;Ubi`OTLG&dM=&NXws80n z)9xp6b0*Hi*uQhCBDovhnLvBH=U6AQvsDEvPj>{eP2C>0nQkG$sSNZXMLV^kc|n7X zj7tutn81-+N~*8=HxwLUjM96O+NrWdBFS%|V0;bTE95ro>qm&m!?NVwJxwo^>VPty zg#}1p%dY|#$`&3tfdQEtNZCNyL$zb3zgp@>+B}D&@2W3YVz11f_5gE2$KQV7A`Nf|872X!}IW|1Ht%F dKu8iJ0I3h+{3O&3v{8Anf~c9_=RY_@)PFj+fd>Ep literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/990602.lev b/data/common/games/soko/lev/990602.lev new file mode 100644 index 0000000000000000000000000000000000000000..541a5c72ff89a64753df7fdada93d7d4e3d8fe07 GIT binary patch literal 2377 zcmZ9OZF1W-5QZ0!Yp4I#JpqnDQ4}Tr13zR*?o7`BsTW|6o)e_c3$kgalZhu0fZg|N zSN{I`8k_xWIfc>7VnfI_>^^^df8+D^!sl_cM;I)-`S5b(;4LoXpD@i|IW4 zJnn3^fr26Puq+%052HEPX8ZB|8>Nqzkatsj=c8w;UEOXRQM|V~3~@5gR+8|5$d*ui z*xkYk>~u{F1xu~3x*qkIy65|DwD$-edk!%t=W|i{xO!S_ECDc)f&f~%?3-({_tA1O ze#9XZoi6{J?&pwWt{|qxO8^fQQgpq3jr;Z<(%`o6sLD`Q8k`(pm?{wIO6`I|zX;A- z+;=D&9FY8Rq~yq+Rfe<`K3>Bd7vJ!B(dQ7{_n&$R`3Dc7nS{x6*b1M(n{ekz$KNW` z&9nVk1*d|hBaI3{&xtZitPc3`g$94~Pu+a_weheb?d$mB-s zLwR3Owr#x07E2`#@h=i3=Tz}Qvx*(#+is;MQ3`)Y2jzMr$+V4Pd%QXX zbw@r8D5rRA`n1yL1;mML_!A6~K5IDI(=GYs5ed4=qvE}~(VqWfvfBe0LRRr)8=a54 z$1yw`K%@TPJ3V}jhvtS84Z6t_NY-+Pni=tn;GoxlS2iXUy{tFdTZDm+p}54YOsqQp z77quZshx-<(Sl&1X~Vw+ha25J89as{9=eIszgK+^nyX}sQGPf0gBhxs(<>=M)NQ06 z^(-^is4B9OR##4U<~dEapn>_Wf>6A+;^$dn`ux}psR*Ns@~=GnxWv3;PK5}pcNGTclEM6 zd>H|MXmDT(6w%!R+jaK_-$hRSy-qQy>{iw2wU}@f8WJ4e64&*&FslVdN;hr7r0fXt z=_lj`<`Ldem@*VM!~~@~*M;@0VpDk=lkVfrtg;@|G)EHjRf`@QMzwllL_PhvHkGur zR%5(6?(g9OUQL-AQb5>~$t+gPvE7!i)degpf*yw5RV$bajN;rxf>KD*gY|E|weNm% zlAB?1n@gyy> z5F(yK5fQ?+hN3@*iLc#BIT0!^+)ssD>&I)$k1+4}k^rk^4wOG#76i7jTB7txQnCS1 zA6GLoL$uW8HJoMy$k;0;g8PNRRpq~&d{QFb0LcR0Ni4-{ayCi=1cxZ9&c&Y?5 Hh(G=Y99GY+ literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/aenigma.lev b/data/common/games/soko/lev/aenigma.lev new file mode 100644 index 0000000000000000000000000000000000000000..5ebb8f6b825da585bd01ff3373c5c1704887a0b0 GIT binary patch literal 5650 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 AOaK4? literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/albg-bst.lev b/data/common/games/soko/lev/albg-bst.lev new file mode 100644 index 0000000000000000000000000000000000000000..3d7117a684a58267f48594cc32e20e375bf1b05f GIT binary patch literal 3239 zcmZve-E!Nu7KH(j)Q=MgwJ z1Oe`!wb$O*;AMW({rUTEzu%8GxM+gUb}-on6HPY3My>Xt3Dcdfmz&$7u(1b|kPS9h zJ(FG4Lfc9keZDYjkZQ4DViWER#!Ton=zWjDieTFecC^DB5E+Rq1hU=Z1>M17VHVb5 zmS)$>@?!z9OI`5M4)_awbgAe>ljK$Ygh^OxY{ZaE==jnR$EUku;vwAxe`pbNfV9B2 zj0JuMHp*J*%4oujF_k5+JfnLLXGy}#56J2kT zi;BSXCm;hG+A~&$hBu#@)LbvO%Yycc8-dUtkjY)LnV@~_!T7=*XGAfFh{dqDUKUm3 z$qh{)2i)S2e2JIf@eoL0#)Z(i@dvVJGd5%n<}hhv7K3OxgyjTpSm|SL$&&_e`>(iL z%t{@tO*hSFz z5>a0Wqdw5c4rVB>Z1zqNn}JtK#)TQdEpDovZE7hQlnIdUm?EsvW*fvQ4$=y;xCbh8 z^1VB_NG>FahCxrS30|Nsv0f5gxKZY<|JH^@m|rimd3E}5B*XeH#%%Tkcl`PF@n};M z`%@pAK0R-wo^@s>S4k_--&^ zH)@ATXpx5Uh${pfL)HB17gHk-3;idIUE0 z1E;hC90!@OC;+tV+C8v9SyQ%ANw_Q)kVb|VgiN@*q89A)LMkYN~-bk+I(^KJZmJM^#LJHjd#8(l43m-X8A zZ;C(0ch`vZUl%$2*NUirZ|!{_6CNnW;oHQ%z6Q#nmeY3aM)sX}&Tqv4iW9wtH8-}D zm0yupcx7AY@T_&Ty)TES^ypo3KxblhvL`V1zAxLle1T?;+3TghEy>$%=Eph4ZI}m_ z?Gd*b=QJ9tEt7HfOGjpz3Ipd{@&dO&&hj+b#zk;($;TTt_nW$*wp(p~{WiEvxIJPn zos>Zi4m0-ur{fvlj;p~*>+^(W*N#hMmcjU`b8rUJ3zWQ5b08p!^o}rvSnU_9@WYF0 z{*Ke#hCFn*UF^JGwJ=ZEr~f&jFiS#i+QT z%q-9p30eAfz0B*Ow|#s80nJwXy$4*tT;r2D8`}AD68h47wO+jfqeW7?wfZ%IEP*UJ z^@e5b;@hWh-C)jcIQQp*@N9<8bJWhKoIfAi=*`)J9_3*E;KsZ32$xwd|M&z9PKneeC+QgYSs8#l`=D({+ z9tL2WD1zXK26@y@(mPMyMjbS@kM4G95xlB5@qZ9ITv^J4C+DWg6cNu78DA@Kkx^_n z)L6smJ$3NiL-~n0BVQ!Z1Oa(dMyZtGIZH_DT?M>*eC3~2Ka}g*+ z2;YF_L-%4|It04-`88o`3gXLan#EacvdgpR$U?&nr#x+TGRi8(aDWTtK}*HHuU~Na zrqM|&&avgNIg_91jN3iYFsMwrgC}tWs=_Y(5-K|aXKE5>^UVbG`AEPD hHbY4$CdBXyn?xiDlotu23^V#6mID%pv1pFw`WLgwT`>Rv literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/albg1-1.lev b/data/common/games/soko/lev/albg1-1.lev new file mode 100644 index 0000000000000000000000000000000000000000..d300957a989c5983abc47e46e7d85e4b977cf2a5 GIT binary patch literal 5825 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 literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/albg1-2.lev b/data/common/games/soko/lev/albg1-2.lev new file mode 100644 index 0000000000000000000000000000000000000000..2867ea5c039d6cee8d9b6de80d707c32b52466d1 GIT binary patch literal 4374 zcmYM2%XS;N5r%Q;=1r2-)Qoeo$f6&C7AaqL1)xcaif8-^m~68cpOYu&6DZ%0W-_PE zZrrNsufGZf$k)47|DQkq{pY81u-<~XntXN^lB+I{ey~cT483{V9)0QFuj@?{cn*^* ztT(R}nO`-Z+#k-WOWs`ddYjLq8*FPX{c8U7etr7Tr1uZyKDps{Kcud%2CN}5KiU1H z>nBP71PW7IlqP2bimS724RugQLblaVn?vaACIN~ySTMgWZge^1t@&wD?%uEe__Y~7 zJT8hmJ``Et_oK^^ZuPLWQ}r zMgdhFb9_$`y@7rkJ;oHQn|o7C@xqD{Q)g?e#?;$gifNJDTTDyycAr+ZAs*|CpB`g* zc)xDu0KB-fv||4T6PDjivKZp_6N?%3ET-OR>Sit*m833*T*@cU)Ga5v${QfMl-7gjgeHd%eBn_IK|c? zrjb;U&v2Ikh=IWm@G2qo#Hh^PMpMYcI86Pte7_Fc=E&E0Tw4@%iENw*y(#oqO!Cgx zuFfR68mzjbD>#Q!BqS4PSG!1n{I)hCi%&GG3I3CjOw+JK6{{>LX^`nlXDibA??Z#} z?ebvD@6cDBE!juVc%+v>g{D>R8Ap&F#MPiV>u^{(##oAEyIQQ_x6D410GQF78`+U^ zLbUk;3UUM_h{8W&@K>|}29ifpw3zx4-><(sF52GStzTD)sV&Lc-q6ho_IvxvW;c&i z(9L7CWJ2p4ZADFO*49v(bQO?sZW2mDqorEV+-T|2w6GcSy~W>2-1`~Mr&nhS^y8ZZ zOsO~ba4``iMl=qZfiKP}7exU*GJy8^{d&KdwLSNfKLXX3+K^DOEfu)i6su1|3e_kk zsHmZiDC%-Jc{aj_S$ZFieTvFG=2-b_g61-tpSox*R zZ`z!*-b42mj;^|KaxyPngoqE>%sUu#McbyX^nkeuy?BA)L6D*{>kTZ1W>hguiz)HJ zo)8N9!wC=r{!fd)?0+sQ*q=>dYd#8)}h6B178rWZm?BU9M*6U#KfS?c7gK z2738eNzYIMwg0x{D?6Qvn1xF&fk`_^{s}3a-C*HDb$D3MO27G6lDa4gOsjaankudz z?K)(djE?gt))a*tazByC_jgUp^Uf7&^s5{2DY@-}pbUj|hHX6s<9y|;RWKV`EKsQy z`1fH>zvoZkxU|Ur!`$gE0SG9Klev}U5!@w|y;an8R0~`2x=;t!<^6j1FvEFPCUoeM zQ8I!fXIGR916y*D!aNRtK*9pKsmN9BL?s+OrQQ)@KinMLyRtUVkeh7V?3Vp2*k78`{sFnztz)6a3==DpqQkowItP%z+QkiH$>H=OH*G zD^-#4lOOX^0e+fy!1I^m9p2m-s7J!NFkg!=(u!UV44`4HhN=UOQ55o1>9KGOPp6o- zZfhGV^DXh7zjmdYRB0DVgXI3zBAuf}8BndH%{%oX0T9WVg{c*zq)u&Y}O&xim%)$@8Xb=`O(}y4FCX>KMk4MEz zmI-?r@lgib=_hX5RMsvD%Cn%W2vrL&I=*3`DpBV0>hxF2?GOIEV3J>vZqO)r=Bukh z(y9q)?C49ptkaSJcGcB5QQeP~t0C#ZYV@^@ zUZ9^2N+UmX;wgGz5gSm`RhDD8Ix+sUV}%6Tyb1vO3yjK*!A)Whzgx(l0dhk16?{#G zB_Xjw@gA9OMKAm?ZI}7<+J9cWxzi3Ja+j7|8XHh*1%b&p*#dzhcd%_)1n|sTKFR>dDOIzP zR&W4B`gL}j2_u*9$RUWP5uos@ip!&Wz8f%q;{;bCf3>r=VbTF*}rUs?C>RC_`5nlfuto#`>69K>Kb$l``1tw#h;k2U6ono zi9>Od@l~B>*XB2w%@S@+>f;9}*p7}q&(ll}=OVMKolf?=ESw^Ln-8?Zx4YNyCcqrR zyhjXXUsp0oFe!y-X-cDC}u{qUZ@ p&UJ8dOGLpsd!4erl24Rpi&bv2EeWKwV@1P#*8ag4#5(?`;J<>T;$Z*) literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/albg1-3.lev b/data/common/games/soko/lev/albg1-3.lev new file mode 100644 index 0000000000000000000000000000000000000000..5adc82509370154903c0dffa2de70830065d82e0 GIT binary patch literal 2652 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 W?ADD-7=KSi;);p82f=7pJN*ZhCzo;n literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/bagle.lev b/data/common/games/soko/lev/bagle.lev new file mode 100644 index 0000000000000000000000000000000000000000..43e063aa43542ca2552218977dbf544011d08a4e GIT binary patch literal 1712 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 literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/boxxle2.lev b/data/common/games/soko/lev/boxxle2.lev new file mode 100644 index 0000000000000000000000000000000000000000..9d58ce2da6389b44f1da3917b1135f0f1d21cbb9 GIT binary patch literal 8811 zcmai(S&kz)l7>mTme{h=B}EqMkw9G__T|k;mtxDB$}5=16bAjM>ghRno*?J@>B`FP z1_lF+wW);+651mN;0=FcxQBmU?Hz9K80^z1$PyPnMF%A_%{2B z1ts?TG{hk?JR8!tughin_4+yX0T|8qVITU^+BNhcKZEHw{d)5{&y4mwp#*(;zTWTu zt>5MsuM_#(*OXKFud=pv`MJD@_oA5-(A~Xt9{Uo#z;F}=lt zqI#494-RE`5jT)}PaZNFVJ6hZGs-bB*Hs4lr?ma{_2XIh>*d7|wqU6thnj3Pb2M)& zK$|vO8v&kH2`ONqtRyWh3(v`u%|(F@4VJWLZVQ{gNSUC&e1*Y;5a>V_f+bYP2o^Ie z+9TjDO1}VO`MLE#?BE(HuotdU#!$l8TaKXVpHpw0R`fk9uEX=vKG~1|Ic@%jfId5j z@)W-2mLQz14aJg%#&jHD!o*y(j+O=ij&vDtl&GG?w>TU_@dFfZx~C(Xm8HcoZj+Sh zwzhzI)C@G41&BYfYLt!+Br+_ofU@_YAd5L{R={CKgD4T8JoCVD@ zJQau53fqkZXUP*H@TXTaQ2-bJvCPp}dS)03Hj}RSs>kCZYxsu;4L^5wyhAGa z+kLm2*KPn*b8y=sP;)8d@JJ^a>*O+sDbsr{p$1mKTUhT9ryI^~@q`0QO%IE0dX}Qj zP3BVr+lFe2!eg8LmF~(MlvnFfa>evJ@T0x_~TEYe+;i3I-XgFkZay7 z%xolDoo&>28`*i*Rfk1DyZ4I1z&F{+B19R*M^N5QoCaIgWXIbXB0%HnV!m6{ur9Nb zHboeV{6~$L1Cg;tQKbvd;02qb;9#B0XrXGXQGa~b zpObyUtMbajpMAyg!GjKDYH$lPZ^jr0qeiAtHoGMcs3$rTOSE#l)mFp~S68#$Y}cV{ z849?Hhq@5Dl+t4k2WLs=*}z;7rZ0Po@2F*CAeA73+CmFRR<@wxjbd{)o41> z7EitP$gZf~7s7(0+|J(l4;kfbarQG@?&>Du>B~uX1u~Xp<-hl`#9TL#P^@$XWZbC+TJ6rd1gMup@3ldI{(w zISf1?AT5cp5hpR1?1^{}ho^vDU(7yt%m#pX!y5T#%8h@G0rBnYLco`}2lND9GQz+n zA^HjPYhPbq4aag+>>oziMscni4pGoyVQLa_NiGDKSbP_D+UD#Hh1Dc|+S0_2nSWk$*rII(tbohN z9CkV!g7EdtOmc1GR=$tdVioPQWcZ8<5>}Adi%ZtF8oF2=Zb0QMK@ox~ctJ;G$)va~ zD($7S+c2D3+%4b~H4JP-OU?_Uu-xNHDj&|#4PQS;_tFxD5{6Zg1VP9zfj`3HO*ey!;q97$^@8er% zzZm}|ypDhq52Gm13c1h%q1s?pz^>gGJbBo*aTX+tjs^(CyYvLs<~9#6GutROZ=AI= zw)BeF(%C8_B$~kIeajvZCIdZqe9{xrFp$hsjkT-u9a>dFxPJU{R>a0R0`c@-T{T7N z^zI`nfyM0dM;N7|(=gZ>XDG1SRdk?%g1&%ZY7QKPnf1c@xy`?PnQVA-Aro$iE+Zgp z_$BpB7#v8RvRUdiurifR6*-)B&|C(Dr*p+DNkXQ5Aw)~pH-1#u_K!$+oUwhTU~nqlb6pJmPE>!N92as~E5bXp3?riM7z#&| zKAfDEtBkct(#IG!=n(VZaCDi`8oeW57DhTrZ$~=bnqzaf0os_ZZRn1$b1=}&_3>8u zuiGXk0%(objq{n6je{&mXPIRT)9oOtG3de4NaqEiYAQ!t?NaIMW;rYdh;H#eD|&@8VY*%E@LEp>B?eGvm2Bi%qXa86IS&Y{y* z1r_~?SrM^rtj!qU%8)?MBdiaBHFT@^!(*RO$4}H^H+M5aLM+&W7yxS?t-*-`S}L&y z&m!~Gs0=H7AvP}!qv>lA%n~=597^~p8u8(!6m)t5jr;h*M$bSxpn$NXh+iT?SV7cy zujoOCf973qG|2TY#CYwjn}^*IJF>IzZmNDlhC?l(IZ`eXO~}ZKya{#mL};I>v0sJi zFG8l;idvPo%tT1t%?HI7so`vy|IA&C0HAab;z-5=zv9$u zVk8c!M|+%xkEph8?_W}errehm5sO8wqOj2cxu@zNE>CsO?ZXob`#6BoiToZi*keER zm32Hl9)z(HDmkU{x_u=3r)OsN5El{LoJWL$XD#`sF+>Bdc}!yOOdIg-A_xcB4D3Zx z`C7YOwd(+e5fidz)jqI>S1C`j@jejW?k?j?;xYm<{U5j%+k%Y|ZEuC+ZO~JKrl(kr1{gg?Q+L-KWlP-S57;Sl+mfV;vgh7oFKz7;BDALh#k~S1QE_{B z^Q==d#$euAx2MgD)}|U}ILjPIg1uFw2?uLKiu;t{e*zN;G_klT;aR(q=OJU@}UX29Q=7rh9JtZ)9x=j4!C#)aUDYg*Z+@*VA)Kcz|=yMLiGLB!p`bR ziFRb5D>??UAMiEQL9lObsMd6bm`4A-_X7$H9I_e)BxU>vqn49;X4EUv^F3F5I7xGq zCh~qQCz@2CcbtTl=iT4D#f&dF^TrHsyhxn}-q=IwbTGi|aHP7w{p)(J!GaPq5g29H zgKnEzmHqDTzQkXeyZmhe{#oDx{o^}FJ)8PRd#^dq4MyXK8K9@u&(rsB>Va9_)y#KK z1}ZUIGnoeZxC6btnuGMh9ZVK~WF?;vKq0)CD6ha5&915|gq{)a2ga;erwZuNV?KOcfHupzH*1NA2fuswSMb3H-z1UUy5O z-8vD19xhLHF9+SZQwP|HyCEH0R+)~LQ+491*+vRLO}egF02o7s2ulKJb^j1d4HrWi z29$WI^8*P+nO+8axRR2HljI~O0Z*eMUI)1d|8D0_++-P<%NbN70K!w*rF^^GL5N1Q zC_}J=g{M7aR;m?lp+2z3AFjh^;Iah@2xG}wagQd-LL;w=QIvk-P#}i5$X<>cY(z zoj^rrI)OgxYHU_nSdbDMgOT(E1`iooM30CR*XF5&F*=8|MlwQf1yMlxZzo*6>Zx7Y2;meNC*S5tAhqoIbFtAMWEotYJTNj?}Cbv>H5- z;tIwPO`eAaoQ#&yRfV}-kY&i74-Xv95+xrb`VO^({V3iuDEb5g8aJ1hsibTiH5WE{ z%^@-;SEzPT?HFRoXAC9mkK}Y1?y9r~CrYZYL=7s@KtPPsQgLXSvv@8uRtPb)jf_#v z8k}VI1+8OU)X51RFYp1ZjVB_IOe&7S#WSGm*5YK(P-bkpns-KZaaBMFP&bMqF0YNK zYp`f1!wEIk9Q>ERb!%`@>-{|tr&@=5E?rGLUU6TzQ@z3t0R$Qbs2;IeBXlyIQ9H>= z0qoe7`4FVZvJstBH)*6cURUfXAKK2gP*y?pc&+;sX)U15&Qi}|tGJB9JznrM5E|RA zZFeOya@Uq1s2NGo-mZRX>uI8%g>~%+MhbqsKeMxPN@0h~;M6Rz0F<6&q3tG( zI$`E#Ff$<9y=7;`56EflF=OQ0^1;x^N5a_SgMLR?P+p}0epI1yxu}ee?5d5(cgos_ zF)36~xMz8V)wyqO`kpLQr)Q8kS*%U^J80i z$#I3)Sh;dzZOFa}wF%r(B?MuZwOo-H$nE>6R1!CV`FCF6Wu8q8srVaQ{q#XxU8U`j zt*N@EpAxv$83Ep|LT+~Ka5wT7dn#2TTNO4$bkS+`uPfa}M}9RHHsh!n4QnH0&KY7O85<`Fz=#S)148^WG!Xr{U{PH9DAsSd2_*0w zG7+h}pkCXA49hgQ!)v^@^OSI)bLg;d1m>JE=!~!v3WH7$r-O$kTxExqj#Ys$ATGIO z#R^1@zNzgt@cSFT5-6lNreO;ayZ|Osj$njyts>^o)8mqt&(uLm=Rmr)5hW^*Rf$4a zojtJ^^oz`gQ;B#7vji{w#J5j4ls6&SbmWiFQ-}Q-Sda-|uu#Ch@AeiN?4J>`y3Ivv zJ5<*2-OqKGU`JKrEQSO-&cf*U6udm~16*V*ZC9iK(4iAdN__!G{joTDIN~=u6!;1Q z!*LJM|NL)X=R)(1p(>M~=+~IzrNAF`%b}Vaxm(3qDG0sKVLIYq5q9${;HScVdGWdH zWf+0RL2nMjg*UsM4m%x|^v*3yp(bsR%ge=<`*>*lBK1lFY(fhMYVsTOJr%E7%~P^> z9(7T=oeixB5tggtCR%uFFm@(L);*1_5%=u}OxjK~`+L6!Cr?z_HnoO*g@PS83N@-}J_W(Gqa$@~+# zn?w?8`mlH6C0?;jijlQ}T$F7`;cJXtoV`Rw95+(e}3S3L4UZ=2` zMmbP&s#`V_-L=yYO8}H0I;eA0$Mp`(l}r=xGdaNJJ-<{9-8Qqp_SgWvNWyGpw_eo% zH*9kE79uYnBulS6x#qt$c)|Mah=utNov1q`KRy%cNBz)+RI)L9V`|6hdxDitD*s?Z z@0&(y6iGp3-tx|$gyHJqH%xhKyl|NB&-bAhRd@Jkx}9yz+hRNieeL L^w2)}{oDTn_iqqQ literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/cantrip.lev b/data/common/games/soko/lev/cantrip.lev new file mode 100644 index 0000000000000000000000000000000000000000..c01226b50f01d82ed3a94ef810595094e8ebaf89 GIT binary patch literal 1214 zcmXw3ZEo8<3?^l#jolZ6x?Mn5aJT)ZB&P#*3MrY}22EonPB*;A?g_ew+6EyuB8hxH zNcye6ULEH7WiX=&CXi6VuTY>=Y+=vESn`eoZz#UM^<7u?$6rs=bofkhCD;{{oW=;9 zyrqzAVnnbNvL!T$g*Gg!NE*C;I8T=){~EqKD%P{7WD>`6E37L44`E`FREZ$1iGPE; z{(6^>`{VRwY{USzo_orcit{9VA`jLjXa?{H38W$43g0XA&2hf$o+|U9jXdHS&>0XU zE&;P@wuvl5LlKJ$veLv5-oC%xtozezK0hze|CwVOc*I#1t6n)tg#+1CkU&60I2bX$ z9ZeNJFE8`5Uxx2S8YE3%2LcXK3m9MrZ`~m&siewnHF7lZPxvlhp7+P)D~*je@RO2D zdihqgMiw;!i7EoDDN)wfXrvwA-@2|_%3*)GOw&O3C=IB!8hxUZ^A*4Pg=(lER0SMI zhUD)0;gBEafor_gA|^ zUdpf`+QTS@Ba$r|s_A81OH26Xil6y!>qX?$#fc zl6RBaAAjZ_(;1%-?Rh{UD&aocQ*}UlJeZ8o>Ub^mfBkAZAM!xsmEhAOZF1-+@>WWn bZH9E9DZY*c_;{p@XmQ4TF}?siw(q|IwTk%S literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/cantrip2.lev b/data/common/games/soko/lev/cantrip2.lev new file mode 100644 index 0000000000000000000000000000000000000000..a6f37f651d53844142b9b9e536221fa25ee367cc GIT binary patch literal 892 zcmX9+ZF1T$5Z#q91e_ltC-4#COw;~dSxy-ymsp25;F;Da;7%vU<^=RD9mbOJYTwuD za$nv}ry>99rze-@k!3Cv2&;=e;q8Tm#Ay{tIg@l08D(8l%63rkUtH_j;(96XijQvB z*RMV>8W;y8bHjN}4O&QoEi9}-u?kAUi4t8e%jKdQrrn{gxpmQrLs`)ThHL_8ojC;x zLa}-?Qn&Tj%l&fEkNaWlYv20h#0zPa`2}>5AvgdfaP&&*A_d3~^hpVV8{Y8svRbYB zVSkwNFxKB(J2TqUL690#Hf!KybDTw~f$?BTM8H8~^sR%4)jXd1?)izfkcG1*S2<=0 z4XX<|;4^#&4L4-TP{oZ}Ki(+LB2@^yg`nlqhVkBy6XZ~WOaT=_ux9Lb9PhZ|IlSfWc7MTagNak;`y5yNcx0ci#}LLLf8p%!^zhw^5Y;HWGYr$76*ull(y z#3jtgs*x244mj)oDI+AI3SRI%D=N+mGf+{mwxUJS<>D}m`@VkMLWWe%)SQe{kcg=1 z!!HMq4Wq*?uziMy6=9ikh-_@ma~mCuc4N0Yj_+Olyfs~}@#-6d`v7*u^#zL0k77gR z4j~vIh60)d#{#C1e8OE^-pxOb$LZ@kZAgmdHYwmhe~=I>#YzF6^>&{Nq0RLlusg7^ literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/dh1.lev b/data/common/games/soko/lev/dh1.lev new file mode 100644 index 0000000000000000000000000000000000000000..dc526c481882e7caec6996b239b2eb66d59a8dc3 GIT binary patch literal 1067 zcmYjQO>f&U45g$bP10tSyP; zf&gX0AIv}~$P9i_hA?NC*$Et~10>PhAOnh5#g_`KR3Wa)Ck#tvdvDpMiv%iFwfUKc zq3sS|k3BXUHwd^=bTgk|N}cK|N_1=l^C(&#bx4O#qA8;wwi@G=^?xo<*8utF1Ww(R z=x}s$l_rbCfsqOcHQzYIzb>d4fUX2cvOMQ`qAj>zU$1s~cqR?GO%4_$s7rb~)fL1irNX>0{0qA7QiEh`%N^p>wTx4Yrk zy@b#EL&#xh^W$6j65fAM#IxBF>!Su~EWMUG?rC8tYD;uC>N1XL^w}}S*Lask&>8kc Iqq2KDUnDOG9apA;9Id64_9heEzN6-isSLivmgEM^`Dn|^iO9DNve z!`Aw`1*^BMfdce6!|GKlOUbMC?vp+0?7m8fmMj-j19rmct|a^ytnf6m zwuC5~J3JtyDr{;nf*9?djN+|wxVZY$9KAiYbO)hnh_;`1Ou^8QkYeS@E}U}bI8$hq znt&Ls&uFO%4zfhRmji%aNMmMucec2 zKiFs|pr=+10@Rz@kRx2mVUol@$4UA73CW3`tG`ko;1XB0(-E$sIR892I$XNID8I;K z;Sxf?>zL!}^k8WnbIOj~?315r9l!^hxQQBo3TjJHcL;!F1Li_bBdpwLJikWItHt>b zn9UZ`tMwC1Ok#$D4$tto zqHhOJzxL}()vo-1tmVW&5n5aa4!658R{nYm?(I6-I@an9c#542qKYj;=iW{qznJY` DY;g#A literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/dim-york.lev b/data/common/games/soko/lev/dim-york.lev new file mode 100644 index 0000000000000000000000000000000000000000..45d4924208b74d24630d77dcd76065950b107d1f GIT binary patch literal 2156 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 V2&tCOjni;C&lH9d%(qUy{tHzKtmyy% literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/grig2002.lev b/data/common/games/soko/lev/grig2002.lev new file mode 100644 index 0000000000000000000000000000000000000000..084537addb503a2874f8745175a70a580dbca3b9 GIT binary patch literal 3085 zcmaKu+ioMd5r#>&jHC9H!1!1KTF2bP495h@0EZ)#gTFmiEGWnDk|Dya}c^eYLyurtC|7X9ZxfwLLL$ z{PKKwc=Wlut{xuSK>=Q`oX;BOi3_&(J+#ZJggS^&!Zssd{XBVaF>FyHnSNu=lvZUu zmwPXOjDl(JeW^s0bZPOdv@t7jf@#3mGXqYZhdW>rfwwm9c^k0~M-~N{CYw^>fxfx& zh>IsqnN0DAXC#Z(??wCaTuk!M-Q#w+Q*Yjl8oP2>&jgouOC*#`$?@OR{ z*mA56u52?>5A(RWdmLH?dyllN3Y8<)HuQwlgff`g`I%w0gp#ksyEQ8nAv<|_p5#Xt zL;J9Kyh#urT+C{u_sj`uZM3uLHAXtbmkFx!eHk($k46N}oLWDQFVE9_deT0A>xSxj zy}8!(Tg+WE3GU4KJ;YT|au8>|tw+8``_hPNbmixMfZk39KB$=1GjqlY*0FlegA*o= zgZG4xtRE8V#RBU%&KRo&4VyRply&I}XdpqLpS2bLgwC5Y^*z7rhJLNtu{i$OVFBgp z()Va)roE}S3@9GS5QXB`rpqq!Jh~H&=;6`Fr|MhR4v&hoba9_gqgWbZ?#e8hQp#2{ zK3b^+c2UYWV$Ob4SBm0d``8WNH3Ey*%?MOff=wnaB918EnP!BTl$k-Fct4* zIlaxAtZ{5SXrUgqXS%|OfdCj{qSRBw@|k3S7+ zP(G`_C{UXjE9xo8j;&BkCcm~{Q^Twf5ZkeWW;GOBF?a zwz=DEwfGz_8XK8PUKu}b)vz=>yr~gIu``w_K1E3?zoX@};Pak*;tN^sZK{s>$98D{ z`CWmJ?TJRtu8g3KRta(zo%xrtG5Rkam-SkCS5t8{f%l>|isInnms(MlRM=ECy_GE5 zATX)n+rorwE0qK{)G~pqu+e~|Ncs#qy!bRcwRdT69>0#1JA{XMO8mF7xD`ov}>@cbY zpnwN8)`K~tyG`>~zpigKe~#vXw0n_VxO3-vbd*VI{HGF{nT!6p}CyXzbiKaW>ht*zym>U)t;L_iGLJaxtNLX$;8+LaiM4#GD!e zty$>&A3=>3$R%k_fE@W*GS5Wge-a+qSYpJT+9-jB*k(9Fm9CW<`ZuGPCrM6jpVoI@ ztMzr43?Fk+sO^~*Th3F#Wf?io0Yk#fgRdEPrFqAFdSb_OPYsFt0OrMI`~7PDpj~CT z%y_Gj(m@*Nt)pS4F$1JFTA&n6JR;RrOcgR5-jyEIF^ZZW7N6-1w`pfBUpHp8+XuwA zHa-<4mJb3FZ6={t#<$qv2;;Oj7s zF1Nd*&+=XB-b}7=yC!h8ogxK8Qw3Pnn4^&A19x<1;ZJQdsHu9CIxH@?!}_L6#NIb! z5}kI2tTPJ*2E6nzB^9aQ{J7DUQG9H#t7h|6o%x`BzvgTO1uZQ`XV%!Bd33=Edas_R zP%@PZd#)#dm*-b`@$+_Qf84G?c|C6qIOf1q4x-e0B`Ey6fP1CBV9TgZQ_gl)EC*Kp QbbEQzR$l#aam?ZHUu-m4FaQ7m literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/handmade.lev b/data/common/games/soko/lev/handmade.lev new file mode 100644 index 0000000000000000000000000000000000000000..258ea3c79cacb7f7a79ed14109e68d25ff26c76e GIT binary patch literal 3064 zcmY+GO>!GI5QV!jR3ytz3Z#-fjv)TXvUUxCl%-^mMJ@o!*=3QjD>=AMpnMI^SW2-t zLt^^p_3MYmJYW5A{>R^c{e6AC{=J5kCS8RrPrBD9DZxKkvf2-PLp`tZ@_c?VIc&5_ z(Gr?uv1o~FlbAI&JhSYvy*Qt2x4LK1#H8^p(qfCa<)~ScJm|~wyV-O{?h>j*Ox?yX zHSX@%q)H;`{;k7}?gtBpXe1>rW;l(~G$#T)24cUPV0`SRSxO59oEUfL9$&{cYGv8T zU_;L^yWMs-(?W%&=AM3FLq^Kg0|(i3Ke-t z@+Tui9(b-rkL1N<;TZ0T`3Cr%940dwK@@WNHEOg5Dxq92#qTNWl7Ek{-s|hSFs*6} zzD_D0_<3I?jgrHt9=(G6VruSs-5Ul;gv{bCNS>#8*6CV;g*{njmrd|KP(qaEg}7~9 zlB~&BC5EPs>ZkW7a@O0$!@^c%0Gk7fT8Ce9XxKMf;#QZetGBAildn=7p!<*hx4g^p z8#MhmL)Z-mKmc@zNUMN52bhIe!Z?K740R$on4_*=DS6iO`bPG2(6r-MBZGO9ihOmd zl74>G^ZMgKDG{SM3Q~0?0az0i^Ps*wU(S$jky7nZv-2V#P>)Qn=u-(s^n)b44lmCi zX0K0D&rJ^j6j_q&0jr>wIC!coBO#haP(b+Sw~f1#8ZsWzMsJ;tWa3KoHWC3O53kDD zTuBr%vgc=l;NY_^Zes_#4_El4B$O9A*P z2gL}jnq|3Ro(vwSZ(o{qv?E?iLI4zj0N*9pE1Wj`=Ejwr$?O@_620ostPwoR3a{b> zo69}WxbNsb_8HeK^ZNITbJ>RXER%Ca=)vNJUiUNHql- zb}=LS^nH*XV`qr!;pz3W9A%%56a+GLWFJo3ZFA>x8feoIaNatSPd}!G#6yzC(beYF zMc@DIOew23rA|<`T|1JnrD=45lqe22^~iCADRf1|zCAM2!e`P1XS-G(O13Z@7r;6F z3YZrn#D=5E5!%_wk_sJw93Bv|w`z`qhO~r=ew{MU*{`UO6)(ua&`EgW#){w6*NP8B zl=Wen*4yn+nUKXFcLVd7k*#DgFA?0br6!)mSHXSX&3v>j>f+`3{nXp-E*wG`oR%-3 zH67`R-y7QiGVw=uPHtZS?{Va>L%$NVtI5uotCuq@&Nm23JT6a+7Yuz8xI_1GC?0ft zf&~ipJ-&E*d~G@P0z4)V>F9`%ZgWISK9aqf2Jhr<90sR0&B!RjRO_h?W}TI&syK!F=eu* zs(yU%6fd^?={N5gV+Ori&PBqH^R5{m2z{eDu-ZY_^u=fIWR{OX^d z8Qy=AaD=L{DnD8DZ3*SB9%?{84m0eTDQJ0W_->>3T}uU906I4BF``Y7OY9>tr!1`Y zLQa!|$vy9g-4=*B_+ys=pV{S0|4T`&qNvhb*Zx`dE8>iBV?*H`0rsXNWVZ`dToA~F zyS+~TG)&>RT!5FKldZz;TVT|JW_mv+@XhG{`aNKlhfyn1x?`}iy8}CGC`Cq;8X-@Lx< z7=HeSp{3Cb;)5lOF2dko>(rdnJJ|f{xx0G^KE3Gx*Kbm!`HTWnVko)?csYca59PfrbH^ zZ*I^8b@3azIlX1fkx@iHv5jVMn6L%edc;g#jvpFc*#Am+d)V=2qALte^|U~qP!Ml_ Gx&03#rAh(- literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/heytak.lev b/data/common/games/soko/lev/heytak.lev new file mode 100644 index 0000000000000000000000000000000000000000..55702f50c0cef2644adef438e32def4e74ca3c7a GIT binary patch literal 840 zcmYjPS#sMj3zd5LFwKI0=rI~WSUBbEnHbNh*( z?%J^gskAT>vMh?P6arspz)?CwZGa~3ffyTUT9dK~H%NKcWo{b&QcOHWLFFW_=$*2L zHPD!%_eny}xUQ7?%HygWRe3bPL>H;YWj-JHYXDX{83hM~t_a=QrOufwen!nu=UpQeU zJ$8_&Z}puFq9KJF*73mK<6G6UV-}E)`lx!8h#XAgn6+I?mI+wqbQEK!DA5>*?u1@x znNJ7)aUVkBO-Om9E9iKk8%;YYFUl6A7_e#VI%W?OTL7a2{h^zW*L<9DhoX=CldmN> z#Y>pHt&P>zz8Y5=Hl4(rk4xD`tgdW7e12K2#&4f#a*r)q4IPYaCw#4Cf8}LP4gaDy z|5scK8&&H3cQElSB1=o*lu-{jAu^V|)I)CIRzBGOu%+!RDx22f?!kan$qxtsr z>e4Rlvk7P3cu_V#laSI4ixzd~T* z4=8?o+r6|etqWx>e<>Wf0#qC6jCCI+|L-5mU#z|t9N#7 zKRSQvotFv{D8>NnTd?Vcri}cs%#+!mHP$=hV}J@7Sy`71AlH?F1`8%k(+kfsb1Xs+ zSz&2rwfTsG&M)l4$CE^M6#?Ii=|FVDN)x@5jVKaR6M9Ld@N-{mrRsCLaZh7kR0Wm} zsMIXhKG2&i|IKx~i;pr=Z)TyGx~UDNopi9WE4puA-@S8-8(i;H?6F^jT5tS-gD0~A z%WvP*@dID_fAsx-Bq7u@XTgN%4JsS^@eUU`J9mqPc|_+Gl1QKrz-nKFgdq+DNy~=W z3#(z)q3RA8<%L@;i;qP(K}I63;+OnGPnvvYAlhv62qeHOzckaZ%pET01i=jQk91D?)6f@FRY<8#Q?4*_B(|Jsm?-1Z*tc7{QC`6BA6rMEFZ*VtB33>D#tE}TG_pb5T|1(v=El-~5sn>y|U1tBM& zadWmx>k}si+L6?Dj@s4+D{&PD?(<$g8z6mO>tY9e7;R}HP@SKtn>PIXxE;egvVC|0 z&cNl5To3aO%Gqindq)iBn#}TG`|axmTHibuM7B(g_}ufA*St7OI<|4*M`#Ic`_YzQ z!|vtH^GWsNmbeGwW0L?Q7}H4LL?w(wL|l8PGUo6tZDfPm zTLSE2E#sc?v;JD0+;4~EE-&2j_7e$zzfB+pUVGp%^5&SR%7FG%|VFuB4nXKRV0U;ZXJw^(XS8jR#Ol0I$#qTG} z&|2FgQh-h0OoxS8L#V~yrtN!3E#Z!Dh~dFDqvnY4aPF4ty zfSQ6yZF>6obGFaT^AKeYG}CL#Hc`7FNLF3Y7cG>gOhy<}lHTVth@xA` zcaok490B8!Gu4Q;NRAGkWwQ4H&t5SH1e3Mu^j^??B)h0VdB!Dc&dV$O%!3 zC|8$mwX)AddaT&`0UJ+dnKLvAWr7^3+`#B5Ho;Kv(^oFUFip&iq67vr+WrL;h#*oP zyN`I_$(dW-LZYnz76F>|N!@8A3gsO^gGwH%-L{yPHr@Ss6JL8vo>4(|%9i^Nu7WtQ z&=MZ9QUeQ=@eqtuU`fKs1tAr;kWneD)v9v2~v<{_0um^ULD@LCpb8Dt4)C!Ci9M_LslgHw8ecf z75me8N*S9(bbIr&h{XLi3Xy76JtSZ7v$tpVc41prn+la8BUjsK;vhBTMS&<+!hYD3 zlNka4l#_)b=G&zLbcN-M9En4{6pG^Ihd#4_YqmJz89P=x#9!IwM^w@SMa>iO&hv;n?M1}D=B6)P{C2Sl)JB3X)*gBZ-N z@Z*k@a}I!eyEC<|9FlYFu{`-g4ckcGki8g%z?VQFDZ=o$!JGtO{dTPA(q1_t^gx@Q znhje;{KFISt1v{L5N4!3dI+Jkgl@6b14#ssVH`!!vGAXsyW3521kt>YPvTKp^0CGk zAlN2%OYVS?={e2*aC+(PZiwPCk;Y*fe}W_HNbrz^043mw#N=P(;JZc2!2+bVCrYyf zKCN~TN5I8wOA?qtGGjlXjY-Cojj%jcWIsD~cgv@u%K8(u9&V@Ni(S|to|(E%0s;T( z=g9CnPDn6~_>gpo6iLR+b>_y~g!9%sSu#M6tlw^HHqwk5+i7W}U_--`=pV5Ph`4*( zDh5L2@hA}n2+4SYN0h^mVz7gCLAmG9w)Xag=P5#a0=0bZ{MjrcC{3Epo&2{=@4!5adUr?R=7T9=VoUsDGw(8 zD>JZ-Y!lW~>>7Gbk3{JE8x9Jn+$KDz4rwM5TcY;pu*v;1#_07Q;0TdRnM|J}=WJ$D3NJ1c&|l{saF zvDVe>;kuxAz_COIR4$%v4K@sbnm-knNc7G=k+EcwKEn_cTI^?x-(26tE$+cq$j8m) zx11W0sD!~D5<~A$36>PIMWfK_E+moB=?n09>iBYN{wZwY7BF%&>BNU z9~LPH-l4b$4)&_izT*OCJZW6 zkDrHzwHGZxNw+vy7V4mPHM)|U0x>%pmpvZwq>G64jrq5Db+z%`SYKf}z{NVGi*?*r zbdmxzQf9*-@LetOwh(p%S&zgBX1!jRPqxxcUKYYZGz9*Bwa+V(a!M=!RBDlwhBQNh z5ln6**2~Wqy;LO}+8z*uVzbCxL~fxQ2{+HvG0c&+aZ=a_xG zK2Z08x$R!KYbumaFd>pkUHEAjw_+a%+^_N$+lQ!_n`LbKvB@_c%s6hmd@vD(s!W*q zaXmvD{1pApPTcy<8=NNUGE}D(oQ7W41wy+q|LVSAkLG}Mp*mQXsDnzADQ3U}CMZ}i zi}6oNQUbP zb9&@S>I3*rgg1A(oFnQzEdS~oZT9=+xVFrvXQBao#Io(Mjj+PPr~*P%!^OQ-JP{zq8#0M|A#L}Bq# z8RAiPcmBF|x|_a41Zzu1LEK&jRf!PB^r_i?Jw1NJWXo(2xQ^t5%c>@%y4`SP51o~3hTSg1>1jYmwJuj=wQ!{x|L~Dk zN5RSes4zFnolK>YQACbT4T>bqYBjd!WI+^i^PyseO4y~09?5PkZmmM`Gw=W@TWO4AO%vfw@4DI@3K;0 zFAG7SvYkNI&qqK99wHbgK;We#AojJn|36M#qC^44_5qAxpAd1@&H677lYl@_keZ(Y zIh_AC4}TR&`b4deDuFBF31EtO4EN7;3WT!FUmjsN03bk$F#7kL1Qa~ai^a{&zvtgA f_P}PPeM8}f-zqPmvA!ssP(?c8dp!v!l=}YzXl)yl literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/howard2.lev b/data/common/games/soko/lev/howard2.lev new file mode 100644 index 0000000000000000000000000000000000000000..a75f803484fa2fa7617ce739f660c76aac0c8895 GIT binary patch literal 3689 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 literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/howard4.lev b/data/common/games/soko/lev/howard4.lev new file mode 100644 index 0000000000000000000000000000000000000000..83d4431b6d33af00e9162f6247b8d0c502fc170b GIT binary patch literal 3393 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 Wf~AL&f5hB?4x>{Xg#b#rkJ(4tngPcE literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/jct.lev b/data/common/games/soko/lev/jct.lev new file mode 100644 index 0000000000000000000000000000000000000000..ae21dfd63846d9f278744e14b4551ca82481cafc GIT binary patch literal 19577 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 y9uyms|1{8BG%XNEfpCJ9s zQnnbNAV^W-?#z2{-VF6Ht!8ifmA&k)?di*NU87PTzz|} ztJ%fkpRVjVQuB#3&iI_{Ts1ivueoZrH|!&vIoIDFs(QQSSkJXLPIC~|r#8uF(=|bH zFPp49F+t5`XH`GqJJWN+vw35@O5`9DcmPN+Z=(73Fs+}+9KF<$6_O-LnnJ{>)&`w* zO!9!oQRqycHk}+3Cdd=jsi=NrMQ5V2QJ3h|{`V+<9fY&7<$opS%KEXe1i&i41bq^5NB`3S=ng(PvEg zq+nuCCo5e$Z!!!Lr&AG;1l3+W{dMv8Vrh@a;LAEP1i_+Pud|AY*m6XnFk+1SWG1e* zT;w=_aRd2qS-$Q#^#(xC>W^O*wp*?Gd*gQegjnoKWecliDZ3ydTcd@WEZCf}lzfzx zGGZx-AR?n4*2+nEWq!98RQ)@YuZo;f!JMMXmX+vjf{{FfORDMq*1s=g{U&xoCx;SQ z1+^lBH5b@pWZl!^_9#>)oLvi;8;sI+;4g<1$(uQ->Y6Nh;}*o;aXM(!fP>Hvs#(DZ z?<5LgRbacHh|OkOKOVor@&Vr8IlV zXWOPcLT6NBHS8UpOF1DwT9cP(aNAhEioJ$2Xu9BXzW z^T-V22!X|H4bvq_6e@5|x6MW~04F0P^M@90V6291s34{Bc2>sEo`?W~(^56rUvHv41uJQ?b6RYnV@7V@m6? zfMRTjnYZ)%Y!cA~eTPjZW$9_{pdV%S3wwvwE}NW(B_AB}d(+@#IOtqKF0%d4c4lQgOooDt!Q zkDvCu<`>U!Yh*ePV5q&kqy|q`GS4piel6wR9QiOm-laU>1&qv!(J+2-2vNZiz|)B$ z41B_Kgyig?PUCb4~HePIDONU z>1VU~Mc&GE%ku8l{$zi%`P^8j47^#j`?j}t*~DEi0FFEQoF?R5 znV{ z`G~t$WVJ5gq$amwBL2Wg+qmQt!m;cv3e4(O5|_QU`>VUUwm(0{P{}0JLvOBO)!bM{ qFMpnhp~f-l`iByu?>^nG`+hk>pBxc1EC4{1(uH0pmH0chW$+)cTqhO) literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/loma.lev b/data/common/games/soko/lev/loma.lev new file mode 100644 index 0000000000000000000000000000000000000000..2f7e9e5876f55b0cae924d55da1fa0aa0c250643 GIT binary patch literal 3026 zcmZveX>Qv{5QVFovK%?dfVx3nV1Pv1%>3(xlInSS^JNrS+ zEvCmH^p#{DGJn9{=IhOF-xZt}bQDFv3k8uqTuSOah};t{9Wze+ylDbAXfq%?VAUT>L5}V+ zjkavq4rB~g42IM>+cPZtaPJDBHX5xOcJy~AG{!$4X#x7S>)yGvt4Z%4O9hrpw_`{B~q|U8J{QBVaqv%pm|{p z3A(#$`;1c|jocZXDI72$cNtXN55Etp%ORtHEAfEYqHc8s3z^T%9Ch%WzAl0w$njZ! zi=}o=0-$fqyO3-xa8-la)Z+Ve$A7Z&fH7~T8LY#VW(AHPK5r8vh0~fhk&``3zVjfR z;MV6Us;ibmKlYZbwkQqAM>$}*V;M?2}d# zKi+Z`tKv7nQrluPLx1V~8YWG6X@j|`AXDf*a|zRVw~P$-yIUt|wGM5nwJLU~n&P=x zucauqIDDn`c_-n$S3ziQg&A)h`7zYR*=5s&Ll0xa!8onl&okAyABKkrhpIbq7M@9% zyBGlcpe?&FfF&#Q#;U?+tJz`BxUe8(yzG69+lddUu2M}B0V=8ws)=9EBKSUje@j+v zD{AY~InG4xz154(D!M5>+(#Vy`N2ZX@@cdITgt?*B?{d5nvwMx`Tj9C2fzKxig2DZ zK8)nJ^szQx-6#h6h0*59zH;S}H8-CsxH7gp5MZnqjKUb{NGZo2&ONOI$|m{Z&yFKw z8CRT-ruteJ)lk++A#?F#AO?saX4$L@=Xjwyj^TppM))QNdx$QkM)$H){%Mi}F@d^V z$B=EDHk~23)-x&eX|4qGoei*18db3Y=ujH&Aff*(au(cl_Ui=oscSpz9$*iF>aKFq zT{)7oP*>tHEW0oxyn7r9K!#PafDI2_ZFOlbS{mW}pa&oxSFfBFG;xh2b4Nj9DPXVj zXi*x5tW${qK@C>*06@^dLnPj9bxhAu-@idpu@ay$*_9!w+UmynZkL63Yydb%w4vYRy6WI DTTV3r literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/maelstrm.lev b/data/common/games/soko/lev/maelstrm.lev new file mode 100644 index 0000000000000000000000000000000000000000..58c14b0e2ad3595aa863686c208a69a2552a934b GIT binary patch literal 2717 zcmZ{m-EJH=423Ca*Y-MgtXa26?m9qU!1<5wsL`&S1P%NOoD{hTkS62Q=zIGKwjZ@A zkOCRV9%(2Jd3Z=sd;j40(fje^=fCg1ef_JiUq65T_~+fHuV4D#pU73x#Sm2TBspl% zTtr8eGHFhOm}JQs3RAIIO{_O5L1T@Zw7c)R8M{x@n?sF^Lk(Fhiyjsmq@)ePZ77x} z>#T&bU<=2F3)5h{7#IZAyaCF9cbE8%JGPKbEl1#Br0dR9Di&Q_dV>{Qs*Fn)07YB{sa31%i3kvsfbYfo-Tf~Q zXPiElcSm|u7X{uom?UNmbupyTX;%3VaKa4x7L3KN1T&kCz@1j2u*_lxqzZh zctfX3A6X!Wg;df_+}+Ps*-KD)AXO|`@6=(E#9~sk^I6I0ex9;5x!2`(L5ZEspnr8! z78(^?*%)3#J`HeZo&#}02s`C+VlUTL?$QQQ!L7tu#Bb! z&9-!;`MZ}1j}Cw`-{aV$x+xIc8`+vr7 zpT;kD|1%edNukt@O^%fw@}H%%v&TQT^yFd%WB`%7NZ`H-1~eZK%VYAoXl!HAho>QQ z6NE50Gt-5q5>0*y*}hOVbIg>X)}IzoDpoGlf#!K!c@YoLqpV8`XqM1tVMC|w zw^$}WHgR6P`us?G1H+7H8feM8`|~_U>GK=1vT|)pJ&!i3X)q=89E~BUk9Kl3l`v50 zWx-vM`9CNf9=mc_I^*o{zL&G#^!7Kw{@XD8V3odwL(;`umKt?=Q-Rsd!F)j)t5gbZ zKR`uzBQh*R)vw2$?>E68C4)ldU)Klevgqrke2F7{Yqs!fXC0vREyT z?zFcxgo0j)Yd~oLFi;y|8_eg~yuM2HxP0MR^Hbx?8rIBhL}aKi zDD?@4)uU!9-Z2JDP^!iq)_a3!{TXyLLf{X4=$FOlCRsJol1?KOC2!$>&<>ARb9}sx zHP!&9oJoU4@2{BPzac2(VTx7w%|krBrdHMu=d4|Z`cT7WRgAn;4yeHcT{%+ekq+xK z{dKq)l7d#{SHHb;g5VQ<>(;76F@gMwF@lfz2(Z`0u)Cv9H|j@?KGI&au6BpDX~iq(lB9tsjP(Bv%pNx$U>23cts IZ_3H;U(^RKd;kCd literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/mariob.lev b/data/common/games/soko/lev/mariob.lev new file mode 100644 index 0000000000000000000000000000000000000000..62c13c787a86fa19eb95c70aa59817a88d91a1d4 GIT binary patch literal 2126 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 B4FdoG literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/minicosm.lev b/data/common/games/soko/lev/minicosm.lev new file mode 100644 index 0000000000000000000000000000000000000000..431a9f7276874a7c1c9e4b9da835c5c00670312e GIT binary patch literal 2117 zcma)7S#H}f5S=0I+HO&R=?QoQOY-{1MNOTLG#|MDofD`>&k52uRJ>4@fk2QY$n$1- z^Je%ypZ|P*`uh}LUY}oH?Xu#Qf^y_2;SS{3kk|Q5zFH2{^2hrCRo_D;XZSv>8H14^ z0)UdhCE%h+bEOaLRbtP^Atg^?>d89g`JjrSt8>K3CDzKDdh z8%1cS={{zE0B?SZD!`hCJitR=86JVLPj9zYv%G-F^e9LW*HM1Xs9CW}nk)@T1*9Pe z#)(mgK~dU4^w39XUq@*vISq-zI-qP|@d_XKNAgX0`O&PpZS_@Zq#`8>$3GXgHHM1nmY;s@O; z$D!HcBl1Dof%_nYAPh+UE@LIKbw5QLi???HeOaseJeo40>lMv7m8#6R8z=$wFhH}?sgujnKQEeNw|*xl7t z#h&+@>!1Hj`SthL?|;0059^IBKKf+In$6kXnoEv5%N95m_wj!7(-5$A#bsA~tHeYX zE%}ob7lZCk`iHBIHuneCD#`7TWOs0J(xOxg#Tpr#trb@lZLwvG;8Oj&F?9dJ`#H>& z^!-=8u1XYrbqUn7PcBb!N?T-u@+yIjz}H2%6|pC*}BDL zh|&_8bEh@y<;mK3)KB>?rC6r^8S-5rL2>Ci$(|w2R?&8bA%!WUls&5O;Q!6ujx;Im zS&XL;2IklWw16+8JBr;g=KkLpcN!xgD||*=-TmJ=n+NR>{U`t-0Y>3f+;Zq%4JPZP z4xZaQV#MeIucY|g_$61Z+M!}OGET@iI(+lg@dY+jRv)O|Nd;@AeDw$Jh}Hj-cG#Ej zXSYmo%{0IxLRFzY*8_nw{a zw!q}W)8GQ;q&XBTmFRD#dSnZ!+U?lm9)3K6OqG=+P<&hw|0XMi`J4J10p2f~vl7|W zEcvSg8{xn79Q2Ai&-U^5VfyCNRdTCnrNTxJS;u~@_t10FxE_ z3)`2-5TTKIZ9}}XAXApXVXXu(*e|7%<+4&`|m5(Y?W!8$uVhq zK%09L3xR!dM(=J5=P1TV>B`MgVO~=i7c#bhT9pDj>oYQ9-N^(j>{}$#W%yA=iSo$+ zH^T(j?U~4!*RY9eKG_@gY%}hJ5uL%xIV4{+qsCJAv`kn1qtUsC7?ejm&K00;g%6G@ zI=Eo>;0pwFK06sP^g@(sR_aM_U>ozZ?(0t8@#W%UK=UkydMZ?n1Z0$nT@9jc72R)V zc%L*tP(fG~*B}Px0f9^tGZM>^_>3dIT79BL$Y3WH#$E4_(B#4itC2-u6*_dfU$gsp W&FAh1{j@*`CTbPnGyu>Em;Md1jL2^Q literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/novoban.lev b/data/common/games/soko/lev/novoban.lev new file mode 100644 index 0000000000000000000000000000000000000000..245ff5b78fab4a1b599eb8f2b5f8de11d33aef13 GIT binary patch literal 2190 zcmY+F-E!hM5QSSZ0mIyg%nRrdF!{feWJ5AFmpcz2*sz(c+Dcs6%Edl*o*?_R2!<48 ze(e4^=k#guJ|0ig&Tlu*zFD*;nAT(;rFW8SknZDsJgq;U-|1t05hAG%E*dYfie_yH zn;gP!4q=3fZ)GFV8Mi(SX*vm14=&`SHJoHAy-$O#s2knJMF}Q~rz@R5-s|b~*Xw@; z@D=xxBC5EoTS@Rvn{LPmVB{Sd1bw_uCbK`@USD6{o*#FQ(n&l|vZZuhWZG{f&B8CUyo3tCvq8XR z)s2)l?14pL8*S#3EK0UsIwf<~Rv+)v$?U+gX-roIyYktYX!@W@PSz%jT7g(SjPJ6w z!F1v*YHer$PNz`OrbtjC6N6q{sscvoNM;C%Q^kUvc<#}HfPvoQ%aiStv5l^`i4+Yb zkdHNC$I)LiBj>qqTFDFzoO^f7z70dWvF#ZVdI5{Nl5xOj_vn3eQ+I!fY}<0K3B- zaMU5FIDE&u;L{&k%c*Qux3(T1ZFaK<>{xwB@bb|<*s?l<74Pmf*Qxr+XuTjC<;u*} zFq7dBxMd*%#G*}VMr8=#xxH7%4n3C(lveJ=ts4_ZDHmS4Yo%g++=C^1fD4HwhVDLV z*(#pP158fnU#_a4FXQsMU*t+#yR4b4C}a6Td%2W{vNAZRwD#D;m6Fr(py(|Yir;^-U(<*P?pn)9VB($O>*SG4nNGS9Q&6z$s)0QF*C1>9tCSaXYW zL8lM%T$%UG6oh9FUvz9P$;HaZq4S+b*?KmbEJQ%auPCq0z10YmONg`5!5wGP+#3sC<8aplV0`pIbJg;c9=V$FNnZ#>-hhaHHI6q|*f!AOj$7%7g;MHBtvgZ{(uo2M;?*3-KjS^Yno=N;pv zai~1i*)6oBN;c$BPK6}+u(;P%tN#Hkr!v#R$e-tB{*n9p?Kwm@HyX^Ek&xTDM?32C zPFngL>!rr(BX#PjUgH@u7)fG-7q~+Qg&~m=M>8CH zTIbn&H(og!Pfk2}Y6lAJg+dl6dBzosH<9OQUF3(`*GD(HS1uVK^7gS}>y6(ni@j^X zqLq4{@~u7nT&Xm{fXXfcqNLHWh6HxVVAs5&Bqms)Jzj2Br}Nl#`&Dp>TB?8mR%L}G z7}2x!rbJ`;CTp&@(MAg%gHLOcBJUi$z)|GYib>uApcaG zAeu0OK!3}jiPLr(p8o)`qh%Wa literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/online.lev b/data/common/games/soko/lev/online.lev new file mode 100644 index 0000000000000000000000000000000000000000..74e12269702cac17bbaec62a798b3b7c508e4a4e GIT binary patch literal 712 zcmZuvL2AQ54Ahpiv^Tjg@Hx;g6gCh@NJtL(fR=thrZ3M6Qq5>>4C%#Qd1o}Ek?-#x zZ`<+fd%PXSO%)qls%R@Xn$*%XYRB>Q@VE!~2JjW&GR0T%0)!H$1#Fwj488( z!X+irfO^Qp*f#Nrq8MiCj0+fBGCV`^99#@M`WHoXoxmM1*7-7%Cpoiw8k&v@c9j~g zG!^sH8yc+boM~rx!HkSQtY8Z1H1o8FJiMXZ>?` zSpEL>;Vj;KkG6@{S6+gPnTl76ZV0)xf-paY+|bWZ5Q0<`CX3&H|Jt0z+tt&F^@E*& z#yn(|(e3m&?O78--NnXDEZdIJly~tppZxx{`w;KWo)BU8Bkpo%5cIUm;SKSaM_=@Q zu7oLop66L3y)AQiUcyM1m)3)EX>qbC4tDJPhMb$rc)uFYEsZNIkM9 z5M!t)bG?p_v7TG}hJic@-l7HPkBUbc(ZOgPc#W7v@4vPF>GFK1W-i zH2psP`}ed!w;$ry)5EF7tu02qY_Se&ikQ{PIMLSn5}tYsZz1=iXa}5=0_pPrRqyzP z1G1p5p1CJa9Zs=M*Pla){|t2rV3^X>=5BL*GiKNp%Oz<59c*hd@X!YxQ1ejlaQZD~ zc$b)|IcNssnS~*hMqk)^uEOA3u=PIRJe1bq19N$%)<5v{FA) z`pIxNAupoiV-f>Wbnz~|VF&tYKjYr?r7^(%NnUp)K5xVcQf?u0ZdZ1GIG5L^>zmiW z8V7@gJ%aH>7xTdlWIV|SPdP}&)?HAFXnD-k${V0mm{v+$TF9mjq(m>dOe>yb{(5 znCs0m1y9c69$-WYV_7-$r2|-^T#FbE=MgOA1#jb>#ZdkLb$C_Xe0{EbSRg1W3M90yo(bLF!<1dH7rK7ZmivtnZPWQ+nhkES4 ztt_sEUJ-ZQ!F>lNdAYELP3bFA*cR&;0_AQ49f>m{iD@X=Os_MS3^WAT%4XSUAJj#V zi}j?=;o@uDUsxLIil8gfM6)VS5+?0ct%e+Z4z6f1*XS)mOs_?c)aE)GZ(Pt{#0}=d zDjH>vazg9I)}u!UEt?f4&0+UCb8_>!d+Enjm6a1H2QV|Ajg|SG=$Hor5L30{FkPz) zeD05hSgGEk(Rb+CHw5co^|`xqq2U2+jo?KZ+rW7@g|ee02=CJqhX436-CRE}@IHPu z;kKGXX#?s>3eX-WD$%fnGt_F4?LRW42GD6oG23U;ypM^%vj;((sEi)dxESXMesi<$ zE531v`y>Pr2x5fmVU{za@B+m^3kUb`P1Z>EAG8gS4AoC2()9XYnx%(whm`7%9=v*; z!95kwffdctkCjW<1C95c*s_`DL%O-`4$a4F56|Y{Kmi*H9<6e!$A0h{j*MM2#(tk% zrOSCX163ybai~q|+xU!ZYC~nl1`wo3sou$?vSvAq$c|g2vAOWg-9MfEE3TpXuSx4T ze1kwL>@bq2go;h*iEK0Ikp&M@iX4e)fdR}cZV+2Z+hi#Fp&V{iT8Id!mE0YW73GoCbk?3sm-&*&R_R zlGjj!{kQbS62R?67t!*nhP}%~E%>Ex9h&%fk#4?(13`ocBsuY`B9>KY9C)xPwCddX z?uq{5O9xqD&Llq~d&$#)$1n2Yi6~Eex_Jn%LL^J4dKDcF1%m;aJl3K#=GLv`wb*Gz^5z9(i3A)oJ+DY5zdhu0T%o=ZVKP|<37 zO~Sde)~CwcjuS#+ZbL@=mQkhMEPeosQihX?O)sEv`#1cSBvmMnWS*4LZy0q9iF40F{?#~)=Y`ba{5;)0E^0W0fdQ>b zhCK&2aN+&4Mu^86&;d}mg~Nkh(WTaS2$eu6dw;#yhabC=P!xyzDZ{`(Z2`0Mai95< zrUuSzVhxHBPZ$GSug3&Ne107nD3Ijj%VKD0H3Jakp`VdA!%(;jO0@_^a_(|Ia!e-M zzx&*M=NN>u189&Ikfx*GFrZNh5$I6V!o~)Gj08U6Y)(cEAYs7S0U_6ca|XkHViFY= z4e@qugz*(i3zO>gj8d`b-SydckyAdyKTc5uYnn3gaFDU<`X%{$TJI!n_)7?$~w5*FgVxcEE9bglguo$g?Te8tjEHdqP5`(r! zM|ks362e6#6#A4>%#Y0af9k~D)hMH$r@PzLVMXMNEH3bA?^M!nN zoy!e`5YmHM<*o;a;H^Cjwzi#$IQ3JUNF+HV-QD9>i`ltrA^{PWMDiazI&Mg$657%> z>foBK4Xn|Uq{65zgnp0Sa@#>X>e`3yiC@*3J8D|($^{`9r~LBL895OS6tqSK$`g@v zX`ZUbNgA37cuv_-br{e9Am{@5>A>V*g$}ya$t~ee?y!gK0jugiG zy!m0>Hb>#xb8O~F$K2{fualH+7il1wl0Y_CE*%1g>f4_2L#^2 zO2_WvOc``!xBkF-LGDeuztJ`ACv?;4O@g)ME#^s6)dqTg65gw4;K$a4R(aTDJEzy% z)5gPFbfsrvB|y`qj3Q=R(k71H;ZYU!hNq+Nlv(jxudAagB))weKUO3~svNz8PyveQ zwk|CbC0~*aWCeuWnVhVS;ZrWgnP}g?(%5g;a?_SBPWblMmf-k&T z25vaU7mmEdd8WC9^cM6zI<+={NJd>PC?^0Df?_bknk50*jL3)x^zS6^U&n4BZl==Z z&N~mJ3rBygqBo;WRS}FmyF_+|9=?Ech#?LTM4)9OpQs^On`8`g--Mc9_p^9kUbUQX z+cb>O0zlcW;BtH85(zhQasVpAO&nzS9UqxF3_2KXH_jYTfdgM16#2W?mzmJR>o{<4 z2V4{am5%(n-gMA`5GnXbk!f}Ls&h16t~&JPn1cbBOF*N!s2I=mMp(7^c~{@#>wcS{ z(Lrf3D3W@ij}h)_9DM+VH||*k@3ZMiM_YaQ z{7OVuzOZz3sB1+`0xYfwwQm*s~1PS$YFpE%2Zm( zXFIZ&cl-njuFMC%g7Db^LE*^)UIkZ5QZVgX+<{8A)NODB+S1mEwJkcvS>J#Lpj0w5kEKN+1L=3}% z1Ce-{TvPug^nSlZM2-#|`K>;LGs>8sb_zBV~s%WLU68ZYO}q zkDXIaNDbxVFgngg2T8ul*zjGEgbD50C`L>%8J)8O@t%QkN~sA&Nu#m|lC{(`QG=xMy zpD1R}!-q^<5T|sJofr@wJj@@_gxlakOIYLE;5$vC$O4z-wG#9T!OJ`mq=}1^Q{mP~ zWQC4)t2g0Lf^Odo=^z0QWdP3L)%&Wma6Ed-193x(f6xrfYm+fUb!Icu*&~p&(8be+ z7}Qs3We6HZ8i7-5jmVo+3;0R~1)HZB83OGs-b0|pau<-3X|wjn^#>GPmS4bu*GqEc_5mI%Z}fGPoM)~z)C(tcaw<- zUmFUfV5(7+&0qr2_~4a0f$NLZ4uuF}kG2Joqq7wQClaeaA@YI9B6UeY5C!hSS;-la z*qi=JF2MX)oW3hqk(mHfXDAWiW3wgRZQtqYEqs zWNl=qEgXyx8j3T(x5XwZIg_f zN%SComW(MSI?ZT{vde=m@l>lY!{Q?kFws%j9~ML@A^-Yg!9O4{LLBFY%7FC<70v`+ z{dgK)?IQ|bZ7X;t>y;QvQLO?p+GY6B6^?9Ngg<`f>UPK{+?*OOv8-a^_JK_VGjZkH zv>R;IJb@BoXonxh1D>;LYpGPgS?M1xg!=k&>|Y>EzuwI74#fD9gk?UTc9Z$BicIk7 z+z^Q_nq~^2klL_U$ImmhQ`DK$D9(X{#heA-nAv(q8=pj=rpyG zc_L^2g0gh;J?Z~HWck%Iw~s=4dmvaCLwFnvsD}0_QGse{T4a!89sq{#Vcc{h5)jE` zF$%8l=N2xq{q7h{~YtJZKlYF>pQy3@MBR-=P=qsfIf_Dh2{gR6`TH%dU zXpL_~9~`%CYfGBc2Db15Gt{4EwulsDOs$LiCJ!dIWJ^BMlgw|<(&HEYKVfNu2x|EF zc$`{Q*Me^vk@m&vRFr*C&7!&OodSi&r;Y`_*q^m)m&b>WFQ=%VWfM_JLk+vA$D{C= za}}mC(w5nH7*(01K&QgNAd{Ns&Z(EgCu+7DTK$e2pq=!{{omu`kIw!=O{^AlsI>un z-cCK}Fi+dZ!R9(TLKd@$fp*6CTn%k zoL5s>(|iUGW9`u}Q;&K)Inep!c@ECeDWAIWv_$);n|gfjD|v)c{nNa52-(CcV-Hz7 z%8OW&6(WolVIax2kbwy#J0P9t&7lsSEvA8|q#ce?kV< V^!g`Cx5QLYM+{8`;us7flB?9q6fTepFgKu#Ufd^ezg1hHbWs@ML*nkt z&MbXe-`swG%ZIOr_iu-HKa4VU!Db1oEOU@(LY3;Ht&$BJiG47^6$XCUylFCQ zKTUnIp^M@qNU+g-a5PFSPLf0^Cb4tuLKlpe#K?NJTb)nqHr1WY3a2=xmI{IDYaol8 zO(J#bbc}X_#d_VaxVPCV4!Hc_VRTM9lBTfs*-;be`)tpr&2o)EYMIzjyaflV9P-lU!&XS4*#{(G;wO4_48~$V`QQp5;I?xi4wM2s0 zdD!xGg6~aR?sJz{*wZDuTevP-u_~$=!PrNF=z$JqXEIuE+6*s}SJY}_Hz_=|mrw%) zG@n(@1FMLHsZ+sPtHwdJ@Qja1W7{muw8zRyU2yQOn$B_b5YLd&WK=ec{ zKAEF7UB?GQOM-jV^y|2li35Yyg;I>f{ypZ!Z{+B-e--$)k$k+ndc)3WQ~#$`stma= zN&(*bk`^O2cKd(JzBjMSIZCB)RVkXIB#&@KcSqh~|6&_;tK*IAk0*>TY{s*2Md(Mys%JEq^Z*(};G7qUJ5Up88CvwT{nLN c+kx|HMns1ra&r%WnVquic|Zi!20NMaPd?c7*8l(j literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/sasq_.lev b/data/common/games/soko/lev/sasq_.lev new file mode 100644 index 0000000000000000000000000000000000000000..d0dcbb6443adf7ee4ccc868a178e22735c6e8513 GIT binary patch literal 6536 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 literal 0 HcmV?d00001 diff --git a/data/common/games/soko/lev/sasq_iii.lev b/data/common/games/soko/lev/sasq_iii.lev new file mode 100644 index 0000000000000000000000000000000000000000..94fd6a8f25c0a11f236fccf24572eeab202e5750 GIT binary patch literal 8098 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