Page 1 of 3

PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 6:30 pm
by tschak909
Hello, everyone.

It's been a very long road, and there were some serious bumps along the way, seven major rewrites to deal with performance and reliability issues, and trying to make something that is as clean of a GEM application as I can make it.

To this end, I have released a beta version for testing, so that I can get much needed feedback. This is especially important as I have been developing this entirely in emulation, with Hatari.

platoterm-titlescreen.png


You can get a copy here, with documentation:
https://github.com/tschak909/platoterms ... ERM-ST-0.5

Minimum Requirements:
-----------------------------------
* 520ST, with TOS 1.0
* Wifi Modem, and appropriate RS-232-C cabling.

Yes, STiNG support will come at some point, I am wrestling with getting it to work with my cross-development environment.

It has been tested under the following environments
---------------------------------------------------------------------------
* TOS 1.0
* TOS 1.02
* TOS 1.4
* TOS 2.06
* TOS 3.06
* EMUTOS
* Geneva
* MagiC 5
* NVDI 5

Known issues:
---------------------
* Program startup fails under MiNT (no crash, but it exits before window is opened)
* Starts, but does not work on Falcon because I need to select the correct serial port. (any help appreciated)
* screen drawing stops when not top window. It does decode the data, so when window is topped, it will resume. Need to write code path to handle.
* Paint redraws don't execute if the paint coordinate in terminal buffer is outside the damaged rect. Trying different solutions for this.
* occasional inconsistent protocol state after screen clear causes small glitches in redraw.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 6:36 pm
by Fletch
Tried out the latest build on my TT today and it works great! I appreciate the hard work.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 6:51 pm
by Fletch
IMG_7165.jpg
IMG_7164.jpg
IMG_7163.jpg
IMG_7162.jpg

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 7:18 pm
by joska
tschak909 wrote:* Starts, but does not work on Falcon because I need to select the correct serial port. (any help appreciated)


See here: https://freemint.github.io/tos.hyp/en/x ... ml#Bconmap

tschak909 wrote:* screen drawing stops when not top window. It does decode the data, so when window is topped, it will resume. Need to write code path to handle.
* Paint redraws don't execute if the paint coordinate in terminal buffer is outside the damaged rect. Trying different solutions for this.


You normally don't have to have a special case for drawing to the top window. The easiest way to redraw your window is to wait for redraw-messages, then iterate through the dirty rectangles and redraw each of them. To initiate a (re)draw of (parts of) the window, just send yourself a redraw-message with the coordinates of the part you need to (re)draw. This way all redraws are handled with a single codepath, no special cases needed.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 7:44 pm
by tschak909
Tried that, performance went straight into toilet.

If you want to take a whack at it, please. :)

-Thom

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 7:44 pm
by tschak909
Also, it's not clear which port in Bconmap is the falcon's RS232 (aka Serial port 2), which is it?

-Thom

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 8:40 pm
by Fletch
It works just fine on the Falcon's 9 pin serial port.

IMG_7168.jpg
IMG_7167.jpg

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 11:15 pm
by Estrayk
thanks for the work. waiting for STiNG support.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 16, 2019 11:26 pm
by tschak909
If someone could help inject in the necessary STiNG support, that'd be great.
-Thom

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Mon Jun 17, 2019 12:32 am
by ThorstenOtto
tschak909 wrote:Also, it's not clear which port in Bconmap is the falcon's RS232 (aka Serial port 2), which is it?


