<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Fri, 02 Mar 1984 07:03:00-EST
From   : Jerry E. Pournelle <POURNE@mit-mc>
Subject: Kaypro BIOS list bug

Tyler Sperry, editor of ProFiles, was over this afternoon
delivering the 1984 model Kaypro IV.  Have you sent your
information to Profiles?  If not, please do, and you can mention
my name if you want to be certain of getting attention although
in fact they will read it about the same without.  Good
information; they'd probably change th ROM if they knew.

Jerry Pournelle

Tyler Sperry
ProFiles
533 Stevens Ave
Solana Beach CA 92075 619-481-4353

    Date: Thu, 19 Jan 84 9:45:29 EST
    From: Keith Petersen <w8sdz at brl>
    To:   Info-Cpm at brl-vgr
    Re:   Kaypro BIOS list bug

    The following is forwarded from CompuServe, courtesy Irv Hoff.
    ---



     #: 74332      Sec. 1 - General
    Sb: #Kaypro Mystery Solved
        18-Jan-84  01:54:26
    Fm: JACK CRENSHAW 72325,1327
    To: All

    Some time ago I reported a problem with the MDM711/Kaypro/Epson combina-
    tion, in that the ^P print buffer dropped characters.  Periodically, the
    subject has come up again, with Irv Hoff and Pete Holsberg trying hardest

    to help me solve the problem.  I finally got around to looking at the
    Kaypro BIOS, and as Pete suspected, there's a bug. The offending piece
    of code is in the ROM, and goes:

         LISTST:  IN     1CH           ;GET SYSTEM PORT
                  BIT    3,A           ;TEST PRINTER READY BIT
                  RZ           ;THIS IS THE BUG
                  MVI    A, 0FFH       ;ELSE RETURN FF
                  RET

    Note that if the bit 3 is zero, the routine returns garbage in A. The
    garbage is whatever is in port 1CH, which includes output as well as
    input bits.  However, the zero FLAG is set properly, which is why BIOS
    function 4 (LIST) works OK.  Ironically, if the programmer had used the
    usual ANI insruction instead of the Z-80 fancy bit test, he would have
    saved two bytes as well as get the right response.  The bug is in the
    ROM, so can't be easily fixed. The patch is easy, though -  Change the
    jump vector in the BIOS to:   JMP PATCH   and add:

         PATCH:  CALL    0FB65H        ;call old bios entry
                 RNZ           ;OK unless its zero
                 XRA     A             ;else clear A
                 RET           ;that's all, folks

                                       - Jack Crenshaw
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>