[comp.os.msdos.programmer] Detecting direct screen writes on an 8088 for use in remote access

dsims@uceng.UC.EDU (david l sims) (12/18/90)

Programs like Carbon Copy & PC-Anywhere let the remote user run programs
that use direct screen writes. How do CC & PCA do it on an 8088? (I've
heard that the 80386 can set "hardware breakpoints", but I digress.)
All I can think of is that 18.2 times per second (or some other time
period) they check to see if the screen RAM has changed. If so, then they
would refresh the remote user's screen. Although I haven't tried this
tactic, it seems to me that all that checking would slow down the system too
much (especially for direct screen writes in graphics mode!).

Or perhaps they monitor the DS register to see if it is ever set to the
screen RAM segment. This tactic might not always work; it would
be easy to "not notice" a quick direct screen write.

Any other ideas?

dmurdoch@watstat.waterloo.edu (Duncan Murdoch) (12/18/90)

In article <6982@uceng.UC.EDU> dsims@uceng.UC.EDU (david l sims) writes:
>Programs like Carbon Copy & PC-Anywhere let the remote user run programs
>that use direct screen writes. How do CC & PCA do it on an 8088? (I've
>heard that the 80386 can set "hardware breakpoints", but I digress.)

I don't know how those ones do it, but Desqview does the same thing when
you do direct writes to its video buffer, and has a patent (!) on its
algorithm.  I don't know how DV does it either, but from the look of it,
it checks very frequently near the cursor, less frequently away from it.

Another idea is to use error-correcting code methods:  sophisticated variants 
on keeping row and column checksums might make it fast to detect changes
without comparing every byte. 

Duncan Murdoch