This is a TK-2000 / MPF-II core for MIST FPGA
This core is not original is based on:
- https://ws0.org/tag/apple2/ (mist fpga),
- https://github.com/gyurco/apple2efpga (mist fpga),
- https://gitlab.com/victor.trucco/Multicore/-/tree/master/Computers/TK2000 (multicore 2 fpga)
In the folder fpga-sources we have the vhdl/system verilog model in the folder fpga-binaries we have the synthetized cores
- disk loading via osd
- tape input from the UART RX pin
- scanlines
- color, amber, green and black&white monitor
- we can select between TK-2000 / MPF-II and Apple 2 Plus color palletes. the mpf-ii color pallete needed to be corrected but I don't know the values for that
- there are some differences in TK-2000 and MPF-II ROMS. for me TK-2000 rom is better. I sinthetized 2 core versions one with TK-2000 ROM other with MPF-II ROM
- Apple 2 Plus joystick support (not present in original TK-2000 or MPF-II)
Someone discovered by chance that we can boot the apple 2 plus games gremlins and donkey kong in TK-2000 / MPF-II without modification. As is expected The keyboard doesn't work with these games (TK-2000 / MPF-II keyboard hardware implementation is very different from Apple 2 Plus) so I decided to include Apple 2 Plus joystick support and they were tested and worked. Maybe there are another apple2 games that work.
I noticed also that TK-2000 / MPF-II have the command pdl(x). I mean the TK-2000 / MPF-II creators put the Apple 2 Plus joystick support in ROM but didn't create the physical interface for it.
These are the original soft switches of TK-2000 / MPF-II:
COLOR_MODE -- C050/51 -- TEXT_MODE in Apple 2 Plus
MOTOR_A -- C052/53 -- MIXED_MODE in Apple 2 Plus
PAGE_SELECT -- C054/55 -- Same in Apple 2 Plus
MOTOR_B -- C056/57 -- HIRES_mode in Apple 2 Plus
LPT_STB -- C058/59 -- ANNUNCIATOR0 in Apple 2 Plus
ROMRAM_SELECT -- C05A/5B -- ANNUNCIATOR1 in Apple 2 Plus
RESERVED_4 -- C05C/5D -- ANNUNCIATOR2 in Apple 2 Plus
CONTROL -- C05E/5F -- ANNUNCIATOR3 in Apple 2 Plus
These softswitches didn't exist in original TK-2000 / MPF-II
DISK_DISABLE -- C040/41 -- 0 - Enables / 1 - Disables disk interface. Does not exist in the original TK-2000 / MPF-II
IO_RANGE -- C042/43 -- 0 - C000 -> C0FF / 1 - C000 -> CFFF. Does not exist in the original TK-2000 / MPF-II
PAGE1_ADDR -- C044/45 -- Changes the location of video page 1 from 2000h to 8000h. This does not exist in the original TK-2000 / MPF-II.
PAGE2_ADDR -- C046/47 -- Changes the location of video page 2 from A000h to 4000h (same as the Apple 2 Plus).
RESERVED_0 -- C048/49
RESERVED_1 -- C04A/4B
RESERVED_2 -- C04C/4D
RESERVED_3 -- C04E/4F
IO_RANGE, PAGE1_ADDR and PAGE2_ADDR are included for testing. normally they must not be used
section of mist.ini to map the keyboard to joystick. it has nothing to do with Apple 2 Plus joystick
[TK2000]
joy_key_map=2,50 ; left
joy_key_map=1,4f ; right
joy_key_map=4,51 ; down
joy_key_map=8,52 ; up
joy_key_map=10,37 ; > - fire a
joy_key_map=20,2c ; spc - fire b
[MPF-II]
joy_key_map=2,50 ; left
joy_key_map=1,4f ; right
joy_key_map=4,51 ; down
joy_key_map=8,52 ; up
joy_key_map=10,37 ; > - fire a
joy_key_map=20,2c ; spc - fire b