TCZ has joined #forth
Zarutian_HTC has quit [Read error: Connection reset by peer]
Zarutian_HTC has joined #forth
TCZ has quit [Quit: Leaving]
dave0 has joined #forth
jedb_ has joined #forth
<
crest>
tabemann, tp: i added file uploads to swdcom
<
crest>
i used ascii control chars to allow uploads to be canceled by the target mcu
<
crest>
that enables the forth system to abort transfers and ignore the partial transfer
<
crest>
those two words are enough:
<
crest>
: cancel ( -- ) $18 emit begin key $19 = until ;
<
crest>
: require ( -- ) token find drop if cancel then ;
<
tabemann>
use NAK for canceling
<
crest>
to allow files to begin with require my-word
<
crest>
nak is used for error handling
<
crest>
i patched the Fehler_Quit and Fehler_Quit_n macros to embedd NAK in all error messages
<
tabemann>
zeptoforth already has NAK in all error messages
<
crest>
which does something else
<
crest>
this isn't an error
<
tabemann>
it uses ACK to indicate readiness for input
<
crest>
but a polite way for the microcontroller to tell the host that the file is already loaded
<
tabemann>
ich verstehe es
<
crest>
my "protocol" is fairly simple
<
crest>
i begin each file upload by injecting a little bit of forth code that emits an ascii file seperator
<
crest>
this is required to reset the line counter on the receiving end
<
crest>
and i can use literal control char because the mecrisp accept word would remove it from the input
<
crest>
which in neatly removes it from the echo
*sigh*
<
tabemann>
yeah, zeptoforth does the same thing - control characters it does not recognize it removes from the input buffer and does not echo
<
crest>
which prevents the host from using them to sync on
<
crest>
took a me way too long to look into the code and find my way from quit -> query -> accept
<
tabemann>
theres a reason why control characters need to be stripped
<
tabemann>
because otherwise, if you pressed up, the cursor would go up, which is really confusing to the user
<
crest>
wouldn't it be enough to ignore escape?
<
tabemann>
well that's what it does
<
tabemann>
this way it just outputs a bit of garbage
<
crest>
escape is just one of 32 chontrol characters
<
crest>
okay you don't want to echo the rest of the escape sequence
<
tabemann>
you can't strip out the rest of the escape sequence because it consists of printable characters
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
<
crest>
so you didn't attempt to detect all common escape sequences^ ^
* tabemann
wonders what's up with tp, since he's seemed to've vanished; same with rdrop-exit
<
tabemann>
no I didn't
<
crest>
tabemann: he was active in #mecrisp the last few days
<
tabemann>
there's too many and they're too complex to catch'em all; better to not bother
<
crest>
so why not just ignore escape
<
crest>
and echo unknown escape sequences
<
crest>
but treat them as spaces otherwise
<
crest>
or just ignore them completly
<
tabemann>
because other characters may have other weird effects if echoed
<
tabemann>
like if you echoed XON or XOFF
<
crest>
in that case there is no better solution than injecting code
<
crest>
e.g. "\n$xx emit\n"
<
crest>
to send a control char
<
tabemann>
that works
<
crest>
oh and i found a simple solution to download hexdumps through swdcom
<
crest>
it just disconnects if it reads a ascii end of transmission
<
tabemann>
I could add that to ihex
<
crest>
the next steps are boring
<
crest>
document the code, clean it up a little
<
crest>
and improve the upload handling
karswell has joined #forth
reepca has quit [Read error: Connection reset by peer]
reepca has joined #forth
jedb_ has quit [Remote host closed the connection]
jedb_ has joined #forth
reepca has quit [Ping timeout: 258 seconds]
kamid has quit [Ping timeout: 246 seconds]
karswell_ has joined #forth
karswell has quit [Remote host closed the connection]
jsoft has quit [Ping timeout: 256 seconds]
Zarutian_HTC has quit [Quit: Bye]
Zarutian_HTC has joined #forth
karswell_ has quit [Ping timeout: 246 seconds]
jedb_ has quit [Read error: Connection reset by peer]
_whitelogger has joined #forth
dddddd has quit [Ping timeout: 265 seconds]
gravicappa has joined #forth
jedb has joined #forth
jedb_ has joined #forth
jedb has quit [Ping timeout: 260 seconds]
jsoft has joined #forth
_whitelogger has joined #forth
deesix_ has joined #forth
deesix has quit [Ping timeout: 258 seconds]
deesix_ has quit [Ping timeout: 256 seconds]
deesix has joined #forth
dys has quit [Ping timeout: 240 seconds]
rann has quit [Ping timeout: 240 seconds]
rann has joined #forth
dddddd has joined #forth
dys has joined #forth
jsoft has quit [Ping timeout: 240 seconds]
dave0 has quit [Quit: dave's not here]
X-Scale` has joined #forth
TCZ has joined #forth
X-Scale has quit [Ping timeout: 264 seconds]
X-Scale` is now known as X-Scale
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
jedb_ has quit [Ping timeout: 264 seconds]
TCZ has quit [Quit: Leaving]
gravicappa has quit [Ping timeout: 265 seconds]
Zarutian_HTC has quit [Ping timeout: 246 seconds]
Zarutian_HTC has joined #forth
foobared has joined #forth
cmtptr has quit [Read error: Connection reset by peer]
gravicappa has joined #forth
foobared has left #forth [#forth]
cmtptr has joined #forth
gravicappa has quit [Ping timeout: 256 seconds]
cmtptr_ has joined #forth
cmtptr has quit [Ping timeout: 256 seconds]
dave0 has joined #forth
jsoft has joined #forth