     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 Kytjoki
    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) <arg1 (ebx)>, <arg2 (ecx)>, <arg3 (edx)>
    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 Kytjoki		                    
    96                                  ;						     
    97                                  ; Snail-Mail:  Jari Kytjoki				  
    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 Kytjoki. 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<rept>                EndPicCol:      times	80 db 1Fh 
  2541 00002364 1F<rept>                		times	80 db 1Fh 
  2542 000023B4 1F<rept>                		times	3 db 1Fh 
  2543 000023B7 11                      		db	11h 
  2544 000023B8 1F<rept>                		times	3 db 1Fh 
  2545 000023BB 1C<rept>                		times	66 db 1Ch 
  2546 000023FD 1F11                    		db	1Fh, 11h 
  2547 000023FF 1F<rept>                		times	5 db 1Fh
  2548 00002404 1F<rept>                                times	3 db 1Fh
  2549 00002407 11                      		db	11h, 
  2550 00002408 1F<rept>                		times	3 db 1Fh
  2551 0000240B 1E<rept>                		times	66 db 1Eh 
  2552 0000244D 1F11                    		db	1Fh, 11h
  2553 0000244F 1F<rept>                		times	5 db 1Fh
  2554 00002454 1F<rept>                                times	9 db 1Fh 
  2555 0000245D 1A<rept>                		times	62 db 1Ah 
  2556 0000249B 1F<rept>                		times	9 db 1Fh
  2557 000024A4 1F<rept>                                times	80 db 1Fh
  2558 000024F4 1F<rept>                		times	80 db 1Fh
  2559 00002544 19<rept>                		times	24 db 19h
  2560 0000255C 9E<rept>                		times	5 db 9Eh
  2561 00002561 15<rept>                		times	3 db 15h
  2562 00002564 1A<rept>                		times	4 db 1Ah
  2563 00002568 1D<rept>                		times	9 db 1Dh
  2564 00002571 1F171714                                db	1Fh, 17h, 17h, 14h
  2565 00002575 131C<rept>              		times	5 db 13h, 1Ch
  2566 0000257F 19<rept>                		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<rept>                                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<rept>                                times	64	db 0
  2598                                  CosTable:
  2599 00002733 00<rept>                                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<rept>              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<rept>                               	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<rept>                		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<rept>              _MapMakeTable:  times	41 dw 0
  2672 00000052 0100<rept>              		times	10 dw 1
  2673 00000066 0300<rept>              		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:
