From 95c5169fceb96cf03d3be216da102e4ea6c096b7 Mon Sep 17 00:00:00 2001 From: Lucas van Lierop Date: Thu, 23 Jun 2016 20:16:16 +0200 Subject: [PATCH 1/2] Added Dockerfile which builds floppy image --- jaytaph-bootsector-asm/Dockerfile | 24 ++++++++++++++++++++++++ jaytaph-bootsector-asm/install.sh | 23 ----------------------- 2 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 jaytaph-bootsector-asm/Dockerfile delete mode 100644 jaytaph-bootsector-asm/install.sh diff --git a/jaytaph-bootsector-asm/Dockerfile b/jaytaph-bootsector-asm/Dockerfile new file mode 100644 index 0000000..1983bae --- /dev/null +++ b/jaytaph-bootsector-asm/Dockerfile @@ -0,0 +1,24 @@ +FROM debian:jessie + +RUN apt-get update +RUN apt-get install -yy dosfstools mtools nasm + +# Creates an empty 1.44MB floppy image +RUN dd if=/dev/zero of=mr_floppy.img bs=512 count=2880 + +# Format it +RUN mkfs.msdos mr_floppy.img + +# Todo see if names can be copied to disk on runtime +#RUN mcopy -i mr_floppy.img /var/names/current ::/NAMES.DAT +RUN mdir -i mr_floppy.img + +COPY raffler.S raffler.S +RUN nasm -o bootsector.img raffler.S + +# copy bootsector to the start of the floppy image +RUN dd if=bootsector.img of=mr_floppy.img bs=512 count=1 conv=notrunc + +# todo copy names to floppy +# boot floppy in headless Bochs which will send output to VNC +# Set up VNC client to get output diff --git a/jaytaph-bootsector-asm/install.sh b/jaytaph-bootsector-asm/install.sh deleted file mode 100644 index fb37916..0000000 --- a/jaytaph-bootsector-asm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# -# This stuff uses linux. Deal with it! -# - -sudo apt-get -yy install dosfstools mtools nasm - -# Creates an empty 1.44MB floppy image -dd if=/dev/zero of=mr_floppy.img bs=512 count=2880 - -# Format it -sudo mkfs.msdos mr_floppy.img - -mcopy -i mr_floppy.img ../example_names ::/NAMES.DAT -mdir -i mr_floppy.img - -nasm -o bootsector.img raffler.S - -# copy bootsector to the start of the floppy image -dd if=bootsector.img of=mr_floppy.img bs=512 count=1 conv=notrunc - -# Mr Floppy is finished, run vboxrun.sh or some other way to get it running From 4c40942e13f7790ac511587c690b0ffd8f91d3aa Mon Sep 17 00:00:00 2001 From: Lucas van Lierop Date: Sun, 26 Jun 2016 21:45:55 +0200 Subject: [PATCH 2/2] WIP --- jaytaph-bootsector-asm/Dockerfile | 24 +++++++++++++++--------- jaytaph-bootsector-asm/bochsrc | 14 ++++++-------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/jaytaph-bootsector-asm/Dockerfile b/jaytaph-bootsector-asm/Dockerfile index 1983bae..86fc7d5 100644 --- a/jaytaph-bootsector-asm/Dockerfile +++ b/jaytaph-bootsector-asm/Dockerfile @@ -1,24 +1,30 @@ FROM debian:jessie RUN apt-get update -RUN apt-get install -yy dosfstools mtools nasm +RUN apt-get install -yy dosfstools mtools nasm bochs bochs-x bochs-sdl -# Creates an empty 1.44MB floppy image -RUN dd if=/dev/zero of=mr_floppy.img bs=512 count=2880 +# Compile assembly raffler +COPY raffler.S raffler.S +RUN nasm -o bootsector.img raffler.S -# Format it -RUN mkfs.msdos mr_floppy.img +# Create an empty 1.44MB floppy image and format it +RUN dd if=/dev/zero of=mr_floppy.img bs=512 count=2880 && \ + mkfs.msdos mr_floppy.img # Todo see if names can be copied to disk on runtime -#RUN mcopy -i mr_floppy.img /var/names/current ::/NAMES.DAT +RUN echo "bla\nbla2" > /tmp/names.txt +RUN cat /tmp/names.txt +RUN mcopy -i mr_floppy.img /tmp/names.txt ::/NAMES.DAT RUN mdir -i mr_floppy.img -COPY raffler.S raffler.S -RUN nasm -o bootsector.img raffler.S - # copy bootsector to the start of the floppy image RUN dd if=bootsector.img of=mr_floppy.img bs=512 count=1 conv=notrunc + # todo copy names to floppy # boot floppy in headless Bochs which will send output to VNC # Set up VNC client to get output + +COPY bochsrc bochsrc + +CMD bochs -f bochsrc -q diff --git a/jaytaph-bootsector-asm/bochsrc b/jaytaph-bootsector-asm/bochsrc index 05fb234..5d47f8f 100644 --- a/jaytaph-bootsector-asm/bochsrc +++ b/jaytaph-bootsector-asm/bochsrc @@ -1,7 +1,7 @@ # configuration file generated by Bochs -plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, iodebug=1, ioapic=1 +plugin_ctrl: unmapped=1, biosdev=1, extfpuirq=1, iodebug=1, ioapic=1 config_interface: textconfig -display_library: x +display_library: nogui memory: host=32, guest=32 romimage: file="/usr/local/share/bochs/BIOS-bochs-latest" vgaromimage: file="/usr/local/share/bochs/VGABIOS-lgpl-latest" @@ -21,17 +21,15 @@ com3: enabled=0 com4: enabled=0 usb_uhci: enabled=0 usb_ohci: enabled=0 -i440fxsupport: enabled=0 -vga_update_interval: 50000 -vga: extension=vbe -cpu: count=1, ips=4000000, reset_on_triple_fault=1, ignore_bad_msrs=1 -cpuid: cpuid_limit_winnt=0, mmx=1, sse=sse2, xapic=1, sep=1, aes=0, xsave=0, movbe=0 +pci: enabled=0 +vga: extension=vbe, update_freq=10 +cpu: cpuid_limit_winnt=0, count=1, ips=4000000, reset_on_triple_fault=1, ignore_bad_msrs=1 +cpuid: mmx=1, sse=sse2, sep=1, aes=0, xsave=0, movbe=0 cpuid: stepping=3, vendor_string="GenuineIntel", brand_string=" Intel(R) Pentium(R) 4 CPU " print_timestamps: enabled=0 debugger_log: - magic_break: enabled=1 port_e9_hack: enabled=0 -text_snapshot_check: enabled=0 private_colormap: enabled=0 clock: sync=none, time0=local # no cmosimage