On 21.04.2021 13:12, Kerr-Mudd,John wrote:
> On Tue, 20 Apr 2021 14:52:58 GMT, wolfgang kern
> <
now...@nospicedham.never.at> wrote:
>
>> On 20.04.2021 17:55, Robert Prins wrote:
>>> Just came across this one:
>>>
>>> C4 1C 9F AB 47 47 EB F9
>>>
>>> Save as a .COM file and run it, even in DOSBox-X. (Do a CLS before
>>> you start it)
>>>
>>> Comparable to a gem like "+[>,]+[<.-]" in that language that usually
>>> has an '*' in it's name. ;)
>>>
>>> Robert
>>
>> I can't recommend to do this!
>>
>> endless:
>> LES BX,[SI] ;SI=?? may depend on environment
>> LAHF ;who knows what's in the flags ?
>> STOSW ;WRITE to ES:DI (try to use cc-flags for color)
>> INC DI dup2 ;stosw does this also
> skips next scrn char
>
>> JMP $-7 ;endless or until crash
>>
>> BX isn't used.
> except to set es.
>
>> And if SI doesn't point to the screen-seg it writes to another 64KB
>> block.
> I presume it's meant to put stripes down the screen; but al is 0 at start;
> aha! I see the jmp goes to 101, which becomes SBB al,9F
yeah, I saw it but forgot to mention where AL get its value.
> I thought a .COM file at startup has bx=0x0000,si=0x0100,di=0xFFFE,
> es=ds=cs;
> LES must somehow pick up the Screen seg.
if DS:SI points to CS:0100 then ES:BX read as AB9f:1cc4 which is at the
end of in the graphics-RAM range (nothing to see in text mode) but it
overwrites part of the VideoBIOS (it may be RAM-mapped and writable).
> OK it's a mini 'Matrix' tribute. Nice.
I cannot try such here.
__
wolfgang