Jump to content
jedimatt42

TIPI Usage and Support

Recommended Posts

On 2/25/2020 at 5:09 AM, mizapf said:

 

It is indeed interesting to see that many people assume that "www." could be omitted. "www.domain.com" and "domain.com" are two different DNS names, and they may be assigned different "A records", which means different IP addresses. On the other hand, if you have a DNS name like "comp.domain.com", some people assume this must be prefixed by "www.", similarly wrong. It is just a convention that www.domain.com and domain.com are assigned the same addresses.

 

The ugly point here is that many browsers treat those addresses as equivalent, which is a really BAD thing. Even worse, as I heard, Chrome starts to remove the www subdomain from the presented URL.

 

I am concerned about similar developments that seem to be motivated by some weird concept of comfort, which are in fact violation of specifications.

 

(this is not against you in particular :) )

I fixed the SNEK game so all its files are present in all places, www or not. I think I forgot to publish to the non-www site after the game got big enough to be broken into more than one file.
 

Yes, 'www.' is different than just 'domain.com'. Most people set up a CNAME record for 'www' it seems. When I set up myti99.com, I initially ditched the 'www.' just to save screen space, and it's really pointless anyway. Stuart's browser encourages the WWW by front-filling it in on the address bar, so I had to set up two sites to support it. On a modern browser, this is no problem since you can setup redirects on the server side which the browser recognizes, and point people to the right site. Stuart's browser does now handle re-directs, but doesn't change the URL on the browser in kind. So while I can redirect and serve content, the browser keeps on whatever URL you started with which isn't ideal and causes two separate sites to be maintained. I had planned on setting up Apache's Rewrite functions to make it so I have only one site supported by both, but haven't gotten around to it.

I agree that it's super annoying that browsers remove or hide the www, and don't get me started on how irritating it was that all browsers conflate the address bar with a search function. I hate having to remember to add a trailing '/' to any hand-entered URLs when entering things like 192.168.0.nnn on my own bloody network. No Google, I didn't want to search the web for an IP address. So annoying. 

 

A lot of this BS is Google's fault, not just by forcing this stuff in their browsers, but their application of their voodoo search ranking that makes people do things like discouraging 'www', etc.
Not to mention the increasing: OMG THIS SITE ISN'T SECURE!!! messages that all browsers are starting to show. Google is nudging/forcing everyone to use certs by ranking non-https sites less. Pretty soon, any input forms are likely to be disallowed if they're not served via https. While I agree that the web in general should move to TLS/https since there's no reason not too for 99.9999% of users, it is not something our old computers will ever be able to do. Us retronauts who want to use plain port 80 cleartext web like the pioneers did aren't going to be able to use the web without a proxying tool, which in our case could be done on the TIPI. 

At least certs are now free thanks to the LetsEncrypt folks, and their certbot tool is really great. These certs aren't useful for proving a site's identity, but at least the traffic can be encrypted to keep prying eyes out.

 

 

  • Like 5

Share this post


Link to post
Share on other sites

Matt has designed a 3d printable sleeve for the DuPont connectors connecting the TIPI to the raspberry pi. These resolve the issue with plugging in them wrong. I'm including them on orders going forward..

You can find the stl in his github433117408b2f966e93581a45ec27d1e5.jpg7f365bf82c940ed0981272f06a352999.jpg

Sent from my LM-G820 using Tapatalk

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

I'm laughing as I see this..

not the idea of course..I love this idea. And it looks super duper!!! 

Can I now stop drawing lines on the ribbon cables...lol 

This is super!!!

Share this post


Link to post
Share on other sites

Update 1.51 - 2020-03-08

----------------------------------

Fix volname bug for DSK0. and DSK.TIPI. => Their volume names should always be "TIPI"

 

Added XB unit tests for volume names in the tipi repo... 

 

Fixed server connected socket read blocking to be non-blocking just like normal connections. ( I had assumed the blocking like behavior came from XB LINPUT, but I was wrong ) 

 

[email protected]

  • Like 4

Share this post


Link to post
Share on other sites

thanks, the volume changes and catalog functionality look good!

 

