Since you are modifying the ROM, you may find to get what you want you need more space.
I have a patch that rewrites some routines for character printing that frees up about 180 bytes if I recall correctly. I've used this to fix things I don't like in the Main ROM. I'm happy to share that patch, should your hacking require some bytes. to your question. 722CH (79H) MOV A,C Handle CAPS LOCK key during key decoding 722DH (FEH) CPI 1AH 722FH (D0H) RNC 7230H (1EH) MVI E,2CH 7232H (C9H) RET if the "regular key" is > 26 the key is not modified. because the key # for o is 27, no upper case. So you need a more complicated routine at 722Ch On Sat, Nov 25, 2023 at 1:08 AM runrin <run....@rin.run> wrote: > Hey all! > > I just finished building my FlexROM and patching the system rom for my > keyboard layout of choice (colemak). I'm super excited about it because > it will make my m100 much more usable for me. > > Here are the relevant lines of the rom that were patched if anyone is > interested: > > 00007BF0 AA 7A 78 63 76 62 6B 6D 69 61 72 73 74 64 68 6E > .zxcvbkmiarstdhn > 00007C00 65 71 77 66 70 67 6A 6C 75 79 3B 5B 6F 27 2C 2E > eqwfpgjluy;[o',. > 00007C10 2F 31 32 33 34 35 36 37 38 39 30 2D 3D 5A 58 43 > /1234567890-=ZXC > 00007C20 56 42 4B 4D 49 41 52 53 54 44 48 4E 45 51 57 46 > VBKMIARSTDHNEQWF > 00007C30 50 47 4A 4C 55 59 3A 5D 4F 22 3C 3E 3F 21 40 23 > PGJLUY:]O"<>?!@# > ... > 00007CF0 00 00 00 D4 D2 D3 A6 A7 A8 6D 30 6E 31 65 32 69 > .........m0n1e2i > 00007D00 33 6C 34 75 35 79 36 01 06 14 02 20 7F 09 1B 8B 3l4u5y6.... > .... > > The last two lines makes the number pad work correctly (an extremely > easy fix!) > > There is just one small bug with my patch, and that is caps lock not > working correctly. When caps lock is enabled, `o' remains lowercase and > `;' types a `:'. I presume this is due to the way caps lock works with > the keyboard matrix. The letter `o' has been moved out of the letter > rows of the keyboard matrix, and is now in one of the symbol > rows. The opposite is true of the semi-colon, now being part of the > letter matrix replacing `p'. > > > Does anyone know if caps lock is done in software, or if it's modifying > which characters are being selected by pulling a bit high or something? > > This is a really small issue, but I would like to get it working > correctly. I'll dive into the schematic when I have some time and see if > I can find a hint about how caps lock works. If not I'll start messing > around with Virtual-T and see what I can find there. > > If I dig anything interesting up, I'll update this thread with what I > learn. >