Anyway, I'm off to install a proper Linux distro to backup the rest...
![Smile :)](./images/smilies/grayscale_smile.gif)
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Edit: Damn, crosspost again
![Smile :)](./images/smilies/grayscale_smile.gif)
*) bytes, data blocks, large data blocks, strings, all swap routines
Moderator: MaxCoderz Staff
Timendus wrote:Ti-82 support
Read the question first, try to be the smartass with the answer second, Kermkerm_martian wrote:http://wikiti.denglend.net/index.php?ti ... s:Ports:00
It would seem that reading is exactely as I expected it to be. Writing is also as I had gathered from that source; each line gets two bits to set.link port
Write:
# Write $C0: white wire positive, red wire positive
# Write $D4: white wire positive, red wire negative
# Write $E8: white wire negative, red wire positive
# Write $FC: white wire negative, red wire negative
Read:
# bit 1 set: White wire is positive, but circuit is open
# bit 1 res: White wire negative, or positive with electrons flowing
# bit 0 set: Red wire is positibe, but circuit is open
# bit 0 res: Red wire negative, or positive with electrons flowing
Code: Select all
$C0 = 11000000
$D4 = 11010100
$E8 = 11101000
$FC = 11111100
Code: Select all
-----------------------------------------------------------------------------
Port 0 : Link port R/W
-----------------------------------------------------------------------------
This port is used to communicate with other calculators, computers and CBL
equipment. The port is used in the same ways as the link port on the TI85.
The port consist of two parts, the Port Configuration Register (PCR) and the
Port Data Register (PDR). PCR controls whether the PDR is used as input or as
an output (PCRx controls PDRx). PDR is used to send and receive data.
Bit Function
--------------------------------------------------------------------
7 PCR3
6 PCR2
5 PCR1
4 PCR0
3 PDR3
2 PDR2
1 PDR1
0 PDR0
PDR bit 0 and 2 is used to control/read the voltage on the tip, while bit 1
and 3 is used for the middle. The base is always used for ground.
Each of the the data lines have the same circuit attached (shown below).
Normally PCR is set to C0 by the ROM, which sets Vdd
PDR0/1 as inputs and PDR2/3 as outputs. Doing this ---
means that the voltage at the tip and the middel |
can be read as PDR1/0. PDR2/3 is then used to control < 10 KOhms
the output (a one gives an output of app. 0V). >
|
When two calculators are connected together the V Diode
output will be high if neither of them has their |
transistor on, otherwise it will be low (wired or) out--O---------- PDR0/1
|
< 470 Ohms
>
|
NPN \__/\/\____ PDR2/3
/ 33 KOhms
|
__|___
Gnd
Write:
------
When writing to the link port the upper nibble sets the PCR, while the lower
sets the PDR. The state of the tip and the middle can be set using the
following values.
Value Function
----------------------------------------------------
C0 White wire is positive. Red wire is positive.
D4 White wire is positive. Red wire is grounded.
E8 White wire is grounded. Red wire is positive.
FC Whits wire is grounded. Red wire is grounded.
The above values are the values used by the ROM, except for FC which is not used
since the system never sets both wires to ground. Other values can be used, but
these gives the best results.
Read:
-----
When the a byte is read from the link port, the upper nibble contains the last
value written to the PCR. Assuming that these are set to 1100b (e.g. one of the
above mentioned values where written to PCR), the contence of the PDR can be
interpeted as follows.
Bit State Function
------------------------------------------------------------------------
2+3 Last value written
1 1 White wire is positive.
0 White wire is grounded.
0 1 Red wire is positive.
0 Red wire is grounded.
Code: Select all
Brass Z80 Assembler 1.0.4.7 - Ben Ryves 2005-2006
-------------------------------------------------
Assembling...
Pass 1 complete. (718ms).
BELL: Selected hardware: Ti-82
BELL: Library included, size is 601 bytes
Pass 2 complete. (125ms).
Writing output file...
Errors: 0, Warnings: 0.
Done!
Fixed. Turned out my error flag got overwritten on sending a byte, so the calculator that received first, sent second wouldn't see the error, try to send data, and time out.Timendus wrote:New found bug
- When two programs with different program IDs try to connect one calculator will return the right "incompatible program type" error and the other just times out while they should both give the same errorLooking at the transfer in PTI's debugger reveals that the calculator that sends it's ID second tries to send a one bit after the ID swap for God knows which reason...