00:00:00 --- log: started forth/18.12.09 00:50:27 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 01:24:49 --- quit: pierpal (Ping timeout: 240 seconds) 01:33:24 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 01:33:24 --- mode: ChanServ set +v proteusguy 02:03:49 --- quit: ashirase (Ping timeout: 240 seconds) 02:07:24 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:37:59 --- quit: proteusguy (Ping timeout: 268 seconds) 02:57:16 --- quit: DKordic (Quit: ERC Version 5.3 (IRC client for Emacs)) 03:25:19 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 03:25:19 --- mode: ChanServ set +v proteusguy 04:28:48 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 04:29:37 --- quit: proteusguy (Ping timeout: 246 seconds) 04:46:06 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 04:58:40 --- quit: pierpal (Ping timeout: 246 seconds) 05:17:50 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 05:17:51 --- mode: ChanServ set +v proteusguy 05:24:38 --- quit: Zarutian (Read error: Connection reset by peer) 05:24:44 --- join: Zarutian_2 (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 05:28:37 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 05:34:33 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 05:42:17 --- quit: groovy2shoes (Ping timeout: 268 seconds) 05:51:18 --- quit: Keshl (Quit: Konversation terminated!) 06:22:28 --- quit: proteusguy (Ping timeout: 250 seconds) 06:36:21 --- nick: Zarutian_2 -> Zarutian 07:10:39 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 07:10:39 --- mode: ChanServ set +v proteusguy 07:20:24 Morning, Forth gang gang 07:29:22 Hey WilhelmVonWeiner 07:29:48 what're you up to john 07:30:16 h'lo 07:41:25 --- join: johnnymacs (~user@c-73-83-39-203.hsd1.wa.comcast.net) joined #forth 07:42:07 I am getting curious about fig forth. 07:43:30 Is there a forth implementation that allows you to draw into a buffer, get mouse clicks and such, so you make a 2D interactive application ? 07:46:51 X-Scale: You can do that with sixels. 07:51:33 X-Scale: Example application: https://hub.darcs.net/pointfree/forth-sixel 07:52:12 * Zarutian muses that ATmega328p with 23K256T-I/SNCT-ND for extra memory might be a cheap way to get an 'Forthy' MCU 07:54:17 * Zarutian adds or even with 23LC1024T-I/STCT-ND for more memory, though one might want to use 'virtual' bank switching in the @ and ! primitives then. 07:54:22 john_cephalopoda: thank you 07:55:42 --- quit: johnnymacs (Ping timeout: 244 seconds) 08:08:49 --- quit: dave0 (Quit: dave's not here) 08:10:44 pointfree: it seems to me that you do not do any probe escape seqs to see if the terminal actually supports sixels and mouse reporting 08:11:19 X-Scale: I don't have mouse support in this, but this will give you a framebuffer and sixel drawing: https://thecutecuttlefish.org/tmp/sixel.fth 08:11:38 X-Scale: Also some basic demo: https://thecutecuttlefish.org/tmp/draw.fth 08:15:00 --- quit: proteusguy (Ping timeout: 245 seconds) 08:21:20 I have an experimental branch of retro running on ios with a framebuffer and support for reading touch locations. (doing some prototyping work for possible native RPi version next year) 08:24:55 Zarutian: Yeah, perhaps I should add that. Also, there are some differences in how mouse reporting works in xterm vs mlterm. ( See the latest https://hub.darcs.net/pointfree/forth-sixel/browse/paint.4th#36 ) I think the problem is with xterm. 08:24:55 I once reported a bug to xterm maintainer Thomas E. Dickey back in 2010/8/30 he fixed it for me very promptly. I should also consult the sixel guru Saitoha https://twitter.com/kefir_ https://github.com/saitoha who has code that depends on this. 08:40:06 Hmm intriguing https://vt100.net/dec/vt320/soft_characters https://github.com/saitoha/drcsterm 08:45:13 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 08:45:13 --- mode: ChanServ set +v proteusguy 09:13:25 --- join: johnnymacs (~user@c-73-83-39-203.hsd1.wa.comcast.net) joined #forth 09:14:35 hmm.. sixel support works on xterm on RPi2 raspbian but not mouse reporting. 09:40:17 Zarutian: Was xterm compiled with --enable-dec-locator --enable-sixel-graphics --with-terminal-id=VT340 configure options? 09:40:34 --- quit: pierpal (Quit: Poof) 09:40:51 nope, just the one given by aptitude iirc 09:40:52 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 09:41:56 Zarutian: Try mlterm with the version that corrects mouse support for mlterm. 09:42:17 (The version of pointfree's code which was edited to fit mlterm) 09:43:07 It is nice that they now enable sixels by default on your distro's xterm package. 09:47:13 --- quit: ncv (Remote host closed the connection) 09:47:41 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 09:49:29 --- quit: proteusguy (Ping timeout: 240 seconds) 09:55:13 --- quit: pierpal (Ping timeout: 268 seconds) 10:01:50 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 10:01:50 --- mode: ChanServ set +v proteusguy 10:11:49 --- quit: gravicappa (Ping timeout: 240 seconds) 11:04:29 --- quit: proteusguy (Ping timeout: 240 seconds) 11:15:58 --- quit: johnnymacs (Ping timeout: 246 seconds) 11:23:29 --- join: verisimilitude (~user@2604:180:2:725::698a) joined #forth 11:29:55 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 11:34:43 --- join: johnnymacs (~user@c-73-83-39-203.hsd1.wa.comcast.net) joined #forth 11:35:39 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 11:35:40 --- mode: ChanServ set +v proteusguy 11:47:41 --- join: johnnymacs` (~user@c-73-83-39-203.hsd1.wa.comcast.net) joined #forth 12:08:59 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 12:36:29 --- join: johnnyma` (~user@c-73-83-39-203.hsd1.wa.comcast.net) joined #forth 12:36:49 --- quit: johnnymacs` (Ping timeout: 240 seconds) 12:37:19 --- quit: johnnymacs (Ping timeout: 250 seconds) 13:10:34 --- quit: verisimilitude (Remote host closed the connection) 13:14:10 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 13:14:23 I have trouble undersanding jonesforth.S because it's in assembler 13:15:36 for example I do not know what lodsl does 13:15:46 I assome it loads a value into memory somewhere 13:16:31 is that an instruction or a word? 13:16:41 I don't know I did not write the code 13:16:47 it is in the next macro 13:17:17 * jn__ downlods jonesforth 13:17:28 --- quit: MrMobius (Ping timeout: 268 seconds) 13:17:28 --- nick: [1]MrMobius -> MrMobius 13:18:54 look about 30 lines up 13:19:07 "The all-important i386 instruction is called LODSL (or in Intel manuals, LODSW). It does [...]" 13:19:41 lodsl fetches a long from the memory at address %esi into %eax and then increments %esi by 4 13:21:14 if you're new to x86 asm, this is a good reference for mnemonics you don't recognize: https://www.felixcloutier.com/x86/ 13:22:10 (note that it'll use the d suffix instead of l; that's an intel versus at&t thing - intel liked to call them doublewords, at&t liked to call them longs) 13:24:25 so it is meant to hop along four bytes at a time if you keep goign lodsl lodsl lodsl lodsl 13:25:08 yes but presumably you'd want to do something with %eax between each of those because each time it's throwing away the previous value 13:26:09 (in the case of jonesforth, it jumps to *%eax iirc) 13:27:38 --- quit: pierpal (Ping timeout: 272 seconds) 13:27:57 so jmp *(%eax) means jump the processor to whatever pointer is stored in eax 13:28:11 so next allows you to fetch an address and jump to it 13:28:33 if by "jump the processor" you mean load into the instruction pointer, sure 13:29:06 well, actually jmp *(%eax) dereferences %eax 13:29:41 jmp %eax <- jump to the address in %eax jmp *%eax <- jump to the address stored in memory at the address in %eax 13:29:46 I don't know the internals of a processor 13:30:24 So it jumps to the address within the address within eax 13:30:30 there's an instruction pointer register, %eip, which always has the address of the next instruction to be executed 13:30:40 jmp instructions simply load new values into %eip 13:30:52 is this channel logged? 13:30:59 yes 13:31:11 it's in the channel subject 13:31:40 or topic, w/e it's called 13:32:53 so jump loads to eip 13:32:56 jmp 13:33:10 yes 13:34:06 are jmp and lodsl macros? 13:34:12 no, they're mnemonics 13:34:50 i.e. names that tell the assmbler which instruction this is 13:37:47 not so relevant to jonesforth, but as a side-note, there's also a call instruction which works very similar to jmp but just before loading a new address to %eip, it pushes the address immediately following the call instruction to the stack 13:37:55 I need to learn more about assembler instructions 13:38:17 and that's of course then used by the ret instruction, which pops an address from the stack and puts it into %eip 13:38:40 if the barrier to entry to *officially* learn forth is to know assembler that puts me in a difficult positition 13:38:50 assembler is easy 13:38:57 you're learning it right now 13:39:12 yeah but I would have to recursively go through everything in jonesforth.s and ask you what the pieces do 13:39:41 forth is an assembler-like 13:39:45 i don't think jonesforth is more "official" than other implementations 13:39:53 it's just somewhat popular 13:40:01 it's not, in fact jonesforth gets some stuff wrong 13:40:09 unless it's been fixed since the last time i looked 13:40:10 what about fig forth? 13:40:47 is fig forth an implementation or a specification 13:41:35 I don't know 13:41:52 learn "assembler"? heh 13:42:14 johnnyma`: well, that's an essential prerequesite to the answer :) 13:42:23 There is kind of a FIG standard afaik, but it's more of a spirit than an authoritative body 13:42:37 http://tinymicros.com/wiki/FIG_Forth 13:42:37 FIG was the One True Users Group; they had a Reference Implementation for - 8080, iirc; every further FIG-Forth used that as the Reference and implemented for 6502, etc. 13:42:51 the site is dead, but still hosted Out There. 13:43:53 learning assembler may not be possible for me for many years. I do not have the time and I am struggling to find work and housing 13:44:05 The only FIG Forth references today are going to be horrific scans; very old, dog-earred stapled prints; and some out of print books/things 13:44:31 No one needs to learn asm to use a forth. Doing so is a bonus. 13:44:45 people keep telling me I don't know forth 13:44:51 I think there are some key pieces I need to know about to use it 13:45:03 (and there are so damned many 'asm's that you have a real task there if it's yer mission) 13:45:37 johnnyma`: Starting Forth and Thinking Forth. Anything written by/about CM.. It's mostly a headspace. 13:45:47 well, in this context i think it's understood that 'learning asm' means learning the fundamentals and not learning every ISA ever 13:46:57 what does /mod do in jonesforth? 13:46:59 fundamentals are easy: assembly has registers, vectors/interrupts, status/flags, ports, memory, and opcodes - throw mnemonics and syntax around it all. 13:47:25 johnnyma`, what does the comment say? 13:47:34 oh, and data sizes: bytes, [words/half-words/doubles/longs/quads...] 13:47:48 zy]x[yz: it's defined in jonesforth.S 13:47:52 but I don't read assembler 13:48:27 johnnyma`: without a book, you need a document or helpfile that explains such things. Even if the implementation varies. 13:48:39 johnnyma`, https://github.com/nornagon/jonesforth/blob/master/jonesforth.S#L796 13:48:45 there's a comment that tells you what it does right there 13:48:54 '/mod' performs both '/' and 'mod'. 13:48:55 7 3 /mod . . 13:48:57 If someone implemented a true forth in javascript and not assembley maybe I could understand i better 13:49:02 PoppaVic: http://home.hccnet.nl/a.w.m.van.der.horst/ciforth.html 13:49:11 "horrific old scans" 13:49:15 there's a lot of docs on fig 13:49:34 http://forthworks.com/forth 13:49:38 WilhelmVonWeiner: yeah, there are several sites.. I've got a couple I grabbed that are just horrificly hard to read 13:49:41 http://stackosaurus.com/figforth.html 13:49:55 http://tinymicros.com/wiki/FIG_Forth 13:50:06 Now, all I need to do is "find" a samd21 M0+ forth ;-) 13:50:44 I have to disconnect 13:50:47 soon 13:51:01 johnnyma`: create an account at hashbang.sh 13:51:21 I use a free shell account hosted there for my IRC 13:51:42 it's also great for your botnet 13:52:12 If I'm not selling those Cialis pills, who is? 13:52:39 you are doing the lord's work 13:52:43 that script didnt do anything but warn me about security 13:52:45 time to format 13:52:52 read the script maybe 13:52:52 bye 13:53:19 or maybe it's the page source? either or 13:54:25 --- quit: mtsd (Quit: WeeChat 1.6) 13:57:05 --- quit: johnnyma` (Ping timeout: 245 seconds) 14:30:20 --- join: verisimilitude (~user@2604:180:2:725::698a) joined #forth 14:55:08 Does anybody want to join me in writing some Forth code? 15:33:40 --- quit: tabemann (Ping timeout: 268 seconds) 15:58:07 What manner of Forth and how long, john_cephalopoda? 15:58:44 I don't find myself writing new Forth often, but it's fun to simplify and improve Forth someone else wrote. 16:26:16 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 16:33:34 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 16:38:17 --- join: TheCephalopod (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 16:38:38 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 16:38:41 --- nick: TheCephalopod -> john_cephalopoda 16:39:42 verisimilitude: gforth (but written as portable as possible). I just want to do random graphics primitives and probably a vector math lib so I can draw 3d stuff onto the screen. 16:42:51 Doing anything graphical under UNIX isn't my cup of tea, so I suppose I'll decline, unfortunately. 16:44:41 verisimilitude: It is drawing sixels in terminal. 16:45:15 Most of the work will be pushing pixels into buffers :þ 16:45:53 How those pixels are brought to the screen is completely seperate from that. 16:46:39 http://thecutecuttlefish.org/tmp/sixel.fth | http://thecutecuttlefish.org/tmp/draw.fth 16:51:09 Oh, sixels; I wouldn't really be able to test it, with my current environment, anyway. 16:51:14 On a different note, nice website. 16:55:26 --- join: johnnymacs (~user@c-73-83-39-203.hsd1.wa.comcast.net) joined #forth 16:55:35 Ok formatted and went to the bathroom. 16:55:51 V dang rude my friend hopefully you are not into my bios or I will have to go buy a new computer 16:56:26 --- quit: proteusguy (Ping timeout: 250 seconds) 16:57:08 verisimilitude: Thanks :) 16:59:11 --- join: dave0 (~dave0@47.44-27-211.dynamic.dsl.syd.iprimus.net.au) joined #forth 16:59:28 hi 17:00:07 Hello, dave0. 17:00:37 hi verisimilitude 17:02:44 --- join: tabemann (~tabemann@h193.235.138.40.static.ip.windstream.net) joined #forth 17:02:54 Hey dave0 17:03:02 Afk for the night, see you all~ 17:03:55 hi/byr john_cephalopoda ! 17:03:56 --- quit: Labu (Ping timeout: 252 seconds) 17:04:52 zy]x[yz: I am back 17:07:50 congratulations 17:17:13 --- join: Labu (~Labu@labu.pck.nerim.net) joined #forth 17:19:04 Sorry things are topsy turvey right now. Did you see my reddit post about using structs on the stack? 17:22:00 Someone said to me before objects are best achievable through forth dictionaries which I tend to agree with based on some benchmarks someone sent me of adding 10,000 dictionary entries 17:24:42 no, i don't visit reddit all that often 18:02:27 well the word g can produce the global object to the stack and expect the next word to be the name of a subobject within it 18:02:51 g0 can be to take what is currently on the stack and get the next subobject 18:03:20 g< takes what is on the stack and executes it 18:03:33 g> takes what is on the stack and stores it in the subobject 18:03:39 Well perhaps g! and g@ 18:17:29 --- quit: johnnymacs (Ping timeout: 240 seconds) 18:27:06 --- quit: dddddd (Quit: Hasta otra..) 18:28:16 --- quit: tabemann (Ping timeout: 268 seconds) 18:31:28 --- join: johnnymacs (~user@c-73-83-39-203.hsd1.wa.comcast.net) joined #forth 18:31:48 ls / 18:32:22 My goal I guess is to replace my shell with gforth or some forth variant 18:34:52 --- join: tabemann (~tabemann@h193.235.138.40.static.ip.windstream.net) joined #forth 18:56:11 It's been done before; a basic shell isn't that hard if your Forth has access to libc or a syscall interface 19:21:18 crc: Yes. Yet, one must remember: Real Men Don't C 19:31:32 --- join: gravicappa (~gravicapp@h109-187-52-39.dyn.bashtel.ru) joined #forth 19:37:46 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 19:37:46 --- mode: ChanServ set +v proteusguy 19:54:35 --- quit: johnnymacs (Ping timeout: 245 seconds) 20:06:09 --- quit: tabemann (Ping timeout: 240 seconds) 20:20:28 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 20:31:26 --- quit: pierpal (Quit: Poof) 20:31:46 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 20:32:54 --- join: tabemann (~tabemann@2602:30a:c0d3:1890:a433:523c:27b8:b5c8) joined #forth 20:41:47 --- quit: proteusguy (Ping timeout: 250 seconds) 21:29:35 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 21:29:35 --- mode: ChanServ set +v proteusguy 21:33:05 --- join: smokeink (~smokeink@42-200-117-62.static.imsbiz.com) joined #forth 21:43:56 Given a host Forth using C (gforth) and a host os (Linux or a BSD?, assuming by the mention of a shell) written in C, he'll need to understand at least a bit of the interfaces. For a shell, the basic syscalls involved are close or identical to the libc wrappers. 21:52:16 Sounds like a complete pain in the rectum, let alone redundant. 22:11:32 It's not that bad. Realistically, fork, one of the exec variations, and wait 22:12:02 waitpid should cover the basics 22:20:41 You can already run gforth from the shell - and execute a shell, or a pipeline, Problem Solved. 22:33:49 --- quit: proteusguy (Ping timeout: 240 seconds) 23:20:58 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 23:20:58 --- mode: ChanServ set +v proteusguy 23:34:40 --- quit: dys (Ping timeout: 250 seconds) 23:42:37 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 23:43:49 --- join: [2]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 23:45:30 --- quit: MrMobius (Ping timeout: 250 seconds) 23:45:59 --- quit: dave0 (Quit: dave's not here) 23:47:05 --- quit: nighty-- (Ping timeout: 268 seconds) 23:47:40 --- quit: [1]MrMobius (Ping timeout: 272 seconds) 23:55:32 --- join: MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 23:58:42 --- join: nighty-- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 23:58:49 --- quit: [2]MrMobius (Ping timeout: 240 seconds) 23:59:59 --- log: ended forth/18.12.09