Skip to content

Basilisk II Source Code Overview

Ricky Zhang edited this page Aug 20, 2017 · 11 revisions

Source Code Structure

Basilisk II Source code is organized into sections that are operating system independent and operating system dependent.

The OS-independent code is placed under the folder macemu/BasiliskII/src. OS-dependent code is under its own sub-folder, named after the OS. See below:

Parent Folder Notes
adb.cpp ADB emulation (mouse/keyboard)
AmigaOS
audio.cpp Audio support
BeOS
cdrom.cpp CD-ROM driver
CrossPlatform Platform independent functions including video and virtual memory allocation
disk.cpp Generic disk driver
dummy A template folder for porting BII to different OS
emul_op.cpp
ether.cpp Ethernet device driver
extfs.cpp Share file system from host OS
include
macos_util.cpp
MacOSX The UI of preference editor for Mac OS X written in Cocoa UI framework. But this is dead in modern Mac OS X. gtk and X windows works for modern Mac OS X.
main.cpp
native_cpu For host runs under 68K CPU
pict.c
powerrom_cpu
prefs.cpp Preferences handling
prefs_items.cpp Common preferences items
rom_patches.cpp Rom patches
rsrc_patches.cpp Resource patches
scsi.cpp SCSI Manager
SDL Use SDL to handle Audio and Video in cross platform
serial.cpp Serial device driver
slirp slirp cross-platform virtual networking module from QEMU. Current code is not 64bi clean
slot_rom.cpp
sony.cpp Replacement .Sony driver (floppy drives)
timer.cpp Time Manager
uae_cpu Core emulation.
Unix *nix OS dependent folder
user_strings.cpp Common localizable strings
video.cpp Video/graphics emulation
Windows Windows OS dependent folder
xpram.cpp XPRAM handling

The following is the complete list of files under macemu/BasiliskII/src folder.

