Because there were problems with the german umlauts of patch "AE" while using Mega65 mode (or Nexys board or xmega65 of Xemu), I patched a new version "AH" of the C65 ROM (911001.bin):
The patch includes all previous patches (until "AG" which fixed the "disc change bug").
To get the patched ROM see steps 1.) to 4.) in this post: Patch for C65 ROM
...
5.) Patch the file with this command:
bspatch 911001.bin 911001_ah.bin patch_ah.bin
6.) The created file '911001_ah.bin' is the patched rom and you can rename and use it for your needs. E.g. for Xemu 'c65-system.rom' or 'MEGA65.ROM' for Mega65 or the Nexys board.
As Paul mentioned in this post, the chars which uses Mega65 are copied from the C64 char set section of the C65 ROM. So I changed the chars also in the C64 section.
Now you can use the german umlauts also in Mega65 mode and even in the C64 mode (after GO 64):
For convenience I quote from from the manual for the C65 Notepad for describing the keys for the german umlauts:
Here is the text file with the changes made in patch "AH" against the original ROM (911001.bin):
- Comparing files 911001.bin and 911001_ah.bin
- 00001CCD: 83 80 ; change address of status bit0 for dc check in "disc change routine" to $D080 instead of $D083
- 00001E1C: EE EA ; replace INC $D020
- 00001E1D: 20 EA ; (change border color if disc error)
- 00001E1E: D0 EA ; with three NOPs so border don't change color
- 00004001: 14 00 ; fill area from $04000 to $07000 with $00
- 00004002: 20 00 ; deletes the demo programs stored in ROM 911001.bin
- [...]
- 00006FFF: FF 00
- 00007000: FF 00
- 00009380: 00 66 ; change chars in C65 char set 1 for umlauts
- 00009381: 00 18
- 00009382: 00 3C
- 00009383: 1F 66
- 00009384: 1F 7E
- 00009385: 18 66
- 00009386: 18 66
- 00009387: 18 00
- 00009388: 18 1C
- 00009389: 18 36
- 0000938A: 18 30
- 0000938B: FF 7E
- 0000938C: FF 30
- 0000938D: 00 36
- 0000938E: 00 1C
- 000093C0: FF 66
- 000093C1: FF 00
- 000093C2: FF 66
- 000093C3: 00 66
- 000093C4: 00 66
- 000093C5: 00 66
- 000093C6: 00 3C
- 000093C8: 00 66
- 000093C9: 00 3C
- 000093CA: 00 66
- 000093CB: 00 66
- 000093CC: 00 66
- 000093CD: FF 66
- 000093CE: FF 3C
- 000093CF: FF 00
- 00009780: FF 99 ; change chars in C65 char set 2 for umlauts
- 00009781: FF E7
- 00009782: FF C3
- 00009783: E0 99
- 00009784: E0 81
- 00009785: E7 99
- 00009786: E7 99
- 00009787: E7 FF
- 00009788: E7 E3
- 00009789: E7 C9
- 0000978A: E7 CF
- 0000978B: 00 81
- 0000978C: 00 CF
- 0000978D: FF C9
- 0000978E: FF E3
- 000097C0: 00 99
- 000097C1: 00 FF
- 000097C2: 00 99
- 000097C3: FF 99
- 000097C4: FF 99
- 000097C5: FF 99
- 000097C6: FF C3
- 000097C8: FF 99
- 000097C9: FF C3
- 000097CA: FF 99
- 000097CB: FF 99
- 000097CC: FF 99
- 000097CD: 00 99
- 000097CE: 00 C3
- 000097CF: 00 FF
- 000098E0: 0C 38
- 000098E1: 12 6C
- 000098E2: 30 6C
- 000098E3: 7C 78
- 000098E4: 30 6C
- 000098E5: 62 6C
- 000098E6: FC 78
- 000098E7: 00 60
- 00009B68: 18 66
- 00009B6A: 18 3C
- 00009B6B: 1F 66
- 00009B6C: 1F 7E
- 00009B6D: 00 66
- 00009B6E: 00 66
- 00009B70: 00 3C
- 00009B71: 00 66
- 00009B72: 00 66
- 00009B73: F8 7C
- 00009B74: F8 66
- 00009B75: 18 66
- 00009B76: 18 7C
- 00009B77: 18 60
- 00009B80: 00 66
- 00009B82: 00 3C
- 00009B83: 1F 06
- 00009B84: 1F 3E
- 00009B85: 18 66
- 00009B86: 18 3E
- 00009B87: 18 00
- 00009B88: 18 1C
- 00009B89: 18 36
- 00009B8A: 18 30
- 00009B8B: FF 7E
- 00009B8C: FF 30
- 00009B8D: 00 36
- 00009B8E: 00 1C
- 00009BA8: E0 66
- 00009BA9: E0 00
- 00009BAA: E0 66
- 00009BAB: E0 66
- 00009BAC: E0 66
- 00009BAD: E0 66
- 00009BAE: E0 3C
- 00009BAF: E0 00
- 00009BB0: 07 66
- 00009BB1: 07 3C
- 00009BB2: 07 66
- 00009BB3: 07 66
- 00009BB4: 07 66
- 00009BB5: 07 66
- 00009BB6: 07 3C
- 00009BB7: 07 00
- 00009BC0: FF 00
- 00009BC1: FF 66
- 00009BC2: FF 00
- 00009BC3: 00 66
- 00009BC4: 00 66
- 00009BC5: 00 66
- 00009BC6: 00 3C
- 00009BC8: 00 66
- 00009BCA: 00 3C
- 00009BCB: 00 66
- 00009BCC: 00 66
- 00009BCD: FF 66
- 00009BCE: FF 3C
- 00009BCF: FF 00
- 00009F68: E7 99
- 00009F6A: E7 C3
- 00009F6B: E0 99
- 00009F6C: E0 81
- 00009F6D: FF 99
- 00009F6E: FF 99
- 00009F70: FF C3
- 00009F71: FF 99
- 00009F72: FF 99
- 00009F73: 07 83
- 00009F74: 07 99
- 00009F75: E7 99
- 00009F76: E7 83
- 00009F77: E7 9F
- 00009F80: FF 99
- 00009F82: FF C3
- 00009F83: E0 F9
- 00009F84: E0 C1
- 00009F85: E7 99
- 00009F86: E7 C1
- 00009F87: E7 FF
- 00009F88: E7 E3
- 00009F89: E7 C9
- 00009F8A: E7 CF
- 00009F8B: 00 81
- 00009F8C: 00 CF
- 00009F8D: FF C9
- 00009F8E: FF E3
- 00009FA8: 1F 99
- 00009FA9: 1F FF
- 00009FAA: 1F 99
- 00009FAB: 1F 99
- 00009FAC: 1F 99
- 00009FAD: 1F 99
- 00009FAE: 1F C3
- 00009FAF: 1F FF
- 00009FB0: F8 99
- 00009FB1: F8 C3
- 00009FB2: F8 99
- 00009FB3: F8 99
- 00009FB4: F8 99
- 00009FB5: F8 99
- 00009FB6: F8 C3
- 00009FB7: F8 FF
- 00009FC0: 00 FF
- 00009FC1: 00 99
- 00009FC2: 00 FF
- 00009FC3: FF 99
- 00009FC4: FF 99
- 00009FC5: FF 99
- 00009FC6: FF C3
- 00009FC8: FF 99
- 00009FCA: FF C3
- 00009FCB: FF 99
- 00009FCC: FF 99
- 00009FCD: 00 99
- 00009FCE: 00 C3
- 00009FCF: 00 FF
- 0000D380: 00 66 ; change chars in C64 char set 1 for umlauts
- 0000D381: 00 18
- 0000D382: 00 3C
- 0000D383: 1F 66
- 0000D384: 1F 7E
- 0000D385: 18 66
- 0000D386: 18 66
- 0000D387: 18 00
- 0000D388: 18 1C
- 0000D389: 18 36
- 0000D38A: 18 30
- 0000D38B: FF 7E
- 0000D38C: FF 30
- 0000D38D: 00 36
- 0000D38E: 00 1C
- 0000D3C0: FF 66
- 0000D3C1: FF 00
- 0000D3C2: FF 66
- 0000D3C3: 00 66
- 0000D3C4: 00 66
- 0000D3C5: 00 66
- 0000D3C6: 00 3C
- 0000D3C8: 00 66
- 0000D3C9: 00 3C
- 0000D3CA: 00 66
- 0000D3CB: 00 66
- 0000D3CC: 00 66
- 0000D3CD: FF 66
- 0000D3CE: FF 3C
- 0000D3CF: FF 00
- 0000D780: FF 99 ; change chars in C64 char set 2 for umlauts
- 0000D781: FF E7
- 0000D782: FF C3
- 0000D783: E0 99
- 0000D784: E0 81
- 0000D785: E7 99
- 0000D786: E7 99
- 0000D787: E7 FF
- 0000D788: E7 E3
- 0000D789: E7 C9
- 0000D78A: E7 CF
- 0000D78B: 00 81
- 0000D78C: 00 CF
- 0000D78D: FF C9
- 0000D78E: FF E3
- 0000D7C0: 00 99
- 0000D7C1: 00 FF
- 0000D7C2: 00 99
- 0000D7C3: FF 99
- 0000D7C4: FF 99
- 0000D7C5: FF 99
- 0000D7C6: FF C3
- 0000D7C8: FF 99
- 0000D7C9: FF C3
- 0000D7CA: FF 99
- 0000D7CB: FF 99
- 0000D7CC: FF 99
- 0000D7CD: 00 99
- 0000D7CE: 00 C3
- 0000D7CF: 00 FF
- 0000DB68: 18 66
- 0000DB6A: 18 3C
- 0000DB6B: 1F 66
- 0000DB6C: 1F 7E
- 0000DB6D: 00 66
- 0000DB6E: 00 66
- 0000DB70: 00 3C
- 0000DB71: 00 66
- 0000DB72: 00 66
- 0000DB73: F8 7C
- 0000DB74: F8 66
- 0000DB75: 18 66
- 0000DB76: 18 7C
- 0000DB77: 18 60
- 0000DB80: 00 66
- 0000DB82: 00 3C
- 0000DB83: 1F 06
- 0000DB84: 1F 3E
- 0000DB85: 18 66
- 0000DB86: 18 3E
- 0000DB87: 18 00
- 0000DB88: 18 1C
- 0000DB89: 18 36
- 0000DB8A: 18 30
- 0000DB8B: FF 7E
- 0000DB8C: FF 30
- 0000DB8D: 00 36
- 0000DB8E: 00 1C
- 0000DBA8: E0 66
- 0000DBA9: E0 00
- 0000DBAA: E0 66
- 0000DBAB: E0 66
- 0000DBAC: E0 66
- 0000DBAD: E0 66
- 0000DBAE: E0 3C
- 0000DBAF: E0 00
- 0000DBB0: 07 66
- 0000DBB1: 07 3C
- 0000DBB2: 07 66
- 0000DBB3: 07 66
- 0000DBB4: 07 66
- 0000DBB5: 07 66
- 0000DBB6: 07 3C
- 0000DBB7: 07 00
- 0000DBC0: FF 00
- 0000DBC1: FF 66
- 0000DBC2: FF 00
- 0000DBC3: 00 66
- 0000DBC4: 00 66
- 0000DBC5: 00 66
- 0000DBC6: 00 3C
- 0000DBC8: 00 66
- 0000DBCA: 00 3C
- 0000DBCB: 00 66
- 0000DBCC: 00 66
- 0000DBCD: FF 66
- 0000DBCE: FF 3C
- 0000DBCF: FF 00
- 0000DF68: E7 99
- 0000DF6A: E7 C3
- 0000DF6B: E0 99
- 0000DF6C: E0 81
- 0000DF6D: FF 99
- 0000DF6E: FF 99
- 0000DF70: FF C3
- 0000DF71: FF 99
- 0000DF72: FF 99
- 0000DF73: 07 83
- 0000DF74: 07 99
- 0000DF75: E7 99
- 0000DF76: E7 83
- 0000DF77: E7 9F
- 0000DF80: FF 99
- 0000DF82: FF C3
- 0000DF83: E0 F9
- 0000DF84: E0 C1
- 0000DF85: E7 99
- 0000DF86: E7 C1
- 0000DF87: E7 FF
- 0000DF88: E7 E3
- 0000DF89: E7 C9
- 0000DF8A: E7 CF
- 0000DF8B: 00 81
- 0000DF8C: 00 CF
- 0000DF8D: FF C9
- 0000DF8E: FF E3
- 0000DFA8: 1F 99
- 0000DFA9: 1F FF
- 0000DFAA: 1F 99
- 0000DFAB: 1F 99
- 0000DFAC: 1F 99
- 0000DFAD: 1F 99
- 0000DFAE: 1F C3
- 0000DFAF: 1F FF
- 0000DFC0: 00 FF
- 0000DFC1: 00 99
- 0000DFC2: 00 FF
- 0000DFC3: FF 99
- 0000DFC4: FF 99
- 0000DFC5: FF 99
- 0000DFC6: FF C3
- 0000DFC8: FF 99
- 0000DFCA: FF C3
- 0000DFCB: FF 99
- 0000DFCC: FF 99
- 0000DFCD: 00 99
- 0000DFCE: 00 C3
- 0000DFCF: 00 FF
- 0000E47C: 2A 20 ; change text passage in start message of C64 mode
- 0000E47D: 20 43 ; from "* COMMODORE 64 BASIC V2 *"
- 0000E47E: 43 4F ; to " COMMODORE 64 BASIC V2.2 "
- 0000E47F: 4F 4D
- 0000E481: 4D 4F
- 0000E482: 4F 44
- 0000E483: 44 4F
- 0000E484: 4F 52
- 0000E485: 52 45
- 0000E486: 45 20
- 0000E487: 20 36
- 0000E488: 36 34
- 0000E489: 34 20
- 0000E48A: 20 42
- 0000E48B: 42 41
- 0000E48C: 41 53
- 0000E48D: 53 49
- 0000E48E: 49 43
- 0000E48F: 43 20
- 0000E490: 20 56
- 0000E491: 56 32
- 0000E492: 32 2E
- 0000E493: 20 32
- 0000E494: 2A 20
- 000120CB: 80 FF ; set top of bank 0 to $FF00 (instead of $8000)
- 000120D5: 80 F8 ; set top of bank 1 to $F800 (instead of $8000)
- 00012281: 20 56 ; shift display of ROM version number one digit left
- 00012282: 56 30 ; and add '.AH' at the end
- 00012283: 30 2E ; for displaying patch number
- 00012284: 2E 39
- 00012285: 39 42
- 00012286: 42 2E
- 00012287: 2E 39
- 00012288: 39 31
- 0001228A: 31 30
- 0001228C: 30 31
- 0001228D: 31 2E
- 0001228E: 20 41
- 0001228F: 20 48
- 0001FDBE: 45 55 ; change keyboard text in start messages
- 0001FDBF: 4E 53 ; from "ENGLISH KEYBOARD"
- 0001FDC0: 47 20 ; to "US KEYB/GER CHAR"
- 0001FDC1: 4C 4B
- 0001FDC2: 49 45
- 0001FDC3: 53 59
- 0001FDC4: 48 42
- 0001FDC5: 20 2F
- 0001FDC6: 4B 47
- 0001FDC8: 59 52
- 0001FDC9: 42 20
- 0001FDCA: 4F 43
- 0001FDCB: 41 48
- 0001FDCC: 52 41
- 0001FDCD: 44 52