Jump to content

Photo

TIPI - TI-99/4A to Raspberry PI interface development


808 replies to this topic

#726 tschak909 OFFLINE  

tschak909

    River Patroller

  • 3,248 posts
  • Location:USA

Posted Sun Dec 30, 2018 1:29 AM

Has anyone got a TIPI that I can borrow or buy so that I can finish PLATOTerm for the TI99? 

 

-Thom



#727 HOME AUTOMATION OFFLINE  

HOME AUTOMATION

    Moonsweeper

  • 435 posts
  • Location:"trapped in interspace"

Posted Sun Dec 30, 2018 4:41 AM

I have considered this carefully... conclusion:

I think my system is all that is keeping me going sometimes.

 

        Better luck!



#728 arcadeshopper OFFLINE  

arcadeshopper

    River Patroller

  • 4,410 posts
  • Location:Portland, Oregon USA

Posted Sun Dec 30, 2018 11:09 AM

Has anyone got a TIPI that I can borrow or buy so that I can finish PLATOTerm for the TI99? 
 
-Thom

You can buy one today at arcadeshopper.com

Sent from my LG-H872 using Tapatalk

#729 BeeryMiller OFFLINE  

BeeryMiller

    Dragonstomper

  • 958 posts
  • Location:Campbellsburg, KY

Posted Fri Jan 25, 2019 3:56 PM

I have a question regarding the TIPI.

 

Let's propose I want to run a TIPI based versus serial based BBS on a TI-99/4A.

 

I have a web domain name that points to a port and port forwards to the Raspberry PI.

 

How would one, if it can be done, recognize someone is "knocking" on the port to initiate the logon process?

 

Secondly, if someone else tries the same port, does the port forwarding increment by one?  I have not done that aspect of the research yet on web sockets to know that aspect, so I am asking for those that may know before I dig too deep.

 

In another scenario, I think one could have a web based "message board" one logs into from their local computer maybe running something as simple as an extended basic program.  Instead of storing messages on a local drive, one could store them on a website directory.  I also wonder then if one could upload and/or download files from this web repository.

 

At this point, trying to understand some limitations, if any, the existing TIPI DSR may have that would either allow or hinder such opportunities.

 

Beery



#730 ElectricLab OFFLINE  

ElectricLab

    Moonsweeper

  • 261 posts
  • Location:Hillsboro, Oregon

Posted Fri Jan 25, 2019 5:00 PM

I have a question regarding the TIPI.

 

Let's propose I want to run a TIPI based versus serial based BBS on a TI-99/4A.

 

I have a web domain name that points to a port and port forwards to the Raspberry PI.

 

How would one, if it can be done, recognize someone is "knocking" on the port to initiate the logon process?

 

Secondly, if someone else tries the same port, does the port forwarding increment by one?  I have not done that aspect of the research yet on web sockets to know that aspect, so I am asking for those that may know before I dig too deep.

 

In another scenario, I think one could have a web based "message board" one logs into from their local computer maybe running something as simple as an extended basic program.  Instead of storing messages on a local drive, one could store them on a website directory.  I also wonder then if one could upload and/or download files from this web repository.

 

At this point, trying to understand some limitations, if any, the existing TIPI DSR may have that would either allow or hinder such opportunities.

 

Beery

 

 

 

It sounds like you want to run a web server on the Pi, which you certainly could do. I run Apache and Flask on a few of mine (non-TIPI projects), and they work great. If you port-forward  port 80 to your pi, and you run a server capable of handling multiple incoming requests, there'd be no incrementing by one. Each new request would be handled separately on its own socket (IP/port combo) and they'd all use the same port from the server's perspective.

 

If you're not talking about web but just want to run a local service and accept requests from the Internet, there are a variety of ways to do this from using old-school inetd to launch a program to serve the request on a per-request basis, or run a program as a daemon that listens to whatever port you want. I've done all of the above on a Pi for various projects and they work remarkably well, even on the original Pis. You could then handle N number of users, implement a login method, and the sky would be the proverbial limit.

 

