Anonymní profil Matěj Andrle – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Matěj Andrle – Programujte.comAnonymní profil Matěj Andrle – Programujte.com

 

Příspěvky odeslané z IP adresy 78.136.180.–

Matěj Andrle
Assembler › Nekorektní VBR
17. 6. 2013   #178080

Dobrý den,

tak nějak se mi nedaří dát dokupy VBR:

BITS 16

jmp short Boot
nop

OEMLabel db "SMA-BOOT"				; Disk label
BytesPerSector dw 512				; Bytes per sector
SectorsPerCluster db 1				; Sectors per Cluster
ReservedForBoot dw 1				; Reserved sectors for boot record
NumberOfDSPs db 2					; Number of copies of the DSP
RootDirEntries dw 224				; Number of entries in root dir
								; (224 * 32 = 7168 = 14 sectors to read)
LogicalSectors dw 2880				; Number of logical sectors
MediumByte db 0F0h					; Medium descriptor byte
SectorsPerDSP dw 9					; Sectors per DSP
SectorsPerTrack dw 18				; Sectors per track (36/cylinder)
Sides dw 2						; Number of sides/heads
HiddenSectors dd 0					; Number of hidden sectors
LargeSectors dd 0					; Number of LBA sectors
DriveNo dw 0						; Drive No: 0
Signature db 41						; Drive signature: 41 for disk
VolumeID dd 00000000h
VolumeLabel db "SMA-OP     "
FileSystem db "DSP     "

Boot:

	mov ax, 07C0h					; Set up 4K of stack space above Buffer
	add ax, 544					; 8k Buffer = 512 paragraphs + 32 paragraphs (loader)
	cli							; Disable interrupts while changing stack
	mov ss, ax
	mov sp, 4096
	sti							; Restore interrupts

	cmp dl, 0						; A few early BIOSes are reported to improperly set DL
	je NoChange

	mov [bootDev], dl				; Save boot device number
	mov ah, 8h					; Get drive parameters
	int 13h

	jc FataldiskError

NoChange:

	mov eax, 0

DiskOK:

	mov si, Buffer					; Set ES:BX to point to our Buffer (see End of code)
	mov bx, ds
	mov es, bx
	mov bx, si

	mov ah, 2					; Params for int 13h: read disk sectors
	mov al, 14					; And read 14 of them

	pusha						; Prepare to enter loop

	call SMA.Load
	
	jc FataldiskError
	
	mov ax, 0
	mov bx, 0
	mov cx, 0
	mov dx, 0
	mov di, 0
	mov si, 0

	jmp 7c00h

PrintString:

	pusha

	mov ah, 0Eh

.write:

	lodsb

	cmp al, 0
	je .done

	int 10h
	jmp short .write

.done:

	popa
	ret

SMA.Load:

	mov ah, 42h
	mov si, .SMA.Load.Params
	mov dl, 80h
	int 13h

	ret

.SMA.Load.Params:

	dw 10h						; structure length
	dw 38						; sector count
	dw 7c00h 						; buffer address (offset)
	dw 0							; buffer address (segment)
	dd 0							; Secntor number (low 32 bits)
	dd 2							; Sector number (high 32 bits)

FataldiskError:

	mov si, diskError
	call PrintString

Reboot:

	mov ax, 0
	int 16h						; Wait for keystroke

	mov ax, 0
	int 19h

diskError db "Disk error! Press any key...", 0
bootDev db 0						; Boot device number

times 510-($-$$) db 0				; Pad remainder of boot sector with zeros
dw 0AA55h						; Boot signature (DO NOT CHANGE!)

Buffer:							; Disk Buffer begins (8k after this, stack starts)

Nechce se mi počítat hlavy, dráhy atd. Tak se snažím o "Extended Read Sectors From Drive". O co GO? Kernel je hned za VBR, takže pokud se do 42h počítá VBR, je kernel od 1. sektoru po 39. sektor. Pokud se VBR nepočítá, kernel by měl být mezi 0. a 38. sektorem. Takže první věc - počítá se VBR? Druhá věc - proč mi to nefunguje? Doufám, že je problém jen se zařízením, které netuším jak odhledat. Aktuálně bootuji ve VirtualBoxu z PLOP do USB. 80h v tomto případě znamená který disk? (virtuální/USB) Jestli je 80h, které jsem také zkoušel, pro disk, na kterém je onen VBR, tak tím jen líp. Jenže jak jsem psal - ani s 80h to nešlo.

Děkuji.

Děkuji.

Matěj Andrle
Hardware › Nejvhodnější práce s diskem
16. 6. 2013   #178049

Dobrý den,

vytvořil jsem si vlastní souborový systém a vyskytly se 2 hlavní požadavky - zápis a mazání. Tedy co se ukazuje jako nejvhodnější? Mazat pouze z databáze jmen a jim přiřazených atributů? Zapisovat na disk jen obsah - atributy dávat do zmíněné databáze? Atd. Já mám své, které považuji za nejvhodnější, ale přecijen netuším zda byl pro méně vhodné řešení v tom a tom systému nějaký hlubší důvod...

Děkuji.

Matěj Andrle
Hardware › Zápis na na špatný disk
15. 6. 2013   #178047

Dobrý den,

označení disků v Unixu je hold takové, že člověk jen nenapíše 0, nebo ji napíše a hned je to v ... :) Tak jsem na externí disk s jedním NTFS partitionem zapsal BootSector a kernel operačního systému, který vyvíjím. Spustil jsem opravu přes GParted - zdá se, že by to mohl opravit - již přepsal MBR. Alespoň co jsem disassembloval se neshodovalo s disassemlovaným operačním systémem. Bohužel disk má 1TB a trvalo to 2 hodiny - tak jsem to ukončil - že zítra bych to nechal běžet celý den. Přepsaná data jsou stejně ztracena - jedná se jen o 39 * 512 byte => 19MB. To i kdyby bylo cokoliv stojí za záchranu zbylých 500GB. Tak se ptám - nemohl bych jen zapsat MBR a VBR?

Děkuji.

Matěj Andrle
Assembler › Princip adresace BAS
12. 6. 2013   #177862

Pokud mne nechápete - snažím se udělat Framework - proto OOP. Protože pak je JSA zatraceně čitelnější a pomalu se blíží vyšším jazykům. Takže první věc je, že se to dá použít jako Framework - samotná aplikace jen spravuje existující objekty a sama se k nim přiřadí. A druhá věc - mnohem lepší orientace v kódu. Za to mi to prostě stojí...

Matěj Andrle
Assembler › Princip adresace BAS
12. 6. 2013   #177861

Dobrý den,

jediné co mi na assembly vadí je spousta dat mezi řádky... Člověk přesune data do jednoho registru a pak je použije naprosto nesouvisející adresou... Takže třeba při interpretaci jazyka BAS se snažím načíst tyto proměnné:

LOADVAR:
  POKEINT J 65426
  PEEK J 65421
  IF J = 0 THEN $E = "Can't load variables, none stored!"
  IF J = 0 THEN GOSUB FATALERR
  J = J + 65198
  PEEKINT Y J
  J = J - 2
  PEEKINT X J
  J = J - 2
  PEEKINT V J
  J = J - 2
  PEEKINT W J
  J = J - 65202
  POKE J 65421
  J = J + 65200
  PEEKINT J J
RETURN

Příslušný JSA:

%DEFINE VARIABLE 1
%DEFINE StringVar 2
%DEFINE NUMBER 3
%DEFINE STRING 4
%DEFINE QUOTE 5
%DEFINE CHAR 6
%DEFINE UNKNOWN 7
%DEFINE LABEL 8
...

System.CMD.Pokeint:

call GetToken

cmp ax, VARIABLE
je .DataIsvar

cmp ax, NUMBER
jne .error

.DataIsNum:

mov si, token
call Int.Parse
jmp .GetSecond


.DataIsvar:

mov al, [token]
call GetVar

.GetSecond:

mov cx, ax

call GetToken

cmp ax, VARIABLE
je .AddressIsVar

cmp ax, NUMBER
jne .error


.AddressIsNum:

mov si, token
call Int.Parse
jmp .SaveData


.AddressIsVar:

mov al, [token]
call GetVar


.SaveData:

mov si, ax
mov [si], cx

jmp MainLoop


.error:

mov si, ErrSyntax
jmp error

Vtip je v tom, že jsem to napsal v jednom souboru - s pomocí internetu. Ale ač se možná budete divit, úspěšně v Assembly aplikuji OOP. Proto jsem z funkcí interpretu BAS udělal objekty - separoval je do souborů a vytvořil vazby předáváním vstupu a vydáváním výstupu. (Tedy toto mne od této práce odtrhlo - bez zkoušek to dokupy nedám.) Jenže to samozřejmě narušilo nějakou meziřádkovou adresaci. Pokus praví, že když to dám do jednoho souboru, opět to jede. Napište, mám-li poslat celý interpret. Jinak BAS jazykem myslím BAS DOSu.
Děkuji.

Matěj Andrle
Assembler › Disassembling - stringy
12. 6. 2013   #177860

Kde? :)

Já si zdrojáky stáhl - z oficiálních stránek. A tam byla složka s txt dokumentací a další se sys a com soubory a z toho mnohé sys a com již přeložené...

Matěj Andrle
Assembler › Disassembling - stringy
11. 6. 2013   #177839

Doufal jsem, že existují - je to z Freedosu... Potřebuji instrukční popis Fat32/NTFS/EX4 - prostě něco lepšího, než VFAT... (Nejraději bych EXT4.) FAT32 instrukční popis jsem sice kdysi našel - ale když už vím, o co šlo, nevím, kde to bylo... :) Navíc jak jsem psal - raději EXT4 a když už ne EXT, tak NTFS... Potřebuji zařídit najití kernelového souboru z BootSectoru a jeho spuštění. Z funkcí kernelu pak zápis na disk a čtení z disku... Prostě jak jsem psal - instukční a adresový popis... A i když se mi podařilo doplácat VFAT, netuším, jak se dosat z hlavního adresáře k podadresářům... (clustery a sectory mám - ale úspěšně pracuji jen s hlavním adresářem...)

Matěj Andrle
Assembler › Disassembling - stringy
11. 6. 2013   #177803

Nějak se vytratil dotaz:

Jak dostat proměnné a názvy bloků? (Ve formátu string.)

Děkuji.

Matěj Andrle
Assembler › Disassembling - stringy
11. 6. 2013   #177802

Dobrý den,

dostal jsem toto:

