• Stars
    star
    162
  • Rank 232,284 (Top 5 %)
  • Language
    Assembly
  • License
    MIT License
  • Created over 4 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bootable minesweeper game in a 512-byte boot sector

BootMine

Ever wanted to play minesweeper but didn't have an OS to run it in? No? Really no??

BootMine is an entire minesweeper game crammed into 512 bytes, the size of a BIOS boot sector. It can boot on any PC that supports BIOS booting, without running inside an OS. In a sense, BootMine is its own OS that can do nothing but run minesweeper.

demo

Controls

Key Action
Space 🔲 Clear cell
🕹 Move cursor
Enter 🚩 Place flag
R 💣 Restart game (only works on GAME WIN and GAME OVER screens)

Building

Make sure nasm and make are installed, then run:

make

Alternatively, prebuilt versions can be downloaded from the releases page.

Installing

The 512-byte file bootmine.img can be written to the first sector of a floppy disk (or USB drive), with a command like dd if=bootmine.img of=/dev/sdb. Keep in mind that this will effectively destroy all data on the drive.

Emulation

Makefile targets are provided for emulating in QEMU and Bochs.

make qemu
make bochs

NOTE: The way Bochs implements the rdtsc instruction appears to be bad as a source of entropy, so the bomb locations are predictable.

DOS

BootMine has DOS support too! Running make also produces bootmine.com that can be run in DOS. There are Makefile targets for easily running in DOSBox and DOSEMU.

make dosbox
make dosemu

Links

Credits

More Repositories

1

pwninit

pwninit - automate starting binary exploit challenges
Rust
762
star
2

org-fragtog

Automatically toggle Org mode LaTeX fragment previews as the cursor enters and exits them
Emacs Lisp
369
star
3

good-scroll.el

Attempt at good pixel-based smooth scrolling in Emacs
Emacs Lisp
191
star
4

godot-portal-demo

Experimenting with portals in Godot Engine
GDScript
79
star
5

WineBox86.apk

x86 Wine on ARM Android with Box86 (very much WIP)
Java
66
star
6

unf

UNixize Filename -- replace annoying anti-unix characters in filenames
Rust
57
star
7

xkcd-unreachable-rs

A Rust macro xkcd_unreachable!() inspired by https://xkcd.com/2200/
Rust
41
star
8

yew-octicons

Easy support for Octicons in yew
Rust
18
star
9

nix-snapd

Snap package for Nix and NixOS
Nix
14
star
10

userland-execve-rust

An implementation of execve() in user space
Rust
10
star
11

Sandvox

The 3D voxel falling-sand game
Rust
9
star
12

hpmor-man-pages

Harry Potter and the Methods of Rationality, Unix Man Page Edition
Python
5
star
13

nix-flatpak

Declarative Flatpak management for the Nix package manager
Python
5
star
14

llvm-rustc-bug-repro

Rust
3
star
15

turboproof

A dependently-typed lisp and proof assistant [IN DEVELOPMENT]
Rust
3
star
16

quoftc

The Quoft Programming Language Compiler
C
3
star
17

MarioLANG

A minimal MarioLANG interpreter
C
3
star
18

deriv-calc

A derivative calculator and equation simplifier in Python.
Python
3
star
19

lambda-cove

https://lambdacove.netlify.com/
HTML
2
star
20

OS

A simple OS in C
C
2
star
21

discord-bedtime

A Discord bot reminding you to sleep
Rust
2
star
22

lambda

Lambda calculus REPL written in C
C
2
star
23

nonsense-discord-bot

Rust
2
star
24

rust-spinners-rand

Get a random `Spinners` from the `spinners` crate
Rust
2
star
25

rust-musl-builder-lzma

rust-musl-builder with liblzma support
Dockerfile
2
star
26

web-dump

/tmp but for static html
HTML
2
star
27

Chip8

A chip8 emulator in C and ncurses
C
2
star
28

coq-proofs

My proofs for the Coq proof assistant
Coq
1
star
29

qemu-libretro

QEMU libretro core port
C
1
star
30

angr-bad-edition

A mediocre angr clone (WIP)
Rust
1
star
31

sandy

A fork of sandy with mods to make it more like vim
C
1
star
32

ffmpeg-fetch-small-samples

Script to fetch small files from https://samples.ffmpeg.org/
Python
1
star
33

raycaster

C
1
star
34

brainfsym

Rust library for symbolically executing brainf*** code
Rust
1
star
35

gcc-mips-spim

Buggy WIP toolchain to compile C to SPIM-compatible MIPS assembly
C
1
star
36

nixos-framework-led

NixOS module for changing the LED color on Framework laptops
Nix
1
star
37

nvim-plumb

Neovim plugin for integration with the Plan 9 plumber
Python
1
star
38

toy-git-rs

Toy git implementation in Rust
Rust
1
star