Git Product home page Git Product logo

Comments (5)

fachat avatar fachat commented on September 21, 2024

What would be a good, easy to implement set of control codes?

Should at least include:

  • cursor movement (left/right/up/down)
  • window definition (upper/left corner, lower right corner, clear window) [Note: not necessarily stacked windows. This could be done inside something like a term server - similar to tmux), or in a client-side lib - similar to curses]
  • clear screen (ff?), home, delete (right of cursor), backspace, (std definitions where available)
  • tab, cr, lf, bell, ... - standard definitions
  • option to ignore writes to the right of screen (instead of line breaking)? Or is this a client-side lib? If so, the client side lib needs to know the size of the screen....
  • feedback on the size of the screen, potentially other items (like key bindings?)

from geckos-v2.

fachat avatar fachat commented on September 21, 2024
  • scroll up / scroll down (full window)
  • set cursor position (obvious...)
  • delete a char / insert a char
  • delete a line at cursor, scrolling up below cursor (VT52)
  • inserting a line at cursor, scrolling down below cursor (Vt52)
  • set background, border colour
  • (graphics settings?)
  • set cursor color, cursor blink rate, on/off
  • set colour/blink/underline/reverse for text written
  • clear line, clear to start of line / screen, clear to end of line / end of screen (VT52)
  • mark / restore cursor position? (VT52)
  • move cursor multiple lines / chars u/d/l/r (VT100, or with set cursor from client?)
  • set tab (VT100 -> client side?)

http://www.6502.org/users/andre/petindex/keyboards.html#ctrl
https://toshyp.atari.org/en/VT_52_terminal.html
https://espterm.github.io/docs/VT100%20escape%20codes.html
http://www.bitsavers.org/pdf/wyse/WY-60/880261-01A_WY-60_Programmers_Guide_Jan87.pdf

from geckos-v2.

fachat avatar fachat commented on September 21, 2024

The currently supported control codes are defined here: https://github.com/fachat/GeckOS-V2/blob/master/include/tcdefs.i65

From the above list those are missing in the current implementation:

  • get feedback on screen / window size
  • scroll up/down full window
  • set background / border colours (text colours are available where the capability exists)
  • cursor can only be enabled / disabled, but not modified
  • clear whole line, clear to end of screen (clear to end of line exists)
  • move cursor multiple lines
  • set tabs

from geckos-v2.

fachat avatar fachat commented on September 21, 2024

The most reasonable one is getting feedback on the window size, which is basically necessary for editors if they don't want to rely on env variables or other kludges.

Scroll up/down whole screen, clear whole line, clear to end of screen look reasonably simple to implement with the given capabilities.

Relative cursor positioning would also be an option (move cursor multiple positions at once).
In this case it would also help if one could get feedback on actual cursor position.

from geckos-v2.

fachat avatar fachat commented on September 21, 2024

As I want to keep the actual device code simple and short, I'd actually prefer a user space lib (to be assembled into the actual program, or at some later point integrated with dynamic linking) that would convert VT52 (or other) codes to GeckOS control codes (and potentially vice versa)

from geckos-v2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.