[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]
{
> If you're not using the CRT unit, that should write through the ansi
> driver just fine. I don't know about the codes you used, but they
> won't be written directly to video memory. If you're using the CRT
> unit then he's right, it won't work without a slight modification.
>My whole point behind this was that you DON'T need CRT to
> clear the screen like this. You only need ANSI.SYS loaded.
you don't even need ANSI.SYS if you 'cheat' like borland did -=B-)
}
procedure clrscr; assembler;
Asm
MOV AX, 0600h {BIOS Scroll Up} { <<---- !!!!!! }
MOV BH, 07h {Mono Attribute}
XOR CX, CX {top left = 0,0}
MOV DX, 184fh {bottom right = 24,79}
INT 10h {BIOS interrupt} { do the clear }
MOV AH, 02h {BIOS Set Cursor Position} { now let's }
XOR DX, DX {DH = Row = 00, DL = Col = 00}
XOR BH, BH {Do it on Page 0} { move the cursor to }
INT 10h {BIOS Interrupt} { the top left corner }
End;
{ yeah, it's hardcoded for 25 lines and 80 columns }
uses
DOS;
procedure clrscr;
var
regs : registers;
Begin
regs.AX := $0600; {BIOS Scroll Up} { <<---- !!!!!! }
regs.BH := $07; {Mono Attribute}
regs.CX := $0000; {top left = 0,0}
regs.DX := $184F; {bottom right = 24,79}
INTR($10, regs); {BIOS interrupt} { do the clear }
regs.AH := $02; {BIOS Set Cursor Position} { now let's }
regs.DX := $0000; {DH = Row = 00, DL = Col = 00}
regs.BH := $0000; {Do it on Page 0} { move the cursor to }
INTR($10, regs); {BIOS Interrupt} { the top left corner } End;
end;
[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]