Jump to content

Photo

Need a readout on an algorithm in The Learning phone (PLATO)


5 replies to this topic

#1 tschak909 OFFLINE  

tschak909

    River Patroller

  • 2,344 posts
  • Location:USA

Posted Mon Jun 11, 2018 4:42 PM

I am smack dab in the middle of implementing a new PLATO terminal for all 8-bit machines (including the Atari), and I'm trying to see how the font-resizing is done on the fly from the original 8 16-bit words (8x16) font to the target size of (5x6), so that I can reimplement it in C.

 

PLATO terminals can, and do download fonts from the central system, they receive them as a series of memory write commands that write into the character set memory. The PLATO cartridge has routines which translate these addresses (0x3800) into relative offsets (0x0000, 0x0001, etc.) and I understand how that works... what I'm curious about, is that the PLATO cartridge seems to be doing image processing to squeeze the character set bitmaps down to fit in the allotted space as the download occurs. How is this happening?

 

Relevant code is here: https://github.com/j...r/tlp.asm#L2589

 

-Thom



#2 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,344 posts
  • Location:USA

Posted Mon Jun 11, 2018 5:06 PM

For cross reference, here is an earlier, but original source code listing for the Atari PLATO cart: https://paste.ubuntu.com/p/pnpkxDxc54/



#3 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,344 posts
  • Location:USA

Posted Tue Jun 12, 2018 11:45 AM

As luck would have it, 16kram has been reading through this routine as part of figuring out why character set corruption happens everywhere else except Altirra, and has documented the whole routine. This thing is insane!

 

https://github.com/m...3/tlp.asm#L2620

 

-Thom



#4 Rybags OFFLINE  

Rybags

    Quadrunner

  • 15,627 posts
  • Location:Australia

Posted Tue Jun 12, 2018 7:41 PM

Have to wonder how such a transform looks, it's a pretty big reduction.

 

I was thinking about a similar approach for doing a Star Wars type scroller - the problem there being that the number of tables needed could potentially be huge.



#5 phaeron OFFLINE  

phaeron

    River Patroller

  • 2,476 posts
  • Location:USA

Posted Tue Jun 12, 2018 9:38 PM

This mainly looks like box filtering + thresholding. Probably could be tightened up quite a bit as there's a bunch of X/Y addressing that looks unnecessary.



#6 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,344 posts
  • Location:USA

Posted Wed Jun 13, 2018 9:24 AM

Have to wonder how such a transform looks, it's a pretty big reduction.

 

I was thinking about a similar approach for doing a Star Wars type scroller - the problem there being that the number of tables needed could potentially be huge.

 

It actually works, you should try the PLATO cartridge sometime. Come over to my website.

 

-Thom






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users