Skip to content

Basilisk II Source Code Overview

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

Source Code Structure

Basilisk II Source code is organized by operating system independent and operating system dependent.

The common codes which are independent from OS are placed under parent folder macemu/BasiliskII/src. Each operating system dependent has their own folder. See the parent folder notes:

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