I did some coding for communication and exchanging messages between code running on the TI and other things, and I created the Tipi NetVar extension that is currently implemented on the Tipi and is part of M@'s repo on github, so you already have it. This is what CHATTI uses to make calls to a service running on myti99.com, present its login session token, and can store/read messages. The CHESS game and the high-score sharing system which SNEK demonstrates also make use of this extension. I also wrote a RockPaperScissors "game" in BASIC which can make use of pseudo-anonymous messaging without the need for tokens or a user profile.

https://github.com/E...ckPaperScissors

 

I think there's some potential here with this sort of a setup where messages are passed through a central server (myti99.com) which removes the need to port-forward or run servers on your Pi which are open to the 'Net, which would be a bit scary for me :)

 

I can share source to all these programs (TIPI-related and otherwise) if desired. CHATTI, CHESS, and SNEK are all implemented in C.


Edited by ElectricLab, Fri Jan 25, 2019 5:01 PM.


#731 ElectricLab OFFLINE  

ElectricLab

    Moonsweeper

  • 261 posts
  • Location:Hillsboro, Oregon

Posted Fri Jan 25, 2019 5:03 PM

I should add that I'd share all the myti99 backend stuff too if you're interested. 



#732 arcadeshopper OFFLINE  

arcadeshopper

    River Patroller

  • 4,410 posts
  • Location:Portland, Oregon USA

Posted Fri Jan 25, 2019 5:13 PM

 

 

 

It sounds like you want to run a web server on the Pi, which you certainly could do. I run Apache and Flask on a few of mine (non-TIPI projects), and they work great. If you port-forward  port 80 to your pi, and you run a server capable of handling multiple incoming requests, there'd be no incrementing by one. Each new request would be handled separately on its own socket (IP/port combo) and they'd all use the same port from the server's perspective.

 

If you're not talking about web but just want to run a local service and accept requests from the Internet, there are a variety of ways to do this from using old-school inetd to launch a program to serve the request on a per-request basis, or run a program as a daemon that listens to whatever port you want. I've done all of the above on a Pi for various projects and they work remarkably well, even on the original Pis. You could then handle N number of users, implement a login method, and the sky would be the proverbial limit.

 

I did some coding for communication and exchanging messages between code running on the TI and other things, and I created the Tipi NetVar extension that is currently implemented on the Tipi and is part of M@'s repo on github, so you already have it. This is what CHATTI uses to make calls to a service running on myti99.com, present its login session token, and can store/read messages. The CHESS game and the high-score sharing system which SNEK demonstrates also make use of this extension. I also wrote a RockPaperScissors "game" in BASIC which can make use of pseudo-anonymous messaging without the need for tokens or a user profile.

https://github.com/E...ckPaperScissors

 

I think there's some potential here with this sort of a setup where messages are passed through a central server (myti99.com) which removes the need to port-forward or run servers on your Pi which are open to the 'Net, which would be a bit scary for me icon_smile.gif

 

I can share source to all these programs (TIPI-related and otherwise) if desired. CHATTI, CHESS, and SNEK are all implemented in C.

 

 

I would very much like to see how I can store data on the backend..  

 

Greg



#733 ElectricLab OFFLINE  

ElectricLab

    Moonsweeper

  • 261 posts
  • Location:Hillsboro, Oregon

Posted Fri Jan 25, 2019 5:51 PM

 

 

I would very much like to see how I can store data on the backend..  

 

Greg

 

You have only to ask :) Let's get together sometime soon and I can walk through it. I know about one of your projects and we'd probably need to make some changes/enhancements to accommodate it. Let's do it!

 



#734 BeeryMiller OFFLINE  

BeeryMiller

    Dragonstomper

  • 958 posts
  • Location:Campbellsburg, KY

Posted Sat Jan 26, 2019 10:11 AM

Not looking at setting up a web server, or at least hope not.  What I was hoping to do was to be able to have one of two possibilities. 

 

1.  Have users "dial" a URL and connect to the TI.  I just did not know how the TI would pick that connection up or if it was even possible.

 

2.  Likely route, have a program running on the TI.  It "dials out" to a URL, in this case it sounds like myti99.com may be a suitable repository (???).  User signs in, then there is a file with user name/pwd to verify a legitimate user.  The user can read/write posts and leave them.  Similar to what a BBS does in something like "local" mode, except the message and file databases are remote and not local.

 

