[comp.protocols.tcp-ip] PC/IP problem

timk@babbage (Tim Krauskopf, NCSA) (05/05/87)

---------------------------------------------


From Tim Krauskopf, NCSA:

In response to the screen blank out problem with PC/IP.

I felt that I should comment on this because I am probably the only person
to ever patch the PC/IP program to take care of this problem without
recompiling -- it is possible to patch the .COM file.

The problem is that the PC/IP scrolling routines use the little-known
hardware scrolling feature of the first two video adapters available from
IBM.  If you poke the correct registers, you can change the memory byte
address which the adapter uses for the upper left corner of the screen.
At the end of the memory buffer, 4K for the monochrome, 16K for the color,
the video controller will "wrap-around" to the beginning of the RAM buffer
when it displays the screen.

The problems occur when using "Print-screen" and the newer video adapters.
Print-screen starts at the beginning of the buffer, no matter where the
video controller thinks the beginning of the screen is.  PC/IP added the
F10/F10 command to copy the contents of the video screen back to the
beginning of the buffer, for use with print-screen.  With the EGA and
other video adapters, there is more than 16K of memory, and the hardware
wrap-around feature does not exist, though the hardware scroll feature
still does.  When PC/IP reaches the end of the 16K of memory that it
thinks it is using, it wraps back to zero, but the EGA keeps going -- it
has 32K or more to use.  The result, a blank screen until F10/F10 restores
it.  The fix: patch out their scroll routines with the BIOS ones.

Sorry to bother those of you who don't care, but this fix is quick,
so . . . to fix this problem in the latest release (Mar 86):

Use debug on telnet.com, at offset AD15:
-a ad15
cs:AD15  MOV AX,0601
         XOR CX,CX
         MOV DX,174F
         MOV BH,07
         INT 10
         XOR BX,BX
         JMP AD3A

-a AD75
cs:AD75  MOV AX,0701
         XOR CX,CX
         MOV DX,174F
         MOV BH,07
         INT 10
         XOR BX,BX
         JMP AD9D
-w
-q

It worked for me.

Tim Krauskopf
National Center for Supercomputing Applications (NCSA)
University of Illinois

timk%newton@uxc.cso.uiuc.edu  (ARPA)
14013@ncsavmsa                (BITNET)