FreeBee - AT&T 3B1 emulator
FreeBee is an emulator for the AT&T 3B1. It's a work-in-progress, but currently works well enough to boot the operating system and to compile programs with the standard C compiler.
Phil Pemberton -- philpem@philpem.me.uk
There have historically been a few instability issues on the Mac OS X platform, related to the SDL libraries. I've not heard much about them.
Unfortunately I don't have a recent Mac, so I won't be able to reproduce or test issues which affect OS X versions later than High Sierra. Bugs will likely be left open until someone with a more recent system is able to look into them (unless you open a pull request with a fix!)
If you have an issue on OSX and have a Windows or Linux system, please try to reproduce the issue on there as it will be easier for me to test. Please list all the platforms you've tested on (and the result) in the issue.
In summary: all support is on a best-effort basis, but I cannot guarantee that bugs reported solely on Mac OS X will be fixed as I don't have the equipment to test with.
There is a workaround in the memory mapping emulation, which allows supervisor-mode writes to low memory. If this is disabled, the kernel will fail to boot
with a PAGEIN
or PAGEOUT
panic.
If anyone can figure this out,
libsdl2-dev
packagegit clone --recurse-submodules https://github.com/philpem/freebee
roms
:
14C 72-00616.bin
to 14c.bin
15C 72-00617.bin
to 15c.bin
hd.img
, or create a .freebee.toml
file pointing to the image. (See the CONFIGURATION section of the man page.)08_Foundation_Set_Ver_3.51.IMD
image which is available here.makehdimg
program supplied in the tools
directory to create an initial hd.img
file with the number of cylinders, heads and sectors per track that you want. Limits: 1400 cylinders, 16 heads, 17 sectors per track.makehdimg
.dd if=/dev/zero of=hd.img bs=512 count=$(expr 17 \* 8 \* 1024)
to create a disk matching the compiled-in defaults. Initialize the disk using the "Miniscribe 64MB" (CHS 1024:8:17, 512 bytes per sector) choice.hd2.img
. You can copy an existing hd.img
to hd2.img
as a quick way to get a disk with a filesystem already on it. When Unix is up and running, use mount /dev/fp012 /mnt
to mount the second drive. You may want to run fsck
on it first, just to be safe.01_Diagnostic_Disk_Ver_3.51.IMD
to floppy.img
in the Freebee directory.floppy.img
in the Freebee directory.08_Foundation_Set_Ver_3.51.IMD
use 08_Foundation_Set_Ver_3.51_no_phinit.IMD
from here.
This will allow the emulated Unix PC to come all the way up to
a login prompt after the installation.msdos
command which allows reading a 360k MS-DOS floppy image.
floppy.img
. This image must be in the same directory as the Freebee executable (or path specified in the .freebee.toml config file).msdos
from the 3b1 command prompt, grab the mouse cursor with F10 if you haven't already, then COPY files to the hard drive.sysv
Linux kernel module which allows mounting the fs image as a usable filesystem under Linux.You can scale the display by setting scale factors in the .freebee.toml
file.
Scale values must be greater than zero and less than or equal to 45. This
facility is useful on large displays.
floppy.img
)To make an MS-DOS disk under Linux (9 tracks per sector):
dd if=/dev/zero of=dos.img bs=1k count=360
/sbin/mkfs.fat dos.img
sudo mount -o loop -t msdos dos.img /mnt
... copy files to /mnt ...
sudo umount /mnt
To make a 10 track per sector disk image, just use count=400
in the dd
command and then format the disk under Unix with iv
and mkfs
.
See this part of the FAQ on setting up multiple login windows.