00000000  EB1B              jmp short 0x1d
00000002  43                inc bx
00000003  4F                dec di
00000004  4E                dec si
00000005  46                inc si
00000006  49                dec cx
00000007  47                inc di
00000008  1300              adc ax,[bx+si]
0000000A  0001              add [bx+di],al
0000000C  0200              add al,[bx+si]
0000000E  0100              add [bx+si],ax
00000010  6E                outsb
00000011  7573              jnz 0x86
00000013  65640807          or [fs:bx],al
00000017  06                push es
00000018  050403            add ax,0x304
0000001B  0201              add al,[bx+di]
0000001D  E974B1            jmp word 0xb194
00000020  B99058            mov cx,0x5890
00000023  BE1EB1            mov si,0xb11e
00000026  89F7              mov di,si
00000028  1E                push ds
00000029  A9B580            test ax,0x80b5
0000002C  8CC8              mov ax,cs
0000002E  050500            add ax,0x5
00000031  8ED8              mov ds,ax
00000033  057406            add ax,0x674
00000036  8EC0              mov es,ax
00000038  FD                std
00000039  F3A5              rep movsw
0000003B  FC                cld
0000003C  2E806C1210        sub byte [cs:si+0x12],0x10
00000041  73E7              jnc 0x2a
00000043  92                xchg ax,dx
00000044  AF                scasw
00000045  AD                lodsw
00000046  0E                push cs
00000047  0E                push cs
00000048  06                push es
00000049  1F                pop ds
0000004A  07                pop es
0000004B  16                push ss
0000004C  BD0100            mov bp,0x1
0000004F  BB0F80            mov bx,0x800f
00000052  55                push bp
00000053  CB                retf
00000054  005550            add [di+0x50],dl
00000057  58                pop ax
00000058  210D              and [di],cx
0000005A  0303              add ax,[bp+di]
0000005C  0ADE              or bl,dh
0000005E  06                push es
0000005F  5D                pop bp
00000060  97                xchg ax,di
00000061  C1CDAA            ror bp,0xaa
00000064  845404            test [si+0x4],dl
00000067  0190B000          add [bx+si+0xb0],dx
0000006B  7404              jz 0x71
0000006D  0100              add [bx+si],ax
0000006F  E1FF              loope 0x70
00000071  EB0E              jmp short 0x81
00000073  43                inc bx
00000074  4F                dec di
00000075  4E                dec si
00000076  46                inc si
00000077  49                dec cx
00000078  47                inc di
00000079  FB                sti
0000007A  06                push es
0000007B  0000              add [bx+si],al
0000007D  0102              add [bp+si],ax
0000007F  027F00            add bh,[bx+0x0]
00000082  50                push ax
00000083  53                push bx
00000084  9C                pushfw
00000085  B831FF            mov ax,0xff31
00000088  0E                push cs
00000089  BBF000            mov bx,0xf0
0000008C  CD10              int 0x10
0000008E  9D                popfw
0000008F  5B                pop bx
00000090  FB                sti
00000091  58                pop ax
00000092  EAE09A5715        jmp word 0x1557:0x9ae0
00000097  59                pop cx
00000098  00401F            add [bx+si+0x1f],al
0000009B  E8EA04            call word 0x588
0000009E  6306E327          arpl [0x27e3],ax
000000A2  DC27              fsub qword [bx]
000000A4  D527              aad 0x27
000000A6  CE                into
000000A7  BF0435            mov di,0x3504
000000AA  CB                retf
000000AB  EB9F              jmp short 0x4c
000000AD  104B42            adc [bp+di+0x42],cl
000000B0  E400              in al,0x0
000000B2  EBF4              jmp short 0xa8
000000B4  3DBD04            cmp ax,0x4bd
000000B7  97                xchg ax,di
000000B8  14DF              adc al,0xdf
000000BA  21C8              and ax,cx
000000BC  A80C              test al,0xc
000000BE  CA8793            retf 0x9387
000000C1  2032              and [bp+si],dh
000000C3  B51C              mov ch,0x1c
000000C5  7E80              jng 0x47
000000C7  C8A07269          enter 0x72a0,0x69
000000CB  035E21            add bx,[bp+0x21]
000000CE  C8540C49          enter 0xc54,0x49
000000D2  873F              xchg di,[bx]
000000D4  2032              and [bp+si],dh
000000D6  341C              xor al,0x1c
000000D8  2A80C81F          sub al,[bx+si+0x1fc8]
000000DC  7215              jc 0xf3
000000DE  030A              add cx,[bp+si]
000000E0  21FC              and sp,di
000000E2  0004              add [si],al
000000E4  CB                retf
000000E5  0010              add [bx+si],dl
000000E7  3C1E              cmp al,0x1e
000000E9  13F3              adc si,bx
000000EB  15CF19            adc ax,0x19cf
000000EE  1B25              sbb sp,[di]
000000F0  77D9              ja 0xcb
000000F2  127F31            adc bh,[bx+0x31]
000000F5  C08ED8A096        ror byte [bp-0x5f28],0x96
000000FA  04FF              add al,0xff
000000FC  2410              and al,0x10
000000FE  2EA22A01          mov [cs:0x12a],al
00000102  E995FF            jmp word 0x9a
00000105  01E3              add bx,sp
00000107  06                push es
00000108  E81800            call word 0x123
0000010B  AA                stosb
0000010C  E2FE              loop 0x10c
0000010E  FA                cli
0000010F  E98A01            jmp word 0x29c
00000112  2E8A265FCD        mov ah,[cs:0xcd5f]
00000117  16                push ss
00000118  3CE0              cmp al,0xe0
0000011A  FF7506            push word [di+0x6]
0000011D  08E4              or ah,ah
0000011F  7402              jz 0x123
00000121  B000              mov al,0x0
00000123  B7C3              mov bh,0xc3
00000125  2C2E              sub al,0x2e
00000127  86FF              xchg bh,bh
00000129  06                push es
0000012A  2901              sub [bx+di],ax
0000012C  08C0              or al,al
0000012E  7517              jnz 0x147
00000130  E8FFE0            call word 0xe232
00000133  FF09              dec word [bx+di]
00000135  C0                db 0xc0
00000136  74EE              jz 0x126
00000138  3D00DB            cmp ax,0xdb00
0000013B  7275              jc 0x1b2
0000013D  1910              sbb [bx+si],dx
0000013F  7711              ja 0x152
00000141  052E88            add ax,0x882e
00000144  B726              mov bh,0x26
00000146  1AC3              sbb al,bl
00000148  2EB1A0            cs mov cl,0xa0
0000014B  1F                pop ds
0000014C  DB1EB43E          fistp dword [0x3eb4]
00000150  0223              add ah,[bp+di]
00000152  74EE              jz 0x142
00000154  24E8              and al,0xe8
00000156  BC2A6F            mov sp,0x6f2a
00000159  1F                pop ds
0000015A  E8AEFF            call word 0x10b
0000015D  D8EB              fsubr st3
0000015F  E12F              loope 0x190
00000161  3F                aas
00000162  2EC51E0902        lds bx,[cs:0x209]
00000167  FF807F02          inc word [bx+si+0x27f]
0000016B  06                push es
0000016C  7403              jz 0x171
0000016E  8847ED            mov [bx-0x13],al
00000171  0DE91E            or ax,0x1ee9
00000174  79FF              jns 0x175
00000176  2F                das
00000177  01E8              add ax,bp
00000179  0300              add ax,[bx+si]
0000017B  E91501            jmp word 0x293
0000017E  7562              jnz 0x1e2
00000180  A2AC41            mov [0x41ac],al
00000183  3DB636            cmp ax,0x36b6
00000186  CB                retf
00000187  77F0              ja 0x179
00000189  6F                outsw
0000018A  0F                db 0x0f
0000018B  C3                ret
0000018C  E3D9              jcxz 0x167
0000018E  FF268A05          jmp word [0x58a]
00000192  47                inc di
00000193  CD29              int 0x29
00000195  E2F8              loop 0x18f
00000197  FB                sti
00000198  E9EF00            jmp word 0x28a
0000019B  2EC686BF03CF      mov byte [cs:bp+0x3bf],0xcf
000001A1  50                push ax
000001A2  56                push si
000001A3  57                push di
000001A4  55                push bp
000001A5  C6                db 0xc6
000001A6  53                push bx
000001A7  B4D8              mov ah,0xd8
000001A9  CD07              int 0x7
000001AB  5B                pop bx
000001AC  FF5D5F            call word far [di+0x5f]
000001AF  5E                pop si
000001B0  58                pop ax
000001B1  CF                iretw
000001B2  1E                push ds
000001B3  50                push ax
000001B4  B8FF40            mov ax,0x40ff
000001B7  008ED880          add [bp-0x7f28],cl
000001BB  0E                push cs
000001BC  7100              jno 0x1be
000001BE  F280581FCF        repne sbb byte [bx+si+0x1f],0xcf
000001C3  7B2E              jpo 0x1f3
000001C5  896DBF            mov [di-0x41],bp
000001C8  2E8C060B02        mov [cs:0x20b],es
000001CD  CB                retf
000001CE  FF56BE            call word [bp-0x42]
000001D1  2206EB47          and al,[0x47eb]
000001D5  56                push si
000001D6  50                push ax
000001D7  6E                outsb
000001D8  66EB16            o32 jmp short 0x1f1
000001DB  DD05              fld qword [di]
000001DD  30C0              xor al,al
000001DF  A9582B            test ax,0x2b58
000001E2  5B                pop bx
000001E3  07                pop es
000001E4  B0F9              mov al,0xf9
000001E6  01B402EB          add [si-0x14fe],si
000001EA  06                push es
000001EB  BF02B4            mov di,0xb402
000001EE  03BE5206          add di,[bp+0x652]
000001F2  74C9              jz 0x1bd
000001F4  112D              adc [di],bp
000001F6  5A                pop dx
000001F7  22FB              and bh,bl
000001F9  1F                pop ds
000001FA  EB12              jmp short 0x20e
000001FC  1DF7EB            sbb ax,0xebf7
000001FF  0C1B              or al,0x1b
00000201  B121              mov cl,0x21
00000203  FB                sti
00000204  03EB              add bp,bx
00000206  00BE3A42          add [bp+0x423a],bh
0000020A  6D                insw
0000020B  0548FB            add ax,0xfb48
0000020E  20065051          and [0x5150],al
00000212  52                push dx
00000213  7F7B              jg 0x290
00000215  1E                push ds
00000216  06                push es
00000217  53                push bx
00000218  B176              mov cl,0x76
0000021A  0D02D1            or ax,0xd102
0000021D  3F                aas
0000021E  2EF60480          test byte [cs:si],0x80
00000222  74ED              jz 0x211
00000224  208A4708          and [bp+si+0x847],cl
00000228  FF                db 0xff
00000229  3A04              cmp al,[si]
0000022B  7762              ja 0x28f
0000022D  98                cbw
0000022E  D1E0              shl ax,1
00000230  01FF              add di,di
00000232  C6                db 0xc6
00000233  97                xchg ax,di
00000234  1E                push ds
00000235  53                push bx
00000236  89E5              mov bp,sp
00000238  2E8EFF            cs mov segr7,di
0000023B  1E                push ds
0000023C  27                daa
0000023D  01FC              add sp,di
0000023F  2EFF5401          call word [cs:si+0x1]
00000243  C25959            ret 0x5959
00000246  D3                db 0xd3
00000247  B71F              mov bh,0x1f
00000249  018AFF67          add [bp+si+0x67ff],cx
0000024D  0D8B4F            or ax,0x4f8b
00000250  128B5714          adc cl,[bp+di+0x1457]
00000254  B097              mov al,0x97
00000256  2C64              sub al,0x64
00000258  35FBC4            xor ax,0xc4fb
0000025B  7F0E              jg 0x26b
0000025D  2B0F              sub cx,[bx]
0000025F  64016252          add [fs:bp+si+0x52],sp
00000263  DFA88947          fild qword [bx+si+0x4789]
00000267  12B4660B          adc dh,[si+0xb66]
0000026B  DF09              fisttp word [bx+di]
0000026D  035B07            add bx,[bp+di+0x7]
00000270  1F                pop ds
00000271  6F                outsw
00000272  E75A              out 0x5a,ax
00000274  59                pop cx
00000275  58                pop ax
00000276  DB5ECB            fistp dword [bp-0x35]
00000279  A9EBB5            test ax,0xb5eb
0000027C  EA8D8D1729        jmp word 0x2917:0x8d8d
00000281  BF4AB4            mov di,0xb44a
00000284  81EBDC2E          sub bx,0x2edc
00000288  DB8B1687          fisttp dword [bp+di-0x78ea]
0000028C  C3                ret
0000028D  F05A              lock pop dx
0000028F  0FDF11            pandn mm2,[bx+di]
00000292  BDD85A            mov bp,0x5ad8
00000295  10E7              adc bh,ah
00000297  DE05              fiadd word [di]
00000299  9C                pushfw
0000029A  53                push bx
0000029B  BB02DB            mov bx,0xdb02
0000029E  260506B7          es add ax,0xb706
000002A2  FC                cld
000002A3  02AC7F89          add ch,[si-0x7681]
000002A7  E08C              loopne 0x235
000002A9  D29C59FA          rcr byte [si-0x5a7],cl
000002AD  6C                insb
000002AE  61                popaw
000002AF  16                push ss
000002B0  AD                lodsw
000002B1  2CFE              sub al,0xfe
000002B3  27                daa
000002B4  51                push cx
000002B5  9D                popfw
000002B6  50                push ax
000002B7  52                push dx
000002B8  1E                push ds
000002B9  55                push bp
000002BA  17                pop ss
000002BB  42                inc dx
000002BC  06                push es
000002BD  0FECA00FA8        paddsb mm4,[bx+si-0x57f1]
000002C2  765B              jna 0x31f
000002C4  7536              jnz 0x2fc
000002C6  0A23              or ah,[bp+di]
000002C8  E90409            jmp word 0xbcf
000002CB  B65F              mov dh,0x5f
000002CD  02ABEE2E          add ch,[bp+di+0x2eee]
000002D1  C45DBB            les bx,[di-0x45]
000002D4  26760F            es jna 0x2e6
000002D7  A9E10F            test ax,0xfe1
000002DA  A1075F            mov ax,[0x5f07]
000002DD  7F5D              jg 0x33c
000002DF  1F                pop ds
000002E0  5A                pop dx
000002E1  58                pop ax
000002E2  FA                cli
000002E3  8EEE              mov gs,si
000002E5  D289C481          ror byte [bx+di-0x7e3c],cl
000002E9  FE                db 0xfe
000002EA  5B                pop bx
000002EB  9D                popfw
000002EC  CB                retf
000002ED  E315              jcxz 0x304
000002EF  E89B3B            call word 0x3e8d
000002F2  40                inc ax
000002F3  8607              xchg al,[bx]
000002F5  0DF007            or ax,0x7f0
000002F8  8D                db 0x8d
000002F9  E8811B            call word 0x1e7d
000002FC  25788D            and ax,0x8d78
000002FF  F9                stc
00000300  3AF0              cmp dh,al
00000302  F6E9              imul cl
00000304  4F                dec di
00000305  FF                db 0xff
00000306  BF4EE8            mov di,0xe84e
00000309  58                pop ax
0000030A  00F6              add dh,dh
0000030C  C4                db 0xc4
0000030D  FC                cld
0000030E  0E                push cs
0000030F  740A              jz 0x31b
00000311  83C402            add sp,byte +0x2
00000314  2F                das
00000315  45                inc bp
00000316  0CB0              or al,0xb0
00000318  E9FE55            jmp word 0x5919
0000031B  FFC3              inc bx
0000031D  E86E00            call word 0x38e
00000320  8AFE              mov bh,dh
00000322  2A08              sub cl,[bx+si]
00000324  E836EF            call word 0xf25d
00000327  1B01              sbb ax,[bx+di]
00000329  741F              jz 0x34a
0000032B  E9F626            jmp word 0x2a24
0000032E  FF                db 0xff
0000032F  E85A13            call word 0x168c
00000332  7C10              jl 0x344
00000334  E8228F            call word 0x9259
00000337  0BE8              or bp,ax
00000339  C3                ret
0000033A  2F                das
0000033B  46                inc si
0000033C  0088FD07          add [bx+si+0x7fd],cl
00000340  E9B5FD            jmp word 0xf8
00000343  E91BBF            jmp word 0xc261
00000346  0A0C              or cl,[si]
00000348  00A82074          add [bx+si+0x7420],ch
0000034C  B5F6              mov ch,0xf6
0000034E  19BE04F1          sbb [bp-0xefc],di
00000352  E9F8FE            jmp word 0x24d
00000355  DA                db 0xda
00000356  F3E8D6CC          rep call word 0xd030
0000035A  47                inc di
0000035B  FB                sti
0000035C  15FFCD            adc ax,0xcdff
0000035F  1405              adc al,0x5
00000361  7820              js 0x383
00000363  00C6              add dh,al
00000365  5F                pop di
00000366  F7E9              imul cx
00000368  E3FE              jcxz 0x368
0000036A  E38F              jcxz 0x2fb
0000036C  8F                db 0x8f
0000036D  180B              sbb [bp+di],cl
0000036F  22E8              and ch,al
00000371  DA                db 0xda
00000372  E6FF              out 0xff,al
00000374  27                daa
00000375  17                pop ss
00000376  7E05              jng 0x37d
00000378  B0FF              mov al,0xff
0000037A  0AE9              or ch,cl
0000037C  E8FEE2            call word 0xe67d
0000037F  EBE9              jmp short 0x36a
00000381  C9                leave
00000382  FE                db 0xfe
00000383  FE                db 0xfe
00000384  E8ECFE            call word 0x273
00000387  89D3              mov bx,dx
00000389  81171110          adc word [bx],0x1011
0000038D  C3                ret
0000038E  0201              add al,[bx+di]
00000390  B001              mov al,0x1
00000392  70E3              jo 0x377
00000394  17                pop ss
00000395  B711              mov bh,0x11
00000397  009D6D2E          add [di+0x2e6d],bl
0000039B  007275            add [bp+si+0x75],dh
0000039E  36B42D            ss mov ah,0x2d
000003A1  2F                das
000003A2  24BF              and al,0xbf
000003A4  090647E2          or [0xe247],ax
000003A8  E9E9FE            jmp word 0x294
000003AB  9AFE4B75E6        call word 0xe675:0x4bfe
000003B0  E9AEDB            jmp word 0xdf61
000003B3  3411              xor al,0x11
000003B5  107BF8            adc [bp+di-0x8],bh
000003B8  B009              mov al,0x9
000003BA  72B7              jc 0x373
000003BC  75F1              jnz 0x3af
000003BE  4F                dec di
000003BF  3B13              cmp dx,[bp+di]
000003C1  94                xchg ax,sp
000003C2  FE                db 0xfe
000003C3  7730              ja 0x3f5
000003C5  A1FECD            mov ax,[0xcdfe]
000003C8  FE                db 0xfe
000003C9  17                pop ss
000003CA  88E0              mov al,ah
000003CC  2430              and al,0x30
000003CE  3C30              cmp al,0x30
000003D0  DD5F74            fstp qword [bx+0x74]
000003D3  10B11829          adc [bx+di+0x2918],dh
000003D7  B70F              mov bh,0xf
000003D9  7424              jz 0x3ff
000003DB  BA0D02            mov dx,0x20d
000003DE  D82D              fsubr dword [di]
000003E0  3C51              cmp al,0x51
000003E2  77BF              ja 0x3a3
000003E4  07                pop es
000003E5  1F                pop ds
000003E6  89FE              mov si,di
000003E8  51                push cx
000003E9  53                push bx
000003EA  D2                db 0xd2
000003EB  31DB              xor bx,bx
000003ED  36                ss
000003EE  C6                db 0xc6
000003EF  1E                push ds
000003F0  3DE1D1            cmp ax,0xd1e1
000003F3  E360              jcxz 0x455
000003F5  7D8F              jnl 0x386
000003F7  1204              adc al,[si]
000003F9  5B                pop bx
000003FA  C9                leave
000003FB  CE                into
000003FC  0B5D46            or bx,[di+0x46]
000003FF  E1FF              loope 0x400
00000401  F65974            neg byte [bx+di+0x74]
00000404  17                pop ss
00000405  AC                lodsb
00000406  30E4              xor ah,ah
00000408  E8B7B5            call word 0xb9c2
0000040B  0F                db 0x0f
0000040C  0FE2C2            psrad mm0,mm2
0000040F  D81F              fcomp dword [bx]
00000411  B71F              mov bh,0x1f
00000413  E923FE            jmp word 0x239
00000416  B259              mov dl,0x59
00000418  0CF0              or al,0xf0
0000041A  38FE              cmp dh,bh
0000041C  B371              mov bl,0x71
0000041E  3E7A80            ds jpe 0x3a1
00000421  7D0D              jnl 0x430
00000423  055E19            add ax,0x195e
00000426  E91FFE            jmp word 0x248
00000429  DFA2450E          fbld tword [bp+si+0xe45]
0000042D  26                es
0000042E  C4                db 0xc4
0000042F  D87D13            fdivr dword [di+0x13]
00000432  55                push bp
00000433  5F                pop di
00000434  3C65              cmp al,0x65
00000436  74FF              jz 0x437
00000438  07                pop es
00000439  3C45              cmp al,0x45
0000043B  75DF              jnz 0x41c
0000043D  268B0D            mov cx,[es:di]
00000440  1ADA              sbb bl,dl
00000442  E00F              loopne 0x453
00000444  A9A142            test ax,0x42a1
00000447  71DB              jno 0x424
00000449  FD                std
0000044A  BC67E3            mov sp,0xe367
0000044D  368B2A            mov bp,[ss:bp+si]
00000450  B5D6              mov ch,0xd6
00000452  0908              or [bx+si],cx
00000454  0F83EB13          jnc word 0x1843
00000458  FA                cli
00000459  52                push dx
0000045A  50                push ax
0000045B  1E                push ds
0000045C  8CC8              mov ax,cs
0000045E  5B                pop bx
0000045F  0DA1F2            or ax,0xf2a1
00000462  753B              jnz 0x49f
00000464  06                push es
00000465  B8ED76            mov ax,0x76ed
00000468  2B51FE            sub dx,[bx+di-0x2]
0000046B  A102FC            mov ax,[0xfc02]
0000046E  41                inc cx
0000046F  B9158B            mov cx,0x8b15
00000472  265B              es pop bx
00000474  1BA14B19          sbb sp,[bx+di+0x194b]
00000478  29B70608          sub [bx+0x806],si
0000047C  9C                pushfw
0000047D  FF                db 0xff
0000047E  EE                out dx,al
0000047F  1F                pop ds
00000480  FA                cli
00000481  0107              add [bx],ax
00000483  C3                ret
00000484  58                pop ax
00000485  5A                pop dx
00000486  D9                db 0xd9
00000487  DB1F              fistp dword [bx]
00000489  06                push es
0000048A  5B                pop bx
0000048B  0DB3CF            or ax,0xcfb3
0000048E  7715              ja 0x4a5
00000490  EBF3              jmp short 0x485
00000492  5A                pop dx
00000493  D6                salc
00000494  057046            add ax,0x4670
00000497  FC                cld
00000498  800F02            or byte [bx],0x2
0000049B  1A02              sbb al,[bp+si]
0000049D  1D4F20            sbb ax,0x204f
000004A0  7D00              jnl 0x4a2
000004A2  6C                insb
000004A3  D911              fst dword [bx+di]
000004A5  40                inc ax
000004A6  A07C20            mov al,[0x207c]
000004A9  025052            add dl,[bx+si+0x52]
000004AC  9D                popfw
000004AD  7ED3              jng 0x482
000004AF  2300              and ax,[bx+si]
000004B1  7C46              jl 0x4f9
000004B3  024155            add al,[bx+di+0x55]
000004B6  58                pop ax
000004B7  8C9082DF          mov [bx+si-0x207e],ss
000004BB  644C              fs dec sp
000004BD  50                push ax
000004BE  54                push sp
000004BF  317C11            xor [si+0x11],di
000004C2  A2832E            mov [0x2e83],al
000004C5  3C32              cmp al,0x32
000004C7  F2B40C            repne mov ah,0xc
000004CA  36F733            div word [ss:bp+di]
000004CD  47                inc di
000004CE  C9                leave
000004CF  C6                db 0xc6
000004D0  2D6BDF            sub ax,0xdf6b
000004D3  4D                dec bp
000004D4  3111              xor [bx+di],dx
000004D6  D820              fsub dword [bx+si]
000004D8  CF                iretw
000004D9  4C                dec sp
000004DA  323C              xor bh,[si]
000004DC  EA83523C33        jmp word 0x333c:0x5283
000004E1  F2FC              repne cld
000004E3  0C58              or al,0x58
000004E5  F334E5            rep xor al,0xe5
000004E8  0E                push cs
000004E9  06                push es
000004EA  9B0808            wait or [bx+si],cl
000004ED  03FC              add di,sp
000004EF  43                inc bx
000004F0  4C                dec sp
000004F1  4F                dec di
000004F2  43                inc bx
000004F3  4B                dec bx
000004F4  24B7              and al,0xb7
000004F6  FF00              inc word [bx+si]
000004F8  6D                insw
000004F9  C20811            ret 0x1108
000004FC  C00F03            ror byte [bx],0x3
000004FF  EC                in al,dx
00000500  F1                int1
00000501  01FE              add si,di
00000503  0A2B              or ch,[bp+di]
00000505  01D0              add ax,dx
00000507  025FE8            add bl,[bx-0x18]
0000050A  023B              add bh,[bp+di]
0000050C  019B7BB5          add [bp+di-0x4a85],bx
00000510  0199D4AD          add [bx+di-0x522c],bx
00000514  0F                db 0x0f
00000515  17                pop ss
00000516  C9                leave
00000517  D002              rol byte [bp+si],1
00000519  FF6703            jmp word [bx+0x3]
0000051C  AA                stosb
0000051D  039603E4          add dx,[bp-0x1bfd]
00000521  DD03              fld qword [bp+di]
00000523  ED                in ax,dx
00000524  01C9              add cx,cx
00000526  5B                pop bx
00000527  99                cwd
00000528  186117            sbb [bx+di+0x17],ah
0000052B  F6C602            test dh,0x2
0000052E  E409              in al,0x9
00000530  3B1A              cmp bx,[bp+si]
00000532  0401              add al,0x1
00000534  763C              jna 0x572
00000536  0415              add al,0x15
00000538  6F                outsw
00000539  05CF74            add ax,0x74cf
0000053C  04BA              add al,0xba
0000053E  B004              mov al,0x4
00000540  27                daa
00000541  E2E8              loop 0x52b
00000543  42                inc dx
00000544  61                popaw
00000545  44                inc sp
00000546  B97100            mov cx,0x71
00000549  0102              add [bp+si],ax
0000054B  6E                outsb
0000054C  0317              add dx,[bx]
0000054E  7B9F              jpo 0x4ef
00000550  17                pop ss
00000551  23BE48D7          and di,[bp-0x28b8]
00000555  02C0              add al,al
00000557  1535BF            adc ax,0xbf35
0000055A  61                popaw
0000055B  6211              bound dx,[bx+di]
0000055D  6D                insw
0000055E  114EC2            adc [bp-0x3e],cx
00000561  55                push bp
00000562  4C                dec sp
00000563  6B2C1C            imul bp,[si],byte +0x1c
00000566  06                push es
00000567  01C5              add bp,ax
00000569  0185002C          add [di+0x2c00],ax
0000056D  62366B36          bound si,[0x366b]
00000571  050183            add ax,0x8301
00000574  127278            adc dh,[bp+si+0x78]
00000577  17                pop ss
00000578  47                inc di
00000579  AC                lodsb
0000057A  3B03              cmp ax,[bp+di]
0000057C  AC                lodsb
0000057D  DA19              ficomp dword [bx+di]
0000057F  11B829EC          adc [bx+si-0x13d7],di
00000583  055F73            add ax,0x735f
00000586  2103              and [bp+di],ax
00000588  3E03EC            ds add bp,sp
0000058B  B600              mov dh,0x0
0000058D  8C3F              mov [bx],segr7
0000058F  96                xchg ax,si
00000590  00E4              add ah,ah
00000592  050088            add ax,0x8800
00000595  29B08085          sub [bx+si-0x7a80],si
00000599  00982FE1          add [bx+si-0x1ed1],bl
0000059D  9E                sahf
0000059E  8BAF012F          mov bp,[bx+0x2f01]
000005A2  000C              add [si],cl
000005A4  90                nop
000005A5  0DD835            or ax,0x35d8
000005A8  47                inc di
000005A9  016118            add [bx+di+0x18],sp
000005AC  4C                dec sp
000005AD  017A87            add [bp+si-0x79],di
000005B0  3DD981            cmp ax,0x81d9
000005B3  0011              add [bx+di],dl
000005B5  1F                pop ds
000005B6  BE033E            mov si,0x3e03
000005B9  C9                leave
000005BA  0400              add al,0x0
000005BC  053290            add ax,0x9032
000005BF  01550C            add [di+0xc],dx
000005C2  00851513          add [di+0x1315],al
000005C6  02FF              add bh,bh
000005C8  43                inc bx
000005C9  52                push dx
000005CA  656D              gs insw
000005CC  6F                outsw
000005CD  7665              jna 0x634
000005CF  20FE              and dh,bh
000005D1  6469736B6574      imul si,[fs:bp+di+0x6b],word 0x7465
000005D7  74DD              jz 0x5b6
000005D9  08696E            or [bx+di+0x6e],ch
000005DC  BB0B72            mov bx,0x720b
000005DF  6911BA58          imul dx,[bx+di],word 0x58ba
000005E3  3A0A              cmp cl,[bp+si]
000005E5  0F                db 0x0f
000005E6  0C60              or al,0x60
000005E8  004DB5            add [di-0x4b],cl
000005EB  16                push ss
000005EC  1BF7              sbb si,di
000005EE  DA14              ficom dword [si]
000005F0  D903              fld dword [bp+di]
000005F2  A3810A            mov [0xa81],ax
000005F5  A94096            test ax,0x9640
000005F8  E281              loop 0x57b
000005FA  8F457A            pop word [di+0x7a]
000005FD  B60D              mov dh,0xd
000005FF  5E                pop si
00000600  FE04              inc byte [si]
00000602  7506              jnz 0x60a
00000604  26C74712DEEA      mov word [es:bx+0x12],0xeade
0000060A  26814F21697F      or word [es:bx+0x21],0x7f69
00000610  5B                pop bx
00000611  07                pop es
00000612  CB                retf
00000613  CF                iretw
00000614  E887FA            call word 0x9e
00000617  00CB              add bl,cl
00000619  EA611426A6        jmp word 0xa626:0x1461
0000061E  F700EAA3          test word [bx+si],0xa3ea
00000622  0107              add [bx],ax
00000624  4B                dec bx
00000625  76A5              jna 0x5cc
00000627  3C6E              cmp al,0x6e
00000629  B96502            mov cx,0x265
0000062C  A5                movsw
0000062D  669E              o32 sahf
0000062F  5D                pop bp
00000630  5E                pop si
00000631  59                pop cx
00000632  4C                dec sp
00000633  ED                in ax,dx
00000634  56                push si
00000635  1F                pop ds
00000636  9E                sahf
00000637  344E              xor al,0x4e
00000639  D907              fld dword [bx]
0000063B  82                db 0x82
0000063C  E546              in ax,0x46
0000063E  9E                sahf
0000063F  873E5CD5          xchg di,[0xd55c]
00000643  00D2              add dl,dl
00000645  36E6EE            ss out 0xee,al
00000648  03972E10          add dx,[bx+0x102e]
0000064C  1034              adc [si],dh
0000064E  26B93513          es mov cx,0x1335
00000652  A5                movsw
00000653  1E                push ds
00000654  9E                sahf
00000655  E616              out 0x16,al
00000657  116CDB            adc [si-0x25],bp
0000065A  B405              mov ah,0x5
0000065C  96                xchg ax,si
0000065D  FF                db 0xff
0000065E  FE                db 0xfe
0000065F  1E                push ds
00000660  FF11              call word [bx+di]
00000662  5B                pop bx
00000663  CB                retf
00000664  B406              mov ah,0x6
00000666  8B69AD            mov bp,[bx+di-0x53]
00000669  FF0C              dec word [si]
0000066B  D006502E          rol byte [0x2e50],1
0000066F  7411              jz 0x682
00000671  12DF              adc bl,bh
00000673  0406              add al,0x6
00000675  1312              adc dx,[bp+si]
00000677  3EBBA1A4          ds mov bx,0xa4a1
0000067B  3B066E3F          cmp ax,[0x3f6e]
0000067F  7528              jnz 0x6a9
00000681  D9                db 0xd9
00000682  0A02              or al,[bp+si]
00000684  E512              in ax,0x12
00000686  96                xchg ax,si
00000687  1D0479            sbb ax,0x7904
0000068A  1465              adc al,0x65
0000068C  129E0616          adc bl,[bp+0x1606]
00000690  5F                pop di
00000691  07                pop es
00000692  9A03120BB0        call word 0xb00b:0x1203
00000697  EBFF              jmp short 0x698
00000699  C3                ret
0000069A  58                pop ax
0000069B  07                pop es
0000069C  1F                pop ds
0000069D  C3                ret
0000069E  2E833E6B5212      cmp word [cs:0x526b],byte +0x12
000006A4  6E                outsb
000006A5  0807              or [bx],al
000006A7  B701              mov bh,0x1
000006A9  307407            xor [si+0x7],dh
000006AC  EE                out dx,al
000006AD  50                push ax
000006AE  9A0D1BFF58        call word 0x58ff:0x1b0d
000006B3  CF                iretw
000006B4  B003              mov al,0x3
000006B6  CF                iretw
000006B7  45                inc bp
000006B8  7272              jc 0x72c
000006BA  C7                db 0xc7
000006BB  6F                outsw
000006BC  7209              jc 0x6c7
000006BE  E374              jcxz 0x734
000006C0  68077F            push word 0x7f07
000006C3  44                inc sp
000006C4  4A                dec dx
000006C5  206D65            and [di+0x65],ch
000006C8  63E3              arpl bx,sp
000006CA  68616E            push word 0x6e61
000006CD  21716D            and [bx+di+0x6d],si
000006D0  21BF1249          and [bx+0x4912],di
000006D4  6E                outsb
000006D5  7365              jnc 0x73c
000006D7  72FF              jc 0x6d8
000006D9  7400              jz 0x6db
000006DB  50                push ax
000006DC  7265              jc 0x743
000006DE  7373              jnc 0x753
000006E0  206E14            and [bp+0x14],ch
000006E3  7920              jns 0x705
000006E5  3536BF            xor ax,0xbf36
000006E8  03746F            add si,[si+0x6f]
000006EB  20636F            and [bp+di+0x6f],ah
000006EE  DB6E74            fld tword [bp+0x74]
000006F1  31756D            xor [di+0x6d],si
000006F4  2F                das
000006F5  2EB600            cs mov dh,0x0
000006F8  2026FE4C          and [0x4cfe],ah
000006FC  42                inc dx
000006FD  41                inc cx
000006FE  2D5472            sub ax,0x7254
00000701  DD1F              fstp qword [bx]
00000703  7366              jnc 0x76b
00000705  BB2D20            mov bx,0x202d
00000708  654F              gs dec di
0000070A  1B3A              sbb di,[bp+si]
0000070C  237679            and si,[bp+0x79]
0000070F  6C                insb
00000710  22DD              and bl,ch
00000712  64103EFA20        adc [fs:0x20fa],bh
00000717  3130              xor [bx+si],si
00000719  3233              xor dh,[bp+di]
0000071B  2D77FD            sub ax,0xfd77
0000071E  0A5041            or dl,[bx+si+0x41]
00000721  4E                dec si
00000722  49                dec cx
00000723  43                inc bx
00000724  AD                lodsw
00000725  1908              sbb [bx+si],cx
00000727  E353              jcxz 0x77c
00000729  7973              jns 0x79e
0000072B  7D76              jnl 0x7a3
0000072D  6D                insw
0000072E  2067DB            and [bx-0x25],ah
00000731  6C                insb
00000732  06                push es
00000733  64F7005E43        test word [fs:bx+si],0x435e
00000738  0D1D41            or ax,0x411d
0000073B  2E25F2FB          cs and ax,0xfbf2
0000073F  46                inc si
00000740  41                inc cx
00000741  54                push sp
00000742  20859D94          and [di-0x6b63],al
00000746  73DB              jnc 0x723
00000748  697A6562DD        imul di,[bp+si+0x65],word 0xdd62
0000074D  61                popaw
0000074E  648C00            mov [fs:bx+si],es
00000751  EE                out dx,al
00000752  52                push dx
00000753  756E              jnz 0x7c3
00000755  15C66B            adc ax,0x6bc6
00000758  64BCB643          fs mov sp,0x43b6
0000075C  42                inc dx
0000075D  DB12              fist dword [bp+si]
0000075F  2025              and [di],ah
00000761  DB                db 0xdb
00000762  A22FB7            mov [0xb72f],al
00000765  4F                dec di
00000766  6B3078            imul si,[bx+si],byte +0x78
00000769  9E                sahf
0000076A  0078C6            add [bx+si-0x3a],bh
0000076D  097735            or [bx+0x35],si
00000770  D1AC5509          shr word [si+0x955],1
00000774  5F                pop di
00000775  2444              and al,0x44
00000777  DD5042            fst qword [bx+si+0x42]
0000077A  3B766D            cmp si,[bp+0x6d]
0000077D  69759F1300        imul si,[di-0x61],word 0x13
00000782  3A3C              cmp bh,[si]
00000784  FF                db 0xff
00000785  7C3E              jl 0x7c5
00000787  2B3D              sub di,[di]
00000789  2C00              sub al,0x0
0000078B  2F                das
0000078C  22FD              and bh,ch
0000078E  5B                pop bx
0000078F  5D                pop bp
00000790  3C3E              cmp al,0x3e
00000792  7C2E              jl 0x7c2
00000794  BD114D            mov bp,0x4d11
00000797  43                inc bx
00000798  42                inc dx
00000799  9B6D              wait insw
0000079B  D7                xlatb
0000079C  9BBC75BF          wait mov sp,0xbf75
000007A0  7093              jo 0x735
000007A2  6265B5            bound sp,[di-0x4b]
000007A5  660BBB7934        or edi,[bp+di+0x3479]
000007AA  61                popaw
000007AB  3458              xor al,0x58
000007AD  1E                push ds
000007AE  07                pop es
000007AF  61                popaw
000007B0  B666              mov dh,0x66
000007B2  0572C2            add ax,0xc272
000007B5  1D96A7            sbb ax,0xa796
000007B8  FB                sti
000007B9  696D706CE0        imul bp,[di+0x70],word 0xe06c
000007BE  7765              ja 0x825
000007C0  6E                outsb
000007C1  0D065A            or ax,0x5a06
000007C4  752B              jnz 0x7f1
000007C6  6E                outsb
000007C7  A9806A            test ax,0x6a80
000007CA  61                popaw
000007CB  6F                outsw
000007CC  44                inc sp
000007CD  6D                insw
000007CE  661B85633A        sbb eax,[di+0x3a63]
000007D3  0B3E20FF          or di,[0xff20]
000007D7  49                dec cx
000007D8  4E                dec si
000007D9  54                push sp
000007DA  32462F            xor al,[bp+0x2f]
000007DD  3132              xor [bp+si],si
000007DF  95                xchg ax,bp
000007E0  00ED              add ch,ch
000007E2  17                pop ss
000007E3  2BB06D40          sub si,[bx+si+0x406d]
000007E7  ED                in ax,dx
000007E8  2C24              sub al,0x24
000007EA  C26972            ret 0x7269
000007ED  1F                pop ds
000007EE  FD                std
000007EF  5F                pop di
000007F0  6D                insw
000007F1  63623D            arpl [bp+si+0x3d],sp
000007F4  B61D              mov dh,0x1d
000007F6  7085              jo 0x77d
000007F8  DB                db 0xdb
000007F9  76E5              jna 0x7e0
000007FB  6E                outsb
000007FC  FB                sti
000007FD  6F                outsw
000007FE  744D              jz 0x84d
00000800  5A                pop dx
00000801  00D0              add al,dl
00000803  10D0              adc al,dl
00000805  5C                pop sp
00000806  6D                insw
00000807  B69D              mov dh,0x9d
00000809  7355              jnc 0x860
0000080B  FE                db 0xfe
0000080C  6720436F          and [ebx+0x6f],al
00000810  6D                insw
00000811  6D                insw
00000812  1575B3            adc ax,0xb375
00000815  61                popaw
00000816  49                dec cx
00000817  B928C1            mov cx,0xc128
0000081A  055DB7            add ax,0xb75d
0000081D  20450E            and [di+0xe],al
00000820  87CE              xchg cx,si
00000822  756D              jnz 0x891
00000824  6C                insb
00000825  B676              mov dh,0x76
00000827  7308              jnc 0x831
00000829  BA0563            mov dx,0x6305
0000082C  C12B0D            shr word [bp+di],0xd
0000082F  94                xchg ax,sp
00000830  657724            gs ja 0x857
00000833  5C                pop sp
00000834  44                inc sp
00000835  45                inc bp
00000836  F8                clc
00000837  56                push si
00000838  5C                pop sp
00000839  0007              add [bx],al
0000083B  0A7DEB            or bh,[di-0x15]
0000083E  6765C11D3D777061  rcr word [dword gs:0x6170773d],0x8
         -08
