Re: control of 83 link port


[Prev][Next][Index][Thread]

Re: control of 83 link port



This is the routine I was trying to use.  The LCD turns off and the calc
hangs when I do this.  Anybody know why or how to fix it?
---
Andy Johnson

On Fri, 7 Nov 1997 17:58:22 -0700 Grant Stockly <gussie@ALASKA.NET>
writes:
>This has info on setting data lines high.  Hope it helps!
>Grant Stockly
>gussie@alaska.net
>
>        TI83 LINK PORT
>        --------------
>
>        This brief look at the TI-83 link port shows how to access
>        the port and use it for basic sending and receiving of bytes
>of
>        data.
>
>        The TI-83 link port uses 2 data lines, D0 & D1, for
>communicating.
>        These data lines are accessed through the B-port of the Z80.
>        The symbol BPORT is equated to the correct port value in
>        the include file "TI83ASM.INC".
>
>        Note :  THE DATA LINES ARE READ IN AS HIGH (1) WHEN NO
>                ACTIVITY IS PRESENT ON THE DATA LINES.
>
>                THE LOWER 2 BITS OF THE B-PORT, BITS 0 AND 1, ARE FOR
>                WRITING TO THE DATA LINES.
>
>                BITS 2 AND 3 OF THE B-PORT ARE FOR READING IN THE
>STATUS
>                OF THE DATA LINES.
>
>
>        Reading the data lines :
>
>
>                IN      A,(BPORT)       ; READ THE VALUE OF THE B-PORT
>                CP      0Ch             ; ANY DATA LINE GO LOW ?
>                JR      Z,NO_ACTIVITY   ; IF READ 0Ch THEN NO LINES
>LOW
>
>                CP      8               ; IS D0 PULLED LOW ?
>                JR      Z,D0_LOW        ; YES, BIT 2 = 0 SO D0 IS LOW
>NOW
>               ;
>               ; ELSE BIT 3 WAS LOW (ACC=4), SO D1 IS LOW
>               ;
>
>
>        Writing to the data lines :
>
>                There are symbols equated to the correct values
>                to "OUT" to the B-PORT for controlling the
>                status of the data lines.
>
>                LD      A,D0LD1L
>                OUT     (BPORT),A    ; is used for setting D0 low, D1
>low
>
>                LD      A,D0LD1H
>                OUT     (BPORT),A    ; is used for setting D0 low, D1
>high
>
>                LD      A,D0HD1L
>                OUT     (BPORT),A    ; is used for setting D0 high, D1
>low
>
>                LD      A,D0HD1H
>                OUT     (BPORT),A    ; is used for setting D0 high, D1
>high
>
>
>        A few of the TI-83 system routines concerning the link port
>        are availble for ASM use. These routines are accessed by
>making
>        a call to the routine _IO_EXEC, with a value stored in the
>        byte at ASM_IND_CALL (80C8h).
>
>        _IO_EXEC = 51EFh
>
>        D0LD1L      EQU              0C3h
>        D0LD1H      EQU              0C1h
>        D0HD1L      EQU              0C2h
>        D0HD1H      EQU              0C0h
>        BPORT       EQU              0
>
>
>
>        ASM_IND_VALUE
>        -------------
>
>            19d         REC1STBYTE : This routine goes into idle
>                                     or low power mode and waits for
>                                     the data lines to change. Then
>                                     reads a byte of data using the
>TI-83
>                                     bit protocol. This only reads the
>1st
>                                     byte of data. The byte is
>returned
>                                     in the accumlator.
>
>            20d         REC1STBYTENC : The same as REC1STBYTE except
>                                       that the cursor does not flash.
>                                       The byte is returned in the
>                                       accumulator.
>
>            22d         RECABYTE     : This routine looks at the data
>                                       lines for activity for about
>                                       2 seconds and reads in a single
>                                       byte of data. If no data is
>found
>                                       an error will be generated.
>                                       The byte is returned in the
>                                       accumulator.
>
>            11d         SENDABYTE    : This routine sends a byte of
>                                       data across the data lines
>                                       using the TI-83 bit protocol.
>If
>                                       there is no response within
>about 2
>                                       seconds an error is generated.
>                                       The data to be sent needs to be
>in
>                                       the accumulator.
>
>
>>I need to set the output of the link port on the 83 to both lines
>high.
>>I've tried using the routines for the 82, but this just causes the
>LCD to
>>go blank and the calc to freeze.  Reading the lines works fine
>however.
>>Anybody able to help me with this?
>>---
>>Andy Johnson
>


References: