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

Reply via email to