Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/go4retro/FlashPak
512kB FLASH ROM Cartridge for the TANDY Color Computer and Dragon Data Dragon System
https://github.com/go4retro/FlashPak
Last synced: about 1 month ago
JSON representation
512kB FLASH ROM Cartridge for the TANDY Color Computer and Dragon Data Dragon System
- Host: GitHub
- URL: https://github.com/go4retro/FlashPak
- Owner: go4retro
- Created: 2020-03-05T04:47:35.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-07T04:43:26.000Z (8 months ago)
- Last Synced: 2024-05-07T05:32:33.835Z (8 months ago)
- Language: Assembly
- Size: 9.63 MB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE_CC_BY_SA_4.0.txt
Awesome Lists containing this project
- awesome-coco - FlashPak - 512kB FLASH ROM Cartridge Unit (Maker Community / Hardware Designs)
README
# FlashPak - 512kB FLASH ROM Cartridge Unit for the TANDY Color Computer 1, 2, 3, and Dragon
![](media/Unit.JPG)
This cartridge supports 512kB of system programmable FLASH ROM utilizing the RoboCop (Zumwalt) banking system.
## Technical Details
Banks are 16kB in size (technically, 16KiB - 256 bytes, since $ff00-$ffff is reserved for IO and vectors), which allows operation on all TANDY Color Computer models and the Dragon Data Dragon machines. FLASH ROM appears at location $c000 in the memory map, while the banking register appears at $ff40. The bits in the banking register are as follows:| IO Location | Bit Location | Description |
| ----------- | ------------ | --------------------------- |
| $ff40 | 4:0 | FLASH address lines A18-A14 |
| | 7 | 1 = Programming Enabled |The system is designed to utilize AM29F040B FLASH ROMs, but can also accommodate 16kB-512kB FLASH ROMs or EPROMs via J1-J5. Please see schematic for more details. If EPROMs are utilized, IC3 is not required (EPROMs cannot be system programmable)
To program please consult the AM29F040B datasheet for details, but essentially:
* set bit 7 to 1 and select bank in bank register
* via machine language, store the following values:
* store $aa in $c555
* store $55 in $c2aa
* store $a0 in $c555
* store desired value in $c000-$feff address ($fdff on Color Computer 3, I believe)Sample stub code is available in the src/ directory. The programming must be precise and cannot easily be performed from BASIC[1].
[1]: To simplify construction and reduce cost, programming is enabled for all of $c000-$ffff. This includes the entire $ffxx IO region. Unless care is taken to disable BASIC or the IRQ handlers from accessing $ffxx regions while sending the special programming sequence, the sequence will be disrupted and programming will not occur.
## Photos
## License
Copyright (C) 2021 RETRO InnovationsThese files are free designs; you can redistribute them and/or modify
them under the terms of the Creative Commons Attribution-ShareAlike
4.0 International License.You should have received a copy of the license along with this
work. If not, see .These files are distributed in the hope that they will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.