Re: A86: Port info


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

Re: A86: Port info



At 10:29 PM 10/8/97 -0400, you wrote:
>Hello,
>	I need some help. Could someone explain how to use the ports in asm?
>More specificly what is the port address and what would I put in for
>xxxx to make both lines active and both lines inactive. Do i need to
>load this information to a register first? 
>ld A, xxxx
>ld C, port address
>out (C), A
>
>Or could I just use
>Out (port address), xxxx
>
>Any help would be appreciated.
>	-Michael
>P.S. A radio link would be really cool :)
>
>

the link port is port 7, so usually just two lines is the maximum, like so...

	ld a,$C0
	out (7),a

However, much work has already been done on this, in a few files for the 85.

I'll include a text file that's helpful, I don't want to begin to explain it
                        /-----------------\
                        | TI-85 LINK info |
                        |      Port 7     |
                        \-----------------/
                                by
                         Branislav Bozgai
                        bozgai@svf.stuba.sk
                               1995
Connector:
----------        _____
Jack 2.5mm stereo  | | - GND (Ground)
                   |_|
                   |_| - W (White wire)
                   |_| - R (Red wire)


Electrical performance:
-----------------------
All data are transmitted in binary form - logical '1' or '0'
	1 = 5V (4.9V)
	0 = 0V
but TI-85 uses 'negative logic' that means: 0 (0V) = active signal
                                            1 (5V) = not active
So when you turn your calculator ON you can measure between W and GND 5V
(also between R and GND 5V) that means everything is in quiet state.


Programming:
------------
Sending:
If you want to make some wire active: OUT(7),$E8 ; W=0, R=1	   1
                                      OUT(7),$D4 ; W=1, R=0	   2
                                      OUT(7),$FC ; W=0, R=0	   0
To deactivate signals:                OUT(7),$C0 ; W=1, R=1	   3

In assembly (e.g. if I want to make W active):  LD   A,$E8
                                                OUT  (7),A

You can use other numbers to out (but may cause abnormal operation,
I think that I can explain how it works) but TI's system is using only
those above.

Note: Don't forget to out $C0 at the end of transmittion otherwise
      both sending and receiving calculators slow down.
      TI is using $FC to signalise an error.

Reading:  IN   A,(7)
          AND  3                        ; upper bits are not important
          CP   3
          JR   Z, Nothig_is_active      ; W=1, R=1
          CP   2
          JR   Z, R_is_active           ; W=1, R=0
          CP   1
          JR   Z, W_is_active           ; W=0, R=1
          CP   0
          JR   Z, W_and_R_are_active    ; W=0, R=0





$C0 = 192 = %11000000


$D4 = 212 = %11010100


$E8 = 232 = %11101000


$FC = 252 = %11111100









All routines related to link port are in ROM page 5.
In TALK I'm using ROM_send_byte and ROM_read_byte routines.
ROM_send_byte is at address:    $643B = LD  C,A
                          to    $647C = RET
Input:    A - byte to send
Destroys: DE, BC, HL

ROM_read_byte is at address:    $6559 = LD  B,$08
                          to    $65CB = JR  $6603
Output:   A - received byte
Destroys: DE, BC, HL

But I'm mot calling this routines directly because they both call
function $0A87 (which is error handler I think) which cause crash.
Can somebody help with that?
I've modified them slightly replaced JP to JR and JP $0A87 to RET.

*********************************************************************
There were questions on calc-ti about where can people get from
Dan Eble's ZShell and other asm progs.
So I'm running anonymous FTP server at address:
                       ftp.svf.stuba.sk
There is directory ti and there you'll find everything you want.
Feel free to upload anything you want into ti/incoming.
I'll move it into readable area within a week.
NOTE:If you can't get connection, the server may be down so please
     try later (we are trying to keep it in work non-stop but we have
     some problems)

Any comments or questions to this file mail to: bozgai@svf.stuba.sk
or copy to /dev/null :)



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 Alan Bailey            mailto:bailela@charlie.cns.iit.edu
 IRC:Abalone              Web:http://www.iit.edu/~bailela/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 

Follow-Ups: References: