Jump to content
IGNORED

What are the functions of these ATASCII characters?


Recommended Posts

1801616419_ATASCIIControlCharacters.PNG.37084f4f22d80cf6104217da4b7d320d.PNG

 

Within a running program, when these are PRINTed to the screen, they perform a function. The only one I could find info on is the Curved arrow (#6, top row). I found that PRINTing that to the screen will effectively clear the screen.  But, what about the others? When you print those to the screen, what do they do? Could someone point to a document on this, or tell me what they do (if there isn't one)? 

Link to comment
Share on other sites

@TheRaven81

depends on combination and method of print... they can appear as themselves... or

 

Move cursor up,down,left,right (they wrap around the screen in the same columns, same rows)

Disables the next character's function and will print it instead

Clear screen and home the cursor to top margin and column preset

Moves the cursor to the next tab stop

Delete Back Space, Moves cursor back to the left and removes the existing char in that position

Deletes a line (removes current line)

Inserts a line at current row (splits the line)

Carriage return (moves the cursor to the first position of the next line)

Sounder (makes the bell/buzzer sound)

Inserts a space in current position (pushes the text to the right in the line)

Delete character in current position (pulls text to the left in the line)

 

ATASCII Function

155 End Of Line (Return)

156 Delete line

157 Insert line

158 CTRL-Tab

159 Shift-Tab

253 CTRL-2 (buzzer)

254 Delete character

255 Insert character

Look in the Atari Reference Manual pages C1 to C3 and F1. In order to print the arrow keys, clear, insert, delete, buzzer, escape key, or any of the codes listed above to the screen, you must press the ESC key before entering the keyboard character(s).

 ATASCII codes

 96 will print a backwards apostrophe instead of a diamond

123 will print a left bracket instead of a spade

125 will print a right bracket instead of a clear

126 will print a tildis instead of a backspace

127 will print a blank instead of tab

There is a third set of codes used by the Atari keyboard handler

These values are listed in the OS User's Manual.

So depending on how you print them, whether you precede the with and escape... they have more than one outcome or function

Edited by _The Doctor__
  • Like 5
Link to comment
Share on other sites

1 hour ago, TheRaven81 said:

1801616419_ATASCIIControlCharacters.PNG.37084f4f22d80cf6104217da4b7d320d.PNG

AFAIR, in the same order:

 

- Moves cursor up (with screen wrap, same column)

- Moves cursor down (with screen wrap, same column)

- Moves cursor left (with screen wrap, same row)

- Moves cursor right (with screen wrap, same row)

- Disables the action for next printed character

- Clears screen and puts the cursor on top-left (according to defined margins)

- Moves the cursor to the next tab stop

- Moves cursor back to the left and removes the existing char in that position

 

- Removes current logical line

- Inserts a line at current row (splitting logical line)

- Sets tab stop at current column

- Removes tab stop at current column

- Carriage return (moves the cursor to the first position of the next line)

- Plays a bell sound

- Inserts a space in current position (scrolls the text to the right in the logical line)

- Removes the character in current position (scrolls text to the left in the logical line)

 

All of these work when PRINTed into "E:" screen editor device. If you print to "S:" screen device, you will get the character font, not the screen action (except the clear screen and carriage return chars I guess).

 

Edited by vitoco
  • Like 3
Link to comment
Share on other sites

oops, didn't include as a thought,

 

find some books here...

http://mixinc.net/atari/books/

 

look for...

screen editor control codes on page 50 table 7.1 of the reference found there

see also

keyboard handler control codes a page or two up from there..

 

Don't forget  http://www.atarimania.com/list_documents_atari-400-800-xl-xe-_8.html has a bunch of the books and documents needed to find them all. The forum might have had a round up or cheat sheet for these.. I foggily recollect conversations to that effect.

Edited by _The Doctor__
Link to comment
Share on other sites

Aha. I will have to look at that manual some more, it seems to be really useful.  The only one in my image that still stumps me is #5, 2nd Row - the inverse ESC. I can't figure out how to produce it on the screen. (That image in the first post was made with rossum's ATR Viewer, with the new fancy text editing feature. ) I can produce them all on my 800XL besides that one. Though I'm not sure if I am supposed to be able to, based on what you say the function of it is.

Link to comment
Share on other sites

The characters pretty well represent the functions they will perform so can eventually be memorized.  You can print the actual character instead of performing it's function with a string with 3 x Esc then the key.

 

A kludgy sort of way to print the inverse Esc character inside a program:

GR. 0

? #6,"<esc> <esc> <esc> <cursor left>"; : PUT #6,155

 

Thanks to a bug that sees S: sometimes leaving a cursor behind that can give you the unprintable character, though probably won't work in the last character position at the right.

  • Like 2
Link to comment
Share on other sites

On 5/29/2020 at 12:09 PM, Sugarland said:

Yes IIRC it's called a 'solidified carriage return'. There is a poke to produce it since pressing ESC then ENTER does not produce the character.

It always annoyed me that it was physically possible to to type merely 99.6% of the characters using control/inverse/escape sequences.  I don't see why it shouldn't be possible to type it (e.g., with an escape sequence like [Esc][Return]).  Has anyone tried patching the OS's E: handler to let us do it? >;-)

 

Link to comment
Share on other sites

The problem is the presence of the character in the input buffer can be sufficient to cause unpredictable results.

 

Just try poking it to a screen location then entering a command.

e.g.

POKE 40230,219

Then on the line where it appears:

DIM A$(40) : A$="12345             _ 67890 " : B=1

 

(the _ represents where the inverse Esc is)

The A$ string will only assume the value of the characters up to the inverse Esc.  The B=1 statement will be ignored.

 

So, you can't really do a literal string assignment, you've got to build it by using CHR$ or other means.

 

Edited by Rybags
  • Like 2
Link to comment
Share on other sites

I for one am glad that it functions as it does, there is more than one way to get the standard output of screen text correctly formatted, and yet we can still use a form of return to have the Atari enter it's own code.

Edited by _The Doctor__
  • 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...