X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` is now known as X-Scale
<crab1> tabemann: how you make CREATE and DOES> will depend on some design decisions like threading technique and all but CREATE has to make a word's header and code field from its name and link it to the dictionary then I think before DOES> and (DOES>) you should look at ;CODE and (;CODE).
<tabemann> back
<tabemann> I'm implementing CREATE separately from <BUILD / DOES>
<tabemann> so I can have a simpler implementation of CREATE
<crab1> I don't know how you would do it without implementing them separately
<crab1> but yeah create just makes a header something like | 4 NAME link |
tabemann has quit [Ping timeout: 265 seconds]
ryke has quit [Ping timeout: 265 seconds]
iyzsong has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
<jsoft> tp, Hey so whats your synopsis on stm32l0's vs other mecrisp capable low power uC offerings?
rdrop-exit has joined #forth
<rdrop-exit> c[] good afternoon Forthwrights
<tp> afternoon oh unwell Zen Forth Guru living in the shadow of the volcano!
<rdrop-exit> my life is one big adventure ;-)
<rdrop-exit> hello Master Forth Technician (tm)
<tp> sounds like it!
<tp> rdrop-exit, as youre the local risc-v guru, in your readings did you see only JTAG, was there any mention of SWD ?
<rdrop-exit> Isn't SWD ARM specific?
<tp> yes
<tp> at least I believe so
<rdrop-exit> Basically in the RISC-V spec they have a thing called the DMI (Debug Module Interface)
<rdrop-exit> which in theory doesn't have to be JTAG
<tp> rdrop-exit, have you read the debug specs for cortex-m ?
<rdrop-exit> but for the moment the only DMI that's spec'd is a JTAG DMI
<rdrop-exit> no, I have not
<rdrop-exit> I didn't delve into ARM, decided to focus on RISC-V
<tp> darn, youre the one person who could help me if he had!
<rdrop-exit> You're having problems with SWD?
<tp> it's more fun deducing alone, but Ive been deducing all day and so far ... nada
<tp> no, Im designing as usual
<tp> i want to read a dbg register, and I can, problem is that it's all 0's
<tp> I know it had ID data (from the specs)
<tp> I've phoned 'psychic friends' and they 'feel' that the register is unhappy talking to me directly and I must first please a register it knows
<rdrop-exit> Are you using a debugger to read the debug register via SWD?
<rdrop-exit> I know nothing about ARM but I would assume the CPU has to be in debug mode before you can access it.
<tp> do you ever get tired of being right ?
<tp> i can read the register in debug mode via SWD/JTAG
<tp> but I cant from within the MCU, however the doc is a bot ambiguous there
<tp> and I quote " The STM32F10xxx MCUs integrate an MCU ID code. This ID identifies the ST MCU part-
<tp> number and the die revision. It is part of the DBG_MCU component and is mapped on the
<tp> external PPB bus (see Section 31.16). This code is accessible using the JTAG debug port
<tp> (four to five pins) or the SW debug port (two pins) or by the user software."
<tp> *or by the user software* is the ambiguous part
<rdrop-exit> In RISC-V there are a *few* debug registers that are also accessible in other CPU modes, but they are the exception.
<tp> is there a MCU ID code ?
gravicappa has joined #forth
<rdrop-exit> yes
<rdrop-exit> It's a Machine Mode CSR
<tp> is it only accessable in dbug mode ?
<rdrop-exit> No
<tp> and that makes sense, why limit a device ID to debug mode only ?
<rdrop-exit> 0 shadow RV32 - CSRs - M-Mode - Machine IDs & csr.misa
<rdrop-exit> 1
<rdrop-exit> 2 csr.mvendorid CSR# of 32-bit Machine Vendor ID CSR (R/O).
<rdrop-exit> 4 csr.marchid CSR# of MXLEN-bit Machine Architecture ID CSR (R/O).
<rdrop-exit> 3
<rdrop-exit> 5
<rdrop-exit> 6 csr.mimpid CSR# of MXLEN-bit Machine Implementation ID CSR (R/O).
<rdrop-exit> 7
<tp> there are valid reasons for a user program wanting to know it
<rdrop-exit> 8 csr.mhartid CSR# of MXLEN-bit Hart ID CSR (R/O).
<rdrop-exit> 9
<rdrop-exit> a csr.misa CSR# of MXLEN-bit Machine ISA and extensions CSR
<rdrop-exit> b (WARL).
<tp> yeah, makes sense
<rdrop-exit> That's my shadow block for it
<rdrop-exit> It's accessible in Machine Mode, but not in Supervisor Mode or User Mode
<rdrop-exit> (and in Debug Mode too of course)
<tp> i posted a question in a popular forum about it but also added "replies from those with actual experience on this exact matter appreciated"
<rdrop-exit> :))
<tp> trying to stop the usual idiots dumping sections of the manual as a reply
<rdrop-exit> I would assume on the ARM it would be similarly limited, is the program running in ARM's "machine mode" or whatever they call it?
<tp> ar`m doesnt have modes like that as afaik
<tp> rather cortex-m
<tp> I think it only has debug and normal mode
<tp> and I can read the registers in debug, no problem
<tp> but I want to be able to read them in user mode. they are listed in the CMSIS-SVD so should be available
<tp> and they are, but the contents are not (so far)
<rdrop-exit> that's also the case in small RISC-V, they only have D-Mode and M-Mode, while the bigger chips also have a S-Mode and U-Mode
<rdrop-exit> (for running OS's and VMs and such)
<rdrop-exit> Which Cortex-M in particular are you using
<tp> in this case STM32F103C8
<tp> which is a STM32F1xx class cortex-m3
<rdrop-exit> thanks, taking a look
<tp> I guess youre finding (as I am) that googling will produce millions of hits all the same providing a C user asks it ?
<rdrop-exit> I usually go to the specs
<tp> but outside the usual boring and obvous C user questions ... nothing
<tp> Ive grepped the device specs and thats the only info Ive come up with
<tp> the info is probably in another more specific ARM doc
<tp> .. maybe
<rdrop-exit> "The Cortex-M3 processor supports two operating modes, Thread and Handler and two levels of access for the code, privileged and unprivileged"
<rdrop-exit> Maybe this priveleged/unpriveleged stuff is the analagous ARM concept
reepca has quit [Read error: Connection reset by peer]
<tp> eww
<rdrop-exit> "Code can execute as privileged or unprivileged. Unprivileged execution limits or excludes access to some resources. Privileged execution has access to all resources. Handler mode is always privileged. Thread mode can be privileged or unprivileged."
<tp> Ive been conveniently ignorant using Forth on this chip
<rdrop-exit> Perhaps your Forth hides too many of the details
<tp> and perhaps I'm in 'unprivileged' is what youre thinking ?
<rdrop-exit> yes
<tp> I've had no problems until now
<rdrop-exit> The above quote is from section 3.2.3 of the
<tp> usually a register that hides the data belongs to a peripheral that is not enabled
<rdrop-exit> CortexTM-M3
<rdrop-exit> Revision r2p0 Technical Reference Manual
<tp> but debug sounds like the province of the privileged
<tp> Ill do a grep on "privileged"
<rdrop-exit> I would assume the *few* debug registers that may be accessible to a program would be limited to the most privileged mode
<tp> yes, I think youre right
reepca has joined #forth
<rdrop-exit> I'm jst shooting in the dark of course
<rdrop-exit> *just
<tp> it's all we have
<tp> "priv" is mentioned only 3 times in the entire tech manual and none refer to this issue
<tp> it does refer to deep debug stuff
<tp> as you expected
<tp> there is nothing relating on how to read these registers from inside the mcu
<tp> I'm desperate now ... ill have to email Matthias!
<rdrop-exit> that may be covered in a separate Cortex-M3 debug spec
<rdrop-exit> At least that's how it is with RISC-V
<tp> I think youre right, but it's odd. generally if thats the case there is *nothing* in the stm tech data or the SVD
<tp> the fact that these two registers are in the SVD and mentioned in the STMN tech doc normally indicates it's within their province and not arm
<tp> still there is a ton of docs, bound to be some ommisions and crossovers
<rdrop-exit> A Machine ID register though, isn't normally a debug register, it should just require that you be in the most priveledged CPU mode right above degug mode, (what RISC-V calls Machine Mode)
<rdrop-exit> So you shouldn't have to delve into the debug specs for it
<tp> hell ..
<tp> I just quit out of debug mode and guess what ?
<tp> DBG_IDCODE.
<tp> DBG_IDCODE $20036410
<tp> 1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0
<tp> 3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1|
<tp> 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0
<rdrop-exit> voila
<tp> and after a hard reset ...
<tp> DBG_IDCODE.
<tp> DBG_IDCODE $00000000
<tp> 1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0
<tp> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
<tp> 3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1|
<tp> at least I know that something makes this possible
<tp> and it has to do with dbg mode
<rdrop-exit> Can you use your debugger to tell you if your Forth program is running in "privileged" mode?
<tp> the Forth program wasnt running as the program was halted before I rudely pulled the jtag plug
<tp> but thats a great idea
<tp> !
<tp> soon as I hook up the jtag and run openocd I can read the register from forth!
<tp> i just halted it before as SOP
<rdrop-exit> heh
<tp> so the truth is out there !
<tp> ... somewhere
<rdrop-exit> I'm happy I won't need openocd, doens't seem trustworthy
<tp> I guess I just need to read *every* register before I attach the jtag and grep it
<tp> and Im actually planning to make a binary to do just that for another reason anyway!
<tp> I mean difference it against a non jtag one
<tp> all my XML stuff is still paying off
<tp> check this out, try not to throw up
<rdrop-exit> ok
<tp> <?xml version='1.0' encoding='UTF-8'?>
<tp> <device xs:noNamespaceSchemaLocation='STM32F103_DIAGNOSTICS_V2.0.xsd'>
<tp> <STM32F103C6>0 </STM32F103C6>
<tp> <markings>
<tp> <STM32F103C8>0 </STM32F103C8>
<tp> <STM32F103CB>0 </STM32F103CB>
<tp> <CKS32F103C8T6>0 </CKS32F103C8T6>
<tp> <GD32F103C8T6>0 </GD32F103C8T6>
<tp> <other>0 </other>
<tp> </markings>
<tp> <flash>
<tp> <size-register>$FFFF0040 </size-register>
<tp> <calculated-size>65536 </calculated-size>
<tp> <second-64kB-block>0 </second-64kB-block>
<tp> <flash>
<tp> <uid31:0>
<tp> <hex>$066FFF53 </hex>
<tp> <ascii>.o.S</ascii>
<tp> </uid31:0>
<tp> <uid63:32>
<tp> <hex>$55507150 </hex>
<tp> <ascii>UPqP</ascii>
<tp> </uid63:32>
<tp> <uid95:64>
<tp> <hex>$87042957 </hex>
<tp> <ascii>..)W</ascii>
<tp> </uid95:64-hex>
<tp> </device>
<tp> thats straight out of the chip running my new Forth diags prog
<rdrop-exit> damn, where did I put that barf bag? ;-)
<tp> i decided to create a 'record' option which generates the XML
<tp> I did warn you ;-)
<rdrop-exit> tether tether tether
<rdrop-exit> (cough cough)
<rdrop-exit> :)
<rdrop-exit> better now
<tp> nah, Ive had 88 downloads of my V1 diags binary and it's all windows mainly arduino users
<rdrop-exit> cool
<rdrop-exit> I'm glad you convinced me to go RISC-V instead of ARM
<tp> it will be a freezing day in hell whan I manage to convince you of anything!
<tp> hey I've a suggestion song for your daughter, it might suit her style, but it could make her infamous and hated by the left for 1000 years tho ...
<rdrop-exit> You're insights were whatr put me over the edge :)
<rdrop-exit> ok
<tp> "garryowen" along with the flutes etc
<tp> she could do the original irish version to be a bit safer ?
<rdrop-exit> not familiar, will mention it to her when we next skype
<tp> this is the chorus in the Amer`ican version
<tp> Our hearts so stout have got us fame
<tp> For soon t'is from whence we came;
<tp> Where'er we go they dread the name,
<tp> Of GarrOwen in Glory.
<tp> think Custer
<rdrop-exit> she recorded an original song which I quite liked, but she hasn't put it on youtube
<tp> one has to be very careful thesedays
<rdrop-exit> singing is just a hobby for her, her real job is acting
<tp> wow
<tp> well her` singing is awesome!
<rdrop-exit> thanks, I'll share that with her!
<tp> she makes Nancy S sound like a old tired fishwife
<rdrop-exit> she also dances pretty well, she won on the local TV dance contest, similar to dancing with the stars
<rdrop-exit> (that was like 10 years ago)
<rdrop-exit> I'll see if it's on youtube
<rdrop-exit> yup, low-res though
<tp> thats the one I saw today
<rdrop-exit> I remember that movie
<tp> i never saw it
<tp> is that errol flynn ?
<rdrop-exit> yes
<tp> tasmanian
<rdrop-exit> cool
<tp> the irish version is much longer and not about war
<tp> and it's the original
<tp> but think what a stir that tune would be on utube sung by your daughter and advertised as 'GarryOwen' ?
<tp> then again utube might demonetise her :(
<rdrop-exit> heh
<tp> well I think the risc-v is a good way to go, it could be massive one day
<tp> right now the doc sucks and the current die has a few errors
<tp> but that can all be fixed
<tp> and I do have a Forth running nicely on it
<tp> here is one gd32vf103 issue, there is no single command to reset all the registers to defaults
<tp> unlike cortex-m
<tp> the doc claims there is, but it's wrong
<tp> and it's wrong because that part of the doc is a paste from the GD32F103 which is a cortex-m with cloned STM peripherals
<tp> so thats something to beware, it looks like the GD32VF103 manual started life as a GD32F103 manual with the differences edited
<rdrop-exit> that particular RISC-V implementation seems oriented to ARM developpers
<tp> i dont believe thats the reason it exists
<tp> the STM32F103 has been cloned in China
<tp> and millions of counterfeit STM32F103C8's now exist, but inside theyre a clone
<rdrop-exit> the ARM (counterfeit or real) ecosystem
<tp> thats the reason for my 'diagnostics' binary
<tp> it attempts to discover if the chip is real or cloned
<rdrop-exit> cool
<tp> well V1 did
<tp> V2 is mainly after the facts ... jack
<tp> and the XML output is for posterity, so anyone can analyse the user feedback
<rdrop-exit> FTDI's sample code sucks
<tp> you said
<tp> but it's a good choice
<rdrop-exit> But their MPSSE engine is cool
<tp> FTDI is probably the market leader ?
<rdrop-exit> yes
<rdrop-exit> (at least I think so)
<tp> ugly as they are
<rdrop-exit> I wish the internals were documented, I hate using 3rd party libraries
<rdrop-exit> the open source alternatives don't inspire confidence
<rdrop-exit> though
<tp> theyre all reverse engineered I guess ?
<tp> so how much confidence can you have ?
<rdrop-exit> right
<rdrop-exit> plus doing a deep dive into USB would give me ulcers
<tp> yeah, tho we do have a couple of working Forth examples
<tp> for a usb-serial bridge that is
<tp> it's not as bad as I thought but TONS of config
<rdrop-exit> Tons of options make my nose bleed, I like to pin things down
<tp> yeah, Ive been afraid of USB for years
<rdrop-exit> What I would like to eventually do is replace their library with my own code for going from the USB driver to their synchronous serial bridging thingie (MPSSE)
<tp> but youre doing more than that ? youre goung from usb to JTAG ?
<tp> ahh that is MPSSE ?
<rdrop-exit> MPSSE is a feature of their USB chip that receives commands and outputs synchronous serial signals.
<rdrop-exit> Dealing with JTAG requires configuring the MPSSE output pins and clock, then
<rdrop-exit> sending sequences through it to make the JTAG TAP controller on the other end dance to your tune.
<tp> i like it!
<tp> I may harass you for information later in the year if we are still alive
<rdrop-exit> :)
<tp> Im assuming your volcano has decided not to to eradicate all life in Philippines today ?
<rdrop-exit> although you still have to know what you need to send that JTAG TAP controller for it to in turn make stuff on the target board dance.
<tp> perhaps tomorrow ?
<tp> i do know a lot of that
<tp> it actually seems fairly straightforward
<tp> hahah, I'm about to make one of the longest Words I'll ever make
<rdrop-exit> at some level yes, but there's ton's of detail work
<tp> ever seen a Word 466 lines long ?
<tp> i'll bet there are some who think that's too long ?
<tp> hahahahah
<rdrop-exit> no, impossible
<tp> no it's not :)
<tp> I already have some far longer
<rdrop-exit> are you just comma-ing in 466 lines of data, this is not code right?
<tp> it's code all right
<rdrop-exit> like if you do CREATE STUFF 123 , 234 , ... and on and on... that's fine
<tp> i already have one Word 1541 lines long
<tp> here is a sample
<rdrop-exit> You mean a colon definition like : humonguous ( -- ) ... 466 lines ... ; ?
<tp> no
<tp> seperate short lines
<tp> oops. ok, Im weong
<tp> wrong even
<tp> it's a file length
<tp> inside the file are words that are like this
<tp> ( USB - Universal serial bus full-speed device interface )
<tp> $40005C00 constant USB_EP0R ( endpoint 0 register )
<tp> $40005C0C constant USB_EP3R ( endpoint 3 register )
<tp> $40005C08 constant USB_EP2R ( endpoint 2 register )
<tp> $40005C04 constant USB_EP1R ( endpoint 1 register )
<tp> $40005C10 constant USB_EP4R ( endpoint 4 register )
<tp> $40005C14 constant USB_EP5R ( endpoint 5 register )
<tp> $40005C18 constant USB_EP6R ( endpoint 6 register )
<tp> $40005C1C constant USB_EP7R ( endpoint 7 register )
<tp> $40005C40 constant USB_CNTR ( control register )
<tp> $40005C44 constant USB_ISTR ( interrupt status register )
<tp> $40005C48 constant USB_FNR ( frame number register )
<tp> $40005C4C constant USB_DADDR ( device address )
<tp> $40005C50 constant USB_BTABLE ( Buffer table address )
<tp> : USB_EP0R. ." USB_EP0R (read-write) $" USB_EP0R @ hex. USB_EP0R 1b. ;
<rdrop-exit> that's fine
<tp> : USB_EP1R. ." USB_EP1R (read-write) $" USB_EP1R @ hex. USB_EP1R 1b. ;
<tp> : USB_EP2R. ." USB_EP2R (read-write) $" USB_EP2R @ hex. USB_EP2R 1b. ;
<tp> : USB_EP3R. ." USB_EP3R (read-write) $" USB_EP3R @ hex. USB_EP3R 1b. ;
<tp> : USB_EP4R. ." USB_EP4R (read-write) $" USB_EP4R @ hex. USB_EP4R 1b. ;
<tp> : USB_EP5R. ." USB_EP5R (read-write) $" USB_EP5R @ hex. USB_EP5R 1b. ;
<tp> : USB_EP6R. ." USB_EP6R (read-write) $" USB_EP6R @ hex. USB_EP6R 1b. ;
<tp> : USB_EP7R. ." USB_EP7R (read-write) $" USB_EP7R @ hex. USB_EP7R 1b. ;
<tp> : USB_CNTR. ." USB_CNTR (read-write) $" USB_CNTR @ hex. USB_CNTR 1b. ;
<tp> : USB_ISTR. ." USB_ISTR (read-write) $" USB_ISTR @ hex. USB_ISTR 1b. ;
<tp> : USB_FNR. ." USB_FNR (read-only) $" USB_FNR @ hex. USB_FNR 1b. ;
<tp> : USB_DADDR. ." USB_DADDR (read-write) $" USB_DADDR @ hex. USB_DADDR 1b. ;
<tp> : USB_BTABLE. ." USB_BTABLE (read-write) $" USB_BTABLE @ hex. USB_BTABLE 1b. ;
<tp> : USB.
<tp> USB_EP0R.
<tp> USB_EP1R.
<tp> USB_EP2R.
<tp> USB_EP3R.
<tp> USB_EP4R.
<tp> USB_EP5R.
<tp> USB_EP6R.
<tp> USB_EP7R.
<tp> USB_CNTR.
<tp> USB_ISTR.
<tp> USB_FNR.
<tp> USB_DADDR.
<tp> USB_BTABLE.
<tp> ;
<tp> about 33 Words like that for a STM32F103
<tp> but the new word needs to read and print 466 registers
<tp> and as it's autogenerated from a massive XML file, it will probably be 466 lines long
<tp> something like this
<rdrop-exit> That doesn't seem like a good idea
<tp> $40005C00 @ hex.
<tp> but 466 of them
<tp> why ?
<rdrop-exit> when you get a combinitorial explosion of words, you shoud refactor to make words that work in phrases.
<rdrop-exit> * should
<tp> this is just a complete register contents dump
<tp> i dont see a easier way
<rdrop-exit> a dump should be a loop
<tp> the addresses arent a contiguous sequence, they come from a XML file
<tp> they jump around all over the place, and ONE wrong address will cause a exception
<tp> this is all about hardware, not coding style
<tp> thos it's nice to have efficient coding style
<tp> but it's also autogenerated
<tp> Ill ask the XML parser to please be efficient with the code ?
<tp> ;)
<rdrop-exit> well you're sourcing them from XML not hardware per se
<rdrop-exit> just a sec looking over what you posted
<tp> I'm sourcing the addresses from XML
<tp> and generating the Forth Words
<tp> with a XML parser
<rdrop-exit> Where does the XML originate?
<tp> from STM in this case, and it conforms to the ARM CMSIS-SVD XML format
<rdrop-exit> ah, ARM-specific stuff
<tp> yeah
<tp> tho I now have some Ti MCU XML files in the same format
<tp> it seems the RUST people love converting proprietary MCU definition files into CMSIS-SVD
<tp> files
<tp> I even have a CMSIS-SVD for the GD32VF103
<tp> compliments of the RUST folks
<tp> thats how Ive been able to have Words for every register
<rdrop-exit> Constants for every register is fine
<rdrop-exit> but a combinatorial explosion of colon definitions is not IMO
<tp> I think of it as a "flatulence of colon definitions" myself
<rdrop-exit> whenever I'm tempted to do a combinatorial explosion of colon definitions, I try to see if I can make words that work in phrases instead.
<rdrop-exit> IIRC Thinking Forth covers this
<rdrop-exit> In fact this is why CREATE and VARIABLE words are now non-standard
<tp> I could break it up into register groups, thats the finest grain I can do wordwise
<rdrop-exit> As long as there aren't many exceptions to the regularity, a combinatorial explosion can usually be reduced to words that work in phrases
<tp> there will be a lot of exceptions, remember the addresses come from a xml file
<tp> the cool thing here is I can try the simple way and see what happens
<tp> all I want is a file of all the register contents in a MCU
<rdrop-exit> also a combinatorial explosion of words takes up much more dictiory space than the phrasal approach
<tp> all 466 of them
<tp> as long as it fits in 128Kb I'm good
<rdrop-exit> doesn't impact me as much since I keep headers on the PC side of a tether, but if you're doing resident Forth it will impact you more
<tp> if it doesnt then I'll have to look at other choices, but I already know it will easily fit
<rdrop-exit> it can also slow down your dictionary lookup
<tp> I then write a script so the progran works with gnu screen and is saved into a correctly titled log with any extraneous crap removed
<tp> the only porpose it to get a register dump
<tp> I'm not going to need any thing else from it
<tp> then I post it on my website and others with counterfeit chips use it to produce dumps which they then email to me
<tp> i then run diffs against my genuine chip :)
<tp> plus I also use it for my most recent problem, what did enabling the DBG do to my chip ?
<tp> see if I can find it that way
<tp> detective tp is on the job!
<rdrop-exit> elementary my dear watson
<tp> as long as I get my dump, which I know I will, job done!
<tp> the public binary release will also have the working USB driver installed
<rdrop-exit> right if it's just throw away then it doesn't really matter if it's well factored or not
<tp> so the good arduino folks can use their PC to easily get the data
<tp> yeah
<tp> it's very limited use
<tp> but it will be neat, Im very anti ugly Forth code!
<rdrop-exit> a great public service, helping arduino users take dumps
<tp> the good arduino folks wont even know it's forth, they just see a menu
<tp> hahaha
<rdrop-exit> ;)
<tp> it's a shitty job but someone has to do it
<rdrop-exit> I use awk for all my thro-away text processing needs
<tp> in this case it would be the right tool for the wrong job :)
<rdrop-exit> If I had to deal with XML, I would flatten it out then feed it to an awk script
<tp> the data is xml, a xml parser creates a Forth word(s) including the data which is then run on the MCU
<tp> well, youre a programmer, I'm not worthy to do that kind of thing
<rdrop-exit> what do those generated Forth words output?
<rdrop-exit> I mean what format do they output?
<tp> but honestly, flattening out XML and then hydrating it with AWK could get you banned from programming ever again
<tp> they output the contents of every register in the MCU
<rdrop-exit> as what?
<rdrop-exit> XML again?
<tp> yeah, probably
<tp> but maybe not
<rdrop-exit> probably?
<rdrop-exit> ah
<tp> I only need the register address and the data on each ine
<tp> line
<tp> then I can simply difference the files
<rdrop-exit> much better
<tp> to find changes
<tp> only one data item, so xml would be wasted I think
<tp> probably "register-address,hex. cr " per line of output
<rdrop-exit> XML on the input side is being imposed upon you by the vendors, but there's no need to impose it again on yourself downstream
<tp> I'm a XML fan, it's no imposition for me
<tp> take my V2 diags output, thats XML because there are a number of items
<tp> and it's that way so I can easily build a XML to sqlite or postgress DB parser
<tp> or maybe comma delimited for a spreadsheet
<rdrop-exit> Hey whatever turns you on. Personnaly the first thing I'd do with a XML file is un-XML-ize it somehow.
<tp> haha, XML is universally hated, but not by me
<tp> I learnt to love XML
<tp> I guess I'm immune from programming language hate as Im not a programmer :)
dave0 has joined #forth
X-Scale` has joined #forth
<rdrop-exit> Hey who am I to question your fetishes
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
<tp> when I first announced I was designing my SVD2FORTH program vomit rained down on me from the lofty heights of my programmer friends
<tp> lol
<tp> they universally loathed XML
<tp> but I was too dumb to know I shouldnt use it, and eventually I fell in love with XML and we eloped to Vegas and got married
<rdrop-exit> and there was much rejoycing
<tp> no, everyone who saw the bride threw up, bikies threatened to beat me up, my mum slapped me
<rdrop-exit> no more Mr. nice guy
<rdrop-exit> no more Mr. clean
<tp> no Im still a nice guy, but Mrs XML and I dont go outside a lot
<tp> then to add insult to injury I got my self a Forth mistress!
<tp> now I was *really* unpopular
<tp> XML and Forth got along famously
<rdrop-exit> it takes all kinds
<tp> it do
<tp> i mean there is some real perversion going on out there
<rdrop-exit> lucky for you nobody reads this IRC's log
<tp> take Linux, C and VisualStudio from microsoft, disgusting!
<tp> yeah, only 42 Forth users in the world might read this
<tp> if this was a Arduino IRC channel there would be 7000 regular members and 100,000 lurkers
<rdrop-exit> wow, really?
<tp> probably
<rdrop-exit> I'll just hide here, thanks
<tp> if Arduino users used IRC
<tp> but they dont, it's all forums for them
<tp> millions of them
<tp> (arduinoistas)
<rdrop-exit> 8-O
<tp> watching a Arduino ATMEL Mega8 user trying to use Arduino on a STM32F is like watching a 4 year old child wander onto a 12 lane superhighway
<tp> very messy
<rdrop-exit> bbiab
<tp> no problemo
nonlinear has quit [Ping timeout: 272 seconds]
rdrop-exit has quit [Quit: Lost terminal]
nonlinear has joined #forth
_whitelogger has joined #forth
nonlinear has quit [Ping timeout: 260 seconds]
nonlinear has joined #forth
dddddd has quit [Ping timeout: 268 seconds]
nonlinear has quit [Ping timeout: 272 seconds]
jsoft has quit [Ping timeout: 265 seconds]
nonlinear has joined #forth
nonlinear has quit [Ping timeout: 265 seconds]
nonlinear has joined #forth
<tp> done!
<tp> a Word with 20,000 lines :)
<tp> USB_CNTR:40005C40
<tp> USB_ISTR:40005C44
<tp> USB_FNR:40005C48
<tp> USB_DADDR:40005C4C
<tp> USB_BTABLE:40005C50
<tp> ok.
<tp> thats the end of it
<tp> um ... 20k characters, it's actually a small Word, only 478 lines ;-)
dddddd has joined #forth
iyzsong has quit [Quit: ZNC 1.7.1 - https://znc.in]
<crab1> morning fellows
<CORDIC> Good morning everyone.
<crab1> how are you?
<CORDIC> crab1: I missed Your repo.
<CORDIC> I am excellent, You?
<crab1> I'm doing well, though I'm not sure what you mean about missing my repo
<CORDIC> Have You published Your implementation? Blogged about it?
<CORDIC> Have You been in #avr?
<crab1> Well I haven't finished any implementation yet, and I'm not sure that I would publish or blog it when I do
<crab1> I do not know what #avr is either
<CORDIC> Makes sense.
<CORDIC> It was a channel about Atmel AVR microcontrollers and similar electronics.
<CORDIC> There was a similar Nick.
<crab1> ahh, gotcha
<crab1> crab1 is just out of necessity, it seems crab is always online
<crab1> reasons to leave freenode...
<crab1> What are you all up to today?
<dddddd> watching fosdem talks
<dddddd> I missed this stream, so let's wait for the recording. https://fosdem.org/2020/schedule/event/forth_new_synthesis/
<crab1> I've been invited to watch the Super Bowl. I don't like football and I'm not sure whether I should attend
<dddddd> recording available https://video.fosdem.org/2020/AW1.125/
crab1 has quit [Ping timeout: 272 seconds]
tabemann has joined #forth
jsoft has joined #forth
dave0 has quit [Quit: dave's not here]
Guest78959 is now known as rprimus_
rprimus_ is now known as Guest9046
dne has quit [Remote host closed the connection]
dne has joined #forth
gravicappa has quit [Ping timeout: 260 seconds]
tp has quit [Remote host closed the connection]
tpbsd has joined #forth
tpbsd has quit [Changing host]
tpbsd has joined #forth
tabemann has quit [Ping timeout: 260 seconds]