Is number two plausible?

 

If so, number two would allow a menu item on a users TI startup screen where they can instantly check mail, messages, etc.  Initially, it could be in extended basic, or subsequent revisions, written in C or assembly. 

 

Beery



#735 jedimatt42 OFFLINE  

jedimatt42

    River Patroller

  • Topic Starter
  • 2,026 posts
  • Location:Beaverton, OR

Posted Thu Jan 31, 2019 12:27 PM

I don't think you want a web-socket. I think you want a TCP server socket.

A server socket equivalent to the TCP TIPI extension.

It could be done by merely adding another extension to the TIPI python service and defining a protocol for accepting a connection.

It is not something the current outgoing socket extension to TIPI supports. It could be enhanced, or used as a starting place to keep it isolated.


-M@

#736 BeeryMiller OFFLINE  

BeeryMiller

    Dragonstomper

  • 958 posts
  • Location:Campbellsburg, KY

Posted Thu Jan 31, 2019 2:39 PM

I don't think you want a web-socket. I think you want a TCP server socket.

A server socket equivalent to the TCP TIPI extension.

It could be done by merely adding another extension to the TIPI python service and defining a protocol for accepting a connection.

It is not something the current outgoing socket extension to TIPI supports. It could be enhanced, or used as a starting place to keep it isolated.


-M@

 

Thanks for the feedback Matt.

 

Beery



#737 lolof OFFLINE  

lolof

    Space Invader

  • 15 posts

Posted Sat Feb 2, 2019 9:33 AM

Is there something I can try to see if the Tipi is working, if I did no mistake by assembling the board while it is still not connected to the raspberry ?

I am just missing the right angle socket to connect cables to the PI and would like to see if it's possible to see a sign of life without the PI. For exemple, see the version of eprom or something else...

 

The 32Ko sidecard is set to EXT and is powered by its own PSU. The Tipi is just plugged on the sidecar.

 

Thank you.


Edited by lolof, Sat Feb 2, 2019 9:44 AM.


#738 HOME AUTOMATION OFFLINE  

HOME AUTOMATION

    Moonsweeper

  • 435 posts
  • Location:"trapped in interspace"

Posted Sat Feb 2, 2019 9:54 AM

I have powered up my TIPI without the PI powered up. TI BASIC's CALL TIPI works.

I can't say that I have ever powered my TIPI up without the PI physically connected though.

If you built it yourself from discrete parts... I'm sure someone here would want to help double check your work... got a pic? ;-)



#739 lolof OFFLINE  

lolof

    Space Invader

  • 15 posts

Posted Sat Feb 2, 2019 10:19 AM

Thank you. I just tested "CALL TIPI" and the TI reply with "BAD NAME".

 

I also cannot hear the three beeps at the TI start.

 

I put the last TIPI.BIN on a AM27C256-150 Eprom.

I compiled the .jed for the xilinx from the source code with ISE.

No jumper set on crubase configuration pins.

 

Maybe I messed up by the compilation.....  Could someone provide me a well known working .jed ?

 

I could post a picture from the board, but it won't help at this point because it's not well cleaned. I should put it in the ultrasonic bath but can't do this before Monday....

I tested the CPLD for short and there is no bridge.

 

Thanks


Edited by lolof, Sat Feb 2, 2019 12:06 PM.


#740 jedimatt42 OFFLINE  

jedimatt42

    River Patroller

  • Topic Starter
  • 2,026 posts
  • Location:Beaverton, OR

Posted Sat Feb 2, 2019 4:27 PM

Thank you. I just tested "CALL TIPI" and the TI reply with "BAD NAME".

 

I also cannot hear the three beeps at the TI start.

 

I put the last TIPI.BIN on a AM27C256-150 Eprom.

I compiled the .jed for the xilinx from the source code with ISE.

No jumper set on crubase configuration pins.

 

Maybe I messed up by the compilation.....  Could someone provide me a well known working .jed ?

 

