2021-06-24 05:12:51 That's the key. You only pay the cost for the address once: in the token table. 2021-06-24 05:13:16 So if the token is smaller than an address you're saving space (at the expense of speed, typically). 2021-06-24 05:13:33 My STM8 Forth uses token threading because it's just such a cramped space. 2021-06-24 05:15:19 Was it so that token threading limits the number of words you can have? 2021-06-24 05:15:30 To the cell size, that is. 2021-06-24 05:15:55 As in for 1 byte tokens, you could have only 256 words. 2021-06-24 05:17:27 If you're in that cramped a space, that's rarely an issue. :D 2021-06-24 05:17:36 But there's ways to extend that. 2021-06-24 05:18:11 My tokened Forths are 8-bit tokens, but there are some reserved tokens. 2021-06-24 05:19:31 Essentially F0-FF are hard-coded to words that read the very next token and index into adjunct tables from that. 2021-06-24 05:20:28 Giving me in effect 4096 more words that are slightly slower to access (another layer of indirection). 2021-06-24 05:20:47 I don't think I've ever gone beyond F1, and most of the time I don't even go into F0. 2021-06-24 05:43:28 Makes sense 2021-06-24 05:46:32 KipIngram; I have the figForth source (for the 6809) if you want it. It's a scan of a hard listing. 2021-06-24 06:06:27 howdy 2021-06-24 06:40:24 So in two hours (7:30p GMT+7 BKK Time) we're going to attempt to multi-way live stream a demo of a forth implementation targeting a 6502 running on a javascript emulator. :-) Read the end of this blog 2021-06-24 09:30:31 is there a way to exit a BEGIN/AGAIN loop other than EXIT? 2021-06-24 10:45:36 I'm not aware of anything that'd be standard for that 2021-06-24 11:05:59 boru: Thanks - that would be cool to have around. I learned assembly programmingon the 6809; I imagine I remember it fairly well. 2021-06-24 11:06:28 proteusguy: How did the stream go? 2021-06-24 11:07:31 MrMobius: I'm not sure about standard ways, but it seems like it would be fairly easy to implement a BREAK word. You're just after a jump to just past the loop? 2021-06-24 11:13:53 Heh, I cut my teeth on the 68XX as well. 2021-06-24 11:14:23 Let me upload it somewhere. 2021-06-24 11:16:34 KipIngram, right. the question though is if that already exists in forth. i dont want to leave it out of the forth im working on if it's something common but seems safe to leave out otherwise 2021-06-24 11:23:11 -!- ChanServ changed mode/#forth -> +o proteusguy 2021-06-24 11:27:05 KipIngram; https://filebin.net/cmd4jmhyqt2y4225/kip.tar.xz (figForth 6809 source, figForth manual, figForth TinyPascall compiler) 2021-06-24 11:27:55 Err, meant to privmsg that. This isn't ##warez... 2021-06-24 13:21:25 KipIngram: hmm, in this forth I'm looking at, in the boot.fth it defines CREATE as : CREATE HEAD 1 1+ , ; makes me wonder what it'd look like if it weren't token threaded? i suppose simi 2021-06-24 13:21:28 IBM & CDC were using 'threading' in the 'popular' sense since the '60s. 2021-06-24 13:24:02 CREATE itself isn't very hard - it's the "DOES" part of the feature that complicates the implementation and is easier on direct threaded. 2021-06-24 13:24:50 springb0k: Well, I take your word for it; I'm not that up on my computing history. I assume it was Chuck or one of his cronies that coined the Forth usage at some point. 2021-06-24 13:26:04 brainfunnel: I once spent a couple of days trying to "generalize" create/does into an arbitrary number of levels, but I didn't really get it to go anywhere very interesting. 2021-06-24 13:26:49 I'm sure they did. Just pointing out that the rest of the world didn't take a word from the Forth world and redefine it. Vice versa. 2021-06-24 13:28:45 KipIngram: haha, I suppose thats why "DOES" isn't implemented in this particular boot. 2021-06-24 13:31:05 :-) 2021-06-24 13:35:54 From the Wiki article, the PDF is OCR'ed, you can search for "thread". http://web.mit.edu/Saltzer/www/publications/MIT-MAC-TR-030.ocr.pdf 2021-06-24 13:38:16 Although it's also referring to the meaning of the thread in Forth sense I think. 2021-06-24 13:38:31 A metaphor for a sequence of instructions. 2021-06-24 14:12:29 KipIngram, interesting. does me do a jump or jsr? 2021-06-24 14:13:13 ya Fortran started out in the mid 50s and became threaded at some point 2021-06-24 15:42:18 ME does a jump, MrMobius. 2021-06-24 15:42:59 Always to the beginning of the most recently compiled word - it's not an "adjustable" jump. 2021-06-24 15:43:22 I have it in conditional forms too, like 0=me and <=me and so on. 2021-06-24 15:43:44 The same "complete" set of conditionals that I have for conditional single and double returns. 2021-06-24 15:44:06 Those items - conditional recursion, conditional return, are really the full extent of my conditional control flow words. 2021-06-24 15:44:13 I don't have the classic structures. 2021-06-24 15:44:31 The standards don't make a distinction between colon words and primitives right? 2021-06-24 15:44:46 The compiler is smart enough to use a flag in the header to know whether to put an offset to start of word after the word it just compiled, so I don't need immediate words for any of those. 2021-06-24 15:45:00 There's not supposed to be a distinction - correct. 2021-06-24 15:45:23 That's one of Forth's "graceful features" - that words you add behave in every way like the "built-in" words. 2021-06-24 15:46:45 KipIngram: Is your Forth available online? 2021-06-24 15:58:54 KipIngram, so you basically have to make a whole new word for your BEGIN loops? 2021-06-24 16:13:53 neuro_sys: No, not yet. I want to get it to a more complete state first. 2021-06-24 16:14:17 MrMobius: Well, I don't HAVE to. I usually do. But I can do this if I want to: 2021-06-24 16:14:33 : foo ... code ... .: bar ... code me ; 2021-06-24 16:14:42 and the loop will go back to bar instead of foo. 2021-06-24 16:14:57 By using .: instead of : I can later delete the name bar from my dictionary. 2021-06-24 16:15:07 I would usually write that like this, though: 2021-06-24 16:15:12 : foo ...code... 2021-06-24 16:15:19 .: bar ... code ... me ; 2021-06-24 16:15:57 But yes, all of my jumps go to the beginning of the code associated with the most recent name in the dictionary. 2021-06-24 16:16:29 I've been using that model for a while now, and don't find it to be inconvenient in any way. I'm generally looking for opportunities to factor, and that helps me do that. 2021-06-24 16:22:20 maw 2021-06-24 16:26:17 maw 2021-06-24 16:26:23 maw crc 2021-06-24 16:57:06 maw dave0 2021-06-24 17:02:09 maw KipIngram 2021-06-24 21:15:05 hi proteusguy