00:00:00 --- log: started forth/20.02.07 00:10:42 --- join: mtsd joined #forth 00:25:33 --- quit: WickedShell (Remote host closed the connection) 00:37:00 --- join: dys joined #forth 00:45:15 --- join: xek joined #forth 01:19:52 --- join: X-Scale` joined #forth 01:21:50 --- quit: X-Scale (Ping timeout: 260 seconds) 01:21:51 --- nick: X-Scale` -> X-Scale 01:27:33 --- quit: mtsd (Ping timeout: 272 seconds) 01:53:01 --- join: mtsd joined #forth 01:54:06 --- quit: WilhelmV1nWeiner (Remote host closed the connection) 01:54:20 --- join: WilhelmVonWeiner joined #forth 01:54:20 --- quit: WilhelmVonWeiner (Client Quit) 01:54:35 --- join: WilhelmVonWeiner joined #forth 01:59:21 --- quit: X-Scale (Ping timeout: 265 seconds) 01:59:45 --- join: X-Scale` joined #forth 02:00:30 --- nick: X-Scale` -> X-Scale 02:27:12 --- quit: jimt[m] (Quit: killed) 02:27:29 --- quit: siraben (Quit: killed) 02:27:32 --- quit: nonlinear[m] (Quit: killed) 02:32:47 --- quit: mtsd (Ping timeout: 272 seconds) 02:55:20 --- quit: rdrop-exit (Quit: Lost terminal) 03:08:49 --- join: jimt[m] joined #forth 03:08:49 --- join: siraben joined #forth 03:08:49 --- join: nonlinear[m] joined #forth 03:20:35 --- join: mtsd joined #forth 04:07:47 --- quit: mtsd (Ping timeout: 272 seconds) 04:08:11 --- join: mtsd joined #forth 04:18:17 --- join: dddddd joined #forth 05:23:11 --- join: ryke joined #forth 05:26:57 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 05:48:45 --- quit: ryke (Ping timeout: 260 seconds) 06:08:45 --- quit: jsoft (Ping timeout: 272 seconds) 06:30:25 --- quit: _whitelogger_ (Read error: Connection reset by peer) 06:33:28 --- join: _whitelogger joined #forth 06:45:27 --- quit: dave0 (Quit: dave's not here) 07:25:18 --- quit: mtsd (Quit: Leaving) 07:28:21 --- join: ryke joined #forth 08:40:07 --- quit: xek (Ping timeout: 272 seconds) 10:12:49 --- quit: ryke (Ping timeout: 240 seconds) 10:16:28 --- quit: dys (Ping timeout: 256 seconds) 10:28:40 --- quit: gravicappa (Remote host closed the connection) 10:29:00 --- join: gravicappa joined #forth 11:07:55 --- join: WickedShell joined #forth 11:47:25 --- join: xek joined #forth 12:16:23 --- quit: djinni (Quit: Leaving) 12:19:53 --- quit: xek (Ping timeout: 272 seconds) 12:21:27 --- join: ryke joined #forth 12:21:43 --- join: djinni joined #forth 13:16:40 --- quit: gravicappa (Ping timeout: 256 seconds) 13:19:59 --- join: jsoft joined #forth 13:49:25 --- quit: jsoft (Ping timeout: 260 seconds) 15:21:02 --- quit: ryke (Ping timeout: 272 seconds) 17:28:17 --- quit: WickedShell (Ping timeout: 260 seconds) 17:32:46 --- join: WickedShell joined #forth 17:58:53 --- join: iyzsong joined #forth 18:24:24 --- quit: _whitelogger (Remote host closed the connection) 18:27:27 --- join: _whitelogger joined #forth 18:33:01 --- join: jsoft joined #forth 18:37:58 --- quit: dddddd (Ping timeout: 256 seconds) 18:44:51 --- join: boru` joined #forth 18:44:54 --- quit: boru (Disconnected by services) 18:44:57 --- nick: boru` -> boru 18:57:48 --- quit: jsoft (Ping timeout: 256 seconds) 20:15:08 --- join: gravicappa joined #forth 20:40:36 --- join: jsoft joined #forth 21:10:17 hey guys 21:50:49 --- join: rdrop-exit joined #forth 21:51:21 c[] hello Forthwrights 21:54:45 --- join: Croran joined #forth 21:57:21 hey rdrop-exit 21:57:31 hi tabemann! 22:05:34 happy weekend! 22:05:56 likewise proteusguy :) 22:08:43 I haven't programmed in about 10 days, starting to miss it 22:11:55 hey proteusguy 22:16:12 am now caught up with r/Forth and clf 22:20:57 zeptoforth is coming along awfully well 22:21:05 now I need to just debug the damn thing 22:21:22 cool 22:21:31 the only problem is I don't know how to use a debugger with ST-Link 22:22:28 because simply trying to run it will probably just result in it doing nothing, which is kind of useless 22:22:47 is there a link to any information about zeptoforth tabemann ? 22:23:33 it's just a pile of assembly code at the moment, with no docs aside from comments 22:26:25 currently the only platform it supports is the stm32l476 22:26:58 chosen solely because I am the proud owner of a DISCOVERY board 22:27:16 tabemann, what's different, new, cool about it vs other implementations for that platform? 22:27:58 is this a token based forth? 22:28:02 no 22:28:06 it's a native code forth 22:28:23 DTC or something else? 22:28:31 SRT 22:28:36 ah ok. 22:29:20 honestly, it's pretty similar to mecrisp-stellaris aside from being in a far less-developed state 22:29:49 doing thumb asm? 22:29:57 yep 22:32:01 I chose to abandon my approach I was taking for hashforth because it became apparent that I wouldn't be able to get adequate performance out of it on something like the stm32l476 22:32:34 even though the token approach would have been significantly more memory-efficient, particularly w.r.t. ram-to-flash calls 22:33:52 e.g. a ram-to-flash call would take just 3 instructions with my new approach, even though the call would have taken 80 bits of RAM 22:34:51 whereas with the token approach I could have gotten a call down to just 16 bits, but it would have been significantly slower 22:35:27 80 bits, wow 22:35:42 the overhead of tokens can be tolerated on a PC, but on a device with an MHz only in the double digits that overhead builds up 22:36:19 rdrop-exit: a move 32 instruction, a movet instruction, and a blx instruction 22:36:51 the move 32 sets the lower 16 bits of the address, the movet sets the upper 32 bits of the address, and the blx does the actual call 22:37:01 *upper 16 bits 22:37:40 the problem is that RAM and flash are in completely different sections of address space 22:37:51 so I need to do this to call from one to the other 22:38:21 because they are too far apart for a PC-relative bl call 22:38:48 80 bits sounds extravagant 22:39:04 whereas two words compiled to flash can call each other with just PC-relative bl instructions 22:39:14 it is extravagant 22:40:39 the solution is to compile as much code as possible into flash 22:41:03 or compile stubs of code to ram that call code in flash 22:41:13 and have other code compiled to ram call these stubs 22:41:24 because ram to ram calls are cheap too memory-wise 22:42:31 I might even write code that autogenerates these stubs so they're available immediately upon startup 22:43:22 tabemann, 22:43:36 i can show you how to use gdb wityh stlink under unix ? 22:43:51 sure 22:43:51 rdrop-exit, g'day Zen Forth Guru! 22:43:57 hey tp 22:44:22 hello Master Forth Technician (tm)! :) 22:44:54 a call on RISC-V is 64 bits with the non-compressed ISA 22:45:50 tabemann, I have a example file with everything set up nicely, I'll upload it to my doc site shortly 22:46:07 rdrop-exit, I finished and used my 488 line Forth Word 22:46:09 :) 22:46:10 --- join: dave0 joined #forth 22:46:29 can you email me the URL? 22:46:29 the shame! the shame! ;-) 22:46:38 tabemann, sure 22:47:37 rdrop-exit, I've sent it to the Guinness Book of Records, I'm after "Longest Forth Word" 22:48:06 lol 22:48:26 ;-) 22:48:47 okay, I forgot a critical word to implement: . 22:49:09 not going to implement it now, as I plan on hitting the sack soon 22:49:33 I might as well be famous for something before I die, you know etch my name "tp" in stone in the granite book of history! 22:50:09 tabemann, no worries, I have it nicely set up with a script, one command and youre in the debugger 22:50:16 longest colon definition in the Forth Hall of Shame 22:50:20 tabemann, along with a demo c file 22:50:44 tabemann, make that a demo assembly file 22:50:53 that's more like it 22:51:03 rdrop-exit, no, not shame, it's fame! 22:51:20 no one can make this Word shorter 22:52:47 it's the shortest fetch and print of 488 non consecutive memory addresses generated by a XML file 22:53:05 You get the Kolmogorov award 22:54:43 but Komrade Kolmogorov was sent to a Koncentration Kamp Kapisch ? 22:55:26 tp doesn't Mecrisp Forth have loops? 22:55:37 sure 22:56:05 wont help in this case tho 22:56:12 why not? 22:56:14 every address is unique 22:56:29 so? 22:56:38 488 unique addresses 22:57:03 you cant simplify with with loops, spells or wishful thinking 22:57:03 get address, do something with it, get another... ad nauseum 22:57:09 exctly 22:57:22 that's a loop, isn't it? 22:57:41 no, it's a list of addresses 22:57:56 it has a beginning and a end 22:58:17 and it's 488 lines long :) 22:58:26 get first in list, do something with it, get another, ad nauseum 22:58:36 thats what I do 22:59:14 I'm lost, you need 488 lines for a loop? 22:59:28 the Word itself is automatically generated by another program 22:59:40 no, I have a list, you have the loop 22:59:48 So it's self-imposed bloat 23:00:10 no it's a automatically generated work list 23:00:30 no bloat, it's lean mean and 488 lines long 23:02:14 open file, get first item, process first item, get next item... ad nauseum, close file 23:03:15 6 or 7 lines at most 23:03:46 or 23:04:41 If you're externally generating the source, no need for a colon definition just load the file 23:05:02 using the outer interpreter as your "loop" 23:06:16 No need for a 488 line colon definition, just load a source file with 488 lines of source 23:06:30 use the interpreter 23:07:52 sure I could 23:08:03 but I wanted that Guiness record! 23:08:40 anyway, forget my new found Infamy, I have more interesting news! 23:08:44 no need to compile a huge colon definition into your dictionary, just interpret the source 23:09:21 "what we have here is failure to communicate" 23:09:35 it's actually quick and simple! can't your Forth handle a 488 line Word like mine ? 23:10:06 no, nor should it 23:10:12 lol, let me guess, youd have a 1k block limitation ? 23:10:37 one advantage of a modern Forth is no 1k block limitation :) 23:11:06 I wonder if you recall why I *needed* my 488 line Word ? 23:11:22 it just seems unecessary to compile something into the dictionary that you don't want there in the first place. 23:11:25 it was needed to investigate a hardware problem 23:11:58 it's only used in one special case, it doesnt stay in the dictionary forever 23:12:25 but why put it there in the first place? 23:12:40 I definitely wanted it there, and it helped me solve my problem 23:13:06 I needed to do a 'snapshot' of every MCU register, all 488 of them 23:13:51 which I did, then I captured it in the terminal log, ran something else on the mcu and did it again, then diffed the logs 23:13:57 sure, but the colon definition isn't the snaphot, it's the camera 23:14:13 absolutelt 23:14:24 but you need to define each individual register you are reading in the colon definition 23:14:34 exactly 23:14:41 and print their names 23:14:43 you could put the register definitions in a block of memory 23:14:50 but you need to put them somewhere 23:15:03 that's the snapshot, not the camera 23:15:19 remember, the Word is automatically made from a huge XML file 23:15:28 and simply having a list of ." name: " REGISTER @ . CR one after another is the simplest way of doing it 23:15:34 I only made the XSLT 23:16:19 yes! zeptoforth actually builds 23:16:39 --- quit: jsoft (Ping timeout: 272 seconds) 23:16:39 well, it still lacks . 23:17:15 there's no problem with having a list of commands one after the other executing when you load the source file, there's just no need to wrap all that in a colon definition and append it to your dictionary. 23:17:29 tabemann, something like this ? 23:17:32 ." PWR_CR:" $40007000 $0 + hex. cr 23:17:33 ." PWR_CSR:" $40007000 $4 + hex. cr 23:17:33 ." RCC_CR:" $40021000 $0 + hex. cr 23:17:33 ." RCC_CFGR:" $40021000 $4 + hex. cr 23:17:33 ." RCC_CIR:" $40021000 $8 + hex. cr 23:18:05 " camera.4th" fload 23:18:16 and so on for another 483 lines 23:18:28 would run all that without poluting your dictionary 23:18:32 rdrop-exit: the problem with that is you risk disturbing more state 23:18:37 easy peasy 23:19:01 putting everything in a single word simplifies things, and thus reduces the disruption to the system state that you are trying to capture 23:19:02 I have 100kB of dictionary space in Flash 23:19:20 tabemann, exactly 23:19:35 but this isnt even the most interesting part! 23:19:51 state is going to be disturbed no matter what unless you use the chips debug interface to get at the info 23:20:19 rdrop-exit, it took maybe 3 seconds to upload and compile that 488 line word 23:20:53 rdrop-exit, sure, but Im after minimal disruption, I'm only reading peripheral registers 23:21:34 so my problem was that I could ONLY read a STM32F103 debug register from Forth WHILE the JTAG debugger was attached 23:22:16 the specs said it could be read from a user program (forth) but I could only read $00 23:22:52 the register was there, and it had data, but that data could only be read by the debugger 23:23:17 not all debug registers are shared with user programs 23:23:32 so I wrote my 488 line word, snapshotted all the regs with and without the debugger connected and diffed them 23:23:34 this was a bug though 23:23:50 clones of this chip by various chinese manufacturers fixed this bug 23:23:59 --- join: jsoft joined #forth 23:24:09 eventually I found that this BUG is listed t=in the STM32F103 errata 23:24:18 tabemann, exactly! 23:24:27 thats the ironic thing 23:24:45 sneaky 23:24:46 stm never fixed it, why would they, that chip is 16 years old 23:25:14 but the CLONERS fixed it with their own 'compatible' implementations 23:25:44 crazy world we live in 23:25:55 so by accident I stumbled on one way to tell if a chip is a genuine STM32F103 or a clone 23:26:05 :) 23:26:27 rdrop-exit, it is a crazy world 23:26:43 okay, I'm gonna go hit the sack, now that zeptoforth is actually building properly 23:27:00 goodnight tabemann 23:27:14 not that it actually works, it most likely does not 23:27:22 g'night guys 23:27:57 rdrop-exit, the illegal forger of the STM32F103 make a chip named "CS32F103C8", it's been decapped and is totally different to the genuine STM chip, yet while that chip is for same everywhere, no one knows who makes it! 23:28:10 night tabemann 23:28:49 rdrop-exit, whats ironic is that there is no datasheet anywhere for that counterfeit chip 23:31:05 rdrop-exit, the "CS32F103C8" fixes that debugger bug, and it could have stood on it's own as a separate STM32F103 'compatible' chip but the mfr decided that to do so would take too long to make money, so they just sold them as STM32F103 complete with chip marking and forged chip ID's inside it 23:31:46 he 23:32:43 and NO ONE in China knows where they are made .... uhuh 23:33:39 the chip is branded 'CKS' yet the CKS website has no listing of such a chip, and no warning that someone is using their company name on a STM32F103 clone 23:34:23 honestly, the material for a spy thriller is there! I'm waiting for a Tom Cruise spy thriller about it one day 23:34:36 :) 23:35:19 your daughter could play the part of the scientist who was forced to make it to protect her family! 23:36:34 ha 23:37:04 she could wear traditional HAN clothing and operate out of a hidden FAB in Wuhan ? 23:38:52 My wife toured a few of the Huawei facilities, she was amazed. 23:40:38 humongous places 23:40:43 Jet Li could play her boyfriend trying to rescue here from the evil chine clone makers 23:40:48 -e 23:41:06 --- join: proteus-guy joined #forth 23:41:06 oh yeah, Huawei is amazing 23:41:15 I have one of their phones 23:43:27 bbiab 23:59:59 --- log: ended forth/20.02.07