From 199c67e83427bee27f7a511db932603750e278b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Izaguirre?= Date: Mon, 7 Sep 2026 14:43:29 +0200 Subject: [PATCH] Preconfigured model with Forth in ROM --- configs/forth.cfg | 8 ++++++++ doc/command_line.md | 2 ++ doc/frontend_libretro.md | 2 +- doc/usage.txt | 1 + resources/Apple2_Forth.rom | Bin 0 -> 12288 bytes 5 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 configs/forth.cfg create mode 100644 resources/Apple2_Forth.rom diff --git a/configs/forth.cfg b/configs/forth.cfg new file mode 100644 index 00000000..f902302d --- /dev/null +++ b/configs/forth.cfg @@ -0,0 +1,8 @@ +# A machine with Forth in ROM. No disks. +# See the documentation in: https://archive.org/details/forth79-A2/FORTH-79_A2Version_ReferenceManual/mode/2up +name: Apple ][+ with FORTH in ROM +parent: _base +board: 2plus +rom: /Apple2_Forth.rom +charrom: /Apple2rev7CharGen.rom +forceCaps: true \ No newline at end of file diff --git a/doc/command_line.md b/doc/command_line.md index dc26320b..74f442f6 100644 --- a/doc/command_line.md +++ b/doc/command_line.md @@ -46,6 +46,7 @@ izapple2 -model=2enh - `cpm65` - Apple //e with CPM-65 - `desktop` - Apple II DeskTop - `dos32` - Apple ][ with 13 sectors disk adapter and DOS 3.2x +- `forth` - Apple ][+ with FORTH in ROM - `pascal` - Apple //e with Apple Pascal 1.3 - `prodos` - Apple //e ProDOS - `swyft` - Swyft @@ -313,6 +314,7 @@ The available pre-configured models are: cpm65: Apple //e with CPM-65 desktop: Apple II DeskTop dos32: Apple ][ with 13 sectors disk adapter and DOS 3.2x + forth: Apple ][+ with FORTH in ROM gaming: Apple //e for gaming pascal: Apple //e with Apple Pascal 1.3 prodos: Apple //e Prodos diff --git a/doc/frontend_libretro.md b/doc/frontend_libretro.md index 5bd33cf0..def34b0c 100644 --- a/doc/frontend_libretro.md +++ b/doc/frontend_libretro.md @@ -204,7 +204,7 @@ In *Quick Menu > Core Options*: | Option | Values | Meaning | | --- | --- | --- | -| Machine model | `gaming` (default), `2`, `2e`, `2enh`, `2plus`, `base64a`, `basis108`, `cpm`, `cpm3`, `cpm65`, `desktop`, `dos32`, `pascal`, `prodos`, `swyft` | The machine to emulate, the same models as the `-model` command line flag | +| Machine model | `gaming` (default), `2`, `2e`, `2enh`, `2plus`, `base64a`, `basis108`, `cpm`, `cpm3`, `cpm65`, `desktop`, `dos32`, `forth`, `pascal`, `prodos`, `swyft` | The machine to emulate, the same models as the `-model` command line flag | | Monitor | `color` (default), `green` | An NTSC colour television or a green phosphor monitor | Changing the model takes effect on the next **Reset**, which cold boots the diff --git a/doc/usage.txt b/doc/usage.txt index 8795f75d..d3dede89 100644 --- a/doc/usage.txt +++ b/doc/usage.txt @@ -62,6 +62,7 @@ The available pre-configured models are: cpm65: Apple //e with CPM-65 desktop: Apple II DeskTop dos32: Apple ][ with 13 sectors disk adapter and DOS 3.2x + forth: Apple ][+ with FORTH in ROM gaming: Apple //e for gaming pascal: Apple //e with Apple Pascal 1.3 prodos: Apple //e Prodos diff --git a/resources/Apple2_Forth.rom b/resources/Apple2_Forth.rom new file mode 100644 index 0000000000000000000000000000000000000000..24bfe7ffd9be0291c45cf19eb446fc0f10f5caa7 GIT binary patch literal 12288 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 E03e^Z2><{9 literal 0 HcmV?d00001