File Notes
adb.cpp
AmigaOS
AmigaOS/asm_support.asm
AmigaOS/audio_amiga.cpp
AmigaOS/BasiliskII.info
AmigaOS/clip_amiga.cpp
AmigaOS/ether_amiga.cpp
AmigaOS/extfs_amiga.cpp
AmigaOS/main_amiga.cpp
AmigaOS/Makefile
AmigaOS/prefs_amiga.cpp
AmigaOS/prefs_editor_amiga.cpp
AmigaOS/scsi_amiga.cpp
AmigaOS/serial_amiga.cpp
AmigaOS/sys_amiga.cpp
AmigaOS/sysdeps.h
AmigaOS/timer_amiga.cpp
AmigaOS/user_strings_amiga.cpp
AmigaOS/user_strings_amiga.h
AmigaOS/video_amiga.cpp
AmigaOS/xpram_amiga.cpp
audio.cpp
BeOS
BeOS/about_window.cpp
BeOS/about_window.h
BeOS/audio_beos.cpp
BeOS/clip_beos.cpp
BeOS/ether_beos.cpp
BeOS/extfs_beos.cpp
BeOS/main_beos.cpp
BeOS/Makefile
BeOS/prefs_beos.cpp
BeOS/prefs_editor_beos.cpp
BeOS/scsi_beos.cpp
BeOS/serial_beos.cpp
BeOS/SheepDriver
BeOS/SheepDriver/Makefile
BeOS/SheepDriver/sheep_driver.c
BeOS/SheepDriver/sheep_driver.h
BeOS/SheepNet
BeOS/SheepNet/Makefile
BeOS/SheepNet/sheep_net.cpp
BeOS/SheepNet/sheep_net.h
BeOS/sys_beos.cpp
BeOS/sysdeps.h
BeOS/timer_beos.cpp
BeOS/user_strings_beos.cpp
BeOS/user_strings_beos.h
BeOS/video_beos.cpp
BeOS/xpram_beos.cpp
cdrom.cpp
CrossPlatform
CrossPlatform/sigsegv.cpp
CrossPlatform/sigsegv.h
CrossPlatform/video_blit.cpp
CrossPlatform/video_blit.h
CrossPlatform/video_vosf.h
CrossPlatform/vm_alloc.cpp Wrapper to various virtual memory allocation schemes
CrossPlatform/vm_alloc.h
disk.cpp
dummy Template folder for new platform port
dummy/audio_dummy.cpp
dummy/clip_dummy.cpp
dummy/ether_dummy.cpp
dummy/prefs_dummy.cpp
dummy/prefs_editor_dummy.cpp
dummy/scsi_dummy.cpp
dummy/serial_dummy.cpp
dummy/user_strings_dummy.cpp
dummy/xpram_dummy.cpp
emul_op.cpp
ether.cpp
extfs.cpp
include
include/adb.h
include/audio_defs.h
include/audio.h
include/cdrom.h
include/clip.h
include/debug.h
include/disk.h
include/emul_op.h
include/ether_defs.h
include/ether.h
include/extfs_defs.h
include/extfs.h
include/macos_util.h
include/main.h
include/pict.h
include/prefs_editor.h
include/prefs.h
include/rom_patches.h
include/rsrc_patches.h
include/scsi.h
include/serial_defs.h
include/serial.h
include/slot_rom.h
include/sony.h
include/sys.h
include/timer.h
include/user_strings.h
include/version.h
include/video_defs.h
include/video.h
include/xpram.h
macos_util.cpp
MacOSX
MacOSX/AudioBackEnd.cpp
MacOSX/AudioBackEnd.h
MacOSX/audio_defs_macosx.h
MacOSX/AudioDevice.cpp
MacOSX/AudioDevice.h
MacOSX/audio_macosx.cpp
MacOSX/autorelease.h
MacOSX/BasiliskII.icns
MacOSX/clip_macosx64.mm
MacOSX/clip_macosx.cpp
MacOSX/Controller.h
MacOSX/Controller.mm
MacOSX/Credits.html
MacOSX/Emulator.h
MacOSX/Emulator.mm
MacOSX/EmulatorView.h
MacOSX/EmulatorView.mm
MacOSX/English.lproj
MacOSX/English.lproj/InfoPlist.strings
MacOSX/English.lproj/MainMenu.nib
MacOSX/English.lproj/MainMenu.nib/classes.nib
MacOSX/English.lproj/MainMenu.nib/Collapsed.tiff
MacOSX/English.lproj/MainMenu.nib/Expanded.tiff
MacOSX/English.lproj/MainMenu.nib/info.nib
MacOSX/English.lproj/MainMenu.nib/objects.nib
MacOSX/English.lproj/MainMenu.nib/resetH.tiff
MacOSX/English.lproj/MainMenu.nib/resetN.tiff
MacOSX/English.lproj/MainMenu.nib/shutdownH.tiff
MacOSX/English.lproj/MainMenu.nib/shutdownN.tiff
MacOSX/extfs_macosx.cpp
MacOSX/HowTo.html
MacOSX/Info.plist
MacOSX/macos_util_macosx.h
MacOSX/MacOSX_sound_if.cpp
MacOSX/MacOSX_sound_if.h
MacOSX/main_macosx.h
MacOSX/main_macosx.mm
MacOSX/misc_macosx.h
MacOSX/misc_macosx.mm
MacOSX/Multiple-Windows
MacOSX/Multiple-Windows/English.lproj
MacOSX/Multiple-Windows/English.lproj/InfoPlist.strings
MacOSX/Multiple-Windows/English.lproj/MainMenu.nib
MacOSX/Multiple-Windows/English.lproj/MainMenu.nib/classes.nib
MacOSX/Multiple-Windows/English.lproj/MainMenu.nib/info.nib
MacOSX/Multiple-Windows/English.lproj/MainMenu.nib/objects.nib
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/classes.nib
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/Collapsed.tiff
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/Expanded.tiff
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/info.nib
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/objects.nib
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/resetH.tiff
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/resetN.tiff
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/shutdownH.tiff
MacOSX/Multiple-Windows/English.lproj/Win512x342.nib/shutdownN.tiff
MacOSX/Multiple-Windows/README
MacOSX/NNThread.h
MacOSX/NNThread.m
MacOSX/PrefsEditor.h
MacOSX/PrefsEditor.mm
MacOSX/prefs_macosx.cpp
MacOSX/sys_darwin.cpp
MacOSX/ToDo.html
MacOSX/utils_macosx.h
MacOSX/utils_macosx.mm
MacOSX/Versions.html
MacOSX/video_macosx.h
MacOSX/video_macosx.mm
main.cpp
native_cpu/cpu_emulation.h
native_cpu When run BII under 68K CPU host
pict.c
powerrom_cpu
powerrom_cpu/cpu_emulation.h
powerrom_cpu/powerrom_cpu.cpp
prefs.cpp
prefs_items.cpp
rom_patches.cpp
rsrc_patches.cpp
scsi.cpp
SDL
SDL/audio_sdl.cpp
SDL/keycodes
SDL/SDLMain.h
SDL/SDLMain.m
SDL/video_sdl.cpp
serial.cpp
slirp
slirp/bootp.c
slirp/bootp.h
slirp/cksum.c
slirp/COPYRIGHT
slirp/ctl.h
slirp/debug.c
slirp/debug.h
slirp/icmp_var.h
slirp/if.c
slirp/if.h
slirp/ip.h
slirp/ip_icmp.c
slirp/ip_icmp.h
slirp/ip_input.c
slirp/ip_output.c
slirp/libslirp.h
slirp/main.h
slirp/mbuf.c
slirp/mbuf.h
slirp/misc.c
slirp/misc.h
slirp/sbuf.c
slirp/sbuf.h
slirp/slirp.c
slirp/slirp_config.h
slirp/slirp.h
slirp/socket.c
slirp/socket.h
slirp/tcp.h
slirp/tcp_input.c
slirp/tcpip.h
slirp/tcp_output.c
slirp/tcp_subr.c
slirp/tcp_timer.c
slirp/tcp_timer.h
slirp/tcp_var.h
slirp/tftp.c
slirp/tftp.h
slirp/udp.c
slirp/udp.h
slirp/VERSION
slot_rom.cpp
sony.cpp
timer.cpp
uae_cpu M68k CPU emulation folder
uae_cpu/basilisk_glue.cpp
uae_cpu/build68k.c
uae_cpu/compiler
uae_cpu/compiler/codegen_x86.cpp
uae_cpu/compiler/codegen_x86.h
uae_cpu/compiler/compemu_fpp.cpp
uae_cpu/compiler/compemu.h
uae_cpu/compiler/compemu_support.cpp
uae_cpu/compiler/flags_x86.h
uae_cpu/compiler/gencomp.c
uae_cpu/compiler/test_codegen_x86.cpp
uae_cpu/cpu_emulation.h
uae_cpu/cpuopti.c
uae_cpu/fpu
uae_cpu/fpu/core.h
uae_cpu/fpu/exceptions.cpp
uae_cpu/fpu/exceptions.h
uae_cpu/fpu/flags.cpp
uae_cpu/fpu/flags.h
uae_cpu/fpu/fpu.h
uae_cpu/fpu/fpu_ieee.cpp
uae_cpu/fpu/fpu_ieee.h
uae_cpu/fpu/fpu_uae.cpp
uae_cpu/fpu/fpu_uae.h
uae_cpu/fpu/fpu_x86_asm.h
uae_cpu/fpu/fpu_x86.cpp
uae_cpu/fpu/fpu_x86.h
uae_cpu/fpu/impl.h
uae_cpu/fpu/mathlib.cpp
uae_cpu/fpu/mathlib.h
uae_cpu/fpu/rounding.cpp
uae_cpu/fpu/rounding.h
uae_cpu/fpu/types.h
uae_cpu/gencpu.c
uae_cpu/m68k.h
uae_cpu/memory.cpp Virtual addressing logic
uae_cpu/memory.h
uae_cpu/newcpu.cpp
uae_cpu/newcpu.h
uae_cpu/noflags.h
uae_cpu/readcpu.cpp
uae_cpu/readcpu.h
uae_cpu/spcflags.h
uae_cpu/table68k
Unix/acinclude.m4
Unix/asm_support.s
Unix/audio_oss_esd.cpp
Unix/autogen.sh
Unix/BasiliskII.1
Unix/bincue_unix.cpp
Unix/bincue_unix.h
Unix/clip_unix.cpp
Unix/config.guess
Unix/config.sub
Unix/configure.ac
Unix/cpr.sh
Unix/Darwin
Unix/Darwin/gtk-osx.patch
Unix/Darwin/lowmem.c
Unix/Darwin/mkstandalone
Unix/Darwin/pagezero.c
Unix/Darwin/testlmem.sh
Unix/disk_sparsebundle.cpp
Unix/disk_unix.h
Unix/ether_unix.cpp
Unix/extfs_unix.cpp
Unix/fbdevices
Unix/FreeBSD
Unix/FreeBSD/scsidump.cpp
Unix/FreeBSD/scsi_freebsd.cpp
Unix/.gitignore
Unix/install-sh
Unix/Irix
Unix/Irix/audio_irix.cpp
Unix/Irix/README.networking
Unix/Irix/unaligned.c
Unix/keycodes
Unix/ldscripts
Unix/ldscripts/freebsd-i386.ld
Unix/ldscripts/linux-i386.ld
Unix/ldscripts/linux-ppc.ld
Unix/ldscripts/linux-x86_64.ld
Unix/Linux
Unix Linux, Mac OS X and FreeBSD operating system dependent
Unix/Linux/NetDriver/config.h
Unix/Linux/NetDriver Linux virtual networking sheep_net module
Unix/Linux/NetDriver/Makefile
Unix/Linux/NetDriver/README.md
Unix/Linux/NetDriver/sheep_net.c
Unix/Linux/scsi_linux.cpp
Unix/m4
Unix/m4/egrep.m4
Unix/m4/esd.m4
Unix/m4/gettext.m4
Unix/m4/gtk-2.0.m4
Unix/m4/gtk.m4
Unix/main_unix.cpp main entry function for *nix OS
Unix/Makefile.in
Unix/mkinstalldirs
Unix/posix_sem.cpp
Unix/prefs_editor_gtk.cpp
Unix/prefs_unix.cpp
Unix/rpc.h
Unix/rpc_unix.cpp
Unix/semaphore.h
Unix/serial_unix.cpp
Unix/Solaris
Unix/Solaris/audio_solaris.cpp
Unix/Solaris/which_sparc
Unix/sshpty.c
Unix/sshpty.h
Unix/strlcpy.c
Unix/strlcpy.h
Unix/sysdeps.h
Unix/sys_unix.cpp
Unix/timer_unix.cpp
Unix/tinyxml2.cpp
Unix/tinyxml2.h
Unix/tunconfig
Unix/user_strings_unix.cpp
Unix/user_strings_unix.h
Unix/vhd_unix.cpp
Unix/video_x.cpp
Unix/xpram_unix.cpp
user_strings.cpp message string externalization
video.cpp
Windows
Windows/b2ether
Windows/b2ether/driver
Windows/b2ether/driver/b2ether.c
Windows/b2ether/driver/b2ether.h
Windows/b2ether/driver/b2ether_openclose.c
Windows/b2ether/driver/b2ether_read.c
Windows/b2ether/driver/b2ether_write.c
Windows/b2ether/driver/DEBUG.H
Windows/b2ether/driver/MAKEFILE
Windows/b2ether/driver/OEMSETUP.INF
Windows/b2ether/driver/SOURCES
Windows/b2ether/inc
Windows/b2ether/inc/b2ether_hl.h
Windows/b2ether/inc/ntddpack.h
Windows/b2ether/multiopt.h
Windows/b2ether/nt5
Windows/b2ether/nt5/b2ether64.sln
Windows/b2ether/nt5/b2ether64.vcxproj
Windows/b2ether/nt5/b2ether.c
Windows/b2ether/nt5/b2ether.h
Windows/b2ether/nt5/b2ether_openclose.c
Windows/b2ether/nt5/b2ether.rc
Windows/b2ether/nt5/b2ether_read.c
Windows/b2ether/nt5/b2ether_write.c
Windows/b2ether/nt5/B2Win2k.inf
Windows/b2ether/nt5/B2Win7Vista-x64.inf
Windows/b2ether/nt5/MAKEFILE
Windows/b2ether/nt5/NTDDPACK.H
Windows/b2ether/nt5/SOURCES
Windows/b2ether/packet32.cpp
Windows/BasiliskII.DebugJIT.props
Windows/BasiliskIIGUI.ico
Windows/BasiliskIIGUI.rc
Windows/BasiliskII.ico
Windows/BasiliskII.props
Windows/BasiliskII.rc
Windows/BasiliskII.ReleaseJIT.props
Windows/BasiliskII.sln
Windows/BasiliskII.vcxproj
Windows/BasiliskII.vcxproj.filters
Windows/build68k.vcxproj
Windows/build68k.vcxproj.filters
Windows/cd_defs.h
Windows/cdenable
Windows/cdenable/cache.cpp
Windows/cdenable/cache.h
Windows/cdenable/cdenable.h
Windows/cdenable/eject_nt.cpp
Windows/cdenable/eject_nt.h
Windows/cdenable/ntcd.cpp
Windows/cdenable/ntcd.h
Windows/clip_windows.cpp
Windows/config.h
Windows/configure.ac
Windows/ether_windows.cpp
Windows/ether_windows.h
Windows/extfs_windows.cpp
Windows/gencomp.vcxproj
Windows/gencomp.vcxproj.filters
Windows/gencpu.vcxproj
Windows/gencpu.vcxproj.filters
Windows/main_windows.cpp
Windows/Makefile.in
Windows/posix_emu.cpp
Windows/posix_emu.h
Windows/prefs_editor_gtk.cpp
Windows/prefs_windows.cpp
Windows/router
Windows/router/arp.cpp
Windows/router/arp.h
Windows/router/dump.cpp
Windows/router/dump.h
Windows/router/dynsockets.cpp
Windows/router/dynsockets.h
Windows/router/ftp.cpp
Windows/router/ftp.h
Windows/router/icmp.cpp
Windows/router/icmp.h
Windows/router/iphelp.cpp
Windows/router/iphelp.h
Windows/router/ipsocket.cpp
Windows/router/ipsocket.h
Windows/router/mib
Windows/router/mib/interfaces.cpp
Windows/router/mib/interfaces.h
Windows/router/mib/mibaccess.cpp
Windows/router/mib/mibaccess.h
Windows/router/router.cpp
Windows/router/router.h
Windows/router/router_types.h
Windows/router/tcp.cpp
Windows/router/tcp.h
Windows/router/udp.cpp
Windows/router/udp.h
Windows/serial_windows.cpp
Windows/sysdeps.h
Windows/sys_windows.cpp
Windows/timer_windows.cpp
Windows/user_strings_windows.cpp
Windows/user_strings_windows.h
Windows/util_windows.cpp
Windows/util_windows.h
Windows/xpram_windows.cpp
xpram.cpp