goto-line is working
This commit is contained in:
parent
0c5cbd982a
commit
676d9f5405
41
femto.tal
41
femto.tal
|
@ -452,8 +452,44 @@
|
|||
BRK
|
||||
|
||||
@goto-line ( -> )
|
||||
#0016 ;jump-to-line JSR2
|
||||
;draw-all JSR2 BRK
|
||||
;messages/goto-line ;messages/null ;do-goto-line ;start-prompt JSR2
|
||||
;draw-prompt JSR2
|
||||
;draw-cursor JSR2
|
||||
BRK
|
||||
|
||||
@parse-decimal-number ( addr* -> n* ok^ )
|
||||
LDAk ,&non-empty JCN
|
||||
#00 JMP2r
|
||||
&non-empty
|
||||
LIT2r 0000
|
||||
&loop
|
||||
LDAk ,&continue JCN
|
||||
POP2 STH2r #01 JMP2r
|
||||
&continue
|
||||
LDAk LIT '0 LTH ,&fail JCN
|
||||
LDAk LIT '9 GTH ,&fail JCN
|
||||
LIT2r 000a MUL2r
|
||||
LDAk LIT '0 SUB #00 SWP STH2 ADD2r
|
||||
INC2 ,&loop JMP
|
||||
&fail
|
||||
POP2r #00 JMP2r
|
||||
|
||||
|
||||
@do-goto-line
|
||||
;tmp/data ;parse-decimal-number JSR2
|
||||
,&ok JCN
|
||||
;move-to-message-line JSR2
|
||||
;messages/unknown-input ;print JSR2
|
||||
;tmp/data ;print JSR2
|
||||
BRK
|
||||
&ok
|
||||
#0001 SUB2 ( convert 1-indexing to 0-indexing )
|
||||
DUP2 .buffer/line-count LDZ2 LTH2 ,&within JCN
|
||||
POP2 ;goto-end JMP2
|
||||
&within
|
||||
;jump-to-line JSR2
|
||||
;draw-all JSR2
|
||||
BRK
|
||||
|
||||
@jump-to-line ( n* -> )
|
||||
.term/rows LDZ2 #0002 DIV2 LTH2k ( n rows/2 n<rows/2? ) ,&early JCN
|
||||
|
@ -978,6 +1014,7 @@
|
|||
&save-ok "Successfully 20 "saved 20 00
|
||||
&save-failed "Failed 20 "to 20 "save 20 00
|
||||
&lines 20 "lines] 00
|
||||
&goto-line "Go 20 "to 20 "line: 20 00
|
||||
&save-prompt "File 20 "Name 20 "to 20 "Write: 20 00
|
||||
&quit-prompt "Save 20 "modified 20 "file 20 "(y/n)? 20 00
|
||||
&unknown-input "Unknown 20 "input: 20 00
|
||||
|
|
10
femto.txt
10
femto.txt
|
@ -45,22 +45,20 @@ the femto status line contains a lot of information:
|
|||
C-o save
|
||||
C-x quit
|
||||
|
||||
C-a go to beginning of line
|
||||
C-e go to end of line
|
||||
|
||||
C-b move back one character
|
||||
C-f move forward one character
|
||||
C-n move down one line
|
||||
C-p move up one line
|
||||
|
||||
M-v page up
|
||||
C-v page down
|
||||
|
||||
C-a go to beginning of line
|
||||
C-e go to end of line
|
||||
M-< go to start of file
|
||||
M-> go to end of file
|
||||
M-g go to line (TODO)
|
||||
M-g go to line
|
||||
|
||||
C-l refresh screen
|
||||
C-l refresh screen (DEBUG)
|
||||
C-d delete
|
||||
|
||||
(C stands for Control)
|
||||
|
|
Loading…
Reference in New Issue