diff --git a/.gitignore b/.gitignore index 8784d0e..f6f3cfa 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,10 @@ Makefile *.o +# cmake + +/build/ + # netbeans /nbproject/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 44b04ff..345e66d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,4 +4,8 @@ set(CMAKE_VERBOSE_MAKEFILE ON) project(epple2) +include(GNUInstallDirs) + add_subdirectory(src) +add_subdirectory(conf) +#add_subdirectory(rom) diff --git a/conf/CMakeLists.txt b/conf/CMakeLists.txt new file mode 100644 index 0000000..6606a6f --- /dev/null +++ b/conf/CMakeLists.txt @@ -0,0 +1,18 @@ +set(sources +epple2.a2bare.conf.in +epple2.a2dos31.conf.in +epple2.a2dos33.conf.in +epple2.a2loaded.conf.in +epple2.a2pbare.conf.in +epple2.a2pdos33.conf.in +epple2.a2ploaded.conf.in +epple2.conf.in +epple2.rev0bare.conf.in +) + +set(LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + +foreach(source ${sources}) + cmake_path(GET source STEM LAST_ONLY target) + configure_file(${source} ${target}) +endforeach() diff --git a/conf/epple2.a2bare.conf.in b/conf/epple2.a2bare.conf.in index b21bb56..32b9e47 100644 --- a/conf/epple2.a2bare.conf.in +++ b/conf/epple2.a2bare.conf.in @@ -6,9 +6,9 @@ -import motherboard rom 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -import motherboard rom 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +import motherboard rom 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +import motherboard rom 2425 ${LIBDIR}/apple2/system/a2/other.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2/monitor.a65 diff --git a/conf/epple2.a2dos31.conf.in b/conf/epple2.a2dos31.conf.in index 29147f6..a61c6d9 100644 --- a/conf/epple2.a2dos31.conf.in +++ b/conf/epple2.a2dos31.conf.in @@ -20,15 +20,15 @@ motherboard strap C 16K 0000 # Integer BASIC and old Monitor ROMs -import motherboard rom 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -import motherboard rom 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +import motherboard rom 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +import motherboard rom 2425 ${LIBDIR}/apple2/system/a2/other.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2/monitor.a65 # Disk ][ card with 13-sector ROMs slot 6 disk13 -import slot 6 rom 0 $(PREFIX)lib/apple2/dos/13sector/disk2.a65 +import slot 6 rom 0 ${LIBDIR}/apple2/dos/13sector/disk2.a65 # Insert DOS 3.1 System Master disk into drive 1 -#load slot 6 drive 1 $(PREFIX)lib/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz +#load slot 6 drive 1 ${LIBDIR}/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz diff --git a/conf/epple2.a2dos33.conf.in b/conf/epple2.a2dos33.conf.in index 731585d..f2ea890 100644 --- a/conf/epple2.a2dos33.conf.in +++ b/conf/epple2.a2dos33.conf.in @@ -21,9 +21,9 @@ motherboard strap C 16K 0000 # Integer BASIC and old Monitor ROMs -import motherboard rom 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -import motherboard rom 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +import motherboard rom 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +import motherboard rom 2425 ${LIBDIR}/apple2/system/a2/other.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2/monitor.a65 @@ -34,7 +34,7 @@ slot 0 language # Disk ][ controller card in slot 6, with 16-sector ROMs slot 6 disk -import slot 6 rom 0 $(PREFIX)lib/apple2/dos/16sector/disk2.a65 +import slot 6 rom 0 ${LIBDIR}/apple2/dos/16sector/disk2.a65 # Insert DOS 3.3 System Master disk (original version) in drive 1 -#load slot 6 drive 1 $(PREFIX)lib/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz +#load slot 6 drive 1 ${LIBDIR}/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz diff --git a/conf/epple2.a2loaded.conf.in b/conf/epple2.a2loaded.conf.in index b724c8a..ab83c85 100644 --- a/conf/epple2.a2loaded.conf.in +++ b/conf/epple2.a2loaded.conf.in @@ -20,9 +20,9 @@ motherboard strap C 16K 0000 # Integer BASIC and old Monitor ROMs -import motherboard rom 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -import motherboard rom 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +import motherboard rom 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +import motherboard rom 2425 ${LIBDIR}/apple2/system/a2/other.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2/monitor.a65 @@ -35,20 +35,20 @@ slot 0 language # Standard-output "card" in slot 1, so typing # PR#1 will start sending characters to standard output of the emulator slot 1 stdout -import slot 1 rom 0 $(PREFIX)lib/epple2/cards/stdout.a65 +import slot 1 rom 0 ${LIBDIR}/epple2/cards/stdout.a65 # Standard-input "card" in slot 2, so typing # IN#2 will start reading characters from standard input of the emulator slot 2 stdin -import slot 2 rom 0 $(PREFIX)lib/epple2/cards/stdin.a65 +import slot 2 rom 0 ${LIBDIR}/epple2/cards/stdin.a65 # Clock card in slot 4 slot 4 clock -import slot 4 rom 0 $(PREFIX)lib/epple2/cards/clock.a65 +import slot 4 rom 0 ${LIBDIR}/epple2/cards/clock.a65 @@ -56,24 +56,24 @@ import slot 4 rom 0 $(PREFIX)lib/epple2/cards/clock.a65 # This will read (DOS 3.1, 3.2, and 3.2.1) disks, which # have 13 sectors per track. slot 5 disk13 -import slot 5 rom 0 $(PREFIX)lib/apple2/dos/13sector/disk2.a65 +import slot 5 rom 0 ${LIBDIR}/apple2/dos/13sector/disk2.a65 # Insert the DOS 3.1 System Master disk into drive 1 of slot 5 -#load slot 5 drive 1 $(PREFIX)lib/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz +#load slot 5 drive 1 ${LIBDIR}/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz # Disk ][ controller card in slot 6, with 16-sector ROMs. # This will read (DOS 3.3) disks, which have 16 sectors per track. slot 6 disk -import slot 6 rom 0 $(PREFIX)lib/apple2/dos/16sector/disk2.a65 +import slot 6 rom 0 ${LIBDIR}/apple2/dos/16sector/disk2.a65 # Insert the DOS 3.3 System Master disk (original version) into slot 6 -#load slot 6 drive 1 $(PREFIX)lib/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz +#load slot 6 drive 1 ${LIBDIR}/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz # Firmware card with Applesoft and Autostart Monitor. # DOS will not use this firmware card, because it is not in slot 0. slot 7 firmware -import slot 7 rombank 0000 $(PREFIX)lib/apple2/system/a2p/applesoft.a65 -import slot 7 rombank 2800 $(PREFIX)lib/apple2/system/a2p/monitor.a65 +import slot 7 rombank 0000 ${LIBDIR}/apple2/system/a2p/applesoft.a65 +import slot 7 rombank 2800 ${LIBDIR}/apple2/system/a2p/monitor.a65 diff --git a/conf/epple2.a2pbare.conf.in b/conf/epple2.a2pbare.conf.in index 47327aa..83a637d 100644 --- a/conf/epple2.a2pbare.conf.in +++ b/conf/epple2.a2pbare.conf.in @@ -6,8 +6,8 @@ -import motherboard rom 0000 $(PREFIX)lib/apple2/system/a2p/applesoft.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2p/monitor.a65 +import motherboard rom 0000 ${LIBDIR}/apple2/system/a2p/applesoft.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2p/monitor.a65 diff --git a/conf/epple2.a2pdos33.conf.in b/conf/epple2.a2pdos33.conf.in index f11bf59..0c7c149 100644 --- a/conf/epple2.a2pdos33.conf.in +++ b/conf/epple2.a2pdos33.conf.in @@ -20,8 +20,8 @@ motherboard strap C 16K 0000 # Applesoft BASIC and Autostart Monitor ROMs -import motherboard rom 0000 $(PREFIX)lib/apple2/system/a2p/applesoft.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2p/monitor.a65 +import motherboard rom 0000 ${LIBDIR}/apple2/system/a2p/applesoft.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2p/monitor.a65 @@ -32,7 +32,7 @@ slot 0 language # Disk ][ controller card in slot 6, with 16-sector ROMs slot 6 disk -import slot 6 rom 0 $(PREFIX)lib/apple2/dos/16sector/disk2.a65 +import slot 6 rom 0 ${LIBDIR}/apple2/dos/16sector/disk2.a65 # Insert DOS 3.3 System Master disk (original version) in drive 1 -#load slot 6 drive 1 $(PREFIX)lib/apple2/dos/16sector/disks/dos330/clean330sysmas.dsk.woz +#load slot 6 drive 1 ${LIBDIR}/apple2/dos/16sector/disks/dos330/clean330sysmas.dsk.woz diff --git a/conf/epple2.a2ploaded.conf.in b/conf/epple2.a2ploaded.conf.in index 66b6d88..f7bc1e9 100644 --- a/conf/epple2.a2ploaded.conf.in +++ b/conf/epple2.a2ploaded.conf.in @@ -20,8 +20,8 @@ motherboard strap C 16K 0000 # Applesoft BASIC and Autostart Monitor ROMs -import motherboard rom 0000 $(PREFIX)lib/apple2/system/a2p/applesoft.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2p/monitor.a65 +import motherboard rom 0000 ${LIBDIR}/apple2/system/a2p/applesoft.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2p/monitor.a65 @@ -34,20 +34,20 @@ slot 0 language # Standard-output "card" in slot 1, so typing # PR#1 will start sending characters to standard output of the emulator slot 1 stdout -import slot 1 rom 0 $(PREFIX)lib/epple2/cards/stdout.a65 +import slot 1 rom 0 ${LIBDIR}/epple2/cards/stdout.a65 # Standard-input "card" in slot 2, so typing # IN#2 will start reading characters from standard input of the emulator slot 2 stdin -import slot 2 rom 0 $(PREFIX)lib/epple2/cards/stdin.a65 +import slot 2 rom 0 ${LIBDIR}/epple2/cards/stdin.a65 # Clock card in slot 4 slot 4 clock -import slot 4 rom 0 $(PREFIX)lib/epple2/cards/clock.a65 +import slot 4 rom 0 ${LIBDIR}/epple2/cards/clock.a65 @@ -55,24 +55,24 @@ import slot 4 rom 0 $(PREFIX)lib/epple2/cards/clock.a65 # This will read (DOS 3.1, 3.2, and 3.2.1) disks, which # have 13 sectors per track. slot 5 disk13 -import slot 5 rom 0 $(PREFIX)lib/apple2/dos/13sector/disk2.a65 +import slot 5 rom 0 ${LIBDIR}/apple2/dos/13sector/disk2.a65 # Insert the DOS 3.1 System Master disk into drive 1 of slot 5 -#load slot 5 drive 1 $(PREFIX)lib/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz +#load slot 5 drive 1 ${LIBDIR}/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz # Disk ][ controller card in slot 6, with 16-sector ROMs. # This will read (DOS 3.3) disks, which have 16 sectors per track. slot 6 disk -import slot 6 rom 0 $(PREFIX)lib/apple2/dos/16sector/disk2.a65 +import slot 6 rom 0 ${LIBDIR}/apple2/dos/16sector/disk2.a65 # Insert the DOS 3.3 System Master disk (original version) into slot 6 -#load slot 6 drive 1 $(PREFIX)lib/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz +#load slot 6 drive 1 ${LIBDIR}/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz # Firmware card with Integer BASIC and the old Monitor. # DOS will not use this firmware card, because it is not in slot 0. slot 7 firmware -import slot 7 rombank 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -import slot 7 rombank 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -import slot 7 rombank 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +import slot 7 rombank 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +import slot 7 rombank 2425 ${LIBDIR}/apple2/system/a2/other.a65 +import slot 7 rombank 2800 ${LIBDIR}/apple2/system/a2/monitor.a65 diff --git a/conf/epple2.conf.in b/conf/epple2.conf.in index 1e51024..4a4ef73 100644 --- a/conf/epple2.conf.in +++ b/conf/epple2.conf.in @@ -23,41 +23,41 @@ motherboard strap C 16K 0000 # emulator to do something useful when there are no real Apple ROM # images provided. # -import motherboard rom 2C00 $(PREFIX)lib/epple2/system/epple2sys.a65 +import motherboard rom 2C00 ${LIBDIR}/epple2/system/epple2sys.a65 # These are how to load the real (proprietary) Apple ROMs. # There ROMs are not distributed with the Epple 2 emulator. # These two lines are for an Apple ][ plus: -#import motherboard rom 0000 $(PREFIX)lib/apple2/system/a2p/applesoft.a65 -#import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2p/monitor.a65 +#import motherboard rom 0000 ${LIBDIR}/apple2/system/a2p/applesoft.a65 +#import motherboard rom 2800 ${LIBDIR}/apple2/system/a2p/monitor.a65 # or instead, use these three lines are for an Apple ][: -#import motherboard rom 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -#import motherboard rom 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -#import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +#import motherboard rom 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +#import motherboard rom 2425 ${LIBDIR}/apple2/system/a2/other.a65 +#import motherboard rom 2800 ${LIBDIR}/apple2/system/a2/monitor.a65 slot 0 language slot 1 stdout -import slot 1 rom 0 $(PREFIX)lib/epple2/cards/stdout.a65 +import slot 1 rom 0 ${LIBDIR}/epple2/cards/stdout.a65 slot 2 stdin -import slot 2 rom 0 $(PREFIX)lib/epple2/cards/stdin.a65 +import slot 2 rom 0 ${LIBDIR}/epple2/cards/stdin.a65 slot 4 clock -import slot 4 rom 0 $(PREFIX)lib/epple2/cards/clock.a65 +import slot 4 rom 0 ${LIBDIR}/epple2/cards/clock.a65 #slot 5 disk13 -#import slot 5 rom 0 $(PREFIX)lib/apple2/dos/13sector/disk2.a65 -#load slot 5 drive 1 $(PREFIX)lib/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz +#import slot 5 rom 0 ${LIBDIR}/apple2/dos/13sector/disk2.a65 +#load slot 5 drive 1 ${LIBDIR}/apple2/dos/13sector/dos310/clean31sysmas_stock_rawdos.dsk.woz #slot 6 disk -#import slot 6 rom 0 $(PREFIX)lib/apple2/dos/16sector/disk2.a65 -#load slot 6 drive 1 $(PREFIX)lib/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz +#import slot 6 rom 0 ${LIBDIR}/apple2/dos/16sector/disk2.a65 +#load slot 6 drive 1 ${LIBDIR}/apple2/dos/16sector/dos330/clean330sysmas.dsk.woz #slot 7 firmware -#import slot 7 rombank 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -#import slot 7 rombank 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -#import slot 7 rombank 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +#import slot 7 rombank 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +#import slot 7 rombank 2425 ${LIBDIR}/apple2/system/a2/other.a65 +#import slot 7 rombank 2800 ${LIBDIR}/apple2/system/a2/monitor.a65 #revision 0 revision 1 diff --git a/conf/epple2.rev0bare.conf.in b/conf/epple2.rev0bare.conf.in index a598d66..3bb13b5 100644 --- a/conf/epple2.rev0bare.conf.in +++ b/conf/epple2.rev0bare.conf.in @@ -16,9 +16,9 @@ revision 0 # Load Integer BASIC and old Monitor ROMs -import motherboard rom 1000 $(PREFIX)lib/apple2/system/a2/intbasic.a65 -import motherboard rom 2425 $(PREFIX)lib/apple2/system/a2/other.a65 -import motherboard rom 2800 $(PREFIX)lib/apple2/system/a2/monitor.a65 +import motherboard rom 1000 ${LIBDIR}/apple2/system/a2/intbasic.a65 +import motherboard rom 2425 ${LIBDIR}/apple2/system/a2/other.a65 +import motherboard rom 2800 ${LIBDIR}/apple2/system/a2/monitor.a65