00000847  3B6820            cmp bp,[bx+si+0x20]
0000084A  796B              jns 0x8b7
0000084C  48                dec ax
0000084D  AB                stosw
0000084E  9A26DD396B        call word 0x6b39:0xdd26
00000853  61                popaw
00000854  B69D              mov dh,0x9d
00000856  30A3FF33          xor [bp+di+0x33ff],ah
0000085A  3435              xor al,0x35
0000085C  3637              ss aaa
0000085E  3839              cmp [bx+di],bh
00000860  ED                in ax,dx
00000861  61                popaw
00000862  626325            bound sp,[bp+di+0x25]
00000865  B766              mov bh,0x66
00000867  85950CF6          test [di-0x9f4],dx
0000086B  40                inc ax
0000086C  054807            add ax,0x748
0000086F  05FFAC            add ax,0xacff
00000872  0B6206            or sp,[bp+si+0x6]
00000875  A5                movsw
00000876  0CA5              or al,0xa5
00000878  7607              jna 0x881
0000087A  AC                lodsb
0000087B  0B7611            or si,[bp+0x11]
0000087E  FD                std
0000087F  4F                dec di
00000880  06                push es
00000881  5A                pop dx
00000882  06                push es
00000883  66D7              o32 xlatb
00000885  13950179          adc dx,[di+0x7901]
00000889  0308              add cx,[bx+si]
0000088B  95                xchg ax,bp
0000088C  0CFF              or al,0xff
0000088E  B9050B            mov cx,0xb05
00000891  06                push es
00000892  6A07              push byte +0x7
00000894  5F                pop di
00000895  49                dec cx
00000896  0137              add [bx],si
00000898  0F0059C5          ltr [bx+di-0x3b]
0000089C  004E6F            add [bp+0x6f],cl
0000089F  2F                das
000008A0  0222              add ah,[bp+si]
000008A2  151B7F            adc ax,0x7f1b
000008A5  04BB              add al,0xbb
000008A7  A4                movsb
000008A8  0405              add al,0x5
000008AA  2697              es xchg ax,di
000008AC  16                push ss
000008AD  06                push es
000008AE  3E37              ds aaa
000008B0  07                pop es
000008B1  40                inc ax
000008B2  17                pop ss
000008B3  2E011C            add [cs:si],bx
000008B6  C527              lds sp,[bx]
000008B8  B72D              mov bh,0x2d
000008BA  2432              and al,0x32
000008BC  85A60B9F          test [bp-0x60f5],sp
000008C0  2D0AB2            sub ax,0xb20a
000008C3  2BE2              sub sp,dx
000008C5  BBEF11            mov bx,0x11ef
000008C8  D9                db 0xd9
000008C9  0E                push cs
000008CA  AD                lodsw
000008CB  8001FF            add byte [bx+di],0xff
000008CE  9A45418E41        call word 0x418e:0x4145
000008D3  8F80456C          pop word [bx+si+0x6c45]
000008D7  0049BF            add [bx+di-0x41],cl
000008DA  8E8F9092          mov cs,[bx-0x6d70]
000008DE  92                xchg ax,dx
000008DF  FF4F99            dec word [bx-0x67]
000008E2  4F                dec di
000008E3  55                push bp
000008E4  55                push bp
000008E5  59                pop cx
000008E6  99                cwd
000008E7  9AFE9B9C9D        call word 0x9d9c:0x9bfe
000008EC  9E                sahf
000008ED  9F                lahf
000008EE  41                inc cx
000008EF  49                dec cx
000008F0  DF0C              fisttp word [si]
000008F2  A5                movsw
000008F3  A5                movsw
000008F4  A6                cmpsb
000008F5  A7                cmpsw
000008F6  FFA8A9AA          jmp word far [bx+si-0x5557]
000008FA  AB                stosw
000008FB  AC                lodsb
000008FC  AD                lodsw
000008FD  AE                scasb
000008FE  AF                scasw
000008FF  FFB0B1B2          push word [bx+si-0x4d4f]
00000903  B3B4              mov bl,0xb4
00000905  B5B6              mov ch,0xb6
00000907  B7FF              mov bh,0xff
00000909  B8B9BA            mov ax,0xbab9
0000090C  BBBCBD            mov bx,0xbdbc
0000090F  BEBFFF            mov si,0xffbf
00000912  C0C1C2            rol cl,0xc2
00000915  C3                ret
00000916  C4                db 0xc4
00000917  C5                db 0xc5
00000918  C6C7FF            mov bh,0xff
0000091B  C8C9CACB          enter 0xcac9,0xcb
0000091F  CC                int3
00000920  CDCE              int 0xce
00000922  CF                iretw
00000923  FFD0              call ax
00000925  D1D2              rcl dx,1
00000927  D3D4              rcl sp,cl
00000929  D5D6              aad 0xd6
0000092B  D7                xlatb
0000092C  FF                db 0xff
0000092D  D8D9              fcomp st1
0000092F  DADB              fcmovu st3
00000931  DC                db 0xdc
00000932  DDDE              fstp st6
00000934  DF                db 0xdf
00000935  FFE0              jmp ax
00000937  E1E2              loope 0x91b
00000939  E3E4              jcxz 0x91f
0000093B  E5E6              in ax,0xe6
0000093D  E7FF              out 0xff,ax
0000093F  E8E9EA            call word 0xf42b
00000942  EBEC              jmp short 0x930
00000944  ED                in ax,dx
00000945  EE                out dx,al
00000946  EF                out dx,ax
00000947  FFF0              push ax
00000949  F1                int1
0000094A  F2F3F4            rep hlt
0000094D  F5                cmc
0000094E  F6F7              div bh
00000950  FF                db 0xff
00000951  F8                clc
00000952  F9                stc
00000953  FA                cli
00000954  FB                sti
00000955  FC                cld
00000956  FD                std
00000957  FE                db 0xfe
00000958  FF6581            jmp word [di-0x7f]
0000095B  55                push bp
0000095C  A5                movsw
0000095D  DBAD8E16          fld tword [di+0x168e]
00000961  8541E7            test [bx+di-0x19],ax
00000964  FC                cld
00000965  EE                out dx,al
00000966  0E                push cs
00000967  2E222F            and ch,[cs:bx]
0000096A  5C                pop sp
0000096B  6F                outsw
0000096C  C53A              lds di,[bp+si]
0000096E  7C3C              jl 0x9ac
00000970  1DD13B            sbb ax,0x3bd1
00000973  A02C6F            mov al,[0x6f2c]
00000976  D7                xlatb
00000977  0203              add al,[bp+di]
00000979  0405              add al,0x5
0000097B  FF060708          inc word [0x807]
0000097F  090A              or [bp+si],cx
00000981  0B0C              or cx,[si]
00000983  0DEB0E            or ax,0xeeb
00000986  0F1035            movups xmm6,oword [di]
00000989  7F13              jg 0x99e
0000098B  1415              adc al,0x15
0000098D  16                push ss
0000098E  17                pop ss
0000098F  18FF              sbb bh,bh
00000991  191A              sbb [bp+si],bx
00000993  1B1C              sbb bx,[si]
00000995  1D1E1F            sbb ax,0x1f1e
00000998  20FF              and bh,bh
0000099A  2122              and [bp+si],sp
0000099C  2324              and sp,[si]
0000099E  252627            and ax,0x2726
000009A1  28FE              sub dh,bh
000009A3  292A              sub [bp+si],bp
000009A5  2B2C              sub bp,[si]
000009A7  2D2E2F            sub ax,0x2f2e
000009AA  12DB              adc bl,bl
000009AC  FF                db 0xff
000009AD  3A3B              cmp bh,[bp+di]
000009AF  3C3D              cmp al,0x3d
000009B1  3E3F              ds aas
000009B3  F1                int1
000009B4  40                inc ax
000009B5  41                inc cx
000009B6  42                inc dx
000009B7  43                inc bx
000009B8  BF1846            mov di,0x4618
000009BB  47                inc di
000009BC  48                dec ax
000009BD  49                dec cx
000009BE  4A                dec dx
000009BF  FA                cli
000009C0  4B                dec bx
000009C1  4C                dec sp
000009C2  4D                dec bp
000009C3  4E                dec si
000009C4  4F                dec di
000009C5  8D0B              lea cx,[bp+di]
000009C7  D453              aam 0x53
000009C9  54                push sp
000009CA  2F                das
000009CB  F9                stc
000009CC  58                pop ax
000009CD  59                pop cx
000009CE  5A                pop dx
000009CF  FD                std
000009D0  5B                pop bx
000009D1  5C                pop sp
000009D2  5D                pop bp
000009D3  5E                pop si
000009D4  5F                pop di
000009D5  60                pushaw
000009D6  851F              test [bx],bx
000009D8  7F7B              jg 0xa55
000009DA  7C7D              jl 0xa59
000009DC  7E7F              jng 0xa5d
000009DE  C24355            ret 0x5543
000009E1  19BA0043          sbb [bp+si+0x4300],di
000009E5  1319              adc bx,[bx+di]
000009E7  6B080D            imul cx,[bx+si],byte +0xd
000009EA  B04F              mov al,0x4f
000009EC  4F                dec di
000009ED  ED                in ax,dx
000009EE  1903              sbb [bp+di],ax
000009F0  BC2400            mov sp,0x24
000009F3  3E194E4E          sbb [ds:bp+0x4e],cx
000009F7  59                pop cx
000009F8  3F                aas
000009F9  F9                stc
000009FA  2122              and [bp+si],sp
000009FC  220A              and cl,[bp+si]
000009FE  99                cwd
000009FF  53                push bx
00000A00  22C1              and al,cl
00000A02  9F                lahf
00000A03  AF                scasw
00000A04  1F                pop ds
00000A05  003B              add [bp+di],bh
00000A07  A5                movsw
00000A08  002C              add [si],ch
00000A0A  4B                dec bx
00000A0B  EA971B4700        jmp word 0x47:0x1b97
00000A10  FFD4              call sp
00000A12  00F3              add bl,dh
00000A14  0011              add [bx+di],dl
00000A16  0130              add [bx+si],si
00000A18  01F7              add di,si
00000A1A  4E                dec si
00000A1B  016D01            add [di+0x1],bp
00000A1E  19FF              sbb di,di
00000A20  3C00              cmp al,0x0
00000A22  5B                pop bx
00000A23  007900            add [bx+di+0x0],bh
00000A26  98                cbw
00000A27  E000              loopne 0xa29
00000A29  B600              mov dh,0x0
00000A2B  50                push ax
00000A2C  93                xchg ax,bx
00000A2D  2F                das
00000A2E  5D                pop bp
00000A2F  1201              adc al,[bx+di]
00000A31  31FD              xor bp,di
00000A33  014F01            add [bx+0x1],cx
00000A36  6E                outsb
00000A37  01462F            add [bp+0x2f],ax
00000A3A  3B6544            cmp sp,[di+0x44]
00000A3D  4F                dec di
00000A3E  AE                scasb
00000A3F  53                push bx
00000A40  DE4BA8            fimul word [bp+di-0x58]
00000A43  652F              gs das
00000A45  3230              xor dh,[bx+si]
00000A47  34FF              xor al,0xff
00000A49  3120              xor [bx+si],sp
00000A4B  286275            sub [bp+si+0x75],ah
00000A4E  696C64670B        imul bp,[si+0x64],word 0xb67
00000A53  4F                dec di
00000A54  EB45              jmp short 0xa9b
00000A56  4D                dec bp
00000A57  3A3B              cmp bh,[bp+di]
00000A59  7E66              jng 0xac1
00000A5B  642920            sub [fs:bx+si],sp
00000A5E  5B                pop bx
00000A5F  9A4770D417        call word 0x17d4:0x7047
00000A64  DDD6              fst st6
00000A66  46                inc si
00000A67  65626DA9          bound bp,[gs:di-0x57]
00000A6B  37                aaa
00000A6C  C11F43            rcr word [bx],0x43
00000A6F  745D              jz 0xace
00000A71  0A4DA1            or cl,[di-0x5f]
00000A74  0C6F              or al,0x6f
00000A76  01060A0F          add [0xf0a],ax
00000A7A  0034              add [si],dh
00000A7C  50                push ax
00000A7D  13367019          adc si,[0x1970]
00000A81  2210              and dl,[bx+si]
00000A83  98                cbw
00000A84  16                push ss
00000A85  004523            add [di+0x23],al
00000A88  F27F56            repne jg 0xae1
00000A8B  51                push cx
00000A8C  89C6              mov si,ax
00000A8E  89D8              mov ax,bx
00000A90  FFF7              push di
00000A92  E291              loop 0xa25
00000A94  F7E6              mul si
00000A96  01C1              add cx,ax
00000A98  89FF              mov di,di
00000A9A  F0F7E3            lock mul bx
00000A9D  01CA              add dx,cx
00000A9F  59                pop cx
00000AA0  5E                pop si
00000AA1  C3                ret
00000AA2  C085C9BFE9        rol byte [di-0x4037],0xe9
00000AA7  39DA              cmp dx,bx
00000AA9  7205              jc 0xab0
00000AAB  91                xchg ax,cx
00000AAC  ED                in ax,dx
00000AAD  92                xchg ax,dx
00000AAE  F7F3              div bx
00000AB0  19FF              sbb di,di
00000AB2  F389D3            rep mov bx,dx
00000AB5  89CA              mov dx,cx
00000AB7  31C9              xor cx,cx
00000AB9  C3                ret
00000ABA  0B8852FF          or cx,[bx+si-0xae]
00000ABE  50                push ax
00000ABF  89DE              mov si,bx
00000AC1  89CF              mov di,cx
00000AC3  D1EA              shr dx,1
00000AC5  D1FE              sar si,1
00000AC7  D8D1              fcom st1
00000AC9  EF                out dx,ax
00000ACA  D1DB              rcr bx,1
00000ACC  75F6              jnz 0xac4
00000ACE  D6                salc
00000ACF  0B1C              or bx,[si]
00000AD1  FF5B89            call word far [bp+di-0x77]
00000AD4  C1                db 0xc1
00000AD5  F7E7              mul di
00000AD7  57                push di
00000AD8  97                xchg ax,di
00000AD9  DD89C841          fisttp qword [bx+di+0x41c8]
00000ADD  FA                cli
00000ADE  ED                in ax,dx
00000ADF  5F                pop di
00000AE0  29C3              sub bx,ax
00000AE2  08FF              or bh,bh
00000AE4  59                pop cx
00000AE5  19D1              sbb cx,dx
00000AE7  19D2              sbb dx,dx
00000AE9  21D6              and si,dx
00000AEB  21FF              and di,di
00000AED  D7                xlatb
00000AEE  01F3              add bx,si
00000AF0  11F9              adc cx,di
00000AF2  01D0              add ax,dx
00000AF4  31DA              xor dx,bx
00000AF6  D25F51            rcr byte [bx+0x51],cl
00000AF9  C8A3AD46          enter 0xada3,0x46
00000AFD  05FF9C            add ax,0x9cff
00000B00  55                push bp
00000B01  89E5              mov bp,sp
00000B03  50                push ax
00000B04  8B46FB            mov ax,[bp-0x5]
00000B07  02874606          add al,[bx+0x646]
00000B0B  8905              mov [di],ax
00000B0D  7F58              jg 0xb67
00000B0F  5D                pop bp
00000B10  80F924            cmp cl,0x24
00000B13  77FF              ja 0xb14
00000B15  0588CC            add ax,0xcc88
00000B18  E9B300            jmp word 0xbce
00000B1B  B000              mov al,0x0
00000B1D  FFCF              dec di
00000B1F  B10C              mov cl,0xc
00000B21  89D0              mov ax,dx
00000B23  D3E8              shr ax,cl
00000B25  24FF              and al,0xff
00000B27  0F3C              cpu_write
00000B29  0A1C              or bl,[si]
00000B2B  692FBB70          imul bp,[bx],word 0x70bb
00000B2F  06                push es
00000B30  E1FF              loope 0xb31
00000B32  0E                push cs
00000B33  CD10              int 0x10
00000B35  80E904            sub cl,0x4
00000B38  73C0              jnc 0xafa
00000B3A  E9C3AB            jmp word 0xb700
00000B3D  F6B915E2          idiv byte [bx+di-0x1deb]
00000B41  F4                hlt
00000B42  EE                out dx,al
00000B43  93                xchg ax,bx
00000B44  7669              jna 0xbaf
00000B46  6406              fs push es
00000B48  EA065FDB7A        jmp word 0x7adb:0x5f06
00000B4D  116FAD            adc [bx-0x53],bp
00000B50  2C7B              sub al,0x7b
00000B52  E074              loopne 0xbc8
00000B54  61                popaw
00000B55  6350E7            arpl [bx+si-0x19],dx
00000B58  7618              jna 0xb72
00000B5A  BE0F00            mov si,0xf
00000B5D  DF6004            fbld tword [bx+si+0x4]
00000B60  84C0              test al,al
00000B62  74D8              jz 0xb3c
00000B64  0A463C            or al,[bp+0x3c]
00000B67  3BEB              cmp bp,bx
00000B69  EF                out dx,ax
00000B6A  6D                insw
00000B6B  7F31              jg 0xb9e
00000B6D  F6                db 0xf6
00000B6E  8B12              mov dx,[bp+si]
00000B70  E8A4ED            call word 0xf917
00000B73  FFB0200E          push word [bx+si+0xe20]
00000B77  FF4646            inc word [bp+0x46]
00000B7A  83FE1A            cmp si,byte +0x1a
00000B7D  72F0              jc 0xb6f
00000B7F  B0F9              mov al,0xf9
00000B81  0DCD10            or ax,0x10cd
00000B84  B00A              mov al,0xa
00000B86  7FB8              jg 0xb40
00000B88  7F4C              jg 0xbd6
00000B8A  CD21              int 0x21
00000B8C  FB                sti
00000B8D  EF                out dx,ax
00000B8E  F4                hlt
00000B8F  EBFD              jmp short 0xb8e
00000B91  5D                pop bp
00000B92  03F7              add si,di
00000B94  3455              xor al,0x55
00000B96  2DBE70            sub ax,0x70be
00000B99  78DF              js 0xb7a
00000B9B  35C0AD            xor ax,0xadc0
00000B9E  654D              gs dec bp
00000BA0  1B06EBC0          sbb ax,[0xc0eb]
00000BA4  B0FC              mov al,0xfc
00000BA6  1BCC              sbb cx,sp
00000BA8  C0FAB0            sar dl,0xb0
00000BAB  708E              jo 0xb3b
00000BAD  D8BE5530          fdivr dword [bp+0x3055]
00000BB1  BF9E00            mov di,0x9e
00000BB4  FA                cli
00000BB5  AC                lodsb
00000BB6  89C7              mov di,ax
00000BB8  E9C1E7            jmp word 0xf37c
00000BBB  02B27FE2          add dh,[bp+si-0x1d81]
00000BBF  F6                db 0xf6
00000BC0  CD19              int 0x19
00000BC2  B400              mov ah,0x0
00000BC4  FF                db 0xff
00000BC5  FB                sti
00000BC6  06                push es
00000BC7  1E                push ds
00000BC8  55                push bp
00000BC9  57                push di
00000BCA  56                push si
00000BCB  52                push dx
00000BCC  51                push cx
00000BCD  DA5350            ficom dword [bp+di+0x50]
00000BD0  66AB              stosd
00000BD2  F1                int1
00000BD3  FA                cli
00000BD4  8B16315F          mov dx,[0x5f31]
00000BD8  71DA              jno 0xbb4
00000BDA  80FC25            cmp ah,0x25
00000BDD  DB                db 0xdb
00000BDE  7419              jz 0xbf9
00000BE0  0433              add al,0x33
00000BE2  CB                retf
00000BE3  7414              jz 0xbf9
00000BE5  35CB74            xor ax,0x74cb
00000BE8  0F50CB            movmskps ecx,xmm3
00000BEB  740A              jz 0xbf7
00000BED  51                push cx
00000BEE  CA7405            retf 0x574
00000BF1  37                aaa
00000BF2  290C              sub [si],cx
00000BF4  E8FE65            call word 0x71f5
00000BF7  001655E8          add [0xe855],dl
00000BFB  6C                insb
00000BFC  61                popaw
00000BFD  005FB7            add [bx-0x49],bl
00000C00  4E                dec si
00000C01  8CD6              mov si,ss
00000C03  8CFD              mov bp,segr7
00000C05  16                push ss
00000C06  8605              xchg al,[di]
00000C08  892E84A0          mov [0xa084],bp
00000C0C  1AD1              sbb dl,cl
00000C0E  FB                sti
00000C0F  2F                das
00000C10  F1                int1
00000C11  7410              jz 0xc23
00000C13  B9C0A0            mov cx,0xa0c0
00000C16  07                pop es
00000C17  0D0DCC            or ax,0xcc0d
00000C1A  DB                db 0xdb
00000C1B  FB                sti
00000C1C  56                push si
00000C1D  22ED              and ch,ch
00000C1F  FE                db 0xfe
00000C20  66EB25            o32 jmp short 0xc48
00000C23  FE062103          inc byte [0x321]
00000C27  DE13              ficom word [bp+di]
00000C29  0A08              or cl,[bx+si]
00000C2B  E4FF              in al,0xff
00000C2D  3C0C              cmp al,0xc
00000C2F  7606              jna 0xc37
00000C31  E8FB28            call word 0x352f
00000C34  00B92009          add [bx+di+0x920],bh
00000C38  2227              and ah,[bx]
00000C3A  CA66DA            retf 0xda66
00000C3D  FE0E2095          dec byte [0x9520]
00000C41  6E                outsb
00000C42  BE10D6            mov si,0xd610
00000C45  8D66FC            lea sp,[bp-0x4]
00000C48  006D52            add [di+0x52],ch
00000C4B  58                pop ax
00000C4C  5B                pop bx
00000C4D  2A605F            sub ah,[bx+si+0x5f]
00000C50  7D5D              jnl 0xcaf
00000C52  1F                pop ds
00000C53  07                pop es
00000C54  CF                iretw
00000C55  FFA33A03          jmp word [bp+di+0x33a]
00000C59  50                push ax
00000C5A  B482              mov ah,0x82
00000C5C  CD2A              int 0x2a
00000C5E  FE                db 0xfe
00000C5F  58                pop ax
00000C60  C3                ret
00000C61  83C20F            add dx,byte +0xf
00000C64  D1DA              rcr dx,1
00000C66  19E9              sbb cx,bp
00000C68  DF01              fild word [bx+di]
00000C6A  B80031            mov ax,0x3100
00000C6D  E948F8            jmp word 0x4b8
00000C70  FF                db 0xff
00000C71  FB                sti
00000C72  9C                pushfw
00000C73  50                push ax
00000C74  B8B753            mov ax,0x53b7
00000C77  EB06              jmp short 0xc7f
00000C79  7E07              jng 0xc82
00000C7B  250090            and ax,0x9000
00000C7E  99                cwd
00000C7F  61                popaw
00000C80  1E                push ds
00000C81  90                nop
00000C82  7DE1              jnl 0xc65
00000C84  8CD2              mov dx,ss
00000C86  FC                cld
00000C87  B3C3              mov bl,0xc3
00000C89  1E                push ds
00000C8A  5B                pop bx
00000C8B  DB51D3            fist dword [bx+di-0x2d]
00000C8E  B6BC              mov dh,0xbc
00000C90  68FBF6            push word 0xf6fb
00000C93  D5DF              aad 0xdf
00000C95  B701              mov bh,0x1
00000C97  50                push ax
00000C98  E8C28C            call word 0x995d
00000C9B  72BD              jc 0xc5a
00000C9D  DA065BF6          fiadd dword [0xf65b]
00000CA1  637E22            arpl [bp+0x22],di
00000CA4  D02A              shr byte [bp+si],1
00000CA6  02BCE05B          add bh,[si+0x5be0]
00000CAA  5B                pop bx
00000CAB  05B6D9            add ax,0xd9b6
00000CAE  9D                popfw
00000CAF  CB                retf
00000CB0  BCED04            mov sp,0x4ed
00000CB3  B80486            mov ax,0x8604
00000CB6  C3                ret
00000CB7  DE6F4A            fisubr word [bx+0x4a]
00000CBA  8A6604            mov ah,[bp+0x4]
00000CBD  858ADFFF          test [bp+si-0x21],cx
00000CC1  8B7E08            mov di,[bp+0x8]
00000CC4  8B760A            mov si,[bp+0xa]
00000CC7  8B4EB7            mov cx,[bp-0x49]
00000CCA  0C2F              or al,0x2f
00000CCC  06                push es
00000CCD  30FD              xor ch,bh
00000CCF  0326FF36          add sp,[0x36ff]
00000CD3  3000              xor [bx+si],al
00000CD5  C00456            rol byte [si],0x56
00000CD8  A5                movsw
00000CD9  03ED              add bp,bp
00000CDB  3E0307            add ax,[ds:bx]
00000CDE  CB                retf
00000CDF  8605              xchg al,[di]
00000CE1  849005FD          test [bx+si-0x2fb],dl
00000CE5  89268805          mov [0x588],sp
00000CE9  AD                lodsw
00000CEA  EB45              jmp short 0xd31
00000CEC  73CE              jnc 0xcbc
00000CEE  29738E            sub [bp+di-0x72],si
00000CF1  16                push ss
00000CF2  658B2E60D3        mov bp,[gs:0xd360]
00000CF7  FE89CDCD          dec byte [bx+di-0x3233]
00000CFB  24FC              and al,0xfc
00000CFD  FA                cli
00000CFE  D9982EBD          fstp dword [bx+si-0x42d2]
00000D02  DD8ED58B          fisttp qword [bp-0x742b]
00000D06  DD                db 0xdd
00000D07  2B8F0684          sub cx,[bx-0x7bfa]
00000D0B  D6                salc
00000D0C  03860702          add ax,[bp+0x207]
00000D10  D6                salc
00000D11  53                push bx
00000D12  652D086B          gs sub ax,0x6b08
00000D16  36049A            ss add al,0x9a
00000D19  40                inc ax
00000D1A  D6                salc
00000D1B  8785F708          xchg ax,[di+0x8f7]
00000D1F  FB                sti
00000D20  C6                db 0xc6
00000D21  53                push bx
00000D22  43                inc bx
00000D23  0044C5            add [si-0x3b],al
00000D26  3CC0          
Matěj Andrle
Assembler › Assemblerista ke konzultaci
11. 6. 2013   #177798