I could post a picture from the board, but it won't help at this point because it's not well cleaned. I should put it in the ultrasonic bath but can't do this before Monday....

I tested the CPLD for short and there is no bridge.

 

Thanks

 

 

Here is the .jed file I have used...   Attached File  tipi_top.jed   120.97KB   1 downloads

 

The latest eprom removed the 3 beeps.. but a CALL TIPI resulting in BAD NAME indicates the ROM is not visible to the TI. 

 

Usually when I built boards, this was the result of a short on the 74'245, or the CPLD --- pins on the right hand side connect to the data bus in parallel with the EPROM. A bridge there will cause bad reads from the EPROM and the TI won't see it as a DSR ROM. 

 

I usually test for this by using 'easy bug' from minimemory cartridge... set CRU 1000 ( with no jumper on the CRU base block )   

 

command: C1000

should show: 0

enter: 1

Light on TIPI board should turn on.

 

command: M4000

should show: AA

enter for next byte... compare them with the hexdump -C tipidsr.bin  

 

-M@



#741 lolof OFFLINE  

lolof

    Space Invader

  • 15 posts

Posted Sat Feb 2, 2019 4:38 PM

Thank you very much for the reply. I'll check all again.

 

Testing more before your reply, I discovered my 32K did not pass the ram test when the tipi is plugged on it.

Also, if the 32k+tipi are plugged on the speech synt, then basic freeze when CALL TIPI instead "bad name"... 

 

EDIT : the .jed are the same...


Edited by lolof, Sat Feb 2, 2019 4:47 PM.


#742 jedimatt42 OFFLINE  

jedimatt42

    River Patroller

  • Topic Starter
  • 2,026 posts
  • Location:Beaverton, OR

Posted Sat Feb 2, 2019 4:49 PM

Thank you very much for the reply. I'll check all again.

 

Testing more before your reply, I discovered my 32K did not pass the ram test when the tipi is plugged on it.

Also, if the 32k+tipi are plugged on the speech synt, then basic freeze when CALL TIPI instead "bad name"... 

 

 

that sounds more like a problem with the addressing lines then... since it is interferring with the databus when the expansion memory is being used... mostly the bottom side of the CPLD... 

 

The CPLD being the highest density and scariest part of this, can also make it easy to overlook the simple stuff like the expansion pins. 

 

-M@



#743 lolof OFFLINE  

lolof

    Space Invader

  • 15 posts

Posted Mon Feb 4, 2019 4:34 PM

Thanks to the help from jedimatt42, my TIPI is working now. I have to learn how to use it and enjoy....  ;-)

 

Thank you very much.


Edited by lolof, Mon Feb 4, 2019 4:35 PM.


#744 tschak909 OFFLINE  

tschak909

    River Patroller

  • 3,248 posts
  • Location:USA

Posted Wed Feb 6, 2019 12:38 PM

Have been using the TIPI for a few days now, and am overall, very impressed. This is arguably the best peripheral one can invest in, for a 99, full stop.

 

two questions, both dev related:

 

(1) what does it take to make a new message type? I want to make a debugging message type that will dump to a special log file, for PLATOTerm development.

(2) is it possible to request mouse data from C? I'm having difficulty reading the 9900 assembler for the TI Artist, and I want to add touch support to PLATOTerm, at least for TIPI.

 

-Thom



#745 jedimatt42 OFFLINE  

jedimatt42

    River Patroller

  • Topic Starter
  • 2,026 posts
  • Location:Beaverton, OR

Posted Wed Feb 6, 2019 1:54 PM

Have been using the TIPI for a few days now, and am overall, very impressed. This is arguably the best peripheral one can invest in, for a 99, full stop.

 

two questions, both dev related:

 

(1) what does it take to make a new message type? I want to make a debugging message type that will dump to a special log file, for PLATOTerm development.

(2) is it possible to request mouse data from C? I'm having difficulty reading the 9900 assembler for the TI Artist, and I want to add touch support to PLATOTerm, at least for TIPI.

 

-Thom

 

 

2 - Yes, I have an example of using the mouse from C -  https://github.com/j.../examples/mouse

 

1 - It is easy to add new message types :  start here: https://github.com/j...awExtensions.py

 

