├── Aliases ├── catakig-jvernet ├── tcpser-fozztexx └── cadius-mach-kernel ├── images ├── i.png ├── ii+.png ├── ii.png ├── iic.png ├── iie.png ├── iiee.png ├── iigs.png ├── iii+.png └── jobs_woz.png ├── Formula ├── fhpack.rb ├── reinette.rb ├── unlatch.rb ├── fozztexx-tcpser.rb ├── diskbrowser.rb ├── dsk2woz.rb ├── pom1.rb ├── cadius.rb ├── digarok-bmp2dhr.rb ├── mach-kernel-cadius.rb ├── dos33fsprogs.rb ├── tohgr.rb ├── hfdisk.rb ├── nulib2.rb ├── applecommander-ac.rb ├── applecommander-acx.rb ├── plasma.rb ├── c2d.rb ├── napple1.rb ├── c2t.rb ├── jace.rb ├── diskm8.rb ├── applewin.rb ├── dsktowoz2.rb ├── apple2e.rb ├── faux1.rb ├── profuse.rb ├── llvm-6502.rb ├── apple1.rb ├── reinette-ii.rb ├── apple2-image-encoder.rb ├── ciderpress2.rb ├── merlin32.rb ├── jvernet-catakig.rb ├── dskalyzer.rb ├── apple-ii-cassette-recover.rb ├── ciderpress.rb ├── applecommander.rb ├── linapple.rb ├── apple1emulator.rb ├── openemulator.rb ├── calvados.rb ├── wozardry.rb ├── passport.rb ├── reinette-ii-plus.rb ├── lisaem.rb ├── epple2.rb ├── bmp2dhr.rb └── ii-pix.rb ├── Casks ├── microm8.rb ├── compressiix.rb ├── lz4compressorx.rb ├── activegs.rb ├── quickviewdhgr.rb ├── gsport.rb ├── quickviewshr.rb ├── sciibinx.rb ├── microm8-gui.rb ├── sara.rb ├── iigsgraphicsconverter.rb ├── nushrinkitx.rb ├── apple1basic.rb ├── adtpro.rb ├── osxii.rb ├── buckshot.rb ├── steve2.rb ├── ciderxpress.rb ├── sweet16.rb ├── lisaem.rb ├── ample.rb ├── catakig.rb ├── openemulator.rb ├── gsplus.rb └── kegs.rb └── Readme.md /Aliases/catakig-jvernet: -------------------------------------------------------------------------------- 1 | ../Formula/jvernet-catakig.rb -------------------------------------------------------------------------------- /Aliases/tcpser-fozztexx: -------------------------------------------------------------------------------- 1 | ../Formula/fozztexx-tcpser.rb -------------------------------------------------------------------------------- /Aliases/cadius-mach-kernel: -------------------------------------------------------------------------------- 1 | ../Formula/mach-kernel-cadius.rb -------------------------------------------------------------------------------- /images/i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/i.png -------------------------------------------------------------------------------- /images/ii+.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/ii+.png -------------------------------------------------------------------------------- /images/ii.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/ii.png -------------------------------------------------------------------------------- /images/iic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/iic.png -------------------------------------------------------------------------------- /images/iie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/iie.png -------------------------------------------------------------------------------- /images/iiee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/iiee.png -------------------------------------------------------------------------------- /images/iigs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/iigs.png -------------------------------------------------------------------------------- /images/iii+.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/iii+.png -------------------------------------------------------------------------------- /images/jobs_woz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lifepillar/homebrew-appleii/HEAD/images/jobs_woz.png -------------------------------------------------------------------------------- /Formula/fhpack.rb: -------------------------------------------------------------------------------- 1 | class Fhpack < Formula 2 | desc "Compression for Apple II hi-res images" 3 | homepage "https://github.com/fadden/fhpack" 4 | url "https://github.com/fadden/fhpack.git", 5 | revision: "61b7c1cb8e9b9216a04264d4685b9990f15745ac" 6 | version "20200730" 7 | 8 | def install 9 | system ENV.cxx, "-O2", "-o", "fhpack", "fhpack.cpp" 10 | bin.install "fhpack" 11 | end 12 | 13 | test do 14 | system "#{bin}/fhpack" 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /Formula/reinette.rb: -------------------------------------------------------------------------------- 1 | class Reinette < Formula 2 | desc "French Apple I emulator" 3 | homepage "https://github.com/ArthurFerreira2/reinette" 4 | url "https://github.com/ArthurFerreira2/reinette.git", 5 | revision: "e565bee15259ef1661615a6726295bf17a0878c3" 6 | version "20191220" # Date of commit 7 | 8 | depends_on "ncurses" 9 | 10 | def install 11 | system "make" 12 | bin.install "reinette" 13 | end 14 | 15 | test do 16 | system "false" 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /Casks/microm8.rb: -------------------------------------------------------------------------------- 1 | cask "microm8" do 2 | version "1.0.0" 3 | sha256 :no_check 4 | 5 | url "http://paleotronic.com/download/microm8-mac.zip" 6 | name "microM8" 7 | desc "Apple II emulator" 8 | homepage "https://paleotronic.com/software/microm8/" 9 | 10 | app "microM8.app" 11 | 12 | zap trash: [ 13 | "~/Library/Preferences/com.paleotronic.microM8.plist", 14 | "~/Library/Saved Application State/com.paleotronic.microM8.savedState", 15 | "~/microM8", 16 | ] 17 | end 18 | -------------------------------------------------------------------------------- /Formula/unlatch.rb: -------------------------------------------------------------------------------- 1 | class Unlatch < Formula 2 | desc "Convert A2FC (Dazzle Draw) files to AUX, BIN file pairs" 3 | homepage "http://www.appleoldies.ca/bmp2dhr/basic/" 4 | url "http://www.appleoldies.ca/cc65/programs/dhgr/unlatch.zip" 5 | version "2014-09-17" 6 | sha256 "24e3f56d6a783a4f8718ecafd1b6fa4c626436a562de41b7f1bbc4c60cfaf1ce" 7 | 8 | def install 9 | system "make" 10 | bin.install "unlatch" 11 | end 12 | 13 | test do 14 | system "false" 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /Casks/compressiix.rb: -------------------------------------------------------------------------------- 1 | cask "compressiix" do 2 | version "0.7" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/compressiix.zip" 6 | name "CompressIIX" 7 | desc "Utility for compressing ordinary Apple II graphics files" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "CompressIIX.app" 11 | 12 | zap trash: [ 13 | "~/Library/Application Support/CompressIIX", 14 | "~/Library/Saved Application State/com.yourcompany.CompressIIX.savedState", 15 | ] 16 | end 17 | -------------------------------------------------------------------------------- /Casks/lz4compressorx.rb: -------------------------------------------------------------------------------- 1 | cask "lz4compressorx" do 2 | version "0.8" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/lz4compressorx.zip" 6 | name "LZ4CompressorX" 7 | desc "Utility for general file compression" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "LZ4CompressorX.app" 11 | 12 | zap trash: [ 13 | "~/Library/Application Support/LZ4CompressorX", 14 | "~/Library/Saved Application State/com.yourcompany.LZ4CompressorX.savedState", 15 | ] 16 | end 17 | -------------------------------------------------------------------------------- /Casks/activegs.rb: -------------------------------------------------------------------------------- 1 | cask "activegs" do 2 | version "3.7.1019" 3 | sha256 "af871c3e2b32c71eb7e2a8f7c0e69472a9844c05bdea3d73d2d6c2416ac5ae61" 4 | 5 | url "http://activegs.freetoolsassociation.com/ActiveGS.zip" 6 | name "ActiveGS" 7 | desc "Apple IIGS emulator" 8 | homepage "http://activegs.freetoolsassociation.com/" 9 | 10 | app "ActiveGS.app" 11 | 12 | zap trash: [ 13 | "~/ActiveGSLocalData", 14 | "~/Library/Saved Application State/com.yourcompany.ActiveGS.savedState", 15 | ] 16 | end 17 | -------------------------------------------------------------------------------- /Formula/fozztexx-tcpser.rb: -------------------------------------------------------------------------------- 1 | class FozztexxTcpser < Formula 2 | desc "Serial to IP modem emulation program" 3 | homepage "https://github.com/fozztexx/tcpser" 4 | url "https://github.com/FozzTexx/tcpser.git", 5 | revision: "95f4b515ef2f9a5473400229a44a31badc54188f" 6 | version "20200425" # Date of commit 7 | head "https://github.com/FozzTexx/tcpser.git", branch: "master" 8 | 9 | def install 10 | system "make" 11 | bin.install "tcpser" 12 | end 13 | 14 | test do 15 | system "false" 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /Casks/quickviewdhgr.rb: -------------------------------------------------------------------------------- 1 | cask "quickviewdhgr" do 2 | version "0.85" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/quickviewdhgr.zip" 6 | name "QuickViewDHGR" 7 | desc "Utility for viewing Apple II graphics files" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "QuickViewDHGR.app" 11 | 12 | zap trash: [ 13 | "~/Library/Preferences/com.incrementalInnovation.QuickViewDHGR.plist", 14 | "~/Library/Saved Application State/com.incrementalInnovation.QuickViewDHGR.savedState", 15 | ] 16 | end 17 | -------------------------------------------------------------------------------- /Casks/gsport.rb: -------------------------------------------------------------------------------- 1 | cask "gsport" do 2 | version "0.31" 3 | sha256 "00d5df71ff0ee6932ece28b248e100fdb378d05d958374223c15962b2529b913" 4 | 5 | url "https://github.com/david-schmidt/gsport/releases/download/#{version}/gsport_#{version}.dmg", 6 | verified: "github.com/david-schmidt/gsport/" 7 | name "GSPort" 8 | desc "Portable Apple IIGS emulator" 9 | homepage "https://david-schmidt.github.io/gsport/" 10 | 11 | # Copy the whole folder 12 | app "GSPort" 13 | 14 | caveats "A ROM file should be put in #{staged_path}/GSport." 15 | end 16 | -------------------------------------------------------------------------------- /Formula/diskbrowser.rb: -------------------------------------------------------------------------------- 1 | class Diskbrowser < Formula 2 | desc "Apple II Disk Browser" 3 | homepage "https://github.com/dmolony/DiskBrowser" 4 | url "https://github.com/dmolony/DiskBrowser/releases/download/v1.66/DiskBrowser.jar" 5 | sha256 "3f5bf42b576ff538845f6a8f907ab6186589b87f6011ab7d2241fe89db90f4db" 6 | 7 | depends_on "openjdk" 8 | 9 | def install 10 | libexec.install "DiskBrowser.jar" 11 | bin.write_jar_script libexec/"DiskBrowser.jar", "diskbrowser" 12 | end 13 | 14 | test do 15 | system "false" 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /Formula/dsk2woz.rb: -------------------------------------------------------------------------------- 1 | class Dsk2woz < Formula 2 | desc "Convert Apple II DSK images to WOZ format" 3 | homepage "https://github.com/tomharte/dsk2woz" 4 | url "https://github.com/TomHarte/dsk2woz.git", 5 | revision: "0459a8a090028ccf56336f7ee0b0ba9344789398" 6 | version "20200129" # Date of commit 7 | head "https://github.com/TomHarte/dsk2woz.git" 8 | 9 | def install 10 | system ENV.cc, "-Wall", "-O3", "-o", "dsk2woz", "dsk2woz.c" 11 | bin.install "dsk2woz" 12 | end 13 | 14 | test do 15 | system "false" 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /Formula/pom1.rb: -------------------------------------------------------------------------------- 1 | class Pom1 < Formula 2 | desc "Apple I emulator" 3 | homepage "http://pom1.sourceforge.io" 4 | url "https://downloads.sourceforge.net/project/pom1/pom1/1.0.0/pom1-1.0.0.tar.gz" 5 | sha256 "8a1088be1628f593c9d00b0e91d47a3820016d4d2b80a4b047cfedf61b34c9c4" 6 | 7 | depends_on "sdl12-compat" 8 | 9 | def install 10 | system "./configure", "--disable-dependency-tracking", 11 | "--prefix=#{prefix}" 12 | system "make", "install" 13 | end 14 | 15 | test do 16 | system "false" 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /Casks/quickviewshr.rb: -------------------------------------------------------------------------------- 1 | cask "quickviewshr" do 2 | version "1.15" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/quickviewshr.zip" 6 | name "QuickViewSHR" 7 | desc "Utility for viewing Apple IIGS SuperHires graphics (packed and unpacked) files" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "QuickViewSHR.app" 11 | 12 | zap trash: [ 13 | "~/Library/Preferences/com.incrementalinnovation.QuickViewSHR.plist", 14 | "~/Library/Saved Application State/com.incrementalinnovation.QuickViewSHR.savedState", 15 | ] 16 | end 17 | -------------------------------------------------------------------------------- /Formula/cadius.rb: -------------------------------------------------------------------------------- 1 | class Cadius < Formula 2 | desc "BrutalDeluxe's Cadius ProDOS disk imaging utility" 3 | homepage "https://www.brutaldeluxe.fr/products/crossdevtools/cadius" 4 | url "https://www.brutaldeluxe.fr/products/crossdevtools/cadius/Cadius_v1.4_mac.zip" 5 | sha256 "9621dcca4a58c5911bf9daf181ec296408613c6a1b174719a0bd8b93126f8c6e" 6 | 7 | conflicts_with "mach-kernel-cadius", because: "both install `cadius`" 8 | 9 | def install 10 | bin.install "cadius" 11 | end 12 | 13 | test do 14 | system "#{bin}/cadius", "--version" 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /Formula/digarok-bmp2dhr.rb: -------------------------------------------------------------------------------- 1 | class DigarokBmp2dhr < Formula 2 | desc "Convert modern graphics to Apple II graphics" 3 | homepage "https://github.com/digarok/b2d" 4 | url "https://github.com/digarok/b2d/releases/download/v1.4/b2d-macos-latest-v1.4.zip" 5 | sha256 "a7943907d6b26de946d5242fc4359f1e182a3bdf3c1380240693b5ae04996e8b" 6 | 7 | conflicts_with "bmp2dhr", because: "both install a `b2d` executable" 8 | 9 | def install 10 | bin.install "b2d" 11 | bin.install_symlink bin/"b2d" => "bmp2dhr" 12 | end 13 | 14 | test do 15 | system "false" 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /Casks/sciibinx.rb: -------------------------------------------------------------------------------- 1 | cask "sciibinx" do 2 | version "1.02" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/sciibinx.zip" 6 | name "SCIIBinX" 7 | desc "Utility for extracting an Apple II file from a BINSCII file or email segment" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "SCIIBinX.app" 11 | 12 | zap trash: [ 13 | "~/Library/Application Support/SCIIBinX", 14 | "~/Library/Preferences/com.incrementalinnovation.SCIIBinX.plist", 15 | "~/Library/Saved Application State/com.incrementalinnovation.SCIIBinX.savedState", 16 | ] 17 | end 18 | -------------------------------------------------------------------------------- /Formula/mach-kernel-cadius.rb: -------------------------------------------------------------------------------- 1 | class MachKernelCadius < Formula 2 | desc "BrutalDeluxe's Cadius ProDOS disk imaging utility" 3 | homepage "https://www.brutaldeluxe.fr/products/crossdevtools/cadius" 4 | url "https://github.com/mach-kernel/cadius/archive/refs/tags/1.4.5.tar.gz" 5 | sha256 "2c88bfa75a3b7ef0df81cfe69665a167228f78299a9885d5b2f0d92cb9ec55af" 6 | 7 | conflicts_with "cadius", because: "both install `cadius`" 8 | 9 | def install 10 | system "make" 11 | bin.install "./bin/release/cadius" 12 | end 13 | 14 | test do 15 | system "#{bin}/cadius" 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /Casks/microm8-gui.rb: -------------------------------------------------------------------------------- 1 | cask "microm8-gui" do 2 | version "1.1" 3 | sha256 :no_check 4 | 5 | url "https://github.com/paleotronic/microm8-gui/releases/download/v1.1/microM8-gui-macos-x64.zip", 6 | verified: "github.com/paleotronic/microm8-gui/" 7 | name "microM8-gui" 8 | desc "Apple II emulator" 9 | homepage "https://paleotronic.com/software/microm8/" 10 | 11 | app "microM8-gui.app" 12 | 13 | zap trash: [ 14 | "~/Library/Preferences/com.paleotronic.microM8.plist", 15 | "~/Library/Saved Application State/com.paleotronic.microM8.savedState", 16 | "~/microM8", 17 | ] 18 | end 19 | -------------------------------------------------------------------------------- /Casks/sara.rb: -------------------------------------------------------------------------------- 1 | cask "sara" do 2 | version "0.5.1" 3 | sha256 "0822aa281849cf306d5bc02ea4e811563de2469687ac99bce0d0b9a929d4cfbe" 4 | 5 | url "https://www.blackcatsystems.com/download/SaraOSX.zip" 6 | name "Sara" 7 | desc "Apple /// emulator" 8 | homepage "https://www.blackcatsystems.com/software/sara.html" 9 | 10 | # Copy the whole folder 11 | app "SaraOSX" 12 | 13 | zap trash: [ 14 | "~/Library/Preferences/com.blackcatsystems.Sara.plist", 15 | "~/Library/Preferences/Sara Prefs", 16 | "~/Library/Saved Application State/com.blackcatsystems.Sara.savedState", 17 | ] 18 | end 19 | -------------------------------------------------------------------------------- /Casks/iigsgraphicsconverter.rb: -------------------------------------------------------------------------------- 1 | cask "iigsgraphicsconverter" do 2 | version "1.0" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/iigsgraphicsconverter.zip" 6 | name "IIGSGraphicsConverter" 7 | desc "Utility for converting unpacked Apple IIGS SHR graphics files to a packed format" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "IIGSGraphicsConverter.app" 11 | 12 | zap trash: [ 13 | "~/Library/Preferences/com.yourcompany.IIGSGraphicsConverter.plist", 14 | "~/Library/Saved Application State/com.yourcompany.IIGSGraphicsConverter.savedState", 15 | ] 16 | end 17 | -------------------------------------------------------------------------------- /Casks/nushrinkitx.rb: -------------------------------------------------------------------------------- 1 | cask "nushrinkitx" do 2 | version "1.1" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/nushrinkitx.zip" 6 | name "NuShrinkItX" 7 | desc "Utility for creating and working with Apple II archive files (e.g., .shk)" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "NuShrinkItX.app" 11 | 12 | zap trash: [ 13 | "~/Library/Application Support/NuShrinkItX", 14 | "~/Library/Preferences/com.incrementalinnovation.NuShrinkItX.plist", 15 | "~/Library/Saved Application State/com.incrementalinnovation.NuShrinkItX.savedState", 16 | ] 17 | end 18 | -------------------------------------------------------------------------------- /Casks/apple1basic.rb: -------------------------------------------------------------------------------- 1 | cask "apple1basic" do 2 | version "20080718" # Date of original post 3 | sha256 "f697b2e8893f04064367c39fa83c08024b7e4ec427b2436a014a555ba4ba4550" 4 | 5 | # www.weihenstephan.org/~michaste/pagetable/recompiler was verified as official when first introduced to the cask 6 | url "http://www.weihenstephan.org/~michaste/pagetable/recompiler/apple1basic_osx.zip", 7 | verified: "weihenstephan.org/~michaste/" 8 | name "Apple I BASIC" 9 | desc "Apple I BASIC as a scripting language for 32-bit Intel" 10 | homepage "https://www.pagetable.com/?p=35" 11 | 12 | binary "apple1basic" 13 | end 14 | -------------------------------------------------------------------------------- /Casks/adtpro.rb: -------------------------------------------------------------------------------- 1 | cask "adtpro" do 2 | version "2.1.0" 3 | sha256 "663a4a6c8b0b7d61bcbf5ae0284b014645cb701a00c084c4ab4361df99eae8fc" 4 | 5 | adtpro = "ADTPro-#{version}" 6 | url "https://github.com/ADTPro/adtpro/releases/download/v_#{version.tr(".", "_")}/#{adtpro}.dmg", 7 | verified: "github.com/ADTPro/adtpro/" 8 | name "ADTPro" 9 | desc "Apple Disk Transfer ProDOS" 10 | homepage "https://adtpro.com/" 11 | 12 | livecheck do 13 | url :url 14 | strategy :github_latest 15 | end 16 | 17 | # Copy the whole folder 18 | app adtpro 19 | 20 | caveats do 21 | depends_on_java 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /Formula/dos33fsprogs.rb: -------------------------------------------------------------------------------- 1 | class Dos33fsprogs < Formula 2 | desc "Apple DOS 3.3 filesystem tools" 3 | homepage "http://www.deater.net/weave/vmwprod/apple/dos33fs.html" 4 | url "https://github.com/deater/dos33fsprogs/archive/refs/tags/tfv004.tar.gz" 5 | version "tfv004" 6 | sha256 "8bcc36e6d7fca9319fca085783a9aa13606a19a67d5ec643aa4c5c902af7c4f1" 7 | head "https://github.com/deater/dos33fsprogs.git" 8 | 9 | def install 10 | mkdir_p bin 11 | inreplace "Makefile.inc", "/usr/local/bin", bin 12 | system "make" 13 | system "make", "install" 14 | end 15 | 16 | test do 17 | system "false" 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /Formula/tohgr.rb: -------------------------------------------------------------------------------- 1 | class Tohgr < Formula 2 | desc "Convert images in PNG, JPG, or XPM format to Apple II images" 3 | homepage "http://wsxyz.net/tohgr.html" 4 | url "http://wsxyz.net/tohgr-source.zip" 5 | version "20141226" 6 | sha256 "c360e178ee4303f8aa1ed07be3ed37236c3944fe5a143427c92396a1bd92972a" 7 | 8 | depends_on "jpeg" 9 | depends_on "libpng" 10 | 11 | def install 12 | system "make" 13 | bin.install "tohgr" 14 | end 15 | 16 | def caveats 17 | <<~EOS 18 | tohgr may segfault if it does not have permission 19 | to write to the destination path. 20 | EOS 21 | end 22 | 23 | test do 24 | system "#{bin}/tohgr" 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /Casks/osxii.rb: -------------------------------------------------------------------------------- 1 | cask "osxii" do 2 | version "0.9" 3 | sha256 "9e0a92f5df117d3dd9b001e827fa4485bd6753190465b755fec430ef99857796" 4 | 5 | url "https://www.zophar.net/fileuploads/2/12325fpoak/OSXII_v09.dmg.gz" 6 | name "OSXII" 7 | desc "Apple ][ emulator" 8 | homepage "https://www.zophar.net/macintosh/apple2/osxii.html" 9 | 10 | # Copy the whole folder 11 | app "OSXII 0.9 Folder" 12 | artifact "README.rtfd", target: "#{appdir}/OSXII 0.9 Folder/README.rtfd" 13 | 14 | caveats <<~EOS 15 | Read Roms.rtfd in "OSXII 0.9 Folder/Roms" directory. 16 | Place Apple.ROM and Disk.ROM in "Roms" directory. 17 | Place disk image files in "Disks" directory. 18 | EOS 19 | end 20 | -------------------------------------------------------------------------------- /Formula/hfdisk.rb: -------------------------------------------------------------------------------- 1 | class Hfdisk < Formula 2 | desc "Port of the Apple MkLinux mac-fdisk pdisk utility" 3 | homepage "https://www.codesrc.com/gitweb/index.cgi?p=hfdisk.git;a=summary" 4 | url "https://www.codesrc.com/gitweb/index.cgi?p=hfdisk.git;a=snapshot;h=a7659ed434abc8fb6994498e9e0e6e2c40bfbf51;sf=tgz" 5 | version "1.0-rc3" 6 | sha256 "5e38c66169a1988441f9a7e4b68d692a4ea6450fe1fccb44b335788257163972" 7 | head "git://www.codesrc.com/git/hfdisk.git" 8 | 9 | def install 10 | system "make" 11 | bin.install "hfdisk" 12 | man8.install "hfdisk.8" 13 | end 14 | 15 | test do 16 | assert_match version.to_s, shell_output("#{bin}/hfdisk -v") 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /Formula/nulib2.rb: -------------------------------------------------------------------------------- 1 | class Nulib2 < Formula 2 | desc "NufxLib and NuLib2, Apple II file archive utilities" 3 | homepage "http://nulib.com" 4 | url "https://github.com/fadden/nulib2/archive/refs/tags/v3.1.0.tar.gz" 5 | sha256 "383127d6966edae09da550f4d7197e68eed101d239f2a23cee42dc086506af12" 6 | head "https://github.com/fadden/nulib2.git" 7 | 8 | def install 9 | cd "nufxlib" do 10 | system "./configure", "--prefix=#{prefix}" 11 | system "make", "install" 12 | end 13 | 14 | cd "nulib2" do 15 | system "./configure", "--prefix=#{prefix}" 16 | system "make", "install" 17 | end 18 | end 19 | 20 | test do 21 | system "false" 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /Casks/buckshot.rb: -------------------------------------------------------------------------------- 1 | cask "buckshot" do 2 | version "0.5" 3 | sha256 "16babb4446509717e469fdd793c5feb3c4d361e5241bb7a425b378932588df15" 4 | 5 | # github.com/digarok/buckshot was verified as official when first introduced to the cask 6 | url "https://github.com/digarok/buckshot/releases/download/v#{version}/buckshot.dmg", 7 | verified: "github.com/digarok/buckshot/" 8 | name "buckshot" 9 | desc "Apple II Image Converter Tool" 10 | homepage "https://apple2.gs/buckshot/" 11 | 12 | app "buckshot.app" 13 | 14 | zap trash: [ 15 | "~/Library/Preferences/com.dagenbrock.buckshot.plist", 16 | "~/Library/Saved Application State/com.dagenbrock.buckshot.savedState", 17 | ] 18 | end 19 | -------------------------------------------------------------------------------- /Casks/steve2.rb: -------------------------------------------------------------------------------- 1 | cask "steve2" do 2 | version "0.85-beta.1" 3 | sha256 "cdb4cb9f4d937a0211be78b6819130391d9b4a9f623be28dd1aaef91df197f42" 4 | 5 | url "https://github.com/trudnai/Steve2/releases/download/v#{version}/Steve2.pkg" 6 | name "Steve ][" 7 | desc "Speedy Apple ][ emulator" 8 | homepage "https://github.com/trudnai/Steve2" 9 | 10 | livecheck do 11 | url :url 12 | regex(/^v?(\d+(?:\.\d+)+[.\w-]*)$/i) 13 | end 14 | 15 | pkg "Steve2.pkg", allow_untrusted: true 16 | 17 | uninstall pkgutil: "com.trudnai.pkg.Steve2" 18 | 19 | zap trash: [ 20 | "~/Library/Application Scripts/com.trudnai.steveii", 21 | "~/Library/Containers/com.trudnai.steveii", 22 | ] 23 | end 24 | -------------------------------------------------------------------------------- /Formula/applecommander-ac.rb: -------------------------------------------------------------------------------- 1 | class ApplecommanderAc < Formula 2 | desc "Move data between Apple ][ disk images and native filesystem" 3 | homepage "https://applecommander.github.io/" 4 | url "https://github.com/AppleCommander/AppleCommander/releases/download/13.0/AppleCommander-ac-13.0.jar" 5 | sha256 "2860b0a2e5a405dbcf3b58fdbd71cabff1e2204a8d066762198125b190e16855" 6 | 7 | depends_on "openjdk" 8 | 9 | def install 10 | libexec.install "AppleCommander-ac-#{version}.jar" 11 | bin.write_jar_script libexec/"AppleCommander-ac-#{version}.jar", "ac" 12 | end 13 | 14 | def caveats 15 | "The command-line executable is called `ac`." 16 | end 17 | 18 | test do 19 | system "false" 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /Formula/applecommander-acx.rb: -------------------------------------------------------------------------------- 1 | class ApplecommanderAcx < Formula 2 | desc "Move data between Apple ][ disk images and native filesystem" 3 | homepage "https://applecommander.github.io/" 4 | url "https://github.com/AppleCommander/AppleCommander/releases/download/13.0/AppleCommander-acx-13.0.jar" 5 | sha256 "3c374588393c57a5df567416705f87698c5a5a57aa0ea3afa28ea6a23a4f857e" 6 | 7 | depends_on "openjdk" 8 | 9 | def install 10 | libexec.install "AppleCommander-acx-#{version}.jar" 11 | bin.write_jar_script libexec/"AppleCommander-acx-#{version}.jar", "acx" 12 | end 13 | 14 | def caveats 15 | "The command-line executable is called `acx`." 16 | end 17 | 18 | test do 19 | system "false" 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /Formula/plasma.rb: -------------------------------------------------------------------------------- 1 | class Plasma < Formula 2 | desc "Proto Language AsSeMbler for Apple" 3 | homepage "https://github.com/dschmenk/PLASMA" 4 | url "https://github.com/dschmenk/PLASMA/archive/refs/tags/v2.20.tar.gz" 5 | sha256 "cd16a131e50fb02dd28f92ecb6742533f74b437ffaf91aa6e053e3038ad0a958" 6 | head "https://github.com/dschmenk/PLASMA.git" 7 | 8 | depends_on "acme" 9 | 10 | def install 11 | # Install isn't parallel-safe 12 | ENV.deparallelize 13 | 14 | cd "src" do 15 | system "make" 16 | end 17 | libexec.install Dir["*"] 18 | bin.write_exec_script libexec/"src/xplasm" 19 | bin.write_exec_script libexec/"src/plvm" 20 | end 21 | 22 | test do 23 | system "false" 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /Formula/c2d.rb: -------------------------------------------------------------------------------- 1 | class C2d < Formula 2 | desc "Apple II Code to Disk" 3 | homepage "https://github.com/datajerk/c2d" 4 | url "https://github.com/datajerk/c2d/archive/refs/tags/v0.57.tar.gz" 5 | sha256 "f6437d3bbd43fb638ef8378232b2453d1c75f5e5ed7f85adc47565596f940cc1" 6 | head "https://github.com/datajerk/c2d.git" 7 | 8 | def install 9 | system ENV.cc, "-I.", "-O3", "-o", "c2d", "c2d.c", "-lm" 10 | system ENV.cc, "-O3", "-o", "bin/text2page", "text2page.c", "-lm" 11 | system ENV.cc, "-O3", "-o", "bin/page2text", "page2text.c", "-lm" 12 | bin.install "c2d" 13 | bin.install "bin/text2page" 14 | bin.install "bin/page2text" 15 | end 16 | 17 | test do 18 | system "make", "test" # Fails 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /Formula/napple1.rb: -------------------------------------------------------------------------------- 1 | class Napple1 < Formula 2 | desc "Apple I emulator on a text terminal or console using ncurses" 3 | homepage "https://github.com/nobuh/napple1" 4 | url "https://github.com/nobuh/napple1.git", 5 | revision: "a6f12814f9260e3c24bf4c0bcaf1073b32481a13" 6 | version "20181006" # Date of commit 7 | head "https://github.com/nobuh/napple1.git" 8 | 9 | def install 10 | cd "src" do 11 | system "make" 12 | end 13 | libexec.install "core" 14 | libexec.install "rom" 15 | libexec.install "napple1" 16 | (bin/"napple1").write <<~EOS 17 | #!/bin/bash 18 | ROMDIR='#{libexec}/rom' exec "#{libexec}/napple1" "$@" 19 | EOS 20 | end 21 | 22 | test do 23 | false 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /Casks/ciderxpress.rb: -------------------------------------------------------------------------------- 1 | cask "ciderxpress" do 2 | version "1.0" 3 | sha256 :no_check 4 | 5 | url "http://www.apple2works.com/marklim/ciderxpress.zip" 6 | name "CiderXPress" 7 | desc "Utility for creating and working with Apple II disk images" 8 | homepage "http://www.apple2works.com/" 9 | 10 | app "CiderXPress.app" 11 | 12 | zap trash: [ 13 | "~/Library/Application Support/CiderXPress", 14 | "~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.incrementalinnovation.ciderxpress.sfl*", 15 | "~/Library/Preferences/com.incrementalinnovation.CiderXPress.plist", 16 | "~/Library/Saved Application State/com.incrementalinnovation.CiderXPress.savedState", 17 | ] 18 | end 19 | -------------------------------------------------------------------------------- /Formula/c2t.rb: -------------------------------------------------------------------------------- 1 | class C2t < Formula 2 | desc "Retro Code (Apple II, Cosmac VIP) to Tape/Text" 3 | homepage "https://github.com/datajerk/c2t" 4 | url "https://github.com/datajerk/c2t.git", 5 | revision: "6c20c17fd21d522315fa232c49b64adc65cf9460" 6 | version "6c20c17f" 7 | sha256 "bcf3b0fc596b8e77c6647f489e093380419f577e5dd334e902a9158674b43582" 8 | 9 | def install 10 | ENV.deparallelize 11 | system "make", "clean" 12 | system "make", "macos" 13 | 14 | if Hardware::CPU.arm? 15 | bin.install "bin/c2t_arm" => "c2t" 16 | bin.install "bin/c2t-96h_arm" => "c2t-96h" 17 | else 18 | bin.install "bin/c2t" 19 | bin.install "bin/c2t-96h" 20 | end 21 | end 22 | 23 | test do 24 | system "false" 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /Casks/sweet16.rb: -------------------------------------------------------------------------------- 1 | cask "sweet16" do 2 | version "3.0.3" 3 | sha256 "eed4544f0f461490e0849f33a2a582ad33ceeb0719a38f442cd871e47af3410b" 4 | 5 | sweet16 = "Sweet16_#{version}" 6 | url "https://www.sheppyware.net/downloads/downloads-mac/files/#{sweet16}.zip" 7 | name "Sweet16" 8 | desc "Capable Apple IIgs emulator" 9 | homepage "https://www.sheppyware.net/software-mac/sweet16/" 10 | 11 | livecheck do 12 | url :homepage 13 | regex(%r{href=.*?/Sweet16[._-]v?(\d+(?:\.\d+)+)\.zip}i) 14 | end 15 | 16 | # Copy the whole folder 17 | app sweet16 18 | 19 | zap trash: [ 20 | "~/Library/Application Support/Sweet16", 21 | "~/Library/Preferences/com.fesystems.Sweet16.plist", 22 | "~/Library/Saved Application State/com.fesystems.Sweet16.savedState", 23 | ] 24 | end 25 | -------------------------------------------------------------------------------- /Formula/jace.rb: -------------------------------------------------------------------------------- 1 | class Jace < Formula 2 | desc "Cycle-accurate emulation of an Apple //e computer" 3 | homepage "https://github.com/badvision/jace" 4 | url "https://github.com/badvision/jace/releases/download/3.0/Jace_3.0_MacOS_Intel64.zip" 5 | version "3.0" 6 | sha256 "d0f7930668b42b57a84046f267bda21a4ce5d52c27afdf14cc34cc92e3c651f1" 7 | head "https://github.com/badvision/jace.git" 8 | 9 | def install 10 | libexec.install "Jace" 11 | (bin/"jace").write <<~EOS 12 | #!/bin/bash 13 | cd #{etc} 14 | #{libexec}/Jace 15 | EOS 16 | end 17 | 18 | def caveats 19 | <<~EOS 20 | The executable is called `jace`. Jace configuration is saved in 21 | #{etc}/.jace.conf. 22 | EOS 23 | end 24 | 25 | test do 26 | false 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /Formula/diskm8.rb: -------------------------------------------------------------------------------- 1 | class Diskm8 < Formula 2 | desc "Command-line tool for manipulating and managing Apple II DSK images" 3 | homepage "https://paleotronic.com/software/microm8/" 4 | url "https://github.com/paleotronic/diskm8/archive/refs/tags/v0.6.1.tar.gz" 5 | sha256 "8a5d1e86e7401fe2de7988994a9926f2197f1c466603f33edb59505561cd5cac" 6 | head "https://github.com/paleotronic/diskm8.git" 7 | 8 | depends_on "go" => :build 9 | 10 | def install 11 | ENV["GOPATH"] = buildpath 12 | ENV["GOROOT"] = Formula["go"].opt_libexec 13 | ENV["GOOS"] = "darwin" 14 | ENV["GOARCH"] = Hardware::CPU.arm? ? "arm64" : "amd64" 15 | 16 | system "go", "build", "-o", "diskm8" 17 | bin.install "diskm8" => "diskm8" 18 | end 19 | 20 | test do 21 | system "false" 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /Formula/applewin.rb: -------------------------------------------------------------------------------- 1 | class Applewin < Formula 2 | desc "Apple II emulator for Windows" 3 | homepage "https://github.com/AppleWin/AppleWin" 4 | url "https://github.com/AppleWin/AppleWin/releases/download/v1.30.18.0/AppleWin1.30.18.0.zip" 5 | sha256 "392e927c75cfbb93b3aa893f7139d78b32daaeeb81305429ba8fbebe4822a083" 6 | 7 | def install 8 | libexec.install Dir["*"] 9 | 10 | bin.mkpath 11 | (bin/"applewin").write <<~EOS 12 | #!/bin/bash 13 | wine64 #{libexec}/Applewin.exe "$@" 14 | EOS 15 | end 16 | 17 | def caveats 18 | <<~EOS 19 | Applewin requires Wine. Install it with: 20 | 21 | brew install wine-stable 22 | 23 | The executable is called `applewin`. 24 | EOS 25 | end 26 | 27 | test do 28 | system "false" 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /Formula/dsktowoz2.rb: -------------------------------------------------------------------------------- 1 | class Dsktowoz2 < Formula 2 | desc "Converts Apple ][ DSK images to new WOZ2 format images" 3 | homepage "https://github.com/cmosher01/DskToWoz2" 4 | url "https://github.com/cmosher01/DskToWoz2/archive/refs/tags/v1.0.8.tar.gz" 5 | sha256 "9b972bec289db17e10e609209d19c395ae382636b9bf798fdab566b185236bb8" 6 | 7 | depends_on "qt@5" 8 | 9 | def install 10 | system "qmake" 11 | system "make" 12 | libexec.install "dsktowoz2.app" 13 | end 14 | 15 | def caveats 16 | <<~EOS 17 | dsktowoz2.app was installed in #{libexec}. 18 | 19 | You may create a symlink into /Applications or ~/Applications: 20 | 21 | ln -Fs '#{libexec}/dsktowoz2.app' /Applications/DskToWoz2.app 22 | EOS 23 | end 24 | 25 | test do 26 | system "false" 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /Formula/apple2e.rb: -------------------------------------------------------------------------------- 1 | class Apple2e < Formula 2 | desc "Yet another Apple //e emulator" 3 | homepage "https://github.com/bradgrantham/apple2e" 4 | url "https://github.com/bradgrantham/apple2e.git", 5 | revision: "8e656aba3b07788aee11705e188e4431c46b7e68" 6 | version "20240708" # Date of commit 7 | head "https://github.com/bradgrantham/apple2e.git" 8 | 9 | depends_on "glfw" 10 | depends_on "libao" 11 | 12 | def install 13 | system "make" 14 | bin.install "apple2e" 15 | libexec.install "apple2.rom" 16 | libexec.install "apple2e.rom" 17 | libexec.install "apple2_intbasic.rom" 18 | libexec.install "diskII.c600.c6ff.bin" 19 | end 20 | 21 | def caveats 22 | <<-EOS 23 | ROM files are in #{libexec}. 24 | EOS 25 | end 26 | 27 | test do 28 | system "false" 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /Formula/faux1.rb: -------------------------------------------------------------------------------- 1 | class Faux1 < Formula 2 | desc "Apple I emulator for the terminal with cut and paste" 3 | homepage "https://sourceforge.net/projects/faux1/" 4 | url "https://downloads.sourceforge.net/project/faux1/faux1.0.95.9.20120222.src.tar.gz" 5 | sha256 "fc5c72085abd0e5925d57c477d5e4dc20ded83723a03bd3c5f09281cdc43f25e" 6 | 7 | def install 8 | cd "src" do 9 | system "make" 10 | end 11 | libexec.install "apps" 12 | libexec.install "rom" 13 | libexec.install "faux1" 14 | (bin/"faux1").write <<~EOS 15 | #!/bin/bash 16 | cd #{libexec} && exec "./faux1" "$@" 17 | EOS 18 | end 19 | 20 | def caveats 21 | <<~EOS 22 | When faux1 is running, the working directory is set to 23 | #{libexec} 24 | EOS 25 | end 26 | 27 | test do 28 | false 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /Formula/profuse.rb: -------------------------------------------------------------------------------- 1 | class Profuse < Formula 2 | desc "ProDOS file system for FUSE" 3 | homepage "https://github.com/ksherlock/profuse" 4 | url "https://github.com/ksherlock/profuse/archive/refs/tags/2016-08-16.tar.gz" 5 | version "2016-08-16" 6 | sha256 "83ce3a7e3001ea1816d3518f29a6532c857e500be6a780586c5fd365d85a77aa" 7 | head "https://github.com/ksherlock/profuse.git" 8 | 9 | on_macos do 10 | disable! date: "2020-11-10", because: "requires FUSE" 11 | end 12 | 13 | def install 14 | system "make" 15 | # Do not install xattr, as it's already in OS X 16 | bin.install "o/apfm", "o/fuse_pascal", "o/newfs_pascal", "o/profuse" 17 | end 18 | 19 | def caveats 20 | <<-EOS 21 | IMPORTANT! Install OSXFUSE before installing this formula! 22 | EOS 23 | end 24 | 25 | test do 26 | system "false" 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /Casks/lisaem.rb: -------------------------------------------------------------------------------- 1 | cask "lisaem" do 2 | version "1.2.7-RC4_2022.04.01" 3 | sha256 "5b6b8026f57f6ac39986b11d4481f864ab8feb27412fadfae93eb377f4420c02" 4 | 5 | url "https://lisaem.sunder.net/downloads/LisaEm_#{version}-macosx.dmg" 6 | name "LisaEm" 7 | desc "Apple Lisa emulator" 8 | homepage "https://lisaem.sunder.net/" 9 | 10 | livecheck do 11 | url "https://lisaem.sunder.net/downloads.html" 12 | regex(/href=.*?LisaEm[._-]v?(\d+(?:\.\d+)+[.\w-]*)-macosx.dmg/i) 13 | end 14 | 15 | app "LisaEm #{version}.app", target: "LisaEm/LisaEm.app" 16 | 17 | zap trash: [ 18 | "~/Library/Caches/net.sunder.lisaem", 19 | "~/Library/Preferences/LisaEm Preferences", 20 | "~/Library/Preferences/lisaem.conf", 21 | "~/Library/Preferences/net.sunder.lisaem.plist", 22 | "~/Library/Saved Application State/net.sunder.lisaem.savedState", 23 | ] 24 | end 25 | -------------------------------------------------------------------------------- /Formula/llvm-6502.rb: -------------------------------------------------------------------------------- 1 | class Llvm6502 < Formula 2 | desc "LLVM backend for 6502" 3 | homepage "https://github.com/c64scene-ar/llvm-6502" 4 | url "https://github.com/c64scene-ar/llvm-6502.git", 5 | revision: "f91a14ca03a76a7c034e6b71343a8cb2986ed594" 6 | version "20150804" # Date of commit 7 | head "https://github.com/c64scene-ar/llvm-6502.git" 8 | 9 | depends_on "cmake" => :build 10 | depends_on "libffi" => :recommended # http://llvm.org/docs/GettingStarted.html#requirement 11 | if MacOS.version <= :snow_leopard 12 | depends_on "python" 13 | else 14 | depends_on "python" => :optional 15 | end 16 | 17 | def install 18 | mkdir "build" do 19 | system "cmake", "..", "-DLLVM_TARGETS_TO_BUILD:STRING='X86;Mos6502'", *std_cmake_args 20 | system "make", "install" 21 | end 22 | end 23 | 24 | test do 25 | system "false" 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /Casks/ample.rb: -------------------------------------------------------------------------------- 1 | cask "ample" do 2 | version "0.283,75" 3 | sha256 "8173e1772375e44499dce4d254aa27ebdf61cfccb1c8c39570ad0a1a866a054b" 4 | 5 | url "https://github.com/ksherlock/ample/releases/download/r#{version.csv.second}/Ample-#{version.csv.second}.zip" 6 | name "Ample" 7 | desc "Apple Emulator Frontend for MAME" 8 | homepage "https://github.com/ksherlock/ample" 9 | 10 | livecheck do 11 | url "https://ample.ksherlock.com/updates/appcast.xml" 12 | strategy :sparkle do |item| 13 | "#{item.short_version.delete_suffix("-u2")},#{item.version}" 14 | end 15 | end 16 | 17 | auto_updates true 18 | 19 | app "Ample.app" 20 | 21 | zap trash: [ 22 | "~/Library/Application Support/Ample", 23 | "~/Library/Caches/com.ksherlock.ample", 24 | "~/Library/Preferences/com.ksherlock.ample.plist", 25 | "~/Library/WebKit/com.ksherlock.ample", 26 | ] 27 | end 28 | -------------------------------------------------------------------------------- /Formula/apple1.rb: -------------------------------------------------------------------------------- 1 | class Apple1 < Formula 2 | desc "The Apple 1 emulator with the boring name" 3 | homepage "https://github.com/RyuKojiro/apple1" 4 | url "https://github.com/RyuKojiro/apple1.git", 5 | revision: "95134f17c290528231f9a99d6d103e534172aa16" 6 | version "20190201" # Date of commit 7 | head "https://github.com/RyuKojiro/apple1.git" 8 | 9 | depends_on "libedit" 10 | depends_on "ncurses" 11 | 12 | conflicts_with "apple1emulator", because: "both install an `apple1` executable" 13 | 14 | def install 15 | system "make" 16 | libexec.install "./apple1" 17 | libexec.install "./apple1.rom" 18 | libexec.install "./apple1.dbg" 19 | man1.install "./src/apple1.1" 20 | (bin/"apple1").write <<~EOS 21 | #!/bin/bash 22 | cd #{libexec} && exec "./apple1" "$@" 23 | EOS 24 | end 25 | 26 | test do 27 | system "false" 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /Formula/reinette-ii.rb: -------------------------------------------------------------------------------- 1 | class ReinetteIi < Formula 2 | desc "French Apple II text-only emulator" 3 | homepage "https://github.com/ArthurFerreira2/reinette-II" 4 | url "https://github.com/ArthurFerreira2/reinette-II.git", 5 | revision: "ef47881ad38e6b43dc1e31ca8e449725657f8632" 6 | version "20200408" # Date of commit 7 | 8 | depends_on "ncurses" 9 | 10 | def shim_script(target) 11 | <<~EOS 12 | #!/bin/bash 13 | cd "#{libexec}"; exec ./#{target} "$@"; cd - 14 | EOS 15 | end 16 | 17 | def install 18 | system "make" 19 | libexec.install "reinette-II" 20 | libexec.install "appleII+.rom" 21 | libexec.install "appleII.rom" 22 | (bin+"reinette-II").write shim_script("reinette-II") 23 | end 24 | 25 | def caveats 26 | <<~EOS 27 | The executable is `reinette-II`. 28 | EOS 29 | end 30 | 31 | test do 32 | system "false" 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /Formula/apple2-image-encoder.rb: -------------------------------------------------------------------------------- 1 | class Apple2ImageEncoder < Formula 2 | desc "Convert a modern image into a format usable by an Apple II" 3 | homepage "https://github.com/a2geek/apple2-image-encoder" 4 | url "https://github.com/a2geek/apple2-image-encoder/archive/refs/tags/4.4.1-FINAL.tar.gz" 5 | sha256 "e67544a1b6676dac8f76387aaa1d8bf27777b74ff20b59159b7b0300a9be5425" 6 | head "https://github.com/a2geek/apple2-image-encoder.git" 7 | 8 | depends_on "maven" => :build 9 | depends_on "openjdk@8" 10 | 11 | def install 12 | system "mvn", "package" 13 | libexec.install "target/apple2-image-encoder-4.4.1-FINAL.jar" 14 | bin.write_jar_script libexec/"apple2-image-encoder-4.4.1-FINAL.jar", "apple2-image-encoder" 15 | end 16 | 17 | def caveats 18 | <<~EOS 19 | The executable is called apple2-image-encoder. 20 | EOS 21 | end 22 | 23 | test do 24 | false 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /Formula/ciderpress2.rb: -------------------------------------------------------------------------------- 1 | class Ciderpress2 < Formula 2 | desc "Tool for working with Apple II and vintage Mac disk images and file archives" 3 | homepage "https://ciderpress2.com/" 4 | url "https://github.com/fadden/CiderPress2/releases/download/v1.1.1/cp2_1.1.1_osx-x64_sc.zip" 5 | sha256 "644ab273e7f06d69834567803c391d934614574b36925f5b5c0d11e847ed80a0" 6 | 7 | def install 8 | libexec.install Dir["*"] 9 | 10 | bin.mkpath 11 | (bin/"cp2").write <<~EOS 12 | #!/bin/bash 13 | exec #{libexec}/cp2 "$@" 14 | EOS 15 | end 16 | 17 | def caveats 18 | <<~EOS 19 | CiderPress2 can be run by typing `cp2` in the terminal. 20 | 21 | If you get a permission error, open #{libexec} 22 | in the Finder and open cp2 by right-clicking on the cp2 executable. This 23 | needs to be done once. 24 | EOS 25 | end 26 | 27 | test do 28 | system "false" 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /Formula/merlin32.rb: -------------------------------------------------------------------------------- 1 | class Merlin32 < Formula 2 | desc "Multi-pass Cross Assembler for 6502/65c02/65c816 processors" 3 | homepage "https://www.brutaldeluxe.fr/products/crossdevtools/merlin/" 4 | url "https://www.brutaldeluxe.fr/products/crossdevtools/merlin/Merlin32_v1.2.zip" 5 | sha256 "4022503d0fa779529190acc2b598c766f522da5012c12890179cb437b504f43d" 6 | 7 | livecheck do 8 | url :homepage 9 | regex(/href=.*?Merlin32[._-]v?(\d+(?:\.\d+)+)\./i) 10 | end 11 | 12 | def install 13 | cd "Source" do 14 | system "make", "-f", "linux_makefile" 15 | bin.install "Merlin32" 16 | end 17 | prefix.install "Library" => "lib" 18 | end 19 | 20 | def caveats 21 | <<~EOS 22 | Macro definition files are in #{lib}. 23 | The executable is `Merlin32`. 24 | EOS 25 | end 26 | 27 | test do 28 | assert_match version.to_s, shell_output("#{bin}/Merlin32 -v", 1) 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /Casks/catakig.rb: -------------------------------------------------------------------------------- 1 | cask "catakig" do 2 | version "2.00b4" 3 | sha256 "aeb2c3e796d082efffe82d96720843f6b98150286b3f163fd0f8a9dc7dd3f229" 4 | 5 | url "https://downloads.sourceforge.net/catakig/catakig-2/Catakig-2.0/Catakig-#{version}.dmg" 6 | name "Catakig" 7 | desc "Apple II emulator" 8 | homepage "https://catakig.sourceforge.net/" 9 | 10 | # Copy the whole folder 11 | app "Catakig" 12 | artifact "License.html", target: "#{appdir}/Catakig/License.html" 13 | artifact "Read-Me.txt", target: "#{appdir}/Catakig/Read-Me.txt" 14 | artifact "User-Guide.pdf", target: "#{appdir}/Catakig/User-Guide.pdf" 15 | artifact "Version-History.txt", target: "#{appdir}/Catakig/Version-History.txt" 16 | 17 | zap trash: [ 18 | "~/Library/Preferences/net.sourceforge.catakig.plist", 19 | "~/Library/Saved Application State/net.sourceforge.catakig.savedState", 20 | ] 21 | 22 | caveats "ROM files must be put in #{appdir}/Catakig/ROMs." 23 | end 24 | -------------------------------------------------------------------------------- /Formula/jvernet-catakig.rb: -------------------------------------------------------------------------------- 1 | class JvernetCatakig < Formula 2 | desc "Fork of Catakig that builds on newer Xcode" 3 | homepage "https://github.com/jvernet/Catakig" 4 | url "https://github.com/jvernet/Catakig.git", 5 | revision: "83d0e8f94047ddcc862a848e63cf610a05e42b0f" 6 | version "20190303" 7 | head "https://github.com/jvernet/Catakig.git" 8 | 9 | def install 10 | xcodebuild "-configuration", "Release", 11 | "-alltargets", 12 | "MACOSX_DEPLOYMENT_TARGET=#{MacOS.version}", 13 | "SYMROOT=build", 14 | "PREFIX=#{prefix}", 15 | "HEADER_SEARCH_PATHS=./Source/LibAppleII" 16 | 17 | prefix.install "build/Release/Catakig.app" 18 | end 19 | 20 | def caveats 21 | <<~EOS 22 | Catakig.app has been installed in #{opt_prefix}. 23 | You may create an alias in your Applications folder if you want. 24 | ROM files should be put in #{opt_prefix}. 25 | EOS 26 | end 27 | 28 | test do 29 | system "false" 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /Casks/openemulator.rb: -------------------------------------------------------------------------------- 1 | cask "openemulator" do 2 | version "1.1.1,20220311" 3 | sha256 "b32f144efc3d6bf2be857e35fe1d65a91fd40ffe6f3dc34cf34cbf7501998a6f" 4 | 5 | url "https://archive.org/download/OpenEmulatorSnapshots/OpenEmulator-#{version.csv.second}.zip" 6 | name "OpenEmulator" 7 | desc "Accurate, portable emulator of legacy computer systems" 8 | homepage "https://archive.org/details/OpenEmulatorSnapshots" 9 | 10 | livecheck do 11 | url :homepage 12 | regex(/href=.*?OpenEmulator[._-](\d+(?:\.\d+)*)\.zip".*?version (\d+(?:\.\d+)*)/i) 13 | strategy :page_match do |page, regex| 14 | page.scan(regex).map { |match| "#{match[1]},#{match[0]}" } 15 | end 16 | end 17 | 18 | app "OpenEmulator.app" 19 | 20 | zap trash: [ 21 | "~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/org.openemulator.openemulator.sfl", 22 | "~/Library/Preferences/org.openemulator.OpenEmulator.plist", 23 | ] 24 | end 25 | -------------------------------------------------------------------------------- /Formula/dskalyzer.rb: -------------------------------------------------------------------------------- 1 | class Dskalyzer < Formula 2 | desc "Apple II disk image management tool" 3 | homepage "https://github.com/paleotronic/dskalyzer" 4 | url "https://github.com/paleotronic/dskalyzer/archive/refs/tags/v0.1.3.tar.gz" 5 | sha256 "6e150746eb62bfa80b8edc513cd786f6a7917b837fe1ecf199eac132ff6b9d03" 6 | head "https://github.com/paleotronic/dskalyzer.git" 7 | 8 | depends_on "go" => :build 9 | 10 | def install 11 | ENV["GOPATH"] = buildpath 12 | ENV["GOROOT"] = Formula["go"].opt_libexec 13 | 14 | (buildpath/"src/github.com/paleotronic/dskalyzer").install buildpath.children 15 | cd "src/github.com/paleotronic/dskalyzer" do 16 | system "go", "mod", "init", "github.com/paleotronic/dskalyzer" 17 | system "./make.sh" 18 | end 19 | system "unzip", "src/github.com/paleotronic/dskalyzer/publish/dskalyzer-darwin-amd64.zip" 20 | bin.install "dskalyzer" => "dskalyzer" 21 | end 22 | 23 | test do 24 | system "false" 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /Formula/apple-ii-cassette-recover.rb: -------------------------------------------------------------------------------- 1 | class AppleIiCassetteRecover < Formula 2 | desc "Recover data from Apple ][ cassette image WAVE files" 3 | homepage "https://github.com/cmosher01/Apple-II-Cassette-Recover" 4 | url "https://github.com/cmosher01/Apple-II-Cassette-Recover.git", 5 | revision: "fdef3810972e0382984c8f1822328fb20d220104" 6 | version "20240403" # Date of commit 7 | sha256 "798e6fcdcf7add395f9e741f9afc2d323e10d4d839a6d4cb2b09c101058afc57" 8 | head "https://github.com/cmosher01/Apple-II-Cassette-Recover.git" 9 | 10 | depends_on "qt" => :build 11 | depends_on "sdl2" => :build 12 | 13 | def install 14 | system "qmake" 15 | inreplace "Makefile", "/usr/local/include", "#{HOMEBREW_PREFIX}/include" 16 | inreplace "Makefile", "/usr/local/lib", "${HOMEBREW_PREFIX}/lib" 17 | system "make" 18 | bin.install "./a2cassre.app/Contents/MacOS/a2cassre" 19 | end 20 | 21 | def caveats 22 | <<~EOS 23 | To get started, type 'a2cassre'. 24 | EOS 25 | end 26 | 27 | test do 28 | system "false" 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /Formula/ciderpress.rb: -------------------------------------------------------------------------------- 1 | class Ciderpress < Formula 2 | desc "Apple II archive utility for Windows" 3 | homepage "http://a2ciderpress.com" 4 | url "https://github.com/fadden/ciderpress/releases/download/v4.1.1/CiderPress411.zip" 5 | version "4.1.1" 6 | sha256 "d2348b114e7506e3d2f99dc2a47358e710e06a8e99304ab27f88e9e321a5283f" 7 | 8 | def install 9 | libexec.install Dir["*"] 10 | 11 | bin.mkpath 12 | (bin/"ciderpress").write <<~EOS 13 | #!/bin/bash 14 | wine64 ${HOME}'/.wine/drive_c/Program Files (x86)/faddenSoft/CiderPress/CiderPress.exe' "$@" 15 | EOS 16 | end 17 | 18 | def caveats 19 | <<~EOS 20 | Ciderpress requires Wine. Install it with: 21 | 22 | brew install wine-stable 23 | 24 | To complete the installation execute: 25 | 26 | cd #{libexec} 27 | wine64 Setup411.exe 28 | 29 | and choose Immediate Installation. 30 | 31 | Ciderpress can then be launched from the command-line with `ciderpress`. 32 | EOS 33 | end 34 | 35 | test do 36 | system "false" 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /Formula/applecommander.rb: -------------------------------------------------------------------------------- 1 | class Applecommander < Formula 2 | if Hardware::CPU.intel? 3 | url "https://github.com/AppleCommander/AppleCommander/releases/download/13.0/AppleCommander-macosx-x86_64-13.0.jar" 4 | sha256 "1878ad5b3704093e6c910f58cf4c8345ff65326ab6cbeb64b1b4b13515dc9353" 5 | else 6 | url "https://github.com/AppleCommander/AppleCommander/releases/download/13.0/AppleCommander-macosx-aarch64-13.0.jar" 7 | sha256 "46898dfa72cb822b40996bd496857ef96f22d78320f377ec1a2fad741d9390c9" 8 | end 9 | 10 | desc "Move data between Apple ][ disk images and native filesystem" 11 | homepage "https://applecommander.github.io/" 12 | depends_on "openjdk" 13 | 14 | def install 15 | arch = Hardware::CPU.intel? ? "x86_64" : "aarch64" 16 | libexec.install "AppleCommander-macosx-#{arch}-#{version}.jar" 17 | bin.write_jar_script libexec/"AppleCommander-macosx-#{arch}-#{version}.jar", "applecommander", "-XstartOnFirstThread" 18 | end 19 | 20 | def caveats 21 | "Run by typing `applecommander` in the terminal." 22 | end 23 | 24 | test do 25 | system "false" 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /Formula/linapple.rb: -------------------------------------------------------------------------------- 1 | class Linapple < Formula 2 | desc "Apple 2, 2e cross-platform emulator" 3 | homepage "http://linapple.sourceforge.io" 4 | url "http://beotiger.com/download/linapple_src-2b" 5 | sha256 "96f837fe902a00a2b100766d234120f43f70a1e9c19198e442157516da4789fe" 6 | head "https://github.com/timob/linapple.git" 7 | 8 | depends_on "libzip" 9 | depends_on "sdl12-compat" 10 | 11 | def shim_script(target) 12 | <<~EOS 13 | #!/bin/bash 14 | cd "#{libexec}"; exec ./#{target} "$@"; cd - 15 | EOS 16 | end 17 | 18 | def install 19 | files = [ 20 | "charset40.bmp", 21 | "font.bmp", 22 | "icon.bmp", 23 | "linapple", 24 | "linapple.conf", 25 | "linapple.installed.conf", 26 | "Master.dsk", 27 | "splash.bmp", 28 | ] 29 | ENV.append "CXXFLAGS", "-I#{Formula["libzip"].lib}/libzip/include" 30 | cd "src" do 31 | system "make" 32 | end 33 | chmod 0644, files 34 | chmod 0755, "linapple" 35 | libexec.install files 36 | (bin+"linapple").write shim_script("linapple") 37 | end 38 | 39 | test do 40 | system "false" 41 | end 42 | end 43 | -------------------------------------------------------------------------------- /Formula/apple1emulator.rb: -------------------------------------------------------------------------------- 1 | class Apple1emulator < Formula 2 | desc "Apple I Emulator" 3 | homepage "https://github.com/alexander-akhmetov/apple1" 4 | url "https://github.com/alexander-akhmetov/apple1/archive/refs/tags/0.4.0.tar.gz" 5 | sha256 "62efa62e11971519a893214224b3d6f652d6c9e0857e4406ff827b6a8197bd57" 6 | head "https://github.com/alexander-akhmetov/apple1.git" 7 | 8 | depends_on "rust" => :build 9 | 10 | conflicts_with "apple1", because: "both install an `apple1` executable" 11 | 12 | def install 13 | inreplace "src/bin.rs" do |s| 14 | s.sub! "sys/wozmon.bin", "#{libexec}/sys/wozmon.bin" 15 | s.sub! "sys/replica1.bin", "#{libexec}/sys/replica1.bin" 16 | end 17 | system "cargo", "install", "--root", prefix, "--path", "." 18 | bin.install "./target/release/apple1" 19 | libexec.install "asm" 20 | libexec.install "roms" 21 | libexec.install "sys" 22 | end 23 | 24 | def caveats 25 | <<~EOS 26 | Supporting files have been installed inside #{libexec}/ 27 | For example: 28 | 29 | apple1 -p #{libexec}/asm/apple1hello.asm 30 | 31 | EOS 32 | end 33 | 34 | test do 35 | system "false" 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /Formula/openemulator.rb: -------------------------------------------------------------------------------- 1 | class Openemulator < Formula 2 | desc "Accurate, portable emulator of legacy computer systems" 3 | homepage "https://github.com/openemulator/openemulator" 4 | url "https://github.com/openemulator/openemulator.git", 5 | revision: "85f75fe5c493e810b56ee96c0a0bbb640e0739b3" 6 | version "20200522" # Date of commit 7 | head "https://github.com/openemulator/openemulator.git" 8 | 9 | depends_on "cmake" => :build 10 | depends_on xcode: :build 11 | depends_on "flac" 12 | depends_on "libpng" 13 | depends_on "libsamplerate" 14 | depends_on "libsndfile" 15 | depends_on "libzip" 16 | depends_on "portaudio" 17 | 18 | def install 19 | arch = Hardware::CPU.arm? ? "arm64": "x86_64" 20 | system "cmake", "-Hmodules/libemulation", "-Bmodules/libemulation/build", "-DCMAKE_BUILD_TYPE=Release" 21 | system "cmake", "--build", "modules/libemulation/build", "--config", "Release" 22 | xcodebuild "-configuration", "Release", "-arch", arch, "SYMROOT=build", "PREFIX=#{prefix}" 23 | prefix.install "build/Release/OpenEmulator.app" 24 | end 25 | 26 | def caveats 27 | <<~EOS 28 | Openemulator.app has been installed in #{opt_prefix}. 29 | You may create an alias in your Applications folder if you want. 30 | EOS 31 | end 32 | 33 | test do 34 | system "false" 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /Casks/gsplus.rb: -------------------------------------------------------------------------------- 1 | cask "gsplus" do 2 | version "0.14" 3 | sha256 "63015f83211fccedd01707cca56342f5dba58127d5b336bc9c33be51b93d8882" 4 | 5 | url "http://apple2.gs/downloads/plusbuilds/#{version}/GSplus-Install.dmg" 6 | name "GSplus" 7 | desc "Apple IIGS emulator based on KEGS and GSPort" 8 | homepage "https://apple2.gs/plus/" 9 | 10 | livecheck do 11 | url "https://github.com/digarok/gsplus" 12 | end 13 | 14 | gsplus_folder = "#{appdir}/GSplus" 15 | shimscript = "#{staged_path}/gsplus-wrapper.sh" 16 | 17 | app "GSplus.app", target: "#{gsplus_folder}/GSplus.app" 18 | binary shimscript, target: "gsplus" 19 | artifact "license", target: "#{gsplus_folder}/license" 20 | artifact "gsplusmanual.pdf", target: "#{gsplus_folder}/gsplusmanual.pdf" 21 | artifact "README.txt", target: "#{gsplus_folder}/README.txt" 22 | 23 | preflight do 24 | File.write shimscript, <<~EOS 25 | #!/bin/sh 26 | #{gsplus_folder}/GSplus.app/Contents/macOS/gsplus -config #{gsplus_folder}/config.txt "$@" 27 | EOS 28 | end 29 | 30 | postflight do 31 | File.write("#{gsplus_folder}/config.txt", "# GSplus configuration file") 32 | end 33 | 34 | caveats <<~EOS 35 | Edit the config file located at #{gsplus_folder}/config.txt. 36 | 37 | GSplus must be launched from the command line. To get started, type: 38 | 39 | gsplus -h 40 | EOS 41 | end 42 | -------------------------------------------------------------------------------- /Formula/calvados.rb: -------------------------------------------------------------------------------- 1 | class Calvados < Formula 2 | desc "Gtk app designed as a workalike of CiderPress" 3 | homepage "https://github.com/softwarejanitor/calvados" 4 | url "https://github.com/softwarejanitor/calvados.git", 5 | revision: "f46ea157e7b0d950e0d4fb6a582f19b6ab3057d1" 6 | version "20190125" # Date of commit 7 | head "https://github.com/softwarejanitor/calvados.git" 8 | 9 | depends_on "pkg-config" => :build 10 | depends_on "glib" 11 | depends_on "gtk+" 12 | 13 | def install 14 | gtkx = Formula["gtk+"] 15 | glib = Formula["glib"] 16 | glib_include = "#{glib.opt_include}/glib-2.0" 17 | inreplace "Makefile" do |s| 18 | s.gsub! "GTKFLAGS=", "GTKFLAGS=-I#{gtkx.opt_include}/gtk-2.0 " 19 | s.gsub! "INCLUDES=-I/usr/include/glib-2.0", "INCLUDES=-I#{glib_include} -I#{glib_include}/glib" 20 | s.gsub! "/usr/include", "#{HOMEBREW_PREFIX}/include" 21 | end 22 | system "make", "calvados" 23 | libexec.install "calvados" 24 | libexec.install "images" 25 | (bin/"calvados").write <<~EOS 26 | #!/bin/bash 27 | cd #{libexec} && exec "./calvados" "$@" 28 | EOS 29 | end 30 | 31 | def caveats 32 | <<~EOS 33 | Calvados is still a work in progress and no 34 | functionality has been implemented yet. 35 | 36 | The executable is called `calvados`. 37 | EOS 38 | end 39 | 40 | test do 41 | system "false" 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /Formula/wozardry.rb: -------------------------------------------------------------------------------- 1 | class Wozardry < Formula 2 | desc "Multi-purpose tool for manipulating .woz disk images" 3 | homepage "https://github.com/a2-4am/wozardry" 4 | url "https://github.com/a2-4am/wozardry/archive/refs/tags/v2.0.tar.gz" 5 | sha256 "715feaa8c0ebc5f8b3adf2f9c4f33194469a8eb77e69097d990b8f96282580c2" 6 | head "https://github.com/a2-4am/wozardry.git", branch: "master" 7 | 8 | depends_on "python" 9 | 10 | resource "bitarray" do 11 | url "https://files.pythonhosted.org/packages/e2/1e/b93636ae36d08d0ee3aec40b08731cc97217c69db9422c0afef6ee32ebd2/bitarray-0.8.3.tar.gz" 12 | sha256 "050cd30b810ddb3aa941e7ddfbe0d8065e793012d0a88cb5739ec23624b9895e" 13 | end 14 | 15 | def install 16 | xy = Language::Python.major_minor_version "python3" 17 | site_packages = libexec/"lib/python#{xy}/site-packages" 18 | ENV.prepend_create_path "PYTHONPATH", site_packages 19 | 20 | deps = resources.map(&:name).to_set 21 | deps.each do |r| 22 | resource(r).stage do 23 | system "python3", *Language::Python.setup_install_args(libexec) 24 | end 25 | end 26 | 27 | libexec.install Dir["*"] 28 | (libexec/"wozardry.py").chmod 0755 29 | (bin/"wozardry").write_env_script("#{libexec}/wozardry.py", PYTHONPATH: ENV["PYTHONPATH"]) 30 | end 31 | 32 | def caveats 33 | <<~EOS 34 | To get started, type `wozardry -h`. 35 | EOS 36 | end 37 | 38 | test do 39 | system "#{bin}/wozardry", "--version" 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /Formula/passport.rb: -------------------------------------------------------------------------------- 1 | class Passport < Formula 2 | desc "Verification and copy program for Apple II .woz disk images" 3 | homepage "https://github.com/a2-4am/passport.py" 4 | url "https://github.com/a2-4am/passport.py.git", 5 | revision: "88c3224f7299320c129d9a63253aaf195c4c48db" 6 | version "20190425" # As in `passport --version` 7 | head "https://github.com/a2-4am/passport.py.git", branch: "master" 8 | 9 | depends_on "python" 10 | 11 | resource "bitarray" do 12 | url "https://files.pythonhosted.org/packages/e2/1e/b93636ae36d08d0ee3aec40b08731cc97217c69db9422c0afef6ee32ebd2/bitarray-0.8.3.tar.gz" 13 | sha256 "050cd30b810ddb3aa941e7ddfbe0d8065e793012d0a88cb5739ec23624b9895e" 14 | end 15 | 16 | def install 17 | xy = Language::Python.major_minor_version "python3" 18 | site_packages = libexec/"lib/python#{xy}/site-packages" 19 | ENV.prepend_create_path "PYTHONPATH", site_packages 20 | 21 | deps = resources.map(&:name).to_set 22 | deps.each do |r| 23 | resource(r).stage do 24 | system "python3", *Language::Python.setup_install_args(libexec) 25 | end 26 | end 27 | 28 | libexec.install Dir["*"] 29 | (libexec/"passport.py").chmod 0755 30 | (bin/"passport").write_env_script("#{libexec}/passport.py", PYTHONPATH: ENV["PYTHONPATH"]) 31 | end 32 | 33 | def caveats 34 | <<~EOS 35 | To get started, type `passport -h`. 36 | EOS 37 | end 38 | 39 | test do 40 | system "#{bin}/passport", "--version" 41 | end 42 | end 43 | -------------------------------------------------------------------------------- /Formula/reinette-ii-plus.rb: -------------------------------------------------------------------------------- 1 | class ReinetteIiPlus < Formula 2 | desc "French Apple II plus emulator" 3 | homepage "https://github.com/ArthurFerreira2/reinette-II-plus" 4 | url "https://github.com/ArthurFerreira2/reinette-II-plus/archive/refs/tags/v0.4.8.tar.gz" 5 | sha256 "ea630d3ca3555edec742a633993db1bf8655c3a1b66e6398fd1346b01e977ed3" 6 | 7 | depends_on "sdl2" 8 | 9 | def shim_script(target) 10 | <<~EOS 11 | #!/bin/bash 12 | cd "#{libexec}"; exec ./#{target} "$@"; cd - 13 | EOS 14 | end 15 | 16 | patch :DATA 17 | 18 | def install 19 | system "make" 20 | libexec.install "reinetteII+" 21 | libexec.install "assets" 22 | libexec.install "rom" 23 | libexec.install "DOS 3.3.nib" 24 | (bin+"reinetteII+").write shim_script("reinetteII+") 25 | end 26 | 27 | def caveats 28 | <<~EOS 29 | The executable is `reinetteII+`. 30 | EOS 31 | end 32 | 33 | test do 34 | system "false" 35 | end 36 | end 37 | 38 | __END__ 39 | diff --git a/Makefile b/Makefile 40 | index 32374dd..69ea68f 100644 41 | --- a/Makefile 42 | +++ b/Makefile 43 | @@ -3,8 +3,8 @@ 44 | 45 | LIBS = -lSDL2 46 | # comment these two lines if you are under Linux : 47 | -WIN32-LIBS = -lmingw32 -lSDL2main -Wl,-subsystem,windows 48 | -WIN32-RES = reinetteII+.res 49 | +#WIN32-LIBS = -lmingw32 -lSDL2main -Wl,-subsystem,windows 50 | +#WIN32-RES = reinetteII+.res 51 | 52 | reinetteII+: reinetteII+.c puce6502.c $(WIN32-RES) 53 | $(CC) $^ $(FLAGS) $(WIN32-LIBS) $(LIBS) -o $@ 54 | -------------------------------------------------------------------------------- /Casks/kegs.rb: -------------------------------------------------------------------------------- 1 | cask "kegs" do 2 | version "1.38" 3 | sha256 "d54c04cef80cc2d0dbd605210130047c03c5c2a89edc13745b74d16aa97d97ff" 4 | 5 | url "https://kegs.sourceforge.net/kegs.#{version}.zip" 6 | name "KEGS" 7 | desc "Apple IIgs emulator" 8 | homepage "https://kegs.sourceforge.net/" 9 | 10 | livecheck do 11 | url :homepage 12 | regex(/href=.*?kegs[._-](\d+(?:\.\d+)*)\.zip/i) 13 | end 14 | 15 | kegs_folder = "#{appdir}/KEGS" 16 | shimscript = "#{staged_path}/kegs-wrapper.sh" 17 | 18 | app "kegs.#{version}/KEGSMAC.app", target: "#{kegs_folder}/KEGSMAC.app" 19 | binary shimscript, target: "kegs" 20 | artifact "kegs.#{version}/config.kegs", target: "#{kegs_folder}/config.kegs" 21 | artifact "kegs.#{version}/doc", target: "#{kegs_folder}/doc" 22 | artifact "kegs.#{version}/NUCLEUS03.gz", target: "#{kegs_folder}/NUCLEUS03.gz" 23 | artifact "kegs.#{version}/XMAS_DEMO.gz", target: "#{kegs_folder}/XMAS_DEMO.gz" 24 | 25 | preflight do 26 | File.write shimscript, <<~EOS 27 | #!/bin/sh 28 | cd #{kegs_folder} 29 | #{kegs_folder}/KEGSMAC.app/Contents/MacOS/KEGSMAC "$@" 30 | EOS 31 | end 32 | 33 | caveats <<~EOS 34 | You may launch KEGS by running `kegs` from the terminal. 35 | 36 | Because of macOS security measures, you may have to first open KEGSMAC by 37 | right-clicking on the app in the Finder and selecting "Open". 38 | 39 | You need to copy ROM files into #{kegs_folder}. 40 | 41 | See #{kegs_folder}/README.mac.txt. 42 | EOS 43 | end 44 | -------------------------------------------------------------------------------- /Formula/lisaem.rb: -------------------------------------------------------------------------------- 1 | class Lisaem < Formula 2 | desc "Fully functional Lisa Emulator" 3 | homepage "https://lisaem.sunder.net/" 4 | url "https://github.com/arcanebyte/lisaem/archive/refs/tags/RC5-2025.03.15.tar.gz" 5 | version "1.2.7-2025.03.15" 6 | sha256 "29ac35a43a98c693ec85206256fa2450a3371fab2bc0d2da2fc02dd87c1a3e2e" 7 | head "https://github.com/arcanebyte/lisaem.git" 8 | 9 | depends_on "sdl2" 10 | 11 | resource "wxWidgets" do 12 | url "https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.5/wxWidgets-3.2.5.tar.bz2" 13 | sha256 "0ad86a3ad3e2e519b6a705248fc9226e3a09bbf069c6c692a02acf7c2d1c6b51" 14 | end 15 | 16 | def install 17 | cd "scripts" do 18 | resource("wxWidgets").unpack "wxWidgets-3.2.5" 19 | inreplace "build-wx3.2.5-modern-macosx.sh" do |s| 20 | # build only 64-bit on >= 10.14 21 | s.gsub! "\"$OSVER\" > \"macOS-10.14\"", "\"$OSVER\" > \"macOS-10.13\"" 22 | s.gsub! "--prefix=/usr/local/wx${VER}-${TYPE}", "--prefix=#{buildpath}/../wxWidgets" 23 | s.gsub! "&& sudo make", "&& make" 24 | end 25 | system "./build-wx3.2.5-modern-macosx.sh", "--no-minimum-macos" 26 | end 27 | 28 | inreplace "build.sh", "# replace machine type", "SOFTWARE='LisaEm' #" 29 | inreplace "bashbuild/Darwin.sys", "macosx10", "macosx1" 30 | 31 | ENV.prepend_path "PATH", buildpath/"../wxWidgets/bin" # for wx-config 32 | system "./build.sh", "build", "--quiet", "--no-upx", "--prefix=#{prefix}" 33 | 34 | libexec.install "bin/LisaEm.app" 35 | bin.install Dir["bin/*.*/*"] 36 | end 37 | 38 | def caveats 39 | <<~EOS 40 | LisaEm.app has been installed in #{opt_libexec}. 41 | You may create an alias in your Applications folder if you want. 42 | EOS 43 | end 44 | 45 | test do 46 | system bin/"lisadiskinfo" 47 | end 48 | end 49 | -------------------------------------------------------------------------------- /Formula/epple2.rb: -------------------------------------------------------------------------------- 1 | class Epple2 < Formula 2 | desc "Emulator of the Apple ][ computer" 3 | homepage "http://mosher.mine.nu/epple2" 4 | url "https://github.com/cmosher01/Epple-II/archive/refs/tags/1.1.1.tar.gz" 5 | sha256 "4dde05482fd0a548e12d8976030fb9dff4e2f6268717963678f536f0c3a6327d" 6 | 7 | depends_on "autoconf" => :build 8 | depends_on "automake" => :build 9 | depends_on "cmake" => :build 10 | depends_on "xa" => :build 11 | depends_on "sdl2" 12 | 13 | resource "apple2sys" do 14 | url "https://github.com/cmosher01/Apple-II-Source/archive/refs/tags/1.2.1.tar.gz" 15 | sha256 "4c27bb6f462ba766ad12cf094ef978336ee612648d830c52b929a7b3b419915f" 16 | end 17 | 18 | def install 19 | ENV.cxx11 20 | ENV.append "CXXFLAGS", "-DETCDIR=\\\"#{etc}\\\"" 21 | 22 | resource("apple2sys").stage do 23 | system "./bootstrap", "--skip-po" 24 | system "./configure", "--prefix=#{prefix}" 25 | system "make", "install" 26 | end 27 | 28 | cd "rom" do 29 | system "make" 30 | end 31 | 32 | system "cmake", "--install-prefix=#{prefix}", "." 33 | system "make" 34 | bin.install "src/epple2" 35 | (lib/"epple2/system").install "rom/epple2sys.a65" 36 | (lib/"epple2/cards").install "rom/stdout.a65" 37 | (lib/"epple2/cards").install "rom/stdin.a65" 38 | (lib/"epple2/cards").install "rom/clock.a65" 39 | 40 | (etc/"epple2").install Pathname.glob("conf/*.conf") unless Dir.exist? etc/"epple2" 41 | end 42 | 43 | def caveats 44 | <<~EOS 45 | Please read Warnings about copyright here: 46 | 47 | https://cmosher01.github.io/Apple-II-Source/ 48 | 49 | Configuration files are in #{etc}/epple2. 50 | 51 | After upgrading you may need to update the import path in 52 | #{etc}/epple2/epple2.conf 53 | EOS 54 | end 55 | 56 | test do 57 | system "false" 58 | end 59 | end 60 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # Vintage Apple emulators and related software 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
Apple IApple IIApple II+
Apple IIeJobs and WozApple //e Platinum
Apple //cApple ///+Apple //GS
20 | 21 | 22 | ## Requirements 23 | 24 | [Homebrew](http://brew.sh). 25 | 26 | 27 | ## Installation 28 | 29 | brew tap lifepillar/appleii 30 | 31 | 32 | ## How to install formulas and casks 33 | 34 | brew install 35 | 36 | In some cases, a formula and a cask have the same name (e.g., `openemulator`). 37 | You may pass `--formula` or `--cask` to `brew install` to disambiguate. Refer 38 | to Homebrew's documentation for further details about these and other commands, 39 | or if you are unfamiliar with the terminology. 40 | 41 | Examples: 42 | 43 | brew install --formula openemulator 44 | brew install --cask openemulator 45 | brew install cadius 46 | brew install gsport 47 | 48 | 49 | Some formulas or casks in this repository may already exist in Homebrew. In 50 | such cases, if you want to refer to the formula or cask in this repository 51 | (e.g., because it contains a more up to date version), you must use 52 | `lifepillar/homebrew-appleii/` as the argument for `brew install`. 53 | 54 | 55 | ## Contributions 56 | 57 | They are welcome! If you know of some program that is not included here, please 58 | let me know! Even better, open a pull request! 59 | 60 | 61 | ## More Software 62 | 63 | Some software relevant to the community interested in this repository is not 64 | found in this repository because it is already in Homebrew Core. That includes: 65 | 66 | - [cc65](https://cc65.github.io/cc65/): `brew install cc65` 67 | - [Clock Signal](https://github.com/TomHarte/CLK): `brew install clock-signal` 68 | - [exomizer](https://bitbucket.org/magli143/exomizer/wiki/Home): `brew install exomizer` 69 | - [Virtual \]\[](http://www.virtualii.com): `brew install virtual-ii` 70 | 71 | 72 | ## Credits 73 | 74 | The images in this repository have been generated with B. Buckels's `b2d` and 75 | `a2b` programs. Original files are all from 76 | [apple-history](http://apple-history.com), with the exception of the Apple I 77 | (original from 78 | [Wikipedia](https://en.wikipedia.org/wiki/File:Apple_I_Computer.jpg)) and the 79 | Apple ][e (courtesy of [W. 80 | Warby](https://www.flickr.com/photos/wwarby/16614254568/)). The picture of Jobs 81 | and Woz is in so many places that I don't know whether it is copyrighted or may 82 | be considered in the public domain. 83 | -------------------------------------------------------------------------------- /Formula/bmp2dhr.rb: -------------------------------------------------------------------------------- 1 | class Bmp2dhr < Formula 2 | desc "Convert modern graphics to Apple II graphics" 3 | homepage "https://www.appleoldies.ca/bmp2dhr/" 4 | url "https://www.appleoldies.ca/cc65/programs/dhgr/bmp2dhr.zip" 5 | version "20160824" 6 | sha256 "a55ea2f0bedf9229f566a3bba7c60cf1c970e6e0f51f5fb7cfc52166e740e4ee" 7 | 8 | # To use the batch files provided with A2B to do automatic conversions 9 | depends_on "imagemagick" 10 | 11 | conflicts_with "digarok-bmp2dhr", because: "both install a `b2d` executable" 12 | 13 | patch :DATA 14 | 15 | def install 16 | cd "a2fcbmp" do 17 | system ENV.cc, "-DMINGW", "-o", "a2b", "a2fcbmp.c" 18 | end 19 | cd "src" do 20 | system ENV.cc, "-DMINGW", "-o", "b2d", "b2d.c" 21 | end 22 | cd "magick" do 23 | system ENV.cc, "-DMINGW", "-o", "m2s", "m2s.c" 24 | end 25 | libexec.install "bmp" 26 | libexec.install "dither" 27 | libexec.install "msk" 28 | libexec.install "SHR/scripts" 29 | libexec.install "template" 30 | bin.install "a2fcbmp/a2b" 31 | bin.install_symlink bin/"a2b" => "a2fcbmp" 32 | bin.install "src/b2d" 33 | bin.install_symlink bin/"b2d" => "bmp2dhr" 34 | bin.install "magick/m2s" 35 | end 36 | 37 | def caveats 38 | <<~EOS 39 | A template directory can be copied from #{libexec}/template 40 | 41 | Post-processing scripts are available at #{libexec}/scripts 42 | EOS 43 | end 44 | 45 | test do 46 | system "false" 47 | end 48 | end 49 | 50 | __END__ 51 | diff --git a/a2fcbmp/a2fcbmp.c b/a2fcbmp/a2fcbmp.c 52 | index db8fb35..a8d82f1 100644 53 | --- a/a2fcbmp/a2fcbmp.c 54 | +++ b/a2fcbmp/a2fcbmp.c 55 | @@ -76,6 +76,7 @@ 56 | /* Should now run everywhere (Windows, Linux, OSX) */ 57 | /* ------------------------------------------------------------------------ */ 58 | 59 | +#include 60 | #include 61 | #include 62 | #include 63 | @@ -115,6 +116,8 @@ 64 | /* Declarations, Vars. etc. */ 65 | /* ------------------------------------------------------------------------ */ 66 | 67 | +int cmpstr(char *str, char *cmp); 68 | + 69 | /* options flags */ 70 | 71 | int longnames = 1, bmp = 0, bm2 = 0, bmp3 = 0, a2fc = 0, auxbin = 0, tohgr = 0, dhr = 0, frag = 0, 72 | diff --git a/magick/m2s.c b/magick/m2s.c 73 | index 9d03dcf..dbd354e 100644 74 | --- a/magick/m2s.c 75 | +++ b/magick/m2s.c 76 | @@ -62,6 +62,7 @@ M2S.EXE - WIN32 77 | Built under MinGW 5.1.4 (gcc) 78 | ----------------------------------------------------------------------- */ 79 | 80 | +#include 81 | #include 82 | #include 83 | #include 84 | diff --git a/src/b2d.c b/src/b2d.c 85 | index ae2980b..6ae3e9d 100644 86 | --- a/src/b2d.c 87 | +++ b/src/b2d.c 88 | @@ -277,6 +277,7 @@ documentation can be reviewed for additional information. 89 | /* ========================== includes ============================= */ 90 | /* ***************************************************************** */ 91 | 92 | +#include 93 | #include 94 | #include 95 | #include 96 | -------------------------------------------------------------------------------- /Formula/ii-pix.rb: -------------------------------------------------------------------------------- 1 | class IiPix < Formula 2 | desc "Convert images to Apple II Double Hi-Res format" 3 | homepage "https://github.com/KrisKennaway/ii-pix/" 4 | url "https://github.com/KrisKennaway/ii-pix.git", 5 | revision: "07a358d49be66a86d3e367c828d1bd5593f97005" 6 | version "20210315" 7 | head "https://github.com/KrisKennaway/ii-pix.git", 8 | branch: "main" 9 | 10 | depends_on "cython" 11 | depends_on "numpy" 12 | depends_on "python@3.9" 13 | 14 | resource "colour_science" do 15 | url "https://files.pythonhosted.org/packages/bd/03/01e82b56c297f304fd6026955099d6bd4932613416728e8b924b916f06b0/colour-science-0.3.16.tar.gz" 16 | sha256 "c39884ad5f0a9a498f285284e666eed203aa518d072cca0c20aca88a17bf237c" 17 | end 18 | 19 | resource "PIL" do 20 | url "https://files.pythonhosted.org/packages/60/f0/dd2eb7911f948bf529f58f0c7931f6f6466f711bd6f1d81a69dc4edd4e2a/Pillow-8.1.2.tar.gz" 21 | sha256 "b07c660e014852d98a00a91adfbe25033898a9d90a8f39beb2437d22a203fc44" 22 | end 23 | 24 | resource "PIL_Tools" do 25 | url "https://files.pythonhosted.org/packages/2a/db/95f8baec088a5118ac6c1ea1b7d584c022a98658afc434d449ab0549f1df/PIL-Tools-1.0.tar.gz" 26 | sha256 "6ae3039dcb6d764150b757c694d4db9976f73648cd777df1f29ceb3014cc2a19" 27 | end 28 | 29 | def install 30 | version = Language::Python.major_minor_version Formula["python@3.9"].opt_bin/"python3" 31 | ENV.append_path "PYTHONPATH", Formula["numpy"].opt_lib/"python#{version}/site-packages" 32 | ENV.append_path "PYTHONPATH", Formula["cython"].opt_libexec/"lib/python#{version}/site-packages" 33 | ENV.prepend_create_path "PYTHONPATH", lib/"python#{version}/site-packages" 34 | 35 | deps = resources.map(&:name).to_set 36 | deps.each do |r| 37 | resource(r).stage do 38 | system Formula["python@3.9"].opt_bin/"python3", *Language::Python.setup_install_args(libexec) 39 | end 40 | end 41 | 42 | system Formula["python@3.9"].opt_bin/"python3", "setup.py", "build_ext", "--inplace" 43 | 44 | libexec.install Dir["*py"] 45 | libexec.install Dir["*so"] 46 | 47 | (libexec/"ii-pix-convert").write <<~EOS 48 | #{Formula["python@3.9"].opt_bin/"python3"} #{libexec}/convert.py "$@" 49 | EOS 50 | 51 | (libexec/"ii-pix-precompute-distance").write <<~EOS 52 | #{Formula["python@3.9"].opt_bin/"python3"} #{libexec}/precompute_distance.py "$@" 53 | EOS 54 | 55 | (libexec/"ii-pix-convert").chmod 0755 56 | (libexec/"ii-pix-precompute-distance").chmod 0755 57 | (bin/"ii-pix-convert").write_env_script("#{libexec}/ii-pix-convert", PYTHONPATH: ENV["PYTHONPATH"]) 58 | (bin/"ii-pix-precompute-distance").write_env_script("#{libexec}/ii-pix-precompute-distance", 59 | PYTHONPATH: ENV["PYTHONPATH"]) 60 | end 61 | 62 | def caveats 63 | <<~EOS 64 | This formula installs two executables: 65 | 66 | ii-pix-convert 67 | ii-pix-precompute-distance 68 | 69 | You need to create a `data` directory with ii-pix-precompute-distance, 70 | then run ii-pix-convert from the directory containing the `data` directory. 71 | 72 | To get started, type `ii-pix-convert -h`. 73 | EOS 74 | end 75 | 76 | test do 77 | system "#{bin}/ii-pix-convert", "--version" 78 | end 79 | end 80 | --------------------------------------------------------------------------------