Dobrý den,

byl by mi zde nějaký zkušený assemblerista ochoten pomáhat s vývojem OS? Jedná se mi o druhotnou práci - jen bych se sem tam zeptal na zádrhel - takto se musím ptát všude možně na internetu a sáhodlouze vyhledávat - to dost zdržuje a někdy se ani nedopracuji k výsledku.

Děkuji.

Matěj Andrle
Assembler › Vlastní OS - z RTOS do PTOS
10. 6. 2013   #177771

Funkcí to má více - ale ty jsou již přímou součástí systému a zápolím s jejich objektovým vyjádřením - proč OOP? Snažím se udělat Framework a nahradit base language (To má většína DOSů pro správu svých funkcí v programech pro ten daný DOS.) plnohodnotným jazykem schopným používat všechny funkce použité pro chod OS a jeho nadstaveb. (Zabiji 2 mouchy jednou ranou, přičemž ten jazyk bych chtěl dotáhnout až na virtuální stroj.)

Matěj Andrle
Assembler › Vlastní OS - z RTOS do PTOS
10. 6. 2013   #177770

"píši vlastní OS v Assembly a mám pár dotazů k přechodu z RTOS do protected-mode OS:"

Co je na tom nejasné? Naprosto nezávislý naprosto nezkopírovaný OS... (Vše pochází z mé hlavy - tak jak mi to přišlo pod ruku a bylo třeba.)

