commit 4f5f689c207ca49d25b2fe335df3491c66fb0e39 Author: Medium Fries Date: Thu Nov 29 20:47:13 2018 -0800 first thingy diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4374aa4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*o +*elf diff --git a/bochslog b/bochslog new file mode 100644 index 0000000..30846f4 --- /dev/null +++ b/bochslog @@ -0,0 +1,239 @@ +00000000000i[ ] Bochs x86 Emulator 2.6 +00000000000i[ ] Built from SVN snapshot on September 2nd, 2012 +00000000000i[ ] System configuration +00000000000i[ ] processors: 1 (cores=1, HT threads=1) +00000000000i[ ] A20 line support: yes +00000000000i[ ] IPS is set to 1000000 +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: no +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: yes +00000000000i[ ] 1G paging support: no +00000000000i[ ] MWAIT support: yes +00000000000i[ ] AVX support: no +00000000000i[ ] VMX support: 1 +00000000000i[ ] Optimization configuration +00000000000i[ ] RepeatSpeedups support: yes +00000000000i[ ] Fast function calls: yes +00000000000i[ ] Handlers Chaining speedups: no +00000000000i[ ] Devices configuration +00000000000i[ ] NE2000 support: yes +00000000000i[ ] PCI support: yes, enabled=yes +00000000000i[ ] SB16 support: yes +00000000000i[ ] USB support: yes +00000000000i[ ] VGA extension support: vbe cirrus +00000000000i[MEM0 ] allocated memory at 0x7fcf6e615010. after alignment, vector=0x7fcf6e616000 +00000000000i[MEM0 ] 32.00MB +00000000000i[MEM0 ] mem block size = 0x00100000, blocks=32 +00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('/usr/share/bochs/BIOS-bochs-latest') +00000000000i[VTIME] using 'realtime pit' synchronization method +00000000000i[ ] lt_dlhandle is 0x2e31230 +00000000000i[PLGIN] loaded plugin libbx_hdimage.so +00000000000i[ ] lt_dlhandle is 0x2e31ae0 +00000000000i[PLGIN] loaded plugin libbx_pci.so +00000000000i[ ] lt_dlhandle is 0x2e32660 +00000000000i[PLGIN] loaded plugin libbx_pci2isa.so +00000000000i[ ] lt_dlhandle is 0x2e33060 +00000000000i[PLGIN] loaded plugin libbx_acpi.so +00000000000i[ ] lt_dlhandle is 0x2e33a60 +00000000000i[PLGIN] loaded plugin libbx_cmos.so +00000000000i[ ] lt_dlhandle is 0x2e34390 +00000000000i[PLGIN] loaded plugin libbx_dma.so +00000000000i[ ] lt_dlhandle is 0x2e34e20 +00000000000i[PLGIN] loaded plugin libbx_pic.so +00000000000i[ ] lt_dlhandle is 0x2e356b0 +00000000000i[PLGIN] loaded plugin libbx_pit.so +00000000000i[ ] lt_dlhandle is 0x2e360e0 +00000000000i[PLGIN] loaded plugin libbx_floppy.so +00000000000i[ ] lt_dlhandle is 0x2e36cc0 +00000000000i[PLGIN] loaded plugin libbx_vga.so +00000000000i[ ] lt_dlhandle is 0x2e37530 +00000000000i[PLGIN] loaded plugin libbx_ioapic.so +00000000000i[ ] lt_dlhandle is 0x2e37d70 +00000000000i[PLGIN] loaded plugin libbx_keyboard.so +00000000000i[ ] lt_dlhandle is 0x2e387e0 +00000000000i[PLGIN] loaded plugin libbx_harddrv.so +00000000000i[ ] lt_dlhandle is 0x2e4a8f0 +00000000000i[PLGIN] loaded plugin libbx_pci_ide.so +00000000000i[PLGIN] init_dev of 'pci' plugin device by virtual method +00000000000i[PCI ] 440FX Host bridge present at device 0, function 0 +00000000000i[PLGIN] init_dev of 'pci2isa' plugin device by virtual method +00000000000i[PCI ] PIIX3 PCI-to-ISA bridge present at device 1, function 0 +00000000000i[PLGIN] init_dev of 'cmos' plugin device by virtual method +00000000000i[CMOS ] Using local time for initial clock +00000000000i[CMOS ] Setting initial clock to: Thu Nov 29 19:46:53 2018 (time0=1543549613) +00000000000i[PLGIN] init_dev of 'dma' plugin device by virtual method +00000000000i[DMA ] channel 4 used by cascade +00000000000i[PLGIN] init_dev of 'pic' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'pit' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'floppy' plugin device by virtual method +00000000000i[DMA ] channel 2 used by Floppy Drive +00000000000i[PLGIN] 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[MEM0 ] rom at 0xc0000/41472 ('/usr/share/bochs/VGABIOS-lgpl-latest') +00000000000i[PLGIN] init_dev of 'acpi' plugin device by virtual method +00000000000i[PCI ] ACPI Controller present at device 1, function 3 +00000000000i[PLGIN] init_dev of 'ioapic' plugin device by virtual method +00000000000i[IOAP ] initializing I/O APIC +00000000000i[MEM0 ] Register memory access handlers: 0x00000000fec00000 - 0x00000000fec00fff +00000000000i[PLGIN] init_dev of 'keyboard' plugin device by virtual method +00000000000i[KBD ] will paste characters every 1000 keyboard ticks +00000000000i[PLGIN] init_dev of 'harddrv' plugin device by virtual method +00000000000i[HD ] CD on ata0-0: 'os.iso' +00000000000i[CD1 ] load cdrom with path=os.iso +00000000000e[CD1 ] open cd failed for os.iso: No such file or directory +00000000000i[HD ] Could not locate CD-ROM, continuing with media not present +00000000000i[HD ] Using boot sequence cdrom, none, none +00000000000i[HD ] Floppy boot signature check is enabled +00000000000i[PLGIN] init_dev of 'pci_ide' plugin device by virtual method +00000000000i[PCI ] PIIX3 PCI IDE controller present at device 1, function 1 +00000000000i[PLGIN] init_dev of 'unmapped' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'biosdev' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'speaker' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'extfpuirq' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'parallel' plugin device by virtual method +00000000000i[PAR ] parallel port 1 at 0x0378 irq 7 +00000000000i[PLGIN] init_dev of 'serial' plugin device by virtual method +00000000000i[SER ] com1 at 0x03f8 irq 4 +00000000000i[PLGIN] init_dev of 'gameport' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'iodebug' plugin device by virtual method +00000000000i[PLGIN] register state of 'pci' plugin device by virtual method +00000000000i[PLGIN] register state of 'pci2isa' plugin device by virtual method +00000000000i[PLGIN] register state of 'cmos' plugin device by virtual method +00000000000i[PLGIN] register state of 'dma' plugin device by virtual method +00000000000i[PLGIN] register state of 'pic' plugin device by virtual method +00000000000i[PLGIN] register state of 'pit' plugin device by virtual method +00000000000i[PLGIN] register state of 'floppy' plugin device by virtual method +00000000000i[PLGIN] register state of 'vga' plugin device by virtual method +00000000000i[PLGIN] register state of 'unmapped' plugin device by virtual method +00000000000i[PLGIN] register state of 'biosdev' plugin device by virtual method +00000000000i[PLGIN] register state of 'speaker' plugin device by virtual method +00000000000i[PLGIN] register state of 'extfpuirq' plugin device by virtual method +00000000000i[PLGIN] register state of 'parallel' plugin device by virtual method +00000000000i[PLGIN] register state of 'serial' plugin device by virtual method +00000000000i[PLGIN] register state of 'gameport' plugin device by virtual method +00000000000i[PLGIN] register state of 'iodebug' plugin device by virtual method +00000000000i[PLGIN] register state of 'acpi' plugin device by virtual method +00000000000i[PLGIN] register state of 'ioapic' plugin device by virtual method +00000000000i[PLGIN] register state of 'keyboard' plugin device by virtual method +00000000000i[PLGIN] register state of 'harddrv' plugin device by virtual method +00000000000i[PLGIN] register state of 'pci_ide' 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 756e6547 6c65746e 49656e69 +00000000000i[CPU0 ] CPUID[0x00000001]: 00000633 00010800 00002028 1fcbfbff +00000000000i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000101 2a100000 +00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020 +00000000000i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75 +00000000000i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020 +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]: 00003028 00000000 00000000 00000000 +00000000000i[PLGIN] reset of 'pci' plugin device by virtual method +00000000000i[PLGIN] reset of 'pci2isa' plugin device by virtual method +00000000000i[PLGIN] reset of 'cmos' plugin device by virtual method +00000000000i[PLGIN] reset of 'dma' plugin device by virtual method +00000000000i[PLGIN] reset of 'pic' plugin device by virtual method +00000000000i[PLGIN] reset of 'pit' plugin device by virtual method +00000000000i[PLGIN] reset of 'floppy' plugin device by virtual method +00000000000i[PLGIN] reset of 'vga' plugin device by virtual method +00000000000i[PLGIN] reset of 'acpi' plugin device by virtual method +00000000000i[PLGIN] reset of 'ioapic' plugin device by virtual method +00000000000i[PLGIN] reset of 'keyboard' plugin device by virtual method +00000000000i[PLGIN] reset of 'harddrv' plugin device by virtual method +00000000000i[PLGIN] reset of 'pci_ide' plugin device by virtual method +00000000000i[PLGIN] reset of 'unmapped' plugin device by virtual method +00000000000i[PLGIN] reset of 'biosdev' plugin device by virtual method +00000000000i[PLGIN] reset of 'speaker' plugin device by virtual method +00000000000e[SPEAK] Failed to open /dev/console: Permission denied +00000000000e[SPEAK] Deactivating beep on console +00000000000i[PLGIN] reset of 'extfpuirq' plugin device by virtual method +00000000000i[PLGIN] reset of 'parallel' plugin device by virtual method +00000000000i[PLGIN] reset of 'serial' plugin device by virtual method +00000000000i[PLGIN] reset of 'gameport' plugin device by virtual method +00000000000i[PLGIN] reset of 'iodebug' plugin device by virtual method +00000000000i[ ] set SIGINT handler to bx_debug_ctrlc_handler +00000000025i[MEM0 ] allocate_block: block=0x0 used 0x1 of 0x20 +00000004661i[BIOS ] $Revision: 11318 $ $Date: 2012-08-06 19:59:54 +0200 (Mo, 06. Aug 2012) $ +00000318321i[KBD ] reset-disable command received +00000319563i[BIOS ] Starting rombios32 +00000320005i[BIOS ] Shutdown flag 0 +00000320602i[BIOS ] ram_size=0x02000000 +00000321030i[BIOS ] ram_end=32MB +00000333047i[BIOS ] Found 1 cpu(s) +00000347228i[BIOS ] bios_table_addr: 0x000fa438 end=0x000fcc00 +00000675023i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) +00001002955i[P2I ] PCI IRQ routing: PIRQA# set to 0x0b +00001002979i[P2I ] PCI IRQ routing: PIRQB# set to 0x09 +00001003003i[P2I ] PCI IRQ routing: PIRQC# set to 0x0b +00001003027i[P2I ] PCI IRQ routing: PIRQD# set to 0x09 +00001003037i[P2I ] write: ELCR2 = 0x0a +00001003816i[BIOS ] PIIX3/PIIX4 init: elcr=00 0a +00001011496i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 class=0x0600 +00001013775i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 class=0x0601 +00001015893i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 class=0x0101 +00001016122i[PIDE ] new BM-DMA address: 0xc000 +00001016742i[BIOS ] region 4: 0x0000c000 +00001018776i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 class=0x0680 +00001019006i[ACPI ] new irq line = 11 +00001019020i[ACPI ] new irq line = 9 +00001019047i[ACPI ] new PM base address: 0xb000 +00001019061i[ACPI ] new SM base address: 0xb100 +00001019089i[PCI ] setting SMRAM control register to 0x4a +00001183183i[CPU0 ] Enter to System Management Mode +00001183183i[CPU0 ] enter_system_management_mode: temporary disable VMX while in SMM mode +00001183193i[CPU0 ] RSM: Resuming from System Management Mode +00001347214i[PCI ] setting SMRAM control register to 0x0a +00001362116i[BIOS ] MP table addr=0x000fa510 MPC table addr=0x000fa440 size=0xc8 +00001363931i[BIOS ] SMBIOS table addr=0x000fa520 +00001363982i[MEM0 ] allocate_block: block=0x1f used 0x2 of 0x20 +00001366910i[BIOS ] Firmware waking vector 0x1ff00cc +00001371769i[BIOS ] ACPI tables: RSDP addr=0x000fa640 ACPI DATA addr=0x01ff0000 size=0x1f22 +00001371806i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) +00001372537i[BIOS ] bios_table_cur_addr: 0x000fa664 +00001500155i[VBIOS] VGABios $Id: vgabios.c,v 1.75 2011/10/15 14:07:21 vruppert Exp $ +00001500226i[BXVGA] VBE known Display Interface b0c0 +00001500258i[BXVGA] VBE known Display Interface b0c5 +00001503183i[VBIOS] VBE Bios $Id: vbe.c,v 1.64 2011/07/19 18:25:05 vruppert Exp $ +00005715308i[BIOS ] IDE time out +00263771906e[HD ] ata0-0: atapi_cmd_error: key=02 asc=3a +00263774581i[BIOS ] ata_is_ready returned 1 +00263775099e[HD ] ata0-0: atapi_cmd_error: key=02 asc=3a +00263798589i[BIOS ] CDROM boot failure code : 0003 +00263853597p[BIOS ] >>PANIC<< No bootable device. +00263853597i[CPU0 ] CPU is in real mode (active) +00263853597i[CPU0 ] CS.mode = 16 bit +00263853597i[CPU0 ] SS.mode = 16 bit +00263853597i[CPU0 ] EFER = 0x00000000 +00263853597i[CPU0 ] | EAX=0000040a EBX=0000cd04 ECX=00090004 EDX=00000402 +00263853597i[CPU0 ] | ESP=0000ffaa EBP=0000ffae ESI=000e0000 EDI=0000f76c +00263853597i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df if tf sf ZF af PF cf +00263853597i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D +00263853597i[CPU0 ] | CS:f000( 0004| 0| 0) 000f0000 0000ffff 0 0 +00263853597i[CPU0 ] | DS:f000( 0005| 0| 0) 000f0000 0000ffff 0 0 +00263853597i[CPU0 ] | SS:0000( 0005| 0| 0) 00000000 0000ffff 0 0 +00263853597i[CPU0 ] | ES:0ffc( 0005| 0| 0) 0000ffc0 0000ffff 0 0 +00263853597i[CPU0 ] | FS:0000( 0005| 0| 0) 00000000 0000ffff 0 0 +00263853597i[CPU0 ] | GS:0000( 0005| 0| 0) 00000000 0000ffff 0 0 +00263853597i[CPU0 ] | EIP=0000054b (0000054a) +00263853597i[CPU0 ] | CR0=0x60000010 CR2=0x00000000 +00263853597i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 +00263853597i[CMOS ] Last time is 1543549876 (Thu Nov 29 19:51:16 2018) +00263853597i[CTRL ] quit_sim called with exit code 1 diff --git a/bochslog.txt b/bochslog.txt new file mode 100644 index 0000000..27eb411 --- /dev/null +++ b/bochslog.txt @@ -0,0 +1,241 @@ +00000000000i[ ] Bochs x86 Emulator 2.6 +00000000000i[ ] Built from SVN snapshot on September 2nd, 2012 +00000000000i[ ] System configuration +00000000000i[ ] processors: 1 (cores=1, HT threads=1) +00000000000i[ ] A20 line support: yes +00000000000i[ ] IPS is set to 1000000 +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: no +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: yes +00000000000i[ ] 1G paging support: no +00000000000i[ ] MWAIT support: yes +00000000000i[ ] AVX support: no +00000000000i[ ] VMX support: 1 +00000000000i[ ] Optimization configuration +00000000000i[ ] RepeatSpeedups support: yes +00000000000i[ ] Fast function calls: yes +00000000000i[ ] Handlers Chaining speedups: no +00000000000i[ ] Devices configuration +00000000000i[ ] NE2000 support: yes +00000000000i[ ] PCI support: yes, enabled=yes +00000000000i[ ] SB16 support: yes +00000000000i[ ] USB support: yes +00000000000i[ ] VGA extension support: vbe cirrus +00000000000i[MEM0 ] allocated memory at 0x7efcb7f89010. after alignment, vector=0x7efcb7f8a000 +00000000000i[MEM0 ] 32.00MB +00000000000i[MEM0 ] mem block size = 0x00100000, blocks=32 +00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('/usr/share/bochs/BIOS-bochs-latest') +00000000000i[VTIME] using 'realtime pit' synchronization method +00000000000i[ ] lt_dlhandle is 0x466e230 +00000000000i[PLGIN] loaded plugin libbx_hdimage.so +00000000000i[ ] lt_dlhandle is 0x466eae0 +00000000000i[PLGIN] loaded plugin libbx_pci.so +00000000000i[ ] lt_dlhandle is 0x466f660 +00000000000i[PLGIN] loaded plugin libbx_pci2isa.so +00000000000i[ ] lt_dlhandle is 0x4670060 +00000000000i[PLGIN] loaded plugin libbx_acpi.so +00000000000i[ ] lt_dlhandle is 0x4670a60 +00000000000i[PLGIN] loaded plugin libbx_cmos.so +00000000000i[ ] lt_dlhandle is 0x4671390 +00000000000i[PLGIN] loaded plugin libbx_dma.so +00000000000i[ ] lt_dlhandle is 0x4671e20 +00000000000i[PLGIN] loaded plugin libbx_pic.so +00000000000i[ ] lt_dlhandle is 0x46726b0 +00000000000i[PLGIN] loaded plugin libbx_pit.so +00000000000i[ ] lt_dlhandle is 0x46730e0 +00000000000i[PLGIN] loaded plugin libbx_floppy.so +00000000000i[ ] lt_dlhandle is 0x4673cc0 +00000000000i[PLGIN] loaded plugin libbx_vga.so +00000000000i[ ] lt_dlhandle is 0x4674530 +00000000000i[PLGIN] loaded plugin libbx_ioapic.so +00000000000i[ ] lt_dlhandle is 0x4674d70 +00000000000i[PLGIN] loaded plugin libbx_keyboard.so +00000000000i[ ] lt_dlhandle is 0x46757e0 +00000000000i[PLGIN] loaded plugin libbx_harddrv.so +00000000000i[ ] lt_dlhandle is 0x46878f0 +00000000000i[PLGIN] loaded plugin libbx_pci_ide.so +00000000000i[PLGIN] init_dev of 'pci' plugin device by virtual method +00000000000i[PCI ] 440FX Host bridge present at device 0, function 0 +00000000000i[PLGIN] init_dev of 'pci2isa' plugin device by virtual method +00000000000i[PCI ] PIIX3 PCI-to-ISA bridge present at device 1, function 0 +00000000000i[PLGIN] init_dev of 'cmos' plugin device by virtual method +00000000000i[CMOS ] Using local time for initial clock +00000000000i[CMOS ] Setting initial clock to: Thu Nov 29 19:49:46 2018 (time0=1543549786) +00000000000i[PLGIN] init_dev of 'dma' plugin device by virtual method +00000000000i[DMA ] channel 4 used by cascade +00000000000i[PLGIN] init_dev of 'pic' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'pit' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'floppy' plugin device by virtual method +00000000000i[DMA ] channel 2 used by Floppy Drive +00000000000i[PLGIN] 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[MEM0 ] rom at 0xc0000/41472 ('/usr/share/bochs/VGABIOS-lgpl-latest') +00000000000i[PLGIN] init_dev of 'acpi' plugin device by virtual method +00000000000i[PCI ] ACPI Controller present at device 1, function 3 +00000000000i[PLGIN] init_dev of 'ioapic' plugin device by virtual method +00000000000i[IOAP ] initializing I/O APIC +00000000000i[MEM0 ] Register memory access handlers: 0x00000000fec00000 - 0x00000000fec00fff +00000000000i[PLGIN] init_dev of 'keyboard' plugin device by virtual method +00000000000i[KBD ] will paste characters every 1000 keyboard ticks +00000000000i[PLGIN] init_dev of 'harddrv' plugin device by virtual method +00000000000i[HD ] CD on ata0-0: 'os.iso' +00000000000i[CD1 ] load cdrom with path=os.iso +00000000000i[CD1 ] Opening image file as a cd. +00000000000i[HD ] Media present in CD-ROM drive +00000000000i[HD ] Capacity is 235 sectors (0.46 MB) +00000000000i[HD ] Using boot sequence cdrom, none, none +00000000000i[HD ] Floppy boot signature check is enabled +00000000000i[PLGIN] init_dev of 'pci_ide' plugin device by virtual method +00000000000i[PCI ] PIIX3 PCI IDE controller present at device 1, function 1 +00000000000i[PLGIN] init_dev of 'unmapped' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'biosdev' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'speaker' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'extfpuirq' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'parallel' plugin device by virtual method +00000000000i[PAR ] parallel port 1 at 0x0378 irq 7 +00000000000i[PLGIN] init_dev of 'serial' plugin device by virtual method +00000000000i[SER ] com1 at 0x03f8 irq 4 +00000000000i[PLGIN] init_dev of 'gameport' plugin device by virtual method +00000000000i[PLGIN] init_dev of 'iodebug' plugin device by virtual method +00000000000i[PLGIN] register state of 'pci' plugin device by virtual method +00000000000i[PLGIN] register state of 'pci2isa' plugin device by virtual method +00000000000i[PLGIN] register state of 'cmos' plugin device by virtual method +00000000000i[PLGIN] register state of 'dma' plugin device by virtual method +00000000000i[PLGIN] register state of 'pic' plugin device by virtual method +00000000000i[PLGIN] register state of 'pit' plugin device by virtual method +00000000000i[PLGIN] register state of 'floppy' plugin device by virtual method +00000000000i[PLGIN] register state of 'vga' plugin device by virtual method +00000000000i[PLGIN] register state of 'unmapped' plugin device by virtual method +00000000000i[PLGIN] register state of 'biosdev' plugin device by virtual method +00000000000i[PLGIN] register state of 'speaker' plugin device by virtual method +00000000000i[PLGIN] register state of 'extfpuirq' plugin device by virtual method +00000000000i[PLGIN] register state of 'parallel' plugin device by virtual method +00000000000i[PLGIN] register state of 'serial' plugin device by virtual method +00000000000i[PLGIN] register state of 'gameport' plugin device by virtual method +00000000000i[PLGIN] register state of 'iodebug' plugin device by virtual method +00000000000i[PLGIN] register state of 'acpi' plugin device by virtual method +00000000000i[PLGIN] register state of 'ioapic' plugin device by virtual method +00000000000i[PLGIN] register state of 'keyboard' plugin device by virtual method +00000000000i[PLGIN] register state of 'harddrv' plugin device by virtual method +00000000000i[PLGIN] register state of 'pci_ide' 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 756e6547 6c65746e 49656e69 +00000000000i[CPU0 ] CPUID[0x00000001]: 00000633 00010800 00002028 1fcbfbff +00000000000i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000 +00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000101 2a100000 +00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020 +00000000000i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75 +00000000000i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020 +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]: 00003028 00000000 00000000 00000000 +00000000000i[PLGIN] reset of 'pci' plugin device by virtual method +00000000000i[PLGIN] reset of 'pci2isa' plugin device by virtual method +00000000000i[PLGIN] reset of 'cmos' plugin device by virtual method +00000000000i[PLGIN] reset of 'dma' plugin device by virtual method +00000000000i[PLGIN] reset of 'pic' plugin device by virtual method +00000000000i[PLGIN] reset of 'pit' plugin device by virtual method +00000000000i[PLGIN] reset of 'floppy' plugin device by virtual method +00000000000i[PLGIN] reset of 'vga' plugin device by virtual method +00000000000i[PLGIN] reset of 'acpi' plugin device by virtual method +00000000000i[PLGIN] reset of 'ioapic' plugin device by virtual method +00000000000i[PLGIN] reset of 'keyboard' plugin device by virtual method +00000000000i[PLGIN] reset of 'harddrv' plugin device by virtual method +00000000000i[PLGIN] reset of 'pci_ide' plugin device by virtual method +00000000000i[PLGIN] reset of 'unmapped' plugin device by virtual method +00000000000i[PLGIN] reset of 'biosdev' plugin device by virtual method +00000000000i[PLGIN] reset of 'speaker' plugin device by virtual method +00000000000e[SPEAK] Failed to open /dev/console: Permission denied +00000000000e[SPEAK] Deactivating beep on console +00000000000i[PLGIN] reset of 'extfpuirq' plugin device by virtual method +00000000000i[PLGIN] reset of 'parallel' plugin device by virtual method +00000000000i[PLGIN] reset of 'serial' plugin device by virtual method +00000000000i[PLGIN] reset of 'gameport' plugin device by virtual method +00000000000i[PLGIN] reset of 'iodebug' plugin device by virtual method +00000000000i[ ] set SIGINT handler to bx_debug_ctrlc_handler +00000000025i[MEM0 ] allocate_block: block=0x0 used 0x1 of 0x20 +00000004661i[BIOS ] $Revision: 11318 $ $Date: 2012-08-06 19:59:54 +0200 (Mo, 06. Aug 2012) $ +00000318321i[KBD ] reset-disable command received +00000319563i[BIOS ] Starting rombios32 +00000320005i[BIOS ] Shutdown flag 0 +00000320602i[BIOS ] ram_size=0x02000000 +00000321030i[BIOS ] ram_end=32MB +00000333038i[BIOS ] Found 1 cpu(s) +00000347219i[BIOS ] bios_table_addr: 0x000fa438 end=0x000fcc00 +00000675014i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) +00001002946i[P2I ] PCI IRQ routing: PIRQA# set to 0x0b +00001002970i[P2I ] PCI IRQ routing: PIRQB# set to 0x09 +00001002994i[P2I ] PCI IRQ routing: PIRQC# set to 0x0b +00001003018i[P2I ] PCI IRQ routing: PIRQD# set to 0x09 +00001003028i[P2I ] write: ELCR2 = 0x0a +00001003807i[BIOS ] PIIX3/PIIX4 init: elcr=00 0a +00001011487i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 class=0x0600 +00001013766i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 class=0x0601 +00001015884i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 class=0x0101 +00001016113i[PIDE ] new BM-DMA address: 0xc000 +00001016733i[BIOS ] region 4: 0x0000c000 +00001018767i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 class=0x0680 +00001018997i[ACPI ] new irq line = 11 +00001019011i[ACPI ] new irq line = 9 +00001019038i[ACPI ] new PM base address: 0xb000 +00001019052i[ACPI ] new SM base address: 0xb100 +00001019080i[PCI ] setting SMRAM control register to 0x4a +00001183174i[CPU0 ] Enter to System Management Mode +00001183174i[CPU0 ] enter_system_management_mode: temporary disable VMX while in SMM mode +00001183184i[CPU0 ] RSM: Resuming from System Management Mode +00001347205i[PCI ] setting SMRAM control register to 0x0a +00001362107i[BIOS ] MP table addr=0x000fa510 MPC table addr=0x000fa440 size=0xc8 +00001363922i[BIOS ] SMBIOS table addr=0x000fa520 +00001363973i[MEM0 ] allocate_block: block=0x1f used 0x2 of 0x20 +00001366901i[BIOS ] Firmware waking vector 0x1ff00cc +00001371760i[BIOS ] ACPI tables: RSDP addr=0x000fa640 ACPI DATA addr=0x01ff0000 size=0x1f22 +00001371797i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) +00001372528i[BIOS ] bios_table_cur_addr: 0x000fa664 +00001500146i[VBIOS] VGABios $Id: vgabios.c,v 1.75 2011/10/15 14:07:21 vruppert Exp $ +00001500217i[BXVGA] VBE known Display Interface b0c0 +00001500249i[BXVGA] VBE known Display Interface b0c5 +00001503174i[VBIOS] VBE Bios $Id: vbe.c,v 1.64 2011/07/19 18:25:05 vruppert Exp $ +00005715368i[BIOS ] IDE time out +00114208035i[BIOS ] Booting from 07c0:0000 +00114308453i[BIOS ] int13_harddisk: function 41, unmapped device for ELDL=80 +00114312133i[BIOS ] int13_harddisk: function 08, unmapped device for ELDL=80 +00114315798i[BIOS ] *** int 15h function AX=00c0, BX=0000 not yet supported! +00115909810i[MEM0 ] allocate_block: block=0x1 used 0x3 of 0x20 +00325473000p[SDL ] >>PANIC<< POWER button turned off. +00325473000i[CPU0 ] CPU is in protected mode (active) +00325473000i[CPU0 ] CS.mode = 32 bit +00325473000i[CPU0 ] SS.mode = 32 bit +00325473000i[CPU0 ] EFER = 0x00000000 +00325473000i[CPU0 ] | EAX=1234abcd EBX=0002cd80 ECX=00000001 EDX=00000000 +00325473000i[CPU0 ] | ESP=00067ed0 EBP=00067ee0 ESI=0002cef0 EDI=0002cef1 +00325473000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df if tf sf ZF af PF cf +00325473000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D +00325473000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 1 +00325473000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 +00325473000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 +00325473000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1 +00325473000i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 +00325473000i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 +00325473000i[CPU0 ] | EIP=00100011 (00100011) +00325473000i[CPU0 ] | CR0=0x60000011 CR2=0x00000000 +00325473000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 +00325473000i[CMOS ] Last time is 1543550111 (Thu Nov 29 19:55:11 2018) +00325473000i[CTRL ] quit_sim called with exit code 1 diff --git a/bochsrc.conf b/bochsrc.conf new file mode 100644 index 0000000..96345f8 --- /dev/null +++ b/bochsrc.conf @@ -0,0 +1,9 @@ +megs: 32 +display_library: sdl +romimage: file=/usr/share/bochs/BIOS-bochs-latest +vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest +ata0-master: type=cdrom, path=os.iso, status=inserted +boot: cdrom +log: bochslog.txt +clock: sync=realtime, time0=local +cpu: count=1, ips=1000000 diff --git a/iso.sh b/iso.sh new file mode 100644 index 0000000..e2d9c2e --- /dev/null +++ b/iso.sh @@ -0,0 +1,10 @@ + genisoimage -R \ + -b boot/grub/stage2_eltorito \ + -no-emul-boot \ + -boot-load-size 4 \ + -A os \ + -input-charset utf8 \ + -quiet \ + -boot-info-table \ + -o os.iso \ + iso diff --git a/link.ld b/link.ld new file mode 100644 index 0000000..d81ecda --- /dev/null +++ b/link.ld @@ -0,0 +1,29 @@ +ENTRY(loader) /* entry label */ + +SECTIONS { + /* code will load at 1 MB because grub takes that space */ + /* think of this like the initial offset for _the everthing_ */ + . = 0x00100000; + + /* align instruction block to 4kb */ + .text ALIGN (0x1000) : + { + *(.text) + } + + /* align rodata to 4KB off the previous as well */ + .rodata ALIGN (0x1000) : + { + *(.rodata*) + } + .data ALIGN (0x1000) : + { + *(.data*) + } + + .bss ALIGN (0x1000) : + { + *(COMMON) + *(.bss) + } +} diff --git a/loader.asm b/loader.asm new file mode 100644 index 0000000..8b34b43 --- /dev/null +++ b/loader.asm @@ -0,0 +1,20 @@ +; since we have no stack we have to create one for the OS + +global loader +MAGIC_NUMBER equ 0x1BADB002 +FLAGS equ 0x0 +CHECKSUM equ -MAGIC_NUMBER + +section .text +; align all instructions to 4 byte boundary by the x86 instruction set law +align 4 + ; dropping our magic and other things into memory + dd MAGIC_NUMBER + dd FLAGS + dd CHECKSUM + +loader: + mov eax, 0X1234ABCD + +.loop: + jmp .loop diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e7f0e40 --- /dev/null +++ b/readme.md @@ -0,0 +1,6 @@ +# Gucci gang + +My attempt to create an operating system to learn more about how things work at a lower level. + +I'm not satisfied with, _dude trust me_, with regards to how something(anything) really works. +For that reason I'm partial to _trial by fire_ when learning because, for me at least, failure isn't an option to learning; it's a requirement. diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..d0906ca --- /dev/null +++ b/setup.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Setup script to grab any and all dependancies needed to build this on any of my machines +bochs_=$(dpkg --list | grep bochs) +if [ "$bochs_" == "" ] +then + # install bochs shiz + sudo apt-get update + sudo apt-get install bochs bochs-sdl +else + echo 'Nothing to install' +fi