00:00:00 --- log: started forth/14.10.17 00:13:42 --- quit: irsol (Ping timeout: 244 seconds) 00:14:02 --- join: bbloom (~bbloom@cpe-68-175-72-82.nyc.res.rr.com) joined #forth 00:31:05 --- quit: fantazo (Ping timeout: 240 seconds) 00:34:56 --- quit: bbloom (Ping timeout: 265 seconds) 00:37:06 --- join: bbloom (~bbloom@cpe-68-175-72-82.nyc.res.rr.com) joined #forth 00:52:28 --- nick: DGASAU` -> DGASAU 01:48:57 --- join: nighty^ (~nighty@hokuriku.rural-networks.com) joined #forth 02:24:32 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 02:44:18 --- join: true-grue (~grue@95-25-103-185.broadband.corbina.ru) joined #forth 02:54:58 --- quit: Zarutian (Quit: Zarutian) 03:06:41 --- join: impomatic_ (~digital_w@92.77.125.91.dyn.plus.net) joined #forth 03:44:38 --- join: fantazo (~fantazo@2001:858:5:3a41:99d8:b33b:fce0:c986) joined #forth 04:33:50 --- join: dys (~user@2a01:1e8:e100:8296:21a:4dff:fe4e:273a) joined #forth 04:36:12 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 04:36:49 --- quit: bbloom (Ping timeout: 244 seconds) 04:37:11 --- quit: Zarutian (Read error: Connection reset by peer) 04:37:37 --- join: Zarutian (~zarutian@46.22.110.168) joined #forth 04:39:21 --- nick: ttmrichter -> ttmrichter_ 04:39:54 --- join: bbloom (~bbloom@cpe-68-175-72-82.nyc.res.rr.com) joined #forth 04:45:55 --- nick: ttmrichter_ -> ttmrichter 05:10:27 Stupid question on token-threading implementation: if I use an 8-bit token I'm limited to 256 tokenized words. What's the "best practice" approach to extending beyond that number? 05:11:12 Would it be something like jump table chaining where a special token (say 255) triggers a lookup in a second jump table? 05:19:46 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 05:22:54 ttmrichter: there are three ways: the temporary shift way, the shift and the openfirmware way 05:24:00 first you have already described (assuming that the decoding of tokens start at the same table for each token 05:25:16 the shift way is that you change which token lookup table you use and you need to change back if you want to use the original one. 05:26:13 and the openfirmware way is to use a range of 8 bit values 40h-8Fh iirc that take another byte into the token 05:27:08 the first and third require no additional state in Program Status/state Word (IBM terminology) but the second does 05:28:03 --- quit: DocPlatypus (Ping timeout: 258 seconds) 05:30:27 ttmrichter: does that answer you question somewhat? 05:30:39 Zarutian: Yes. Thanks. 05:31:12 Oh, to answer your earlier question (now that you're actually here!), the project I wanted to make was the "GA144-Discovery" (not really its name, but the code name). 05:31:17 btw I have no idea what these methods are called in the literature 05:31:20 A cheap, accessible dev board for the GA144. 05:31:34 Zarutian: I don't care. :) I just want to know the technique, not the nomenclature. 05:32:04 My Cortex-M Forth is a DTC one, but my STM8 port will have to be token-threaded realistically. 05:32:13 I just didn't know how I'd cope with cracking the 256-word limit. 05:32:47 I like my shift way as the simplest to implement, especially since I think I can make it automatically do the shifts without me having to code in expensive conditionals. 05:34:42 sure just have an 'token' that says "look in this other token table using next byte" 05:58:50 Right. And I can have the chaining pointer part of the data structure that holds the jump table. 06:00:47 I meant in the way that there are few token in the first jump table that do the lookup in their own jumptables using the next byte as index 06:01:11 Well there would be one: 0xff. 06:02:02 So once I have 255 words (0-254), the next word's token would actually be 0xff00, processed byte-wise. 06:02:16 --- quit: DGASAU (Read error: Connection reset by peer) 06:02:27 If I've got a system that's so space-sensitive that I'm using token threading in the first place, I'm probably not going to fill two whole tables anyway. 06:03:11 --- join: DGASAU (~user@p50993595.dip0.t-ipconnect.de) joined #forth 06:03:18 depends how many words you are using in your vocabulary ;-) 06:04:09 --- quit: protist (Quit: Konversation terminated!) 06:05:41 True. 06:18:06 --- join: elaforest (~elaforest@unaffiliated/elaforest) joined #forth 06:26:42 ttmrichter i had the same thought (GA144 discovery board) 06:26:48 a la TI's SensorTag 06:27:12 I'd love to have made that, but GA is ... really bad at business it seems. 06:27:21 Pity. I love the idea. 06:29:25 ttmrichter: why do you think they are so bad at business? unwillingness to hire some sort of secretarial fixer? 06:31:52 basically a businessman that hasnt been infected by MBA? 06:33:13 Zarutian: I approached them with the concept in email. The next day I get an almost enthusiastic response. I have some questions. I ask them. They suggest a Skype call. I give them my availability. Dead. Silence. For weeks. I send a prompting email and get back a pretty snarky one about how busy they all are and they'll "try" to set something up for next week. THREE MONTHS LATER I get a follow-up email. 06:34:07 you said so earlier 06:34:27 I am trying to find out WHAT is the cause of that. 06:36:28 poor timekeeping? overcommitment or such stuff. 06:39:12 Well they said they were "really busy" on a "big project" so I suspect over-commitment. 06:41:58 this talk of projects reminds me. 06:42:29 --- quit: beretta (Quit: Leaving) 06:44:03 a few weeks/moons ago I sketched out something like 1-wire java button replacement that uses a forth core (J1 or Harrix RTX 2010 if they wont mind) + battery backed sram (minus small rom to load binary sections) 06:45:39 then other stuff (life in general) got in the way and I forgot about it until now. 06:46:47 do you think maxim (that is now the vendor managing 1-wire iButton stuff) would be interested? 06:47:04 Maxim is shutting down their 1-wire kit. 06:47:22 Much of their 1-wire kit is falling into "do not use for new projects" territory. 06:47:38 that stuff seeing too little use? 06:47:44 They actually pointed me at some TI chips to do something I wanted because a central piece of their 1-wire chips is no longer in production. 06:47:58 Seems so. :( 06:48:27 btw. what do you use for forth on embedded systems as hardware? I'm thinking about playing around with an avrTiny 06:49:09 but 1-wire stuff is so handy for sensor that are long way from any big enclosures. 06:57:28 --- join: xyh (~xieyuheng@125.94.36.86) joined #forth 07:16:11 fantazo: I write my own. 07:16:36 Zarutian: TI has some chips that can be kitbashed into something resembling 1-wire. 07:16:54 I'm also experimenting with using I2C as a long-distance data bus. 07:17:10 ttmrichter, your own forth embedded system? or your own forth cpu? or both!? :-) 07:17:43 using I2C would require four wires instead of just two with 1-wire: 2 for data and 2 for power 07:17:44 aside but related i'm having a lovely time with bluetooth low energy 07:17:51 its such a nice clean setup 07:19:17 fantazo: Right now I'm handrolling my own cross-MCU Forth. 07:19:30 But I do have a medium-term project to learn enough about FPGAs to kitbash a Forth processor. 07:19:47 source? or "not pretty enough to put it online"? 07:19:50 robdubya: You're using one of the AT-command setups? 07:20:23 fantazo: Currently not pretty enough. I don't do social programming. When it's something I can share without blushing I will be sure to post the source link here. :) 07:20:48 ttmrichter nope, not really - BLE isn't serial-y at all 07:21:00 I assume that will never happen, as people who do that don't release anything. 07:21:16 ttmrichter: re FPGAs, exCamera has the J1 softcore freely aviable 07:21:22 "social" programming :p 07:22:00 fantazo: What I mean by that is I don't do the "start a project on Github, put something half-assed out there, then quit because nobody's contributing". 07:22:07 When I put something into the public it will be useful. 07:22:17 Which means it will work. It will be tested. It will have docs. 07:22:41 ttmrichter, ah that sounds like my approach to projects. 07:22:49 I'm not a fan of coding via social media where every two-bit, keyboard-clacking moron can start interfering before I've got something I want to use. 07:22:57 putting half-assed stuff out there 07:23:26 Since I'm actually going to be making product based on these Forths it's a given that it will actually be usable someday. 07:23:31 Indeed, someday relatively soon. 07:23:59 I'll have the engine coded this weekend hopefully and by the end of next week I'll have a minimal core vocabulary ready. 07:24:15 Then I'll stand back, reorganize the project so it's sane, and it'll be up on Bitbucket. 07:24:18 ttmrichter but are you using version control locally? 07:24:43 robdubya: Of course. 07:24:49 i dont know how you guys don't operate like that by default. seems crazy to me, but then i'm one of those two-bit keyboard clackin morons :p 07:25:14 (also i pay github soo) 07:25:15 I'm from an older, more civilized time. 07:25:19 ;) 07:25:44 i lol'ed reading one of the green array app notes where they talked about github 07:26:14 When the first piece goes out, incidentally, it will be for one very limited Cortex-M chip. :) 07:26:14 "civilized" time, I have not seen anything from that time, which was civilized ;-) 07:26:18 (STM32F030F4) 07:26:46 i'm about ready to throw all my TI stuff in the bin though 07:27:03 their compiler is highway robbery priced, and they simply dont give two shits 07:28:20 their calculators are also overprized for what they do. 07:31:00 $3k for an ancient, terrible IDE from IAR 07:31:16 oh, you want to compile 8051 AND msp430? that'll be another 3000 please 07:32:30 I must say, that I have yet somehow missed the point of using an IDE. The last time I thought it makes sense was in Squeak Smalltalk. 07:32:51 fantazo i agree, mostly 07:33:23 if they had a simpler compiler i could just run in the shell, i still wouldnt pay $3k for it, but at least i wouldnt have to use their crap IDE 07:33:58 web stuff, i just use sublimeText. mobile stuff (ios/android) you pretty much would be insane to not use their IDE 07:36:52 i had a bit of a breakthrough learning forth this week though, one of those OOOHHHHHHHHHHH moments 07:36:54 I have never developed something for ios/android. For ios you actually need a different OS/Hardware combination for developing 07:37:15 yeah, helps when you're on a mac already with that one 07:38:02 forth as the simple enlightment of simple things? 07:38:26 forth as the modern version of the legos of my youth 07:38:30 well 07:38:36 "modern" being a relative term here 07:39:13 ok, why? because you plug together words? but you can have that in other languages too, it's called functions. 07:40:08 the whole concat-style programming concept really - it's totally alien to me 07:40:23 but its simple, as you said 07:41:24 i'm new to embedded development, having done primarily mobile/web/API type stuff before 07:41:44 I find it quiet beautiful, as within forth complexity evolves out of more basic components. 07:42:21 yep. that's sort of where i'm starting to see the light 07:43:08 fantazo: Squeak Smalltalk IDEs are still lightyears ahead of IDEs currently offered. 07:43:29 robdubya: There's a good gcc toolchain for msp430 last I heard. 07:43:39 ttmrichter yeah, there's a ton of options for msp 07:43:44 Zarutian, good to know, so I haven't missed much. 07:43:57 I haven't looked into it myself because I'm kind of mired in STM32 and STM8 stuff right now. Mostly STM32. 07:44:11 pretty much none for TI's BLE stack on 8051. that's the really sticky one 07:44:21 hence people stare at me when I fire up Notepad++ (though I wouldnt say no to semantic highlighting) 07:44:52 I use vim with a couple of plugins. 07:44:53 Zarutian tried sublmetext? 07:45:41 robdubya: no, but then again I am a bit of an anachronism. A youngish guy that sometimes uses texteditors without and highlighting. 07:45:47 any* 07:46:09 I am currently using TextWrangle on mac 07:46:30 TextWrangler* 07:46:39 definitely give it a whirl - every time i try any other editor, i always end up back in ST 07:46:58 its as light as textwrangler but extensible (and does highlighting and whatnot) 07:47:22 ttmrichter: how is the STM32 for forth stuff? 07:48:12 interested on that too. i can see myself doing quite a bit of forth for embedded (vs C... which i dont like much) 07:48:32 i was a bit mind-blown to see it on arduino 07:48:50 robdubya: which forth is that avrforth? 07:49:23 and doesnt that require bootloader extension? 07:49:30 i tried it w/ amforth 07:49:32 hmm, I actually haven't yet had the fun of having a running forth on a mcu or code in forth compiled to a mcu. always looked half-assed. 07:50:18 (its also a bit mind blowing to have people ask "which forth") 07:50:33 http://playground.arduino.cc/CommonTopics/ForthOnArduino 07:52:03 robdubya: thanks for the link 07:52:49 poking around the JSForth thing too, i moved that into nodeJS which eased the transition in my brain a bit 07:53:14 i should put that onto github for the other clackers 07:54:38 "Why not keyboard for Zoidberg!" 07:55:17 Forth may yet see a resurgence when all the kids playing minecraft get jobs i reckon 07:56:16 https://www.youtube.com/watch?v=EDBqSiC_LZU if you haven't seen it. mental. 07:58:15 --- quit: karswell (Ping timeout: 240 seconds) 07:59:32 which reminds me. Anyone has a SD card lib handy that would work with FAT32 lib? 08:01:26 thinking about rewriteing an prusa mendels firmware in forth and allowing untethered use of it. 08:05:07 --- join: proteusguy (~proteusgu@ppp-110-168-229-27.revip5.asianet.co.th) joined #forth 08:14:45 --- join: DocPlatypus (~skquinn@c-76-31-212-235.hsd1.tx.comcast.net) joined #forth 08:18:45 --- quit: elaforest (Ping timeout: 250 seconds) 08:28:07 Zarutian: Cortex-M* chips are a bit of a pain to do some things in. 08:28:12 --- join: elaforest (~elaforest@unaffiliated/elaforest) joined #forth 08:28:39 You've got 16 registers, for example, three of which are reserved (PC, link, stack) and ... five of which you basically can't use realistically. 08:29:02 So you're suddenly pretty constrained for register space if you want to be a speed demon. 08:29:16 There's no real CALL-style instruction with automatic stack discipline either. 08:29:49 The closest you have is branch-with-link which puts the address of the next instruction into the link register before branching. 08:30:35 This gives you built-in only one level of "stack" for returning. If you want anything more, the prologue of your function has to push the link register to the stack manually and pop it into the PC in the epilogue. 08:30:42 Loads of room for error there. 08:31:02 This also makes subroutine-threading a non-viable option, sadly. :( Too error-prone. 08:31:43 Loading pointers is a pain too. Immediate values can only be about ~1024. 08:32:09 So you have to make pointer pools that are PC-indexed to load pointers to symbols into registers to use them. 08:32:17 Thankfully the assembler does that automatically if you want it to. 08:32:55 (late to the show) which platform is this? 08:32:57 So, for example, if I do ldr r0, MY_SYMBOL, unless MY_SYMBOL happens to be within about an offset of 1000 of the PC the assembler will choke. 08:33:03 elaforest: Cortex M-* chips. 08:33:17 --- quit: xyh (Remote host closed the connection) 08:33:40 But I can do ldr r0, =MY_SYMBOL and the assembler will put the full pointer to MY_SYMBOL into the memory image within 1000 bytes of the PC for me. 08:33:52 ok 08:33:55 ooo, our indie gogo just launched 08:33:58 https://www.indiegogo.com/projects/the-fitguard-impact-indicating-mouthguard 08:34:08 Basically hiding a pointer pool with assembler magic. 08:35:39 Once you get past the frustrations of the really low-level bit twiddling, the Cortex-M* cores are otherwise pretty nice. 08:36:37 VERY easy to set up for execution: put your maximum ram pointer at offset 0 in your IVR and put your code entry point into offset 1. 08:36:54 The NVIC is pretty damned smart, so writing interrupt handlers is a dream. 08:37:13 And the STM32 line has loads of fun (if really complex) peripherals to play with. 08:37:37 I do dread the assembler/disassembler part, though. Thumb2 is a horrible ISA. 08:39:03 robdubya: That's a pretty cool piece of kit. 08:40:26 ttmrichter indeed. the fun bit is power :D 08:40:50 (hence the GA / forth adventures, we've eval'ing that chip as an option) 08:42:22 --- quit: TodPunk (Read error: No route to host) 08:42:41 --- join: TodPunk (Tod@50-198-177-186-static.hfc.comcastbusiness.net) joined #forth 08:46:25 i did most of the C firmware stuff, and all of the mobile / cloud API stuff. Its given me the hardware bug, big time. 08:47:30 I started my career in embedded systems, then left to go to telephony and PKI, then quit the industry, now I'm back in embedded and wondering why I ever left. :) 08:48:13 PKI? 08:56:01 --- join: xyh (~xieyuheng@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 08:59:30 xyh: yes, someone is aware of DSSP. 09:00:36 It's another dead end in industry, even analogous systems of the time surpassed it. 09:00:39 E.g. FPC. 09:00:50 --- quit: Zarutian (Quit: Zarutian) 09:09:10 robdubya, cool product idea. Have you all contacted the military about this? Blunt force head injuries are way up as the kevlar helmets are very effective at stopping bullet penetration but it's still a helluva knock on the head. This could quantify just how much. 09:10:39 proteusguy that's been discussed, yeah. not my department :D 09:10:53 there's all sorts of interesting applications though 09:11:45 the big thing i'm pushing on is feedback - that is, being able to correlate data w/ diagnostics, and improve the algorithms (since there isn't one that isn't private) 09:15:28 proteusguy are mouthguards a thing that are worn normally? 09:16:30 robdubya, yes I played american football - certainly a clear use case. Would be interesting to see how your blue/red indicators correspond to actual injuries. 09:16:56 (i meant in the military) 09:17:28 robdubya, for American football moutguards are required. For military no they aren't normally used and actually I was just thinking they would impede communication. You'd likely need a far less invasive device. 09:17:57 yeha, i know about the football (and rugby, and lacrosse, and etc) - they're sort of the target market 09:18:06 But maybe your device could be mounted as part of the helmet. 09:18:25 there's a few of those already, helmet mounted ones (see - shockbox) 09:19:00 part of the mobile/cloud end is to correlate what the sensors are saying (raw G's) with what the eventual diagnosis from a clinician is 09:19:04 Hopefully you've all talked to someone at the NFL. This is a big issue these last 1.5 years. Players union could likely make these a requirement for play. 09:19:30 so that we can feed that back out to the devices - theres'a lot of lab time coming up :D 09:21:43 robdubya, good luck. I think it's a promising idea. Sounds like a fun project to work on. 09:22:18 cheers! it is fun, and its nice to be doing something positive for humanity for a change (i've worked in oil and gas for the last few years...) 09:43:10 --- quit: u-ou (Read error: Connection reset by peer) 10:04:43 --- join: on4k (~none@78.90.30.16) joined #forth 10:08:17 --- join: u-ou (no-n@that.bitch.stole-your.info) joined #forth 10:08:41 --- nick: u-ou -> Guest23451 10:35:41 --- quit: xyh (Ping timeout: 260 seconds) 10:40:16 --- join: Zarutian (~zarutian@46.22.110.168) joined #forth 10:43:23 ttmrichter: so if one is forced to basically make something like eForth primitives and use that? I hope that the assembler supports at least .dw directives where data words can be symbols 10:43:38 ttmrichter: regarding the Cortex M-* chips 10:47:49 --- quit: ErhardtMundt (Quit: No Ping reply in 180 seconds.) 10:48:12 --- join: ErhardtMundt (~quassel@93-43-71-119.ip90.fastwebnet.it) joined #forth 11:06:30 --- quit: fantazo (Ping timeout: 260 seconds) 11:56:48 --- quit: elaforest (Ping timeout: 255 seconds) 11:57:16 --- join: elaforest (~elaforest@184.175.1.112) joined #forth 11:57:21 --- quit: elaforest (Changing host) 11:57:21 --- join: elaforest (~elaforest@unaffiliated/elaforest) joined #forth 12:09:58 --- quit: DGASAU (Remote host closed the connection) 12:16:46 --- join: DGASAU (~user@p50993595.dip0.t-ipconnect.de) joined #forth 12:33:46 --- join: _spt_ (~jaat@unaffiliated/-spt-/x-5624824) joined #forth 12:39:53 --- quit: bjorkintosh (Remote host closed the connection) 12:53:48 --- join: fantazo (~fantazo@089144219082.atnat0028.highway.a1.net) joined #forth 12:58:24 --- join: bjorkintosh (~bjork@ip68-13-229-200.ok.ok.cox.net) joined #forth 12:59:50 --- quit: on4k (Quit: Leaving) 13:41:08 --- quit: fantazo (Ping timeout: 240 seconds) 14:18:13 --- quit: _spt_ (Quit: irc- et) 14:27:49 --- nick: dzho -> __dzho__ 14:28:15 --- quit: joneshf-laptop (Remote host closed the connection) 14:44:12 --- join: 7F1ABMNBA (~pgomes@ipb2182f12.dynamic.kabel-deutschland.de) joined #forth 14:44:38 --- quit: 7F1ABMNBA (Remote host closed the connection) 14:44:48 --- join: Mat3 (~Mat@91.64.103.149) joined #forth 14:44:50 hello 14:57:59 hey hey 15:00:56 hi bluekelp 15:10:32 --- quit: Mat3 (Quit: Verlassend) 15:42:30 --- nick: __dzho__ -> dzho 16:08:09 --- quit: elaforest (Ping timeout: 258 seconds) 16:08:39 --- join: elaforest (~elaforest@unaffiliated/elaforest) joined #forth 16:14:30 --- quit: true-grue (Read error: Connection reset by peer) 16:33:40 --- quit: nighty^ (Quit: Disappears in a puff of smoke) 16:33:46 --- quit: DGASAU (Ping timeout: 255 seconds) 17:22:50 --- join: ttmrichter_xm (~ttmrichte@116.30.206.255) joined #forth 17:25:10 --- quit: bjorkintosh (Ping timeout: 260 seconds) 17:35:20 --- join: bjorkintosh (~bjork@ip68-13-229-200.ok.ok.cox.net) joined #forth 17:45:47 --- quit: dys (Ping timeout: 260 seconds) 17:57:44 --- quit: Zarutian (Quit: Zarutian) 18:02:18 --- quit: bjorkintosh (Ping timeout: 250 seconds) 18:10:32 --- quit: ttmrichter_xm (Ping timeout: 250 seconds) 18:12:26 --- join: bjorkintosh (~bjork@ip68-13-229-200.ok.ok.cox.net) joined #forth 18:13:30 --- join: joneshf-laptop (~joneshf@98.208.35.89) joined #forth 18:23:11 --- join: ttmrichter_xm (~ttmrichte@116.30.207.123) joined #forth 18:39:51 --- quit: bjorkintosh (Quit: Leaving) 18:43:24 --- join: bjorkintosh (~bjork@ip68-13-229-200.ok.ok.cox.net) joined #forth 19:06:09 --- quit: bjorkintosh (Ping timeout: 246 seconds) 19:10:00 --- quit: elaforest (Ping timeout: 246 seconds) 19:22:08 --- join: bjorkintosh (~bjork@ip68-13-229-200.ok.ok.cox.net) joined #forth 19:22:40 --- quit: impomatic_ (Read error: Connection reset by peer) 19:23:04 --- quit: impomatic (Remote host closed the connection) 20:05:09 --- part: Guest23451 left #forth 20:06:59 --- join: u-ou (no-n@unaffiliated/no-n) joined #forth 20:18:36 --- join: saml_ (~saml@pool-71-190-3-251.nycmny.east.verizon.net) joined #forth 21:17:51 --- join: ttmrichter__xm (~ttmrichte@113.57.247.4) joined #forth 21:19:03 --- quit: ttmrichter_xm (Ping timeout: 245 seconds) 21:24:03 --- quit: ttmrichter__xm (Ping timeout: 245 seconds) 22:17:57 --- join: dys (~user@2a01:1e8:e100:8296:21a:4dff:fe4e:273a) joined #forth 22:21:37 --- quit: saml_ (Quit: Leaving) 22:24:24 --- join: fantazo (~fantazo@089144219082.atnat0028.highway.a1.net) joined #forth 22:37:03 --- join: samrat (~samrat@49.244.50.26) joined #forth 22:43:03 --- quit: samrat (Quit: Computer has gone to sleep.) 22:43:31 --- join: samrat (~samrat@49.244.50.26) joined #forth 22:53:52 --- quit: samrat (Quit: Computer has gone to sleep.) 23:56:26 --- join: samrat (~samrat@49.244.117.196) joined #forth 23:59:59 --- log: ended forth/14.10.17