Comments (5)
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.
- 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.
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.
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.
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)
- devices7.adoc documentation needs update
- Blocking SENDSIG does not return E_INT HOT 1
- Not an issue - Apple II port? HOT 1
- Typo in https://github.com/fachat/GeckOS-V2/blob/master/doc/nommu.7.adoc
- Rename fsibm to fsfat
- kernel.7.adoc contains absolute kernel call addresses
- Enable source C64 code compatibility (sort of)
- Make console driver re-entrant and allow more interruptible time HOT 2
- full-screen editor
- GeckOS on Commander X16? HOT 2
- 'onenv' program to inject tasks into specific environments
- 2MHz support for the IEC bus in the C128 port HOT 1
- Colour support for the generic memory mapped console device
- 'con' program to control the console
- FSIEC: Multiple open files may result in hangs
- C128 autoboot
- C128 support for 3rd and 4th bank
- Discussion, Not Issue: M68K port? HOT 2
- Quickstart documentation
- Support for the C64 Ultimate-II network layer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geckos-v2.