diff --git a/.gitignore b/.gitignore index 13590d9..f0fe0d8 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ obj/ [Rr]elease*/ _ReSharper*/ [Tt]est[Rr]esult* +.vs/ *.opendb **/Debug diff --git a/Binary/AppleIISd.bin b/Binary/AppleIISd.bin index 024408d..8a35444 100644 Binary files a/Binary/AppleIISd.bin and b/Binary/AppleIISd.bin differ diff --git a/Binary/Flasher.bin b/Binary/Flasher.bin index 349b548..4bcbd91 100644 Binary files a/Binary/Flasher.bin and b/Binary/Flasher.bin differ diff --git a/Binary/Flasher.dsk b/Binary/Flasher.dsk index b1ffbb5..1f77bbc 100644 Binary files a/Binary/Flasher.dsk and b/Binary/Flasher.dsk differ diff --git a/Binary/ProFile.zip b/Binary/ProFile.zip index 2e9d445..f7c2023 100644 Binary files a/Binary/ProFile.zip and b/Binary/ProFile.zip differ diff --git a/Firmware/make_image.bat b/Firmware/make_image.bat new file mode 100644 index 0000000..f2711a0 --- /dev/null +++ b/Firmware/make_image.bat @@ -0,0 +1,5 @@ +make clean +make OPTIONS=mapfile,listing +java -jar ..\Binary\AppleCommander-ac-1.5.0.jar -d ..\Binary\Flasher.dsk appleiisd.bin +java -jar ..\Binary\AppleCommander-ac-1.5.0.jar -p ..\Binary\Flasher.dsk appleiisd.bin $00 < AppleIISd.bin +copy AppleIISd.bin ..\Binary diff --git a/Firmware/src/AppleIISd.inc b/Firmware/src/AppleIISd.inc index 2edf35a..312681f 100644 --- a/Firmware/src/AppleIISd.inc +++ b/Firmware/src/AppleIISd.inc @@ -4,7 +4,7 @@ ; Version 1.2.2 ; Defines ; -; (c) Florian Reitz, 2017 - 2020 +; (c) Florian Reitz, 2017 - 2021 ; ; X register usually contains SLOT16 ; Y register is used for counting or SLOT diff --git a/Firmware/src/AppleIISd.s b/Firmware/src/AppleIISd.s index 09b7324..64a9635 100644 --- a/Firmware/src/AppleIISd.s +++ b/Firmware/src/AppleIISd.s @@ -4,7 +4,7 @@ ; Version 1.2.2 ; Main source ; -; (c) Florian Reitz, 2017 - 2020 +; (c) Florian Reitz, 2017 - 2021 ; ; X register usually contains SLOT16 ; Y register is used for counting or SLOT @@ -354,7 +354,7 @@ INIT: STZ CTRL,X ; reset SPI controller KNOWNRTS: RTS -TEXT: .asciiz " Apple][Sd v1.2.2 (c)2020 Florian Reitz" +TEXT: .asciiz " Apple][Sd v1.2.2 (c)2021 Florian Reitz" .assert(*-TEXT)=40, error, "TEXT must be 40 bytes long" diff --git a/Firmware/src/Helper.s b/Firmware/src/Helper.s index 3204d37..6218e35 100644 --- a/Firmware/src/Helper.s +++ b/Firmware/src/Helper.s @@ -4,7 +4,7 @@ ; Version 1.2.2 ; Helper functions ; -; (c) Florian Reitz, 2017 - 2020 +; (c) Florian Reitz, 2017 - 2021 ; ; X register usually contains SLOT16 ; Y register is used for counting or SLOT diff --git a/Firmware/src/ProDOS.s b/Firmware/src/ProDOS.s index 603a9d0..48deed8 100644 --- a/Firmware/src/ProDOS.s +++ b/Firmware/src/ProDOS.s @@ -4,7 +4,7 @@ ; Version 1.2.2 ; ProDOS functions ; -; (c) Florian Reitz, 2017 - 2020 +; (c) Florian Reitz, 2017 - 2021 ; ; X register usually contains SLOT16 ; Y register is used for counting or SLOT diff --git a/Firmware/src/Smartport.s b/Firmware/src/Smartport.s index ce781c3..a601655 100644 --- a/Firmware/src/Smartport.s +++ b/Firmware/src/Smartport.s @@ -1,10 +1,10 @@ ;******************************* ; ; Apple][Sd Firmware -; Version 1.2 +; Version 1.2.2 ; Smartport functions ; -; (c) Florian Reitz, 2017 - 2018 +; (c) Florian Reitz, 2017 - 2021 ; ; X register usually contains SLOT16 ; Y register is used for counting or SLOT diff --git a/README.md b/README.md index f5cdc73..08c3292 100644 --- a/README.md +++ b/README.md @@ -26,15 +26,13 @@ The AppleIISd requires an enhanced IIe or IIgs computer. The ROM code uses some * Apple IIe enhanced, 128k, Prodos 1.9 * Apple IIe enhanced, 64k, Prodos 1.9 -When a 2732 type ROM is used, the binary image has to be programmed at offset 0x800, because A11 is always high for compatibility with 2716 type ROMs. - ## Binary distribution The following files in [Binary/](Binary) have been provided to eliminate the need to compile assembler or VHDL sources. | File | Purpose | | ---- | ------- | | AppleIISd_xx44.jed | CPLD bitfiles for PC44 and VQ44 formfactors | -| AppleIIDs.bin | 2k Firmware binary for EPROM | +| AppleIISd.bin | 2k Firmware binary for EPROM | | AppleIISd.hex | Same as above in INTEL-HEX format | | AppleIISd.bom.txt | BOM for the board | | AppleIISd.pdf | Schematic and layout | @@ -135,10 +133,10 @@ The control registers of the *AppleIISd* are mapped to the usual I/O space at ** ## TODOs * Much more testing * Enable more than 4 volumes under GS/OS -* Support for 6502 CPUs +* Support for 6502 CPUs +* Support for CP/M ## Known Bugs -* Does not work with some Z80 cards present * Programs not startable from partitions 3 and 4 under ProDOS diff --git a/Software/make_image.bat b/Software/make_image.bat index 6424d15..d785f61 100644 --- a/Software/make_image.bat +++ b/Software/make_image.bat @@ -1,3 +1,5 @@ +make clean make -java -jar AppleCommander-ac-1.5.0.jar -d flasher.dsk %~n1 -java -jar AppleCommander-ac-1.5.0.jar -as flasher.dsk %~n1 < %1 +java -jar ..\Binary\AppleCommander-ac-1.5.0.jar -d ..\Binary\Flasher.dsk flasher +java -jar ..\Binary\AppleCommander-ac-1.5.0.jar -as ..\Binary\Flasher.dsk flasher < Flasher.bin +copy Flasher.bin ..\Binary \ No newline at end of file diff --git a/Software/src/Flasher.c b/Software/src/Flasher.c index 6692760..7815721 100644 --- a/Software/src/Flasher.c +++ b/Software/src/Flasher.c @@ -36,7 +36,7 @@ int main() boolean erase = FALSE; uint16 fileSize = 0; - APPLE_II_SD_T* pAIISD = (APPLE_II_SD_T*)SLOT_IO_START; + APPLE_II_SD_T* pAIISD; volatile uint8* pSlotRom = SLOT_ROM_START; volatile uint8 dummy; @@ -71,8 +71,8 @@ int main() cgetc(); return 1; // failure } - - ((uint8*)pAIISD) += slotNum << 4; + + pAIISD = (APPLE_II_SD_T*)(SLOT_IO_START + (slotNum << 4)); pSlotRom += slotNum << 8; if(erase)