FDOS/kernel

port to other Arch?

Opened this issue · 3 comments

lss4 commented

Sorry for a late bump of this question.

I think DOS depends on a lot of APIs provided by x86 BIOS so you'll need to adapt those API uses on the target CPU architecture you intend to port.

Not to mention some of the code are written in x86 assembly, that you pretty much need to rewrite them using the assembly of your target CPU architecture, or if possible, reimplement most if not all of them in C.

For modern CPU targets like ARMv8, however, I think the first thing needs to be done is making generic UEFI booting possible, as these architectures also have UEFI support and it's already being used on some boards.

U-Boot
is the most popular Bootloader,
used in Pi5 Proxmox, Amiga X5000 PowerPC Fienix, etc...

it would also require to use QEMU* to emulate x86 in other CPU's.
the P550 Pro could be very interesting...
other interesting for ARMv8 are the NVIDIA Orin AGX IGX
VisionFive 2 RISC-V
FPGA Cores 80186 for MIST, MISTer, etc...
Pi5, Pi4,...

Step #1. Convert everything to C
Step #2. Change Bootloader.
Step #3. Add QEMU

can also be done backwards...
Step #1. Add QEMU
Step #2. Add HW emulation PCem, 86Box

*Wine is API call to POSIX translator, it wont work.
but there are very insteresting HW x86 emulations: PCem, 86Box, etc...

FPGA systems are more flexible & desired,
can emulate all Retro Gaming setups,
but are limited by Speed / Price., FPGA M68K 040 or 080 vs.
PiStorm32 Pi4 Bare Metal Emulation of Motorola 68k CPU is much faster Dhrystones.

MIST is Cyclone3 "The Cheapest", MISTer is Terasic DE10-nano Cyclone-V,
minimig comes with Original M68k CPU, but can be upgraded.

The prefered Cross Platform Benchmarks are usually Doom, Quake 1,2,3,4 or Dhrystones
Atari Falcon060, sgi IRIX Tezro, Amiga, PowerMac G5, X5000, minimig, Vampire4+, PiStorm32, etc...

P.D.
i think this should be moved to Discussions Tab.

lss4 commented

it would also require to use QEMU* to emulate x86 in other CPU's.

Step #1. Convert everything to C Step #2. Change Bootloader. Step #3. Add QEMU

can also be done backwards... Step #1. Add QEMU Step #2. Add HW emulation PCem, 86Box

*Wine is API call to POSIX translator, it wont work. but there are very insteresting HW x86 emulations: PCem, 86Box, etc...

... That won't be "porting" anymore as you're basically emulating x86 on other architectures. For DOS-related stuffs on modern CPU architectures, DOSBox ports could already achieve what you want.

IMO by porting it's to be able to compile and boot the DOS kernel natively on the CPU architecture of choice. However, this is only to get the kernel itself to run. To run your favorite DOS programs natively on another architecture would be a different story.

On the other hand, there's also this PDOS (Public Domain Operating System) project aiming at making some kind of DOS-like environment hopefully across different CPU architectures.

P.D. i think this should be moved to Discussions Tab.

I think so, though don't expect this to happen soon, as it won't be an easy task.