Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/niwakadev/x86_emulator_2

x86 emulator written in C++
https://github.com/niwakadev/x86_emulator_2

emulator ia-32 x86 x86-32 x86-emulator

Last synced: about 2 months ago
JSON representation

x86 emulator written in C++

Awesome Lists containing this project

README

        

# X86_EMULATOR_2

X86_EMULATOR_2 is a x86 emulator written in C++.

Haribote OS

![demo](https://user-images.githubusercontent.com/61189782/144729289-fe16a09d-d5dd-4b7d-8583-3b19e9381b3d.gif)

![スクリーンショット 2021-12-01 8.35.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373549/39b0e3eb-4877-4f96-b63b-30673e38221f.png)

![富士山](https://user-images.githubusercontent.com/61189782/143998297-d17dd067-b59a-4762-8bde-caebc8ca174b.png)

FreeDOS(REAL MODE)

![FreeDOS](https://user-images.githubusercontent.com/61189782/145657637-3331b9cf-021e-4a1e-867c-b1b49b31a852.png)

osz

![スクリーンショット 2021-12-12 21 33 31](https://user-images.githubusercontent.com/61189782/145712414-eed58221-06ef-42d8-9c6f-28fad542ae25.png)

test386




diagnostic code
Status


0x01(Conditional jumps and loops)
passed


0x02(Quick tests of unsigned 32-bit multiplication and division)
passed


0x03(Move segment registers in real mode)
passed


0x04(Store, move, scan, and compare string data in real mode)
passed


0x05(Calls in real mode)
passed


0x06(Load full pointer in real mode)
passed


0x08(GDT, LDT, PDT, and PT setup, enter protected mode)
passed


0x09(Stack functionality)
passed


0x0A(Test user mode (ring 3) switching)
passed


0x0B(Moving segment registers)
passed


0x0A(Test user mode (ring 3) switching)
passed


0x0C(Zero and sign-extension)
passed


0x0D(16-bit addressing modes (LEA))
passed


0x0E(32-bit addressing modes (LEA))
passed


0x0F(Access memory using various addressing modes)
passed


0x10(Store, move, scan, and compare string data in protected mode)
passed


0x11(Page faults and PTE bits)
failed



Build

```
make
```

Run

```
./x86 -i os_image
```

This project includes `full.img` and `haribote.img`. You can immediately run both of them on the emulator.

Language


c++14

How to use mouse

Move mouse into window

```
Click mouse on the window
```

Move mouse out of window

```
left-ctrl+left-alt+g
```

※Press left-ctrl+left-alt first, then g.

Reference

Real Mode


https://bitbucket.org/7shi/8086run/

FONT


https://github.com/dhepper/font8x8

Contact


Feel free to open an issue.
Welcome any content!!