That'll point you at 3 custom message type handlers you can use as examples... 

 

-M@



#746 wolhess OFFLINE  

wolhess

    Star Raider

  • 84 posts
  • Location:Germany

Posted Tue Feb 19, 2019 4:58 AM

TIPIPEB DSK-FILE ACCESS blocks the TI-system                                                      

 

Hi,

today I got an error during testing file access in Basic (and XBasic, RXB) on my TIPIPEB system.

 

 

If this is a known problem please ignore the message.  If I did something wrong any hint is welcome.

 

I tried this program:

Attached File  DSKTEST.txt   412bytes   2 downloads

100 CALL CLEAR

110 PRINT "DISK ACCESS TEST"

120 PRINT

130 INPUT "DEVICE: ":DEVICE$

140 PRINT "OPEN 140FILE FROM "&DEVICE$

150 OPEN #1:DEVICE$&"TESTFILE",OUTPUT

160 PRINT "STORE 'TEST123' TO TESTFILE"

170 PRINT #1:"TEST123"

180 CLOSE #1

190 PRINT

200 PRINT "READ TESTFILE"

210 PRINT

220 OPEN #1:DEVICE$&"TESTFILE",INPUT

230 INPUT #1:A$

240 CLOSE #1

250 PRINT A$

260 PRINT

270 PRINT "OK"

280 END

 

TIPI System with DSR Build: 2018-06-23
PI-Version: 1.0betav030

 

In my tipi-system 4ADOS is maped as DSK1.
DSK2. and DSK3. are physical drives in my PEB.
The Disk in Drive DSK2. has the name DATAN

 

For the devicename DSK1., DSK2. or DSK3 all is OK.

IF the devicename = DSK.4ADOS.  is OK.

Attached File  TEST-TI-DSK.4ADOS.JPG   107.47KB   0 downloads

If the devicename = DSK.DATAN. blocks the system!
In this case the red tipi LED is ON until I am resetting the system.

Attached File  TEST-TI-DSK.DATAN.JPG   96.74KB   0 downloads

Attached File  TEST-TIPEB-DSK.DATAN.JPG   94.03KB   0 downloads

 

If I tried the program in classic99 on my PC and all works fine.

In classic99 DSK1. is mapped to TIPI\4ADOS
DSK2. is mapped to .\DATAN\

I tried DSK1. and DSK2. in classic99 -> OK.

 

I tried DSK.4ADOS in classic99 -> OK.

 

I tried DSK.DATAN in classic99 -> OK.

 

 

Wolfgang Hess (wolhess)



#747 wolhess OFFLINE  

wolhess

    Star Raider

  • 84 posts
  • Location:Germany

Posted Tue Feb 19, 2019 11:29 AM

I have a second issue with file access on physical drives.

 

on the tipi device, I can use the EOF(1) function to detect the end of the file.

 

on the physical drive in the PEB the EOF function reports always '0' so

the program reads over the end of the file and I get an error.

 

If this is also a known issue pleas ignore the post.



#748 --- Ω --- OFFLINE  

--- Ω ---

    Hexacorerunner

  • 14,033 posts
  • Location:82.102.25.76

Posted Tue Feb 19, 2019 12:09 PM

When dealing with the TIPI and 4A/DOS I usually do not mess with the DSK convention, I find it easier to use the file paths like TIPI.DOS or TIPI.BASIC or TIPI.UTILITY etc. This way I not limited to a few options... but as many folders as I want.

#749 jedimatt42 OFFLINE  

jedimatt42

    River Patroller

  • Topic Starter
  • 2,026 posts
  • Location:Beaverton, OR

Posted Tue Feb 19, 2019 2:05 PM

Wolhess - those issues both sound like bugs, that I should fix.

I'll take a look at them this week.

-M@

#750 jrhodes OFFLINE  

jrhodes

    Moonsweeper

  • 330 posts

Posted Wed Feb 20, 2019 8:36 PM

Can you boot and run a Pi 3b from usb media, instead of a sd card?

I mean, install the raspbian os to a usb stick / small usb hard drive in place of using a sd card?






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users