Skip to content
forked from jhhoward/Faux86

๐Ÿ’พ MS-DOS running on an 8086 and 80186 bare-metal emulator for Raspberry Pi

License

Notifications You must be signed in to change notification settings

cttynul/f86-dos

This branch is 9 commits ahead of jhhoward/Faux86:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f1caf11 ยท Aug 20, 2022

History

21 Commits
Aug 20, 2022
Aug 20, 2022
Oct 29, 2019
Aug 20, 2022
Oct 29, 2019
Nov 11, 2018
Nov 11, 2018
Aug 20, 2022

Repository files navigation

F86-DOS

Powered by Faux86: A portable, open-source 8086 PC emulator for bare metal Raspberry Pi

F86-DOS is an "Operating System" powered by Faux86 designed to be run bare metal on a Raspberry Pi. This means that the emulator runs directly on the hardware so no OS needs to booted on the Pi.

Features

  • 8086 and 80186 instruction set emulation
  • CGA / EGA / VGA emulation is mostly complete
  • PC speaker, Adlib and Soundblaster sound emulation
  • Serial mouse emulation

Installation

  1. Download Release
  2. Flash it on a small SD card using Balena Etcher or Win32DiskImager
  3. Profit

Usage with Raspberry Pi

By default Faux86 boots from a floppy image dosboot.img, and filename is hardcoded in kernel.cpp

Since MS-DOS is accessing the SD card directly, it does not work for large SD card types. I have found the best solution is to use a small capacity SD card and flash the image as a 32MB card.

USB keyboard and mouse should be plugged in before booting - hot swapping of devices is not supported.

Partition scheme

  • A:\ MS-DOS Read-Only floppy image.
  • C:\ SD card; system file, kernel, etc, files are hidden to make partition easier to be browsed.
  • D:\ Any attached mass storage device.

Features

MS-DOS boot up from dosboot.img floppy image, with some out-of-the-box customiztion you may like to know:

  • C:\AUTOEXEC.BAT you can easly edit it using edit; that's the main reason why I forked this repo.
  • PATH All executables included into MS-DOS floppy drive are in PATH.
  • KEYBOARD.SYS Missing layout definition.

Compatibility

  • Raspberry Pi [A, B, A+, B+]
  • Raspberry Pi 2 [B]
  • Raspberry Pi 3 [A+, B, B+]
  • Raspberry Pi Zero

Where're Raspberry PI 4 and Raspberry PI 400?

I've never bought a PI 4 and/or the Commodre-Vibes PI400; so can't test it all but jepalza did and released binaries on Raspberry PI Official Forum!

  • Download - The one originally published by jepalza | drive.google.com
  • Download - The mirror on this repository | github.com

By the way if you got an RPI4 I suggest you to install DOSBox on RaspberryOS (formerly Rasbian) and make it start at boot; Faux86 is not able to run anything compiled for 386 architecture and it official support up to 186; instead of DOSBox that can run over the 98% of DOS-Softeca.

My Setup

I mainly forked originally repository cause of many software-related lack of features I've already mantioned in Features, like: missing keyboard definition, missing autoexec edit feature, etc.

I run this on an old Raspberry PI 1 Model B, the last one with analog video out with a 512mb SD card; it's just funny to spend a nice DOScember and running some old DOS software; for gaming pruposes I use different hardware and different software.

If you have my same setup and you want to connect RPI to an old analog monitor edit config.txt in SD root as follow:

hdmi_ignore_hotplug=1 # Ignore HDMI Output
sdtv_mode=0 # Set NTSC

Where sdtv_mode value can be different depending on encoding system used by your TV or Monitor.

Value Encoding
0 NTSC
1 JAP-NTSC
2 PAL
3 BR-PAL

Credits

  • Faux86 has been developed by John Howard
  • Faux86 was originally based on Fake86 by Mike Chambers; now developed as XTulator. A lot of the code has been shuffled around or rewritten in C++ but the core CPU emulation remains mostly the same.
  • Circle to interface with the Raspberry Pi

License

Released under GNU General Public License v2 as per LICENSE file stored in this repository.

About

๐Ÿ’พ MS-DOS running on an 8086 and 80186 bare-metal emulator for Raspberry Pi

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 50.4%
  • C 49.4%
  • Makefile 0.2%