Unrelated item:  I was attempting to shut down my Rpi via the TIPI web admin page.   I kept tapping the screen to bring up the menu (with the shutdown/restart options) and it wasn't working.  It finally dawned on me that the menu only appears if mouse is in the menu area; tapping does nothing.   I was using my old Surface Pro w/touchscreen at the time.

 

  • Like 1

Share this post


Link to post
Share on other sites
21 hours ago, jedimatt42 said:

Update 1.51 - 2020-03-08

----------------------------------

Fix volname bug for DSK0. and DSK.TIPI. => Their volume names should always be "TIPI"

 

Added XB unit tests for volume names in the tipi repo... 

 

Fixed server connected socket read blocking to be non-blocking just like normal connections. ( I had assumed the blocking like behavior came from XB LINPUT, but I was wrong ) 

 

[email protected]

Matt,

 

Thanks for the server socket read blocking fix.  That resolved several issues on the TIPI BBS server project I have been working on.

 

Beery

  • Like 4

Share this post


Link to post
Share on other sites

Hi All,

 

Just to follow up on my TIPI intermittent boot problems, the issue WAS my console as suspected, not the TIPI or 32K sidecar.  I finally got good replacement video DRAM for my second console (FYI, don't buy TMS4116 chips from China) and all TIPI issues have completely gone away with the second console.  The question remains, what could be wrong with my original console that lets it work OK by itself but not with a TIPI?  I suspect either its internal DRAM or a power quality issue. 

 

First question, are there any tests of the VDP memory that can help uncover issues (other than looking the typical screen artifacts)?  Something similar the JediMatt42's 32K burn-in test but for internal DRAM?  (a little off topic for the TIPI support, i know)

 

Second question, should I be seeing (or hearing) anything different on the TI splash screen with a TIPI, like the NanoPEB has?  I'm not seeing anything.

 

20200319_172301.thumb.jpg.c1a981bee1063ed3b3804952775afc56.jpg

 

Thanks for the help.

  • Like 2

Share this post


Link to post
Share on other sites

The TIPI does not pollute the TI title screen. 

 

There usually isn't a need for VDP ram tests. The CPU writes to the VDP ram to construct the title screen. Then every 60th of a second (ish) the VDP reads a significant chunk of it to produce the video signal. But that's a statement of opinion.

 

[email protected]

  • Like 1

Share this post


Link to post
Share on other sites

One more interesting symptom.  On my second console, TIPI works perfect directly plugged into the expansion port but not through the voice synthesizer.  32k memory works fine through the synthesizer but CALL TIPI locks up. On my other console the TIPI behavior is intermittent with or without the speech synthesizer.  Curious.  
 

I’m just really grateful To have fully functioning TIPI setup.  Finally able to do all those things I didn’t have the hardware (or money) to do ~37 years ago.  I’m amazed that after all these years, the function key combinations are all still burned into my muscle memory like it was yesterday.

  • Like 1

Share this post


Link to post
Share on other sites
30 minutes ago, J-Data said:

One more interesting symptom.  On my second console, TIPI works perfect directly plugged into the expansion port but not through the voice synthesizer.  32k memory works fine through the synthesizer but CALL TIPI locks up. On my other console the TIPI behavior is intermittent with or without the speech synthesizer.  Curious.  
 

I’m just really grateful To have fully functioning TIPI setup.  Finally able to do all those things I didn’t have the hardware (or money) to do ~37 years ago.  I’m amazed that after all these years, the function key combinations are all still burned into my muscle memory like it was yesterday.

I think we had you check internal vs external jumper/switch on memory board, and power supply is all set for external?  Speech synth doesn't pass +5v through by design. 

 

The 32k can leak enough power from the address signals to appear to function. On the first version of the board I forgot to route VCC to the SRAM chip. It passed most of the time. 

 

Other common problems: clean those edge connectors on the 4A side port, on the speech synth. Deoxit, alcohol and eraser... (Maybe save the isopropyl for your homemade hand sanitizer) Deoxit seems to be habit forming. 

 

I've never heard of other issues inside the console leading to this sort of problem... 

 

[email protected]

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Hi Matt,

 

Thanks for all the suggestions.  I just double checked the 32K power jumper and it is on external and my external 5V power supply looks good.  I pulled my speech synthesizer apart, cleaned all the contacts with flux cleaner, and even de soldered the 5V jumper I had previously added.  Unfortunately it made no difference.  The behavior is 100% consistent, works perfectly with the TIPI connected directly to the expansion port, locks-up 100% of the time on CALL TIPI when connected through the Speech Synthesizer.  I can do a few things through the the Speech Synthesizer in like load small basic programs from the TIPI drives.  I just can't run CALL TIPI or do any large loads reliably.  The odd part is the 32K SRAM works great either way. 

 

Anyway, I can live with this.  I'll write it off as an old unit that sat in storage way too long.  Was able to compile and run assembly code on the unit for the first time, which is awesome.  Now I have something to play with while in social isolation. 

 

Thanks again for all the the help.

  • Like 1

Share this post


Link to post
Share on other sites

This may or may not help, but fyi, my speech synth works fine all the time connected to my TI. But when I connected my NanoPeb it won't work, not the NanoPeb not the TI. I would fudge pushing it in moving it around until one day my NanoPeb smoked. Looks like there's not much wiggle room, but I replaced that NanoPeb and never used THAT speech synth with NanoPeb, but the speech still does work with console.

I'm not sure if there are different speech synth amongst us and if that has something to do with this, because well now I'm frightened to ever connect a speech to NanoPeb or any kind of sidemount peripheral...

  • Like 1

Share this post


Link to post
Share on other sites

Hello TIPIsters!

 

   I finally made enough time to tryout my sidecar TIPI. I have it all hooked up and working properly.

 

Questions:

1. What does one do to get an account on myti99.com?

2. How do I get a .dsk file from Classic99 loaded onto a TI-99/4A using TIPI?

    I'd like to run an EA-option3 game file I'm working on.

3. How do I to map a disk image to TIPI's DSK1/2/3/4?

Share this post


Link to post
Share on other sites
1 hour ago, Airshack said:

Hello TIPIsters!

 

   I finally made enough time to tryout my sidecar TIPI. I have it all hooked up and working properly.

 

Questions:

1. What does one do to get an account on myti99.com?

2. How do I get a .dsk file from Classic99 loaded onto a TI-99/4A using TIPI?

    I'd like to run an EA-option3 game file I'm working on.

3. How do I to map a disk image to TIPI's DSK1/2/3/4?

I can answer question #1.  You need to load the TI Web Browser and go to www.myti99.com.  The web page renders differently for the TI Web Browser than other non-TI web browsers that have the signup information to create the account.

 

If you have Windows, you should be able to specify a path of "\\tipi" without the quotes assuming you have not renamed your PI.  Then, I would have to double check, but I think the user and pwd are "tipi".  It is case sensitive and I am fairly certain it is lower case.

 

Myself, I have mapped the path to the PI so that I can see both the PDF and TIPI folders.

 

Beery

  • Like 1

Share this post


Link to post
Share on other sites


 

5 hours ago, Airshack said:
Hello TIPIsters!
 
   I finally made enough time to tryout my sidecar TIPI. I have it all hooked up and working properly.
 
Questions:
1. What does one do to get an account on myti99.com?
2. How do I get a .dsk file from Classic99 loaded onto a TI-99/4A using TIPI?
    I'd like to run an EA-option3 game file I'm working on.
3. How do I to map a disk image to TIPI's DSK1/2/3/4?

 


Have you looked at the instructions in the wiki?

https://github.com/jedimatt42/tipi/wiki

Make sure you follow the installation instructions especially the part about the drive partition. https://github.com/jedimatt42/tipi/wiki/tipi-installation#grow-your-sd-card-partition
 
You copy the dsk to the TIPI drive either via the web server at http://TIPI:9900 OR the file share you can map to a drive on your pc at //TIPI/TIPI

Mapping drives is done in tipicfg or using the pi.config file documented again in the wiki.

Also look at this I explain a lot about how it works https://www.arcadeshopper.com/wp/?p=297

Greg

PS: if you are still needing help feel free to ping me on slack, facebook messanger or give me a call

 

Share this post


Link to post
Share on other sites
2 hours ago, Nick99 said:
Am I the only one that can´t get in on the tipi:9900 site?, I get an sqlite3.ProgrammingError.

Did you install the sd image correctly and then extend the partition? Following the wiki? If not .. do that https://github.com/jedimatt42/tipi/wiki/tipi-installation#grow-your-sd-card-partition

If you did then likely you have a sd card issue and I suggest you look at the pi logs for more info.. 

 

Do you know how to grab logs from a pi?   If not I recommend using winscp if you use windows on your PC.. 

 

Greg



Sent from my LM-G820 using Tapatalk

Share this post


Link to post
Share on other sites
43 minutes ago, arcadeshopper said:

Did you install the sd image correctly and then extend the partition? Following the wiki? If not .. do that https://github.com/jedimatt42/tipi/wiki/tipi-installation#grow-your-sd-card-partition

If you did then likely you have a sd card issue and I suggest you look at the pi logs for more info.. 

 

Do you know how to grab logs from a pi?   If not I recommend using winscp if you use windows on your PC.. 

 

Greg



Sent from my LM-G820 using Tapatalk

With the last several SD card images, growing the partition is not necessary anymore. The ungrown partition has a couple gigs of free space. 

 

Probably an actual programming error.  It would be in the /var/log/daemon.log

 

[email protected]

Share this post


Link to post
Share on other sites
33 minutes ago, jedimatt42 said:

With the last several SD card images, growing the partition is not necessary anymore. The ungrown partition has a couple gigs of free space. 

 

Probably an actual programming error.  It would be in the /var/log/daemon.log

 

[email protected]

I am not assuming they have the latest images..  plus it's good to grow it anyway to get all the space :)  

 

Greg

Share this post


Link to post
Share on other sites
46 minutes ago, arcadeshopper said:

I am not assuming they have the latest images..

Thanks for the reply guys. I downloaded the image from here: https://jedimatt42.com/downloads.html

 

tipi-sdimage-buster-1.43.zip - (4GB image) - TIPI Raspberry PI 4 / PI 3 A / 3 B / 3 B+ / PI Zero W SD Card Image (2019-11-03).

 

Is this the most current? I'd assume so. I'm also using the side-car install docs here: https://github.com/jedimatt42/tipi/wiki/tipi-installation

 

I believe I did everything correctly as TIPI CONFIG loads up TIPICFG v10, PI-Version 1.51, CRUBASE 1100, DSR Build: 2018-05-01T21:35:40-7:00.

 

I'm good with the wifi IP address working and all. I've successfully used the web interface to transfer files and play around with BASIC files, edit, etc.

 

The above is all covered in the WIKI and on that video from Wagner which I realize is not official documentation. Still, it was useful to see.

 

I still don't see where mapping a .dsk file is covered?

 

For mapping the URI's I was able to see in the video that J)URI1=HTTP://MYTI99.COM  is how that site is mapped.

 

Just can't figure out how to map a disk. I've copied a .dsk file called dsk4 over to the tipi using the web client. How then do I map it?

 

Tried this: 4) DSK4=DSK4\dsk4  -- didn't work. The file named DSK4 was copied over inside a folder also named DSK4

 

Help!

 

 

  • Like 1

Share this post


Link to post
Share on other sites
Thanks for the reply guys. I downloaded the image from here: https://jedimatt42.com/downloads.html
 
tipi-sdimage-buster-1.43.zip - (4GB image) - TIPI Raspberry PI 4 / PI 3 A / 3 B / 3 B+ / PI Zero W SD Card Image (2019-11-03).
 
Is this the most current? I'd assume so.
 
 
Correct there's updates after that so be sure to load tipicfg and update too

Sent from my LM-G820 using Tapatalk

Share this post


Link to post
Share on other sites

you don't map dsk files..  they are automatically converted to folders when you copy a dsk file to the tipi drive it is automatically unpacked to a folder named the same name as the disk name (not the filename, the actual disk name on the image) 

 

you map a disk like this:  DSK1.  BROWSER        that maps DSK1.  to the folder TIPI.BROWSER   if you wanted to do a sub folder such as TIPI.GAMES.EA5 it would be  DSK1. GAMES.EA5  or whatever path you wanted.  For example my DSK1. is mapped to TIPI.BOOT below:

WeIgnyO8sNARt6KPTRE-rewex7nKrDRJHhufmOLiIyZKeXC-h1jpjLZN4T7hsInu1Z60IhvVhJza0s4GUKzoM_d4sQcux2Qpju6dakB1RVYWbKdmfR3zxQOVteKKRoBZYR02obxElQB0l-i1HvnmKU-LxrLoaQ7OtnBnhLFr8b96Vt0I7Cw477ohJj3Uwe_RiNASrcz3Q9i4DSwefEI6mq7VKrMKmguuTY7VLZmUZIzuQJ1gPNN2zbYbX8lGNKPxJJDXFhaK1EDet_PIqMFUoY6wqZMu9DICLepHrXB_3jFWniXVqzMApwvmAWqt_KitzzWiLfvz_6Pox06-0szshiFzfuQBgkdL5tJygrGs6H-Ts_1nfCp4zujdeLM-T1pBap58TKo4kTxjA7aWS3f-eRKFYZ2y1hQr1wa6tYCxTBIy4AkY06marNuDqyT-umM2iU_caogsjsUX0fisVffOs29u_Bb4fOdnmtLSlDs1ZePMZy4xi-8lXxwfU82sjeYQD_Hj9z2o4uvlQ73od9xcRjJ4Ie7qdGIq2zbxOIu-LiPq0Ft0KUgX6SsCPVEu-kn1PPYhjfhfM89s5WvUK83yOsL3MYV8P2OwAhfMZC_MKL_W3yzlN3fmOHL35JOP3OotZAFmU25_OGD_yEhatqnwFIWI2Zjo8qTrv7TIPmGRtyQ1ALiLTWX9A3K9WXHTHg=w1263-h947-no

 

TIPIMAP makes this a lot easier, its an extended basic program that lets you arrow to a folder on the TIPI drive and hit 1 2 3 to map the coorisponding DSK1 DSK2 DSK3   I need to update it to support DSK4 as that was added later. 

 

These both are clearly discussed in the article I linked above. 

 

Greg

Share this post


Link to post
Share on other sites

I’ll give it another look Greg. Using the web client I created a folder named GAMES and inserted a BASIC game into it. Then I copied over a folder named DSK4 and copied my dsk4 file from classic 99 into that folder.

 

So now my PI directory has two new folders.

 

I was guessing at how to map DSK1 and DSK4 on TIPI because I couldn’t find that in the wiki.

4B5B5B42-BEA3-4449-A690-02C3F79AB854.jpeg


Obviously, it didn’t work. TIPIMAP is what I need to research then. - James

Share this post


Link to post
Share on other sites
5 minutes ago, Airshack said:

Hey Greg...I’m probably not communicating well here so I’m going to try again...

 

May I please have a screen shot showing what a properly mapped DSK path looks like on the Tipiconfig screen? 
 

 

4B5B5B42-BEA3-4449-A690-02C3F79AB854.jpeg

 

You are using \  use .  it's a TI :) 

 

mslZN2UD1n27FlmFUxaJV86pVfLK2AyZr7KTOa1RUjv3BAyixz4FmlLoeemG3_P9riJ7KyhXICCng1DZPTv7SmTko3SVGLf5eU6oA9IThpn_tpLCN-VZqHE7_Oi8IBNEocePMMZQnw1WwvohqK2b2KoKcs-sfOXNjl2XstZG2sGvf4TKBczBhoqedluLriusAr5nnynUogrS54Q4x_wS6v_SUxq46va7q0NtNJB9-K7xjG0AoW6PBGp6LW4pjHEiDrDJOVwi7sS2W6CuBzA8iCcJeh3AIbo3zcjLGBG-6MufCGZ2eP_L0sXsWfKFvnFdL9ZWJJFgCRiyc4NgiFLn48uJjxIng4Rr7cVCCnpMH8HqNfpTO_0QI9f_Wi72QBRRqVOxF798fEKdodK36tynLiDOOBEouYUcPJziZD06a3fXM6yGfLdhCPlHZBQGLZl6KzjFU3hNYO-t3lQ_XKF9DaQAdY-_spicY5QbxJ-MjUI_gtX82-LjXa2U52Eu2flUItO4heP5qvgaNS0eTkqXNa2C3w6he4qF4gbwwwzQGsVUwpgQ0VsO_qFHoQi-d0uRVal58i1UMUz1eQRts_n3ziyxpkOoPXNbqXoLbW4zjwFGvb-dRZ1PZ-es71SvNBVhb747eoOV1VLtU2GdXsHwG00AkJPPfFE9hI7AqRGMWMw8A85zOXDAQg2qm0GTKw=w1263-h947-no

gets me

Vkh2UkEXjR3DKzK5Hpw4kXvmedaKfby1iblCeFZCw6shpxJtV3sop4tDfQTYYuovY7MDWF6tLMjxa3KI5Lk_Ui06aQ9kzd8gl8Gp8A8nc63iQ0mejSEWb34tl-zU7WewHTRLtMp4yLlch0Mhzt4m6LHWEBomdvuKlWKqPNZeoGbNr3jDCIAJ6zB2ZeTmksuuE1OtfZ4xHLI9WhFoOnzaX_tUNZv5k7yqWEr9NIrf7gSPwz50SarEM4ALEmwyJBE3wICCNZWiDA6kfNmOfHA00-wqkqazrAvmu4kbTIjVVwubbB1D3s0YIivlie70RYXBrXp9E_xTZADMJUxE9ITGHwnIbnmWgY_M5Tydu3fmiCbX5G7uPA011FY8fvXnAoZoxo0Q57ffzBZO_yhEm-eW9ws86m1VJrUEkCUKbsG6wPdIdGatxr-qiD7tT_GMlC6oG86lRdBcatKelbnafJx0gv8xXqZB2z0Jdv5F7iTmcomg3XcMLEP9hfxaffZZH9oE-hnKuSIpm6C1adW0-XYQbs1YhOHDSAhEIGqPDuKxaazdaE-SHlxD1JWIC_aFdl1ToyqqAS_kq7QIdLCNJKA7PKXv2jzMpbShnd316n3vCREoPl1k3A7AXpKI96Fy6JbXV2b-a23PY1pauRy9O_YqNsG2IEwsc_nTLvsv0a12LCNDtYcZVJ6AHsk2AUD2sA=w1263-h947-no

