Fix LES instruction: Delphi 1.0 inline ASM can't resolve object fields
Replace 'les di, FGlyphBuf' with explicit GlyphBase/GlyphSeg locals that are extracted in Pascal before the ASM block. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c378abc9e5
commit
e7454f87d1
1 changed files with 7 additions and 4 deletions
|
|
@ -2123,6 +2123,7 @@ var
|
|||
I: Integer;
|
||||
Ofs: Integer;
|
||||
GlyphSeg: Word;
|
||||
GlyphBase: Word; { Offset component of FGlyphBuf (nibble table at +0) }
|
||||
PixSeg: Word;
|
||||
GlyphOfs: Word;
|
||||
PixOfs: Word;
|
||||
|
|
@ -2137,8 +2138,9 @@ begin
|
|||
Stride := Word(FCols) * Word(FCellWidth);
|
||||
CellH := FCellHeight;
|
||||
|
||||
{ Extract segments from far pointers -- pure Pascal, no register clobber }
|
||||
{ Extract segments/offsets from far pointers -- pure Pascal, no register clobber }
|
||||
GlyphSeg := Seg(PPixelBuf(FGlyphBuf)^);
|
||||
GlyphBase := Ofs(PPixelBuf(FGlyphBuf)^);
|
||||
PixSeg := Seg(PPixelBuf(FRowBuf)^);
|
||||
|
||||
{ Determine which line to render (handles scrollback view) }
|
||||
|
|
@ -2251,7 +2253,8 @@ begin
|
|||
push di
|
||||
push bx
|
||||
push es
|
||||
les di, FGlyphBuf
|
||||
mov es, GlyphSeg
|
||||
mov di, GlyphBase
|
||||
mov al, BGIdx
|
||||
mov ah, al { AX = BG:BG }
|
||||
mov dl, FGIdx
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue