cantstanya has quit [Remote host closed the connection]
cantstanya has joined #forth
<tabemann>
hey guys
<tp>
hey tabemann
<tabemann>
oh, if I didn't tell you, I got my automatic zeptoforth_full binary generator working
<tabemann>
all you need to do is physically attach a USB cord/programmer to the board, give it a version, platform, and device, and let'er rip
<tp>
nice work
<tabemann>
the only thing, though, is that downloading the ihex from the stm32f407 board takes almost 35 seconds
<tp>
should make binary releases a bit easier ?
<tabemann>
oh certainly
<tabemann>
because I've made mistakes in the past when doing so manually
<tp>
yeah, it's can be a slow process
<tp>
yeah, manually sucks because of the potential for mistakes
<tp>
thats why I went full automatic on binary generation
<tp>
tabemann, you can probably do it a LOT faster with QEMU tho
<tp>
like 0.1 second
jsoft has joined #forth
<tabemann>
I highly doubt it can emulate all the peripherals with QEMU
<tp>
it doesnt need to
<tabemann>
I mean things as simple as USARTs and like
<tp>
still doesnt
<tp>
:)
<tp>
this is only to produce the binary
<tabemann>
it needs to load the code via serial
<tp>
I made my ihex when I couldnt run qemu on FreeBSD
<tp>
sure
<tabemann>
and it implements serial with its peripherals
<tp>
if you look in the Mecrisp-Stellaris release at the 'thumbulator' stuff you will see how mathias uses it to produce complete binaries also
<tabemann>
but then you're changing the binary, and remember that the kernel binary is baked into the full binary along with the other stuff
<tabemann>
okay, I'm gonna have dinner now, bbl
<tp>
yeah
<tp>
thats how matthias produces a binary with the dissasembler etc
<tp>
cya
rdrop-exit has joined #forth
<crc>
good evening rdrop-exit
<rdrop-exit>
good morning crc (-_-)zzz c[]
<tp>
good evening crc and rdrop-exit
<rdrop-exit>
good morning tp
<crc>
rdrop-exit: that makes 132 cups of coffee
* tp
adds the final, final, final touches to his updated bluepill 'developer' binary release
<rdrop-exit>
my eyelids are struggling
<rdrop-exit>
never say final ;-)
<tp>
crc, I found md2html.awk @ https://bitbucket.org/yiyus/ which does a nice job of making a html page from my fossil *.md 'home' page
<tp>
rdrop-exit, why not, I've been saying it the last couple of weeks!
<rdrop-exit>
I have a soft spot for awk
<tp>
awwww ... k
merkc1 has joined #forth
<tabemann>
back
<tp>
welcome back!
<rdrop-exit>
and forth
reepca has joined #forth
<rdrop-exit>
tp, your final reminds me of the Mark Twain quote
<tp>
tabemann have a look in mecrisp-stellaris-2.5.3/stm32f051-ra/precompiled and what do you see ? "mecrisp-stellaris-stm32f051-with-disassembler-m0.bin"
<rdrop-exit>
Giving up smoking is the easiest thing in the world.
<rdrop-exit>
I know because I've done it thousands of times. -- Mark Twain
<tp>
hahah, yeah, clasic
<tp>
sadly the phrase "back and forth" supplies a few million extra hits when googling "forth"
<tabemann>
now that I have my special build script, I don't know what to do with zeptoforth
<tp>
sell it to Bill Gates for $1000000 ?
<tabemann>
lol
<tp>
tabemann, Ive found that releasing a Forth binary results in hundreds of times more downloads as most embedded people interested in Forth just cant be bothered dl one and then locating all the deps to make it useful
<tp>
intrested = curious
<tp>
so I do a binary for all releases now
<rdrop-exit>
why do you need a "special build script"?
<tp>
plus my binary release tarball also includes all the sources in one file, and a readme.html
<tp>
rdrop-exit, to suck the machine code out of the mcu to make a binary file release
<tabemann>
rdrop-exit: to make a binary containing the kernel and all the compiled Forth code one wants in one step
<tabemann>
rather than manually, which is lengthy and error-prone
<tabemann>
the script erases the flash on the MCU, uploads the kernel to the MCU, uploads the Forth code to be compiled to the MCU and compiles it, uploads ihex.fs to the MCU, uses ihex.fs to spit out the entire contents of the flash as ihex data which is then saved to a file, uses sed to edit that file to remove te extra crap, then converts it to a binary
<rdrop-exit>
wow, so roundabout
<tabemann>
many complex
dddddd has quit [Ping timeout: 265 seconds]
<tabemann>
but yeah, it is roundabout, which makes doing it manually a pain
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
<tp>
rdrop-exit, it's something most resident mcu forths dont do
merkc1 has quit [Ping timeout: 258 seconds]
<crc>
tp: no license on that file :(
<tp>
crc, true and the original authors homepage is defunct
<crc>
makes using it questionable
<tp>
does it ?
<tp>
the author has no contact info iirc ?
<tp>
and it's on a public site
<crc>
potentially. from a legal perspective, there's nothing giving any rights to use or modify
<tp>
I'm not a lawyer so I cant add anything useful
<crc>
(my system gets used in a business environment; we do have a lawyer who is concerned about such things)
<crc>
it would also introduce another external dependency (awk)
<tp>
for sure a Retro program to do this would be better
<tp>
but every unix system has awk ?
<crc>
does this work on all awk implantations?
<tp>
I dont know
<tp>
crc, do you know a fossil command that returns the short form hash of the current checkout ?
<crc>
that would be a concern. I dislike things outside my control
<tp>
understand
<rdrop-exit>
bbiab
<Zarutian_HTC>
crc: regarding 'legal perspectives': is that what these LICENSE textfiles are about? and do lawyers really belieave 'AS IS' clauses give any kind of defense against liability?
<rdrop-exit>
named after an estate near Dolgellau in Wales
<tp>
the name was a welsh giveaway
<rdrop-exit>
right :)
<rdrop-exit>
I believe my last name is of Welsh origin
<tp>
except I initially though it needed more "G" s
<Zarutian_HTC>
tp: ya ken þat nam har som saga?
<tp>
Zarutian_HTC, nei ég vissi ekki!
<Zarutian_HTC>
tp: wait Google Translate came up with something sensible from what I wrote? It wasnt Icelandic btw but my guess on psuedo welsh
<tp>
Zarutian_HTC, GT thinks it's Icelandic
<Zarutian_HTC>
in more usual english: you know that name has some saga (behind it)?
<tp>
GT "know that it took her story?"
<tp>
Zarutian_HTC, only what a brief scan of the wikipedia article said
<Zarutian_HTC>
try this: "lentu ok tóku söl, ei voru aðrar góðar nytjar"
<tp>
"landed and made sales, there were no other good uses"
<tp>
hehe
<tp>
too hard, Forth is easier!
rdrop-exit has quit [Quit: Lost terminal]
rdrop-exit has joined #forth
<Zarutian_HTC>
so close but the "made sales" is crap, should been "took <type of c vitamin rich cabbage grass>"
<tp>
thats the problem with translating languages, not so easy
<Zarutian_HTC>
vikings knew about c vitamin deficency desease called skyrbjúgur
<tp>
you should see the trouble I have translating C to Forth ;-)
<rdrop-exit>
best not to
<rdrop-exit>
reverse engineer the C to a spec first
<rdrop-exit>
then meet the spec with Forth flair
<rdrop-exit>
;-)
<crc>
this is the best way
<tp>
rdrop-exit, I have to use C programs to learn how certain hardware is used, from time to time
<rdrop-exit>
sure
<tp>
I'm after hardware understanding only, I couldnt care less about C
<tp>
it's just that *everyone* uses C now, it's a plague
<rdrop-exit>
that's fine, use the C to understand the hardware if necessary, just don't attempt transliteration of C to Forth, that way lies madness
<tp>
oh no, I never do that, in a tech
<tp>
in = I'm
<tp>
I've seen a few embedded C users trying Forth, and it often doesnt end well
<rdrop-exit>
I imagine so
<tp>
mainly as they are used to the C way of cramming every register bitfield into the one statement
<Zarutian_HTC>
I usually skip the C examples in datasheets and go directly to the assembler examples
<rdrop-exit>
better
<tp>
me too, sadly examples have been in C ONLY for quite a while and even that is getting worse
<tp>
STMicro almost always give their examples IN C
<Zarutian_HTC>
such code is usually better than any c compiler targetting the thing spits out
<tp>
and lately they have begun giving them in MBED or some ghastly GUI thing with NO CODE
<tp>
Zarutian_HTC, I agree 100%
<Zarutian_HTC>
once I came across output that was using simulated arithmic shift to implement bit rotate operation. The kicker? the code for the arithmic shift used the invuilr bit rotate instruction!
<tp>
hahahh
<Zarutian_HTC>
inbuilt*
<rdrop-exit>
the mind boggles
<tp>
sometimes ya just gotta wonder ...
<tp>
in a forum today I read a oldish but very experienced Windows guy state that " when learning C there is more to life than blinking a LED in a while loop"
<Zarutian_HTC>
and C isnt that well specified either
<tp>
I felt that just blinking a led can keep someone occupied for months
<tp>
it's typical for a C programmer to think that all LEDS blink in a while loop, but of course there are many diverse ways a LED may blink
<tp>
was it a blocking or non blocking loop ?, RTOS, multitasking, did it use interrupts, did it use a inbuilt hardware timer etc
<Zarutian_HTC>
some ways are timer interrupt driven (used to see if there are any interrupt stormsl
<Zarutian_HTC>
s/sl/s)/
<tp>
sure
<Zarutian_HTC>
is it morsing out an error message?
<tp>
only in a toyota camry EMU ;-)
<Zarutian_HTC>
or some stuff made by an ham operator I know
<tp>
hehe
<tp>
finished I think, how cool is this ?
<tp>
tp@gronk:~/mecrisp-stellaris/f103-developer-image/imageclones% tree
<tp>
there is a full source file used to build the Forth binary, one with comments, one without
<tp>
a HTML readme converted from my markdown readme and a full dictionary list
<tp>
and then it's all turned into a tarball ready to publish. The entire process is automated
<rdrop-exit>
kudos
<tp>
it's pretty slick!
<tp>
the whole think is 93kB, no Eclipse or Java required :)
<tp>
-k+g
<Zarutian_HTC>
one funny thing I came across when taking a look at failing electronics device a customer wanted a repair quote on: those warranty void stickers on some of the casing screws
<Zarutian_HTC>
in the user manual it said that by removing or destroying the stickers the warranty on the stickers would be void
<tp>
for anyone with a "Blue Pill"
<tp>
crest, you have the odd one or 2 Blue Pills :)
<tp>
Zarutian_HTC, yeah
<Zarutian_HTC>
not on the electronics device but the warranty on the stickers
<tp>
as they do
<tp>
hahah
<tp>
I totally missed that!
<rdrop-exit>
bizarre
<Zarutian_HTC>
it was manly an 'user repair' deterrant
<Zarutian_HTC>
mainly*
<rdrop-exit>
deterring "manly" user repairs makes sense :)
<tp>
I hated warranty claims because here in Australia falsely claiming warranty is considered fair game
<tp>
id get wifi units full of water and the owner would swear there was no water involved
<Zarutian_HTC>
and if someone called the manifacturer about the statement in the user manual they would get 'oh you actually read the manual! congrats!' response
<tp>
so Id have to send them a pic of their unit full of rust and mold etc
<rdrop-exit>
Tim the Tool Guy attempting "manly" repairs
<tp>
Zarutian_HTC, maybe send them a prize ?
<Zarutian_HTC>
another manual gem: "There are two reasons why you are reading this manual. The first one is that you are reading it, we hope, before using the product. The second, which is more likely, you did something and now you got an error condition. Troubleshooting is on page"
<tp>
some good manuals!
<Zarutian_HTC>
or a very pessimistic technical writers
gravicappa has joined #forth
dys has quit [Ping timeout: 256 seconds]
_whitelogger has joined #forth
mtsd has joined #forth
mtsd has quit [Quit: mtsd]
mtsd has joined #forth
mtsd has quit [Read error: Connection reset by peer]
mtsd has joined #forth
dys has joined #forth
clog has quit [Ping timeout: 265 seconds]
clog has joined #forth
reepca has quit [Ping timeout: 256 seconds]
<veltas>
crc: I'm on Linux, doesn't need to be that frequent, depends on life of project. Hard to put a number down but at least a bit of dev most months to fix outstanding issues or refactor?
<veltas>
I'm currently looking at ikforth, if someone in here wants to shill their own forth then go for it, just want something vaguelly similar to standard forth
<veltas>
In case more people see: I am looking for a standardish forth for x86-32, that can run under Linux, and is 'actively developed'. I.e. more than a couple commits in the last 2 years ;-)
<veltas>
I am quite open minded within those bounds
xek has joined #forth
<crest>
tp: bought 5 for < 3€ a piece (including shipping) from a local amazon seller
<tp>
crest, I bought 12x of a different board, same chip tho years ago for $9 AUD each
<tp>
crest, which is what I develop for the STM32F103C8 on
<crest>
this image uses a fast serial connection with handshaking instead of the serial over usb?
<tp>
crest, the "free" app is rewritten now, it was always slightly wrong as it didnt include the flash the kernel used
<tp>
crest, yeah, the usb port is useless for development because as you know, a mcu reset drops the device
<crest>
it's not
<tp>
?
<crest>
there is a simple solution
<tp>
yeah, use serial
<crest>
configure picocom to stay quiet and put it in a loop that reconnects
<tp>
well you can add usb easily enuf
<tp>
this is the dev version afterall
<crest>
have you used wireless serial "bridges"?
<tp>
just upload usb.fs from the Mecrisp-Stellaris release for the stm32f103
<tp>
no
<crest>
does mecrisp stellaris support multiple connections e.g. two USARTs?
<tp>
not as standard afaik
dddddd has joined #forth
Zarutian_HTC has quit [Ping timeout: 264 seconds]
WickedShell has quit [Remote host closed the connection]
patrickg has quit [Remote host closed the connection]
mtsd has quit [Read error: Connection reset by peer]
mtsd has joined #forth
merkc1 has joined #forth
crest has joined #forth
mtsd has quit [Quit: mtsd]
Zarutian_HTC has joined #forth
<merkc1>
what's the difference between cmove and cmove> ?
<veltas>
merkc1: the direction of copying
<crest>
merkc1: one copies forward and the other in reverse
<crest>
this is most important it the target and source partially overlap
<crest>
but some cpus have prefetchers that work better in one direction than the other
<veltas>
So you can nicely implement MOVE with CMOVE and CMOVE>, with no intermediary buffer
<veltas>
If we're talking optimisation, there are a *ton* of performance implications of the description of CMOVE and CMOVE>, and one would hope your platform's MOVE was properly optimised for it
<veltas>
i.e. probably not using CMOVE or CMOVE> at all