summaryrefslogtreecommitdiff
path: root/programs
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2020-08-12 12:37:54 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2020-08-12 12:37:54 -0400
commita9860417f53216a2f3b0b490afec46ab5db70181 (patch)
tree6dd9d598a78ff644a9b645ded415ec3f84bba53f /programs
parentd49e39c672e78d536d658785adffb9149715832b (diff)
- Refactored the escape sequence parsing, and handling.
It now uses a struct to store the escape sequence. Before it handles the escape sequence, it parses it, which includes things like getting any arguments that are supplied, and getting the mode type. - Moved the code that handles control codes to a separate function. The reason for doing this was because I wanted to make the escape sequence handling faster, but also make the code more readable at the same time. I got the idea to do this from st, a terminal emulator created by the suckless.org project.
Diffstat (limited to 'programs')
-rw-r--r--programs/sub-suite/subeditor.s5
1 files changed, 3 insertions, 2 deletions
diff --git a/programs/sub-suite/subeditor.s b/programs/sub-suite/subeditor.s
index fb3f3c4..476f1cf 100644
--- a/programs/sub-suite/subeditor.s
+++ b/programs/sub-suite/subeditor.s
@@ -957,6 +957,8 @@ update_pos:
lda #'[' ; Print '['
sta scr ; to the screen, and start the escape sequence.
jsr getrow ; Start printing the row number to the screen.
+ lda #';' ; Print ';'
+ sta scr ; to the screen.
jsr getcol ; Start printing the column number to the screen.
lda #'H' ; Print 'H'
sta scr ; to the screen.
@@ -967,10 +969,9 @@ getrow:
lda scr_row ; Get the cursor's y coordinate.
bra bcd ; Convert it to BCD.
getcol:
- lda #';' ; Print ';'
- sta scr ; to the screen.
lda scr_col ; Get the cursor's x coordinate.
bcd:
+ inc ; Add one to A.
div #10 ; Divide A by 10.
ora #'0' ; Convert it to ascii, and
sta scr ; print to the screen.