Hi Nippur72, et al.
do you already know about "basck" ? it's tool in the Z88DK compiler that automatically scans a ROM dump and finds MS basic entry points:
I was aware of it, but hadn't though to try it.
Your list shows it does a pretty good job of locating most things.
Can I trouble you to test a couple of things on your real machine?
I'm looking at Bits #6 and #7 of &H6800 on write.
Bit#7 should be the cassette motor control output.
Bit#6 is turned on/off by a routine which hangs off the interrupt chain if a certain key combination is pressed: SHIFT-CONTROL-1 (I think)
I'm wondering if Bit#6 controls the "GT" output of the gate array, which is connected to the character generator?
If so, it may switch visible character sets on machines which have CGA11 and CGA12 correctly jumpered?
RAM:0A56 sub_A56: ; CODE XREF: RAM:0A1A↑p
RAM:0A56 ; FUNCTION CHUNK AT RAM:0AD3 SIZE 0000000B BYTES
RAM:0A56 06 02 ld b, 2 ; Bring in I/O Bank
RAM:0A58 CD E5 0A call SET_BANK1_B ; set Bank#1 to value in B reg, save old on stack, and return
RAM:0A5B 21 FF 6A ld hl, 6AFFh ; Keyboard row 'C'?
RAM:0A5E CB 76 bit 6, (hl) ; check CAPS LOCK ?
RAM:0A60 28 11 jr z, loc_A73
RAM:0A62 CD A3 0A call CHECK_CONTROL_KEY ; check if control key is down - ZERO if true
RAM:0A65 20 2F jr nz, loc_A96
RAM:0A67 21 F7 6F ld hl, 6FF7h ; check Row KA3
RAM:0A6A CB 6E bit 5, (hl) ; bit 5 = '1' key?
RAM:0A6C 20 28 jr nz, loc_A96
RAM:0A6E 3E 3F ld a, 3Fh ; '?'
RAM:0A70 32 F0 85 ld (byte_85F0), a
RAM:0A73 loc_A73: ; CODE XREF: sub_A56+A↑j
RAM:0A73 21 FB 85 ld hl, operation_flags2
RAM:0A76 CB 6E bit 5, (hl)
RAM:0A78 20 21 jr nz, loc_A9B
RAM:0A7A CB EE set 5, (hl)
RAM:0A7C 3A F9 85 ld a, (REG_6800W) ; Saved copy of $6800 I/O Write byte
RAM:0A7F CB 77 bit 6, a
RAM:0A81 20 0D jr nz, loc_A90
RAM:0A83 CB F7 set 6, a ; what does Bit #6 in $6800 do in write mode
RAM:0A85 CB 9E res 3, (hl)
RAM:0A87 loc_A87: ; CODE XREF: sub_A56+3E↓j
RAM:0A87 32 00 68 ld (loc_67FF+1), a
RAM:0A8A 32 F9 85 ld (REG_6800W), a ; Saved copy of $6800 I/O Write byte
RAM:0A8D C3 D3 0A jp RESTORE_BNK1 ; Restore Bank#1 from values on the stack
RAM:0A90 ; ---------------------------------------------------------------------------
RAM:0A90 loc_A90: ; CODE XREF: sub_A56+2B↑j
RAM:0A90 CB B7 res 6, a
RAM:0A92 CB DE set 3, (hl)
RAM:0A94 18 F1 jr loc_A87