whscullin / apple2js

An Apple II emulator originally written in Javascript, now being converted to TypeScript
http://www.scullinsteel.com/apple2/
MIT License
438 stars 57 forks source link

Add Pravetz 82 support #204

Closed zayfod closed 9 months ago

zayfod commented 9 months ago

Overview

Pravetz 82 is a Bulgarian Apple ][ clone - https://en.wikipedia.org/wiki/Pravetz_82

As the excellent Apple ][js already supports different "system types", if it is appropriate, I would like to propose adding "Pravetz 82" to it.

I find quite amusing the idea that, Bulgaria cloned the Apple hardware ][ in the '80s and customized the ROMs and 40 years later it is possible to clone an Apple ][ emulator and run the same customized ROMs on it with no changes. :)

The main challenge was adapting the keyboard which does specific key remapping to allow replacing the lower-case latin letters with upper-case Cyrillic ones, changes the behavior of the Shift key and introduces a Caps Lock-like key for switching between languages. To allow that and to make the keyboard look similar to the original one, I introduced a "keyboard layout" concept.

I'd be happy to adapt the code further, if necessary.

image image image image

The original: image

zayfod commented 9 months ago

Thanks for the prompt response!

I'd try to update the new application keyboard (js/components/util/keybaord.ts) also and maybe add Pravetz 8M and Pravetz 8M (Apple //e based) later.

Regarding software, I have a few Bulgarian disk images. Are you suggesting adding them to json/disks/?

whscullin commented 9 months ago

I tend to not add a lot of disks to the code repo, because it could easily become a slippery slope, but having a disk that allows for testing would be great. If there are other disks (I searched archive.org and didn't see any) I could add them to the software library on the website.