2021-11-25 10:04:43 the log bot crashed during the netsplit; missing messages are at http://forth.works/share/1da23941437226823846417de8e84dd5 2021-11-25 14:02:49 dave0: Is your Forth token threaded? 2021-11-25 15:26:58 in gforth, require ansi.fs gives me: require ansi.fs redefined pn redefined ;pn redefined ESC[ redefined at-xy redefined page ok 2021-11-25 15:27:21 is that expected? 2021-11-25 16:28:16 logand`: It's not unexpected I don't think 2021-11-25 16:28:33 maw 2021-11-25 16:29:32 dave0: Cool 2021-11-25 16:29:56 Re compiling first FORTH word 2021-11-25 16:30:16 thanks veltas :-) 2021-11-25 16:31:17 there is no compile state yet, i crufted a word that pushed a number on the stack :-) 2021-11-25 16:31:36 Don't go crazy with loops that print numbers from 1 to 10 or anything too fancy 2021-11-25 16:31:36 like : five 5 literal, ; 2021-11-25 16:31:41 ehehe 2021-11-25 16:31:42 This is FORTH, we're not wizards 2021-11-25 16:32:12 veltas: ok, thanks 2021-11-25 19:09:16 dave0: what is the threading model you are using? 2021-11-25 19:09:32 the «thread carefully» model 2021-11-25 19:11:36 crc: indirect threading... it's a 32 bit forth for 8086 realmode... eventually it will be a bootloader for bios 2021-11-25 19:12:29 cool. I haven't explored indirect threading so far 2021-11-25 19:12:31 i am testing it with dosbox, and it runs as a .com file in msdos 2021-11-25 19:13:12 crc: it's interesting :-) 2021-11-25 19:14:38 crc: the least standard part is that words are made up of segment:offset pointers, so compiling xt's means running a segment> word that turns a flat address into segment:offset 2021-11-25 19:15:54 but the nice thing is that (apart from compiled pointers) it's a flat memory model... there's 512K of ram and you can make up to that size data structures 2021-11-25 19:16:04 no 64k limits 2021-11-25 19:16:50 nice 2021-11-25 19:18:16 i am rewriting INTERPRET so it can compile words.. it's a mass of IF/ELSE/THEN so it's tricky to compile by hand :-p 2021-11-25 19:27:21 : compile, >segment , ; >segment is a primitive that takes a 20 bit address and produces segment:offset .. since cells are 32 bits, the values fit nicely 2021-11-25 19:31:48 the dictionary is a linked list, but the link field is a 20 bit address... so i can in theory use the top 12 bits for flags... so far i just use one bit for IMMEDIATE 2021-11-25 19:34:14 also it requires alignment to 4 bytes for some edge cases in ! and @ 2021-11-25 19:34:49 so maybe people used to msdos forths might find it tricky 2021-11-25 19:35:13 cos 8086 is wel known for not needing alignment 2021-11-25 19:57:22 oh my god 2021-11-25 19:57:44 : square dup * ; 5 square . works! 2021-11-25 19:57:52 25 ! 2021-11-25 19:58:58 ACTION happy dance 2021-11-25 19:59:03 it's working! 2021-11-25 19:59:09 now strings so i can hello world 2021-11-25 20:00:04 very good 2021-11-25 20:03:43 thanks f-a :-) 2021-11-25 21:24:40 nice 2021-11-25 21:24:44 hello world 2021-11-25 21:24:46 no worries 2021-11-25 21:32:36 ok time for lunch bbl