On Falcon (or other machine which don't have a 2nd MFP), bios device #8 is serial2.

But you don't need to mess with Bconmap (expect maybe to figure out which devices are present, there are also upgraded machines which have more than the usual serial ports), just use the corresponding BIOS device number directly in calls to Bconin() etc. Note that you should need the user to give a choice then which port to use. Or alternatively, always use device #6 instead of 1. And don't forget to restore the original setting before exiting.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Mon Jun 17, 2019 7:45 am
by joska
BIOS device 6 isn't available on all machines, so I would not use that by default. If you don't want to let the user select serial port in PLATOTERM directly you should always use device 1, and leave the serial port setup to an external program/accessory. When I first started using my Falcon I'm pretty sure I used an accessory that let me remap the SCC serial port to the standard BIOS device (no Falcon support in older comms software) but I can't remember it's name.

And yes, I meant to use Bconmap to populate a list of available devices.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Mon Jun 17, 2019 8:19 am
by ThorstenOtto
joska wrote:leave the serial port setup to an external program/accessory.


IIRC that won't work with Mint, where the Bconmap settings are per process.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Mon Jun 17, 2019 8:34 am
by spiny
I have no idea what I'm doing, and this ST isn't on the internet, but it seems to run OK

it's a 1meg FM, TOS1.04

plato.jpg

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Mon Jun 17, 2019 5:34 pm
by czietz
It doesn't work so well, though, as soon as screen resolutions are used that weren't anticipated by the author. I tested on my 1040STf with a Vofa graphics card. In 640x480x16, 800x600x16, 800x600x256, 1024x768x16 and 1024x768x256 PLATOTERM simply crashes with an address error at startup.

In 640x480x2 colors [1] and 640x480x256 colors it works, but have a look at the attached screenshots. The contents of the menu bar ("1200") is shifted, also with 256 colors there's a drawing error with the PLATOTERM logo.

[1] Note that "2 colors" does not necessarily mean black & white. As you can see the palette is changed in 2 color mode, as well.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Mon Jun 17, 2019 5:56 pm
by tschak909
Thanks for testing! I'll fix the menu bar. :)

-Thom

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Tue Jun 18, 2019 9:16 pm
by Eero Tamminen
FYI: one way to test different resolutions, and some compatibility with non-standard graphics is using Hatari's VDI mode, and specifying some uncommon resolution, for example: "--vdi-planes 4 --vdi-width 800 --vdi-height 640".

Another one is using Hatari Falcon emulation with native Videl mode setting program like "Videl Inside", and using e.g. the high color (16-bit chunky) mode.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Tue Jun 18, 2019 9:22 pm
by tschak909
Indeed. good call.
-Thom

p.s. have verified that the program does run under MiNT, but the serial i/o isn't working.. am debugging..

also it looks like XaAES isn't doing the quarter screen backing store (used in normal TOS for the menus/dialogs) so that is exposing some superfluous redraws that I need to track down. This is good.

-Thom

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Wed Jun 19, 2019 12:30 am
by ThorstenOtto
tschak909 wrote:Indeed. good call.
also it looks like XaAES isn't doing the quarter screen backing store


No it isn't. Menus use just normal windows, like everything else. So yes, you will get redraw events when you open a menu and it covers part of your window.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Wed Jun 19, 2019 12:36 am
by tschak909
That's ok. I just need to figure out why i am not getting/sending serial I/O now, while it works under TOS. I temporarily removed the iorec revectoring, and explicitly added a Bconmap to the default ST serial device (6), so am wondering what else I need to do...

-Thom

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Fri Jun 21, 2019 11:59 pm
by tschak909
Here is a bog standard Atari 1040STF, running PLATOTERM, TOS 1.02, no HSMOD, no NVDI, nothing.

It's pumping along at 19200 baud :)

https://www.youtube.com/watch?v=sra87dHJARM

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sat Jun 22, 2019 9:31 am
by vido
This looks really nice! Congrats!
I hope I will be able to use it also on my FireBee under MiNT one day ... :)

Good work!!!

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 23, 2019 8:31 am
by joska
Is this latest version available for download somewhere? The latest binary I found on github is from June 16th.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 23, 2019 8:38 am
by joska
The one from June 16th appears to work correctly in 800x600 on my Falcon under plain TOS. However, even in 256 colours it messed with the lower 16 colours. You should use colours > 16 when available in order to not mess up the AES colours.

Another thing I noticed is that when a redraw (and not just a blit) the colours are flashing.

Under MiNT it crashes due to a memory violation, that's probably the IOREC-issue.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 23, 2019 9:05 am
by shoggoth
In 256 color modes, it makes sense to remap your pen indices to the palette instead of the other way around, IMO. It’s not that much work, and it’s a lot nicer than having your pretty desktop background turned into colorful vomit.

Re: PLATOTERM for Atari ST - A PLATO terminal for IRATA.ONLINE - 0.5 Beta

Posted: Sun Jun 23, 2019 9:30 am
by joska
True, as long as the colour is present in the palette.