This is the UCARM full distribution
Available from http://pdos.org.

Although the PDOS-generic kernel is 100% public domain, there are some
copyrighted (virus-licensed) tools included, as we don't yet have
public domain versions of those.

You can do this:

chmod 755 bios.exe
qemu-arm bios.exe
dir
uemacs temp.bas
(ctrl-x, ctrl-s to save, ctrl-x, ctrl-c to exit)
bwbasic temp.bas
exit

If you have a Raspberry Pi or Pinebook Pro you
can also directly execute bios.exe on a Linux system,
which is treated as a glorified BIOS. Or you can use
PdAndro to run it on a smartphone. Or you can run
the executables directly on a Windows 11 ARM system.
Or via biospe.exe.


Alternatively you can run bios.efi from an EFI shell
to do the same thing, or boot from it by renaming it
to \efi\boot\bootarm.efi
Or run it under qemu like this:

qemu-system-arm -cpu cortex-a15 -M virt ^
  -pflash edk2-arm-code.fd -drive file=fat:rw:armtest ^
  -device ramfb -device qemu-xhci -device usb-tablet -device usb-kbd
You can copy edk2-arm-code.fd from
C:\Program Files\qemu\share

Or if you are on an ARM64 Linux system:

qemu-system-aarch64 -enable-kvm \
  -cpu host,aarch64=off -M virt -m 512 -nographic \
  -pflash edk2-arm-code.fd -drive file=fat:rw:armtest \
  -device ramfb -device qemu-xhci -device usb-tablet -device usb-kbd

(the nographic speeds things up by not opening a new window)

Note that QEMU 9.2.91 doesn't appear to work, but 8.2.0 does
Problem has not yet been isolated and reported


1. gccprm generates floating point instructions that
aren't available on "modern" (1-2 decades) ARM cpus.
So you need to use -msoft-float
The soft float support isn't great - double maths is
done in terms of float.

2. Some machines like the Apple M1 don't allow
execution of 32-bit code at all.

3. sccarm is currently generating code that does an
add to sp before loading registers, which means an
interrupt can destroy them. This doesn't seem to be
a problem in practice, but you may get a random crash.


Also note that there is a BASIC and then C programming
tutorial included. See learnp2.txt


bios.exe was created with makebios.erm
  but we may want to use makebios.mal (Visual Studio)
pcomm.exe was created with makecomm.arm

bios.efi was created with makebios.prm
  (and then renaming bios.exe to bios.efi)
pcommp.exe was created with makecomm.prm

biospe.exe was created with makebios.was


hexdump.exe was created by copying hexdump.c to pdptest.c
  and then using makefile.war

bwbasic.exe was created with makefile.prm

mfemul.exe used to be created with pdmake targ=arm -f mfemul.mak
  but since this is time-critical, I instead now use Visual Studio 2022
  with pdmake targ=arm -f mfemul.mk2
