diff options
author | David <dbphillipsnz@gmail.com> | 2013-07-19 11:53:18 +1200 |
---|---|---|
committer | David <dbphillipsnz@gmail.com> | 2013-07-19 11:53:18 +1200 |
commit | 9bfb5f5468331949c6a9f9b3e0590e481dd6492e (patch) | |
tree | 2740732d4372d34e451d7ff99d0de50181327508 | |
parent | 3155f0ec7fb015225c6ae42f782b8c25f2d79f88 (diff) | |
download | jaspos-9bfb5f5468331949c6a9f9b3e0590e481dd6492e.tar.xz |
Added 'Emergency Shell', started work on basic disk I/O
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | TODO | 6 | ||||
-rw-r--r-- | apm.asm | 49 | ||||
-rw-r--r-- | bochsout.txt | 159 | ||||
-rw-r--r-- | disasm | 1054 | ||||
-rw-r--r-- | jasposkernel.asm | 73 | ||||
-rw-r--r-- | shell.asm | 8 | ||||
-rw-r--r-- | textvga.asm | 137 |
9 files changed, 5 insertions, 1489 deletions
@@ -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 @@ -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 @@ -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 |