Jump to content
IGNORED

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


Recommended Posts

  • 4 weeks later...

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

Link to comment
Share on other sites

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/ElectricLab/TIPI-code/blob/master/RockPaperScissors

 

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
  • Like 2
Link to comment
Share on other sites

 

 

 

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/ElectricLab/TIPI-code/blob/master/RockPaperScissors

 

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

Link to comment
Share on other sites

 

 

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!

 

 

  • Like 1
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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@

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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... tipi_top.jed

 

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@

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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@

  • Like 1
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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/jedimatt42/tipi/tree/master/examples/mouse

 

1 - It is easy to add new message types : start here: https://github.com/jedimatt42/tipi/blob/master/services/RawExtensions.py

 

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

 

-M@

Link to comment
Share on other sites

  • 2 weeks later...

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:

DSKTEST.txt

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.

post-62965-0-23960600-1550573387.jpg

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

post-62965-0-06040800-1550573430.jpg

post-62965-0-92333300-1550573461.jpg

 

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)

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...