fix: reprofile linapple at 86bee1c

Upstream moved the mouse card firmware into MouseRom.h behind ENABLE_PERIPHERAL_MOUSE, renamed the generated ROM symbols from g_rom_* to rom_*, added a hard disk controller with its own firmware and an XDG fallback for the data path. Every reference is re-read at the new pin, and Master.dsk carries the hashes the upstream build test pins.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 00:29:17 +02:00
1 parent 7eb4a36711
commit 8edaca0925
1 file changed
+120 -96
+120 -96
View File
@@ -3,8 +3,8 @@ type: standalone
core_classification: community_fork
source: "https://github.com/linappleii/linapple"
upstream: "https://github.com/AppleWin/AppleWin"
profiled_date: "2026-10-04"
source_commit: "42e4321d60dc066470151f76c1cd3fe5e88a695c"
profiled_date: "2026-10-20"
source_commit: "86bee1c2b59bd4706185ceddddaf383b3416726f"
core_version: "3.0.0"
display_name: "Apple - Apple II (LinApple)"
cores:
@@ -16,76 +16,80 @@ mode: standalone
notes: |
SDL port of AppleWin for Linux. The SourceForge project was abandoned and
its forks were gathered under the linappleii organization
(README.md:166-173). Five frontends build from one core: sdl1, sdl2, sdl3,
(README.md:202-209). Five frontends build from one core: sdl1, sdl2, sdl3,
tui and headless (src/frontends/).
The ROMs the emulator runs are compiled into the binary.
scripts/generate_roms.sh turns res/roms/*.rom into EmbeddedRoms.h and
EmbeddedRoms.cpp, once at configure time and again at build time
(CMakeLists.txt:301-338), each image behind an ENABLE_ROM_* macro
(scripts/generate_roms.sh:97-118). Eighteen images go through the generator:
ten system ROMs, four character generator ROMs and four card ROMs. The
printer card, the Super Serial Card and the clock card carry their firmware
as arrays in their own source files
(src/apple2/peripherals/printer/Printer.cpp:30,
(CMakeLists.txt:293-329), each image behind an ENABLE_ROM_* macro
(scripts/generate_roms.sh:97-117). Seventeen images go through the
generator: ten system ROMs, four character generator ROMs and the three
Disk II ROMs. The mouse card, the printer card, the Super Serial Card, the
clock card and the hard disk controller carry their firmware as arrays in
their own source files (src/apple2/peripherals/mouse/MouseRom.h:19,
src/apple2/peripherals/printer/Printer.cpp:30,
src/apple2/peripherals/super_serial_card/SuperSerialRom.h:16,
src/apple2/peripherals/clock/ClockCard.cpp:20), and the Mockingboard
src/apple2/peripherals/clock/ClockCard.cpp:34,
src/apple2/peripherals/harddisk/Harddisk.cpp:250), and the Mockingboard
registers no ROM.
What a macro is set to decides whether a machine model runs at all.
CMakeLists.txt:57-131 leaves the Apple ][, ][+, J-Plus, //e and Enhanced //e
system ROMs ON, along with the Disk II and mouse firmware. The three clone options are OFF: ENABLE_ROM_CLONE_BASE64A,
ENABLE_ROM_CLONE_PRAVETS and ENABLE_ROM_CLONE_TK3000E
(CMakeLists.txt:95-97). Selecting one of those machine types on a default
build reaches mem_initialize with no rom_data, which prints the model name
and its cmake flag, destroys the context and returns -1
(src/apple2/Memory.cpp:1124-1134). The message offers two ways out, and the
second is a file: -R, --rom <file> loads a system ROM at runtime
(src/frontends/common/AppArgs.cpp:77,186).
CMakeLists.txt:57-124 leaves the Apple ][, ][+, J-Plus, //e and Enhanced //e
system ROMs ON, along with the Disk II firmware. The three clone options are
OFF: ENABLE_ROM_CLONE_BASE64A, ENABLE_ROM_CLONE_PRAVETS and
ENABLE_ROM_CLONE_TK3000E (CMakeLists.txt:95-97). Selecting one of those
machine types on a default build reaches mem_initialize with no rom_data,
which prints the model name and its cmake flag, destroys the context and
returns -1 (src/apple2/Memory.cpp:1168-1178). The message offers two ways
out, and the second is a file: -R, --rom <file> loads a system ROM at
runtime (src/frontends/common/AppArgs.cpp:77,188-189).
A custom ROM takes precedence over anything embedded. load_custom_rom opens
the path as given, then through Path::find_data_file, and refuses a file
below 12288 or above 65536 bytes, which stops the start
(src/frontends/common/AppController.cpp:127-171,251-253). mem_initialize
(src/frontends/common/AppController.cpp:142-185,265-267). mem_initialize
accepts the buffer at exactly 16384 or 12288 bytes, or larger, taking the
trailing 16384 for the //e-class types and the trailing 12288 otherwise
(src/apple2/Memory.cpp:1038-1059). No hash or name is checked: the file is
(src/apple2/Memory.cpp:1082-1103). No hash or name is checked: the file is
whatever the user points at.
Character generators are res/charset40*.png, converted to XPM by CMake
(CMakeLists.txt:270-299) and included at src/apple2/Video.cpp:39-43. One of
(CMakeLists.txt:262-291) and included at src/apple2/Video.cpp:35-39. One of
five is chosen from the machine type and the keyboard language
(src/apple2/Video.cpp:1228-1252). The status font and the splash screen are
(src/apple2/Video.cpp:1255-1279). The status font and the splash screen are
XPM as well (src/core/Asset.cpp:15-16,57,63). The four *_Video.rom images
are compiled in, and no source file reads their symbols.
are compiled in, and nothing under src/ reads their symbols.
Master.dsk is inserted into slot 6 drive 1 at startup unless the command
line names a disk or the configuration autoloads one
(src/frontends/common/AppController.cpp:194-215). asset_find_master_disk
(src/frontends/common/AppController.cpp:210-231). asset_find_master_disk
resolves it through Path::find_data_file (src/core/Asset.cpp:25-39), which
walks the user data and config directories, the executable directory and its
res/ neighbours, the share and etc prefixes beside it, the compiled-in
SOURCE_RES_DIR, /usr/local/share/linapple, /usr/share/linapple, every
XDG_CONFIG_DIRS entry and /etc/linapple (src/core/Util_Path.h:116-179). The
same search serves icon.bmp and a --rom path that does not open as given.
XDG_CONFIG_DIRS entry or /etc/xdg/linapple when that variable is unset, and
/etc/linapple (src/core/Util_Path.h:116-179). The same search serves
icon.bmp and a --rom path that does not open as given.
The debugger reads its symbol tables through system_state.program_dir,
declared at src/core/LinAppleCore.h:103 and read without ever being
declared at src/core/LinAppleCore.h:102 and read without ever being
assigned, so the names resolve against the working directory.
g_file_name_symbols lists nine tables (src/Debugger/Debugger_Symbols.cpp:37-48).
file_name_symbols lists nine tables (src/Debugger/Debugger_Symbols.cpp:37-49).
CmdSymbolsLoad reads a table's default file when it receives no argument
(src/Debugger/Debugger_Symbols.cpp:636-652). Its only caller is the LOAD
parameter of the SYM commands (src/Debugger/Debugger_Symbols.cpp:817-819),
and debug_initialize loads no table (src/Debugger/Debug.cpp:29-37).
(src/Debugger/Debugger_Symbols.cpp:644-660). Its only caller is the LOAD
parameter of the SYM commands (src/Debugger/Debugger_Symbols.cpp:823-825),
and debug_initialize loads no table (src/Debugger/Debug.cpp:29-39).
ParseSymbolTable opens the file with fopen and a missing one leaves the
debugger running without its symbols (src/Debugger/Debugger_Symbols.cpp:495).
debugger running without its symbols (src/Debugger/Debugger_Symbols.cpp:497).
Peripheral cards are linked into the executable by default. With
Peripheral cards are linked into the executable by default. Each card has
an ENABLE_PERIPHERAL_* option, ON (CMakeLists.txt:538). With
BUILD_SHARED_PERIPHERALS, OFF at CMakeLists.txt:43, each card that
add_peripheral does not force built-in builds as a shared object
(CMakeLists.txt:554-555,662-666), and peripheral_plugins_init opens every *.so found in the
plugin search paths in either build
(src/apple2/peripherals/Peripheral_Internal.cpp:192-219,
(CMakeLists.txt:548-550,653,663-669), and peripheral_plugins_init opens
every *.so found in the plugin search paths in either build
(src/apple2/peripherals/Peripheral_Internal.cpp:352-437,
src/core/Util_Path.h:102-114).
linapple.conf carries preferences only (src/core/Registry.cpp,
@@ -99,11 +103,16 @@ files:
min_size: 143105
max_size: 143364
validation: [size]
source_ref: "src/core/Asset.cpp:20,25-39,97-112; src/apple2/peripherals/disk/formats/SectorDiskImage.cpp:65-66,79-82"
size: 143360
md5: ee44560f34033efa3bb47b3e0aac1772
sha1: 7b03befac4fbcef8c649048fa3ff5d095fd48dd3
source_ref: "src/core/Asset.cpp:20,25-39,97-112; src/apple2/peripherals/disk/formats/SectorDiskImage.cpp:57-60,71-74; CMakeLists.txt:1324-1336"
note: >
asset_find_master_disk warns and returns false when no search path
holds the file, and the emulator starts with an empty drive. No hash or
content check is performed. LinApple and Batocera ship different images
holds the file, and the emulator starts with an empty drive. The sector
image driver also takes 143403 and 143488 bytes. No hash or content
check is performed at run time. The hashes are those of res/Master.dsk,
which a build test pins. LinApple and Batocera ship different images
under this name, both 143360 bytes.
- name: icon.bmp
@@ -122,7 +131,7 @@ files:
- name: APPLE2E.SYM
required: false
description: "Debugger symbol table for the main ROM"
source_ref: "src/Debugger/Debugger_Symbols.cpp:37-48,636-652"
source_ref: "src/Debugger/Debugger_Symbols.cpp:37-49,644-660"
note: >
Read into the Main table when SYMMAIN LOAD is entered without a file
name. Parsed as text lines of address and symbol name, with no size or
@@ -131,7 +140,7 @@ files:
- name: A2_BASIC.SYM
required: false
description: "Debugger symbol table for Applesoft BASIC"
source_ref: "src/Debugger/Debugger_Symbols.cpp:37-48,636-652"
source_ref: "src/Debugger/Debugger_Symbols.cpp:37-49,644-660"
note: >
Read into the Basic table when SYMBASIC LOAD is entered without a file
name. Parsed as text lines of address and symbol name, with no size or
@@ -151,7 +160,7 @@ files:
size: 49152
md5: 352fdbcae14c6a8c0398822c7a273309
sha1: f1c779af480b5bda2bdd03950c1201a5c5143bea
source_ref: "CMakeLists.txt:95,99-103; scripts/generate_roms.sh:107; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:99-100,1038-1059,1124-1134"
source_ref: "CMakeLists.txt:95,99-103; scripts/generate_roms.sh:107; src/frontends/common/AppController.cpp:163-174; src/apple2/Memory.cpp:104-105,1082-1103,1168-1178"
note: >
Larger than a system ROM: mem_initialize takes the trailing 12288 bytes
for this machine type.
@@ -165,7 +174,7 @@ files:
size: 12288
md5: c619b7edfcf021f3b8fd20d9386676ba
sha1: 8bd7ced83e209a15e9b19a05a5ef4b8e996dc1a5
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:109; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:101-102,1038-1059,1124-1134"
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:109; src/frontends/common/AppController.cpp:163-174; src/apple2/Memory.cpp:106-107,1082-1103,1168-1178"
- name: PRAVETS8M.ROM
required: false
@@ -176,7 +185,7 @@ files:
size: 12288
md5: 76c79535f7cf77973e2c711aa977a124
sha1: f1b4ff018acf95f3355f0d575b66a188d728b687
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:111; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:103-104,1038-1059,1124-1134"
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:111; src/frontends/common/AppController.cpp:163-174; src/apple2/Memory.cpp:108-109,1082-1103,1168-1178"
- name: PRAVETS8C.ROM
required: false
@@ -187,7 +196,7 @@ files:
size: 16384
md5: 1896d7b98dd940c89f7c8ea899b71006
sha1: c976fe56e57706c161f513a82ba3e0d8cda83904
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:110; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:105-106,1038-1059,1124-1134"
source_ref: "CMakeLists.txt:96,105-109; scripts/generate_roms.sh:110; src/frontends/common/AppController.cpp:163-174; src/apple2/Memory.cpp:110-111,1082-1103,1168-1178"
note: >
A //e-class type: mem_initialize takes the trailing 16384 bytes when the
file is larger.
@@ -201,7 +210,7 @@ files:
size: 16384
md5: 8d84b614b545d4eec8799d3f325332cb
sha1: f163e5753c18ff0e812a448e8da406f102600edf
source_ref: "CMakeLists.txt:97,111-115; scripts/generate_roms.sh:112; src/frontends/common/AppController.cpp:148-159; src/apple2/Memory.cpp:107-108,1038-1059,1124-1134"
source_ref: "CMakeLists.txt:97,111-115; scripts/generate_roms.sh:112; src/frontends/common/AppController.cpp:163-174; src/apple2/Memory.cpp:112-113,1082-1103,1168-1178"
note: >
A //e-class type: mem_initialize takes the trailing 16384 bytes when the
file is larger.
@@ -211,114 +220,114 @@ analysis:
mechanism: >
res/roms/*.rom compiled into EmbeddedRoms.cpp by scripts/generate_roms.sh
at configure and build time, each behind an ENABLE_ROM_* macro
source_ref: "CMakeLists.txt:57-131,301-338; scripts/generate_roms.sh:97-118"
source_ref: "CMakeLists.txt:57-124,293-329; scripts/generate_roms.sh:97-117"
extraction: "hashes computed from the res/roms images the generator reads"
system_roms:
- symbol: g_rom_apple2
- symbol: rom_apple2
machine: "Apple ]["
machine_type: A2TYPE_APPLE2
image: res/roms/Apple2.rom
cmake_option: ENABLE_ROM_APPLE2
default: on
source_ref: "src/apple2/Memory.cpp:1062-1066"
source_ref: "src/apple2/Memory.cpp:1106-1111"
size: 12288
md5: 3c406514b9806a7c57ee65fb0b0c39b4
sha1: 09288be705464b608ff190519ab008d3dfcd1b05
- symbol: g_rom_apple2_plus
- symbol: rom_apple2_plus
machine: "Apple ][+"
machine_type: A2TYPE_APPLE2PLUS
image: res/roms/Apple2_Plus.rom
cmake_option: ENABLE_ROM_APPLE2PLUS
default: on
source_ref: "src/apple2/Memory.cpp:1068-1072"
source_ref: "src/apple2/Memory.cpp:1112-1117"
size: 12288
md5: 572b3005a4fa49bc54917b069b82c1ab
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
- symbol: g_rom_apple2_jplus
- symbol: rom_apple2_jplus
machine: "Apple ][ J-Plus"
machine_type: A2TYPE_APPLE2JPLUS
image: res/roms/Apple2_JPlus.rom
cmake_option: ENABLE_ROM_APPLE2_JPLUS
default: on
source_ref: "src/apple2/Memory.cpp:1074-1078"
source_ref: "src/apple2/Memory.cpp:1118-1123"
size: 12288
md5: f3e8237eca3809bec2a42b984a1332a8
sha1: ad200b3263d08e7235d0871c8595963a07adc905
- symbol: g_rom_apple2e
- symbol: rom_apple2e
machine: "Apple //e Unenhanced"
machine_type: A2TYPE_APPLE2E
image: res/roms/Apple2e.rom
cmake_option: ENABLE_ROM_APPLE2E
default: on
source_ref: "src/apple2/Memory.cpp:1080-1084"
source_ref: "src/apple2/Memory.cpp:1124-1129"
size: 16384
md5: 346bc782c6a08a531c460e33bc03daf4
sha1: 61fa9254628e5bb7236fb474006116d67684d747
note: "First 4 KB loaded as internal Cx ROM, remaining 12 KB at $D000"
- symbol: g_rom_apple2e_enhanced
- symbol: rom_apple2e_enhanced
machine: "Apple //e Enhanced"
machine_type: A2TYPE_APPLE2EENHANCED
image: res/roms/Apple2e_Enhanced.rom
cmake_option: ENABLE_ROM_APPLE2ENHANCED
default: on
source_ref: "src/apple2/Memory.cpp:1086-1090"
source_ref: "src/apple2/Memory.cpp:1130-1135"
size: 16384
md5: 38063e08c778503fc03ecebb979769e9
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
note: "First 4 KB loaded as internal Cx ROM, remaining 12 KB at $D000"
- symbol: g_rom_clone_base64a
- symbol: rom_clone_base64a
machine: "Base64A"
machine_type: A2TYPE_CLONE_BASE64A
image: res/roms/Base64A.rom
cmake_option: ENABLE_ROM_CLONE_BASE64A
default: off
source_ref: "src/apple2/Memory.cpp:1092-1098"
source_ref: "src/apple2/Memory.cpp:1136-1142"
note: "Trailing 12288 bytes of the image are used"
- symbol: g_rom_clone_pravets82
- symbol: rom_clone_pravets82
machine: "Pravets 82"
machine_type: A2TYPE_CLONE_PRAVETS82
image: res/roms/PRAVETS82.ROM
cmake_option: ENABLE_ROM_CLONE_PRAVETS
default: off
source_ref: "src/apple2/Memory.cpp:1099-1103"
source_ref: "src/apple2/Memory.cpp:1144-1147"
- symbol: g_rom_clone_pravets8m
- symbol: rom_clone_pravets8m
machine: "Pravets 8M"
machine_type: A2TYPE_CLONE_PRAVETS8M
image: res/roms/PRAVETS8M.ROM
cmake_option: ENABLE_ROM_CLONE_PRAVETS
default: off
source_ref: "src/apple2/Memory.cpp:1104-1107"
source_ref: "src/apple2/Memory.cpp:1148-1151"
- symbol: g_rom_clone_pravets8c
- symbol: rom_clone_pravets8c
machine: "Pravets 8C"
machine_type: A2TYPE_CLONE_PRAVETS8C
image: res/roms/PRAVETS8C.ROM
cmake_option: ENABLE_ROM_CLONE_PRAVETS
default: off
source_ref: "src/apple2/Memory.cpp:1108-1112"
source_ref: "src/apple2/Memory.cpp:1152-1155"
- symbol: g_rom_clone_tk3000e
- symbol: rom_clone_tk3000e
machine: "TK3000 //e"
machine_type: A2TYPE_CLONE_TK3000E
image: res/roms/TK3000e.rom
cmake_option: ENABLE_ROM_CLONE_TK3000E
default: off
source_ref: "src/apple2/Memory.cpp:1113-1118"
source_ref: "src/apple2/Memory.cpp:1157-1162"
video_roms:
note: >
Compiled in under the macro of their machine. No source file reads
the symbols. The display uses the character_generators below.
Compiled in under the macro of their machine. Nothing under src/
reads the symbols. The display uses the character_generators below.
images:
- symbol: g_rom_apple2_video
- symbol: rom_apple2_video
image: res/roms/Apple2_Video.rom
cmake_option: ENABLE_ROM_APPLE2
default: on
@@ -326,7 +335,7 @@ analysis:
size: 2048
md5: 9ac0dc8c4d0002eb45b0b84be0bde5ec
sha1: f9d312f128c9557d9d6ac03bfad6c3ddf83e5659
- symbol: g_rom_apple2_jplus_video
- symbol: rom_apple2_jplus_video
image: res/roms/Apple2_JPlus_Video.rom
cmake_option: ENABLE_ROM_APPLE2_JPLUS
default: on
@@ -334,7 +343,7 @@ analysis:
size: 2048
md5: 271e2c9bf928b95e7baeff391db45495
sha1: 0a382be58db5215c4a3de53b19a72fab660d5da2
- symbol: g_rom_apple2e_enhanced_video
- symbol: rom_apple2e_enhanced_video
image: res/roms/Apple2e_Enhanced_Video.rom
cmake_option: ENABLE_ROM_APPLE2ENHANCED
default: on
@@ -342,7 +351,7 @@ analysis:
size: 4096
md5: 9123fff3442c0e688cc6816be88dd4ab
sha1: b2b5d87f52693817fc747df087a4aa1ddcdb1f10
- symbol: g_rom_clone_base64a_german_video
- symbol: rom_clone_base64a_german_video
image: res/roms/Base64A_German_Video.rom
cmake_option: ENABLE_ROM_CLONE_BASE64A
default: off
@@ -354,22 +363,22 @@ analysis:
peripheral_firmware:
- device: "Disk II controller, 16 sector boot ROM"
slot: 6
symbol: g_rom_disk2
symbol: rom_disk2
image: res/roms/DISK2.rom
cmake_option: ENABLE_ROM_DISK2
default: on
source_ref: "CMakeLists.txt:118,120-124; scripts/generate_roms.sh:115; src/apple2/peripherals/disk/Disk.cpp:1125-1127"
source_ref: "CMakeLists.txt:118,120-124; scripts/generate_roms.sh:115; src/apple2/peripherals/disk/Disk.cpp:1129-1131"
size: 256
md5: 2020aa1413ff77fe29353f3ee72dc295
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
- device: "Disk II controller, P6 sequencer PROM"
slot: 6
symbol: g_rom_disk2_p6
symbol: rom_disk2_p6
image: res/roms/DISK2-P6.rom
cmake_option: ENABLE_ROM_DISK2
default: on
source_ref: "scripts/generate_roms.sh:117; src/apple2/peripherals/disk/Disk.cpp:618-624; CMakeLists.txt:957-970"
source_ref: "scripts/generate_roms.sh:117; src/apple2/peripherals/disk/Disk.cpp:621-627; CMakeLists.txt:1040-1055"
size: 256
md5: 5f1be0c1cdff26f5956eef9643911886
sha1: bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4
@@ -379,7 +388,7 @@ analysis:
sequencer returns a constant and the data register never moves.
- device: "Disk II controller, 13 sector boot ROM"
symbol: g_rom_disk2_13sector
symbol: rom_disk2_13sector
image: res/roms/DISK2-13sector.rom
cmake_option: ENABLE_ROM_DISK2
default: on
@@ -387,18 +396,18 @@ analysis:
size: 256
md5: 4f80448507cf43ab40c17ac08d89e278
sha1: afd060e6f35faf3bb0146fa889fc787adf56330a
note: "Compiled in. No source file reads the symbol"
note: "Compiled in. Nothing under src/ reads the symbol"
- device: "Super Serial Card"
slot: 2
symbol: super_serial_rom
image: res/roms/SSC.rom
source_ref: "src/apple2/peripherals/super_serial_card/SuperSerialRom.h:8-16; src/apple2/peripherals/super_serial_card/SuperSerial.cpp:356-358; CMakeLists.txt:884-887"
source_ref: "src/apple2/peripherals/super_serial_card/SuperSerialRom.h:8-16; src/apple2/peripherals/super_serial_card/SuperSerial.cpp:356-358; CMakeLists.txt:939-943"
size: 2048
md5: 67c0d61ab0911183faf05270f881a97e
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
note: >
Not generated and behind no cmake option: the card carries the 2048
Not generated and behind no ROM option: the card carries the 2048
bytes as an array in SuperSerialRom.h, the last page mapped at $Cn00
and the whole image at $C800. The generator does not read
res/roms/SSC.rom. A build test pins its SHA-1 as the reference of
@@ -406,40 +415,55 @@ analysis:
- device: "Mouse interface card"
slot: 4
symbol: g_rom_mouse_interface
symbol: mouse_rom
image: res/roms/MouseInterface.rom
cmake_option: ENABLE_ROM_MOUSE
cmake_option: ENABLE_PERIPHERAL_MOUSE
default: on
source_ref: "CMakeLists.txt:126,128-132; scripts/generate_roms.sh:118; src/apple2/peripherals/mouse/Mouse.cpp:537-541"
source_ref: "src/apple2/peripherals/mouse/MouseRom.h:8-19; src/apple2/peripherals/mouse/Mouse.cpp:261-267; CMakeLists.txt:538,664,986-990"
size: 2048
md5: 22563ab338024dac7b03510371d49c57
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
note: >
Not generated and behind no ROM option: the card carries the 2048
bytes as an array in MouseRom.h and maps one 256-byte bank at $Cn00,
chosen by PIA port B bits 1-3. ENABLE_PERIPHERAL_MOUSE builds the
card and its firmware together. The generator does not read
res/roms/MouseInterface.rom. A build test pins its SHA-1 as the
reference of that transcription.
- device: "Parallel printer card"
slot: 1
symbol: printer_rom
image: res/roms/Parallel.rom
source_ref: "src/apple2/peripherals/printer/Printer.cpp:30-53,215; CMakeLists.txt:872-874"
source_ref: "src/apple2/peripherals/printer/Printer.cpp:30-55,217; CMakeLists.txt:920-926"
size: 256
md5: 5902996f16dc78fc013f6e1db14805b3
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
note: >
Not generated and behind no cmake option: the card carries the 256
Not generated and behind no ROM option: the card carries the 256
bytes as an array in Printer.cpp. The generator does not read
res/roms/Parallel.rom. A build test pins its SHA-1 as the reference
of that transcription.
- device: "Clock card"
symbol: clock_rom
source_ref: "src/apple2/peripherals/clock/ClockCard.cpp:19-29,158"
source_ref: "src/apple2/peripherals/clock/ClockCard.cpp:19-20,34-45,174-176"
note: >
A 256-byte page written in ClockCard.cpp that answers the ProDOS
ThunderClock identification and read entry points. No image under
res/roms backs it.
ThunderClock identification and read entry points. Each card patches
its slot into the operand at $0D. No image under res/roms backs it.
- device: "ProDOS block device controller"
symbol: harddisk_rom
source_ref: "src/apple2/peripherals/harddisk/Harddisk.cpp:73-76,250-275,739-742"
note: >
A 256-byte page written in Harddisk.cpp from the ProDOS 8 Technical
Reference Manual, serving two volumes. Each card patches its slot
page into the operand at $09. No image under res/roms backs it.
character_generators:
mechanism: "PNG converted to XPM by CMake, included at src/apple2/Video.cpp:39-43"
selection: "machine type, then keyboard language (src/apple2/Video.cpp:1228-1252)"
mechanism: "PNG converted to XPM by CMake, included at src/apple2/Video.cpp:35-39"
selection: "machine type, then keyboard language (src/apple2/Video.cpp:1255-1279)"
accepted_geometry: "128x128, or 128x256 for the Euro ROMs carrying a second language"
images:
- filename: charset40.png
@@ -469,7 +493,7 @@ analysis:
sha1: f86bd5238604247e04d616850f244b489daef18d
symbol_tables:
source_ref: "src/Debugger/Debugger_Symbols.cpp:37-48"
source_ref: "src/Debugger/Debugger_Symbols.cpp:37-49"
lookup: "system_state.program_dir + filename, and system_state.program_dir is never assigned"
loaded_on_command:
- APPLE2E.SYM
@@ -498,9 +522,9 @@ analysis:
- "save states"
- "FTP directory cache"
note: >
Produced by the emulator, none is user-supplied. CmdConfigSave builds
the LinAppleDebugger.cfg path and passes it to no open call
(src/Debugger/Debugger_Cmd_Config.cpp:218-221).
Produced by the emulator, none is user-supplied. file_name_config
names LinAppleDebugger.cfg and no open call takes it
(src/Debugger/Debugger_Cmd_Config.cpp:40).
unused_resources:
- filename: font.bmp