Hi Tom,

>
> > The only reliable way is to trap int10, write a character using int21 and
> > see if it gets trapped.
>
> I've seen (N)ANSI.SYS implementations doing direct screen IO.

You're quite right about that so this is not good.

> however: talking about CLS, why not
>
>   1'st) write ESC J  (or similar)
>   2'nd) clear the screen, using BIOS.
>
> ALL screens will be blank then - as intended.

No, if the output goes to COM1 and not CON then the screen should be
cleared on COM1 and not CON.

Keep it simple, checking two bits ought to be enough:
ax=4400, bx=1, int21
if (ax & 0x80) /* device */
  if (ax & 0x10) /* fastcon */
    use bios (int10)
  else
    use escape sequences
else /* file */
  do nothing

MS COMMAND.COM actually does:

INT2F at 8d5e:3397: AX=1a00, BX=3391, CX=0000, DX=867e, DS=8d5e, ES=8d5e
INT21 (0) at 8d5e:33aa: AX=440c, BX=0001, CX=037f, DX=db6f, DS=8d5e,
INT21 (0) at 8d5e:33c0: AX=4400, BX=0001, CX=037f, DX=db6f, DS=8d5e,
INT10
(see also my previous email what happens if you clear the fastcon bit)

But NANSI.SYS doesn't support int2f/AX=1a00 or the device driver ioctl
corresponding to 440C, so the first two aren't that important -- on a
local display we can use int10 anyway.

Bart


-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to