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: