Jump to content
IGNORED

PLATOTerm for Atari - Working out tgi and ser issues.


Recommended Posts

So for the most part, looks like I can play some games looking pretty good, I am not pushing it.

Also, I did not end up with any problem connecting with this lastest build

 

using 2400 baud

my suggestion is pick 5 and 192 and start games from a fresh boot and sign on.. play each game... if it doesn't look right, select 6 and 192 and do the same... you may like what you see...

 

I select touch joy save and rebooted to get the arrow to play gammon and it worked

 

side note, If using APE, an AtariMax sio2pc usb and an 850...I decided to try them in combo with ape's R: turned off and all was fine.. until your pc falls asleep it may make your 850 unhappy., in order to recover from this... on laptop wake up.... put ape to sleep.... then disconnect and reconnect the usb cord and wake ape back up... you might have to do usb disconnect and reconnect again.. then APE will stop blocking the signal to the 850.

 

More weird combo's to follow so I found an issue with APE and sleep mode of pc's and how it can block sio comms with the 850.. and a problem with it's usb driver and or microcontroller. Luckily I found the solution without losing my Plato connection...

 

I will try to tackle APE R: emu and Plato Next...

Edited by _The Doctor__
Link to comment
Share on other sites

oh, a side note, make sure your 850 is the first thing on your sio chain... it makes sure it get the strongest signal and reacts the fastest in that location... while you can place it at the end of a 10 device chain and it will work fine, it's best to ensure it doesn't have to deal with cable length issues or home brew device issues of any kind. While other devices are smart and have all kinds of framing and crc protections, an 850 just bangs the data in and out just as it is with no error correction at all.

Link to comment
Share on other sites

APE trial x64 doesn't want to do thing for me with sio2usb usb but registered version has fared better....

The the ape rs 232 at 2400 will not meter out at a rate the buffer will take... based on the random and odd faults... it may be colliding with parts of the program. It may also be insisting on a translation that plato can not handle, I can not get the tcp modem simulator to attempt any soft flow control at all, It may not have enough buffer on the PC or maybe collision fun in the Atari is an issue.. bottom line the oddness of the option key config weirdness is more prevalent under this combination.

 

I can get text and dial, connect and then the typical font/ drawing corruption we know and love STOP takes us all the way out to and then you can go back in sometimes with legible text enough to log in with... so I will try 1200 but have little hope it will help much... the rs232 emulation is wicked terrible and I am not sure if usb timing adjustment will help. like before there is so much going on it more than likely may have random results based on how things interact at any given time with the plato term code.

Link to comment
Share on other sites

Yup, I reached the same conclusion.

 

Have tried to contact Steve Tucker to offer to fix it, and he just said "no."

 

Mentioned I wanted to make PLATOTerm work well with APE, he dismissed me.

 

(and I am a registered customer)

 

Steve Tucker has done a ton for this community, but as far as relating to other people who contribute, he's a fucking asshole.

 

-Thom

Edited by tschak909
  • Like 1
Link to comment
Share on other sites

To be fair, he used to be the most helpful person, but sometimes it bit him in the rear end. Competing software and devices sprouted from his help. So it could be, he no longer sees a return on being helpful and not enough money coming in to make it worth his while...

 

The kicker is, sometimes just this kind of solution would make his the indispensable product people would shell out for. I don't know how many folks are buying such things today so I don't know If that would be worth it as well..

Link to comment
Share on other sites

Waiting for an update/reply.

 

How do I send AT+CIPSEND when I am connected to the server?

I do not understand, it connects first, blanc screen, only A right-bottom.

The color feedback I have let me know I am still in echo mode, so the ESP is getting my commands.

But <return> doen not do CR/LF anymore I guess.....

 

I can connect with altirra and use ATDT, but that is a complete different modem.

 

Having CAPITOL letters when configuring the connection would be nice, thanks.

Holding SHIFT makes you forget to release it when typing non-letters.

 

Can you cook me up a version without Xon/Xoff, without the colors, and let me stay longer in TTY-mode?

 

Would be nice, so I can continue debugging too.

post-6668-0-68979000-1537352202.jpg

post-6668-0-13707500-1537352214.jpg

Link to comment
Share on other sites

Yes, it is a long setup, so making typo's in lowercase or uppercase separators in anoying....

 

Anyhow, I tested your build, no luck today.

Same result as the pictures I posted earlier.

 

-I load my Rdriver, check AT, get OK.

-I load PLATO from D1:, get "c", so OK.

-I start typing the commands I need to setup the ESP.

Always I get OK and ERROR when I do it right and ERROR and ERROR when I do it wrong (typo).

After AT+CIPSTART:"TCP","IRATA.ONLINE",8005 <return>

I get "busy p..." "CONNECT" "OK"

The ESP has establish connection with the server, and I get bytes in with the welcome messages.

 

Here it stops for me, no TTY mode, I am locked out.

 

I still need to send AT+CIPSEND to tell the ESP to go into transmission mode, so bytes I send go to the other end and not to the ESP.

 

When I stop here, using RESET, loading a terminal program and finish it off with AT+CIPSEND, I get OK.

All I type in now does not ECHO back to my screen (my color feedback tells me this), so is send to the other end.

 

Now, when I load plato again, I get no "c".

All I type in, is not shown on my screen, is send away (I have no color feedback) and get one byte back when I press <return>

 

[EDIT] the byte I get send back from the server is $0A, I can write a love-letter and after <return> I get $0A back....

 

Lets go for a next shot?

 

Grtz,

Sijmen.

Edited by mr-atari
Link to comment
Share on other sites

Plato like so many terminals is going to start up all it's glory after a connect message...

if the esp sends 'connect' and then needs another command to switch to data mode... that's an issue for just about every BBS and intelligent protocol terminal out there... that firmware is not following standard modem response protocols that have existed all of these years... a special case dialer might need to be written for such oddball firmware. or perhaps a more standard firmware need be in the esp?

 

so am I to understand... your rverter and esp are fully working with bobterm1.22 and ICE-T XE? You are also able to do downloads and uploads with them both as well? or Express or Other terminals?

 

If the answer is no, then you are not ready to combine with PlatoTerms multimode method of tty, downloading, et al.

 

This is akin to running a marathon and not training for it.

 

Once you have it working in standard terminals and are able to use a few different upload download protocols, you are ready to start with Plato.

 

Since Plato is a work in progress, we have instances where plato will fail and the driver may fail and no way to know which is failing or why.

 

This why I use the know quantity method of testing, when he posts a new plato I start with everything I know is working by calling a few boards and doing differnt baud rates and an upload or download. okay we're good, then I start on Plato with that setup... if Plato fails I try the different setting and options plato has to offer until I get the best I can from it and report back about it.

 

I do this for each device and driver combination.... without flow control at 2400 and above your dead... so yep all testing at 300 then 1200.. if all passes then 2400 and 9600. I wish there were a 4800 setting, there is no point to going 19,200 it's a timing fail fest for Plato at the moment.

 

I think there is no way to know what is failing in what way... testing always involves know good baselines first and the other stuff after that.

Edited by _The Doctor__
Link to comment
Share on other sites

I know what I am doing, yes.

Thanks for asking.

 

The interface is not the problem, as you say, the rocket-science starts with the driver and the terminal.

Since APE fails to connect, the ESP is the only thing making it possible for me to connect with internet and try plato.

 

Al testing with ESP is done on the real hardware, the rest "800XL/Rverter/2400baud" is done on altirra.

The altirra-debugger has more power then my freezer...

 

The ESP is what it is, standard ESP8266.

Out of the box, should work just like that, I expect nobody to know how to re-flash there new device.

Re-configuration of the baud-rate is done connected to the Atari.

Yes, Bobterm and Ice-T work perfectly.

I can still type AT+CIPSEND<return><control-j> getting the ESP in transparent mode.

 

Up/Download, don't know yet.

You said to download last starfighter from a bbs site as test to somebody, sure I can do that, don't know the bbs-name:port

Tell me bbs-address to dial up to and I try.

 

In the meantime I am debugging plato:

In TTY mode, Plato sends out double <lf>

Could explain the OK ERROR sequence I am getting.

 

Altirra:

(66358: 0, 11) POKEY: Sending serial byte 61
(66358: 68, 26) POKEY: Transmitted serial byte 61 to SIO bus at 746 cycles/bit (2399.2 baud)
(66420: 0, 7) POKEY: Sending serial byte 74
(66420: 67,100) POKEY: Transmitted serial byte 74 to SIO bus at 746 cycles/bit (2399.2 baud)
(66491: 0, 9) POKEY: Sending serial byte 0d
(66491: 66, 96) POKEY: Transmitted serial byte 0d to SIO bus at 746 cycles/bit (2399.2 baud)
(66492: 0, 9) POKEY: Sending serial byte 0a
(66492: 65, 77) POKEY: Transmitted serial byte 0a to SIO bus at 746 cycles/bit (2399.2 baud)
(66493: 0, 9) POKEY: Sending serial byte 0a
(66493: 67, 89) POKEY: Transmitted serial byte 0a to SIO bus at 746 cycles/bit (2399.2 baud)

Let me know and I can continue.

Link to comment
Share on other sites

the green border is because plato hasn't sent a flow control stop, it would be red during stop sending to terminal and green when it is ok to receive more data, the only time it is black is when the buffer is floating around somewhere in the middle after a full clearing of a screen and borders, as soon as it gets low and says send more it turns green. Plato has to control the flow or it's parser gets over run...

 

If you are trying to use only the buffer in your driver to feed plato, then plato still needs to tell your buffer to stop sending it data when the parser is backed up...but in theory plato wouldn't need it's own in that case but the parser still needs to be able to tell things to stop and start...

 

Are you asking T to remove the buffer and it's flow control, but leave the parser and it's flow control to talk directly to your drivers buffer.

 

If you explain to him exactly how your buffer is operates maybe he can understand what you wish him to do....

Edited by _The Doctor__
Link to comment
Share on other sites

The driver is just as any other normal R: device.

Nothing fancy pancy.

Disregard my remarks about Xon/Xoff.

 

I just wondered why the colors are still on, were as I kindly asked a version without.

Because, my driver, also in development, uses -also- background colors as feedback when data comes in.

I make things to complicated from time to time.

I go with the flow and debug what you guys come up with.

 

 

In the meantime, I got online with the ESP on 2400 baud, using a detour.

I will not go in detail, but I used my tiny terminal, that is in the ESP8266-driver loader, to setup connection and wait until I get the "press c to enter message"

 

Then I load plato and I need to select the terminal...... fck...

The types are gone before I can read them, because the screen overwrites with new messages.

But I figured out to press type "e" (made a quick photo to analyse the options)

 

Now I can logon as guest/guest.

Select games and checkers.

 

This is the screen, looks better then with altirra.

But I still can not make out what keys are displayed.

 

 

I am waiting for the name of the bbs to try downloading, thank you.

post-6668-0-70921200-1537519947_thumb.jpg

post-6668-0-23783700-1537520015.jpg

Edited by mr-atari
Link to comment
Share on other sites

okay,

the plato systerm didn't detect your terminal automatically in the first screen shot, but that's okay you got past that...

the checkers selection screen looks like it does on the current platoterm screen handler... it is greeking the choices in a hard to read way...

 

NEXT (return key/enter) to play

HELP (control h) for help

DATA (control d) for statistics

Back (control b) to exit

Link to comment
Share on other sites

Ok, now that XON/XOFF handling has been somewhat resolved, I can pull the red/green handler.

 

As for what you saw in TTY mode, that only happens in two cases:

 

(1) the system returns an invalid terminal type in response to the GET TERMINAL TYPE echo packet, in which case the menu is displayed immediately.

(2) the system doesn't get any echo packets back at all, because you're not a PLATO terminal, and so it returns the message, "press C to log onto CYBIS" followed by that terminal type page.

 

This indicates a garbled reply to an echo packet.

 

Character set loading seems fine. I had added the algorithm roughly two months ago while working with 16kRAM to transcribe it from the Atari cartridge into C, and while algorithm A works (which deals with character cells that have roughly half of their cells set), and the sparse version of Algorithm B works, the dense version of algorithm B does not...it's on my list to circle back to. ;)

 

-Thom

Link to comment
Share on other sites

okay,

the plato systerm didn't detect your terminal automatically in the first screen shot, but that's okay you got past that...

the checkers selection screen looks like it does on the current platoterm screen handler... it is greeking the choices in a hard to read way...

 

NEXT (return key/enter) to play

HELP (control h) for help

DATA (control d) for statistics

Back (control b) to exit

 

Aha, thanks.

 

Would it help if the screen-resolution could be enhanced to 384x256 ?

 

Grtz,

Sijmen.

Link to comment
Share on other sites

  • 2 weeks later...

I've addressed config issues for some people in the BBS section, explaining how some devices alter the stream.. telnet padding etc..

some of the firmware altered on wireless devices have been tweaked to translate for specific character sets... the same would need to be done for the Atari and Plato...

 

there is an issue between the buffer I have been playing around (x on and off) in and how platoterm is pulling from it...

it would appear platoterm is not always pulling from or in the same places of that buffer possibly.. depending on where things are set it may effect greeking of the inverse characters that mr atari mentions. I was able to get it to provide more of the top to bottom lines within those sets. Slightly changing how they appear... still not perfect but more complete, I didn't think that should happen. Something is not going according to plan.

Platoterms parser may also be sending a request for more or something to that effect independent of the buffer we can control. this may be a hidden protocol not unlike ascii on off/binary/ x/ymodem crc methods on a simpler level in platoterm. I am of course just guessing in that but it would seem logical that something like that would exist.... if some a way to combine or work around it would need to be employed.. maybe only verification after entire sets are loaded....

 

Is there any reason I shouldn't be able to use TLP to connect with your server?

Edited by _The Doctor__
Link to comment
Share on other sites

sigh.

 

While telnet IAC munging can cause PLATO errors, that's not what's happening here.

 

(IAC munging looks much much worse on screen)

 

The greeking of the inverse characters that he is mentioning is LITERALLY because the character set reduction algorithm isn't 100% bug free.

 

I've already explained this, long ago, but I'll go over it again, here:

 

