1 ; **************************************************************************** 2 ; giant386.s (TRDOS 386, TRDOS v2.0 - sample binary file, 'giant386.prg') 3 ; ---------------------------------------------------------------------------- 4 ; GIANT386.PRG ! TEST program ! TRDOS 386 VGA Functionality test ! 5 ; 6 ; 19/09/2016 7 ; 8 ; [ Last Modification: 25/09/2016 ] 9 ; 10 ; Derived from sourc code of 'GIANT.COM' (MSDOS) intro file 11 ; (06/08/1994, 4096 bytes) 12 ; 13 ; 14 ; GIANT.ASM by Jari Kyt”joki 15 ; NASM version of GIANT.ASM (GIANTS.COM): Erdogan Tan, 19/09/2016 (giant.s) 16 ; 17 ; Assembler: NASM 2.11 18 ; 19 ; (Original -msdos- code has been modifed for TRDOS 386 system calls and 20 ; other protected mode (TRDOS 386) interrupts.) 21 ; **************************************************************************** 22 23 ; 19/05/2016 24 ; 29/04/2016 25 ; TRDOS 386 system calls (temporary list!) 26 _ver equ 0 27 _exit equ 1 28 _fork equ 2 29 _read equ 3 30 _write equ 4 31 _open equ 5 32 _close equ 6 33 _wait equ 7 34 _creat equ 8 35 _link equ 9 36 _unlink equ 10 37 _exec equ 11 38 _chdir equ 12 39 _time equ 13 40 _mkdir equ 14 41 _chmod equ 15 42 _chown equ 16 43 _break equ 17 44 _stat equ 18 45 _seek equ 19 46 _tell equ 20 47 _mount equ 21 48 _umount equ 22 49 _setuid equ 23 50 _getuid equ 24 51 _stime equ 25 52 _quit equ 26 53 _intr equ 27 54 _fstat equ 28 55 _emt equ 29 56 _mdate equ 30 57 _video equ 31 58 _audio equ 32 59 _timer equ 33 60 _sleep equ 34 61 _msg equ 35 62 _geterr equ 36 63 _rsrvd1 equ 37 64 _pri equ 38 65 _rele equ 39 66 67 %macro sys 1-4 68 ; 29/04/2016 - TRDOS 386 (TRDOS v2.0) 69 ; 03/09/2015 70 ; 13/04/2015 71 ; Retro UNIX 386 v1 system call. 72 %if %0 >= 2 73 mov ebx, %2 74 %if %0 >= 3 75 mov ecx, %3 76 %if %0 = 4 77 mov edx, %4 78 %endif 79 %endif 80 %endif 81 mov eax, %1 82 ;int 30h 83 int 40h ; TRDOS 386 (TRDOS v2.0) 84 %endmacro 85 86 ; TRDOS 386 (and Retro UNIX 386 v1) system call format: 87 ; sys systemcall (eax) , , 88 89 ;ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 90 ;º Filename: GIANT.ASM º 91 ;ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ 92 ;º Source Codes for GIANT. The Ultimate 4KB-Intro! [:)] v. 1.1 º 93 ;º º 94 ;º Written by: Sigma of Star Team Productions, (ä, STP) º 95 ;º alias Jari Kyt”joki º 96 ;º º 97 ;º Snail-Mail: Jari Kyt”joki º 98 ;º Puolukkakatu 5 º 99 ;º 44200 Suolahti º 100 ;º Finland, Europe, Earth º 101 ;º º 102 ;º E-Mail: jari.kytojoki@hut.fi º 103 ;º º 104 ;º Please, send me a Postcard!!! º 105 ;º Send me your source codes! (or at least some technical info, etc...) ;) º 106 ;º Don't hesitate to contact me! º 107 ;º º 108 ;º Copyright (C) 1994, 1995 Jari Kyt”joki. All Rights Reserved. º 109 ;ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 110 111 ; After many inquiries for sources I decided to release this 112 ; source code. It is released as public domain. You can do it 113 ; whatever you want or like. But remember, if you are just 114 ; planning to make a new intro only by adding, removing or any 115 ; other way changing a few lines of this code, you are entering 116 ; worldwide lamers' club. But if you are reading this file just 117 ; because you want to learn something new, go on it! This is 118 ; the most biggest reason why I released this code. However, 119 ; I cannot promise there's anything new that you haven't known 120 ; before. (It's always worth studying new sources...) If you find 121 ; this file very helpful, please send me a postcard or at least 122 ; write me some E-Mail. 123 ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 124 ; You can compile this file with TASM, I included MAKE.BAT 125 ; to help you. You'll notice that resulting COM-file will be 126 ; much larger than the released version. This is due to 127 ; the original COM-file has been compressed to fit in those 128 ; specified limits. If you are just compiling, testing and 129 ; debugging this source file there's no harm of it. You'll 130 ; have to compress the COM-file with your own compressor if 131 ; you want the new COM-file to be as small as the original 132 ; one. ;-) 133 ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 134 ; The code was optimized mainly for size and some parts seem to 135 ; be coded quite weirdly. In some time critical parts I repeated 136 ; the source code and I trusted the compressor would do the rest, 137 ; so that the file would be less than 4KB. There is still some 138 ; "extra" dummy bytes which could easily be removed. 139 ; My opinion of making a small intro is not hard. I had quite a 140 ; many ideas to put in this intro within the limits I had set, but 141 ; soon all 4KB was used and I had to think all over again. Many of 142 ; my plans finished undone. The size limit was reached too quickly. 143 ; I hope you enjoy my intro and learn something new. 144 ; 145 ;Last words: I'm sorry there isn't too many comments in this file. 146 ; Just try to figure it out. 147 ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 148 149 ; NASM version: Erdogan Tan, 19/09/2016 150 151 [BITS 32] 152 153 section .text 154 155 Temp0 Equ _10A2h 156 Temp1 Equ _10A4h 157 Temp2 Equ _10A6h 158 Temp4 Equ 0100h 159 Sin2T Equ 0D000h 160 Cos2T Equ 0D200h 161 SinT Equ 0E000h 162 CosT Equ 0E200h 163 Temp_PAL3 Equ 0DF00h 164 Temp_PAL2 Equ 0DC00h 165 Temp_PAL1 Equ 0EC00h 166 Row256T Equ 0CE00h 167 CharP Equ 0106h 168 CharColor Equ 010Ah 169 TextSeg Equ Temp0 170 XMin Equ 010Ch 171 YMax Equ 010Eh 172 XStep Equ 0110h 173 YStep Equ 0112h 174 ScreenX Equ 0114h 175 ScreenY Equ 0116h 176 NMax Equ 0118h 177 x Equ 011Ah 178 y Equ 011Ch 179 zi Equ 011Eh 180 zr Equ 0120h 181 cr Equ 0122h 182 ci Equ 0124h 183 d2x Equ zi 184 d2y Equ zr 185 i Equ ScreenX 186 j Equ ScreenY 187 TempPAL1 Equ 0E000h 188 TempPAL2 Equ 0E400h 189 190 [ORG 0] 191 192 Start: 193 ; DIRECT VGA MEMORY ACCESS 194 ;xor ebx, ebx 195 00000000 B705 mov bh, 5 ; Direct access/map to VGA memory (0A0000h) 196 ;mov eax, _video ; 1Fh 197 00000002 B01F mov al, 1Fh ; sys _video ; TRDOS 386 Video functions 198 00000004 CD40 int 40h ; TRDOS 386 system call 199 200 ; eax = 0A0000h 201 00000006 21C0 and eax, eax 202 00000008 0F84BC0F0000 jz terminate ; error (eax = 0) 203 204 ; clear screen (Black screen at the beginning) 205 0000000E B003 mov al, 3 ; 80x25 16 color text (current mode) 206 ;mov ah, 0 ; Set video mode 207 ;int 10h 208 00000010 CD31 int 31h ; TRDOS 386 - Video interrupt 209 210 ; Hide cursor 211 00000012 66B900FF mov cx, 0FF00h 212 00000016 B401 mov ah, 1 213 ;int 10h 214 00000018 CD31 int 31h ; TRDOS 386 - Video interrupt 215 216 0000001A 66BACC03 mov dx, 03CCh ; set your VGA to 217 ;in al, dx ; correct mode... 218 0000001E B400 mov ah, 0 ; in (byte) 219 00000020 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 220 221 00000022 0C01 or al, 01h ; B/W -> COLOR 222 223 00000024 66BAC203 mov dx, 03C2h 224 ;out dx, al 225 ;mov ah, 1 ; out (byte) 226 00000028 FEC4 inc ah ; 1 227 0000002A CD34 int 34h ; TRDOS 386 - IOCTL interrupt 228 229 0000002C 66B92700 mov cx, ((W_Divider-Data_Seg)/4)+2 230 00000030 BE[00000000] mov esi, _Data_Seg 231 00000035 BF00000100 mov edi, Data_Seg ; 10000h 232 0000003A F3A5 rep movsd 233 @KeyPressed1: 234 0000003C B401 mov ah, 1 235 ;int 16h 236 0000003E CD32 int 32h ; TRDOS 386 Keyboard interrupt 237 00000040 7406 jz short @KeyBufferCleared 238 00000042 30E4 xor ah, ah 239 ;int 16h 240 00000044 CD32 int 32h ; TRDOS 386 Keyboard interrupt 241 00000046 EBF4 jmp short @KeyPressed1 242 @KeyBufferCleared: 243 00000048 9BDBE3 finit ; Make Sin and Cos Tables 244 0000004B 31F6 xor esi, esi 245 0000004D 66B94101 mov cx, 321 246 00000051 DF05[7D280000] fild word [YY] 247 00000057 D9EB fldpi 248 00000059 DF05[7B280000] fild word [XX] 249 0000005F DEF9 fdivp st1, st0 250 @MakeSINCOS: 251 00000061 668935[7B280000] mov [XX], si 252 00000068 DF05[7B280000] fild word [XX] 253 0000006E D8C9 fmul st0, st1 254 00000070 D9FE fsin 255 00000072 D8CA fmul st0, st2 256 00000074 DF9E[F3260000] fistp word [esi+SinTable] 257 0000007A 46 inc esi 258 0000007B E2E4 loop @MakeSINCOS 259 260 0000007D BA00E00000 mov edx, TempPAL1 261 00000082 6631DB xor bx, bx 262 00000085 66B90001 mov cx, 256 263 00000089 B017 mov al, 17h 264 0000008B B410 mov ah, 10h 265 0000008D CD31 int 31h ; TRDOS 386 - Video interrupt 266 267 ;M_FadeOUT TempPAL1, TempPAL2 268 0000008F BE00E00000 mov esi, TempPAL1 ; SourcePAL 269 00000094 BF00E40000 mov edi, TempPAL2 ; DestPAL 270 00000099 E8F30F0000 call M_FadeOUT 271 272 0000009E 9B wait 273 274 ;M_KeyPressed 275 0000009F B401 mov ah, 01h 276 000000A1 CD32 int 32h ; TRDOS 386 Keyboard interrupt 277 000000A3 0F85920E0000 jnz @KeyDownOut 278 279 000000A9 B013 mov al, 13h 280 000000AB B400 mov ah, 00h 281 000000AD CD31 int 31h ; TRDOS 386 - Video interrupt 282 283 000000AF 66BA00E0 mov dx, TempPAL1 284 000000B3 6631DB xor bx, bx 285 000000B6 66B90001 mov cx, 256 286 000000BA B017 mov al, 17h 287 000000BC B410 mov ah, 10h 288 000000BE CD31 int 31h ; TRDOS 386 - Video interrupt 289 290 000000C0 E8B20F0000 call M_ClearPAL 291 000000C5 66BE[6F26] mov si, Text2String 292 000000C9 E8050F0000 call print_msg 293 000000CE BE00000A00 mov esi, 0A0000h ; gs 294 000000D3 BF00000200 mov edi, 20000h ; es, fs 295 296 000000D8 B108 mov cl, 8 297 rept_8_1: 298 000000DA 6651 push cx 299 000000DC 66B90A00 mov cx, 5*8/4 300 000000E0 F3A5 rep movsd ; gs:si -> es:di 301 000000E2 6681C61801 add si, (320-5*8) 302 000000E7 6659 pop cx 303 000000E9 E2EF loop rept_8_1 304 000000EB B108 mov cl, 8 305 rept_8_2: 306 000000ED 6651 push cx 307 000000EF 66B91800 mov cx, 12*8/4 308 000000F3 F3A5 rep movsd ; gs:si -> es:di 309 000000F5 6681C6E000 add si, (320-12*8) 310 000000FA 6659 pop cx 311 000000FC E2EF loop rept_8_2 312 000000FE B108 mov cl, 8 313 rept_8_3: 314 00000100 6651 push cx 315 00000102 66B91200 mov cx, 9*8/4 316 00000106 F3A5 rep movsd ; gs:si -> es:di 317 00000108 6681C6F800 add si, (320-9*8) 318 0000010D 6659 pop cx 319 0000010F E2EF loop rept_8_3 320 321 00000111 BF00000A00 mov edi, 0A0000h ; es 322 00000116 66B900C7 mov cx, 199*256 323 @BG1: 324 0000011A 66BA3F01 mov dx, 319 325 @BG2: 326 0000011E 6689CF mov di, cx ; edi = 0A0000h + cx 327 00000121 66C1EF02 shr di, 2 328 00000125 6601CF add di, cx 329 00000128 6601D7 add di, dx 330 0000012B 88D0 mov al, dl 331 0000012D 30E8 xor al, ch 332 0000012F 241F and al, 1Fh 333 00000131 3430 xor al, 30h 334 00000133 AA stosb 335 00000134 664A dec dx 336 00000136 7DE6 jge short @BG2 337 00000138 80ED01 sub ch, 1 338 0000013B 73DD jnc short @BG1 339 0000013D 66B80707 mov ax, 0707h 340 341 00000141 BE00000200 mov esi, 20000h 342 ;mov edi, 0A0000h 343 344 ; M_WriteText 1 345 ; di = (60+TextXYMove)*320+120+TextXYMove 346 ; bx = (92+TextXYMove)*320+64+TextXYMove 347 ; dx = (124+TextXYMove)*320+88+TextXYMove 348 00000146 66BFB94C mov di, ((60+1)*320)+120+1 349 0000014A 66BB8174 mov bx, ((92+1)*320)+64+1 350 0000014E 66BA999C mov dx, ((124+1)*320)+88+1 351 00000152 E88C0E0000 call M_WriteText 352 353 00000157 6631C0 xor ax, ax 354 355 ;mov esi, 20000h 356 0000015A 6631F6 xor si, si 357 ;mov edi, 0A0000h 358 359 ; M_WriteText -1 360 ; di = (60+TextXYMove)*320+120+TextXYMove 361 ; bx = (92+TextXYMove)*320+64+TextXYMove 362 ; dx = (124+TextXYMove)*320+88+TextXYMove 363 0000015D 66BF374A mov di, ((60-1)*320)+120-1 364 00000161 66BBFF71 mov bx, ((92-1)*320)+64-1 365 00000165 66BA179A mov dx, ((124-1)*320)+88-1 366 00000169 E8750E0000 call M_WriteText 367 368 ;M_FadeIN TempPAL1, TempPAL2 369 0000016E BE00E00000 mov esi, TempPAL1 ; SourcePAL 370 00000173 BF00E40000 mov edi, TempPAL2 ; DestPAL 371 00000178 E8560F0000 call M_FadeIN 372 0000017D 66B9FA00 mov cx, 250 373 @wv1: 374 00000181 E8DE0E0000 call M_WaitVRT_DX 375 00000186 E2F9 loop @wv1 376 ;M_FadeOUT TempPAL1, TempPAL2 377 00000188 66BE00E0 mov si, TempPAL1 ; SourcePAL 378 0000018C 66BF00E4 mov di, TempPAL2 ; DestPAL 379 00000190 E8FC0E0000 call M_FadeOUT 380 ;M_KeyPressed 381 00000195 B401 mov ah, 01h 382 00000197 CD32 int 32h ; TRDOS 386 Keyboard interrupt 383 00000199 0F859C0D0000 jnz @KeyDownOut 384 385 0000019F B012 mov al, 12h ; 640x480 16 color graphics 386 000001A1 B400 mov ah, 00h ; Set video mode 387 ;int 10h 388 000001A3 CD31 int 31h ; TRDOS 386 - Video interrupt 389 390 000001A5 66B92000 mov cx, 20h 391 @wv2: 392 000001A9 E8B60E0000 call M_WaitVRT_DX 393 000001AE E2F9 loop @wv2 394 395 ; Get Current Character generator Info 396 ;(modified funtion for TRDOS 386) 397 000001B0 66BB0100 mov bx, 1 ; get 8x8 VGA font data 398 000001B4 B030 mov al, 30h 399 000001B6 B411 mov ah, 11h 400 000001B8 BA64400000 mov edx, VGA_Fonts ; buffer address 401 ;sub ecx, ecx ; all character fonts 402 ; ecx = 0 403 000001BD CD31 int 31h ; TRDOS 386 - Video interrupt 404 405 000001BF 50 push eax 406 000001C0 B30F mov bl, 15 407 @SetNextPAL: 408 000001C2 88DF mov bh, bl 409 000001C4 B000 mov al, 00h 410 000001C6 B410 mov ah, 10h 411 000001C8 CD31 int 31h ; TRDOS 386 - Video interrupt 412 000001CA 6683C104 add cx, 4 413 000001CE FECB dec bl 414 000001D0 79F0 jns short @SetNextPAL 415 000001D2 E88D0E0000 call M_WaitVRT_DX 416 000001D7 66BAD403 mov dx, 3D4h 417 ;mov ax, 6A0Ch 418 ;out dx, ax 419 000001DB 66BB0C6A mov bx, 6A0Ch 420 000001DF B403 mov ah, 3 ; out (word in BX) 421 000001E1 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 422 423 000001E3 66BAC803 mov dx, 03C8h 424 000001E7 30C0 xor al, al 425 ;out dx, al 426 000001E9 B401 mov ah, 1 ; out (byte) 427 000001EB CD34 int 34h ; TRDOS 386 - IOCTL interrupt 428 429 000001ED 6642 inc dx 430 000001EF 66B93000 mov cx, 16*3 431 000001F3 30DB xor bl, bl 432 @SetPal: 433 000001F5 30C0 xor al, al 434 ;out dx, al 435 ;mov ah, 1 ; out (byte) 436 000001F7 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 437 ;out dx, al 438 000001F9 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 439 000001FB 88D8 mov al, bl 440 ;out dx, al 441 000001FD CD34 int 34h ; TRDOS 386 - IOCTL interrupt 442 000001FF 80C304 add bl, 4 443 00000202 E2F1 loop @SetPal 444 445 00000204 66BACE03 mov dx, 03CEh 446 ;mov ax, 0205h 447 ;out dx, ax 448 00000208 66BB0502 mov bx, 0205h 449 0000020C B403 mov ah, 3 ; out (word in BX) 450 0000020E CD34 int 34h ; TRDOS 386 - IOCTL interrupt 451 452 00000210 9BDBE3 finit 453 00000213 31C0 xor eax, eax 454 00000215 BF00000A00 mov edi, 0A0000h ; es = 0A000h 455 0000021A 66B90040 mov cx, 65536/4 456 0000021E F3AB rep stosd 457 00000220 31FF xor edi, edi 458 00000222 6631F6 xor si, si 459 @CCPopAX: 460 00000225 58 pop eax 461 @CC: 462 00000226 BD64400000 mov ebp, VGA_Fonts 463 0000022B 31DB xor ebx, ebx 464 0000022D 8A9E[4F260000] mov bl, [esi+Text1String] 465 00000233 8D6CDD07 lea ebp, [ebp+8*ebx+7] 466 00000237 6646 inc si 467 00000239 6683E61F and si, 1Fh 468 0000023D D905[57280000] fld dword [Const1] 469 00000243 D80D[6F280000] fmul dword [CosBB] 470 00000249 D805[53280000] fadd dword [BB] 471 0000024F D815[5F280000] fcom dword [Const3] 472 00000255 9BDFE0 fstsw ax 473 00000258 9B wait 474 00000259 9E sahf 475 0000025A 0F87AD000000 ja @GlobeOut 476 00000260 D915[53280000] fst dword [BB] 477 00000266 D9FF fcos 478 00000268 D9E8 fld1 479 0000026A DEF1 fdivrp st1, st0 480 0000026C D915[6F280000] fst dword [CosBB] 481 00000272 D905[63280000] fld dword [Const4] 482 00000278 D8C9 fmul st0, st1 483 0000027A D91D[4B280000] fstp dword [IIAdd] 484 00000280 D80D[5B280000] fmul dword [Const2] 485 00000286 D805[4F280000] fadd dword [LL] 486 0000028C D91D[4F280000] fstp dword [LL] 487 00000292 D9EE fldz 488 00000294 D91D[47280000] fstp dword [JJ] 489 0000029A B320 mov bl, 32 490 @BB: 491 0000029C D9EE fldz 492 0000029E D91D[43280000] fstp dword [II] 493 000002A4 D905[47280000] fld dword [JJ] ; B := ... 494 000002AA D805[53280000] fadd dword [BB] 495 000002B0 D9FB fsincos 496 000002B2 D91D[3F280000] fstp dword [CosB] 497 000002B8 D91D[3B280000] fstp dword [SinB] 498 000002BE F6C303 test bl, 3 499 000002C1 7501 jnz short @BPOK 500 000002C3 4D dec ebp 501 @BPOK: 502 000002C4 55 push ebp 503 000002C5 668B6D00 mov bp, [ebp] 504 505 %rep 8 506 call CalcPixel 507 %endrep 507 000002C9 E8CE0F0000 <1> call CalcPixel 507 000002CE E8C90F0000 <1> call CalcPixel 507 000002D3 E8C40F0000 <1> call CalcPixel 507 000002D8 E8BF0F0000 <1> call CalcPixel 507 000002DD E8BA0F0000 <1> call CalcPixel 507 000002E2 E8B50F0000 <1> call CalcPixel 507 000002E7 E8B00F0000 <1> call CalcPixel 507 000002EC E8AB0F0000 <1> call CalcPixel 508 509 000002F1 5D pop ebp 510 000002F2 D905[47280000] fld dword [JJ] 511 000002F8 D805[63280000] fadd dword [Const4] 512 000002FE D91D[47280000] fstp dword [JJ] 513 00000304 664B dec bx 514 00000306 7594 jnz short @BB 515 00000308 E919FFFFFF jmp @CC 516 @GlobeOut: 517 ; Read a Block of DAC Color Registers 518 ;mov edx, TempPAL1 519 0000030D 66BA00E0 mov dx, TempPAL1 520 00000311 6631DB xor bx, bx 521 00000314 66B90001 mov cx, 256 522 00000318 B017 mov al, 17h 523 0000031A B410 mov ah, 10h 524 0000031C CD31 int 31h ; TRDOS 386 - Video interrupt 525 0000031E 66B9FA00 mov cx, 250 526 @wv3: 527 00000322 E83D0D0000 call M_WaitVRT_DX 528 00000327 E2F9 loop @wv3 529 ;M_KeyPressed 530 00000329 B401 mov ah, 01h 531 0000032B CD32 int 32h ; TRDOS 386 Keyboard interrupt 532 0000032D 0F85080C0000 jnz @KeyDownOut 533 534 00000333 66BACE03 mov dx, 03CEh 535 ;mov ax, 0FF08h 536 ;out dx, ax 537 00000337 66BB08FF mov bx, 0FF08h 538 0000033B B403 mov ah, 3 ; out (word in BX) 539 0000033D CD34 int 34h ; TRDOS 386 - IOCTL interrupt 540 541 ;mov bx, 6A00h 542 0000033F 66B9006A mov cx, 6A00h 543 @ScrollDown: 544 00000343 E81C0D0000 call M_WaitVRT_DX 545 00000348 66BAD403 mov dx, 3D4h 546 ;mov al, 0Dh 547 ;mov ah, bl 548 ;out dx, ax 549 550 0000034C B30D mov bl, 0Dh 551 0000034E 88CF mov bh, cl 552 00000350 B403 mov ah, 3 ; out (word in BX) 553 00000352 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 554 ;(ax = bx) 555 556 ;dec ax 557 ;mov ah, bh 558 ;out dx, ax 559 560 00000354 664B dec bx 561 00000356 88EF mov bh, ch 562 00000358 B403 mov ah, 3 ; out (word in BX) 563 0000035A CD34 int 34h ; TRDOS 386 - IOCTL interrupt 564 565 0000035C 6681E9A000 sub cx, 80*2 566 00000361 6609C9 or cx, cx 567 00000364 79DD jns short @ScrollDown 568 569 ;M_FadeOUT TempPAL1, TempPAL2 570 00000366 66BE00E0 mov si, TempPAL1 ; SourcePAL 571 0000036A 66BF00E4 mov di, TempPAL2 ; DestPAL 572 0000036E E81E0D0000 call M_FadeOUT 573 574 ;M_KeyPressed 575 00000373 B401 mov ah, 01h 576 00000375 CD32 int 32h ; TRDOS 386 Keyboard interrupt 577 00000377 0F85BE0B0000 jnz @KeyDownOut 578 579 Add_Items Equ LastBopAdd - BopAddTab 580 BopPts Equ Add_Items 581 TimeOut Equ 8192 582 TimeOut2 Equ 150 583 MaxWidth Equ 320 584 CenterX Equ 160 585 CenterY Equ 100 586 MaxBops Equ 350 587 RadiusX Equ 144 588 RadiusY Equ 176 589 PhInc1 Equ 2 590 PhInc2 Equ 3 591 592 0000037D B013 mov al, 13h 593 0000037F B400 mov ah, 00h 594 00000381 CD31 int 31h ; TRDOS 386 - Video interrupt 595 596 00000383 66B92000 mov cx, 20h 597 @wv4: 598 00000387 E8D80C0000 call M_WaitVRT_DX 599 0000038C E2F9 loop @wv4 600 601 0000038E 66B94002 mov cx, Add_Items 602 00000392 66BE[9E2D] mov si, LastBopAdd - 1 603 00000396 66BF[DD2F] mov di, LastBopAdd + Add_Items - 2 604 0000039A 6631C0 xor ax, ax 605 0000039D FD std 606 @Expand0: 607 0000039E AC lodsb 608 0000039F 66AB stosw 609 000003A1 E2FB loop @Expand0 610 000003A3 FC cld 611 612 000003A4 66BA2001 mov dx, Add_Items/2 613 000003A8 66BE[482B] mov si, BopADDLengths - 1 614 000003AC 66BF[3F33] mov di, LastBopAdd + Add_Items + 3*Add_Items/2 615 000003B0 66B8000F mov ax, 12*320 616 @Expand1: 617 000003B4 6646 inc si 618 000003B6 6681EF6003 sub di, 3*Add_Items/2 619 000003BB 6689FD mov bp, di 620 000003BE 8A0E mov cl, [esi] 621 000003C0 66F7D8 neg ax 622 000003C3 6629C8 sub ax, cx 623 @Expand2: 624 000003C6 6640 inc ax 625 000003C8 66AB stosw 626 000003CA E2FA loop @Expand2 627 000003CC 6601D5 add bp, dx 628 000003CF 6689EF mov di, bp 629 000003D2 8A0E mov cl, [esi] 630 000003D4 6601C8 add ax, cx 631 @Expand3: 632 000003D7 66AB stosw 633 000003D9 6648 dec ax 634 000003DB E2FA loop @Expand3 635 000003DD 6601D5 add bp, dx 636 000003E0 6689EF mov di, bp 637 000003E3 8A0E mov cl, [esi] 638 000003E5 66054001 add ax, 320 639 000003E9 66F7D8 neg ax 640 000003EC 6629C8 sub ax, cx 641 @Expand4: 642 000003EF 6640 inc ax 643 000003F1 66AB stosw 644 000003F3 E2FA loop @Expand4 645 000003F5 6601D5 add bp, dx 646 000003F8 6689EF mov di, bp 647 000003FB 8A0E mov cl, [esi] 648 000003FD 6601C8 add ax, cx 649 ; es = cs 650 @Expand5: 651 00000400 66AB stosw 652 00000402 6648 dec ax 653 00000404 E2FA loop @Expand5 654 00000406 75AC jnz short @Expand1 655 656 ; es = 0A000h 657 ;M_ShadeBOBs TimeOut 658 00000408 E80E0D0000 call M_ShadeBOBs_1 659 ;M_KeyPressed 660 0000040D B401 mov ah, 01h 661 0000040F CD32 int 32h ; TRDOS 386 Keyboard interrupt 662 00000411 0F85240B0000 jnz @KeyDownOut 663 00000417 66B91E00 mov cx, 30 664 @FlashBOBs: 665 0000041B 6651 push cx 666 ;M_ShadeBOBs TimeOut2 667 0000041D E8F30C0000 call M_ShadeBOBs_2 668 00000422 6659 pop cx 669 00000424 E2F5 loop @FlashBOBs 670 00000426 E9A2000000 jmp @BOBs_Out 671 ShadesLoop: 672 0000042B 66BE1811 mov si, 2*2188 673 0000042F 66A1[452B0000] mov ax, [Phase1] 674 00000435 6683C002 add ax, PhInc1 675 00000439 6699 cwd 676 0000043B 66F7F6 div si 677 0000043E 668915[452B0000] mov [Phase1], dx 678 00000445 66A1[432B0000] mov ax, [Angle] 679 0000044B 6683C020 add ax, 20h 680 0000044F 66A3[432B0000] mov [Angle], ax 681 00000455 66F7E2 mul dx 682 00000458 30FF xor bh, bh 683 0000045A 88D3 mov bl, dl 684 0000045C 8AA3[33270000] mov ah, [ebx+CosTable] 685 00000462 B090 mov al, RadiusX 686 00000464 F6EC imul ah 687 00000466 66C1F806 sar ax, 6 688 0000046A 6605A000 add ax, CenterX 689 0000046E 6689C7 mov di, ax 690 00000471 66A1[472B0000] mov ax, [Phase2] 691 00000477 6683C003 add ax, PhInc2 692 0000047B 6699 cwd 693 0000047D 66F7F6 div si 694 00000480 668915[472B0000] mov [Phase2], dx 695 00000487 66A1[432B0000] mov ax, [Angle] 696 0000048D 66F7E2 mul dx 697 00000490 88D3 mov bl, dl 698 00000492 8AA3[F3260000] mov ah, [ebx+SinTable] 699 00000498 B0B0 mov al, RadiusY 700 0000049A F6EC imul ah 701 0000049C 66C1F806 sar ax, 6 702 000004A0 6683C064 add ax, CenterY 703 000004A4 6669D04001 imul dx, ax, MaxWidth 704 000004A9 E82D0D0000 call PutBop 705 000004AE 66FF0D[35280000] dec word [Frames] 706 000004B5 0F8570FFFFFF jne ShadesLoop 707 000004BB 66BA5E01 mov dx, MaxBops 708 @HideBOBsLoop: 709 000004BF 66BFFFFF mov di, -1 710 000004C3 E8660D0000 call HideBop 711 000004C8 664A dec dx 712 000004CA 75F3 jnz short @HideBOBsLoop 713 000004CC C3 retn 714 @BOBs_Out: 715 000004CD 9BDBE3 finit ; Make Sin and Cos Tables 716 000004D0 6631F6 xor si, si 717 ; es = ds = cs 718 ; fs = cs + 2000h 719 000004D3 66B90105 mov cx, 2*5*128+1 720 000004D7 D905[73280000] fld dword [Mult1] 721 000004DD DF05[EB260000] fild word [Temp1] 722 000004E3 D9EB fldpi 723 000004E5 DF05[E7260000] fild word [Temp0] 724 000004EB DEF9 fdivp st1, st0 725 @Make2SINCOS: 726 000004ED DF05[EF260000] fild word [Temp2] 727 000004F3 D8C9 fmul st0, st1 728 000004F5 D9FB fsincos 729 000004F7 D8CC fmul st0, st4 730 000004F9 DF9E00D00000 fistp word [esi+Sin2T] 731 000004FF D8CA fmul st0, st2 732 00000501 DF9E00E00000 fistp word [esi+SinT] 733 00000507 66FF05[EF260000] inc word [Temp2] 734 0000050E 6646 inc si 735 00000510 6646 inc si 736 00000512 E2D9 loop @Make2SINCOS 737 00000514 9B wait 738 00000515 6631C0 xor ax, ax 739 00000518 66B9C800 mov cx, 200 740 0000051C 66BF00CE mov di, Row256T 741 @MakeRow256: 742 00000520 66AB stosw 743 00000522 66050001 add ax, 256 744 00000526 E2F8 loop @MakeRow256 745 746 ;; Get Current Character generator Info 747 ;;(modified funtion for TRDOS 386) 748 ;mov bx, 1 ; get 8x8 VGA font data 749 ;mov al, 30h 750 ;mov ah, 11h 751 ;mov edx, VGA_Fonts ; buffer address 752 ;;sub ecx, ecx ; all character fonts 753 ;; ecx = 0 754 ;int 31h ; TRDOS 386 - Video interrupt 755 756 ;M_KeyPressed 757 00000528 B401 mov ah, 01h 758 0000052A CD32 int 32h ; TRDOS 386 Keyboard interrupt 759 0000052C 0F85090A0000 jnz @KeyDownOut 760 00000532 E82D0B0000 call M_WaitVRT_DX 761 00000537 B013 mov al, 13h 762 00000539 B400 mov ah, 00h 763 0000053B CD31 int 31h ; TRDOS 386 - Video interrupt 764 0000053D 66BA00DC mov dx, Temp_PAL2 765 00000541 6631DB xor bx, bx 766 00000544 66B90001 mov cx, 256 767 00000548 B017 mov al, 17h 768 0000054A B410 mov ah, 10h 769 0000054C CD31 int 31h ; TRDOS 386 - Video interrupt 770 771 0000054E 66BE60DC mov si, Temp_PAL2+3*20h 772 00000552 66BF00DF mov di, Temp_PAL3 773 00000556 66B93000 mov cx, 3*10h 774 0000055A F366A5 rep movsw 775 0000055D E8150B0000 call M_ClearPAL 776 777 ; es = fs = cs + 2000h 778 00000562 BF00000200 mov edi, 20000h 779 00000567 893D[E7260000] mov [TextSeg], edi ; es 780 0000056D 6689F8 mov ax, di 781 00000570 66B90020 mov cx, 32*100h 782 00000574 F366AB rep stosw 783 00000577 66C7050A010000090F mov word [CharColor], 0F09h 784 00000580 66BF0804 mov di, 4*100h+8 785 00000584 66BE[9825] mov si, Gfx1Text 786 00000588 E82C110000 call GfxWrite 787 ; es = cs 788 0000058D BF00000200 mov edi, 20000h 789 00000592 89FE mov esi, edi 790 ; es = fs = cs + 2000h 791 00000594 66BE0000 mov si, 0*100h 792 00000598 66BF0020 mov di, 4*8*100h 793 0000059C 66B90070 mov cx, 7*4*8*128 794 000005A0 F366A5 rep movsw ; es:si -> es:di (26h, movsw) 795 000005A3 66C7051A010000007A mov word [x], 7A00h 796 000005AC 66C7051C0100008008 mov word [y], 2176 797 000005B5 31DB xor ebx, ebx 798 000005B7 31F6 xor esi, esi 799 ;mov edi, 40 800 000005B9 66BF2800 mov di, 40 ; edi = 40 801 000005BD E89A0F0000 call RotateMap2 802 ; es = cs 803 ;M_FadeIN Temp_PAL2, Temp_PAL1 804 000005C2 66BE00DC mov si, Temp_PAL2 ; SourcePAL 805 000005C6 66BF00EC mov di, Temp_PAL1 ; DestPAL 806 000005CA E8040B0000 call M_FadeIN 807 000005CF 6631DB xor bx, bx 808 000005D2 66BF2800 mov di, 40 ; edi = 40 809 @Rotate1Map: 810 000005D6 6653 push bx 811 000005D8 6657 push di 812 000005DA E87D0F0000 call RotateMap2 813 000005DF E8800A0000 call M_WaitVRT_DX 814 000005E4 665F pop di 815 000005E6 665B pop bx 816 000005E8 6683051A01000010 add word [x], 16 817 000005F0 6683051C01000010 add word [y], 16 818 000005F8 6683C730 add di, 30h 819 000005FC 6683EB04 sub bx, 4 820 00000600 6681FFD20A cmp di, 2*1385 821 00000605 72CF jb short @Rotate1Map 822 823 ; es = cs 824 ;M_KeyPressed 825 00000607 B401 mov ah, 01h 826 00000609 CD32 int 32h ; TRDOS 386 Keyboard interrupt 827 0000060B 0F852A090000 jnz @KeyDownOut 828 00000611 66C7050C01000084EA mov word [XMin], -5500 829 0000061A 66C7050E0100000000 mov word [YMax], 0 830 00000623 66C705180100000002 mov word [NMax], 512 ;256 831 0000062C 66C705220100003408 mov word [cr], 2100 832 00000635 66C705240100000000 mov word [ci], 0 833 0000063E 66C705100100000A00 mov word [XStep], 10 834 00000647 66C705120100000A00 mov word [YStep], 10 835 ; es = fs = 2000h 836 00000650 BB00000200 mov ebx, 20000h ; fs = 2000h 837 00000655 E8800D0000 call CalcFractal 838 0000065A 66C7050E0100000005 mov word [YMax], 1280+0 839 00000663 BB00800200 mov ebx, 28000h 840 ; es = fs = 2800h 841 00000668 E86D0D0000 call CalcFractal 842 0000066D 31DB xor ebx, ebx ; es = cs 843 ;M_FadeOUT Temp_PAL2, Temp_PAL1 844 0000066F 66BE00DC mov si, Temp_PAL2 ; SourcePAL 845 00000673 66BF00EC mov di, Temp_PAL1 ; DestPAL 846 00000677 E8150A0000 call M_FadeOUT 847 848 ;M_KeyPressed 849 0000067C B401 mov ah, 01h 850 0000067E CD32 int 32h ; TRDOS 386 Keyboard interrupt 851 00000680 0F85B5080000 jnz @KeyDownOut 852 00000686 66BE00E4 mov si, TempPAL2 853 0000068A E8D5090000 call M_WaitVRT_DX 854 0000068F 66BAC803 mov dx, 03C8h 855 00000693 B000 mov al, 00h 856 ;out dx, al 857 00000695 B401 mov ah, 1 ; out (byte) 858 00000697 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 859 860 00000699 6642 inc dx 861 0000069B 66B90003 mov cx, 3*256 862 _outsb1: 863 ;rep outsb 864 0000069F AC lodsb 865 ;mov ah, 1 ; out (byte) 866 000006A0 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 867 000006A2 E2FB loop _outsb1 868 869 000006A4 E8D50F0000 call RotatePAL20 870 000006A9 66C7051A0100000080 mov word [x], 32768 871 000006B2 66C7051C0100000000 mov word [y], 0 872 000006BB 6631DB xor bx, bx 873 000006BE 66BF0078 mov di, 7800h 874 @Rotate2Map: 875 000006C2 6653 push bx 876 000006C4 6657 push di 877 000006C6 E8910E0000 call RotateMap2 878 000006CB E894090000 call M_WaitVRT_DX 879 000006D0 665F pop di 880 000006D2 665B pop bx 881 000006D4 6683C308 add bx, 8 882 000006D8 6681EF8000 sub di, 2*40h 883 000006DD 73E3 jnc short @Rotate2Map 884 ;M_KeyPressed 885 000006DF B401 mov ah, 01h 886 000006E1 CD32 int 32h ; TRDOS 386 Keyboard interrupt 887 000006E3 0F8552080000 jnz @KeyDownOut 888 000006E9 66B90A00 mov cx, 10 889 @wv5: 890 000006ED E872090000 call M_WaitVRT_DX 891 000006F2 E2F9 loop @wv5 892 000006F4 66B9D803 mov cx, 984 893 000006F8 66BA6400 mov dx, 2*50 894 000006FC 6631DB xor bx, bx 895 000006FF 66BF0000 mov di, 0 896 @Rotate3Map: 897 00000703 60 pusha 898 00000704 E84D0E0000 call RotateMap 899 00000709 E8700F0000 call RotatePAL20 900 0000070E 61 popa 901 0000070F 66832D1A01000010 sub word [x], 16 902 00000717 66832D1C01000010 sub word [y], 16 903 0000071F 6601D7 add di, dx 904 00000722 6681FF0060 cmp di, 6000h 905 00000727 7603 jna short @ZoomDIR 906 00000729 66F7DA neg dx 907 @ZoomDIR: 908 0000072C 6683EB04 sub bx, 4 909 00000730 E2D1 loop @Rotate3Map 910 ;M_FadeOUT Temp_PAL2, Temp_PAL1 911 00000732 66BE00DC mov si, Temp_PAL2 ; SourcePAL 912 00000736 66BF00EC mov di, Temp_PAL1 ; DestPAL 913 0000073A E852090000 call M_FadeOUT 914 ;M_KeyPressed 915 0000073F B401 mov ah, 01h 916 00000741 CD32 int 32h ; TRDOS 386 Keyboard interrupt 917 00000743 0F85F2070000 jnz @KeyDownOut 918 ;M_WaitVRT_DX 919 00000749 E816090000 call M_WaitVRT_DX 920 0000074E B013 mov al, 13h 921 00000750 B400 mov ah, 00h 922 00000752 CD31 int 31h ; TRDOS 386 - Video interrupt 923 ; es = fs 924 00000754 BF00000200 mov edi, 20000h 925 00000759 893D[E7260000] mov [TextSeg], edi ; es 926 0000075F 6689F8 mov ax, di 927 00000762 66B90080 mov cx, 10000h/2 928 00000766 F366AB rep stosw 929 00000769 66C7050A010000000C mov word [CharColor], 0C00h 930 ;mov edi, 80 931 00000772 66BF5000 mov di, 80 932 00000776 66BE[F625] mov si, Gfx2Text 933 0000077A E83A0F0000 call GfxWrite 934 0000077F 66C7051A0100000080 mov word [x], 8000h 935 00000788 66C7051C0100000004 mov word [y], 400h 936 00000791 66BB0004 mov bx, 2*512 937 00000795 66BF0012 mov di, 1200h 938 @Rotate4Map: 939 00000799 6653 push bx 940 0000079B 6657 push di 941 0000079D E8BA0D0000 call RotateMap2 942 ;M_WaitVRT_DX 943 000007A2 E8BD080000 call M_WaitVRT_DX 944 000007A7 665F pop di 945 000007A9 665B pop bx 946 000007AB 6683EB08 sub bx, 2*4 947 000007AF 7903 jns short @BXOkay 948 000007B1 6631DB xor bx, bx 949 @BXOkay: 950 000007B4 6683EF18 sub di, 18h 951 000007B8 73DF jnc short @Rotate4Map 952 ;M_KeyPressed 953 000007BA B401 mov ah, 01h 954 000007BC CD32 int 32h ; TRDOS 386 Keyboard interrupt 955 000007BE 0F8577070000 jnz @KeyDownOut 956 ; es = fs 957 000007C4 BF00000200 mov edi, 20000h 958 000007C9 893D[E7260000] mov [TextSeg], edi ; es 959 000007CF 6689F8 mov ax, di 960 000007D2 66B90080 mov cx, 10000h/2 961 000007D6 F366AB rep stosw 962 000007D9 66C7050A010000000A mov word [CharColor], 0A00h 963 000007E2 66BF7400 mov di, 116 964 000007E6 66BE[0426] mov si, Gfx3Text 965 000007EA E8CA0E0000 call GfxWrite 966 000007EF 6631DB xor bx, bx 967 000007F2 66BF0000 mov di, 0 968 @Rotate5Map: 969 000007F6 6653 push bx 970 000007F8 6657 push di 971 000007FA E85D0D0000 call RotateMap2 972 ;M_WaitVRT_DX 973 000007FF E860080000 call M_WaitVRT_DX 974 00000804 665F pop di 975 00000806 665B pop bx 976 00000808 6683C718 add di, 18h 977 0000080C 6681FF0012 cmp di, 1200h 978 00000811 76E3 jbe short @Rotate5Map 979 ;M_FadeOUT Temp_PAL2, Temp_PAL1 980 00000813 66BE00DC mov si, Temp_PAL2 ; SourcePAL 981 00000817 66BF00EC mov di, Temp_PAL1 ; DestPAL 982 0000081B E871080000 call M_FadeOUT 983 ;M_KeyPressed 984 00000820 B401 mov ah, 01h 985 00000822 CD32 int 32h ; TRDOS 386 Keyboard interrupt 986 00000824 0F8511070000 jnz @KeyDownOut 987 988 FreeSpace Equ W_Divider 989 _TempR32A Equ FreeSpace+00h 990 _TempR32B Equ FreeSpace+04h 991 _TempR32C Equ FreeSpace+08h 992 _TempReg Equ FreeSpace+0Ch 993 MountHeight Equ FreeSpace+10h 994 Map_X Equ FreeSpace+12h 995 Map_Y Equ FreeSpace+14h 996 RandomSeed Equ FreeSpace+16h 997 _TempR16A Equ FreeSpace+18h 998 _TempR16B Equ FreeSpace+1Ah 999 _TempR16C Equ FreeSpace+1Ch 1000 Count_Loop Equ FreeSpace+1Eh 1001 Table_A Equ 10200h 1002 Table_B Equ 10400h 1003 Table_C Equ 10600h 1004 1005 0000082A BF00000100 mov edi, 10000h 1006 0000082F F9 stc 1007 00000830 19C0 sbb eax, eax 1008 00000832 66B93D00 mov cx, ((LastMake_-MapMakeTable)/2)+1 ; 3Dh 1009 @Decompress2: 1010 00000836 660307 add ax, [edi] 1011 00000839 6640 inc ax 1012 0000083B 66AB stosw 1013 0000083D E2F7 loop @Decompress2 1014 0000083F 6631C0 xor ax, ax 1015 ;int 1Ah 1016 00000842 CD35 int 35h ; TRDOS 386 - Date&Time interrupt 1017 00000844 81E1FF7F0000 and ecx, 7FFFh 1018 0000084A 66890DAA000100 mov [RandomSeed], cx 1019 1020 00000851 66B81300 mov ax, 0013h 1021 00000855 CD31 int 31h ; TRDOS 386 - Video interrupt 1022 ; 1023 00000857 66BAC803 mov dx, 03C8h 1024 0000085B 30C0 xor al, al 1025 ;out dx, al 1026 0000085D B401 mov ah, 1 ; out (byte) 1027 0000085F CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1028 00000861 6642 inc dx 1029 00000863 66B94000 mov cx, 64 1030 @SetPal1: 1031 ;out dx, al 1032 ;mov ah, 1 ; out (byte) 1033 00000867 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1034 ;out dx, al 1035 ;mov ah, 1 ; out (byte) 1036 00000869 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1037 ;out dx, al 1038 ;mov ah, 1 ; out (byte) 1039 0000086B CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1040 0000086D FEC0 inc al 1041 0000086F E2F6 loop @SetPal1 1042 00000871 B140 mov cl, 64 1043 ;xor ah, ah 1044 00000873 30DB xor bl, bl 1045 @SetPal2: 1046 00000875 30C0 xor al, al 1047 ;out dx, al 1048 ;mov ah, 1 ; out (byte) 1049 00000877 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1050 ;out dx, al 1051 ;mov ah, 1 ; out (byte) 1052 00000879 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1053 ;mov al, ah 1054 0000087B 88D8 mov al, bl 1055 ;out dx, al 1056 ;mov ah, 1 ; out (byte) 1057 0000087D CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1058 ;inc ah 1059 0000087F FEC3 inc bl 1060 00000881 E2F2 loop @SetPal2 1061 00000883 B140 mov cl, 64 1062 ;xor ax, ax 1063 00000885 30C0 xor al, al 1064 00000887 30DB xor bl, bl 1065 @SetPal3: 1066 ;out dx, al 1067 ;mov ah, 1 ; out (byte) 1068 00000889 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1069 ;mov al, ah 1070 ;out dx, al 1071 0000088B 88D8 mov al, bl 1072 ;mov ah, 1 ; out (byte) 1073 0000088D CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1074 0000088F 30C0 xor al, al 1075 ;mov ah, 1 ; out (byte) 1076 00000891 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1077 ;inc ah 1078 00000893 FEC3 inc bl 1079 00000895 E2F2 loop @SetPal3 1080 00000897 B140 mov cl, 64 1081 @SetPal4: 1082 ;mov ah, 1 ; out (byte) 1083 00000899 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1084 ;mov ah, 1 ; out (byte) 1085 0000089B CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1086 ;mov ah, 1 ; out (byte) 1087 0000089D CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1088 0000089F E2F8 loop @SetPal4 1089 1090 000008A1 BA00DC0100 mov edx, Temp_PAL2+Data_Seg 1091 000008A6 6631DB xor bx, bx 1092 000008A9 66B90001 mov cx, 256 1093 000008AD B017 mov al, 17h 1094 000008AF B410 mov ah, 10h 1095 000008B1 CD31 int 31h ; TRDOS 386 - Video interrupt 1096 1097 000008B3 E8BF070000 call M_ClearPAL 1098 1099 000008B8 E8B2000000 call CalcSky 1100 000008BD 66C705B20001000004 mov word [Count_Loop], 1024 1101 000008C6 66C705A60001000004 mov word [Map_X], 1024 1102 000008CF 66C705A80001000004 mov word [Map_Y], 1024 1103 000008D8 E878020000 call UpdateView 1104 000008DD E83F030000 call UpdateSky 1105 000008E2 E805040000 call UpdateMap 1106 000008E7 E878070000 call M_WaitVRT_DX 1107 000008EC BF00000A00 mov edi, VRAM_Seg ; mov es, [VRAM_Seg] 1108 000008F1 BE00060100 mov esi, Table_C 1109 000008F6 66BF2000 mov di, (320-256)/2 1110 000008FA B3C8 mov bl, 200 1111 ;xor ecx, ecx 1112 @Copy2VRAM: 1113 000008FC B140 mov cl, 256/4 1114 000008FE F3A5 rep movsd 1115 00000900 6683C740 add di, (320-256) 1116 00000904 FECB dec bl 1117 00000906 75F4 jnz short @Copy2VRAM 1118 ;M_FadeIN Temp_PAL2, Temp_PAL1 1119 00000908 BE00DC0100 mov esi, Temp_PAL2+Data_Seg ; SourcePAL 1120 0000090D BF00EC0100 mov edi, Temp_PAL1+Data_Seg ; DestPAL ; es = [Data_Seg] 1121 00000912 E8BC070000 call M_FadeIN 1122 00000917 66B9FA00 mov cx, 250 1123 @wv6: 1124 0000091B E844070000 call M_WaitVRT_DX 1125 00000920 E2F9 loop @wv6 1126 @DrawAgain: 1127 00000922 E82E020000 call UpdateView 1128 00000927 E8F5020000 call UpdateSky 1129 0000092C E8BB030000 call UpdateMap 1130 00000931 E82E070000 call M_WaitVRT_DX 1131 00000936 BF00000A00 mov edi, VRAM_Seg ; mov es, [VRAM_Seg] 1132 0000093B BE00060100 mov esi, Table_C 1133 00000940 66BF2000 mov di, (320-256)/2 1134 00000944 B3C8 mov bl, 200 1135 ;xor ecx, ecx 1136 @CopyToVRAM: 1137 00000946 B140 mov cl, 256/4 1138 00000948 F3A5 rep movsd 1139 0000094A 6683C740 add di, (320-256) 1140 0000094E FECB dec bl 1141 00000950 75F4 jnz short @CopyToVRAM 1142 00000952 66FF0DB2000100 dec word [Count_Loop] 1143 00000959 75C7 jnz short @DrawAgain 1144 ;M_FadeOUT Temp_PAL2, Temp_PAL1 1145 0000095B BE00DC0100 mov esi, Temp_PAL2+Data_Seg ; SourcePAL 1146 00000960 BF00EC0100 mov edi, Temp_PAL1+Data_Seg ; DestPAL ; es = [Data_Seg] 1147 00000965 E827070000 call M_FadeOUT 1148 0000096A E938050000 jmp @TheEND 1149 1150 CalcSky: ; sub_244E 1151 0000096F BF00000400 mov edi, Sky_Seg ; mov es, [Sky_Seg] 1152 00000974 89FD mov ebp, edi 1153 1154 00000976 F9 stc 1155 00000977 19C0 sbb eax, eax 1156 00000979 66B90040 mov cx, 4000h 1157 0000097D F3AB rep stosd 1158 0000097F 668B35AA000100 mov si, [RandomSeed] 1159 1160 00000986 E8AF160000 call M_MakeMUL 1161 0000098B 668915AA000100 mov [RandomSeed], dx 1162 00000992 66B90001 mov cx, 0100h 1163 00000996 C68580000000FE mov byte [ebp+0080h], -2 1164 0000099D C68500800000FE mov byte [ebp+8000h], -2 1165 000009A4 884D00 mov byte [ebp+0000h], cl 1166 000009A7 888D80800000 mov byte [ebp+8080h], cl ; es 1167 000009AD 89EB mov ebx, ebp ; es:bx, bx = 0 1168 000009AF 89DF mov edi, ebx ; es:di, es = [Sky_Seg] 1169 000009B1 E8ED000000 call CalcFrac 1170 000009B6 89EF mov edi, ebp 1171 CalcSky1: 1172 000009B8 B401 mov ah, 1 1173 000009BA 8A07 mov al, [edi] ; [es:di] ; di = 0 1174 000009BC 66C1E802 shr ax, 2 1175 000009C0 AA stosb 1176 000009C1 6609FF or di, di 1177 000009C4 75F2 jnz short CalcSky1 1178 ; CalcMap: 1179 000009C6 BF00000200 mov edi, MapA_Seg ; mov es, [MapA_Seg] 1180 000009CB 89FD mov ebp, edi 1181 1182 000009CD F9 stc 1183 000009CE 19C0 sbb eax, eax 1184 000009D0 66B90040 mov cx, 4000h 1185 000009D4 F3AB rep stosd 1186 000009D6 668B35AA000100 mov si, [RandomSeed] 1187 000009DD E858160000 call M_MakeMUL 1188 000009E2 668915AA000100 mov [RandomSeed], dx 1189 000009E9 66B90001 mov cx, 0100h 1190 000009ED B028 mov al, 40 1191 ;stosb 1192 000009EF 884500 mov [ebp], al 1193 000009F2 89EB mov ebx, ebp ; es:bx, bx = 0 1194 000009F4 89DF mov edi, ebx ; es:di, es = [MapA_Seg] 1195 000009F6 E8A8000000 call CalcFrac 1196 ;xor ebx, ebx 1197 000009FB 6631FF xor di, di ; edi -> es:di, di = 0 1198 000009FE 89FB mov ebx, edi ; MapA_Seg 1199 CalcMap1: 1200 00000A00 6631C0 xor ax, ax 1201 00000A03 BE8C000100 mov esi, MapCoord_ 1202 00000A08 668B1E mov bx, [esi] 1203 00000A0B 6601FB add bx, di 1204 00000A0E 0203 add al, [ebx] ; [es:bx+di] 1205 00000A10 10EC adc ah, ch 1206 00000A12 6646 inc si 1207 00000A14 6646 inc si 1208 00000A16 668B1E mov bx, [esi] 1209 00000A19 6601FB add bx, di 1210 00000A1C 0203 add al, [ebx] ; [es:bx+di] 1211 00000A1E 10EC adc ah, ch 1212 00000A20 6646 inc si 1213 00000A22 6646 inc si 1214 00000A24 668B1E mov bx, [esi] 1215 00000A27 6601FB add bx, di 1216 00000A2A 0203 add al, [ebx] ; [es:bx+di] 1217 00000A2C 10EC adc ah, ch 1218 00000A2E 6646 inc si 1219 00000A30 6646 inc si 1220 00000A32 668B1E mov bx, [esi] 1221 00000A35 6601FB add bx, di 1222 00000A38 0203 add al, [ebx] ; [es:bx+di] 1223 00000A3A 10EC adc ah, ch 1224 00000A3C 66C1E802 shr ax, 2 1225 00000A40 AA stosb 1226 00000A41 6609FF or di, di 1227 00000A44 75BA jnz short CalcMap1 1228 ;xor ebx, ebx 1229 00000A46 89EE mov esi, ebp ; es = [MapA_Seg] 1230 00000A48 89F7 mov edi, esi 1231 00000A4A BD00000300 mov ebp, MapB_Seg ; mov fs, [MapB_Seg] 1232 CalcMap2: 1233 00000A4F 8A06 mov al, [esi] ; [es:si] 1234 00000A51 2A4603 sub al, [esi+3] ; [es:si+3] 1235 00000A54 18E4 sbb ah, ah 1236 00000A56 6683C020 add ax, 20h 1237 00000A5A 7903 jns short CalcMap3 1238 00000A5C 6631C0 xor ax, ax 1239 CalcMap3: 1240 00000A5F 3C3F cmp al, 3Fh 1241 00000A61 7602 jbe short CalcMap4 1242 00000A63 B03F mov al, 3Fh 1243 CalcMap4: 1244 00000A65 6689F5 mov bp, si 1245 00000A68 884500 mov [ebp], al ; mov [fs:si],al 1246 00000A6B 6646 inc si 1247 00000A6D 75E0 jnz short CalcMap2 1248 CalcMap5: 1249 00000A6F 89FD mov ebp, edi ; es = [MapA_Seg] 1250 00000A71 6631C0 xor ax, ax 1251 00000A74 024500 add al, [ebp] ; [es:di] 1252 00000A77 10EC adc ah, ch 1253 00000A79 6681C50001 add bp, 100h 1254 00000A7E 024500 add al, [ebp] ; [es:di+0100h] 1255 00000A81 10EC adc ah, ch 1256 00000A83 6647 inc di 1257 00000A85 89FD mov ebp, edi 1258 00000A87 024500 add al, [ebp] ; [es:di] 1259 00000A8A 10EC adc ah, ch 1260 00000A8C 6681C50001 add bp, 100h 1261 00000A91 024500 add al, [ebp] ; [es:di+0100h] 1262 00000A94 10EC adc ah, ch 1263 00000A96 664F dec di 1264 00000A98 66C1E802 shr ax, 2 1265 00000A9C AA stosb 1266 00000A9D 6609FF or di, di 1267 00000AA0 75CD jnz short CalcMap5 1268 ;xor edi, edi 1269 OutCalcFrac: 1270 00000AA2 C3 retn 1271 1272 CalcFrac: ; sub_2552 1273 00000AA3 66D1E9 shr cx, 1 1274 00000AA6 74FA jz short OutCalcFrac 1275 00000AA8 6631C0 xor ax, ax 1276 00000AAB 0203 add al, [ebx] ; [es:bx] 1277 00000AAD 10EC adc ah, ch 1278 00000AAF 00CB add bl, cl 1279 ;mov edi, ebx 1280 00000AB1 6689DF mov di, bx 1281 00000AB4 00CB add bl, cl 1282 ;M_CalcSquare 1283 00000AB6 E8C3150000 call M_CalcSquare 1284 00000ABB 6631C0 xor ax, ax 1285 00000ABE 0203 add al, [ebx] ; [es:bx] 1286 00000AC0 10EC adc ah, ch 1287 00000AC2 00CF add bh, cl 1288 ;mov edi, ebx 1289 00000AC4 6689DF mov di, bx 1290 00000AC7 00CF add bh, cl 1291 ;M_CalcSquare 1292 00000AC9 E8B0150000 call M_CalcSquare 1293 00000ACE 6631C0 xor ax, ax 1294 00000AD1 0203 add al, [ebx] ; [es:bx] 1295 00000AD3 10EC adc ah, ch 1296 00000AD5 28CB sub bl, cl 1297 ;mov edi, ebx 1298 00000AD7 6689DF mov di, bx 1299 00000ADA 28CB sub bl, cl 1300 ;M_CalcSquare 1301 00000ADC E89D150000 call M_CalcSquare 1302 00000AE1 6631C0 xor ax, ax 1303 00000AE4 0203 add al, [ebx] ; [es:bx] 1304 00000AE6 10EC adc ah, ch 1305 00000AE8 28CF sub bh, cl 1306 ;mov edi, ebx 1307 00000AEA 6689DF mov di, bx 1308 00000AED 28CF sub bh, cl 1309 ;M_CalcSquare 1310 00000AEF E88A150000 call M_CalcSquare 1311 00000AF4 6631C0 xor ax, ax 1312 00000AF7 0203 add al, [ebx] ; [es:bx] 1313 00000AF9 10EC adc ah, ch 1314 00000AFB 00CB add bl, cl 1315 00000AFD 00CB add bl, cl 1316 00000AFF 0203 add al, [ebx] ; [es:bx] 1317 00000B01 10EC adc ah, ch 1318 00000B03 00CF add bh, cl 1319 00000B05 00CF add bh, cl 1320 00000B07 0203 add al, [ebx] ; [es:bx] 1321 00000B09 10EC adc ah, ch 1322 00000B0B 28CB sub bl, cl 1323 00000B0D 28CB sub bl, cl 1324 00000B0F 0203 add al, [ebx] ; [es:bx] 1325 00000B11 10EC adc ah, ch 1326 00000B13 66C1E802 shr ax, 2 1327 ;M_Calc2Square 1328 00000B17 E838150000 call M_Calc2Square 1329 00000B1C 00CB add bl, cl 1330 00000B1E 28CF sub bh, cl 1331 00000B20 8803 mov [ebx], al ; mov [es:bx], al 1332 00000B22 6653 push bx 1333 00000B24 6651 push cx 1334 00000B26 E878FFFFFF call CalcFrac 1335 00000B2B 6659 pop cx 1336 00000B2D 665B pop bx 1337 00000B2F 28CB sub bl, cl 1338 00000B31 6653 push bx 1339 00000B33 6651 push cx 1340 00000B35 E869FFFFFF call CalcFrac 1341 00000B3A 6659 pop cx 1342 00000B3C 665B pop bx 1343 00000B3E 28CF sub bh, cl 1344 00000B40 6653 push bx 1345 00000B42 6651 push cx 1346 00000B44 E85AFFFFFF call CalcFrac 1347 00000B49 6659 pop cx 1348 00000B4B 665B pop bx 1349 00000B4D 00CB add bl, cl 1350 00000B4F E84FFFFFFF call CalcFrac 1351 00000B54 C3 retn 1352 1353 UpdateView: ; sub_26FD 1354 00000B55 668B0DA6000100 mov cx, [Map_X] 1355 00000B5C 668B15A8000100 mov dx, [Map_Y] 1356 00000B63 0FB71DB2000100 movzx ebx, word [Count_Loop] 1357 ;mov bx, [Count_Loop] 1358 00000B6A 664B dec bx 1359 00000B6C 66C1EB08 shr bx, 8 1360 00000B70 66D1E3 shl bx, 1 1361 00000B73 66038B7C000100 add cx, [ebx+AddCXTable] 1362 00000B7A 66039384000100 add dx, [ebx+AddDXTable] 1363 00000B81 66890DA6000100 mov [Map_X], cx 1364 00000B88 668915A8000100 mov [Map_Y], dx 1365 ; Calculate New Points 1366 00000B8F BB00000200 mov ebx, MapA_Seg ; mov es, [MapA_Seg] 1367 00000B94 66C1C904 ror cx, 4 1368 00000B98 66C1CA04 ror dx, 4 1369 00000B9C 88CB mov bl, cl 1370 00000B9E 88D7 mov bh, dl 1371 00000BA0 66C1E90C shr cx, 0Ch 1372 00000BA4 66C1EA0C shr dx, 0Ch 1373 00000BA8 6652 push dx 1374 00000BAA FEC3 inc bl 1375 00000BAC 6631C0 xor ax, ax 1376 00000BAF 0203 add al, [ebx] ; [es:bx] 1377 00000BB1 FECB dec bl 1378 00000BB3 2A03 sub al, [ebx] ; [es:bx] 1379 00000BB5 18E4 sbb ah, ah 1380 00000BB7 66F7E9 imul cx 1381 00000BBA 6689C2 mov dx, ax 1382 00000BBD 6631C0 xor ax, ax 1383 00000BC0 0203 add al, [ebx] ; [es:bx] 1384 00000BC2 66C1E004 shl ax, 4 1385 00000BC6 6601D0 add ax, dx 1386 00000BC9 6696 xchg si, ax 1387 00000BCB FEC7 inc bh 1388 00000BCD FEC3 inc bl 1389 00000BCF 6631C0 xor ax, ax 1390 00000BD2 0203 add al, [ebx] ; [es:bx] 1391 00000BD4 FECB dec bl 1392 00000BD6 2A03 sub al, [ebx] ; [es:bx] 1393 00000BD8 18E4 sbb ah, ah 1394 00000BDA 66F7E9 imul cx 1395 00000BDD 6689C2 mov dx, ax 1396 00000BE0 6631C0 xor ax, ax 1397 00000BE3 0203 add al, [ebx] ; [es:bx] 1398 00000BE5 66C1E004 shl ax, 4 1399 00000BE9 6601D0 add ax, dx 1400 00000BEC 665A pop dx 1401 00000BEE 6629F0 sub ax, si 1402 00000BF1 66F7EA imul dx 1403 00000BF4 66C1E604 shl si, 4 1404 00000BF8 6601F0 add ax, si 1405 00000BFB 31DB xor ebx, ebx 1406 00000BFD 80C41A add ah, 1Ah 1407 00000C00 7304 jnc short CalcNew1 1408 00000C02 66B8FFFF mov ax, 0FFFFh 1409 CalcNew1: 1410 00000C06 66A3A4000100 mov [MountHeight], ax 1411 00000C0C B401 mov ah, 1 1412 00000C0E CD32 int 32h ; TRDOS 386 Keyboard interrupt 1413 00000C10 740E jz short CalcNew2 1414 00000C12 66C705B20001000100 mov word [Count_Loop], 1 1415 00000C1B 6631C0 xor ax, ax 1416 00000C1E CD32 int 32h ; TRDOS 386 Keyboard interrupt 1417 CalcNew2: 1418 00000C20 C3 retn 1419 1420 UpdateSky: ; sub_2795 1421 ;mov edi, Data_Seg ; mov es, [Data_Seg] 1422 00000C21 BEA4000100 mov esi, MountHeight 1423 00000C26 BF94000100 mov edi, _TempR32A 1424 00000C2B 31C0 xor eax, eax 1425 00000C2D 66AD lodsw 1426 00000C2F 66F7D8 neg ax 1427 00000C32 66C1E803 shr ax, 3 1428 00000C36 80C440 add ah, 40h 1429 00000C39 C1E004 shl eax, 4 1430 00000C3C C1E009 shl eax, 9 1431 00000C3F AB stosd 1432 00000C40 31C0 xor eax, eax 1433 00000C42 66AD lodsw 1434 00000C44 C1E009 shl eax, 9 1435 00000C47 AB stosd 1436 00000C48 31C0 xor eax, eax 1437 00000C4A 66AD lodsw 1438 00000C4C C1E009 shl eax, 9 1439 00000C4F AB stosd 1440 00000C50 678D4CB9 lea ecx, [si-(MountHeight-Data_Seg)-6+63h] 1441 00000C54 BF00060100 mov edi, Table_C 1442 @UpdateSky1: 1443 00000C59 BE94000100 mov esi, _TempR32A 1444 00000C5E 8B06 mov eax, [esi] ; [_TempR32A] 1445 00000C60 31D2 xor edx, edx 1446 00000C62 F7F1 div ecx ; Data_Seg + 63h = 63h 1447 00000C64 8B5E04 mov ebx, [esi+4] ; [_TempR32B] 1448 00000C67 8B7608 mov esi, [esi+8] ; [_TempR32C] 1449 00000C6A 29C6 sub esi, eax 1450 00000C6C 01C3 add ebx, eax 1451 00000C6E C1E807 shr eax, 7 1452 00000C71 6689F5 mov bp, si 1453 00000C74 C1EE10 shr esi, 10h 1454 00000C77 6681E6FF00 and si, 0FFh 1455 00000C7C C1EB08 shr ebx, 8 1456 00000C7F 30DB xor bl, bl 1457 00000C81 6609DE or si, bx 1458 00000C84 89C3 mov ebx, eax 1459 00000C86 C1EB10 shr ebx, 10h 1460 00000C89 664B dec bx 1461 1462 00000C8B 6651 push cx 1463 00000C8D B900000400 mov ecx, Sky_Seg ; gs 1464 00000C92 6689F1 mov cx, si 1465 00000C95 89CE mov esi, ecx 1466 00000C97 B9FF000000 mov ecx, 255 1467 _UpdateSky0: 1468 00000C9C A4 movsb ; gs:si, es:di ; es = [Data_Seg] 1469 00000C9D 6601C5 add bp, ax 1470 00000CA0 6611DE adc si, bx 1471 00000CA3 E2F7 loop _UpdateSky0 1472 00000CA5 6659 pop cx 1473 1474 00000CA7 A4 movsb 1475 00000CA8 6649 dec cx 1476 00000CAA 75AD jnz short @UpdateSky1 1477 00000CAC B850505050 mov eax, 50505050h 1478 00000CB1 B140 mov cl, 40h 1479 00000CB3 F3AB rep stosd 1480 00000CB5 0FB735A4000100 movzx esi, word [MountHeight] 1481 00000CBC 66BB0400 mov bx, 4 1482 @UpdateSky2: 1483 00000CC0 6689F0 mov ax, si 1484 00000CC3 6631D2 xor dx, dx 1485 00000CC6 66F7F3 div bx 1486 00000CC9 66C1E807 shr ax, 7 1487 00000CCD 3C3F cmp al, 3Fh 1488 00000CCF 7602 jbe short @UpdateSky3 1489 00000CD1 B03F mov al, 3Fh 1490 @UpdateSky3: 1491 00000CD3 0C80 or al, 80h 1492 00000CD5 88C4 mov ah, al 1493 00000CD7 6689C2 mov dx, ax 1494 00000CDA C1E010 shl eax, 10h 1495 00000CDD 6692 xchg ax, dx 1496 00000CDF B140 mov cl, 40h 1497 00000CE1 F3AB rep stosd 1498 00000CE3 6643 inc bx 1499 00000CE5 6683FB2C cmp bx, 2Ch 1500 00000CE9 75D5 jne short @UpdateSky2 1501 00000CEB C3 retn 1502 1503 UpdateMap: ; sub_2E43 1504 ;mov fs, [MapA_Seg] 1505 ;mov gs, [MapB_Seg] 1506 ; edi = 1????h ; es = [Data_Seg] 1507 00000CEC B8007D007D mov eax, 7D007D00h 1508 00000CF1 BF00020100 mov edi, Table_A 1509 00000CF6 66B94000 mov cx, 40h 1510 00000CFA F3AB rep stosd 1511 00000CFC 66B94000 mov cx, 40h 1512 00000D00 F3AB rep stosd 1513 00000D02 31C0 xor eax, eax 1514 00000D04 BF00040100 mov edi, Table_B 1515 00000D09 66B94000 mov cx, 40h 1516 00000D0D F3AB rep stosd 1517 00000D0F 66B94000 mov cx, 40h 1518 00000D13 F3AB rep stosd 1519 00000D15 66C705AC0001007800 mov word [_TempR16A], 78h 1520 @UpdateMap1: 1521 00000D1E 668B35AC000100 mov si, [_TempR16A] 1522 00000D25 668BB600000100 mov si, [esi+MapMakeTable] 1523 00000D2C 66C1E604 shl si, 4 1524 00000D30 66A1A8000100 mov ax, [Map_Y] 1525 00000D36 6683E00F and ax, 0Fh 1526 00000D3A 340F xor al, 0Fh 1527 00000D3C 6601C6 add si, ax 1528 00000D3F 66A1A4000100 mov ax, [MountHeight] 1529 00000D45 6631D2 xor dx, dx 1530 00000D48 66F7F6 div si 1531 00000D4B 6683C064 add ax, 64h 1532 00000D4F 66A3AE000100 mov [_TempR16B], ax 1533 00000D55 678D04 lea eax, [si] 1534 00000D58 C1E006 shl eax, 6 1535 00000D5B A3A0000100 mov [_TempReg], eax 1536 00000D60 66833DAC00010002 cmp word [_TempR16A], 2 1537 00000D68 7514 jne short @UpdateMap2 1538 00000D6A 66C705AE000100007D mov word [_TempR16B], 7D00h 1539 00000D73 66C705B00001000000 mov word [_TempR16C], 0000h 1540 00000D7C EB10 jmp short @UpdateMap3 1541 @UpdateMap2: 1542 00000D7E 6631C0 xor ax, ax 1543 00000D81 66BA0100 mov dx, 1 1544 00000D85 66F7F6 div si 1545 00000D88 66A3B0000100 mov [_TempR16C], ax 1546 @UpdateMap3: 1547 00000D8E 0FB70DA6000100 movzx ecx, word [Map_X] 1548 00000D95 C1E10C shl ecx, 0Ch 1549 00000D98 A1A0000100 mov eax, [_TempReg] 1550 00000D9D C1E007 shl eax, 7 1551 00000DA0 29C1 sub ecx, eax 1552 00000DA2 66A1A8000100 mov ax, [Map_Y] 1553 00000DA8 66C1E004 shl ax, 4 1554 00000DAC 89CB mov ebx, ecx 1555 00000DAE C1EB10 shr ebx, 10h 1556 00000DB1 88E7 mov bh, ah 1557 00000DB3 6689F0 mov ax, si 1558 00000DB6 66C1E004 shl ax, 4 1559 00000DBA 00E7 add bh, ah 1560 00000DBC BE00060100 mov esi, Table_C 1561 00000DC1 66893598000100 mov word [_TempR32B], si 1562 00000DC8 BEFE010000 mov esi, 1FEh 1563 00000DCD 66D1E9 shr cx, 1 1564 @UpdateMap4: 1565 00000DD0 66D1E1 shl cx, 1 1566 00000DD3 66030DA0000100 add cx, word [_TempReg] 1567 00000DDA 121DA2000100 adc bl, byte [_TempReg+2] 1568 00000DE0 66D1E9 shr cx, 1 1569 1570 00000DE3 BD00000200 mov ebp, MapA_Seg ; mov fs, [MapA_Seg] 1571 00000DE8 6689DD mov bp, bx 1572 1573 00000DEB 8A4501 mov al, [ebp+1] ; [fs:bx+1] 1574 00000DEE 2A4500 sub al, [ebp] ; [fs:bx] 1575 00000DF1 18E4 sbb ah, ah 1576 00000DF3 66F7E9 imul cx 1577 00000DF6 660FACD007 shrd ax, dx, 7 1578 00000DFB 026500 add ah, [ebp] ; [fs:bx] 1579 00000DFE 66F725B0000100 mul word [_TempR16C] 1580 00000E05 668B3DAE000100 mov di, [_TempR16B] 1581 00000E0C 6629D7 sub di, dx 1582 00000E0F 7904 jns short @UpdateMap5 1583 00000E11 66BFFFFF mov di, 0FFFFh 1584 @UpdateMap5: 1585 00000E15 6681FFC800 cmp di, 0C8h 1586 00000E1A 7C04 jl short @UpdateMap6 1587 00000E1C 66BFC700 mov di, 0C7h 1588 @UpdateMap6: 1589 00000E20 BD00000300 mov ebp, MapB_Seg ; mov gs, [MapB_Seg] 1590 00000E25 6689DD mov bp, bx 1591 1592 00000E28 8A4501 mov al, [ebp+1] ; [gs:bx+1] 1593 00000E2B 2A4500 sub al, [ebp] ; [gs:bx] 1594 00000E2E F6ED imul ch 1595 00000E30 66D1E0 shl ax, 1 1596 00000E33 026500 add ah, [ebp] ; [gs:bx] 1597 00000E36 6689C2 mov dx, ax 1598 00000E39 66878600040100 xchg ax, [esi+Table_B] 1599 00000E40 0FB7EF movzx ebp, di 1600 00000E43 6687AE00020100 xchg bp, [esi+Table_A] 1601 00000E4A 6629FD sub bp, di 1602 00000E4D 7936 jns short @UpdateMap7 1603 00000E4F 66C1E708 shl di, 8 1604 00000E53 66033D98000100 add di, word [_TempR32B] 1605 00000E5A 6650 push ax 1606 00000E5C 6629D0 sub ax, dx 1607 00000E5F 6699 cwd 1608 00000E61 66F7FD idiv bp 1609 00000E64 665A pop dx 1610 00000E66 6653 push bx 1611 00000E68 66678D5E01 lea bx, [bp+1] 1612 00000E6D 66C1E502 shl bp, 2 ; * 4 1613 00000E71 66C1E308 shl bx, 8 1614 00000E75 668D6C6D00 lea bp, [ebp+ebp*2] ; ebp*12 -> -5x12 = -60 1615 00000E7A 6681C5[3E20] add bp, @UpdateMap8+0Ch ; 12 -> 88343Bh, 6601C2h, FEC7h 1616 00000E7F 56 push esi 1617 00000E80 FFD5 call ebp 1618 00000E82 5E pop esi 1619 00000E83 665B pop bx 1620 @UpdateMap7: 1621 00000E85 66FF0598000100 inc word [_TempR32B] 1622 00000E8C 664E dec si 1623 00000E8E 664E dec si 1624 00000E90 0F893AFFFFFF jns @UpdateMap4 1625 00000E96 66832DAC00010002 sub word [_TempR16A], 2 1626 00000E9E 0F857AFEFFFF jnz @UpdateMap1 1627 00000EA4 31C9 xor ecx, ecx 1628 00000EA6 C3 retn 1629 1630 @TheEND: 1631 ;M_KeyPressed 1632 00000EA7 B401 mov ah, 01h 1633 00000EA9 CD32 int 32h ; TRDOS 386 Keyboard interrupt 1634 00000EAB 0F858A000000 jnz @KeyDownOut 1635 1636 00000EB1 E8AE010000 call M_WaitVRT_DX 1637 00000EB6 B013 mov al, 13h 1638 00000EB8 B400 mov ah, 00h 1639 00000EBA CD31 int 31h ; TRDOS 386 - Video interrupt 1640 1641 00000EBC BA00DC0000 mov edx, Temp_PAL2 1642 00000EC1 6631DB xor bx, bx 1643 00000EC4 66B90001 mov cx, 256 1644 00000EC8 B017 mov al, 17h 1645 00000ECA B410 mov ah, 10h 1646 00000ECC CD31 int 31h ; TRDOS 386 - Video interrupt 1647 1648 00000ECE BF00000200 mov edi, 20000h ; es = fs 1649 00000ED3 893D[E7260000] mov [TextSeg], edi ; es 1650 00000ED9 6689F8 mov ax, di ; 0 1651 00000EDC 66B90080 mov cx, 10000h/2 1652 00000EE0 F366AB rep stosw 1653 ;mov edi, 20000h+44 ; es = fs 1654 1655 00000EE3 66C7050A010000030E mov word [CharColor], 0E03h 1656 00000EEC 66BF2C00 mov di, 44 1657 00000EF0 BE[09260000] mov esi, Gfx4Text 1658 00000EF5 E8BF070000 call GfxWrite 1659 00000EFA 66C7051A0100000080 mov word [x], 8000h 1660 00000F03 66C7051C0100000008 mov word [y], 0800h 1661 00000F0C 6631DB xor bx, bx 1662 00000F0F 66BF0810 mov di, 1008h 1663 @Rotate6Map: ; es = fs = 20000h 1664 00000F13 6653 push bx 1665 00000F15 6657 push di 1666 00000F17 E840060000 call RotateMap2 1667 00000F1C E843010000 call M_WaitVRT_DX 1668 00000F21 665F pop di 1669 00000F23 665B pop bx 1670 00000F25 6683EF18 sub di, 18h 1671 00000F29 73E8 jnc short @Rotate6Map 1672 1673 ;M_FadeOUT Temp_PAL2, Temp_PAL1 1674 00000F2B 66BE00DC mov si, Temp_PAL2 ; SourcePAL 1675 00000F2F BF00EC0000 mov edi, Temp_PAL1 ; DestPAL 1676 00000F34 E858010000 call M_FadeOUT 1677 00000F39 EB1A jmp short @NoKeyPressed 1678 @KeyDownOut: 1679 00000F3B E824010000 call M_WaitVRT_DX 1680 00000F40 B013 mov al, 13h 1681 00000F42 B400 mov ah, 00h 1682 00000F44 CD31 int 31h ; TRDOS 386 - Video interrupt 1683 00000F46 66B92000 mov cx, 20h 1684 @wv7: 1685 00000F4A E815010000 call M_WaitVRT_DX 1686 00000F4F E2F9 loop @wv7 1687 00000F51 30E4 xor ah, ah 1688 00000F53 CD32 int 32h ; TRDOS 386 Keyboard interrupt 1689 @NoKeyPressed: 1690 00000F55 E80A010000 call M_WaitVRT_DX 1691 00000F5A B003 mov al, 03h ; 80x25 16 color text 1692 00000F5C B400 mov ah, 00h ; Set video mode 1693 00000F5E CD31 int 31h ; TRDOS 386 - Video interrupt ; Switch Back to Char Mode 1694 1695 ;mov bx, 414Fh 1696 00000F60 66BB0941 mov bx, 4109h 1697 00000F64 E8FB000000 call M_WaitVRT_DX 1698 00000F69 E8FA000000 call M_WaitVRT 1699 00000F6E 88FC mov ah, bh 1700 00000F70 66BAD403 mov dx, 03D4h 1701 ;mov al, 09h 1702 ;out dx, ax 1703 00000F74 B403 mov ah, 3 ; out (word in BX) 1704 00000F76 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1705 1706 ; DIRECT VGA MEMORY ACCESS 1707 ;xor ebx, ebx 1708 00000F78 B704 mov bh, 4 ; Direct access/map to CGA memory (0B8000h) 1709 00000F7A B81F000000 mov eax, _video ; 1Fh 1710 ; sys _video ; TRDOS 386 Video functions 1711 00000F7F CD40 int 40h ; TRDOS 386 system call 1712 1713 ; eax = 0B8000h 1714 ;and eax, eax 1715 ;jz terminate ; error (eax = 0) 1716 ;jz exit_msg 1717 1718 00000F81 66B98002 mov cx, (EndPicCol-EndPic) 1719 00000F85 BF00800B00 mov edi, 0B8000h 1720 00000F8A 66BE[9420] mov si, EndPic 1721 @PutPage: 1722 00000F8E 8AA680020000 mov ah, [esi+(EndPicCol-EndPic)] 1723 00000F94 AC lodsb 1724 00000F95 66AB stosw 1725 00000F97 E2F5 loop @PutPage 1726 1727 00000F99 66BA0007 mov dx, 0700h 1728 00000F9D B700 mov bh, 00h 1729 00000F9F B402 mov ah, 02h ; set cursor position 1730 00000FA1 CD31 int 31h ; TRDOS 386 - Video interrupt 1731 1732 ;mov bx, 424Fh 1733 00000FA3 66BB0942 mov bx, 4209h 1734 @IncCharHeight: 1735 00000FA7 E8B8000000 call M_WaitVRT_DX 1736 00000FAC E8B7000000 call M_WaitVRT 1737 ;mov ah, bh 1738 00000FB1 66BAD403 mov dx, 03D4h 1739 ;mov al, 09h 1740 ;out dx, ax 1741 00000FB5 B403 mov ah, 3 ; out (word in BX) 1742 00000FB7 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1743 00000FB9 FEC7 inc bh 1744 ;cmp bh, bl 1745 00000FBB 80FF4F cmp bh, 4Fh 1746 00000FBE 76E7 jbe short @IncCharHeight 1747 exit_msg: 1748 00000FC0 BE[90260000] mov esi, prg_msg 1749 00000FC5 E809000000 call print_msg 1750 terminate: 1751 sys _exit ; INT 40h 1751 <1> 1751 <1> 1751 <1> 1751 <1> 1751 <1> %if %0 >= 2 1751 <1> mov ebx, %2 1751 <1> %if %0 >= 3 1751 <1> mov ecx, %3 1751 <1> %if %0 = 4 1751 <1> mov edx, %4 1751 <1> %endif 1751 <1> %endif 1751 <1> %endif 1751 00000FCA B801000000 <1> mov eax, %1 1751 <1> 1751 00000FCF CD40 <1> int 40h 1752 here: 1753 00000FD1 EBFE jmp short here 1754 1755 print_msg: 1756 00000FD3 66BB0700 mov bx, 7 1757 00000FD7 B40E mov ah, 0Eh 1758 pmsg_loop: 1759 00000FD9 AC lodsb 1760 00000FDA 20C0 and al, al 1761 00000FDC 7404 jz short pmsg_ok 1762 00000FDE CD31 int 31h ; TRDOS 386 video interrupt 1763 00000FE0 EBF7 jmp short pmsg_loop 1764 pmsg_ok: 1765 00000FE2 C3 retn 1766 1767 M_WriteText: 1768 ; di = (60+TextXYMove)*320+120+TextXYMove 1769 ; bx = (92+TextXYMove)*320+64+TextXYMove 1770 ; dx = (124+TextXYMove)*320+88+TextXYMove 1771 1772 ; esi = 20000h + si ; fs: (si=0) 1773 ; edi = 0A0000h + di 1774 1775 00000FE3 66B90800 mov cx, 8 1776 M_WTxt_1: 1777 00000FE7 6651 push cx 1778 00000FE9 66B92800 mov cx, 5*8 1779 _wt1_1: 1780 00000FED 803E00 cmp byte [esi], 0 ; fs:si 1781 00000FF0 740A jz short _wt2_1 1782 00000FF2 668907 mov [edi], ax 1783 00000FF5 66898740010000 mov [edi+320], ax 1784 _wt2_1: 1785 00000FFC 6683C702 add di, 2 1786 00001000 6646 inc si 1787 00001002 E2E9 loop _wt1_1 1788 00001004 6681C73002 add di, 240+320 1789 00001009 6659 pop cx 1790 0000100B E2DA loop M_WTxt_1 1791 1792 0000100D 6689DF mov di, bx 1793 1794 00001010 B108 mov cl, 8 1795 M_WTxt_2: 1796 00001012 6651 push cx 1797 00001014 66B96000 mov cx, 12*8 1798 _wt1_2: 1799 00001018 803E00 cmp byte [esi], 0 1800 0000101B 740A jz short _wt2_2 1801 0000101D 668907 mov [edi], ax 1802 00001020 66898740010000 mov [edi+320], ax 1803 _wt2_2: 1804 00001027 6683C702 add di, 2 1805 0000102B 6646 inc si 1806 0000102D E2E9 loop _wt1_2 1807 0000102F 6681C7C001 add di, 128+320 1808 00001034 6659 pop cx 1809 00001036 E2DA loop M_WTxt_2 1810 1811 00001038 6689D7 mov di, dx 1812 1813 0000103B B108 mov cl, 8 1814 M_WTxt_3: 1815 0000103D 6651 push cx 1816 0000103F 66B94800 mov cx, 9*8 1817 _wt1_3: 1818 00001043 803E00 cmp byte [esi], 0 1819 00001046 740A jz short _wt2_3 1820 00001048 668907 mov [edi], ax 1821 0000104B 66898740010000 mov [edi+320], ax 1822 _wt2_3: 1823 00001052 6683C702 add di, 2 1824 00001056 6646 inc si 1825 00001058 E2E9 loop _wt1_3 1826 0000105A 6681C7F001 add di, 176+320 1827 0000105F 6659 pop cx 1828 00001061 E2DA loop M_WTxt_3 1829 00001063 C3 retn 1830 1831 M_WaitVRT_DX: 1832 00001064 66BADA03 mov dx, 03DAh 1833 M_WaitVRT: 1834 00001068 B400 mov ah, 0 ; in (byte) 1835 _wv1: 1836 ;in al, dx 1837 0000106A CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1838 0000106C A808 test al, 8 1839 0000106E 74FA jz short _wv1 1840 _wv2: 1841 ;in al, dx 1842 ;mov ah, 0 ; in (byte) 1843 00001070 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1844 00001072 A808 test al, 8 1845 00001074 75FA jnz short _wv2 1846 00001076 C3 retn 1847 1848 M_ClearPAL: 1849 00001077 E8E8FFFFFF call M_WaitVRT_DX 1850 0000107C 66B90003 mov cx, 768 1851 00001080 66BAC803 mov dx, 03C8h 1852 00001084 66B80001 mov ax, 0100h 1853 ;out dx, al 1854 ;mov ah, 1 ; out (byte) 1855 00001088 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1856 0000108A 6642 inc dx 1857 _cpal: 1858 ;out dx, al 1859 ;mov al, 0 1860 ;mov ah, 1 ; out (byte) 1861 0000108C CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1862 0000108E E2FC loop _cpal 1863 00001090 C3 retn 1864 1865 M_FadeOUT: 1866 ; esi = SourcePAL 1867 ; edi = DestPAL 1868 1869 ; M_FadePAL_Out SrcPAL, DstPAL 1870 00001091 66BB0002 mov bx, 0200h 1871 _fo1: 1872 00001095 56 push esi 1873 00001096 57 push edi 1874 00001097 66B90003 mov cx, 3*256 1875 _fo2: 1876 0000109B AC lodsb 1877 0000109C 28D8 sub al, bl 1878 0000109E F5 cmc 1879 0000109F 18E4 sbb ah, ah 1880 000010A1 20E0 and al, ah 1881 000010A3 AA stosb 1882 000010A4 E2F5 loop _fo2 1883 000010A6 5E pop esi ; DestPAL 1884 000010A7 56 push esi 1885 000010A8 E8B7FFFFFF call M_WaitVRT_DX 1886 000010AD 66BAC803 mov dx, 03C8h 1887 000010B1 B000 mov al, 0 1888 ;out dx, al 1889 000010B3 B401 mov ah, 1 ; out (byte) 1890 000010B5 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1891 1892 000010B7 6642 inc dx 1893 000010B9 66B90003 mov cx, 3*256 1894 ;rep outsb 1895 _fo3: 1896 000010BD AC lodsb 1897 ;mov ah, 1 ; out (byte) 1898 ; al = data byte 1899 ; dx = port number 1900 000010BE CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1901 000010C0 6649 dec cx 1902 000010C2 75F9 jnz short _fo3 1903 1904 000010C4 E89BFFFFFF call M_WaitVRT_DX 1905 000010C9 5F pop edi 1906 000010CA 5E pop esi 1907 000010CB 00FB add bl, bh 1908 000010CD F6C33F test bl, 3Fh 1909 000010D0 75C3 jnz short _fo1 1910 1911 000010D2 C3 retn 1912 1913 M_FadeIN: 1914 ; esi = SourcePAL 1915 ; edi = DestPAL 1916 1917 ; M_FadePAL_In SrcPAL, DstPAL 1918 000010D3 66BB40FE mov bx, 0FE40h 1919 _fi1: 1920 000010D7 56 push esi 1921 000010D8 57 push edi 1922 000010D9 66B90003 mov cx, 3*256 1923 _fi2: 1924 000010DD AC lodsb 1925 000010DE 28D8 sub al, bl 1926 000010E0 F5 cmc 1927 000010E1 18E4 sbb ah, ah 1928 000010E3 20E0 and al, ah 1929 000010E5 AA stosb 1930 000010E6 E2F5 loop _fi2 1931 000010E8 5E pop esi ; DestPAL 1932 000010E9 56 push esi 1933 000010EA E875FFFFFF call M_WaitVRT_DX 1934 000010EF 66BAC803 mov dx, 03C8h 1935 000010F3 B000 mov al, 00h 1936 ;out dx, al 1937 000010F5 B401 mov ah, 1 ; out (byte) 1938 000010F7 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1939 1940 000010F9 6642 inc dx 1941 000010FB 66B90003 mov cx, 3*256 1942 ;rep outsb 1943 _fi3: 1944 000010FF AC lodsb 1945 ;mov ah, 1 ; out (byte) 1946 ; al = data byte 1947 ; dx = port number 1948 00001100 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1949 00001102 6649 dec cx 1950 00001104 75F9 jnz short _fi3 1951 1952 00001106 E859FFFFFF call M_WaitVRT_DX 1953 0000110B 5F pop edi 1954 0000110C 5E pop esi 1955 0000110D 00FB add bl, bh 1956 0000110F F6C33F test bl, 3Fh 1957 00001112 75C3 jnz short _fi1 1958 1959 00001114 C3 retn 1960 1961 M_ShadeBOBs_2: 1962 00001115 66B89600 mov ax, TimeOut2 1963 00001119 EB04 jmp short M_ShadeBOBs 1964 M_ShadeBOBs_1: 1965 0000111B 66B80020 mov ax, TimeOut 1966 M_ShadeBOBs: 1967 0000111F 6650 push ax 1968 00001121 E83EFFFFFF call M_WaitVRT_DX 1969 00001126 66BAC803 mov dx, 03C8h 1970 0000112A 30C0 xor al, al 1971 ;out dx, al 1972 0000112C B401 mov ah, 1 ; out (byte) 1973 0000112E CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1974 00001130 6642 inc dx 1975 00001132 66B90001 mov cx, 256 1976 ;xor ah, ah 1977 00001136 28DB sub bl, bl 1978 _Set1Pal: 1979 ;out dx, al 1980 ;mov ah, 1 ; out (byte) 1981 00001138 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1982 ;mov al, ah 1983 ;out dx, al 1984 0000113A 88D8 mov al, bl 1985 ;mov ah, 1 ; out (byte) 1986 0000113C CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1987 0000113E 30C0 xor al, al 1988 ;out dx, al 1989 ;mov ah, 1 ; out (byte) 1990 00001140 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 1991 ;cmp ah, 62 1992 00001142 80FB3E cmp bl, 62 1993 00001145 7302 jae short _Set1Brk 1994 ;inc ah 1995 00001147 FEC3 inc bl 1996 _Set1Brk: 1997 00001149 E2ED loop _Set1Pal 1998 0000114B 6631ED xor bp, bp 1999 0000114E 6658 pop ax 2000 00001150 6650 push ax 2001 00001152 66A3[35280000] mov [Frames], ax ; @Time 2002 00001158 BF00000A00 mov edi, 0A0000h ; es = 0A000h 2003 0000115D E8C9F2FFFF call ShadesLoop 2004 00001162 E8FDFEFFFF call M_WaitVRT_DX 2005 00001167 66BAC803 mov dx, 03C8h 2006 ;xor ax, ax 2007 ;out dx, al 2008 2009 0000116B 30C0 xor al, al 2010 0000116D B401 mov ah, 1 ; out (byte) 2011 0000116F CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2012 2013 00001171 6642 inc dx 2014 00001173 66B90001 mov cx, 256 2015 00001177 28DB sub bl, bl ; 0 2016 _Set2Pal: 2017 ;mov al, ah 2018 ;out dx, al 2019 00001179 88D8 mov al, bl 2020 ;mov ah, 1 ; out (byte) 2021 0000117B CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2022 0000117D 30C0 xor al, al 2023 ;out dx, al 2024 ;mov ah, 1 ; out (byte) 2025 0000117F CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2026 ;out dx, al 2027 ;mov ah, 1 ; out (byte) 2028 00001181 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2029 ;cmp ah, 62 2030 00001183 80FB3E cmp bl, 62 2031 00001186 7302 jae short _Set2Brk 2032 ;inc ah 2033 00001188 FEC3 inc bl 2034 _Set2Brk: 2035 0000118A E2ED loop _Set2Pal 2036 0000118C 6631ED xor bp, bp 2037 0000118F 6658 pop ax 2038 00001191 6650 push ax 2039 00001193 66A3[35280000] mov [Frames], ax ; @Time 2040 00001199 E88DF2FFFF call ShadesLoop 2041 0000119E E8C1FEFFFF call M_WaitVRT_DX 2042 000011A3 66BAC803 mov dx, 03C8h 2043 ;xor ax, ax 2044 ;out dx, al 2045 2046 000011A7 30C0 xor al, al 2047 000011A9 B401 mov ah, 1 ; out (byte) 2048 000011AB CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2049 2050 000011AD 6642 inc dx 2051 000011AF 66B90001 mov cx, 256 2052 000011B3 30DB xor bl, bl ; 0 2053 _Set3Pal: 2054 ;out dx, al 2055 ;mov ah, 1 ; out (byte) 2056 000011B5 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2057 ;out dx, al 2058 ;mov ah, 1 ; out (byte) 2059 000011B7 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2060 ;mov al, ah 2061 ;out dx, al 2062 000011B9 88D8 mov al, bl 2063 ;mov ah, 1 ; out (byte) 2064 000011BB CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2065 2066 ;cmp ah, 62 2067 000011BD 80FB3E cmp bl, 62 2068 000011C0 7302 jae short _Set3Brk 2069 ;inc ah 2070 000011C2 FEC3 inc bl 2071 _Set3Brk: 2072 000011C4 30C0 xor al, al 2073 000011C6 E2ED loop _Set3Pal 2074 000011C8 6631ED xor bp, bp 2075 000011CB 6658 pop ax 2076 000011CD 66A3[35280000] mov [Frames], ax ; @Time 2077 000011D3 E853F2FFFF call ShadesLoop 2078 000011D8 31FF xor edi, edi ; es = cs 2079 000011DA C3 retn 2080 2081 PutBop: ; sub_3116 2082 000011DB 6601D7 add di, dx 2083 000011DE 31F6 xor esi, esi 2084 000011E0 66B99000 mov cx, BopPts/4 2085 @PutLoop: 2086 000011E4 668B86[5F2B0000] mov ax, [esi+BopAddTab] 2087 000011EB 668B9E[DF2F0000] mov bx, [esi+BopTab] 2088 000011F2 00043B add [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2089 000011F5 668B86[612B0000] mov ax, [esi+BopAddTab+2] 2090 000011FC 668B9E[E12F0000] mov bx, [esi+BopTab+2] 2091 00001203 00043B add [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2092 00001206 668B86[632B0000] mov ax, [esi+BopAddTab+4] 2093 0000120D 668B9E[E32F0000] mov bx, [esi+BopTab+4] 2094 00001214 00043B add [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2095 00001217 668B86[652B0000] mov ax, [esi+BopAddTab+6] 2096 0000121E 668B9E[E52F0000] mov bx, [esi+BopTab+6] 2097 00001225 00043B add [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2098 00001228 6683C608 add si, 8 2099 0000122C E2B6 loop @PutLoop 2100 HideBop: ; sub_314E 2101 0000122E 6687BD[87280000] xchg [ebp+BopQueue], di 2102 00001235 6683FFFF cmp di, -1 2103 00001239 7351 jae short @SkipHide 2104 0000123B 6631F6 xor si, si 2105 0000123E 66B99000 mov cx, BopPts/4 2106 @HideLoop: 2107 00001242 668B86[5F2B0000] mov ax, [esi+BopAddTab] 2108 00001249 668B9E[DF2F0000] mov bx, [esi+BopTab] 2109 00001250 28043B sub [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2110 00001253 668B86[612B0000] mov ax, [esi+BopAddTab+2] 2111 0000125A 668B9E[E12F0000] mov bx, [esi+BopTab+2] 2112 00001261 28043B sub [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2113 00001264 668B86[632B0000] mov ax, [esi+BopAddTab+4] 2114 0000126B 668B9E[E32F0000] mov bx, [esi+BopTab+4] 2115 00001272 28043B sub [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2116 00001275 668B86[652B0000] mov ax, [esi+BopAddTab+6] 2117 0000127C 668B9E[E52F0000] mov bx, [esi+BopTab+6] 2118 00001283 28043B sub [ebx+edi], al ; edi = 0A????h ; es = 0A000h 2119 00001286 6683C608 add si, 8 2120 0000128A E2B6 loop @HideLoop 2121 @SkipHide: 2122 0000128C 6683C502 add bp, 2 2123 00001290 6681FDBC02 cmp bp, 2*MaxBops 2124 00001295 6619DB sbb bx, bx 2125 00001298 6621DD and bp, bx 2126 0000129B C3 retn 2127 2128 CalcPixel: ; sub_319A 2129 0000129C B704 mov bh, 4 2130 @CalcPixel: 2131 0000129E 6609ED or bp, bp 2132 000012A1 0F89D7000000 jns @NoPixel 2133 000012A7 D905[43280000] fld dword [II] ; L := ... 2134 000012AD D805[4F280000] fadd dword [LL] 2135 000012B3 D9FB fsincos 2136 000012B5 D80D[3F280000] fmul dword [CosB] 2137 000012BB D905[6B280000] fld dword [Cos1] 2138 000012C1 D8C9 fmul st0, st1 2139 000012C3 D905[3B280000] fld dword [SinB] 2140 000012C9 D80D[67280000] fmul dword [Sin1] 2141 000012CF DEC1 faddp st1, st0 2142 000012D1 DE0D[77280000] fimul word [Ker1] 2143 000012D7 DF1D[37280000] fistp word [U] 2144 000012DD 9B fwait 2145 000012DE 66A1[37280000] mov ax, [U] 2146 000012E4 D80D[67280000] fmul dword [Sin1] 2147 000012EA D905[6B280000] fld dword [Cos1] 2148 000012F0 D80D[3B280000] fmul dword [SinB] 2149 000012F6 DEE1 fsubrp st1, st0 2150 000012F8 DE0D[79280000] fimul word [Ker2] 2151 000012FE DF1D[7D280000] fistp word [YY] 2152 00001304 D80D[3F280000] fmul dword [CosB] 2153 0000130A DE0D[79280000] fimul word [Ker2] 2154 00001310 DF1D[7B280000] fistp word [XX] 2155 00001316 6609C0 or ax, ax 2156 00001319 0F8806EFFFFF js @CCPopAX 2157 0000131F 6640 inc ax 2158 00001321 240F and al, 0Fh 2159 00001323 66B94001 mov cx, 320 2160 00001327 9B wait 2161 00001328 66030D[7B280000] add cx, [XX] 2162 0000132F 6689CF mov di, cx 2163 00001332 6683E707 and di, 7 2164 00001336 66BACE03 mov dx, 03CEh 2165 0000133A 8AA7[7F280000] mov ah, [edi+MaskTable] 2166 00001340 6689C7 mov di, ax 2167 ;mov al, 08h 2168 ;out dx, ax 2169 2170 00001343 6653 push bx 2171 00001345 88E7 mov bh, ah 2172 00001347 B308 mov bl, 08h 2173 00001349 B403 mov ah, 3 ; out (word in BX) 2174 0000134B CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2175 0000134D 665B pop bx 2176 2177 0000134F 6689F8 mov ax, di 2178 00001352 66BFF000 mov di, 240 2179 00001356 662B3D[7D280000] sub di, [YY] 2180 0000135D 66C1E903 shr cx, 3 2181 00001361 66C1E704 shl di, 4 2182 00001365 6601F9 add cx, di 2183 00001368 66C1E702 shl di, 2 2184 0000136C 6601CF add di, cx 2185 ;add di, 6A00h 2186 ;add edi, 0A0000h 2187 0000136F 81C7006A0A00 add edi, 0A6A00h 2188 00001375 8A27 mov ah, [edi] 2189 00001377 AA stosb 2190 00001378 81E7FFFF0000 and edi, 0FFFFh 2191 @NoPixel: 2192 0000137E D905[43280000] fld dword [II] 2193 00001384 D805[4B280000] fadd dword [IIAdd] 2194 0000138A D91D[43280000] fstp dword [II] 2195 00001390 FECF dec bh 2196 00001392 0F8506FFFFFF jnz @CalcPixel 2197 00001398 66D1E5 shl bp, 1 2198 0000139B C3 retn 2199 2200 PrintChar: ; sub_3243 ; si = Char Number, di = Place. 2201 0000139C 6689C6 mov si, ax ; esi = si 2202 0000139F 66C1E603 shl si, 3 2203 000013A3 81C664400000 add esi, VGA_Fonts 2204 000013A9 B208 mov dl, 08h 2205 _MC1: 2206 000013AB AC lodsb 2207 000013AC 88C6 mov dh, al 2208 000013AE 8B1D[E7260000] mov ebx, [TextSeg] 2209 000013B4 6689FB mov bx, di 2210 000013B7 89DF mov edi, ebx 2211 2212 000013B9 66B90800 mov cx, 8 2213 _MC2: 2214 000013BD 31DB xor ebx, ebx 2215 000013BF D0E6 shl dh, 1 2216 000013C1 6681D30A01 adc bx, CharColor 2217 000013C6 8A03 mov al, [ebx] 2218 000013C8 AA stosb 2219 000013C9 E2F2 loop _MC2 2220 2221 000013CB 6681C7F800 add di, 256-8 ;320-8 2222 000013D0 FECA dec dl 2223 000013D2 75D7 jnz short _MC1 2224 _MCOUT: 2225 000013D4 6681EFF807 sub di, 8*256-8 ;8*320-8 2226 2227 000013D9 C3 retn 2228 2229 CalcFractal: ; sub_32C6 2230 ; ebx = 20000h (1) or ebx = 28000h (2) 2231 000013DA 66A10E010000 mov ax, [YMax] 2232 000013E0 66A31C010000 mov [y], ax 2233 000013E6 66C705160100000000 mov word [ScreenY], 0 2234 @RepeatY: 2235 000013EF 66A10C010000 mov ax, [XMin] 2236 000013F5 66A31A010000 mov [x], ax 2237 000013FB 66C705140100000000 mov word [ScreenX], 0 2238 @RepeatX: 2239 00001404 6631C9 xor cx, cx 2240 00001407 66A11C010000 mov ax, [y] 2241 0000140D 66A31E010000 mov [zi], ax 2242 00001413 6689C7 mov di, ax 2243 00001416 66F7EF imul di 2244 ;M_ShlDXAX 3 2245 00001419 E825010000 call M_ShlDXAX_3 2246 0000141E 6689D7 mov di, dx 2247 00001421 66A11A010000 mov ax, [x] 2248 00001427 66A320010000 mov [zr], ax 2249 0000142D 6689C6 mov si, ax 2250 00001430 66F7EE imul si 2251 ;M_ShlDXAX 3 2252 00001433 E80B010000 call M_ShlDXAX_3 2253 00001438 6689D6 mov si, dx 2254 @RepeatCount: 2255 0000143B 6689F0 mov ax, si 2256 0000143E 6629F8 sub ax, di 2257 00001441 66030522010000 add ax, [cr] 2258 00001448 6689C6 mov si, ax 2259 0000144B 66A120010000 mov ax, [zr] 2260 00001451 66F72D1E010000 imul word [zi] 2261 ;M_ShlDXAX 4 2262 00001458 E8E0000000 call M_ShlDXAX_4 2263 0000145D 66031524010000 add dx, [ci] 2264 00001464 6689D7 mov di, dx 2265 00001467 6689151E010000 mov [zi], dx 2266 0000146E 66893520010000 mov [zr], si 2267 00001475 6689F0 mov ax, si 2268 00001478 66F7EE imul si 2269 ;M_ShlDXAX 3 2270 0000147B E8C3000000 call M_ShlDXAX_3 2271 00001480 6689D6 mov si, dx 2272 00001483 6689F8 mov ax, di 2273 00001486 66F7EF imul di 2274 ;M_ShlDXAX 3 2275 00001489 E8B5000000 call M_ShlDXAX_3 2276 0000148E 6689D7 mov di, dx 2277 00001491 6601F2 add dx, si 2278 00001494 7212 jc short @CountOut 2279 00001496 7810 js short @CountOut 2280 00001498 6641 inc cx 2281 0000149A 663B0D18010000 cmp cx, [NMax] 2282 000014A1 7698 jna short @RepeatCount 2283 000014A3 6631C0 xor ax, ax 2284 000014A6 EB0B jmp short @Plot 2285 @CountOut: 2286 000014A8 6689C8 mov ax, cx 2287 000014AB B11F mov cl, 31 2288 000014AD F6F1 div cl 2289 000014AF 88E0 mov al, ah 2290 000014B1 FEC0 inc al 2291 @Plot: 2292 000014B3 241F and al, 1Fh 2293 000014B5 0420 add al, 20h 2294 000014B7 668B3514010000 mov si, [ScreenX] 2295 ;movzx edi, word [ScreenY] 2296 000014BE 668B3D16010000 mov di, [ScreenY] 2297 000014C5 6689F9 mov cx, di 2298 000014C8 668BBF00CE0000 mov di, [edi+Row256T] 2299 000014CF 6601F7 add di, si 2300 000014D2 88043B mov [ebx+edi], al ; stosb ; es=fs 2301 000014D5 6647 inc di 2302 000014D7 66FF0514010000 inc word [ScreenX] 2303 000014DE 66A11A010000 mov ax, [x] 2304 000014E4 66030510010000 add ax, [XStep] 2305 000014EB 66A31A010000 mov [x], ax 2306 000014F1 6681FE2001 cmp si, 288 2307 000014F6 0F8208FFFFFF jb @RepeatX 2308 @OutM1: 2309 000014FC 66BADA03 mov dx, 3DAh 2310 ;in al, dx 2311 00001500 B400 mov ah, 0 ; in (byte) 2312 00001502 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2313 00001504 66BAC003 mov dx, 3C0h 2314 00001508 B031 mov al, 11h+32 2315 ;out dx, al 2316 0000150A B401 mov ah, 1 ; out (byte) 2317 0000150C CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2318 0000150E 88C8 mov al, cl 2319 00001510 D0E8 shr al, 1 2320 00001512 240F and al, 0Fh 2321 ;out dx, al 2322 ;mov ah, 1 ; out (byte) 2323 00001514 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2324 00001516 6683051601000002 add word [ScreenY], 2 2325 0000151E 66A11C010000 mov ax, [y] 2326 00001524 66030512010000 add ax, [YStep] 2327 0000152B 66A31C010000 mov [y], ax 2328 00001531 6681F90001 cmp cx, 256 2329 00001536 0F82B3FEFFFF jb @RepeatY 2330 @OutM2: 2331 0000153C C3 retn 2332 2333 M_ShlDXAX_4: 2334 0000153D 66D1E0 shl ax, 1 2335 00001540 66D1D2 rcl dx, 1 2336 M_ShlDXAX_3: 2337 00001543 66D1E0 shl ax, 1 2338 00001546 66D1D2 rcl dx, 1 2339 00001549 66D1E0 shl ax, 1 2340 0000154C 66D1D2 rcl dx, 1 2341 0000154F 66D1E0 shl ax, 1 2342 00001552 66D1D2 rcl dx, 1 2343 00001555 C3 retn 2344 2345 RotateMap: ; sub_3497 2346 ;M_Init_Rotate 1 2347 00001556 66B80100 mov ax, 1 2348 0000155A EB03 jmp short M_Init_Rotate 2349 RotateMap2: ; sub_33D6 2350 ;M_Init_Rotate 0 2351 0000155C 6629C0 sub ax, ax ; 0 2352 ;jmp short M_Init_Rotate 2353 M_Init_Rotate: ; sub_3497, sub_33D6 2354 0000155F 6650 push ax ; Method 2355 ; es = 0A000h 2356 00001561 80E707 and bh, 7 2357 00001564 668B8300E00000 mov ax, [ebx+SinT] 2358 0000156B 66F7EF imul di 2359 0000156E 66D1FA sar dx, 1 2360 00001571 6683D200 adc dx, 0 2361 00001575 6689D5 mov bp, dx 2362 00001578 668B8300E20000 mov ax, [ebx+CosT] 2363 0000157F 66F7EF imul di 2364 00001582 66D1FA sar dx, 1 2365 00001585 6683D200 adc dx, 0 2366 00001589 6689D6 mov si, dx 2367 0000158C 668B8300D00000 mov ax, [ebx+Sin2T] 2368 00001593 66F7EF imul di 2369 00001596 66D1FA sar dx, 1 2370 00001599 6683D200 adc dx, 0 2371 0000159D 66891520010000 mov [d2y], dx 2372 000015A4 666BCA64 imul cx, dx, 100 2373 000015A8 668B8300D20000 mov ax, [ebx+Cos2T] 2374 000015AF 66F7EF imul di 2375 000015B2 66D1FA sar dx, 1 2376 000015B5 6683D200 adc dx, 0 2377 000015B9 6689151E010000 mov [d2x], dx 2378 000015C0 666BD264 imul dx, 100 2379 000015C4 6669DEA000 imul bx, si, 160 2380 000015C9 6601D3 add bx, dx 2381 000015CC 66A11A010000 mov ax, [x] 2382 000015D2 6629D8 sub ax, bx 2383 000015D5 6669DDA000 imul bx, bp, 160 2384 000015DA 6601CB add bx, cx 2385 000015DD 668B151C010000 mov dx, [y] 2386 000015E4 6629DA sub dx, bx 2387 000015E7 BF00000A00 mov edi, 0A0000h ; es = 0A000h 2388 000015EC BB00000200 mov ebx, 20000h ; fs = cs + 2000h 2389 _ir1: 2390 000015F1 66A314010000 mov [i], ax 2391 000015F7 66891516010000 mov [j], dx 2392 000015FE 66B95000 mov cx, 320/4 2393 _ir2: 2394 %rep 4 2395 add ax, si 2396 add dx, bp 2397 mov bl, ah 2398 mov bh, dh 2399 mov bl, [ebx] ; [fs:bx] ; fs = cs + 2000h 2400 mov [edi], bl ; es:di -> es = 0A000h 2401 inc di 2402 %endrep 2402 00001602 6601F0 <1> add ax, si 2402 00001605 6601EA <1> add dx, bp 2402 00001608 88E3 <1> mov bl, ah 2402 0000160A 88F7 <1> mov bh, dh 2402 0000160C 8A1B <1> mov bl, [ebx] 2402 0000160E 881F <1> mov [edi], bl 2402 00001610 6647 <1> inc di 2402 00001612 6601F0 <1> add ax, si 2402 00001615 6601EA <1> add dx, bp 2402 00001618 88E3 <1> mov bl, ah 2402 0000161A 88F7 <1> mov bh, dh 2402 0000161C 8A1B <1> mov bl, [ebx] 2402 0000161E 881F <1> mov [edi], bl 2402 00001620 6647 <1> inc di 2402 00001622 6601F0 <1> add ax, si 2402 00001625 6601EA <1> add dx, bp 2402 00001628 88E3 <1> mov bl, ah 2402 0000162A 88F7 <1> mov bh, dh 2402 0000162C 8A1B <1> mov bl, [ebx] 2402 0000162E 881F <1> mov [edi], bl 2402 00001630 6647 <1> inc di 2402 00001632 6601F0 <1> add ax, si 2402 00001635 6601EA <1> add dx, bp 2402 00001638 88E3 <1> mov bl, ah 2402 0000163A 88F7 <1> mov bh, dh 2402 0000163C 8A1B <1> mov bl, [ebx] 2402 0000163E 881F <1> mov [edi], bl 2402 00001640 6647 <1> inc di 2403 00001642 E2BE loop _ir2 2404 2405 00001644 6658 pop ax ; Method 2406 00001646 6650 push ax 2407 00001648 6609C0 or ax, ax 2408 0000164B 7404 jz short _ir3 2409 0000164D 6646 inc si 2410 0000164F 6645 inc bp 2411 _ir3: 2412 00001651 66A11E010000 mov ax, [d2x] 2413 00001657 668B1520010000 mov dx, [d2y] 2414 0000165E 66030514010000 add ax, [i] 2415 00001665 66031516010000 add dx, [j] 2416 0000166C 6681FF00FA cmp di, 4*16000 2417 00001671 0F827AFFFFFF jb _ir1 2418 00001677 6658 pop ax ; Method 2419 00001679 31FF xor edi, edi ; es = cs 2420 0000167B 31DB xor ebx, ebx 2421 0000167D C3 retn 2422 2423 RotatePAL20: ; sub_355A 2424 0000167E FD std 2425 0000167F 66BE5BDF mov si, Temp_PAL3+3*1Fh-2 2426 00001683 66BF5EDF mov di, Temp_PAL3+3*20h-2 2427 00001687 668B07 mov ax, [edi] 2428 0000168A 8A5FFF mov bl, [edi-1] 2429 0000168D 66B92F00 mov cx, 47 2430 00001691 F366A5 rep movsw 2431 00001694 66894701 mov [edi+1], ax 2432 00001698 881F mov [edi], bl 2433 0000169A FC cld 2434 0000169B 6689FE mov si, di 2435 0000169E E8C1F9FFFF call M_WaitVRT_DX 2436 000016A3 66BAC803 mov dx, 03C8h 2437 000016A7 B020 mov al, 20h 2438 ;out dx, al 2439 000016A9 B401 mov ah, 1 ; out (byte) 2440 000016AB CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2441 000016AD 6642 inc dx 2442 000016AF 66B96000 mov cx, 3*20h 2443 _outsb2: 2444 ;rep outsb 2445 000016B3 AC lodsb 2446 ;mov ah, 1 ; out (byte) 2447 000016B4 CD34 int 34h ; TRDOS 386 - IOCTL interrupt 2448 000016B6 E2FB loop _outsb2 2449 000016B8 C3 retn 2450 2451 GfxWrite: ; sub_3592 2452 000016B9 30E4 xor ah, ah 2453 @WriteFPush: 2454 000016BB 57 push edi 2455 @WriteF: 2456 000016BC AC lodsb 2457 000016BD 08C0 or al, al 2458 000016BF 740D jz short @WriteFLN 2459 000016C1 3CFF cmp al, 0FFh 2460 000016C3 7411 je short @WriteFOut 2461 000016C5 56 push esi 2462 000016C6 E8D1FCFFFF call PrintChar 2463 000016CB 5E pop esi 2464 000016CC EBEE jmp short @WriteF 2465 @WriteFLN: 2466 000016CE 5F pop edi 2467 000016CF 6681C70008 add di, 8*256 ; 800h 2468 000016D4 EBE5 jmp short @WriteFPush 2469 @WriteFOut: 2470 000016D6 5F pop edi 2471 000016D7 81E7FFFF0000 and edi, 0FFFFh ; es = cs 2472 000016DD C3 retn 2473 2474 %rep 199 2475 ;89FEh,6601DEh,8836h,6601C2h,FEC7h ; 12 bytes 2476 mov esi, edi 2477 add si, bx 2478 mov [esi], dh 2479 add dx, ax 2480 inc bh 2481 %endrep 2481 <1> 2481 000016DE 89FE <1> mov esi, edi 2481 000016E0 6601DE <1> add si, bx 2481 000016E3 8836 <1> mov [esi], dh 2481 000016E5 6601C2 <1> add dx, ax 2481 000016E8 FEC7 <1> inc bh 2481 <1> 2481 000016EA 89FE <1> mov esi, edi 2481 000016EC 6601DE <1> add si, bx 2481 000016EF 8836 <1> mov [esi], dh 2481 000016F1 6601C2 <1> add dx, ax 2481 000016F4 FEC7 <1> inc bh 2481 <1> 2481 000016F6 89FE <1> mov esi, edi 2481 000016F8 6601DE <1> add si, bx 2481 000016FB 8836 <1> mov [esi], dh 2481 000016FD 6601C2 <1> add dx, ax 2481 00001700 FEC7 <1> inc bh 2481 <1> 2481 00001702 89FE <1> mov esi, edi 2481 00001704 6601DE <1> add si, bx 2481 00001707 8836 <1> mov [esi], dh 2481 00001709 6601C2 <1> add dx, ax 2481 0000170C FEC7 <1> inc bh 2481 <1> 2481 0000170E 89FE <1> mov esi, edi 2481 00001710 6601DE <1> add si, bx 2481 00001713 8836 <1> mov [esi], dh 2481 00001715 6601C2 <1> add dx, ax 2481 00001718 FEC7 <1> inc bh 2481 <1> 2481 0000171A 89FE <1> mov esi, edi 2481 0000171C 6601DE <1> add si, bx 2481 0000171F 8836 <1> mov [esi], dh 2481 00001721 6601C2 <1> add dx, ax 2481 00001724 FEC7 <1> inc bh 2481 <1> 2481 00001726 89FE <1> mov esi, edi 2481 00001728 6601DE <1> add si, bx 2481 0000172B 8836 <1> mov [esi], dh 2481 0000172D 6601C2 <1> add dx, ax 2481 00001730 FEC7 <1> inc bh 2481 <1> 2481 00001732 89FE <1> mov esi, edi 2481 00001734 6601DE <1> add si, bx 2481 00001737 8836 <1> mov [esi], dh 2481 00001739 6601C2 <1> add dx, ax 2481 0000173C FEC7 <1> inc bh 2481 <1> 2481 0000173E 89FE <1> mov esi, edi 2481 00001740 6601DE <1> add si, bx 2481 00001743 8836 <1> mov [esi], dh 2481 00001745 6601C2 <1> add dx, ax 2481 00001748 FEC7 <1> inc bh 2481 <1> 2481 0000174A 89FE <1> mov esi, edi 2481 0000174C 6601DE <1> add si, bx 2481 0000174F 8836 <1> mov [esi], dh 2481 00001751 6601C2 <1> add dx, ax 2481 00001754 FEC7 <1> inc bh 2481 <1> 2481 00001756 89FE <1> mov esi, edi 2481 00001758 6601DE <1> add si, bx 2481 0000175B 8836 <1> mov [esi], dh 2481 0000175D 6601C2 <1> add dx, ax 2481 00001760 FEC7 <1> inc bh 2481 <1> 2481 00001762 89FE <1> mov esi, edi 2481 00001764 6601DE <1> add si, bx 2481 00001767 8836 <1> mov [esi], dh 2481 00001769 6601C2 <1> add dx, ax 2481 0000176C FEC7 <1> inc bh 2481 <1> 2481 0000176E 89FE <1> mov esi, edi 2481 00001770 6601DE <1> add si, bx 2481 00001773 8836 <1> mov [esi], dh 2481 00001775 6601C2 <1> add dx, ax 2481 00001778 FEC7 <1> inc bh 2481 <1> 2481 0000177A 89FE <1> mov esi, edi 2481 0000177C 6601DE <1> add si, bx 2481 0000177F 8836 <1> mov [esi], dh 2481 00001781 6601C2 <1> add dx, ax 2481 00001784 FEC7 <1> inc bh 2481 <1> 2481 00001786 89FE <1> mov esi, edi 2481 00001788 6601DE <1> add si, bx 2481 0000178B 8836 <1> mov [esi], dh 2481 0000178D 6601C2 <1> add dx, ax 2481 00001790 FEC7 <1> inc bh 2481 <1> 2481 00001792 89FE <1> mov esi, edi 2481 00001794 6601DE <1> add si, bx 2481 00001797 8836 <1> mov [esi], dh 2481 00001799 6601C2 <1> add dx, ax 2481 0000179C FEC7 <1> inc bh 2481 <1> 2481 0000179E 89FE <1> mov esi, edi 2481 000017A0 6601DE <1> add si, bx 2481 000017A3 8836 <1> mov [esi], dh 2481 000017A5 6601C2 <1> add dx, ax 2481 000017A8 FEC7 <1> inc bh 2481 <1> 2481 000017AA 89FE <1> mov esi, edi 2481 000017AC 6601DE <1> add si, bx 2481 000017AF 8836 <1> mov [esi], dh 2481 000017B1 6601C2 <1> add dx, ax 2481 000017B4 FEC7 <1> inc bh 2481 <1> 2481 000017B6 89FE <1> mov esi, edi 2481 000017B8 6601DE <1> add si, bx 2481 000017BB 8836 <1> mov [esi], dh 2481 000017BD 6601C2 <1> add dx, ax 2481 000017C0 FEC7 <1> inc bh 2481 <1> 2481 000017C2 89FE <1> mov esi, edi 2481 000017C4 6601DE <1> add si, bx 2481 000017C7 8836 <1> mov [esi], dh 2481 000017C9 6601C2 <1> add dx, ax 2481 000017CC FEC7 <1> inc bh 2481 <1> 2481 000017CE 89FE <1> mov esi, edi 2481 000017D0 6601DE <1> add si, bx 2481 000017D3 8836 <1> mov [esi], dh 2481 000017D5 6601C2 <1> add dx, ax 2481 000017D8 FEC7 <1> inc bh 2481 <1> 2481 000017DA 89FE <1> mov esi, edi 2481 000017DC 6601DE <1> add si, bx 2481 000017DF 8836 <1> mov [esi], dh 2481 000017E1 6601C2 <1> add dx, ax 2481 000017E4 FEC7 <1> inc bh 2481 <1> 2481 000017E6 89FE <1> mov esi, edi 2481 000017E8 6601DE <1> add si, bx 2481 000017EB 8836 <1> mov [esi], dh 2481 000017ED 6601C2 <1> add dx, ax 2481 000017F0 FEC7 <1> inc bh 2481 <1> 2481 000017F2 89FE <1> mov esi, edi 2481 000017F4 6601DE <1> add si, bx 2481 000017F7 8836 <1> mov [esi], dh 2481 000017F9 6601C2 <1> add dx, ax 2481 000017FC FEC7 <1> inc bh 2481 <1> 2481 000017FE 89FE <1> mov esi, edi 2481 00001800 6601DE <1> add si, bx 2481 00001803 8836 <1> mov [esi], dh 2481 00001805 6601C2 <1> add dx, ax 2481 00001808 FEC7 <1> inc bh 2481 <1> 2481 0000180A 89FE <1> mov esi, edi 2481 0000180C 6601DE <1> add si, bx 2481 0000180F 8836 <1> mov [esi], dh 2481 00001811 6601C2 <1> add dx, ax 2481 00001814 FEC7 <1> inc bh 2481 <1> 2481 00001816 89FE <1> mov esi, edi 2481 00001818 6601DE <1> add si, bx 2481 0000181B 8836 <1> mov [esi], dh 2481 0000181D 6601C2 <1> add dx, ax 2481 00001820 FEC7 <1> inc bh 2481 <1> 2481 00001822 89FE <1> mov esi, edi 2481 00001824 6601DE <1> add si, bx 2481 00001827 8836 <1> mov [esi], dh 2481 00001829 6601C2 <1> add dx, ax 2481 0000182C FEC7 <1> inc bh 2481 <1> 2481 0000182E 89FE <1> mov esi, edi 2481 00001830 6601DE <1> add si, bx 2481 00001833 8836 <1> mov [esi], dh 2481 00001835 6601C2 <1> add dx, ax 2481 00001838 FEC7 <1> inc bh 2481 <1> 2481 0000183A 89FE <1> mov esi, edi 2481 0000183C 6601DE <1> add si, bx 2481 0000183F 8836 <1> mov [esi], dh 2481 00001841 6601C2 <1> add dx, ax 2481 00001844 FEC7 <1> inc bh 2481 <1> 2481 00001846 89FE <1> mov esi, edi 2481 00001848 6601DE <1> add si, bx 2481 0000184B 8836 <1> mov [esi], dh 2481 0000184D 6601C2 <1> add dx, ax 2481 00001850 FEC7 <1> inc bh 2481 <1> 2481 00001852 89FE <1> mov esi, edi 2481 00001854 6601DE <1> add si, bx 2481 00001857 8836 <1> mov [esi], dh 2481 00001859 6601C2 <1> add dx, ax 2481 0000185C FEC7 <1> inc bh 2481 <1> 2481 0000185E 89FE <1> mov esi, edi 2481 00001860 6601DE <1> add si, bx 2481 00001863 8836 <1> mov [esi], dh 2481 00001865 6601C2 <1> add dx, ax 2481 00001868 FEC7 <1> inc bh 2481 <1> 2481 0000186A 89FE <1> mov esi, edi 2481 0000186C 6601DE <1> add si, bx 2481 0000186F 8836 <1> mov [esi], dh 2481 00001871 6601C2 <1> add dx, ax 2481 00001874 FEC7 <1> inc bh 2481 <1> 2481 00001876 89FE <1> mov esi, edi 2481 00001878 6601DE <1> add si, bx 2481 0000187B 8836 <1> mov [esi], dh 2481 0000187D 6601C2 <1> add dx, ax 2481 00001880 FEC7 <1> inc bh 2481 <1> 2481 00001882 89FE <1> mov esi, edi 2481 00001884 6601DE <1> add si, bx 2481 00001887 8836 <1> mov [esi], dh 2481 00001889 6601C2 <1> add dx, ax 2481 0000188C FEC7 <1> inc bh 2481 <1> 2481 0000188E 89FE <1> mov esi, edi 2481 00001890 6601DE <1> add si, bx 2481 00001893 8836 <1> mov [esi], dh 2481 00001895 6601C2 <1> add dx, ax 2481 00001898 FEC7 <1> inc bh 2481 <1> 2481 0000189A 89FE <1> mov esi, edi 2481 0000189C 6601DE <1> add si, bx 2481 0000189F 8836 <1> mov [esi], dh 2481 000018A1 6601C2 <1> add dx, ax 2481 000018A4 FEC7 <1> inc bh 2481 <1> 2481 000018A6 89FE <1> mov esi, edi 2481 000018A8 6601DE <1> add si, bx 2481 000018AB 8836 <1> mov [esi], dh 2481 000018AD 6601C2 <1> add dx, ax 2481 000018B0 FEC7 <1> inc bh 2481 <1> 2481 000018B2 89FE <1> mov esi, edi 2481 000018B4 6601DE <1> add si, bx 2481 000018B7 8836 <1> mov [esi], dh 2481 000018B9 6601C2 <1> add dx, ax 2481 000018BC FEC7 <1> inc bh 2481 <1> 2481 000018BE 89FE <1> mov esi, edi 2481 000018C0 6601DE <1> add si, bx 2481 000018C3 8836 <1> mov [esi], dh 2481 000018C5 6601C2 <1> add dx, ax 2481 000018C8 FEC7 <1> inc bh 2481 <1> 2481 000018CA 89FE <1> mov esi, edi 2481 000018CC 6601DE <1> add si, bx 2481 000018CF 8836 <1> mov [esi], dh 2481 000018D1 6601C2 <1> add dx, ax 2481 000018D4 FEC7 <1> inc bh 2481 <1> 2481 000018D6 89FE <1> mov esi, edi 2481 000018D8 6601DE <1> add si, bx 2481 000018DB 8836 <1> mov [esi], dh 2481 000018DD 6601C2 <1> add dx, ax 2481 000018E0 FEC7 <1> inc bh 2481 <1> 2481 000018E2 89FE <1> mov esi, edi 2481 000018E4 6601DE <1> add si, bx 2481 000018E7 8836 <1> mov [esi], dh 2481 000018E9 6601C2 <1> add dx, ax 2481 000018EC FEC7 <1> inc bh 2481 <1> 2481 000018EE 89FE <1> mov esi, edi 2481 000018F0 6601DE <1> add si, bx 2481 000018F3 8836 <1> mov [esi], dh 2481 000018F5 6601C2 <1> add dx, ax 2481 000018F8 FEC7 <1> inc bh 2481 <1> 2481 000018FA 89FE <1> mov esi, edi 2481 000018FC 6601DE <1> add si, bx 2481 000018FF 8836 <1> mov [esi], dh 2481 00001901 6601C2 <1> add dx, ax 2481 00001904 FEC7 <1> inc bh 2481 <1> 2481 00001906 89FE <1> mov esi, edi 2481 00001908 6601DE <1> add si, bx 2481 0000190B 8836 <1> mov [esi], dh 2481 0000190D 6601C2 <1> add dx, ax 2481 00001910 FEC7 <1> inc bh 2481 <1> 2481 00001912 89FE <1> mov esi, edi 2481 00001914 6601DE <1> add si, bx 2481 00001917 8836 <1> mov [esi], dh 2481 00001919 6601C2 <1> add dx, ax 2481 0000191C FEC7 <1> inc bh 2481 <1> 2481 0000191E 89FE <1> mov esi, edi 2481 00001920 6601DE <1> add si, bx 2481 00001923 8836 <1> mov [esi], dh 2481 00001925 6601C2 <1> add dx, ax 2481 00001928 FEC7 <1> inc bh 2481 <1> 2481 0000192A 89FE <1> mov esi, edi 2481 0000192C 6601DE <1> add si, bx 2481 0000192F 8836 <1> mov [esi], dh 2481 00001931 6601C2 <1> add dx, ax 2481 00001934 FEC7 <1> inc bh 2481 <1> 2481 00001936 89FE <1> mov esi, edi 2481 00001938 6601DE <1> add si, bx 2481 0000193B 8836 <1> mov [esi], dh 2481 0000193D 6601C2 <1> add dx, ax 2481 00001940 FEC7 <1> inc bh 2481 <1> 2481 00001942 89FE <1> mov esi, edi 2481 00001944 6601DE <1> add si, bx 2481 00001947 8836 <1> mov [esi], dh 2481 00001949 6601C2 <1> add dx, ax 2481 0000194C FEC7 <1> inc bh 2481 <1> 2481 0000194E 89FE <1> mov esi, edi 2481 00001950 6601DE <1> add si, bx 2481 00001953 8836 <1> mov [esi], dh 2481 00001955 6601C2 <1> add dx, ax 2481 00001958 FEC7 <1> inc bh 2481 <1> 2481 0000195A 89FE <1> mov esi, edi 2481 0000195C 6601DE <1> add si, bx 2481 0000195F 8836 <1> mov [esi], dh 2481 00001961 6601C2 <1> add dx, ax 2481 00001964 FEC7 <1> inc bh 2481 <1> 2481 00001966 89FE <1> mov esi, edi 2481 00001968 6601DE <1> add si, bx 2481 0000196B 8836 <1> mov [esi], dh 2481 0000196D 6601C2 <1> add dx, ax 2481 00001970 FEC7 <1> inc bh 2481 <1> 2481 00001972 89FE <1> mov esi, edi 2481 00001974 6601DE <1> add si, bx 2481 00001977 8836 <1> mov [esi], dh 2481 00001979 6601C2 <1> add dx, ax 2481 0000197C FEC7 <1> inc bh 2481 <1> 2481 0000197E 89FE <1> mov esi, edi 2481 00001980 6601DE <1> add si, bx 2481 00001983 8836 <1> mov [esi], dh 2481 00001985 6601C2 <1> add dx, ax 2481 00001988 FEC7 <1> inc bh 2481 <1> 2481 0000198A 89FE <1> mov esi, edi 2481 0000198C 6601DE <1> add si, bx 2481 0000198F 8836 <1> mov [esi], dh 2481 00001991 6601C2 <1> add dx, ax 2481 00001994 FEC7 <1> inc bh 2481 <1> 2481 00001996 89FE <1> mov esi, edi 2481 00001998 6601DE <1> add si, bx 2481 0000199B 8836 <1> mov [esi], dh 2481 0000199D 6601C2 <1> add dx, ax 2481 000019A0 FEC7 <1> inc bh 2481 <1> 2481 000019A2 89FE <1> mov esi, edi 2481 000019A4 6601DE <1> add si, bx 2481 000019A7 8836 <1> mov [esi], dh 2481 000019A9 6601C2 <1> add dx, ax 2481 000019AC FEC7 <1> inc bh 2481 <1> 2481 000019AE 89FE <1> mov esi, edi 2481 000019B0 6601DE <1> add si, bx 2481 000019B3 8836 <1> mov [esi], dh 2481 000019B5 6601C2 <1> add dx, ax 2481 000019B8 FEC7 <1> inc bh 2481 <1> 2481 000019BA 89FE <1> mov esi, edi 2481 000019BC 6601DE <1> add si, bx 2481 000019BF 8836 <1> mov [esi], dh 2481 000019C1 6601C2 <1> add dx, ax 2481 000019C4 FEC7 <1> inc bh 2481 <1> 2481 000019C6 89FE <1> mov esi, edi 2481 000019C8 6601DE <1> add si, bx 2481 000019CB 8836 <1> mov [esi], dh 2481 000019CD 6601C2 <1> add dx, ax 2481 000019D0 FEC7 <1> inc bh 2481 <1> 2481 000019D2 89FE <1> mov esi, edi 2481 000019D4 6601DE <1> add si, bx 2481 000019D7 8836 <1> mov [esi], dh 2481 000019D9 6601C2 <1> add dx, ax 2481 000019DC FEC7 <1> inc bh 2481 <1> 2481 000019DE 89FE <1> mov esi, edi 2481 000019E0 6601DE <1> add si, bx 2481 000019E3 8836 <1> mov [esi], dh 2481 000019E5 6601C2 <1> add dx, ax 2481 000019E8 FEC7 <1> inc bh 2481 <1> 2481 000019EA 89FE <1> mov esi, edi 2481 000019EC 6601DE <1> add si, bx 2481 000019EF 8836 <1> mov [esi], dh 2481 000019F1 6601C2 <1> add dx, ax 2481 000019F4 FEC7 <1> inc bh 2481 <1> 2481 000019F6 89FE <1> mov esi, edi 2481 000019F8 6601DE <1> add si, bx 2481 000019FB 8836 <1> mov [esi], dh 2481 000019FD 6601C2 <1> add dx, ax 2481 00001A00 FEC7 <1> inc bh 2481 <1> 2481 00001A02 89FE <1> mov esi, edi 2481 00001A04 6601DE <1> add si, bx 2481 00001A07 8836 <1> mov [esi], dh 2481 00001A09 6601C2 <1> add dx, ax 2481 00001A0C FEC7 <1> inc bh 2481 <1> 2481 00001A0E 89FE <1> mov esi, edi 2481 00001A10 6601DE <1> add si, bx 2481 00001A13 8836 <1> mov [esi], dh 2481 00001A15 6601C2 <1> add dx, ax 2481 00001A18 FEC7 <1> inc bh 2481 <1> 2481 00001A1A 89FE <1> mov esi, edi 2481 00001A1C 6601DE <1> add si, bx 2481 00001A1F 8836 <1> mov [esi], dh 2481 00001A21 6601C2 <1> add dx, ax 2481 00001A24 FEC7 <1> inc bh 2481 <1> 2481 00001A26 89FE <1> mov esi, edi 2481 00001A28 6601DE <1> add si, bx 2481 00001A2B 8836 <1> mov [esi], dh 2481 00001A2D 6601C2 <1> add dx, ax 2481 00001A30 FEC7 <1> inc bh 2481 <1> 2481 00001A32 89FE <1> mov esi, edi 2481 00001A34 6601DE <1> add si, bx 2481 00001A37 8836 <1> mov [esi], dh 2481 00001A39 6601C2 <1> add dx, ax 2481 00001A3C FEC7 <1> inc bh 2481 <1> 2481 00001A3E 89FE <1> mov esi, edi 2481 00001A40 6601DE <1> add si, bx 2481 00001A43 8836 <1> mov [esi], dh 2481 00001A45 6601C2 <1> add dx, ax 2481 00001A48 FEC7 <1> inc bh 2481 <1> 2481 00001A4A 89FE <1> mov esi, edi 2481 00001A4C 6601DE <1> add si, bx 2481 00001A4F 8836 <1> mov [esi], dh 2481 00001A51 6601C2 <1> add dx, ax 2481 00001A54 FEC7 <1> inc bh 2481 <1> 2481 00001A56 89FE <1> mov esi, edi 2481 00001A58 6601DE <1> add si, bx 2481 00001A5B 8836 <1> mov [esi], dh 2481 00001A5D 6601C2 <1> add dx, ax 2481 00001A60 FEC7 <1> inc bh 2481 <1> 2481 00001A62 89FE <1> mov esi, edi 2481 00001A64 6601DE <1> add si, bx 2481 00001A67 8836 <1> mov [esi], dh 2481 00001A69 6601C2 <1> add dx, ax 2481 00001A6C FEC7 <1> inc bh 2481 <1> 2481 00001A6E 89FE <1> mov esi, edi 2481 00001A70 6601DE <1> add si, bx 2481 00001A73 8836 <1> mov [esi], dh 2481 00001A75 6601C2 <1> add dx, ax 2481 00001A78 FEC7 <1> inc bh 2481 <1> 2481 00001A7A 89FE <1> mov esi, edi 2481 00001A7C 6601DE <1> add si, bx 2481 00001A7F 8836 <1> mov [esi], dh 2481 00001A81 6601C2 <1> add dx, ax 2481 00001A84 FEC7 <1> inc bh 2481 <1> 2481 00001A86 89FE <1> mov esi, edi 2481 00001A88 6601DE <1> add si, bx 2481 00001A8B 8836 <1> mov [esi], dh 2481 00001A8D 6601C2 <1> add dx, ax 2481 00001A90 FEC7 <1> inc bh 2481 <1> 2481 00001A92 89FE <1> mov esi, edi 2481 00001A94 6601DE <1> add si, bx 2481 00001A97 8836 <1> mov [esi], dh 2481 00001A99 6601C2 <1> add dx, ax 2481 00001A9C FEC7 <1> inc bh 2481 <1> 2481 00001A9E 89FE <1> mov esi, edi 2481 00001AA0 6601DE <1> add si, bx 2481 00001AA3 8836 <1> mov [esi], dh 2481 00001AA5 6601C2 <1> add dx, ax 2481 00001AA8 FEC7 <1> inc bh 2481 <1> 2481 00001AAA 89FE <1> mov esi, edi 2481 00001AAC 6601DE <1> add si, bx 2481 00001AAF 8836 <1> mov [esi], dh 2481 00001AB1 6601C2 <1> add dx, ax 2481 00001AB4 FEC7 <1> inc bh 2481 <1> 2481 00001AB6 89FE <1> mov esi, edi 2481 00001AB8 6601DE <1> add si, bx 2481 00001ABB 8836 <1> mov [esi], dh 2481 00001ABD 6601C2 <1> add dx, ax 2481 00001AC0 FEC7 <1> inc bh 2481 <1> 2481 00001AC2 89FE <1> mov esi, edi 2481 00001AC4 6601DE <1> add si, bx 2481 00001AC7 8836 <1> mov [esi], dh 2481 00001AC9 6601C2 <1> add dx, ax 2481 00001ACC FEC7 <1> inc bh 2481 <1> 2481 00001ACE 89FE <1> mov esi, edi 2481 00001AD0 6601DE <1> add si, bx 2481 00001AD3 8836 <1> mov [esi], dh 2481 00001AD5 6601C2 <1> add dx, ax 2481 00001AD8 FEC7 <1> inc bh 2481 <1> 2481 00001ADA 89FE <1> mov esi, edi 2481 00001ADC 6601DE <1> add si, bx 2481 00001ADF 8836 <1> mov [esi], dh 2481 00001AE1 6601C2 <1> add dx, ax 2481 00001AE4 FEC7 <1> inc bh 2481 <1> 2481 00001AE6 89FE <1> mov esi, edi 2481 00001AE8 6601DE <1> add si, bx 2481 00001AEB 8836 <1> mov [esi], dh 2481 00001AED 6601C2 <1> add dx, ax 2481 00001AF0 FEC7 <1> inc bh 2481 <1> 2481 00001AF2 89FE <1> mov esi, edi 2481 00001AF4 6601DE <1> add si, bx 2481 00001AF7 8836 <1> mov [esi], dh 2481 00001AF9 6601C2 <1> add dx, ax 2481 00001AFC FEC7 <1> inc bh 2481 <1> 2481 00001AFE 89FE <1> mov esi, edi 2481 00001B00 6601DE <1> add si, bx 2481 00001B03 8836 <1> mov [esi], dh 2481 00001B05 6601C2 <1> add dx, ax 2481 00001B08 FEC7 <1> inc bh 2481 <1> 2481 00001B0A 89FE <1> mov esi, edi 2481 00001B0C 6601DE <1> add si, bx 2481 00001B0F 8836 <1> mov [esi], dh 2481 00001B11 6601C2 <1> add dx, ax 2481 00001B14 FEC7 <1> inc bh 2481 <1> 2481 00001B16 89FE <1> mov esi, edi 2481 00001B18 6601DE <1> add si, bx 2481 00001B1B 8836 <1> mov [esi], dh 2481 00001B1D 6601C2 <1> add dx, ax 2481 00001B20 FEC7 <1> inc bh 2481 <1> 2481 00001B22 89FE <1> mov esi, edi 2481 00001B24 6601DE <1> add si, bx 2481 00001B27 8836 <1> mov [esi], dh 2481 00001B29 6601C2 <1> add dx, ax 2481 00001B2C FEC7 <1> inc bh 2481 <1> 2481 00001B2E 89FE <1> mov esi, edi 2481 00001B30 6601DE <1> add si, bx 2481 00001B33 8836 <1> mov [esi], dh 2481 00001B35 6601C2 <1> add dx, ax 2481 00001B38 FEC7 <1> inc bh 2481 <1> 2481 00001B3A 89FE <1> mov esi, edi 2481 00001B3C 6601DE <1> add si, bx 2481 00001B3F 8836 <1> mov [esi], dh 2481 00001B41 6601C2 <1> add dx, ax 2481 00001B44 FEC7 <1> inc bh 2481 <1> 2481 00001B46 89FE <1> mov esi, edi 2481 00001B48 6601DE <1> add si, bx 2481 00001B4B 8836 <1> mov [esi], dh 2481 00001B4D 6601C2 <1> add dx, ax 2481 00001B50 FEC7 <1> inc bh 2481 <1> 2481 00001B52 89FE <1> mov esi, edi 2481 00001B54 6601DE <1> add si, bx 2481 00001B57 8836 <1> mov [esi], dh 2481 00001B59 6601C2 <1> add dx, ax 2481 00001B5C FEC7 <1> inc bh 2481 <1> 2481 00001B5E 89FE <1> mov esi, edi 2481 00001B60 6601DE <1> add si, bx 2481 00001B63 8836 <1> mov [esi], dh 2481 00001B65 6601C2 <1> add dx, ax 2481 00001B68 FEC7 <1> inc bh 2481 <1> 2481 00001B6A 89FE <1> mov esi, edi 2481 00001B6C 6601DE <1> add si, bx 2481 00001B6F 8836 <1> mov [esi], dh 2481 00001B71 6601C2 <1> add dx, ax 2481 00001B74 FEC7 <1> inc bh 2481 <1> 2481 00001B76 89FE <1> mov esi, edi 2481 00001B78 6601DE <1> add si, bx 2481 00001B7B 8836 <1> mov [esi], dh 2481 00001B7D 6601C2 <1> add dx, ax 2481 00001B80 FEC7 <1> inc bh 2481 <1> 2481 00001B82 89FE <1> mov esi, edi 2481 00001B84 6601DE <1> add si, bx 2481 00001B87 8836 <1> mov [esi], dh 2481 00001B89 6601C2 <1> add dx, ax 2481 00001B8C FEC7 <1> inc bh 2481 <1> 2481 00001B8E 89FE <1> mov esi, edi 2481 00001B90 6601DE <1> add si, bx 2481 00001B93 8836 <1> mov [esi], dh 2481 00001B95 6601C2 <1> add dx, ax 2481 00001B98 FEC7 <1> inc bh 2481 <1> 2481 00001B9A 89FE <1> mov esi, edi 2481 00001B9C 6601DE <1> add si, bx 2481 00001B9F 8836 <1> mov [esi], dh 2481 00001BA1 6601C2 <1> add dx, ax 2481 00001BA4 FEC7 <1> inc bh 2481 <1> 2481 00001BA6 89FE <1> mov esi, edi 2481 00001BA8 6601DE <1> add si, bx 2481 00001BAB 8836 <1> mov [esi], dh 2481 00001BAD 6601C2 <1> add dx, ax 2481 00001BB0 FEC7 <1> inc bh 2481 <1> 2481 00001BB2 89FE <1> mov esi, edi 2481 00001BB4 6601DE <1> add si, bx 2481 00001BB7 8836 <1> mov [esi], dh 2481 00001BB9 6601C2 <1> add dx, ax 2481 00001BBC FEC7 <1> inc bh 2481 <1> 2481 00001BBE 89FE <1> mov esi, edi 2481 00001BC0 6601DE <1> add si, bx 2481 00001BC3 8836 <1> mov [esi], dh 2481 00001BC5 6601C2 <1> add dx, ax 2481 00001BC8 FEC7 <1> inc bh 2481 <1> 2481 00001BCA 89FE <1> mov esi, edi 2481 00001BCC 6601DE <1> add si, bx 2481 00001BCF 8836 <1> mov [esi], dh 2481 00001BD1 6601C2 <1> add dx, ax 2481 00001BD4 FEC7 <1> inc bh 2481 <1> 2481 00001BD6 89FE <1> mov esi, edi 2481 00001BD8 6601DE <1> add si, bx 2481 00001BDB 8836 <1> mov [esi], dh 2481 00001BDD 6601C2 <1> add dx, ax 2481 00001BE0 FEC7 <1> inc bh 2481 <1> 2481 00001BE2 89FE <1> mov esi, edi 2481 00001BE4 6601DE <1> add si, bx 2481 00001BE7 8836 <1> mov [esi], dh 2481 00001BE9 6601C2 <1> add dx, ax 2481 00001BEC FEC7 <1> inc bh 2481 <1> 2481 00001BEE 89FE <1> mov esi, edi 2481 00001BF0 6601DE <1> add si, bx 2481 00001BF3 8836 <1> mov [esi], dh 2481 00001BF5 6601C2 <1> add dx, ax 2481 00001BF8 FEC7 <1> inc bh 2481 <1> 2481 00001BFA 89FE <1> mov esi, edi 2481 00001BFC 6601DE <1> add si, bx 2481 00001BFF 8836 <1> mov [esi], dh 2481 00001C01 6601C2 <1> add dx, ax 2481 00001C04 FEC7 <1> inc bh 2481 <1> 2481 00001C06 89FE <1> mov esi, edi 2481 00001C08 6601DE <1> add si, bx 2481 00001C0B 8836 <1> mov [esi], dh 2481 00001C0D 6601C2 <1> add dx, ax 2481 00001C10 FEC7 <1> inc bh 2481 <1> 2481 00001C12 89FE <1> mov esi, edi 2481 00001C14 6601DE <1> add si, bx 2481 00001C17 8836 <1> mov [esi], dh 2481 00001C19 6601C2 <1> add dx, ax 2481 00001C1C FEC7 <1> inc bh 2481 <1> 2481 00001C1E 89FE <1> mov esi, edi 2481 00001C20 6601DE <1> add si, bx 2481 00001C23 8836 <1> mov [esi], dh 2481 00001C25 6601C2 <1> add dx, ax 2481 00001C28 FEC7 <1> inc bh 2481 <1> 2481 00001C2A 89FE <1> mov esi, edi 2481 00001C2C 6601DE <1> add si, bx 2481 00001C2F 8836 <1> mov [esi], dh 2481 00001C31 6601C2 <1> add dx, ax 2481 00001C34 FEC7 <1> inc bh 2481 <1> 2481 00001C36 89FE <1> mov esi, edi 2481 00001C38 6601DE <1> add si, bx 2481 00001C3B 8836 <1> mov [esi], dh 2481 00001C3D 6601C2 <1> add dx, ax 2481 00001C40 FEC7 <1> inc bh 2481 <1> 2481 00001C42 89FE <1> mov esi, edi 2481 00001C44 6601DE <1> add si, bx 2481 00001C47 8836 <1> mov [esi], dh 2481 00001C49 6601C2 <1> add dx, ax 2481 00001C4C FEC7 <1> inc bh 2481 <1> 2481 00001C4E 89FE <1> mov esi, edi 2481 00001C50 6601DE <1> add si, bx 2481 00001C53 8836 <1> mov [esi], dh 2481 00001C55 6601C2 <1> add dx, ax 2481 00001C58 FEC7 <1> inc bh 2481 <1> 2481 00001C5A 89FE <1> mov esi, edi 2481 00001C5C 6601DE <1> add si, bx 2481 00001C5F 8836 <1> mov [esi], dh 2481 00001C61 6601C2 <1> add dx, ax 2481 00001C64 FEC7 <1> inc bh 2481 <1> 2481 00001C66 89FE <1> mov esi, edi 2481 00001C68 6601DE <1> add si, bx 2481 00001C6B 8836 <1> mov [esi], dh 2481 00001C6D 6601C2 <1> add dx, ax 2481 00001C70 FEC7 <1> inc bh 2481 <1> 2481 00001C72 89FE <1> mov esi, edi 2481 00001C74 6601DE <1> add si, bx 2481 00001C77 8836 <1> mov [esi], dh 2481 00001C79 6601C2 <1> add dx, ax 2481 00001C7C FEC7 <1> inc bh 2481 <1> 2481 00001C7E 89FE <1> mov esi, edi 2481 00001C80 6601DE <1> add si, bx 2481 00001C83 8836 <1> mov [esi], dh 2481 00001C85 6601C2 <1> add dx, ax 2481 00001C88 FEC7 <1> inc bh 2481 <1> 2481 00001C8A 89FE <1> mov esi, edi 2481 00001C8C 6601DE <1> add si, bx 2481 00001C8F 8836 <1> mov [esi], dh 2481 00001C91 6601C2 <1> add dx, ax 2481 00001C94 FEC7 <1> inc bh 2481 <1> 2481 00001C96 89FE <1> mov esi, edi 2481 00001C98 6601DE <1> add si, bx 2481 00001C9B 8836 <1> mov [esi], dh 2481 00001C9D 6601C2 <1> add dx, ax 2481 00001CA0 FEC7 <1> inc bh 2481 <1> 2481 00001CA2 89FE <1> mov esi, edi 2481 00001CA4 6601DE <1> add si, bx 2481 00001CA7 8836 <1> mov [esi], dh 2481 00001CA9 6601C2 <1> add dx, ax 2481 00001CAC FEC7 <1> inc bh 2481 <1> 2481 00001CAE 89FE <1> mov esi, edi 2481 00001CB0 6601DE <1> add si, bx 2481 00001CB3 8836 <1> mov [esi], dh 2481 00001CB5 6601C2 <1> add dx, ax 2481 00001CB8 FEC7 <1> inc bh 2481 <1> 2481 00001CBA 89FE <1> mov esi, edi 2481 00001CBC 6601DE <1> add si, bx 2481 00001CBF 8836 <1> mov [esi], dh 2481 00001CC1 6601C2 <1> add dx, ax 2481 00001CC4 FEC7 <1> inc bh 2481 <1> 2481 00001CC6 89FE <1> mov esi, edi 2481 00001CC8 6601DE <1> add si, bx 2481 00001CCB 8836 <1> mov [esi], dh 2481 00001CCD 6601C2 <1> add dx, ax 2481 00001CD0 FEC7 <1> inc bh 2481 <1> 2481 00001CD2 89FE <1> mov esi, edi 2481 00001CD4 6601DE <1> add si, bx 2481 00001CD7 8836 <1> mov [esi], dh 2481 00001CD9 6601C2 <1> add dx, ax 2481 00001CDC FEC7 <1> inc bh 2481 <1> 2481 00001CDE 89FE <1> mov esi, edi 2481 00001CE0 6601DE <1> add si, bx 2481 00001CE3 8836 <1> mov [esi], dh 2481 00001CE5 6601C2 <1> add dx, ax 2481 00001CE8 FEC7 <1> inc bh 2481 <1> 2481 00001CEA 89FE <1> mov esi, edi 2481 00001CEC 6601DE <1> add si, bx 2481 00001CEF 8836 <1> mov [esi], dh 2481 00001CF1 6601C2 <1> add dx, ax 2481 00001CF4 FEC7 <1> inc bh 2481 <1> 2481 00001CF6 89FE <1> mov esi, edi 2481 00001CF8 6601DE <1> add si, bx 2481 00001CFB 8836 <1> mov [esi], dh 2481 00001CFD 6601C2 <1> add dx, ax 2481 00001D00 FEC7 <1> inc bh 2481 <1> 2481 00001D02 89FE <1> mov esi, edi 2481 00001D04 6601DE <1> add si, bx 2481 00001D07 8836 <1> mov [esi], dh 2481 00001D09 6601C2 <1> add dx, ax 2481 00001D0C FEC7 <1> inc bh 2481 <1> 2481 00001D0E 89FE <1> mov esi, edi 2481 00001D10 6601DE <1> add si, bx 2481 00001D13 8836 <1> mov [esi], dh 2481 00001D15 6601C2 <1> add dx, ax 2481 00001D18 FEC7 <1> inc bh 2481 <1> 2481 00001D1A 89FE <1> mov esi, edi 2481 00001D1C 6601DE <1> add si, bx 2481 00001D1F 8836 <1> mov [esi], dh 2481 00001D21 6601C2 <1> add dx, ax 2481 00001D24 FEC7 <1> inc bh 2481 <1> 2481 00001D26 89FE <1> mov esi, edi 2481 00001D28 6601DE <1> add si, bx 2481 00001D2B 8836 <1> mov [esi], dh 2481 00001D2D 6601C2 <1> add dx, ax 2481 00001D30 FEC7 <1> inc bh 2481 <1> 2481 00001D32 89FE <1> mov esi, edi 2481 00001D34 6601DE <1> add si, bx 2481 00001D37 8836 <1> mov [esi], dh 2481 00001D39 6601C2 <1> add dx, ax 2481 00001D3C FEC7 <1> inc bh 2481 <1> 2481 00001D3E 89FE <1> mov esi, edi 2481 00001D40 6601DE <1> add si, bx 2481 00001D43 8836 <1> mov [esi], dh 2481 00001D45 6601C2 <1> add dx, ax 2481 00001D48 FEC7 <1> inc bh 2481 <1> 2481 00001D4A 89FE <1> mov esi, edi 2481 00001D4C 6601DE <1> add si, bx 2481 00001D4F 8836 <1> mov [esi], dh 2481 00001D51 6601C2 <1> add dx, ax 2481 00001D54 FEC7 <1> inc bh 2481 <1> 2481 00001D56 89FE <1> mov esi, edi 2481 00001D58 6601DE <1> add si, bx 2481 00001D5B 8836 <1> mov [esi], dh 2481 00001D5D 6601C2 <1> add dx, ax 2481 00001D60 FEC7 <1> inc bh 2481 <1> 2481 00001D62 89FE <1> mov esi, edi 2481 00001D64 6601DE <1> add si, bx 2481 00001D67 8836 <1> mov [esi], dh 2481 00001D69 6601C2 <1> add dx, ax 2481 00001D6C FEC7 <1> inc bh 2481 <1> 2481 00001D6E 89FE <1> mov esi, edi 2481 00001D70 6601DE <1> add si, bx 2481 00001D73 8836 <1> mov [esi], dh 2481 00001D75 6601C2 <1> add dx, ax 2481 00001D78 FEC7 <1> inc bh 2481 <1> 2481 00001D7A 89FE <1> mov esi, edi 2481 00001D7C 6601DE <1> add si, bx 2481 00001D7F 8836 <1> mov [esi], dh 2481 00001D81 6601C2 <1> add dx, ax 2481 00001D84 FEC7 <1> inc bh 2481 <1> 2481 00001D86 89FE <1> mov esi, edi 2481 00001D88 6601DE <1> add si, bx 2481 00001D8B 8836 <1> mov [esi], dh 2481 00001D8D 6601C2 <1> add dx, ax 2481 00001D90 FEC7 <1> inc bh 2481 <1> 2481 00001D92 89FE <1> mov esi, edi 2481 00001D94 6601DE <1> add si, bx 2481 00001D97 8836 <1> mov [esi], dh 2481 00001D99 6601C2 <1> add dx, ax 2481 00001D9C FEC7 <1> inc bh 2481 <1> 2481 00001D9E 89FE <1> mov esi, edi 2481 00001DA0 6601DE <1> add si, bx 2481 00001DA3 8836 <1> mov [esi], dh 2481 00001DA5 6601C2 <1> add dx, ax 2481 00001DA8 FEC7 <1> inc bh 2481 <1> 2481 00001DAA 89FE <1> mov esi, edi 2481 00001DAC 6601DE <1> add si, bx 2481 00001DAF 8836 <1> mov [esi], dh 2481 00001DB1 6601C2 <1> add dx, ax 2481 00001DB4 FEC7 <1> inc bh 2481 <1> 2481 00001DB6 89FE <1> mov esi, edi 2481 00001DB8 6601DE <1> add si, bx 2481 00001DBB 8836 <1> mov [esi], dh 2481 00001DBD 6601C2 <1> add dx, ax 2481 00001DC0 FEC7 <1> inc bh 2481 <1> 2481 00001DC2 89FE <1> mov esi, edi 2481 00001DC4 6601DE <1> add si, bx 2481 00001DC7 8836 <1> mov [esi], dh 2481 00001DC9 6601C2 <1> add dx, ax 2481 00001DCC FEC7 <1> inc bh 2481 <1> 2481 00001DCE 89FE <1> mov esi, edi 2481 00001DD0 6601DE <1> add si, bx 2481 00001DD3 8836 <1> mov [esi], dh 2481 00001DD5 6601C2 <1> add dx, ax 2481 00001DD8 FEC7 <1> inc bh 2481 <1> 2481 00001DDA 89FE <1> mov esi, edi 2481 00001DDC 6601DE <1> add si, bx 2481 00001DDF 8836 <1> mov [esi], dh 2481 00001DE1 6601C2 <1> add dx, ax 2481 00001DE4 FEC7 <1> inc bh 2481 <1> 2481 00001DE6 89FE <1> mov esi, edi 2481 00001DE8 6601DE <1> add si, bx 2481 00001DEB 8836 <1> mov [esi], dh 2481 00001DED 6601C2 <1> add dx, ax 2481 00001DF0 FEC7 <1> inc bh 2481 <1> 2481 00001DF2 89FE <1> mov esi, edi 2481 00001DF4 6601DE <1> add si, bx 2481 00001DF7 8836 <1> mov [esi], dh 2481 00001DF9 6601C2 <1> add dx, ax 2481 00001DFC FEC7 <1> inc bh 2481 <1> 2481 00001DFE 89FE <1> mov esi, edi 2481 00001E00 6601DE <1> add si, bx 2481 00001E03 8836 <1> mov [esi], dh 2481 00001E05 6601C2 <1> add dx, ax 2481 00001E08 FEC7 <1> inc bh 2481 <1> 2481 00001E0A 89FE <1> mov esi, edi 2481 00001E0C 6601DE <1> add si, bx 2481 00001E0F 8836 <1> mov [esi], dh 2481 00001E11 6601C2 <1> add dx, ax 2481 00001E14 FEC7 <1> inc bh 2481 <1> 2481 00001E16 89FE <1> mov esi, edi 2481 00001E18 6601DE <1> add si, bx 2481 00001E1B 8836 <1> mov [esi], dh 2481 00001E1D 6601C2 <1> add dx, ax 2481 00001E20 FEC7 <1> inc bh 2481 <1> 2481 00001E22 89FE <1> mov esi, edi 2481 00001E24 6601DE <1> add si, bx 2481 00001E27 8836 <1> mov [esi], dh 2481 00001E29 6601C2 <1> add dx, ax 2481 00001E2C FEC7 <1> inc bh 2481 <1> 2481 00001E2E 89FE <1> mov esi, edi 2481 00001E30 6601DE <1> add si, bx 2481 00001E33 8836 <1> mov [esi], dh 2481 00001E35 6601C2 <1> add dx, ax 2481 00001E38 FEC7 <1> inc bh 2481 <1> 2481 00001E3A 89FE <1> mov esi, edi 2481 00001E3C 6601DE <1> add si, bx 2481 00001E3F 8836 <1> mov [esi], dh 2481 00001E41 6601C2 <1> add dx, ax 2481 00001E44 FEC7 <1> inc bh 2481 <1> 2481 00001E46 89FE <1> mov esi, edi 2481 00001E48 6601DE <1> add si, bx 2481 00001E4B 8836 <1> mov [esi], dh 2481 00001E4D 6601C2 <1> add dx, ax 2481 00001E50 FEC7 <1> inc bh 2481 <1> 2481 00001E52 89FE <1> mov esi, edi 2481 00001E54 6601DE <1> add si, bx 2481 00001E57 8836 <1> mov [esi], dh 2481 00001E59 6601C2 <1> add dx, ax 2481 00001E5C FEC7 <1> inc bh 2481 <1> 2481 00001E5E 89FE <1> mov esi, edi 2481 00001E60 6601DE <1> add si, bx 2481 00001E63 8836 <1> mov [esi], dh 2481 00001E65 6601C2 <1> add dx, ax 2481 00001E68 FEC7 <1> inc bh 2481 <1> 2481 00001E6A 89FE <1> mov esi, edi 2481 00001E6C 6601DE <1> add si, bx 2481 00001E6F 8836 <1> mov [esi], dh 2481 00001E71 6601C2 <1> add dx, ax 2481 00001E74 FEC7 <1> inc bh 2481 <1> 2481 00001E76 89FE <1> mov esi, edi 2481 00001E78 6601DE <1> add si, bx 2481 00001E7B 8836 <1> mov [esi], dh 2481 00001E7D 6601C2 <1> add dx, ax 2481 00001E80 FEC7 <1> inc bh 2481 <1> 2481 00001E82 89FE <1> mov esi, edi 2481 00001E84 6601DE <1> add si, bx 2481 00001E87 8836 <1> mov [esi], dh 2481 00001E89 6601C2 <1> add dx, ax 2481 00001E8C FEC7 <1> inc bh 2481 <1> 2481 00001E8E 89FE <1> mov esi, edi 2481 00001E90 6601DE <1> add si, bx 2481 00001E93 8836 <1> mov [esi], dh 2481 00001E95 6601C2 <1> add dx, ax 2481 00001E98 FEC7 <1> inc bh 2481 <1> 2481 00001E9A 89FE <1> mov esi, edi 2481 00001E9C 6601DE <1> add si, bx 2481 00001E9F 8836 <1> mov [esi], dh 2481 00001EA1 6601C2 <1> add dx, ax 2481 00001EA4 FEC7 <1> inc bh 2481 <1> 2481 00001EA6 89FE <1> mov esi, edi 2481 00001EA8 6601DE <1> add si, bx 2481 00001EAB 8836 <1> mov [esi], dh 2481 00001EAD 6601C2 <1> add dx, ax 2481 00001EB0 FEC7 <1> inc bh 2481 <1> 2481 00001EB2 89FE <1> mov esi, edi 2481 00001EB4 6601DE <1> add si, bx 2481 00001EB7 8836 <1> mov [esi], dh 2481 00001EB9 6601C2 <1> add dx, ax 2481 00001EBC FEC7 <1> inc bh 2481 <1> 2481 00001EBE 89FE <1> mov esi, edi 2481 00001EC0 6601DE <1> add si, bx 2481 00001EC3 8836 <1> mov [esi], dh 2481 00001EC5 6601C2 <1> add dx, ax 2481 00001EC8 FEC7 <1> inc bh 2481 <1> 2481 00001ECA 89FE <1> mov esi, edi 2481 00001ECC 6601DE <1> add si, bx 2481 00001ECF 8836 <1> mov [esi], dh 2481 00001ED1 6601C2 <1> add dx, ax 2481 00001ED4 FEC7 <1> inc bh 2481 <1> 2481 00001ED6 89FE <1> mov esi, edi 2481 00001ED8 6601DE <1> add si, bx 2481 00001EDB 8836 <1> mov [esi], dh 2481 00001EDD 6601C2 <1> add dx, ax 2481 00001EE0 FEC7 <1> inc bh 2481 <1> 2481 00001EE2 89FE <1> mov esi, edi 2481 00001EE4 6601DE <1> add si, bx 2481 00001EE7 8836 <1> mov [esi], dh 2481 00001EE9 6601C2 <1> add dx, ax 2481 00001EEC FEC7 <1> inc bh 2481 <1> 2481 00001EEE 89FE <1> mov esi, edi 2481 00001EF0 6601DE <1> add si, bx 2481 00001EF3 8836 <1> mov [esi], dh 2481 00001EF5 6601C2 <1> add dx, ax 2481 00001EF8 FEC7 <1> inc bh 2481 <1> 2481 00001EFA 89FE <1> mov esi, edi 2481 00001EFC 6601DE <1> add si, bx 2481 00001EFF 8836 <1> mov [esi], dh 2481 00001F01 6601C2 <1> add dx, ax 2481 00001F04 FEC7 <1> inc bh 2481 <1> 2481 00001F06 89FE <1> mov esi, edi 2481 00001F08 6601DE <1> add si, bx 2481 00001F0B 8836 <1> mov [esi], dh 2481 00001F0D 6601C2 <1> add dx, ax 2481 00001F10 FEC7 <1> inc bh 2481 <1> 2481 00001F12 89FE <1> mov esi, edi 2481 00001F14 6601DE <1> add si, bx 2481 00001F17 8836 <1> mov [esi], dh 2481 00001F19 6601C2 <1> add dx, ax 2481 00001F1C FEC7 <1> inc bh 2481 <1> 2481 00001F1E 89FE <1> mov esi, edi 2481 00001F20 6601DE <1> add si, bx 2481 00001F23 8836 <1> mov [esi], dh 2481 00001F25 6601C2 <1> add dx, ax 2481 00001F28 FEC7 <1> inc bh 2481 <1> 2481 00001F2A 89FE <1> mov esi, edi 2481 00001F2C 6601DE <1> add si, bx 2481 00001F2F 8836 <1> mov [esi], dh 2481 00001F31 6601C2 <1> add dx, ax 2481 00001F34 FEC7 <1> inc bh 2481 <1> 2481 00001F36 89FE <1> mov esi, edi 2481 00001F38 6601DE <1> add si, bx 2481 00001F3B 8836 <1> mov [esi], dh 2481 00001F3D 6601C2 <1> add dx, ax 2481 00001F40 FEC7 <1> inc bh 2481 <1> 2481 00001F42 89FE <1> mov esi, edi 2481 00001F44 6601DE <1> add si, bx 2481 00001F47 8836 <1> mov [esi], dh 2481 00001F49 6601C2 <1> add dx, ax 2481 00001F4C FEC7 <1> inc bh 2481 <1> 2481 00001F4E 89FE <1> mov esi, edi 2481 00001F50 6601DE <1> add si, bx 2481 00001F53 8836 <1> mov [esi], dh 2481 00001F55 6601C2 <1> add dx, ax 2481 00001F58 FEC7 <1> inc bh 2481 <1> 2481 00001F5A 89FE <1> mov esi, edi 2481 00001F5C 6601DE <1> add si, bx 2481 00001F5F 8836 <1> mov [esi], dh 2481 00001F61 6601C2 <1> add dx, ax 2481 00001F64 FEC7 <1> inc bh 2481 <1> 2481 00001F66 89FE <1> mov esi, edi 2481 00001F68 6601DE <1> add si, bx 2481 00001F6B 8836 <1> mov [esi], dh 2481 00001F6D 6601C2 <1> add dx, ax 2481 00001F70 FEC7 <1> inc bh 2481 <1> 2481 00001F72 89FE <1> mov esi, edi 2481 00001F74 6601DE <1> add si, bx 2481 00001F77 8836 <1> mov [esi], dh 2481 00001F79 6601C2 <1> add dx, ax 2481 00001F7C FEC7 <1> inc bh 2481 <1> 2481 00001F7E 89FE <1> mov esi, edi 2481 00001F80 6601DE <1> add si, bx 2481 00001F83 8836 <1> mov [esi], dh 2481 00001F85 6601C2 <1> add dx, ax 2481 00001F88 FEC7 <1> inc bh 2481 <1> 2481 00001F8A 89FE <1> mov esi, edi 2481 00001F8C 6601DE <1> add si, bx 2481 00001F8F 8836 <1> mov [esi], dh 2481 00001F91 6601C2 <1> add dx, ax 2481 00001F94 FEC7 <1> inc bh 2481 <1> 2481 00001F96 89FE <1> mov esi, edi 2481 00001F98 6601DE <1> add si, bx 2481 00001F9B 8836 <1> mov [esi], dh 2481 00001F9D 6601C2 <1> add dx, ax 2481 00001FA0 FEC7 <1> inc bh 2481 <1> 2481 00001FA2 89FE <1> mov esi, edi 2481 00001FA4 6601DE <1> add si, bx 2481 00001FA7 8836 <1> mov [esi], dh 2481 00001FA9 6601C2 <1> add dx, ax 2481 00001FAC FEC7 <1> inc bh 2481 <1> 2481 00001FAE 89FE <1> mov esi, edi 2481 00001FB0 6601DE <1> add si, bx 2481 00001FB3 8836 <1> mov [esi], dh 2481 00001FB5 6601C2 <1> add dx, ax 2481 00001FB8 FEC7 <1> inc bh 2481 <1> 2481 00001FBA 89FE <1> mov esi, edi 2481 00001FBC 6601DE <1> add si, bx 2481 00001FBF 8836 <1> mov [esi], dh 2481 00001FC1 6601C2 <1> add dx, ax 2481 00001FC4 FEC7 <1> inc bh 2481 <1> 2481 00001FC6 89FE <1> mov esi, edi 2481 00001FC8 6601DE <1> add si, bx 2481 00001FCB 8836 <1> mov [esi], dh 2481 00001FCD 6601C2 <1> add dx, ax 2481 00001FD0 FEC7 <1> inc bh 2481 <1> 2481 00001FD2 89FE <1> mov esi, edi 2481 00001FD4 6601DE <1> add si, bx 2481 00001FD7 8836 <1> mov [esi], dh 2481 00001FD9 6601C2 <1> add dx, ax 2481 00001FDC FEC7 <1> inc bh 2481 <1> 2481 00001FDE 89FE <1> mov esi, edi 2481 00001FE0 6601DE <1> add si, bx 2481 00001FE3 8836 <1> mov [esi], dh 2481 00001FE5 6601C2 <1> add dx, ax 2481 00001FE8 FEC7 <1> inc bh 2481 <1> 2481 00001FEA 89FE <1> mov esi, edi 2481 00001FEC 6601DE <1> add si, bx 2481 00001FEF 8836 <1> mov [esi], dh 2481 00001FF1 6601C2 <1> add dx, ax 2481 00001FF4 FEC7 <1> inc bh 2481 <1> 2481 00001FF6 89FE <1> mov esi, edi 2481 00001FF8 6601DE <1> add si, bx 2481 00001FFB 8836 <1> mov [esi], dh 2481 00001FFD 6601C2 <1> add dx, ax 2481 00002000 FEC7 <1> inc bh 2481 <1> 2481 00002002 89FE <1> mov esi, edi 2481 00002004 6601DE <1> add si, bx 2481 00002007 8836 <1> mov [esi], dh 2481 00002009 6601C2 <1> add dx, ax 2481 0000200C FEC7 <1> inc bh 2481 <1> 2481 0000200E 89FE <1> mov esi, edi 2481 00002010 6601DE <1> add si, bx 2481 00002013 8836 <1> mov [esi], dh 2481 00002015 6601C2 <1> add dx, ax 2481 00002018 FEC7 <1> inc bh 2481 <1> 2481 0000201A 89FE <1> mov esi, edi 2481 0000201C 6601DE <1> add si, bx 2481 0000201F 8836 <1> mov [esi], dh 2481 00002021 6601C2 <1> add dx, ax 2481 00002024 FEC7 <1> inc bh 2481 <1> 2481 00002026 89FE <1> mov esi, edi 2481 00002028 6601DE <1> add si, bx 2481 0000202B 8836 <1> mov [esi], dh 2481 0000202D 6601C2 <1> add dx, ax 2481 00002030 FEC7 <1> inc bh 2482 @UpdateMap8: 2483 00002032 89FE mov esi, edi 2484 00002034 6601DE add si, bx 2485 00002037 8836 mov [esi], dh 2486 00002039 C3 retn 2487 2488 M_MakeMUL: 2489 0000203A 66B8AF00 mov ax, 0AFh 2490 0000203E 66F7E6 mul si 2491 00002041 6605C02B add ax, 2BC0h 2492 00002045 6683D200 adc dx, 0 2493 00002049 66F73594000100 div word [W_Divider] 2494 00002050 6689D6 mov si, dx 2495 00002053 C3 retn 2496 2497 M_Calc2Square: 2498 00002054 88C5 mov ch, al 2499 00002056 E8DFFFFFFF call M_MakeMUL 2500 0000205B 6681EAE867 sub dx, 67E8h 2501 00002060 6631C0 xor ax, ax 2502 00002063 88C8 mov al, cl 2503 00002065 66C1E003 shl ax, 3 2504 00002069 66F7EA imul dx 2505 0000206C 6631C0 xor ax, ax 2506 0000206F 00EA add dl, ch 2507 00002071 88C5 mov ch, al 2508 00002073 10EE adc dh, ch 2509 00002075 7806 js short @@CS2 2510 00002077 7402 jz short @@CS1 2511 00002079 B2FE mov dl, 0FEh 2512 @@CS1: 2513 0000207B 88D0 mov al, dl 2514 @@CS2: 2515 0000207D C3 retn 2516 2517 M_CalcSquare: 2518 0000207E 803FFF cmp byte [edi], 0FFh 2519 00002081 7510 jne short @@CS3 2520 00002083 0203 add al, [ebx] 2521 00002085 10EC adc ah, ch 2522 00002087 66D1E8 shr ax, 1 2523 ;M_Calc2Square 2524 0000208A E8C5FFFFFF call M_Calc2Square 2525 ;stosb 2526 0000208F 8807 mov [edi], al 2527 00002091 6647 inc di 2528 @@CS3: 2529 00002093 C3 retn 2530 2531 00002094 2020C9CDCDCDCDCDCD- EndPic: db ' ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ' 2531 0000209D CDCDCDCDCDCDCDCDCD- 2531 000020A6 CDCDCDCDCDCDCDCDCD- 2531 000020AF CDCDCDCDCDCDCDCDCD- 2531 000020B8 CDCDCDCDCDCDCDCDCD- 2531 000020C1 CDCDCDCDCDCDCDCDCD- 2531 000020CA CDCDCDCDCDCDCDCDCD- 2531 000020D3 CDCDCDCDCDCDCDCDCD- 2531 000020DC CDCDCDCDCDBB2020 2532 000020E4 C9CDBC202020202020- db 'Éͼ ÈÍ»' 2532 000020ED 202020202020202020- 2532 000020F6 202020202020202020- 2532 000020FF 202020202020202020- 2532 00002108 202020202020202020- 2532 00002111 202020202020202020- 2532 0000211A 202020202020202020- 2532 00002123 202020202020202020- 2532 0000212C 2020202020C8CDBB 2533 00002134 BA20DC20DCDCDC2020- db 'º Ü ÜÜÜ ÉÍÍ» º º ÍËÍ ÉÍÍ» ÉÍÍ ÉÍËÍ» ÉÍÍ ÉÍËÍ» ÉÍÍ» ÉÍÍ» º º º Ü ÜÜÜ º' 2533 0000213D C9CDCDBB20BA2020BA- 2533 00002146 20CDCBCD20202020C9- 2533 0000214F CDCDBB20C9CDCD2020- 2533 00002158 2020C9CDCBCDBB20C9- 2533 00002161 CDCD20C9CDCBCDBB20- 2533 0000216A C9CDCDBB20C9CDCDBB- 2533 00002173 20BA20BA2020BA2020- 2533 0000217C 20DC20DCDCDC20BA 2534 00002184 BA20DC20DCDCDC2020- db 'º Ü ÜÜÜ º º º º º º º ÌÍ º º º ÌÍ º º º º º ÌÍ˼ È˼ º Ü ÜÜÜ º' 2534 0000218D BA2020BA20BA2020BA- 2534 00002196 2020BA2020202020BA- 2534 0000219F 2020BA20CCCD202020- 2534 000021A8 2020BA20BA20BA20CC- 2534 000021B1 CD2020BA20BA20BA20- 2534 000021BA BA2020BA20CCCDCBBC- 2534 000021C3 20C8CBBC2020BA2020- 2534 000021CC 20DC20DCDCDC20BA 2535 000021D4 BA2020202020202020- db 'º ÈÍͼ ÈÍͼ º ÈÍͼ º º º º ÈÍÍ º º º ÈÍͼ º È» º þ º' 2535 000021DD C8CDCDBC20C8CDCDBC- 2535 000021E6 2020BA2020202020C8- 2535 000021EF CDCDBC20BA20202020- 2535 000021F8 2020BA20BA20BA20C8- 2535 00002201 CDCD20BA20BA20BA20- 2535 0000220A C8CDCDBC20BA20C8BB- 2535 00002213 2020BA202020FE2020- 2535 0000221C 20202020202020BA 2536 ; db 'º Released at Assembly 94 in Finland, (C) 1994 º' 2537 00002224 BA2020202020202020- db 'º Released at Assembly 94 in Finland, (C) 1994 ä, STP º' 2537 0000222D 202020202020202020- 2537 00002236 202020202020202020- 2537 0000223F 52656C656173656420- 2537 00002248 617420417373656D62- 2537 00002251 6C7920393420696E20- 2537 0000225A 46696E6C616E642C20- 2537 00002263 284329203139393420- 2537 0000226C E42C2053545020BA 2538 00002274 C8CDCDCDCDCDCDCDCD- db 'ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ' 2538 0000227D CDCDCDCDCDCDCDCDCD- 2538 00002286 CDCDCDCDCDCDCDCDCD- 2538 0000228F CDCDCDCDCDCDCDCDCD- 2538 00002298 CDCDCDCDCDCDCDCDCD- 2538 000022A1 CDCDCDCDCDCDCDCDCD- 2538 000022AA CDCDCDCDCDCDCDCDCD- 2538 000022B3 CDCDCDCDCDCDCDCDCD- 2538 000022BC CDCDCDCDCDCDCDBC 2539 000022C4 DBDBDBDBDBDBDBDBDB- db 'ÛÛÛÛÛÛÛÛÛ±±±±±±±±°°°°°°°GIANT - the Ultimate 4KB-Intro!°°°°°°°°±±±±±±±±ÛÛÛÛÛÛÛÛÛ' 2539 000022CD B1B1B1B1B1B1B1B1B0- 2539 000022D6 B0B0B0B0B0B0474941- 2539 000022DF 4E54202D2074686520- 2539 000022E8 556C74696D61746520- 2539 000022F1 344B422D496E74726F- 2539 000022FA 21B0B0B0B0B0B0B0B0- 2539 00002303 B1B1B1B1B1B1B1B1DB- 2539 0000230C DBDBDBDBDBDBDBDB 2540 00002314 1F EndPicCol: times 80 db 1Fh 2541 00002364 1F times 80 db 1Fh 2542 000023B4 1F times 3 db 1Fh 2543 000023B7 11 db 11h 2544 000023B8 1F times 3 db 1Fh 2545 000023BB 1C times 66 db 1Ch 2546 000023FD 1F11 db 1Fh, 11h 2547 000023FF 1F times 5 db 1Fh 2548 00002404 1F times 3 db 1Fh 2549 00002407 11 db 11h, 2550 00002408 1F times 3 db 1Fh 2551 0000240B 1E times 66 db 1Eh 2552 0000244D 1F11 db 1Fh, 11h 2553 0000244F 1F times 5 db 1Fh 2554 00002454 1F times 9 db 1Fh 2555 0000245D 1A times 62 db 1Ah 2556 0000249B 1F times 9 db 1Fh 2557 000024A4 1F times 80 db 1Fh 2558 000024F4 1F times 80 db 1Fh 2559 00002544 19 times 24 db 19h 2560 0000255C 9E times 5 db 9Eh 2561 00002561 15 times 3 db 15h 2562 00002564 1A times 4 db 1Ah 2563 00002568 1D times 9 db 1Dh 2564 00002571 1F171714 db 1Fh, 17h, 17h, 14h 2565 00002575 131C times 5 db 13h, 1Ch 2566 0000257F 19 times 25 db 19h 2567 00002598 C9CDCDCDCDCDCDCDCD- Gfx1Text: db 'ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»', 0 2567 000025A1 CDCDCDCDCDCDCDCDCD- 2567 000025AA CDCDCDCDCDCDCDCDCD- 2567 000025B3 CDCDBB00 2568 000025B7 BA506C656173652077- db 'ºPlease wait while Computing!º', 0 2568 000025C0 616974207768696C65- 2568 000025C9 20436F6D707574696E- 2568 000025D2 6721BA00 2569 000025D6 C8CDCDCDCDCDCDCDCD- db 'ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ', 0, -1 2569 000025DF CDCDCDCDCDCDCDCDCD- 2569 000025E8 CDCDCDCDCDCDCDCDCD- 2569 000025F1 CDCDBC00FF 2570 000025F6 497320746861742061- Gfx2Text: db 'Is that all?', 0, -1 2570 000025FF 6C6C3F00FF 2571 00002604 4E4F2100FF Gfx3Text: db 'NO!', 0, -1 2572 00002609 C9CDCDCDCDCDCDCDCD- Gfx4Text: db 'ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»', 0 2572 00002612 CDCDCDCDCDCDCDCDCD- 2572 0000261B CDCDCDBB00 2573 00002620 BA2054686174206973- db 'º That is all Folks! º', 0 2573 00002629 20616C6C20466F6C6B- 2573 00002632 732120BA00 2574 00002637 C8CDCDCDCDCDCDCDCD- db 'ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ', 0, -1 2574 00002640 CDCDCDCDCDCDCDCDCD- 2574 00002649 CDCDCDBC00FF 2575 0000264F 20417373656D626C79- Text1String: db ' Assembly 1994 *' 2575 00002658 2031393934202A 2576 0000265F 204749414E5420344B- db ' GIANT 4KB-Intro' 2576 00002668 422D496E74726F 2577 0000266F 4749414E540D0A Text2String: db 'GIANT', 13, 10 2578 00002676 74686520556C74696D- db 'the Ultimate', 13, 10 2578 0000267F 6174650D0A 2579 00002684 344B422D496E74726F- db '4KB-Intro', 0 2579 0000268D 00 2580 0000268E 00 times 2 db 0 2581 prg_msg: 2582 00002690 0D0A db 0Dh, 0Ah 2583 00002692 0D0A db 0Dh, 0Ah 2584 00002694 4749414E542E505247- db "GIANT.PRG - TRDOS 386 (VGA Test) version of GIANT.COM by Erdogan Tan, 25/09/2016" 2584 0000269D 202D205452444F5320- 2584 000026A6 333836202856474120- 2584 000026AF 546573742920766572- 2584 000026B8 73696F6E206F662047- 2584 000026C1 49414E542E434F4D20- 2584 000026CA 6279204572646F6761- 2584 000026D3 6E2054616E2C203235- 2584 000026DC 2F30392F32303136 2585 000026E4 0D0A00 db 0Dh, 0Ah, 0 2586 _10A2h: 2587 000026E7 0002 dw 512 ; 1024 shr 1 2588 000026E9 0000 dw 0 2589 _10A4h: 2590 000026EB 0020 dw 8192 2591 000026ED 0000 dw 0 2592 _10A6h: 2593 000026EF 0000 dw 0 2594 000026F1 0000 dw 0 2595 2596 SinTable: 2597 000026F3 00 times 64 db 0 2598 CosTable: 2599 00002733 00 times 258 db 0 2600 00002835 0000 Frames dw 0000h 2601 00002837 0000 U dw 0 2602 00002839 0000 CharGen dw 0 2603 0000283B 00000000 SinB dd 0 2604 0000283F 00000000 CosB dd 0 2605 00002843 00000000 II dd 0 2606 00002847 00000000 JJ dd 0 2607 0000284B 00000000 IIAdd dd 0 2608 0000284F 00000000 LL dd 0.0e00 2609 00002853 000080BF BB dd -1.0e00 2610 00002857 6F12033B Const1 dd 2e-03 2611 0000285B EC51B83D Const2 dd 0.09e00 2612 0000285F D7A3A03F Const3 dd 1.255e00 2613 00002863 0AD7233B Const4 dd 0.0025e00 2614 00002867 A46A573F Sin1 dd 0.84147098480791e00 2615 0000286B 40510A3F Cos1 dd 0.54030230586814e00 2616 0000286F 88E7EC3F CosBB dd 1.8508157176809e00 2617 00002873 9A991946 Mult1 dd 9830.4 2618 00002877 0E00 Ker1 dw 14 2619 00002879 F000 Ker2 dw 240 2620 0000287B 8000 XX dw 80h 2621 0000287D 4000 YY dw 40h 2622 0000287F 8040201008040201 MaskTable db 80h, 40h, 20h, 10h, 08h, 04h, 02h, 01h 2623 00002887 FFFF BopQueue: times MaxBops dw -1 2624 00002B43 C0FF Angle dw -1 & 0FFC0h 2625 00002B45 FE07 Phase1 dw 2*1024-PhInc1 2626 00002B47 FD07 Phase2 dw 2*1024-PhInc2 2627 00002B49 0508090B0C0D0D0E0E- BopADDLengths db 5, 8, 9, 11, 12, 13, 13, 14, 14, 15, 15, 15 2627 00002B52 0F0F0F 2628 00002B55 01 times 10 db 1 2629 BopAddTab: 2630 %rep 4 2631 db 1,1,1,1,1 2632 db 1,1,1,2,2,2,2,2 2633 db 1,1,2,2,2,3,3,3,3 2634 db 1,1,2,2,3,3,3,3,3,3,3 2635 db 1,1,2,2,3,3,3,3,4,4,4,4 2636 db 1,1,2,2,3,3,3,4,4,4,4,4,4 2637 db 1,2,2,3,3,3,4,4,4,5,5,5,5 2638 db 1,2,2,3,3,3,4,4,4,5,5,6,6,6 2639 db 1,2,2,3,3,4,4,5,5,5,6,6,6,6 2640 db 1,2,2,3,3,4,4,4,5,5,6,6,7,7,7 2641 db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2642 db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 %endrep 2643 00002B5F 0101010101 <1> db 1,1,1,1,1 2643 00002B64 0101010202020202 <1> db 1,1,1,2,2,2,2,2 2643 00002B6C 010102020203030303 <1> db 1,1,2,2,2,3,3,3,3 2643 00002B75 010102020303030303- <1> db 1,1,2,2,3,3,3,3,3,3,3 2643 00002B7E 0303 <1> 2643 00002B80 010102020303030304- <1> db 1,1,2,2,3,3,3,3,4,4,4,4 2643 00002B89 040404 <1> 2643 00002B8C 010102020303030404- <1> db 1,1,2,2,3,3,3,4,4,4,4,4,4 2643 00002B95 04040404 <1> 2643 00002B99 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,5,5 2643 00002BA2 05050505 <1> 2643 00002BA6 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,6,6,6 2643 00002BAF 0505060606 <1> 2643 00002BB4 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,5,6,6,6,6 2643 00002BBD 0506060606 <1> 2643 00002BC2 010202030304040405- <1> db 1,2,2,3,3,4,4,4,5,5,6,6,7,7,7 2643 00002BCB 050606070707 <1> 2643 00002BD1 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002BDA 060607070707 <1> 2643 00002BE0 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002BE9 060607070707 <1> 2643 00002BEF 0101010101 <1> db 1,1,1,1,1 2643 00002BF4 0101010202020202 <1> db 1,1,1,2,2,2,2,2 2643 00002BFC 010102020203030303 <1> db 1,1,2,2,2,3,3,3,3 2643 00002C05 010102020303030303- <1> db 1,1,2,2,3,3,3,3,3,3,3 2643 00002C0E 0303 <1> 2643 00002C10 010102020303030304- <1> db 1,1,2,2,3,3,3,3,4,4,4,4 2643 00002C19 040404 <1> 2643 00002C1C 010102020303030404- <1> db 1,1,2,2,3,3,3,4,4,4,4,4,4 2643 00002C25 04040404 <1> 2643 00002C29 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,5,5 2643 00002C32 05050505 <1> 2643 00002C36 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,6,6,6 2643 00002C3F 0505060606 <1> 2643 00002C44 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,5,6,6,6,6 2643 00002C4D 0506060606 <1> 2643 00002C52 010202030304040405- <1> db 1,2,2,3,3,4,4,4,5,5,6,6,7,7,7 2643 00002C5B 050606070707 <1> 2643 00002C61 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002C6A 060607070707 <1> 2643 00002C70 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002C79 060607070707 <1> 2643 00002C7F 0101010101 <1> db 1,1,1,1,1 2643 00002C84 0101010202020202 <1> db 1,1,1,2,2,2,2,2 2643 00002C8C 010102020203030303 <1> db 1,1,2,2,2,3,3,3,3 2643 00002C95 010102020303030303- <1> db 1,1,2,2,3,3,3,3,3,3,3 2643 00002C9E 0303 <1> 2643 00002CA0 010102020303030304- <1> db 1,1,2,2,3,3,3,3,4,4,4,4 2643 00002CA9 040404 <1> 2643 00002CAC 010102020303030404- <1> db 1,1,2,2,3,3,3,4,4,4,4,4,4 2643 00002CB5 04040404 <1> 2643 00002CB9 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,5,5 2643 00002CC2 05050505 <1> 2643 00002CC6 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,6,6,6 2643 00002CCF 0505060606 <1> 2643 00002CD4 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,5,6,6,6,6 2643 00002CDD 0506060606 <1> 2643 00002CE2 010202030304040405- <1> db 1,2,2,3,3,4,4,4,5,5,6,6,7,7,7 2643 00002CEB 050606070707 <1> 2643 00002CF1 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002CFA 060607070707 <1> 2643 00002D00 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002D09 060607070707 <1> 2643 00002D0F 0101010101 <1> db 1,1,1,1,1 2643 00002D14 0101010202020202 <1> db 1,1,1,2,2,2,2,2 2643 00002D1C 010102020203030303 <1> db 1,1,2,2,2,3,3,3,3 2643 00002D25 010102020303030303- <1> db 1,1,2,2,3,3,3,3,3,3,3 2643 00002D2E 0303 <1> 2643 00002D30 010102020303030304- <1> db 1,1,2,2,3,3,3,3,4,4,4,4 2643 00002D39 040404 <1> 2643 00002D3C 010102020303030404- <1> db 1,1,2,2,3,3,3,4,4,4,4,4,4 2643 00002D45 04040404 <1> 2643 00002D49 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,5,5 2643 00002D52 05050505 <1> 2643 00002D56 010202030303040404- <1> db 1,2,2,3,3,3,4,4,4,5,5,6,6,6 2643 00002D5F 0505060606 <1> 2643 00002D64 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,5,6,6,6,6 2643 00002D6D 0506060606 <1> 2643 00002D72 010202030304040405- <1> db 1,2,2,3,3,4,4,4,5,5,6,6,7,7,7 2643 00002D7B 050606070707 <1> 2643 00002D81 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002D8A 060607070707 <1> 2643 00002D90 010202030304040505- <1> db 1,2,2,3,3,4,4,5,5,6,6,7,7,7,7 2643 00002D99 060607070707 <1> 2644 LastBopAdd: 2645 00002D9F 00 times 4*144 db 0 2646 BopTab: ; (*) 2647 ; times 10 db 0 ; in reserve for correct alignment 2648 ; times 4 db 0 2649 00002FDF 90 align 16 2650 2651 Last_Word: 2652 2653 Data_Seg Equ 10000h 2654 MapA_Seg Equ 20000h 2655 MapB_Seg Equ 30000h 2656 Sky_Seg Equ 40000h 2657 VRAM_Seg Equ 0A0000h 2658 2659 MapMakeTable Equ 10000h+0 2660 LastMake_ Equ 10000h+120 2661 AddCXTable Equ 10000h+124 2662 AddDXTable Equ 10000h+132 2663 MapCoord_ Equ 10000h+140 2664 W_Divider Equ 10000h+148 2665 2666 VGA_Fonts EQU 16484 2667 2668 section .data ;align=16 2669 2670 _Data_Seg: 2671 00000000 0000 _MapMakeTable: times 41 dw 0 2672 00000052 0100 times 10 dw 1 2673 00000066 0300 times 9 dw 3 2674 00000078 03000000 _LastMake_: dw 0003h, 0000h 2675 0000007C 2000F0FFF8FF0800 _AddCXTable: dw 32, -16, -8, 8 2676 00000084 E0FFF8FF10000800 _AddDXTable: dw -32, -8, 16, 8 2677 0000008C 000004000202FFFE _MapCoord_: dw 0000h, 0004h, 0202h, 0FEFFh 2678 00000094 97DB _W_Divider: dw 0DB97h 2679 2680 _end: