From 869c9a319f1fc43ac8a6d47cb573e62fca566f0e Mon Sep 17 00:00:00 2001 From: Simon Owen Date: Fri, 5 Sep 2008 20:26:40 +0000 Subject: [PATCH] apple1emu v1.2 --- ReadMe.txt | 39 ++++++++++++--------------------------- apple1emu-master.dsk | Bin 819200 -> 819200 bytes 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/ReadMe.txt b/ReadMe.txt index 77b008a..0a7a595 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,33 +1,18 @@ -Apple 1 Emulator for SAM Coupe (v1.1) +Apple 1 Emulator for SAM Coupe (v1.2) ------------------------------------- -Emulator Keys: - - Shift-Esc = Soft Reset - Symbol-1 = 50Hz terminal - Symbol-2 = 100Hz terminal - -Symbol is mapped to Left-Ctrl in SimCoupe, so you'll need to use Ctrl-1 and Ctrl-2. - -The emulator supports a type-in feature, allowing text listings to be entered -as though they were typed. This feature is currently available to SimCoupe -users only, and used as follows: - - - Press F4 for data import - - Change Import Type to Main Memory - - Select Page 6 and Offset 0 - - Click OK and select the file to import - -You will need to ensure that the file is typed in the correct mode. Hex code -listings are in the startup monitor mode. For BASIC listings type E000R in -the monitor to run the BASIC ROM. For 6502 ASM listings type F000R to launch -the Krusader assembler. - -For further details on using the Apple 1 monitor, download the user manual: - http://simonowen.com/sam/apple1emu/a1man.pdf (2.9MB) +See website for usage: http://simonowen.com/sam/apple1emu/ --- +Version 1.2 (5/9/2008) +- Fixed BRK flags (clear D, set I, N/Z set from wrong EXX set) +- Fixed Esc repeat, broken in previous version +- Added Applesoft BASIC [Lite] and Lee Davidson's Enhanced BASIC +- Updated Ken Wessen's Krusader assembler to v1.3 +- First byte of emulator at &c000 appears to be ROM (for Applesoft BASIC ROM) +- Terminal output now supports lower-case characters (for Enhanced BASIC) + Version 1.1 (27/8/2008) - Improved 65C02 core for ~20% speed boost - Fixed broken TRB, which was masking the wrong value @@ -38,5 +23,5 @@ Version 1.0 (19/3/2007) --- -Simon Owen -http://simonowen.com/sam/apple1emu/ +Simon Owen +simon@simonowen.com diff --git a/apple1emu-master.dsk b/apple1emu-master.dsk index 0cc5f3dc3084cdbdabd9face9c25f22070d01132..277f1079a3e78eb6f96ca8766ba0f033c4588c84 100644 GIT binary patch delta 15152 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 kOJeaB$$6Nv*6_cvc!Th2vwB~}5(#_@