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.
>

Reply via email to