aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid <dbphillipsnz@gmail.com>2013-07-19 11:53:18 +1200
committerDavid <dbphillipsnz@gmail.com>2013-07-19 11:53:18 +1200
commit9bfb5f5468331949c6a9f9b3e0590e481dd6492e (patch)
tree2740732d4372d34e451d7ff99d0de50181327508
parent3155f0ec7fb015225c6ae42f782b8c25f2d79f88 (diff)
downloadjaspos-9bfb5f5468331949c6a9f9b3e0590e481dd6492e.tar.xz
Added 'Emergency Shell', started work on basic disk I/O
-rw-r--r--README4
-rw-r--r--README.md4
-rw-r--r--TODO6
-rw-r--r--apm.asm49
-rw-r--r--bochsout.txt159
-rw-r--r--disasm1054
-rw-r--r--jasposkernel.asm73
-rw-r--r--shell.asm8
-rw-r--r--textvga.asm137
9 files changed, 5 insertions, 1489 deletions
diff --git a/README b/README
index 22c0238..2c499c9 100644
--- a/README
+++ b/README
@@ -1,4 +1,6 @@
jaspos
======
-OS written entirely in x86 Assembly \ No newline at end of file
+OS written entirely in x86 Assembly (Intel syntax)
+
+To compile, just `make` from the command line.
diff --git a/README.md b/README.md
deleted file mode 100644
index 22c0238..0000000
--- a/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-jaspos
-======
-
-OS written entirely in x86 Assembly \ No newline at end of file
diff --git a/TODO b/TODO
index 2209753..4240eec 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,5 @@
Jaspos To Do
============
1) Get bootloader code onto github
-2) More comments in more code
-3) Clean-up functions which still use my old convention of passing arguments in AX. These must be converted to accepting arguments from the stack.
-4) Get Disk I/O working (at least floppy disk)
-5) Continue work on the shell application \ No newline at end of file
+2) Still More comments in more code
+3) Get Disk I/O working (at least floppy disk)
diff --git a/apm.asm b/apm.asm
deleted file mode 100644
index 1f06116..0000000
--- a/apm.asm
+++ /dev/null
@@ -1,49 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Connect APM interface
-apm_ConnectInterface:
- push ax ; Push some registers
- push bx ;
- mov si, apm_msgConnectingInterface ; Display a message saying that we're connecting the interface
- call OutText ;
- mov ax, 0x5301 ; 0x5301 - connect interface subfunction
- xor bx, bx ; zero-out bx
- int 0x15 ; Int 15.5301 - connect APM interface
- jc .error ; Jump to .error if interrupt set cf on error
-.quit:
- pop bx ; Pop our registers back off the stack
- pop ax ;
- ret
-.error:
- mov si, msgFailedWithCode ; Display a message explaining that it failed
- call OutText ;
- xor dx, dx ; clear DX
- mov dl, ah ; load DL with number to convert
- call NumberToString ; Convert DL to string in NumberBuffer
- mov si, NumberBuffer ; Load address on NumberBuffer for printing
- call OutText ; Print NumberBuffer
- jmp .quit ; Jump to .quit for some POPping and then return
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Power-off the computer using APM interface
-apm_PowerOff:
- mov ax, 0x5307 ; 5307 - Set power state
- mov bx, 0x0001 ; 0001 - Device: BIOS
- mov cx, 0x0003 ; 0003 - power state: off
- int 0x15 ; Int 15.5307 - set power state using APM interface
- jc .error
- ret
-.error:
- mov si, msgFailedWithCode ; Print a message to tell the user a failiure happened
- call OutText ;
- xor dx, dx ; Zero-out DX
- mov dl, ah ; Load DL with number to convert
- call NumberToString ; Convert DL to string in NumberBuffer
- mov si, NumberBuffer ; Load NumberBuffer address for printing
- call OutText ; Print NumberBuffer
- mov si, msgNewLine ;
- call OutText ;
- mov si, apm_msgPowerOffFailed ;
- call OutText ;
- ret
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; \ No newline at end of file
diff --git a/bochsout.txt b/bochsout.txt
deleted file mode 100644
index ea62b6a..0000000
--- a/bochsout.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-00000000000i[ ] Bochs x86 Emulator 2.6
-00000000000i[ ] Built from SVN snapshot on September 2nd, 2012
-00000000000i[ ] Compiled on Sep 11 2012 at 22:31:23
-00000000000i[ ] System configuration
-00000000000i[ ] processors: 1 (cores=1, HT threads=1)
-00000000000i[ ] A20 line support: yes
-00000000000i[ ] IPS is set to 4000000
-00000000000i[ ] CPU configuration
-00000000000i[ ] level: 6
-00000000000i[ ] SMP support: no
-00000000000i[ ] APIC support: xapic
-00000000000i[ ] FPU support: yes
-00000000000i[ ] MMX support: yes
-00000000000i[ ] 3dnow! support: yes
-00000000000i[ ] SEP support: yes
-00000000000i[ ] SSE support: sse2
-00000000000i[ ] XSAVE support: no
-00000000000i[ ] AES support: no
-00000000000i[ ] MOVBE support: no
-00000000000i[ ] ADX support: no
-00000000000i[ ] x86-64 support: no
-00000000000i[ ] MWAIT support: yes
-00000000000i[ ] Optimization configuration
-00000000000i[ ] RepeatSpeedups support: no
-00000000000i[ ] Fast function calls: no
-00000000000i[ ] Handlers Chaining speedups: no
-00000000000i[ ] Devices configuration
-00000000000i[ ] NE2000 support: no
-00000000000i[ ] PCI support: no, enabled=yes
-00000000000i[ ] SB16 support: no
-00000000000i[ ] USB support: no
-00000000000i[ ] VGA extension support: vbe
-00000000000i[MEM0 ] allocated memory at 0xb64ff008. after alignment, vector=0xb6500000
-00000000000i[MEM0 ] 8.00MB
-00000000000i[MEM0 ] mem block size = 0x00100000, blocks=8
-00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('/usr/share/bochs/BIOS-bochs-latest')
-00000000000e[DEV ] Bochs is not compiled with PCI support
-00000000000i[ ] init_dev of 'cmos' plugin device by virtual method
-00000000000i[CMOS ] Using local time for initial clock
-00000000000i[CMOS ] Setting initial clock to: Wed May 29 13:52:39 2013 (time0=1369792359)
-00000000000i[ ] init_dev of 'dma' plugin device by virtual method
-00000000000i[DMA ] channel 4 used by cascade
-00000000000i[ ] init_dev of 'pic' plugin device by virtual method
-00000000000i[ ] init_dev of 'pit' plugin device by virtual method
-00000000000i[ ] init_dev of 'floppy' plugin device by virtual method
-00000000000i[DMA ] channel 2 used by Floppy Drive
-00000000000i[FDD ] tried to open '/home/david/jaspos/floppy.img' read/write: Permission denied
-00000000000i[FDD ] fd0: '/home/david/jaspos/floppy.img' ro=1, h=2,t=80,spt=18
-00000000000i[ ] init_dev of 'vga' plugin device by virtual method
-00000000000i[MEM0 ] Register memory access handlers: 0x00000000000a0000 - 0x00000000000bffff
-00000000000i[VGA ] interval=200000
-00000000000i[MEM0 ] Register memory access handlers: 0x00000000e0000000 - 0x00000000e0ffffff
-00000000000i[BXVGA] VBE Bochs Display Extension Enabled
-00000000000i[XGUI ] test_alloc_colors: 16 colors available out of 16 colors tried
-00000000000i[XGUI ] font 8 wide x 16 high, display depth = 24
-00000000000i[MEM0 ] rom at 0xc0000/41472 ('/usr/share/bochs/VGABIOS-lgpl-latest')
-00000000000i[ ] init_dev of 'ioapic' plugin device by virtual method
-00000000000i[IOAP ] initializing I/O APIC
-00000000000i[MEM0 ] Register memory access handlers: 0x00000000fec00000 - 0x00000000fec00fff
-00000000000i[ ] init_dev of 'keyboard' plugin device by virtual method
-00000000000i[KBD ] will paste characters every 1000 keyboard ticks
-00000000000i[ ] init_dev of 'harddrv' plugin device by virtual method
-00000000000i[HD ] Using boot sequence floppy, none, none
-00000000000i[HD ] Floppy boot signature check is enabled
-00000000000i[ ] init_dev of 'unmapped' plugin device by virtual method
-00000000000i[ ] init_dev of 'biosdev' plugin device by virtual method
-00000000000i[ ] init_dev of 'speaker' plugin device by virtual method
-00000000000i[ ] init_dev of 'extfpuirq' plugin device by virtual method
-00000000000i[ ] init_dev of 'parallel' plugin device by virtual method
-00000000000i[PAR ] parallel port 1 at 0x0378 irq 7
-00000000000i[ ] init_dev of 'serial' plugin device by virtual method
-00000000000i[SER ] com1 at 0x03f8 irq 4
-00000000000i[ ] register state of 'cmos' plugin device by virtual method
-00000000000i[ ] register state of 'dma' plugin device by virtual method
-00000000000i[ ] register state of 'pic' plugin device by virtual method
-00000000000i[ ] register state of 'pit' plugin device by virtual method
-00000000000i[ ] register state of 'floppy' plugin device by virtual method
-00000000000i[ ] register state of 'vga' plugin device by virtual method
-00000000000i[ ] register state of 'unmapped' plugin device by virtual method
-00000000000i[ ] register state of 'biosdev' plugin device by virtual method
-00000000000i[ ] register state of 'speaker' plugin device by virtual method
-00000000000i[ ] register state of 'extfpuirq' plugin device by virtual method
-00000000000i[ ] register state of 'parallel' plugin device by virtual method
-00000000000i[ ] register state of 'serial' plugin device by virtual method
-00000000000i[ ] register state of 'ioapic' plugin device by virtual method
-00000000000i[ ] register state of 'keyboard' plugin device by virtual method
-00000000000i[ ] register state of 'harddrv' plugin device by virtual method
-00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called
-00000000000i[CPU0 ] cpu hardware reset
-00000000000i[APIC0] allocate APIC id=0 (MMIO enabled) to 0x00000000fee00000
-00000000000i[CPU0 ] CPUID[0x00000000]: 00000002 68747541 444d4163 69746e65
-00000000000i[CPU0 ] CPUID[0x00000001]: 00000633 00010800 00000008 17cbfbff
-00000000000i[CPU0 ] CPUID[0x00000002]: 00000000 00000000 00000000 00000000
-00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 68747541 444d4163 69746e65
-00000000000i[CPU0 ] CPUID[0x80000001]: 00000633 00000000 00000000 c1c3f3ff
-00000000000i[CPU0 ] CPUID[0x80000002]: 20444d41 6c687441 74286e6f 7020296d
-00000000000i[CPU0 ] CPUID[0x80000003]: 65636f72 726f7373 00000000 00000000
-00000000000i[CPU0 ] CPUID[0x80000004]: 00000000 00000000 00000000 00000000
-00000000000i[CPU0 ] CPUID[0x80000005]: 01ff01ff 01ff01ff 40020140 40020140
-00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000
-00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000
-00000000000i[CPU0 ] CPUID[0x80000008]: 00002028 00000000 00000000 00000000
-00000000000i[ ] reset of 'cmos' plugin device by virtual method
-00000000000i[ ] reset of 'dma' plugin device by virtual method
-00000000000i[ ] reset of 'pic' plugin device by virtual method
-00000000000i[ ] reset of 'pit' plugin device by virtual method
-00000000000i[ ] reset of 'floppy' plugin device by virtual method
-00000000000i[ ] reset of 'vga' plugin device by virtual method
-00000000000i[ ] reset of 'ioapic' plugin device by virtual method
-00000000000i[ ] reset of 'keyboard' plugin device by virtual method
-00000000000i[ ] reset of 'harddrv' plugin device by virtual method
-00000000000i[ ] reset of 'unmapped' plugin device by virtual method
-00000000000i[ ] reset of 'biosdev' plugin device by virtual method
-00000000000i[ ] reset of 'speaker' plugin device by virtual method
-00000000000e[SPEAK] Failed to open /dev/console: Permission denied
-00000000000e[SPEAK] Deactivating beep on console
-00000000000i[ ] reset of 'extfpuirq' plugin device by virtual method
-00000000000i[ ] reset of 'parallel' plugin device by virtual method
-00000000000i[ ] reset of 'serial' plugin device by virtual method
-00000000000i[XGUI ] Mouse capture off
-00000000025i[MEM0 ] allocate_block: block=0x0 used 0x1 of 0x8
-00000004661i[BIOS ] $Revision: 11318 $ $Date: 2012-08-06 19:59:54 +0200 (Mo, 06. Aug 2012) $
-00000317668i[KBD ] reset-disable command received
-00000318806i[BIOS ] Starting rombios32
-00000319240i[BIOS ] Shutdown flag 0
-00000319823i[BIOS ] ram_size=0x00800000
-00000320221i[BIOS ] ram_end=8MB
-00000360726i[BIOS ] Found 1 cpu(s)
-00000374908i[BIOS ] bios_table_addr: 0x000fa438 end=0x000fcc00
-00000393368i[BIOS ] bios_table_cur_addr: 0x000fa438
-00000520985i[VBIOS] VGABios $Id: vgabios.c,v 1.75 2011/10/15 14:07:21 vruppert Exp $
-00000521056i[BXVGA] VBE known Display Interface b0c0
-00000521088i[BXVGA] VBE known Display Interface b0c5
-00000524013i[VBIOS] VBE Bios $Id: vbe.c,v 1.64 2011/07/19 18:25:05 vruppert Exp $
-00000800002i[XGUI ] charmap update. Font Height is 16
-00012942446i[BIOS ] Booting from 0000:7c00
-00156380000p[XGUI ] >>PANIC<< POWER button turned off.
-00156380000i[CPU0 ] CPU is in real mode (active)
-00156380000i[CPU0 ] CS.mode = 16 bit
-00156380000i[CPU0 ] SS.mode = 16 bit
-00156380000i[CPU0 ] EFER = 0x00000000
-00156380000i[CPU0 ] | EAX=00000028 EBX=00000941 ECX=0009001f EDX=00000042
-00156380000i[CPU0 ] | ESP=0000ffdf EBP=00000184 ESI=000e0946 EDI=00000941
-00156380000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df if tf sf ZF af PF cf
-00156380000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
-00156380000i[CPU0 ] | CS:f000( 0004| 0| 0) 000f0000 0000ffff 0 0
-00156380000i[CPU0 ] | DS:0040( 0005| 0| 0) 00000400 0000ffff 0 0
-00156380000i[CPU0 ] | SS:2000( 0005| 0| 0) 00020000 0000ffff 0 0
-00156380000i[CPU0 ] | ES:1000( 0005| 0| 0) 00010000 0000ffff 0 0
-00156380000i[CPU0 ] | FS:0000( 0005| 0| 0) 00000000 0000ffff 0 0
-00156380000i[CPU0 ] | GS:0000( 0005| 0| 0) 00000000 0000ffff 0 0
-00156380000i[CPU0 ] | EIP=0000e86d (0000e86d)
-00156380000i[CPU0 ] | CR0=0x60000010 CR2=0x00000000
-00156380000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000
-00156380000i[CPU0 ] 0x0000e86d>> cmp ax, word ptr ds:0x1c : 3B061C00
-00156380000i[CMOS ] Last time is 1369792398 (Wed May 29 13:53:18 2013)
-00156380000i[XGUI ] Exit
-00156380000i[ ] restoring default signal behavior
-00156380000i[CTRL ] quit_sim called with exit code 1
diff --git a/disasm b/disasm
deleted file mode 100644
index 3b9c99f..0000000
--- a/disasm
+++ /dev/null
@@ -1,1054 +0,0 @@
-00000000 E93900 jmp word 0x3c
-00000003 E96D02 jmp word 0x273
-00000006 E9BE01 jmp word 0x1c7
-00000009 E9E801 jmp word 0x1f4
-0000000C E9A102 jmp word 0x2b0
-0000000F E95502 jmp word 0x267
-00000012 E97803 jmp word 0x38d
-00000015 E97A03 jmp word 0x392
-00000018 E9E103 jmp word 0x3fc
-0000001B E9BE03 jmp word 0x3dc
-0000001E E9A703 jmp word 0x3c8
-00000021 E9F103 jmp word 0x415
-00000024 E9F502 jmp word 0x31c
-00000027 E9FF02 jmp word 0x329
-0000002A E9A502 jmp word 0x2d2
-0000002D E9C702 jmp word 0x2f7
-00000030 E90904 jmp word 0x43c
-00000033 E92004 jmp word 0x456
-00000036 E93904 jmp word 0x472
-00000039 E95304 jmp word 0x48f
-0000003C 8CC8 mov ax,cs
-0000003E 8ED8 mov ds,ax
-00000040 8EC0 mov es,ax
-00000042 050010 add ax,0x1000
-00000045 8ED0 mov ss,ax
-00000047 30F6 xor dh,dh
-00000049 89161A08 mov [0x81a],dx
-0000004D BCFFFF mov sp,0xffff
-00000050 E82002 call word 0x273
-00000053 E80803 call word 0x35e
-00000056 68E904 push word 0x4e9
-00000059 E86B01 call word 0x1c7
-0000005C 680030 push word 0x3000
-0000005F E83502 call word 0x297
-00000062 E85802 call word 0x2bd
-00000065 688805 push word 0x588
-00000068 E85C01 call word 0x1c7
-0000006B E80401 call word 0x172
-0000006E 68D007 push word 0x7d0
-00000071 E85301 call word 0x1c7
-00000074 681B08 push word 0x81b
-00000077 6A20 push byte +0x20
-00000079 E81603 call word 0x392
-0000007C 682407 push word 0x724
-0000007F E84501 call word 0x1c7
-00000082 681B08 push word 0x81b
-00000085 E8B403 call word 0x43c
-00000088 68E707 push word 0x7e7
-0000008B 681B08 push word 0x81b
-0000008E E88403 call word 0x415
-00000091 7428 jz 0xbb
-00000093 68EC07 push word 0x7ec
-00000096 681B08 push word 0x81b
-00000099 E87903 call word 0x415
-0000009C 740D jz 0xab
-0000009E 68F407 push word 0x7f4
-000000A1 681B08 push word 0x81b
-000000A4 E86E03 call word 0x415
-000000A7 740A jz 0xb3
-000000A9 EBC3 jmp short 0x6e
-000000AB 68BF06 push word 0x6bf
-000000AE E81601 call word 0x1c7
-000000B1 EBBB jmp short 0x6e
-000000B3 687906 push word 0x679
-000000B6 E80E01 call word 0x1c7
-000000B9 EBB3 jmp short 0x6e
-000000BB 68C907 push word 0x7c9
-000000BE E80601 call word 0x1c7
-000000C1 682407 push word 0x724
-000000C4 E80001 call word 0x1c7
-000000C7 54 push sp
-000000C8 55 push bp
-000000C9 57 push di
-000000CA 56 push si
-000000CB 0FA8 push gs
-000000CD 16 push ss
-000000CE 06 push es
-000000CF 1E push ds
-000000D0 0E push cs
-000000D1 52 push dx
-000000D2 51 push cx
-000000D3 53 push bx
-000000D4 50 push ax
-000000D5 680F06 push word 0x60f
-000000D8 E8EC00 call word 0x1c7
-000000DB 682405 push word 0x524
-000000DE E8E600 call word 0x1c7
-000000E1 58 pop ax
-000000E2 E87A00 call word 0x15f
-000000E5 682B05 push word 0x52b
-000000E8 E8DC00 call word 0x1c7
-000000EB 58 pop ax
-000000EC E87000 call word 0x15f
-000000EF 683305 push word 0x533
-000000F2 E8D200 call word 0x1c7
-000000F5 58 pop ax
-000000F6 E86600 call word 0x15f
-000000F9 683B05 push word 0x53b
-000000FC E8C800 call word 0x1c7
-000000FF 58 pop ax
-00000100 E85C00 call word 0x15f
-00000103 684305 push word 0x543
-00000106 E8BE00 call word 0x1c7
-00000109 58 pop ax
-0000010A E85200 call word 0x15f
-0000010D 684A05 push word 0x54a
-00000110 E8B400 call word 0x1c7
-00000113 58 pop ax
-00000114 E84800 call word 0x15f
-00000117 685205 push word 0x552
-0000011A E8AA00 call word 0x1c7
-0000011D 58 pop ax
-0000011E E83E00 call word 0x15f
-00000121 685A05 push word 0x55a
-00000124 E8A000 call word 0x1c7
-00000127 58 pop ax
-00000128 E83400 call word 0x15f
-0000012B 686205 push word 0x562
-0000012E E89600 call word 0x1c7
-00000131 58 pop ax
-00000132 E82A00 call word 0x15f
-00000135 686905 push word 0x569
-00000138 E88C00 call word 0x1c7
-0000013B 58 pop ax
-0000013C E82000 call word 0x15f
-0000013F 687105 push word 0x571
-00000142 E88200 call word 0x1c7
-00000145 58 pop ax
-00000146 E81600 call word 0x15f
-00000149 688105 push word 0x581
-0000014C E87800 call word 0x1c7
-0000014F 58 pop ax
-00000150 E80C00 call word 0x15f
-00000153 687905 push word 0x579
-00000156 E86E00 call word 0x1c7
-00000159 58 pop ax
-0000015A E80200 call word 0x15f
-0000015D EB0E jmp short 0x16d
-0000015F 683307 push word 0x733
-00000162 50 push ax
-00000163 E87602 call word 0x3dc
-00000166 682E07 push word 0x72e
-00000169 E85B00 call word 0x1c7
-0000016C C3 ret
-0000016D E81D02 call word 0x38d
-00000170 EBFB jmp short 0x16d
-00000172 68B105 push word 0x5b1
-00000175 E84F00 call word 0x1c7
-00000178 68BF06 push word 0x6bf
-0000017B E84900 call word 0x1c7
-0000017E 687906 push word 0x679
-00000181 E84300 call word 0x1c7
-00000184 68A306 push word 0x6a3
-00000187 E83D00 call word 0x1c7
-0000018A 682C07 push word 0x72c
-0000018D FF361A08 push word [0x81a]
-00000191 E86802 call word 0x3fc
-00000194 68DD06 push word 0x6dd
-00000197 E82D00 call word 0x1c7
-0000019A 682807 push word 0x728
-0000019D E82700 call word 0x1c7
-000001A0 682407 push word 0x724
-000001A3 E82100 call word 0x1c7
-000001A6 680206 push word 0x602
-000001A9 E81B00 call word 0x1c7
-000001AC 683307 push word 0x733
-000001AF 6AFF push byte -0x1
-000001B1 E82802 call word 0x3dc
-000001B4 682E07 push word 0x72e
-000001B7 E80D00 call word 0x1c7
-000001BA 682407 push word 0x724
-000001BD E80700 call word 0x1c7
-000001C0 68B105 push word 0x5b1
-000001C3 E80100 call word 0x1c7
-000001C6 C3 ret
-000001C7 58 pop ax
-000001C8 5E pop si
-000001C9 50 push ax
-000001CA 06 push es
-000001CB 51 push cx
-000001CC 52 push dx
-000001CD E89700 call word 0x267
-000001D0 AC lodsb
-000001D1 3C00 cmp al,0x0
-000001D3 7414 jz 0x1e9
-000001D5 3C01 cmp al,0x1
-000001D7 740A jz 0x1e3
-000001D9 50 push ax
-000001DA E81700 call word 0x1f4
-000001DD 8B3E3507 mov di,[0x735]
-000001E1 EBED jmp short 0x1d0
-000001E3 AC lodsb
-000001E4 A22707 mov [0x727],al
-000001E7 EBE7 jmp short 0x1d0
-000001E9 893E3507 mov [0x735],di
-000001ED E8CD00 call word 0x2bd
-000001F0 59 pop cx
-000001F1 5A pop dx
-000001F2 07 pop es
-000001F3 C3 ret
-000001F4 5A pop dx
-000001F5 58 pop ax
-000001F6 52 push dx
-000001F7 06 push es
-000001F8 57 push di
-000001F9 E86B00 call word 0x267
-000001FC 81FFA00F cmp di,0xfa0
-00000200 7D3E jnl 0x240
-00000202 3C08 cmp al,0x8
-00000204 7414 jz 0x21a
-00000206 3C0D cmp al,0xd
-00000208 741F jz 0x229
-0000020A 3C0A cmp al,0xa
-0000020C 7421 jz 0x22f
-0000020E AA stosb
-0000020F A02707 mov al,[0x727]
-00000212 AA stosb
-00000213 893E3507 mov [0x735],di
-00000217 5F pop di
-00000218 07 pop es
-00000219 C3 ret
-0000021A 83EF02 sub di,byte +0x2
-0000021D B020 mov al,0x20
-0000021F AA stosb
-00000220 83EF02 sub di,byte +0x2
-00000223 A02707 mov al,[0x727]
-00000226 AA stosb
-00000227 EBEA jmp short 0x213
-00000229 81C7A000 add di,0xa0
-0000022D EBE4 jmp short 0x213
-0000022F 89F8 mov ax,di
-00000231 31D2 xor dx,dx
-00000233 BFA000 mov di,0xa0
-00000236 F7F7 div di
-00000238 F7E7 mul di
-0000023A 89C7 mov di,ax
-0000023C 31C0 xor ax,ax
-0000023E EBD3 jmp short 0x213
-00000240 1E push ds
-00000241 50 push ax
-00000242 57 push di
-00000243 56 push si
-00000244 B900B8 mov cx,0xb800
-00000247 8ED9 mov ds,cx
-00000249 BEA000 mov si,0xa0
-0000024C 31FF xor di,di
-0000024E B9000F mov cx,0xf00
-00000251 F3A4 rep movsb
-00000253 30C0 xor al,al
-00000255 B9A000 mov cx,0xa0
-00000258 BF000F mov di,0xf00
-0000025B F3AA rep stosb
-0000025D 5E pop si
-0000025E 5F pop di
-0000025F 81EFA000 sub di,0xa0
-00000263 58 pop ax
-00000264 1F pop ds
-00000265 EB9B jmp short 0x202
-00000267 50 push ax
-00000268 B800B8 mov ax,0xb800
-0000026B 8EC0 mov es,ax
-0000026D 8B3E3507 mov di,[0x735]
-00000271 58 pop ax
-00000272 C3 ret
-00000273 50 push ax
-00000274 51 push cx
-00000275 57 push di
-00000276 06 push es
-00000277 6A00 push byte +0x0
-00000279 E81B00 call word 0x297
-0000027C E8E8FF call word 0x267
-0000027F 31FF xor di,di
-00000281 B9D007 mov cx,0x7d0
-00000284 B020 mov al,0x20
-00000286 AA stosb
-00000287 A02707 mov al,[0x727]
-0000028A AA stosb
-0000028B E2F7 loop 0x284
-0000028D 31C0 xor ax,ax
-0000028F A33507 mov [0x735],ax
-00000292 07 pop es
-00000293 5F pop di
-00000294 59 pop cx
-00000295 58 pop ax
-00000296 C3 ret
-00000297 5B pop bx
-00000298 58 pop ax
-00000299 53 push bx
-0000029A 51 push cx
-0000029B 89C1 mov cx,ax
-0000029D 30E4 xor ah,ah
-0000029F BBA000 mov bx,0xa0
-000002A2 F7E3 mul bx
-000002A4 C1E908 shr cx,byte 0x8
-000002A7 D0E1 shl cl,1
-000002A9 01C8 add ax,cx
-000002AB A33507 mov [0x735],ax
-000002AE 59 pop cx
-000002AF C3 ret
-000002B0 52 push dx
-000002B1 A13507 mov ax,[0x735]
-000002B4 BAA000 mov dx,0xa0
-000002B7 F6F2 div dl
-000002B9 D0EC shr ah,1
-000002BB 5A pop dx
-000002BC C3 ret
-000002BD 50 push ax
-000002BE 53 push bx
-000002BF 52 push dx
-000002C0 E8EDFF call word 0x2b0
-000002C3 88C6 mov dh,al
-000002C5 88E2 mov dl,ah
-000002C7 B80002 mov ax,0x200
-000002CA 30FF xor bh,bh
-000002CC CD10 int 0x10
-000002CE 5A pop dx
-000002CF 5B pop bx
-000002D0 58 pop ax
-000002D1 C3 ret
-000002D2 683707 push word 0x737
-000002D5 E8EFFE call word 0x1c7
-000002D8 B80153 mov ax,0x5301
-000002DB 31DB xor bx,bx
-000002DD CD15 int 0x15
-000002DF 7201 jc 0x2e2
-000002E1 C3 ret
-000002E2 680707 push word 0x707
-000002E5 E8DFFE call word 0x1c7
-000002E8 682807 push word 0x728
-000002EB 50 push ax
-000002EC E80D01 call word 0x3fc
-000002EF 682807 push word 0x728
-000002F2 E8D2FE call word 0x1c7
-000002F5 EBEA jmp short 0x2e1
-000002F7 B80753 mov ax,0x5307
-000002FA BB0100 mov bx,0x1
-000002FD B90300 mov cx,0x3
-00000300 CD15 int 0x15
-00000302 7201 jc 0x305
-00000304 C3 ret
-00000305 680707 push word 0x707
-00000308 E8BCFE call word 0x1c7
-0000030B 682807 push word 0x728
-0000030E 50 push ax
-0000030F E8EA00 call word 0x3fc
-00000312 682807 push word 0x728
-00000315 E8AFFE call word 0x1c7
-00000318 E9ACFD jmp word 0xc7
-0000031B C3 ret
-0000031C 52 push dx
-0000031D 50 push ax
-0000031E 8A161A08 mov dl,[0x81a]
-00000322 30E4 xor ah,ah
-00000324 CD13 int 0x13
-00000326 58 pop ax
-00000327 5A pop dx
-00000328 C3 ret
-00000329 58 pop ax
-0000032A 59 pop cx
-0000032B 5B pop bx
-0000032C 50 push ax
-0000032D 51 push cx
-0000032E E80900 call word 0x33a
-00000331 30ED xor ch,ch
-00000333 B001 mov al,0x1
-00000335 B402 mov ah,0x2
-00000337 CD13 int 0x13
-00000339 C3 ret
-0000033A 5A pop dx
-0000033B 58 pop ax
-0000033C 52 push dx
-0000033D 31D2 xor dx,dx
-0000033F F7360E08 div word [0x80e]
-00000343 FEC2 inc dl
-00000345 88D1 mov cl,dl
-00000347 89D8 mov ax,bx
-00000349 31D2 xor dx,dx
-0000034B F7360E08 div word [0x80e]
-0000034F 31D2 xor dx,dx
-00000351 F7361008 div word [0x810]
-00000355 88D6 mov dh,dl
-00000357 88C5 mov ch,al
-00000359 8A161A08 mov dl,[0x81a]
-0000035D C3 ret
-0000035E E8BBFF call word 0x31c
-00000361 0F8262FD jc word 0xc7
-00000365 BB1B08 mov bx,0x81b
-00000368 8A161A08 mov dl,[0x81a]
-0000036C 30F6 xor dh,dh
-0000036E 30ED xor ch,ch
-00000370 B001 mov al,0x1
-00000372 B402 mov ah,0x2
-00000374 CD13 int 0x13
-00000376 BFB006 mov di,0x6b0
-00000379 BE4608 mov si,0x846
-0000037C B90B00 mov cx,0xb
-0000037F F3A4 rep movsb
-00000381 B91900 mov cx,0x19
-00000384 BE2608 mov si,0x826
-00000387 BF0108 mov di,0x801
-0000038A F3A4 rep movsb
-0000038C C3 ret
-0000038D 31C0 xor ax,ax
-0000038F CD16 int 0x16
-00000391 C3 ret
-00000392 58 pop ax
-00000393 59 pop cx
-00000394 5F pop di
-00000395 50 push ax
-00000396 89FB mov bx,di
-00000398 49 dec cx
-00000399 51 push cx
-0000039A E8F0FF call word 0x38d
-0000039D 3C0D cmp al,0xd
-0000039F 7420 jz 0x3c1
-000003A1 3C08 cmp al,0x8
-000003A3 7413 jz 0x3b8
-000003A5 3C20 cmp al,0x20
-000003A7 7C0C jl 0x3b5
-000003A9 AA stosb
-000003AA 50 push ax
-000003AB E846FE call word 0x1f4
-000003AE E80CFF call word 0x2bd
-000003B1 E2E7 loop 0x39a
-000003B3 EB0C jmp short 0x3c1
-000003B5 41 inc cx
-000003B6 E2E2 loop 0x39a
-000003B8 41 inc cx
-000003B9 39DF cmp di,bx
-000003BB 74DD jz 0x39a
-000003BD 41 inc cx
-000003BE 4F dec di
-000003BF EBE9 jmp short 0x3aa
-000003C1 30C0 xor al,al
-000003C3 AA stosb
-000003C4 58 pop ax
-000003C5 29C8 sub ax,cx
-000003C7 C3 ret
-000003C8 58 pop ax
-000003C9 5E pop si
-000003CA 50 push ax
-000003CB 51 push cx
-000003CC 31C9 xor cx,cx
-000003CE AC lodsb
-000003CF 3C00 cmp al,0x0
-000003D1 7403 jz 0x3d6
-000003D3 41 inc cx
-000003D4 EBF8 jmp short 0x3ce
-000003D6 48 dec ax
-000003D7 4E dec si
-000003D8 89C8 mov ax,cx
-000003DA 59 pop cx
-000003DB C3 ret
-000003DC 5D pop bp
-000003DD 58 pop ax
-000003DE 5F pop di
-000003DF 55 push bp
-000003E0 BBB907 mov bx,0x7b9
-000003E3 FD std
-000003E4 B90200 mov cx,0x2
-000003E7 50 push ax
-000003E8 C0E004 shl al,byte 0x4
-000003EB C0E804 shr al,byte 0x4
-000003EE D7 xlatb
-000003EF AA stosb
-000003F0 58 pop ax
-000003F1 C0E804 shr al,byte 0x4
-000003F4 D7 xlatb
-000003F5 AA stosb
-000003F6 86E0 xchg ah,al
-000003F8 E2ED loop 0x3e7
-000003FA FC cld
-000003FB C3 ret
-000003FC FD std
-000003FD 5D pop bp
-000003FE 5A pop dx
-000003FF 5F pop di
-00000400 55 push bp
-00000401 B90500 mov cx,0x5
-00000404 89D0 mov ax,dx
-00000406 31D2 xor dx,dx
-00000408 BB0A00 mov bx,0xa
-0000040B F7F3 div bx
-0000040D 92 xchg ax,dx
-0000040E 0C30 or al,0x30
-00000410 AA stosb
-00000411 E2F1 loop 0x404
-00000413 FC cld
-00000414 C3 ret
-00000415 5D pop bp
-00000416 5E pop si
-00000417 5F pop di
-00000418 55 push bp
-00000419 87F7 xchg si,di
-0000041B AC lodsb
-0000041C 88C3 mov bl,al
-0000041E 87F7 xchg si,di
-00000420 AC lodsb
-00000421 38D8 cmp al,bl
-00000423 7510 jnz 0x435
-00000425 3C00 cmp al,0x0
-00000427 7407 jz 0x430
-00000429 80FB00 cmp bl,0x0
-0000042C 7402 jz 0x430
-0000042E EBE9 jmp short 0x419
-00000430 31C0 xor ax,ax
-00000432 39C0 cmp ax,ax
-00000434 C3 ret
-00000435 B80100 mov ax,0x1
-00000438 83F802 cmp ax,byte +0x2
-0000043B C3 ret
-0000043C 5D pop bp
-0000043D 5E pop si
-0000043E 50 push ax
-0000043F 55 push bp
-00000440 89F7 mov di,si
-00000442 AC lodsb
-00000443 3C00 cmp al,0x0
-00000445 740D jz 0x454
-00000447 3C41 cmp al,0x41
-00000449 7C06 jl 0x451
-0000044B 3C5A cmp al,0x5a
-0000044D 7F02 jg 0x451
-0000044F 0C20 or al,0x20
-00000451 AA stosb
-00000452 EBEE jmp short 0x442
-00000454 5F pop di
-00000455 C3 ret
-00000456 5D pop bp
-00000457 5E pop si
-00000458 55 push bp
-00000459 57 push di
-0000045A 50 push ax
-0000045B 89F7 mov di,si
-0000045D AC lodsb
-0000045E 3C00 cmp al,0x0
-00000460 740D jz 0x46f
-00000462 3C61 cmp al,0x61
-00000464 7C06 jl 0x46c
-00000466 3C7A cmp al,0x7a
-00000468 7F02 jg 0x46c
-0000046A 24DF and al,0xdf
-0000046C AA stosb
-0000046D EBEE jmp short 0x45d
-0000046F 58 pop ax
-00000470 5F pop di
-00000471 C3 ret
-00000472 5D pop bp
-00000473 5E pop si
-00000474 55 push bp
-00000475 57 push di
-00000476 89F7 mov di,si
-00000478 56 push si
-00000479 E84CFF call word 0x3c8
-0000047C 89C1 mov cx,ax
-0000047E 89FE mov si,di
-00000480 51 push cx
-00000481 AC lodsb
-00000482 3C20 cmp al,0x20
-00000484 7502 jnz 0x488
-00000486 E2F9 loop 0x481
-00000488 59 pop cx
-00000489 4E dec si
-0000048A 41 inc cx
-0000048B F3A4 rep movsb
-0000048D 5F pop di
-0000048E C3 ret
-0000048F 5D pop bp
-00000490 5E pop si
-00000491 55 push bp
-00000492 57 push di
-00000493 56 push si
-00000494 E831FF call word 0x3c8
-00000497 89C1 mov cx,ax
-00000499 FD std
-0000049A 4E dec si
-0000049B AC lodsb
-0000049C 3C20 cmp al,0x20
-0000049E 74FB jz 0x49b
-000004A0 FC cld
-000004A1 83C602 add si,byte +0x2
-000004A4 89F7 mov di,si
-000004A6 31C0 xor ax,ax
-000004A8 AA stosb
-000004A9 5F pop di
-000004AA C3 ret
-000004AB 5D pop bp
-000004AC 5E pop si
-000004AD 5F pop di
-000004AE 55 push bp
-000004AF 51 push cx
-000004B0 52 push dx
-000004B1 89F1 mov cx,si
-000004B3 89FA mov dx,di
-000004B5 87F7 xchg si,di
-000004B7 AC lodsb
-000004B8 3C00 cmp al,0x0
-000004BA 7414 jz 0x4d0
-000004BC 88C3 mov bl,al
-000004BE 87F7 xchg si,di
-000004C0 AC lodsb