Hey Kurt,
For the 8201a, this 52-byte hole appears to be at address F505H based on
disassembly comparisons between the M100 and 8201a:
M100
====
; ======================================================
; Get address in .DO file of start of current row using Line Starts array
; ======================================================
6A45H (3AH) LDA F639H ; Cursor row (1-8)
; ======================================================
; Get address in .DO file of start of row in 'A' using Line Starts array
; ======================================================
6A48H (5FH) MOV E,A ; Prepare to index into Line Start Array
6A49H (16H) MVI D,00H
6A4BH (21H) LXI H,F6E9H ; Pointer to Line Start Addresses
6A4EH (19H) DAD D ; Index into Line Start array
6A4FH (19H) DAD D ; Each entry is 2 bytes
6A50H (5EH) MOV E,M ; Get LSB of address for current row
6A51H (23H) INX H ; Increment to MSB
6A52H (56H) MOV D,M ; Get MSB of address for current row
6A53H (2BH) DCX H ; Decrement back to LSB
6A54H (C9H) RET
8201a
=====
6AE2H (3AH) LDA F3E5H ; Cursor row (1-8)
6AE5H (5FH) MOV E,A
6AE6H (16H) MVI D,00H
6AE8H (21H) LXI H,F505H
6AEBH (19H) DAD D
6AECH (19H) DAD D
6AEDH (5EH) MOV E,M
6AEEH (23H) INX H
6AEFH (56H) MOV D,M
6AF0H (2BH) DCX H
6AF1H (C9H) RET
Ken
On 9/12/19 10:16 AM, Kurt McCullum wrote:
Thanks Steve! I totally forgot about that message.
On Thu, Sep 12, 2019, at 9:08 AM, Stephen Adolph wrote:
reviving this thread. Great info on a hidey hole usable when NOT in
TEXT.
..Steve
On Thu, May 31, 2018 at 4:38 PM Ken Pettit <[email protected]
<mailto:[email protected]>> wrote:
Oh,
And speaking of hidey holes, there is a 52-byte hidey hole that
exists
while BASIC is running that I don't believe anyone has ever realized
exists or has used before. On the M100 this address starts at
F6EBH.
It is a table of 26 2-byte addresses which is used only in TEXT
mode.
TEXT initializes and maintains this table to hold the starting
address
of the text within the .DO file being for each line on the LCD
(or DVI
... thus 26 entries). I call it the "line starts array". TEXT
uses it
when updating the display to keep track of the location in the
.DO file
to start drawing from ... that way it doesn't have to calculate
from the
beginning of the file for each display update.
But in BASIC mode, these 52 RAMs of ram are unused. Enjoy!
Ken
On 5/31/18 12:49 PM, Ken Pettit wrote:
> Yeah, that's just 4 bytes of code. That could go in a hidey hole
> (Suzuki, Hayashi, etc.).
>
> Ken
>
> On 5/31/18 12:45 PM, John Gardner wrote:
>> ...Reljmp.pdf...
>>
>> Nice. Thanks.
>>
>> On 5/31/18, John Gardner <[email protected]
<mailto:[email protected]>> wrote:
>>> Hi John -
>>>
>>> I'm thinking about Ken's idea of having code embedded in BASIC
>>>
>>> jumping to code embedded in a DO file - Sounds workable, even
>>>
>>> reasonable with a big routine, or a number of smaller routines.
>>>
>>> On 5/31/18, John R. Hogerhuis <[email protected]
<mailto:[email protected]>> wrote:
>>>> On Thu, May 31, 2018 at 12:15 PM, John Gardner
<[email protected] <mailto:[email protected]>>
>>>> wrote:
>>>>
>>>>> Your code can figure out it's execution address with
something like:
>>>>>
>>>>> call @Boo
>>>>> Boo pop B
>>>>> pop A
>>>>>
>>>>> Boo's address is now in register pair A,B...
>>>>>
>>>> But you kind of already know since that code would have to be
>>>> relocated
>>>> to
>>>> function.
>>>>
>>>> -- John.
>>>>
>