Thanks for letting me know. It's a shame that its not compatible with everything. It's strange to me that hardware scrolling wasn't part of the original design.
On Mon, Nov 27, 2023 at 02:56:16AM -0500, Stephen Adolph wrote: > Not sure there was any space left. > > What I have found is that some programs directly write to the video > driver chips assuming they are all in the default scroll state. This > messes up the display sometimes. I'm not sure hardware scroll is good > for that reason. The fix is to reset the machine when it becomes a > problem which is a pain. > > On Monday, November 27, 2023, runrin <[email protected]> wrote: > > Ack! It was a silly mistake. I needed JZ not RZ. Everything is > working > perfectly now. > > Stephen, off hand, do you know if there is any extra space left over > after your hardware scrolling patch? I'd like to use it, but I'm not > sure if it will fit anymore with the extra 11 bytes I added in the > space > the base patch freed up. > > Thanks again for your help with this! > > On Sun, Nov 26, 2023 at 05:09:21AM -0500, Stephen Adolph wrote: > > Both tests should modify carry flag? > > > > On Sunday, November 26, 2023, runrin <[email protected]> wrote: > > > > Here's the patch I wrote after applying your base patch. I > must be > > making a silly mistake here, since it doesn't seem to work > correcly. > > Semi-colon is no longer shifted as expected, but it's not > catching > > the > > `o' for some reason. > > > > .org 0722CH > > MOV A,C ; unchanged > > JMP extra ; go to patch [C3 AB 75] > > back(7230): MVI E,2CH ; unchanged > > RET ; unchanged > > > > .org 075ABH > > extra: CPI 1BH ; check for `o' [FE 1B] > > RZ ; [C8] > > CPI 19H ; > 25 ? [FE 19] > > RNC ; [D0] > > JMP back ; [C3 30 72] > > > > On Sat, Nov 25, 2023 at 04:48:40PM -0500, Stephen Adolph > wrote: > > > here is a file "base_patch" that describes 4 changes to > the > > Main ROM to > > > create a hole from > > > 75AB to 7640 > > > which is free to use. > > > > > > "... Base patch, which provides about 150 free bytes to > use for > > > modifications to the M100 ROM. The basis of this patch > is the > > > observation that the PIO data table could be reduced > from 240 > > bytes to > > > 80 bytes. This change forces a rewrite of a short > section of a > > > routine." > > > > > > Good luck with it; I used it to implement the hardware > scroll > > patch for > > > the M100. > > > The hardware scroll patch document has a section that > details > > how the > > > base patch works. > > > cheers > > > Steve > > > > > > On Sat, Nov 25, 2023 at 1:05 PM runrin <[email protected]> > wrote: > > > > > > Wow, Stephen! Of course you know exactly where it is! > > > > > > Thanks so much! If you could share your character > printing > > patch I'd > > > appreciate it. > > > > > > Looks like the simplest way to get `o' to work with > caps lock > > would > > > be > > > to just accept that `;' and `[' will also be shifted, > and > > change the > > > 27 > > > to a 29. > > > > > > It'll be fun to rewrite the routine though. It looks > like > > there are > > > 5 or > > > 6 bytes free at the end of the ROM, so being able to > squeeze > > the > > > patch > > > in there would be pretty nice. > > > > > > On Sat, Nov 25, 2023 at 08:34:30AM -0500, Stephen > Adolph > > wrote: > > > > 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 > <[email protected]> > > 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. > > > > > ; patch #1 for M100/T102 rom > > > ; this patch reduced the amount of space needed in the LCD > > patterns table, enabling room for future changes > > > > > > ; blocks: > > > > > > ; 7467 - 746E checked > > > ; 74BB - 74EA checked > > > ; 7551 - 75AA checked > > > ; 75AB - 763F hole created > > > > > > > > > > > > > > > ;----------------------------- > ------------------------------ > > --------------------------- > > > > > > ;PATCH2 > > > ; Proposed replacement code 7467 to 746E > > > ;checked > > > > > > .org 07467H > > > > > > p2: LXI H,7643H > > > CALL p5 > > > NOP > > > NOP > > > > > > > > > ;----------------------------- > ------------------------------ > > --------------------------- > > > ;PATCH3 > > > ; Proposed replacement code 74BB to 74EA > > > ; checked > > > > > > .org 074BBH > > > > > > p3: RLC > > > MOV C,A > > > MVI B,00H > > > LXI H,7551H > > > DAD B > > > MOV C,M > > > INX H > > > MOV A,M > > > PUSH PSW > > > LDA 0FFF4H > > > RAR > > > RAR > > > RAR > > > LXI H,7643H > > > CALL p5 > > > CALL 753BH > > > SHLD 0FFF6H > > > POP PSW > > > ORA B > > > MOV B,A > > > POP H > > > DCR D > > > CALL 74F7H > > > INR D > > > MVI A,06H > > > SUB E > > > RZ > > > MOV E,A > > > PUSH H > > > LHLD 0FFF6H > > > > > > > > > ;----------------------------- > ------------------------------ > > --------------------------- > > > ;PATCH4 > > > ; this is the corrected LCD table 7551 to 75A0 240 bytes > > > ; 75A1 to 7640 is free to use, 160 bytes total > > > ; checked > > > > > > .org 07551H ; 80 bytes > > > p4: .db 00H,00H,00H,06H,00H,0CH,00H, > > 12H,00H,18H,00H,1EH,00H,24H,00H,2AH > > > .db 00H,30H > > > .db 02H,04H,02H,0AH,02H,10H,02H, > > 16H,02H,1CH,02H,22H,02H,28H,02H,2EH > > > .db 04H,02H,04H,08H,04H,0EH,04H, > > 14H,04H,1AH,04H,20H,04H,26H,04H,2CH > > > .db 06H,00H,06H,06H,06H,0CH,06H, > > 12H,06H,18H,06H,1EH,06H,24H,06H,2AH > > > .db 06H,30H > > > .db 08H,04H,08H,0AH,08H,10H,08H, > 16H,08H,1CH,08H,22H > > > > > > > > > > > > > > > ;----------------------------- > ------------------------------ > > --------------------------- > > > ;PATCH5 > > > ; Proposed subroutine at 75A1H to 75AA > > > ; checked > > > .org 075A1H > > > > > > p5: JNC ahead1 > > > MVI L,4DH > > > ahead1: MVI B,00H > > > DAD B > > > MOV B,A > > > RET > > > > > > > > > ; 75A1 to 75AA is used > > > ; 75AB to 7640 free to use > > > > > > ;----------------------------- > ------------------------------ > > --------------------------- > > > > > > .org 075ABh > > > .db 00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00,00,00,00,00,00,00,00 > > > .db 00 > > > > > > .end > > > > > > > > > > > >