The character set scaling algorithm here works like this:

 

(code here: https://github.com/tschak909/platoterm64/blob/master/src/atari/terminal_char_load.c)

(original disassembly here: https://github.com/jduerstock/tlp/blob/master/tlp.asm#L2894)

 

(1) the incoming character stream is transposed (flipped) so that instead of being 8 words of 16 bit data, it's 16 words of 8 bit data. This is accomplished via a simple look-up mask.

 

(2) as this is done, the number of set pixels is counted. This is then placed into a 5x6 matrix of threshold weights, which group sets of pixels in the 8x16 bitmap, down to a 5x6 bitmap. So each 5x6 entry in this table represents at least two pixels in the 8x16 image, sometimes as many as 4 or 6 possible pixels in the 8x16 image, The parts that don't need as much detail retained have more pixels grouped.

 

(3) then the total number of pixels is counted, and a decision is made:

(3a) If the total number of pixels set is roughly half of the total # of possible pixels in the 5x6 character image, then Algorithm A is used.

(3b) if the total number of pixels set is less than approximately 50, then Algorithm B is selected.

(3c) if the total number of pixels set is more than 85, then Algorithm B is selected.

(4) The appropriate algorithm is used to translate the 8x16 character array into a 5x6 character array.

 

Algorithm A is what's known as a box filter.

 

The values from the table that was calculated above are compared against a table of weights, indicating how many pixels in a certain group of pixels must be turned on in the 8x16 image, before a corresponding pixel is set in the 5x6 image.

 

This allows a fairly detailed image to get squeezed quite well.

 

Algorithm B, is a very standard table scaling algorithm, where for each byte, we do a table lookup in a table for 5x6 pixels.

 

The difference is, that with algorithm B, we either XOR the input depending on whether we are dealing with very few pixels set, or a lot of pixels set.

 

Algorithm B, for sparse pixels, (which does the table XOR) is where the problem is occurring. and I do not know why, yet.

 

I'd love some actual help with code to try and diagnose these problems, especially, since fixes here benefit everybody using a 320 pixels/line terminal, as they all use this algorithm.

 

(and yes, TLP works just fine with IRATA. It just needed to be patched to send the appropriate terminal ID, as TLP can not parse color codes.)

 

-Thom

Edited by tschak909
Link to comment
Share on other sites

BTW, I run the last version of Plato using the ESP-01 w/ rverter. I noticed that the tablet, joystick, etc. menus are back. I tried the joystick I don't know how to use it. I also have an Atari mouse and trackball . Is this functionality really working or I should just wait before trying it and reporting?

Thanks for this..Plato is really amazing. I got transported in time when I read the lesson on locus root plots (a topic I studied like 20 years ago while in college), that was cool..

Link to comment
Share on other sites

Yes, touch works. Only certain lessons use it. I actually need to add back in the pointer on/off code so that only lessons that use it, will have it visible.

 

You can, for example, use it in the IRATA menus. Checkers can use it to select squares. as can Mahjongg, etc.

 

You can also use:

 

* An Amiga Mouse

* An Atari ST mouse

* a Koala Pad or Atari Touch Tablet

* a Trackball (e.g. CX22 or CX80)

 

:)

 

I'm glad you're enjoying this, as well, but It's also worth noting that while there are 16,000 different lessons on the system, they all were created by users of the system.

 

Think about this. The development environment is available to anyone who wants to use it, so new content can be easily created that is accessible by anyone who has a PLATO terminal. _this_ is a big reason I have been driving to port all these different versions of the software. PLATO (and by extension IRATA) provides a solid platform for connected retro-computing, like hasn't been had before...actually making good on the promises of QLink and the never-released Habitat.

 

-Thom

Edited by tschak909
  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Out of curiosity, is the source to Plato available ? I downloaded some stuff off the CYBIS/CYBER site, and it seemed to imply that the source to Plato is on the NOS system itself, and not available externally. So that Plato itself couldn't really be ported to a different platform.

Link to comment
Share on other sites

Quite correct. The entirety of the PLATO source code is on the mainframe, with the lowest levels of the code written in COMPASS, which is CDC 6600 assembler, with higher levels written in CYBIL and SYMPL, some bits written in FORTRAN, with most of the system written in TUTOR, of which the system lessons in TUTOR make very hard coded assumptions on machine architecture (60 bit words, 6 bit chars, ones-complement ALU, barrel shifted 12-bit peripheral processors).

 

This was so prevalent, that when CERL did their first machine migration, it was to a custom super-Cyber they called Zephyr, same machine architecture, but made in MECL logic. (This was arguably the very last of the custom university supercomputers)... In 1993, the guys who wound up with the CERL system (NovaNet) implemented some very hybrid emulation architectures that did JIT compilation to run on DEC Alpha machines.

 

-Thom

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