and I have DSK4. set to .  which gives you the TIPI. root folder

tCvY6gRBC4zyVYTqbcmmbCnS6_PVk12mp-mQgBVhptBsUMAMgmLhyN8M4-nAw_AftG72lQQ18UU_T2PWO2NxfW2Q9pL7HBjDSsrIbxaJCFnbeo74H3f2tG3kx2VTcCB1NHfyRsWoTjyU2QcEwQ-eXbvyq4P96swbPSQNTnMP-hD61hNnLTmGU1oDDYljYUH4uYq9bqJMxvpErPrwnyUpN_Az88XFSi148XbKnBAMMF54ePcpkIkciH_hl9KfwlfRzT2xsnil_UUmufWsTHk_Ho_pPziQqdrvwwpE68P-9G0vJ7pNoXAUPz_xedX7CuainzSkf6S0yXva7Bx6UHe83kdhRfSNk3diWnrBpRjGNyW9eA5uUeT8cuasOpC97gznNa2quSFAoeNpOtFiXB6DTtR33jDn8jv87MlIsxEjJ5LehaIPRDj0UROaTcXp_f4ElA9Xx0fuRG1vrFiVLgAO1LG1hM3FC5UmYWVUOuqmZmMoqi_pCMWVwqroYjmjgEy_f0L8NZDk7e_tL4pnEAZNXe_nfG4fodRGM1kVTEuuh6OFKMLDsNxBJSD4XO2EnwhYVxEUwwQt6CFCqnvWBi-lMFM1QbH4lyMeMonn2Gf4hd4zBB5xuNathFB7q96vJ4Uz5ajVFCC5rXqUCrxbKlMXuzlnYhz8joOwobuDmt6FSKElxebk654W4YZ8GZPfyg=w1263-h947-no

  • Thanks 1

Share this post


Link to post
Share on other sites
On 2/23/2020 at 1:55 AM, jedimatt42 said:

If you think it is your CPLD that is outdated, it is really not that hard to follow these instructions provided you can SSH into a PI from some PC or connect a keyboard and TV to the PI. https://github.com/jedimatt42/tipi/wiki/CPLD-Programming-With-PI - and eliminate that as root cause.

Can this CPLD programming method be used for an un-programmed part, or does it require a base JEDEC file in it for this to work.  In other words, could this method be used to program the CPLD on a freshly assembled TIPI rather than using a Xilinx programmer?

Share this post


Link to post
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.

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