00:00:00 --- log: started forth/19.05.13 00:04:36 --- join: rdrop-exit (~markwilli@112.201.166.63) joined #forth 00:08:45 ttmrichter: I assume he's got them, but will ask when I next see him. He's got contacts in China and pretty much everywhere when it comes to wargames, he spends a couple k$ on his collection monthly. He's one the top collectors I know. 00:11:38 Ah. He will probably have most of them. There's a couple he might not have because they were VERY small print runs. 00:13:04 I once met a collector from Vegas who had a special 2-story climate controlled building next to his house to hold his collection. Met him at the Origins '88 auction, way back before the internet made it easy to amass large collections quickly. 00:14:26 I still have a few ultra-rare items from the early days of the hobby, but I've been in net shrinkage mode with my collection for many years now. 00:16:47 I have the archive copies of AH General #1 and Strategy & Tactics #1, the ones that were kept in the company archives and not sold to the public. 00:17:26 good scores 00:18:11 Yeah, I'm not that kind of collector. :D If it's not punched and played I get the picture that someone missed a point somewhere. :D 00:19:15 I agree, I only keep games that I play or plan to play, I don't mind punching a game no matter how rare if I'm going to play it. 00:20:04 Unfortunately none of my kids really got into the hobby, so I have no reason to hang on to stuff. 00:22:28 The early issues of some of the magazines I keep for sentimental value. 00:22:36 I'm getting my son slowly into them. We're working through the D-Day games from ... GMT, is it? 00:24:53 I haven't played much of anything for over a year, the last game I played was either ASL, Victory in the Pacific, or SPI's Berlin '85, can't remember. 00:25:16 rdrop-exit: Yeah, my son's nowhere near ready for games of that scale. 00:26:41 I got one of my son's to play ASLSK and a few of the SPI Quads, he played well for a novice, but was more interested in computer and video games. 00:30:18 On that front I've been fortunate. I started him very early on board games: silly kid's games, then Xiangqi and Weiqi, then edging him into more complicated family board games, until I broke out the first wargame (Strike Force) and now with Paul Koenig's D-Day series. 00:30:50 He's come to associate board games with quality time so I may have given him a lifetime hobby, knock on wood. 00:31:52 I played one of his D-Day series, didn't care for it, something was wonky about it. 00:32:03 How old is your son? 00:33:32 11 now. 00:34:17 When I teach someone hex & counter wargaming, I usually start them out with either Chickmauga (SPI), Arnhem (SPI), or Caesar Alesia (AH). 00:34:19 Koenig gives me Chadwick vibes. He makes games that if you sit there and ask him to explain the design decisions they likely make some kind of sense, but I'll be damned if I can work them out. 00:34:26 None of those is available here. :D 00:34:50 I have to work with what I can get. 00:35:12 For the SPI titles you have to get the originals, the Decision Games remakes are garbage. 00:35:50 Caesar Alesia (AH) is extremely simple, but unique, loads of fun as a first wargame. 00:36:49 Arnhem (SPI) is exciting because of the airborne drops, and the many isolated bridgehead situations. 00:37:06 Both have only 4 or 5 pages of rules. 00:37:57 For a area-movement (as opposed to hex based), Victory in Pacific is very simple and fun. 00:38:27 IIRC there's a downloadable do-it-yourself version of VITP on BGG. 00:40:37 I don't care for CDGs at all. 00:41:05 So that takes away much of the flood of newer titles for me. 00:42:04 Anyway, sorry Forthers for all the wargaming talk. 00:43:24 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 00:43:35 beats dead silence, rdrop-exit 00:43:42 hi 00:44:02 Thanks PoppaVic :) 00:44:07 Hi dave0 00:44:16 hi rdrop-exit 00:46:20 brb need coffee 00:50:17 back 02:18:58 --- join: xek (~xek@apn-37-248-138-200.dynamic.gprs.plus.pl) joined #forth 03:00:04 --- quit: gravicappa (Ping timeout: 258 seconds) 03:00:52 --- join: gravicappa (~gravicapp@h109-187-22-102.dyn.bashtel.ru) joined #forth 03:15:15 so my Forth-like that reads everything in from the assembler over stdin 03:15:23 and writes to stdout 03:15:39 it's really really hard to do anything without bidirectional pipes... 03:19:35 --- quit: dave0 (Quit: dave's not here) 03:30:23 since in the cpu I only have jnz and callnz as conditionals 03:31:01 might've wanked myself into a corner trying to do with without bidirectional communication, the assembler really needs to know TOS sometimes 03:47:41 ttmrichter, rdrop-exit did I miss a wargamer conversation?!?!? I'm a huge wargamer/rpg guy! :-) 03:56:29 I too enjoy tabletop 03:59:56 Cool :) 04:00:24 Hard to find time/players but we actually do have an impressive game shop in Bangkok that just had its ten year anniversary. 04:00:51 Retired Army friend of mine is coming to visit for a few weeks so hoping might get a few days of game play in. 04:09:44 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 04:30:24 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 04:31:28 re 04:37:50 --- quit: proteusguy (Remote host closed the connection) 04:48:00 --- quit: dave0 (Quit: dave's not here) 05:31:09 --- join: proteusguy (~proteusgu@cm-58-10-154-216.revip7.asianet.co.th) joined #forth 05:31:10 --- mode: ChanServ set +v proteusguy 05:56:06 impressive: https://twitter.com/sigfpe/status/1127692497990275073 05:56:25 "Basic with graphics in 4K of ROM. With IDE supporting debugging and, check it out, graphics! Remember 128 bytes of RAM *total* for IDE state, program and "framebuffer"." 05:58:22 you won't bait me, I have only 8GB ram to spare and 1M loc C file to compile, no web browser links! ;) 05:58:49 I'm curious if gcc will get belly up or fit below the bar 05:59:35 --- join: jpsamaroo_ (~jpsamaroo@2605:a601:a382:700:56dc:b4ba:6f56:916a) joined #forth 06:00:33 --- quit: jpsamaroo (Ping timeout: 248 seconds) 06:02:18 cheater: I remember that age yes. 06:05:50 i find it pretty damn inspiring 06:06:19 Highly constrained systems really get the creative juices flowing. 06:07:36 Yep. 06:08:01 Like an HC11 being four USARTs. 06:22:17 Check out some of the demoscene stuff 06:22:53 4k of code: 06:22:55 https://www.youtube.com/watch?v=jB0vBmiTr6o 06:27:15 120MB of textures generated by at runtime by a 4kb binary 06:29:18 The music's also generated by that same 4kb 08:03:01 funny now when I see these 4K of ROM Basic things 08:04:58 End up thinking "why not Forth? Could probably half that" 08:05:59 and run at a quarter the speed 08:07:58 you mean 4x? 08:08:19 no 08:42:38 elevated is like... the best I've ever seen 08:42:40 incredible 09:23:04 There's kkrieger, an FPS in 4K. 09:24:11 Oh, wait, it's bigger. 09:24:16 96K 09:24:30 https://www.youtube.com/watch?v=KgNfqYf_C_Q 09:25:57 Uhrg, 700ms A-V-delay... 10:54:10 --- join: andrei-n (~andrei-n@231.182-64-87.adsl-dyn.isp.belgacom.be) joined #forth 10:54:53 Hello. Is there a way to write multitasking application with gforth? 10:58:54 what do the docs say 10:59:07 * PoppaVic chuckles, knowing the docs... 11:00:14 Of course, "I added a thread, now I've triple the problems" 11:02:55 andrei-n: https://github.com/forthy42/gforth/blob/master/unix/pthread.fs has pthread bindings 11:04:18 andrei-n: documented a bit at https://bernd-paysan.de/gforth-manual/Pthreads.html 11:06:38 are there any embedded schedulers for embedded forth? 11:07:01 I have this sorta overcomplicated thing that uses an RTOS 11:07:29 and I'm looking to do it much simpler in forth... It's a motor controller 11:08:08 gaze___: and? 11:09:23 All forth offers you is a cleaner ABI, massive code-reuse, naming-conventions that freak the universe, and a cleaner preprocess/compiletime/runtime mess. 11:10:20 ah well, it seems to me that forth is kind of a philosophy and I figured I'd just go all in by rewriting a toy project in it 11:10:37 sure, that makes some form of sense 11:11:21 I just noticed that https://www.forth.com/embedded/ claims there's a multitasking kernel for their embedded forth, and I was wondering if there was an open source equivalent 11:12:00 almost all forths will include the ancient Round-Robin Tasking 11:12:13 Never sure if it matters. 11:12:43 and, depending on your processor, you should also be wary/skeptical 11:12:59 why do you say that? 11:13:06 because it's true. 11:13:46 ..and I am newer to MCU than to programming in general - and almost never use threading in linux 11:14:28 gaze___: I personally think 99% of all confusion is "requirements" that are dumbass, and "expectations" that are even worse 11:14:42 I reckon the forth philosophy would be to ask if I even need threading to begin with 11:14:49 I probably don't 11:15:10 Where are you running, and WHY are you running, and WHAT makes you think you need "tasks"? 11:16:03 there's a few nested control loops, and some tasks that talk to a control computer that packetize and dump internal signals for calibration of motion control coefficients 11:16:07 I tend to view these MCU's as even more lame than a Z80 or 6510, so you start to ponder who is doing what to whom - and WHY? 11:16:35 How many computers you got? 11:16:46 huh? 11:16:52 see yer above. 11:16:58 crc, thanks. 11:17:09 one control computer. 11:17:19 OK, so you have ONE PROCESSOR. 11:17:38 and? It's either off, sleeping, or running. So? 11:18:04 yes, perhaps an RTOS is unnecessary. 11:18:16 Almost certainly true 11:18:48 ..and Believe me, I often wonder if I want an Event queue - and I am implementing a forth 11:18:51 gaze___: I know that mecrisp has a multitasking package: https://raw.githubusercontent.com/jjonethal/mecrisp-stellaris/release/common/multitask.txt 11:19:22 ah perfect! 11:19:25 crc: his issue is still going to be: What Am I Doing? When Am I doing it? Why Am I Doing It? 11:19:46 PoppaVic: I leave it to the users to decide what they need. :) 11:20:09 crc: ah, ok - I can enjoin the "blow yer face off" vibe ;-) 11:20:38 * crc notes that he's never needed multitasking or multithreading in his forth 11:21:02 while I appreciate the urge to dig and try to solve the actual problem, sometimes I just wanna know how something is implemented. 11:21:08 yeah.. You really, really, really need to weight it out - and proto some code - and then you glare at it 11:21:36 but yes, I should know better than to jump into #forth and be like "I want an RTOS" 11:21:37 gaze___: the easy answer is: you context-switch stacks. 11:22:06 ahh I see. 11:22:38 wow okay that's kinda cool... you don't even change out the register file. I bet that makes for very fast context switches 11:24:08 It expects a lot of ram, of course - when yer ram is limited, you don't delve deep into this 11:25:23 Generally, your cross-linked "tasks" will hold a few vars you use as 'registers' to recall state either of where you came from or where you were. Again, this is better on systems with farm more RAM than flash 11:25:57 okay then I have a very different question... I've noticed that the typical forth way of doing things is to run your forth on the host processor itself. I was thinking of having a forth where compilation is done on a development machine, and then the compiled code is shot over to the host processor and then run. 11:26:05 cross compilation if you want 11:26:14 would I be missing out a bunch by doing this? 11:26:25 gaze___: "tethering", and yer not wrong at all - it's where my head is. 11:27:02 Keep all the names/headers/preprocessing on the host; target has the routines/code. 11:27:16 yeah that seems quite nice 11:27:43 Makes sense to me as well: let my lappy Know All, See All - it's where i would edit anyway. 11:28:34 This does require a tether MONITOR, though: that yer PC/lappy can talk to: uploading code/data. flashing, peeking, poking, executing. 11:29:03 looks like chuck shattuck's myforth did this so it's gotta be a good way to go. 11:29:22 Oh, and the tether-monitor doesn't need to speak TEXT. It's binary. 11:29:59 gaze___: I have his stuff here as well. Not very easy to read or use. Just a reference-point 11:35:41 gaze___: scheduling shan't be too much of a pain in the ass old school round robin style 11:35:54 I think... PunyForth on ESP8266 does it 11:36:03 last embedded Forth I've used 11:45:14 crc, I would like to follow the Little Book of Semaphores using GForth. In order to learn the language well enough I would like to write a real project in it... 11:49:30 --- quit: dddddd (Ping timeout: 268 seconds) 12:01:13 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 12:12:56 --- quit: gravicappa (Ping timeout: 268 seconds) 12:16:48 I think I haven't ever written useful parallel code. 12:16:54 almost all of my experiments with multitasking have been around using the fork system call on a unix host 12:17:23 I've done some experiments with a VM extended to support multiple parallel images 12:18:10 otherwise it's just been simple messing around (e.g., http://forth.works/1924b4b9f20802beb26b6ea0ea524bb0.html) for some future projects 12:18:42 Parallelism is just hard to control. In the 70s, they had some interesting ideas for alternative ways that are not semaphores. But now it is all semaphores and race conditions are problematic. 12:19:33 my favorite notion of parallelism... or maybe I guess replacement for parallelism is the guarded atomic actions formalism 12:19:55 simple to think about but somewhat complex to actually implement 12:21:28 That was that 70s thing: https://en.wikipedia.org/wiki/Actor_model 12:22:43 naw GAAs are kinda new 12:23:10 or maybe not? hmmmm 12:23:15 I don't think they're equivilant to actors 12:23:18 I expect to have multitasking in retro/native eventually, though the details will be handled via the VM 12:24:39 Hmm, maybe I'll port my OS stub to retro. 12:25:37 * crc would like to see retro's vm used for non-retro related things... 12:28:49 I like Retro but I am kinda undecided about the VM :þ 12:29:29 Having a VM is a nice thing, but Forth offers an other way to do things: Define some hardware-dependent low-level words, use them to define the whole language. 12:31:22 (1) broadly speaking, the VM is my hardware 12:31:32 (2) retro/native implements all (other than keyboard [currently...]) drivers in forth, using a couple of VM I/O extensions to provide access to raw ports & physical RAM 12:34:49 e.g., http://forth.works/live/source/interfaces/native/x86/display.forth and http://forth.works/live/source/interfaces/native/x86/ata.forth 12:36:22 Hmm, so writing to memory directly isn't possible in your VM? 12:37:00 (Except with the extensions) 12:39:23 correct 12:39:27 --- quit: rprimus (Ping timeout: 268 seconds) 12:40:51 the vm emulates a misc based computer; it doesn't provide (or hint at) access (or existence of) to the physical hardware without platform specific extensions 12:41:02 --- join: rprimus (~micro@unaffiliated/micro) joined #forth 12:47:58 Hmm, I'll write an assembler in RETRO. 12:51:40 I like assemblers :) 12:52:24 crc: Why does "Version" return the value 4? Isn't it RETRO 12? 12:52:49 I never made much progress on one for x86, when retro was x86 assembly, the startup code had a lot of hand assembled machine code inlined in it 12:53:04 Version is a variable, fetch it: @Version or Version fetch 12:53:20 4 is the address 12:53:58 Oooh, ok. 12:54:53 It'll store 201906 for the current stable release, the id in the development snapshots is 201912, though that'll change when the next release is made (probably August or September) 13:04:01 * crc makes a note to cover the Version variable in the book... 13:04:41 I didn't pay attention to the "a" in the stack operation description. 13:26:15 --- quit: andrei-n (Remote host closed the connection) 13:31:39 crc: Any ideas for some small RETRO thing I could write? 13:34:49 something that prints directed graphs 13:37:22 i hear sixels are all the rage these days 13:38:11 lol. 13:38:15 YASG 13:38:21 yet another sixel generator 13:48:17 --- quit: xek (Ping timeout: 258 seconds) 13:55:07 I've not done anything with sixels as I have nothing that can display them 13:55:26 Hmm, I could slap together a quick demo. 13:55:49 Actually... I'll integrate it into my mandelbrot set viewer. 13:56:16 Did you try out my new version yet? 13:56:23 write a terminal emulator that can display sixels for those of us who can't see sixels 14:01:25 john_cephalopoda: I love the new version :) 14:02:30 --- quit: pierpal (Ping timeout: 245 seconds) 14:06:32 Thanks! 14:13:35 --- quit: Keshl_ (Quit: Konversation terminated!) 14:35:51 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 15:08:58 at one point i had written an threaded web server in c++ to handle dynamic content creation. in 1998 when apache was using processes and cgi i was about 100 times faster than it. Now that I do mostly embedded stuff, I find doing things in interrupt handlers takes the places of doing threaded stuff 15:09:27 it is true multitasking 15:09:59 the peripherals are off working independent of the mcu 15:10:12 or transferring data using dma concurrently 15:10:17 Dynamic content isn't really necessary any more nowadays. I got a 2TB HDD on my web server. I can generate pages beforehand and serve static pages. 15:10:42 ^^ note date 1998 .. netscape will still selling servers for $20k 15:11:56 Mmh :D 15:12:05 but for grins i grabbed a copy of my code i had posted on my web pages from archive.org 15:12:20 a binary copy of the code for linux from then 15:12:32 and it still runs on my current linux ... 15:12:48 still amazingly fast .. even more so that i have a GHz machine vs a MHz machine 15:13:04 and it just ran 15:13:21 even though that was redhat linux and i'm on debian now 15:28:22 --- quit: proteusguy (Ping timeout: 246 seconds) 15:41:30 --- join: proteusguy (~proteusgu@cm-58-10-154-216.revip7.asianet.co.th) joined #forth 15:41:30 --- mode: ChanServ set +v proteusguy 16:00:57 --- join: pierpal (~pierpal@host57-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 16:03:44 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 16:04:16 hi 16:05:26 --- quit: pierpal (Ping timeout: 255 seconds) 16:09:06 --- join: pierpal (~pierpal@host57-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 16:17:29 --- quit: pierpal (Ping timeout: 246 seconds) 16:39:26 --- join: john_metcalf (~digital_w@host86-167-209-202.range86-167.btcentralplus.com) joined #forth 16:44:07 --- quit: rdrop-exit (Quit: Lost terminal) 16:48:46 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 17:02:18 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 17:13:05 --- join: X-Scale` (~ARM@114.49.43.5.rev.vodafone.pt) joined #forth 17:13:49 --- nick: jpsamaroo_ -> jpsamaroo 17:14:25 --- quit: X-Scale (Ping timeout: 246 seconds) 17:14:25 --- nick: X-Scale` -> X-Scale 17:36:40 --- join: pierpal (~pierpal@host57-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 19:24:12 --- join: tabemann (~tabemann@2600:1700:7990:24e0:b944:a349:56b9:12fb) joined #forth 19:33:53 --- quit: dave0 (Quit: dave's not here) 20:09:29 --- part: bjorkintosh left #forth 20:18:30 --- quit: dddddd (Remote host closed the connection) 20:25:55 --- quit: PoppaVic (Remote host closed the connection) 20:31:00 --- join: PoppaVic (~PoppaVic@unaffiliated/poppavic) joined #forth 20:51:04 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 20:51:26 re 20:59:07 --- quit: proteusguy (Ping timeout: 246 seconds) 21:02:52 --- join: gravicappa (~gravicapp@h109-187-22-102.dyn.bashtel.ru) joined #forth 21:05:48 --- quit: pierpal (Quit: Poof) 21:06:07 --- join: pierpal (~pierpal@host57-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 22:46:43 --- join: proteusguy (~proteusgu@mx-ll-14.207.208-30.dynamic.3bb.co.th) joined #forth 22:46:43 --- mode: ChanServ set +v proteusguy 23:36:12 --- join: xek (~xek@apn-37-248-138-200.dynamic.gprs.plus.pl) joined #forth 23:59:41 --- quit: jedb (Ping timeout: 258 seconds) 23:59:59 --- log: ended forth/19.05.13