Jak jsem psal - chráněně bych chtěl psát až shell - features kernelu bych chtěl nechat realtime - kvůli přístupu k BIOSu atd. (Takže uživatel by viděl chráněný OS a snažil bych se funkce real-time zaštiťovat tou chráněnou skořápkou.)

K multitaskingu - můžeš to zkonkretizovat pro Assembly?

Jinak píši to objektově a seznam objektů použitelných kdekoliv s RT přístupen:

System.Run
System.Pause
System.FatalError
System.ApiVersion

Console.WaitForKey
Console.WriteHline
Console.PrintRegs
Console.NewLine
Console.ReadLine
Console.NibbleAL
Console.ReadKey
Console.DigitAX
Console.PrintAL
Console.PrintAX
Console.Space
Console.Write
Console.Clear

Cursor.Location
Cursor.Move
Cursor.Show
Cursor.Hide

String.Join
String.Strip
String.Time
String.Date
String.Parse
String.Copy
String.Dump
String.Upper
String.Lower
String.Length
String.Chomp
String.Reverse
String.IndexOf
String.TimeFmt
String.DateFmt
String.Truncate
String.Tokenize
String.Compare
String.ReplaceChar
String.SubCompare

Int.Parse
Int.ToString
SInt.ToString
LInt.ToString

DialogBox.File
DialogBox.List
DialogBox.Plain
DialogBox.Input
DialogBox.DrawBlock

Math.Random
Math.BcdToInt
Math.LIntNegate

File.Size
File.Load
File.Save
File.Exists
File.Create
File.Remove
File.Rename

Disk.FileList

Port.SendByte
Port.SpeakerOn
Port.SpeakerOff
Port.ReceiveByte
Port.GetViaSerial
Port.SendViaSerial
Port.SerialPort.Enable

Gshell.DrawBack

Gshell - pokus o grafický shell. Proč to sem píši - tyto funkce jsou jak jsem psal RT (real-time) - měl bych přecijen nějakou předělat do chráněného?

Děkuji.

Matěj Andrle
Assembler › Vlastní OS - z RTOS do PTOS
10. 6. 2013   #177734

Dobrý den,
píši vlastní OS v Assembly a mám pár dotazů k přechodu z RTOS do protected-mode OS:

Dočetl jsem se, že pro chráněný režim stačí používat 32/64bitové registry - že prý k nižším se dá přistupovat přes tyto vyšší - jak to mysleli? Další věc - bootuji jako RTOS (což snad ani jinak nejde) - takže všechny základní funkce kernelu jsou real-time - ty už v chráněném režimu nemohu používat? (Hodlám chráněně přepsat až shell.) Používal jsem několik PTOS co umožňovali spravovat nižší RT funkce - jen nechci něco udělat špatně. A poslední - jak pustit více programů najednou? To si ten multitasking mám vytvořit ručně? (Napadá mne jen využít Unixové myšlenky vše je soubor a jako při hibernaci ukládat stav procesu do souboru. Pak by byl puštěn vpodstatě jen proces pro přeskakování co by přerušoval do jednoho ze souborů procesů. Pokud je to reálná myšlenka - jak vyliji paměť procesoru do souboru? Bylo by na to přerušení?)

Děkuji.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý