reformat
This commit is contained in:
parent
1c7ed060b8
commit
99e2ac5a1c
125
femto.tal
125
femto.tal
|
@ -1,7 +1,40 @@
|
||||||
( femto.tal )
|
( femto.tal )
|
||||||
( )
|
( )
|
||||||
( requires terminal to be in raw mode )
|
( requires terminal to be in raw mode )
|
||||||
( see femto launcher script for more details )
|
( see femto launcher script for more details )
|
||||||
|
( )
|
||||||
|
( ANSI sequences )
|
||||||
|
( )
|
||||||
|
( goto $row,$col ESC [ $row ; $col H )
|
||||||
|
( goto home ESC [ H )
|
||||||
|
( go up ESC [ A )
|
||||||
|
( go down ESC [ B )
|
||||||
|
( go right ESC [ C )
|
||||||
|
( go left ESC [ D )
|
||||||
|
( )
|
||||||
|
( query cursor ESC [ 6 n )
|
||||||
|
( )
|
||||||
|
( all scroll on ESC [ r )
|
||||||
|
( region scroll on ESC [ $y0 ; $y1 r )
|
||||||
|
( scroll down ESC D )
|
||||||
|
( scroll up ESC M )
|
||||||
|
( )
|
||||||
|
( erase cur->eol ESC [ K )
|
||||||
|
( erase cur->sol ESC [ 1 K )
|
||||||
|
( erase line ESC [ 2 K )
|
||||||
|
( erase line->bot ESC [ J )
|
||||||
|
( erase line->top ESC [ 1 J )
|
||||||
|
( erase all ESC [ 2 J )
|
||||||
|
( )
|
||||||
|
( set attrs ESC [ $at1 ; ... m )
|
||||||
|
( reset ESC [ m )
|
||||||
|
( 0 reset, 1 bright, 2 dim, )
|
||||||
|
( 4 underscore, 5 blink, )
|
||||||
|
( 7 reverse, 8 hidden )
|
||||||
|
( )
|
||||||
|
( fg (30-37), bg (40-47) )
|
||||||
|
( black, red, green, yellow, )
|
||||||
|
( blue, magenta, cyan, white )
|
||||||
|
|
||||||
|00 @System [ &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 ]
|
|00 @System [ &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 ]
|
||||||
|10 @Console [ &vector $2 &read $1 &pad $5 &write $1 &error $1 ]
|
|10 @Console [ &vector $2 &read $1 &pad $5 &write $1 &error $1 ]
|
||||||
|
@ -13,7 +46,6 @@
|
||||||
%nl { #0a18 DEO }
|
%nl { #0a18 DEO }
|
||||||
%cr { #0d18 DEO }
|
%cr { #0d18 DEO }
|
||||||
%exit { #01 .System/halt DEO BRK }
|
%exit { #01 .System/halt DEO BRK }
|
||||||
|
|
||||||
%ansi { #1b18 DEO #5b18 DEO }
|
%ansi { #1b18 DEO #5b18 DEO }
|
||||||
|
|
||||||
%PEN-COL { ;term/cols LDA2 #0002 SUB2 NIP }
|
%PEN-COL { ;term/cols LDA2 #0002 SUB2 NIP }
|
||||||
|
@ -22,64 +54,33 @@
|
||||||
%LAST-LINE { ;term/rows LDA2 #0001 SUB2 NIP }
|
%LAST-LINE { ;term/rows LDA2 #0001 SUB2 NIP }
|
||||||
%PEN-LINE { ;term/rows LDA2 #0002 SUB2 NIP }
|
%PEN-LINE { ;term/rows LDA2 #0002 SUB2 NIP }
|
||||||
|
|
||||||
( ANSI sequences )
|
|
||||||
( goto $row,$col ESC [ $row ; $col H )
|
|
||||||
( goto home ESC [ H )
|
|
||||||
( go up ESC [ A )
|
|
||||||
( go down ESC [ B )
|
|
||||||
( go right ESC [ C )
|
|
||||||
( go left ESC [ D )
|
|
||||||
( )
|
|
||||||
( query cursor ESC [ 6 n )
|
|
||||||
( )
|
|
||||||
( all scroll on ESC [ r )
|
|
||||||
( region scroll on ESC [ $y0 ; $y1 r )
|
|
||||||
( scroll down ESC D )
|
|
||||||
( scroll up ESC M )
|
|
||||||
( )
|
|
||||||
( erase cur->eol ESC [ K )
|
|
||||||
( erase cur->sol ESC [ 1 K )
|
|
||||||
( erase line ESC [ 2 K )
|
|
||||||
( erase line->bot ESC [ J )
|
|
||||||
( erase line->top ESC [ 1 J )
|
|
||||||
( erase all ESC [ 2 J )
|
|
||||||
( )
|
|
||||||
( set attrs ESC [ $at1 ; ... m )
|
|
||||||
( reset ESC [ m )
|
|
||||||
( 0 reset, 1 bright, 2 dim, )
|
|
||||||
( 4 underscore, 5 blink, )
|
|
||||||
( 7 reverse, 8 hidden )
|
|
||||||
( )
|
|
||||||
( fg (30-37), bg (40-47) )
|
|
||||||
( black, red, green, yellow, )
|
|
||||||
( blue, magenta, cyan, white )
|
|
||||||
|
|
||||||
|0100
|
|0100
|
||||||
;read-filename .Console/vector DEO2
|
;read-filename .Console/vector DEO2
|
||||||
|
|
||||||
( ;demo-path ;open-file JSR2 )
|
( ;demo-path ;open-file JSR2 )
|
||||||
|
|
||||||
( use this if hardcoding to 80x24 )
|
( use this if hardcoding to 80x24 )
|
||||||
( ;setup-80x24 JSR2 )
|
( ;setup-80x24 JSR2 )
|
||||||
|
|
||||||
( use this to detect terminal size )
|
( use this to detect terminal size )
|
||||||
( ;setup-terminal-size JSR2 )
|
( ;setup-terminal-size JSR2 )
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
@open-file ( filename* -> )
|
@open-file ( filename* -> )
|
||||||
.File/name DEO2
|
.File/name DEO2
|
||||||
#8000 .File/length DEO2
|
#8000 .File/length DEO2
|
||||||
;buffer/data .File/read DEO2
|
;buffer/data .File/read DEO2
|
||||||
|
|
||||||
.File/success DEI2 #0000 GTH2 ,&ok JCN
|
.File/success DEI2 #0000 GTH2 ,&ok JCN
|
||||||
;input-error ;println JSR2 nl exit
|
;input-error ;println JSR2 nl exit
|
||||||
|
|
||||||
&ok
|
( calculate buffer limit address using start + size )
|
||||||
( save how many bytes were read )
|
&ok .File/success DEI2 ;buffer/data ADD2 ;buffer/limit STA2
|
||||||
.File/success DEI2 ;buffer/data ADD2 ;buffer/limit STA2
|
|
||||||
JMP2r
|
JMP2r
|
||||||
|
|
||||||
@setup-terminal-size
|
@setup-terminal-size
|
||||||
|
( ;setup-80x24 JSR2 )
|
||||||
#fe #fe ;term-move-cursor JSR2
|
#fe #fe ;term-move-cursor JSR2
|
||||||
;term-get-cursor-position JSR2
|
;term-get-cursor-position JSR2
|
||||||
;tmp/data ;tmp/pos STA2
|
;tmp/data ;tmp/pos STA2
|
||||||
|
@ -94,7 +95,7 @@
|
||||||
|
|
||||||
@parse-terminal-size ( -> )
|
@parse-terminal-size ( -> )
|
||||||
LIT2r 0000 LIT2r 0000
|
LIT2r 0000 LIT2r 0000
|
||||||
;tmp/data LDAk #1b NEQ ,&parse-error JCN ( i ) INC2
|
;tmp/data LDAk #1b NEQ ,&parse-error JCN ( i ) INC2
|
||||||
LDAk LIT '[ NEQ ,&parse-error JCN ( i ) INC2
|
LDAk LIT '[ NEQ ,&parse-error JCN ( i ) INC2
|
||||||
&loop
|
&loop
|
||||||
LDAk LIT '; EQU ,&parse-col JCN
|
LDAk LIT '; EQU ,&parse-col JCN
|
||||||
|
@ -123,16 +124,15 @@
|
||||||
JMP2r
|
JMP2r
|
||||||
|
|
||||||
@read-filename ( -> )
|
@read-filename ( -> )
|
||||||
#12 DEI #0a EQU ,&execute JCN ( did we read \n ? )
|
#12 DEI #0a EQU ,&execute JCN ( did we read \n ? )
|
||||||
#12 DEI ;tmp/pos LDA2 STA ( no, so save in buffer )
|
#12 DEI ;tmp/pos LDA2 STA ( no, so save in buffer )
|
||||||
;tmp/pos LDA2 INC2 ;tmp/pos STA2 ( pos++ )
|
;tmp/pos LDA2 INC2 ;tmp/pos STA2 ( pos++ )
|
||||||
BRK ( return )
|
BRK ( return )
|
||||||
|
|
||||||
&execute ( we saw a newline, so do something )
|
&execute ( we saw a newline, so do something )
|
||||||
#00 ;tmp/pos LDA2 STA ( null terminate str )
|
#00 ;tmp/pos LDA2 STA ( null terminate str )
|
||||||
;tmp/data ;tmp/pos STA2 ( reset pos )
|
;tmp/data ;tmp/pos STA2 ( reset pos )
|
||||||
;tmp/data ;open-file JSR2 ( open file )
|
;tmp/data ;open-file JSR2 ( open file )
|
||||||
( ;setup-80x24 JSR2 )
|
|
||||||
;setup-terminal-size JSR2
|
;setup-terminal-size JSR2
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
|
@ -244,16 +244,23 @@
|
||||||
;draw-all JSR2
|
;draw-all JSR2
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
( TODO: 8-bit meta/alt? )
|
( TODO: M-v for page up and M-> for goto end )
|
||||||
( TODO: tab? )
|
( M-f and M-b for next/previous word )
|
||||||
@on-key
|
( M-n and M-p for next/previous paragraph )
|
||||||
;saw-esc LDA ,&escaped JCN ,&unmodified JMP
|
( maybe M-% for search&replace )
|
||||||
&escaped
|
@on-key-escaped
|
||||||
#00 ;saw-esc STA
|
#00 ;saw-esc STA
|
||||||
.Console/read DEI LIT '< EQU ( M-< ) ;goto-start JCN2
|
.Console/read DEI LIT '< EQU ( M-< ) ;goto-start JCN2
|
||||||
.Console/read DEI LIT '> EQU ( M-> ) ;goto-end JCN2
|
.Console/read DEI LIT '> EQU ( M-> ) ;goto-end JCN2
|
||||||
BRK
|
BRK
|
||||||
&unmodified
|
|
||||||
|
( TODO: C-g or C-h for help )
|
||||||
|
( TODO: C-s for search )
|
||||||
|
( TODO: C-v for page down )
|
||||||
|
( TODO: 8-bit meta/alt? )
|
||||||
|
( TODO: tab input? )
|
||||||
|
@on-key
|
||||||
|
;saw-esc LDA ;on-key-escaped JCN2
|
||||||
.Console/read DEI #01 EQU ( C-a ) ;bol JCN2
|
.Console/read DEI #01 EQU ( C-a ) ;bol JCN2
|
||||||
.Console/read DEI #02 EQU ( C-b ) ;back JCN2
|
.Console/read DEI #02 EQU ( C-b ) ;back JCN2
|
||||||
.Console/read DEI #04 EQU ( C-d ) ;delete JCN2
|
.Console/read DEI #04 EQU ( C-d ) ;delete JCN2
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
for NAME in about.txt math32.tal test-math32.tal tester.py primes32.tal regex.tal repl-regex.tal test-regex.tal grep.tal femto.tal femto.txt femto rainbow.tal drums.tal drums2.tal bfloat16.tal fixed.tal; do
|
for NAME in about.txt math32.tal test-math32.tal tester.py primes32.tal regex.tal repl-regex.tal test-regex.tal grep.tal femto.tal femto.txt femto rainbow.tal drums.tal drums2.tal bfloat16.tal fixed.tal; do
|
||||||
|
echo "-> $NAME"
|
||||||
cp $NAME /var/www/plastic-idolatry.com/html/erik/nxu
|
cp $NAME /var/www/plastic-idolatry.com/html/erik/nxu
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue