00:00:00 --- log: started forth/19.03.15 00:24:12 --- join: dgi (~dg@s559515c3.adsl.online.nl) joined #forth 01:08:10 fixed point is also the common approach for cpu based image processing - can be nice to work with 01:13:32 --- quit: xek (Remote host closed the connection) 01:13:57 --- join: xek (~xek@apn-31-0-23-82.dynamic.gprs.plus.pl) joined #forth 01:27:55 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 01:37:05 Oh, it would be stylish to have an md5sum program in forth :D 01:48:47 Would be relatively easy if the file input code wasn't that crappy in Forth. getchar() would be a really useful thing there. 01:52:36 the_cuckoo: I wonder if the dropping-off of slide rule usage is what's led to people forgetting that fixed-point exists? 01:58:55 perhaps :) - i made a point of teaching it to my kids - using their fingers as bits :) 02:00:45 https://en.wikipedia.org/wiki/Q_(number_format) <-- Neat 02:03:11 --- join: `presiden (~presiden@unaffiliated/matematikaadit) joined #forth 02:03:23 --- quit: ashirase (Ping timeout: 250 seconds) 02:14:19 the_cuckoo: I have actual slide rules (note the plural) so my son is getting taught how to use them to help him think about estimation and scaling. 02:21:08 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 03:39:21 --- quit: mtsd (Quit: leaving) 03:49:59 --- quit: dgi (Ping timeout: 245 seconds) 05:57:15 ttmrichter: :) - i'll probably get them to try https://play.google.com/store/apps/details?id=air.DigitalSlideRule20160505A&hl=en 06:00:58 bought a usb desklight - really kinda neat - very bright at full power - has integrated clock, alarm and thermometer (i also have this weird 'hobby' of collecting usb devices - have quite an assortment from an osccilliscope, razor, lighter and others - this light fits in well :)) 06:01:21 :-) 06:01:55 there is even a usb endoscope - i'm very tempted to buy one, but no, i won't stick it up my bottom 06:04:54 lmao - yes, I think I'd pass on that... 06:05:15 Do you have a software radio? 06:05:35 You can get a pretty nice one for like $30. 06:17:11 haven't come across one of those, no :) 06:20:46 also replaced the fluorescent lamp down here - jeez - what a difference - can see the dust and dirt now... vaguely wondering if i should switch the old one back rather than clean 06:23:33 trying to do anything with pi has been ... uncomfortable... eyesight started deteriating a decade back, and trying to id components in the poor light was really hurting me 06:28:02 Hmmm. Let me send you a link. 06:28:34 This is the one I bought: 06:28:37 https://www.amazon.com/gp/product/B011HVUEME/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&psc=1 06:28:54 Has a little kit of antennas and everything. 06:31:38 sounds like fun, yeah :) - what are you using it for? 06:33:18 Well, I've just had my amateur radio interest get "re-kindled" recently. Last Saturday I sat for upgrade exams and bumped myself from a Technician class amateur up to Extra, the highest tier. That just showed up in the FCC database this morning. 06:33:42 So it's a general radio interest - tinkering with antennas and things like that. One specific thing I want to do with it is receive weather satellite pictures. 06:38:38 that'd be fun - as a kid, there was a brief craze for CB radio in the UK - my neighbour bought the kit and we all had a lot of fun with it 06:40:00 think it all coincided with the dukes of hazzard being broadcast over here :) - lots of people picking up on the lingo, mostly badly :) 06:42:03 Yeah, we had the CB radio craze here in the US to. Mid 70's? I think the movie "Smokey and the Bandit" gave rise to that. 06:49:40 could have contributed, yeah 06:50:04 also, convoy - still love the song :) 06:51:03 Yes, though I thought Convoy came as a result of the craze, rather than vice-versa. 06:53:33 could have been - i think it would have hit the uk a bit later than you had it 06:54:56 the_cuckoo: I can give him the real thing. Far more persuasive and impressive than a simulation, in the "wait, people really USED these?" sense. :D 06:56:25 :) 06:56:42 i used to have one, but long since lost i fear 06:56:45 I have several old-school training ones (cardboard) that he'll be starting with because I'm not going to hand over antiques to someone to start with. 06:56:58 These things are older than I am. By at least a decade. :D 06:57:56 would be kinda fun to make one i think - laser cutter should do it (my local hackers club has one - i only used it to cut a chessboard for my 3d printed chess set though) 07:04:28 CNC would do a better job for fitting the pieces. 07:04:36 Laser cutter would be best for engraving the lines. 07:05:21 There is (or at least was) a site out there that would give you the CNC control files you need to make a slide rule to your specifications. 07:09:29 yeah - am sure - and the cnc is in a state of repair for many years :) - the guy rescued it from a skip :) 07:11:06 We have a CNC at work. I occasionally get the urge to buy some anodized aluminium and cut myself a personal slide rule. 07:11:16 But then I, you know, stop being crazy. :D 07:14:27 :) 07:38:25 --- join: mark4 (~mark4@148.80.255.161) joined #forth 07:42:51 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 07:45:42 --- quit: mark4 (Remote host closed the connection) 07:46:07 --- join: mark4 (~mark4@148.80.255.161) joined #forth 07:58:22 --- quit: travisb (Ping timeout: 252 seconds) 08:28:50 Ok, I implemented some words to do Fletcher32 checksums, and I can re-direct my assembler code generator output into that. 08:29:11 I'm going to pick out a suitable "good coverage" subset of these instructions and stick them in a block, with some code around them to do that. 08:29:28 Then I'll be able to "quick test" the code generator just by loading that block/blocks. 08:31:02 "Clever girl..." 08:31:51 KipIngram, what kind of assembler? 08:32:12 I'm implementing a partial x86 assembler in my Forth. 08:32:38 I've got 32-bit and 64-bit add, or, adc, sbb, and, sub, xor, cmp, mov covered so far. 08:33:01 I spent Saturday conducting a full verification against nasm output. 08:33:16 It's completely correct - all 109,440 instruction possibilities. 08:33:40 ..every time you say that, I cringe.. I really do. 08:33:54 As far as I can tell, there is no difference at all in how the first eight of those nine instructions are encoded, other than the opcode bits changing. 08:34:01 The mov instruction is different, though. 08:34:10 So I think in my quick test I can pick one of the eight, and pick mov. 08:34:38 Most of the registers behave the same, but the *sp, *bp, r12*, and r13* registers are a little different. 08:35:15 are you doing the encoding in HEX or octal 08:35:20 As far as offsets and immediate values go, I want to do the cases right at the boundary of the 1-byte / 4-byte representation. 08:35:35 So I want to test 127, 128, -129, -128 on those. 08:35:39 and is it a traditional forth assember 5 # ax mov (ick) 08:36:00 Um, I'm encoding it in place; I just have a big instruction word and I diddle the bits in. 08:36:05 i can show you a trick that will allow you to do mov ax, # 5 lol 08:36:08 EZPZ 08:36:13 aha 08:36:15 It looks kind of likke this: 08:36:25 -129 [r13+] rax add; 08:36:52 I went to the trouble to create [reg] and [reg+] words for all registers, instead of using [] and [+] separately. 08:36:59 i NEED to write an x86 assembler 08:37:02 [] and [+] are there, but they're under the hood. 08:37:07 so i can freeking METAcompile grr 08:37:09 i'm very happy with the resulting syntax. 08:37:20 Yes, that's my real goal here - this is a first step toward that. 08:38:18 rebooting to near kernel brb 08:38:22 --- quit: mark4 (Remote host closed the connection) 08:39:48 --- join: mark4 (~mark4@148.80.255.161) joined #forth 09:13:08 Yeah bootstrapping from binary, to hex, to assembly then Forth is a goal of time. 09:13:09 Mine* 09:13:20 . 09:14:07 Hm would it be cheating to write a high level program to generate the initial binary and hex? 09:14:33 gee, like my gforth TTcode assembler? ;-) 09:56:35 PoppaVic, you wanted to see my avr assembler didnt you? i forgot about that lol 09:58:12 mark4: yeah, I did - any time. I've been tweaking the TTcode assembler so it slipped my mind. I found an avrasm for an avrforth a year or so ago, and flogged it to host-compile under gforth - and I am about ready to fold it into my tool/s 10:20:42 --- quit: nighty- (Quit: Disappears in a puff of smoke) 10:30:42 --- quit: mark4 (Remote host closed the connection) 12:08:27 --- quit: pierpal (Quit: Poof) 12:08:47 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 12:43:51 --- quit: gravicappa (Ping timeout: 250 seconds) 12:44:10 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 13:41:48 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 13:46:50 --- join: dave0 (~dave0@223.072.dsl.syd.iprimus.net.au) joined #forth 13:47:12 hi 13:56:55 --- quit: pierpal (Quit: Poof) 13:57:15 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 14:01:44 hey dave0 14:02:06 hi the_cuckoo 14:02:09 sup? 14:04:30 not much - have friends over from glasgow tomorrow - suspect lots of drink involved... taking it easy tonight :) 14:05:50 how about yourself? 14:06:10 cool drinks! 14:06:30 i'm alright, just trying to optimize my code :-) 14:07:49 fun :) 14:08:31 ehehe 14:08:45 --- quit: cheater (Ping timeout: 245 seconds) 14:10:09 i know some tricks to save jumps, but i don't know if it only works on 2's complement 14:11:06 : >lower ( char -- char) dup [char] A - 26 u< 32 and + ; 14:11:27 that's pretty tight code but i'm not 100% sure it's portable 14:14:28 hmm 14:15:35 how does it compare to the unoptimised? 14:16:07 guess you're checking the A-Z range? 14:16:22 yah 26 letters 14:17:05 i don't have the unoptimizer code any more, i just tweaked it until i got what i have now lol 14:17:32 :) 14:18:06 off the top of my head dup [char] A [char] Z within IF 32 + THEN 14:19:20 that's heaps easier to read, but (even though i haven't timed it) >lower is in inner loops 14:30:18 yeah - that makes sense - '32 or' would be the way i'd do it (on account of it being a bit pattern) 14:31:22 certainly easier to read too 14:38:00 funny though - for me, i would do something like 'dup isalpha 32 and or' i think 14:39:42 that's a very C name :-) 14:40:09 :) - dyed into the wool here :p 14:40:39 i have to unlearn C stuff to learn Forth 14:41:35 * Zarutian wonders if Smalltalk80/Squeak VM was ever ported a Forth 14:42:37 well, isalpha or an equivalent is useful thing in itself - am unsure how to optimise it beyond what you have though - certainly using it inline would be a small improvement, but no different to what you had - same branching 14:43:56 alpha? is a more forthy name :-) 14:44:29 what's in a name as the bard once asked :) 14:44:52 brb coffee refill 14:50:13 dunno :) - perhaps what you have is fine - just wondered it it was possible to make it clearer what it was doing :) (and i do think using bit operations helps a little, but that might just be a personal bias :)) 14:53:55 the next step would be make it primitive 14:54:35 but then it would be even harder to read :-p 14:54:40 :) 14:57:20 --- quit: mtsd (Quit: leaving) 14:57:42 how does the assembly come out anyway? can you disassemble easily? 14:57:56 --- join: dys (~dys@tmo-120-98.customers.d1-online.com) joined #forth 15:00:02 something like cmp rax,'A' jl skip cmp rax,'Z' jg skip or rax,32 skip: NEXT 15:00:37 it's not bad but i like forth 15:00:57 seems pretty good 15:02:56 --- quit: dys (Ping timeout: 255 seconds) 15:03:15 --- join: reepca (~user@208.89.170.37) joined #forth 15:03:36 trying to see what gcc outputs :) 15:05:52 heh - not inlined even with -O2 15:07:27 gcc has some interesting tricks in its assembly 15:09:08 but the code is not small 15:09:16 forth primitives are small 15:10:47 --- quit: pierpal (Quit: Poof) 15:10:47 yeah - bit to read - quite clear though 15:11:06 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 15:13:23 --- join: dys (~dys@tmo-121-10.customers.d1-online.com) joined #forth 15:14:57 --- join: anamorphic (~anamorphi@50.58.217.82) joined #forth 15:16:08 Well, I got that Fletcher32 stuff working completely correctly and verified against some info online. Turns out it wants the data 16 bits at a time, and you have to zero-pad if you have an odd number of bytes. 15:16:25 hi KipIngram 15:16:28 I wrote it so that it will cache odd bytes, and then when the even partner arrives it rolls them both into the sum together. 15:16:32 hi dave0 15:16:52 And if you ask for the result when it's on an odd byte, it will automatically add the 0 pad. 15:17:06 what are you hashing? 15:17:07 But that doesn't disrupt the running sum - you can get interim values along the way just fine. 15:17:15 The code bytes out of my code generator. 15:17:43 So that I can "can" a test of it. 15:17:45 --- quit: dne (Remote host closed the connection) 15:18:22 Instead of manually capturing all of that stuff and using external utilities to compare it to nasm, I'll just redirect the code stream into the Fletch32 engine and then confirm the right checksum results. 15:19:24 --- join: dne (~dne@jaune.mayonnaise.net) joined #forth 15:19:39 So in some block I'll 1) redirect the generator output into Fletch32, 2) clear the Fletch32 engine, 3) run a whole bunch of assembly language instructions, and then at the bottom of the block 4) restore the generator output to c, and 5) compare the checksum against a previously determined result. 15:19:52 ah i see 15:20:03 I won't be able to have the exhaustive 109,440 isntruction test set up that way - I don't want to invest that much block space. 15:20:13 I'll try to select the "right cases" to get good coverage. 15:20:34 And of course I can always manually paste in the whole set and get its checksum - I documented that value in my source comments. 15:32:04 --- quit: dys (Ping timeout: 245 seconds) 15:32:37 --- quit: anamorphic (Quit: anamorphic) 16:13:31 --- quit: chunkypuffs (Remote host closed the connection) 16:14:09 --- join: chunkypuffs (~chunkypuf@2a01:4f9:2b:16d5::1) joined #forth 17:28:07 --- quit: KipIngram (Quit: WeeChat 1.4) 17:37:49 --- quit: john_cephalopoda (Ping timeout: 240 seconds) 17:43:12 --- join: KipIngram (~kipingram@185.149.90.58) joined #forth 17:43:12 --- mode: ChanServ set +v KipIngram 17:51:26 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 18:00:30 KipIngram: how many instructions make up the 109,440 encodings 18:02:07 Nine. 18:02:24 add or adc sbb and sub xor cmp mov 18:02:47 As far as I can tell the first 8 encode identically, whereas mov does some things differently but "close." 18:04:16 Then of course there's reg/reg [mem]/reg w/o offset, [mem]/reg w/offset, reg/[mem] w/o offset, reg/[mem] w/ offset, and also immediates that can come in as sources. 18:04:24 And 16 64 bit regs and 16 32 bit regs. 18:04:30 So it exploads to a lot of combinations. 18:04:58 I also did four different values of immediates and offsets - -129 -128 127 128. 18:07:19 I just wrote a little Python script that iterated over all of the different things that could vary and poured it all out. 18:08:17 The "ax" regs seem to get a bit of special treatment, and the "sp" regs (sp and r12) and the "bp" regs (bp and r13) also get some variations. 18:08:22 The others all seem to be the same, though. 18:08:48 I got it working, but I don't know if my mental picture of it all is perfect yet. 18:09:00 That last bit of it was "by smell." 18:09:57 I want to be able to do xchg's, and I'll need some kind of support for jumps. 18:10:07 I think that's probably enough for me to forge on. 18:11:03 Oh, one interesting tidbit if you're ever going to work on this. 18:11:21 When you start looking at these instructions you'll see pretty clearly where the "source" and "destination" regs get encoded in the instruction word. 18:11:37 There are three-bit fields for those, and then a fourth bit for each an a totally different byte. 18:11:56 I wonder how many encodings would be needed to cover everything... 18:12:00 But if you are doing register indirect addressing on your SOURCE, then they SWAP them. 18:12:21 I wonder if I could even COUNT those before I die. 18:12:25 * crc used to be much better versed on low level x86 details 18:12:27 That instruction set is pretty ridiculous. 18:13:47 Yeah, way back in the early days I could more or less decode 8088 / 8086 code visually. 18:13:54 But then I got distracted and they left me behind. 18:14:08 my vm has 810,000 possible combinations (30 instructions, packed 4 per memory location), but I only use 73 of them in implementing retro. 18:14:47 I was pretty goodbup to the 386. never bothered learning all the stuff added after that 18:15:59 I got to the 286. I was working on other stuff (railguns and whatnot) when the later ones came out. 18:22:58 http://forthworks.com/temp/opc386.txt http://forthworks.com/temp/opx86.html http://forthworks.com/temp/opcodes.html are the remaining bits from my old collection (unless I someday manage to figure out which of the dozens of old drives has the rest) 18:27:02 I had once intended to make something similar to nasm or fasm far the purpose of self-hosting retro on x86, but never got around to actually writing it 18:30:09 I'm not shooting nearly that high. I think a fairly small subset will really get me 99% of the way there. 18:30:20 Then maybe I'll come back and pick up other things from time to tiem. 18:30:22 time 18:30:49 It would be so much more fun if it were a truly well-organized encoding, but it sort of just "grew" over the years, I think. 18:40:17 I'm hoping the ARM will be a lot easier. 18:43:39 --- join: nighty- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 18:43:46 any forth that could run on a riscv64 cpu? 18:45:08 how does WITHIN work? if i have n [char] a [char] z WITHIN that's true if n is a letter, but does n [char] z [char] a WITHIN is true if n is NOT a letter? 18:47:47 I'd think it would work off the ASCII codes. 18:48:07 And normally true would include the lower limit but not the upper limit, though lots of people don't like that so you might find exceptions. 18:48:36 Oh, and I'd guess that the second one would have to be higher than the first one. 18:48:52 hmm 18:48:55 c a b within --> a <=c <= b. 18:48:57 i might avoid it 18:49:22 KipIngram: yeah that makes sense 18:50:41 I feel pretty content with the lower but not the upper limit being included - i.e., it's [a, b) in math notation. 18:50:47 But I understand why it bugs people. 18:50:49 KipIngram: actually, WITHIN is usually =min - it's a mindmucker 18:51:04 i am optimizing some code for size and within looked helpful 18:51:08 yeah, that's what i said I think. 18:51:13 Yeah, it's not inclusive of the top. 18:51:22 It's the same idea as an n-element array being 0 to n-1. 18:51:44 they want upper-lower to be the number of values contained. 18:53:56 i am writing digit>number so i was using dup [char] 0 [char] 9 within IF 48 - ELSE dup [char] a [char] z within IF 87 - ELSE error THEN THEN 18:54:19 but if you move the IF's around you can get shorter code 18:55:12 48 - 58 .<; 7 + works, I think. 18:55:31 A REALLY nice situation for the conditional returns. 18:55:43 ehehe 18:55:52 You can pick up case insensitivity to by repeating that idea. 18:55:55 you like those ;^) 18:56:02 I *really* do. 18:56:16 They feel incredibly natural to me. 18:57:21 Of course there's no error checking there. 18:58:21 I think I factored that into a couple of levels so that I had something like this: 18:59:06 : digit 0..9? A..Z? a..Z? ERR ; 18:59:47 And I also found that the conditional returns sort of removed the need for WITHIN. 19:00:33 .<; .>; ...it's within... 19:00:42 That's so short you don't miss having a word much. 19:01:09 Oh, that should .>=; 19:03:27 --- join: travisb (~travisb@2600:1700:7990:24e0:6112:d47b:3dbc:b8d7) joined #forth 19:09:04 i have : >digit ( char -- n true | false) where if it succeeds, it returns the number and true, or if there's an error, just false 19:09:45 conditional exits might be shorter 19:09:57 I don't "return" many errors. On errors I generally just drop into a black hole. 19:10:12 That way I don't have to write code to handle them. :-) 19:11:02 The error recovery system restores the process RAM blocks and runs QUIT. 19:11:18 Clears the return stack, but the data stack is returned to its state at the start of the line. 19:11:38 As far as things depend on the process blocks, the whole system returns to its start-of-line state. 19:12:18 But if the process "reaches outside" and does things, like dickering with the heap, or sending/receiving inter-process communication, that doesn't get reverted. 19:13:00 in C i check for errors, but my handling of them is simplistic.. usually print a message and crash 19:13:10 :-) Right. Me too. 19:13:20 ehehe 19:13:24 I've got a pal on another channel that nitpicks me over it, but oh well. 19:13:36 it's hard to debug 19:14:09 If my primary use model was to write application code and then run the applications later, in "work sessions," I might be more simplistic. 19:14:43 But I'm trying to make this thing highly interactive - I hated the idea of working through some numerical problem, for example, and then having my stack with a whole bunch of iterim stuff on it disappear because I made a typo. 19:15:34 typos are a hard problem to solve 19:16:00 --- quit: ashirase (Ping timeout: 272 seconds) 19:16:37 i don't remember ever getting taught at school how to handle errors 19:17:12 yunfan: https://chiselapp.com/user/kc5tja/repository/kestrel-2dx/dir?ci=2d8d4695945237d7&name=src/dxforth 19:17:59 oh maybe if you were asking the user user to pick a menu option 1-5 and he typed 6 you would go back and display the menu again heh 19:18:20 but handling eg. a missing file was never discussed 19:18:39 I just save pretty much the whole process at the start of the line, and if I make it to the end I throw that away, but if I don't I restore it. 19:18:53 Definitely NOT a memory efficient mechanism, but I've got a ton of memory, so... 19:19:08 I probably eventually want to have gradations of that. 19:19:09 you could C it and print an error and exit, but much more user friendly would be to drop you into a shell to create the file, then resume your program... unheardof in c 19:19:22 For example, just saving the first page of the dictionary would get me most of the benefits. 19:19:41 Oh, and the task page. 19:19:55 KipIngram: throwing an error is C-ish 19:20:08 :-) 19:20:21 I don't really think of what I'm doing as "throwing" it. 19:20:24 It's just a restart. 19:20:26 KipIngram: much better would be to run the Forth interpreter again, then let you fix the typo, then resume your program 19:20:35 Great big honkin' OOOPS! 19:20:47 "Try that again." 19:21:47 since when is C-ish anythling 'throw'? 19:22:44 hmm i guess it's propogate errors up to the caller function 19:23:50 closest C has to 'throw' is setjmp - which is expensive and useful on a host, and not very kind to mcu's 19:23:52 I like Python's approach fairly well. 19:23:54 try: 19:23:58 statement 19:24:00 except: 19:24:06 ...if error do this... 19:24:12 That's pretty simple. 19:24:27 KipIngram: when I see that shit, I think "wtf is wrong with an error-return and errno?" 19:24:56 Sure, but you still have to then write an IF statement to process it. 19:25:02 It doesn't simplify your code any. 19:25:20 And this handles even errors that happen way down deep. 19:25:44 "Unfamiliar" isn't automatically "worse." 19:26:30 KipIngram: I threw a setjmp into my TTengine: then I went thru and changed all the low-level helpers to longjmp - they all can report their own errors as I test, they return a code, the code hits the setjmp, and exits the engine. Done. 19:26:38 oh i think i found what i meant: LISP conditions 19:27:03 use a condition instead of throwing an exception 19:27:10 "Done" is pretty much how I feel about the try/except syntax above. 19:27:17 It's simple, it's clear, it's easy. 19:27:53 And it wouldn't be hard to make Forth do something like that - you could have something like 19:28:09 ' handler ->error 19:28:42 or something. 19:29:17 I don't think it's all that easy in any event: you got 2 stacks of data and now you need to recover the universe - yer approach (at this time) is no worse than any of them, but I prefer the "scream & die" behavior 19:29:48 Yeah - I guess mine is "scream and have a near death experience." 19:30:57 yeah. I don't mind the death, if the screaming is coherent enough to result in an "oh shit, I forgot.." 20:22:24 --- join: gravicappa (~gravicapp@h109-187-202-26.dyn.bashtel.ru) joined #forth 20:54:38 --- join: proteusguy (~proteusgu@2602:306:3b78:dc0:387b:ff73:1b17:365c) joined #forth 20:54:38 --- mode: ChanServ set +v proteusguy 21:20:50 --- nick: travisb -> tabemann 21:31:49 --- quit: pierpal (Quit: Poof) 21:32:08 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 21:34:04 --- quit: dddddd (Remote host closed the connection) 22:49:25 crc: thanks 22:59:12 crc: what's the purpose of this dxforth? 22:59:17 as a bootloader? 23:59:59 --- log: ended forth/19.03.15