00:00:00 --- log: started forth/03.07.20 00:21:15 --- join: a7r_ (~a7r@206.72.82.135) joined #forth 00:21:16 hey 00:24:13 --- join: skylan_ (sjh@vickesh01-4772.tbaytel.net) joined #forth 00:26:04 --- quit: skylan (Read error: 113 (No route to host)) 00:27:24 --- nick: skylan_ -> skylan 00:41:54 hey hey 00:42:50 sup 00:42:53 --- nick: RO|_ -> rO| 00:47:04 --- quit: a7r (Read error: 110 (Connection timed out)) 01:30:29 --- quit: flyfly ("using sirc version 2.211+KSIRC/1.2.4") 02:38:18 --- quit: skylan (leguin.freenode.net irc.freenode.net) 02:38:18 --- quit: ianni (leguin.freenode.net irc.freenode.net) 02:38:18 --- quit: Robert (leguin.freenode.net irc.freenode.net) 02:39:24 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 02:40:49 --- join: skylan (sjh@vickesh01-4772.tbaytel.net) joined #forth 02:40:49 --- join: ianni (ian@inpuj.net) joined #forth 04:21:47 --- quit: Robert (leguin.freenode.net irc.freenode.net) 04:21:48 --- quit: onetom (leguin.freenode.net irc.freenode.net) 04:21:48 --- quit: rO| (leguin.freenode.net irc.freenode.net) 04:22:07 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 04:22:07 --- join: rO| (~RO|@pD9E59674.dip.t-dialin.net) joined #forth 04:22:07 --- join: onetom (~root@cab.bio.u-szeged.hu) joined #forth 04:40:11 --- quit: a7r_ (Read error: 113 (No route to host)) 05:03:02 --- join: CrowKilr (CrowKilr@Ottawa-HSE-ppp3653907.sympatico.ca) joined #forth 05:18:32 --- quit: onetom (leguin.freenode.net irc.freenode.net) 05:18:32 --- quit: rO| (leguin.freenode.net irc.freenode.net) 05:18:32 --- quit: Robert (leguin.freenode.net irc.freenode.net) 05:18:45 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 05:18:45 --- join: rO| (~RO|@pD9E59674.dip.t-dialin.net) joined #forth 05:18:45 --- join: onetom (~root@cab.bio.u-szeged.hu) joined #forth 05:24:47 --- join: draq (ident@203-219-179-14-nsw.tpgi.com.au) joined #forth 05:28:22 --- join: RO|_ (~RO|@pD9EE1A0A.dip.t-dialin.net) joined #forth 05:34:22 --- join: mur (murr@baana-62-165-189-64.phnet.fi) joined #forth 05:36:08 --- quit: rO| (Read error: 60 (Operation timed out)) 07:11:35 --- quit: RO|_ (leguin.freenode.net irc.freenode.net) 07:11:35 --- quit: draq (leguin.freenode.net irc.freenode.net) 07:11:35 --- quit: onetom (leguin.freenode.net irc.freenode.net) 07:11:35 --- quit: Robert (leguin.freenode.net irc.freenode.net) 07:11:47 --- join: RO|_ (~RO|@pD9EE1A0A.dip.t-dialin.net) joined #forth 07:11:47 --- join: draq (ident@203-219-179-14-nsw.tpgi.com.au) joined #forth 07:11:47 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 07:11:47 --- join: onetom (~root@cab.bio.u-szeged.hu) joined #forth 08:31:07 --- quit: CrowKilr ("going on a real life mini-quest to get info about negative green and pyramids") 09:05:43 --- quit: draq (Remote closed the connection) 09:16:16 --- join: wossname (wossname@HSE-QuebecCity-ppp81178.qc.sympatico.ca) joined #forth 10:05:42 --- quit: wossname ("i am gone") 10:25:29 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 10:25:30 --- mode: ChanServ set +o kc5tja 10:26:57 Hello :) 10:27:09 re 10:27:40 * kc5tja managed to separate his shoulder, he thinks. 10:27:55 One of my shoulders sits about an inch lower than the other, and yes, it hurts. :) 10:31:01 Ouch. 10:37:15 Yep. And I don't know how it happened either. It was rather gradual. 10:44:31 Hmm.. now I can rather comfortably copy 8wpm, only a few years to go until I can do 40 ;) 10:44:41 btw, do you know how to convert between wpm and cpm? 10:45:00 cpm = 5 or 6 times wpm? 10:46:13 5 times 10:46:16 (roughly) 10:46:49 One "word" in CW is assumed to be about as long as the word PARIS (for some reason -- I don't know why). 10:47:07 Yeah.. but I didn't know how long one character was assumed to be :) 10:47:28 Thanks. Now I know the Swedish morse code test is at ~5wpm (25cpm). 10:47:38 So I should be able to pass it, I guess. 10:52:26 The 5wpm limitation is/was international requirement (some countries could go harder if they so desired) 10:53:46 * kc5tja got some amount of design work done on FS/Forth while playing D&D yesterday (lots of dead time -- we had nine players!). 10:56:08 Got some additional behavior of the vocabularies defined, and determined that the minimum size of the dictionary for it is 48KB in size (32K for the vocabularies, plus my usual 16KB for actual code compilation space) 10:58:08 I'm still not quite sure how to store the addresses in the Forth environment though. 10:58:33 I could store them as relative addresses (e.g., addresses that are relative to the start of the dictionary), or I can store them as absolute addresses. 10:58:51 Absolute would be more convenient, but I'd have to somehow remember to relocate them every time I loaded the dictionary image from disk. 10:59:16 And where it resides in Gforth's address space certainly WILL differ from where it is in FS/Forth's address space. 10:59:55 However, relative addresses require *constant* run-time relocation using either an explicit ADD instruction or using the [r1+r2] addressing mode. 11:01:05 So that consumes a register that must never be changed. Then, when interfacing to other system libraries, I have to remember to adjust addresses because ! and @ (and related words) will all expect relative addresses. 11:02:07 I'll probably use EBX for the dictionary base pointer register, just as GCC does. It ought to minimize the impact of having to thunk Forth to/from C libraries all the time. :) 11:06:22 --- join: a7r_ (~a7r@206.72.82.135) joined #forth 11:06:38 re a7r_ 11:06:50 hey 11:07:29 Doing some more design work on my Forth environment. 11:07:44 Man, Linux just has to make everything so difficult. :-) 11:07:50 hah 11:07:59 yah,.. well, that's cuz it sucks. :) 11:07:59 * kc5tja is dealing with the need to write relocatable code. 11:08:21 --- nick: mur -> mur_bbl 11:08:41 * kc5tja wishes he had his 65816-based PC finished. I'd be coding for it rather than x86. 65816 is so much simpler. :) 11:08:54 Well, yes and no. 11:09:03 * kc5tja still hasn't figured out his input-related problems yet. 11:11:03 I think that's why pforth doesn't process KEY quite right, is because they don't bother to shove the terminal into RAW mode (the method for doing this on a text-mode console is NOT the same for doing this in an x-term). 11:11:03 That saves a fair bit of code. 11:11:22 yah 11:11:43 I hacked Ficl into SDL last night, and wrote a graphical console for it. 11:12:05 * kc5tja nods 11:12:11 unfortunately, my SHA1 code doesn't pass my tests under Ficl (but it works with pforth and gforth).. so I don't know what's up. 11:12:34 Hmmm 11:12:49 Isn't Ficl supposed to be ANSI-compliant? 11:13:13 Does the SHA1 code produce different results, or does it not compile? 11:17:58 different resuls 11:18:01 t 11:18:14 Hmm...that is weird. 11:18:34 I wonder if Ficl has a bug in it that produces different results than ANSI's requirements. 11:19:31 yah, I'm not sure what the deal is.. the only thing I do that's minorly tricky is a rotate left, shifting the MSB to the LSBs as they roll off the top. 11:20:05 * kc5tja nods 11:26:29 --- quit: a7r_ (leguin.freenode.net irc.freenode.net) 11:26:29 --- quit: onetom (leguin.freenode.net irc.freenode.net) 11:26:29 --- quit: RO|_ (leguin.freenode.net irc.freenode.net) 11:26:29 --- quit: Robert (leguin.freenode.net irc.freenode.net) 11:26:29 --- quit: kc5tja (leguin.freenode.net irc.freenode.net) 11:26:30 --- quit: ianni (leguin.freenode.net irc.freenode.net) 11:26:30 --- quit: skylan (leguin.freenode.net irc.freenode.net) 11:26:30 --- quit: mur_bbl (leguin.freenode.net irc.freenode.net) 11:26:41 --- join: mur_bbl (murr@baana-62-165-189-64.phnet.fi) joined #forth 11:27:10 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 11:27:10 --- join: skylan (sjh@vickesh01-4772.tbaytel.net) joined #forth 11:27:10 --- join: ianni (ian@inpuj.net) joined #forth 11:27:10 --- mode: leguin.freenode.net set +o kc5tja 11:27:21 --- quit: kc5tja ("[x]chat") 11:27:28 --- join: a7r_ (~a7r@206.72.82.135) joined #forth 11:27:28 --- join: RO|_ (~RO|@pD9EE1A0A.dip.t-dialin.net) joined #forth 11:27:28 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 11:27:28 --- join: onetom (~root@cab.bio.u-szeged.hu) joined #forth 11:27:44 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 11:27:51 --- mode: ChanServ set +o kc5tja 11:27:53 That was naughty.... 11:33:24 --- quit: mur_bbl (leguin.freenode.net irc.freenode.net) 11:33:24 --- quit: onetom (leguin.freenode.net irc.freenode.net) 11:33:24 --- quit: a7r_ (leguin.freenode.net irc.freenode.net) 11:33:24 --- quit: RO|_ (leguin.freenode.net irc.freenode.net) 11:33:24 --- quit: Robert (leguin.freenode.net irc.freenode.net) 11:33:25 --- quit: ianni (leguin.freenode.net irc.freenode.net) 11:33:25 --- quit: skylan (leguin.freenode.net irc.freenode.net) 11:33:38 --- join: mur_bbl (murr@baana-62-165-189-64.phnet.fi) joined #forth 11:34:02 --- quit: mur_bbl (Excess Flood) 11:34:03 --- join: onetom (~root@cab.bio.u-szeged.hu) joined #forth 11:34:03 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 11:34:03 --- join: RO|_ (~RO|@pD9EE1A0A.dip.t-dialin.net) joined #forth 11:34:03 --- join: a7r_ (~a7r@206.72.82.135) joined #forth 11:34:03 --- join: ianni (ian@inpuj.net) joined #forth 11:34:03 --- join: skylan (sjh@vickesh01-4772.tbaytel.net) joined #forth 12:11:35 --- join: crc (~crc@ACA93B2E.ipt.aol.com) joined #forth 12:18:38 --- join: mur (murr@baana-62-165-189-64.phnet.fi) joined #forth 12:21:12 --- quit: crc ("I was using TinyIRC! Visit http://www.tinyirc.net/ for more information.") 12:57:28 --- join: flyfly (~marekb@ip164.ktvprerov.cz) joined #forth 13:59:14 --- quit: skylan (No route to host) 14:20:01 --- join: skylan (sjh@vickesh01-4504.tbaytel.net) joined #forth 14:54:45 --- quit: RO|_ ("!") 15:55:24 --- quit: TreyB () 16:06:45 --- quit: mur ("MURR! save the http://rainforest.care2.com/ (click url there)") 16:38:13 --- join: TheBlueWizard (TheBlueWiz@pc6adn1d.ppp.FCC.NET) joined #forth 16:38:14 --- mode: ChanServ set +o TheBlueWizard 16:38:23 hiya all 16:43:56 gotta go...bye all 16:44:00 --- part: TheBlueWizard left #forth 17:17:36 doh 17:27:56 --- join: a7r (~a7r@206.72.82.135) joined #forth 17:29:07 --- part: a7r left #forth 17:32:46 --- join: CrowKilr (CrowKilr@HSE-Windsor-ppp251236.sympatico.ca) joined #forth 17:32:55 hi 17:36:48 re 18:05:07 --- join: Ro0tSiEgE (Ro0tSiEgE@Ro0tSiEgE.sponsor.freenode) joined #forth 18:05:24 --- part: Ro0tSiEgE left #forth 18:28:58 --- join: TheBlueWizard (TheBlueWiz@pc6adn1d.ppp.fcc.net) joined #forth 18:29:00 --- mode: ChanServ set +o TheBlueWizard 18:29:05 hiya all again 18:29:36 hi 18:29:43 hiya CrowKilr 18:40:44 oi 18:41:21 hiya a7r_ 18:41:38 hey 18:43:05 what's new? 18:46:22 im working on my 5 colors byte token forth system 18:46:46 kc5tja is working on fs/forth, herkamire on his ppc forth 18:46:57 is that a variant of ColorForth? 18:47:40 a little 18:48:05 its inspired by the work of chuck, use the same optimizations ?dup and ?lit in the compiler 18:48:40 the spec is on forth/bespin.org 18:49:01 hmm...ok 18:49:02 i cant go on the site, proxy error 18:49:37 ouch...I offer to whack the proxy server for ya :) 18:57:38 gotta go to bed...bye all 18:58:54 --- part: TheBlueWizard left #forth 19:20:49 Unfortunately, there is no proxy involved. 19:21:00 I really do not understand why you are receiving that error message. 19:22:44 I get a proxy error too... And I don't use a proxy 19:24:58 Neither do I. It works perfectly fine for me. 19:25:11 (and no, it is not my server; it's Tril's) 19:35:18 I think I'll go to bed now, night all. 19:35:57 * kc5tja is getting hungry, so I'm going to grab something to eat. 19:43:52 see ya rob 19:59:12 my system has too many ambiguities, im almost lost in the small amount code I produced 20:00:20 like what? 20:01:17 my litteral handling doesnt work 20:01:21 literal 20:01:49 yeah it works after all, but it looks like this 20:02:13 # ?dup opt 1, B8 ; 20:02:38 definition, macro, macro, macro, bincopy macro 20:03:07 so in code i want a litteral i write: # 12345678 20:03:28 macro, bincopy 20:03:53 since i use tokens, i never had to compile calls 20:04:05 maybe thats because im too early in code i dont know how to express it 20:04:28 but its all defs, macros and bincopy type of tokens 20:05:36 opt means optimization btw 20:05:45 * kc5tja nods 20:05:45 mov ecx, ebx mov ebx, edi 20:05:55 2 element in regsiter stack 20:06:14 What produces the code to push the current value of EAX on the data stack before loading it with the new value? 20:06:31 ok ill explain this small code fragment 20:06:45 # ?dup opt 1, B8 ; 20:06:48 # is a definition 20:07:12 Meaning, # is a "red word." 20:07:26 its tokenized in 2 bytes as 00001000 "#" 20:07:27 yes 20:07:31 OK 20:07:42 spaces are just to make output lisible 20:07:53 they doesnt exist and one dont need them with colors 20:08:12 * kc5tja nods -- I'm familiar with how ColorForths work. :-) 20:08:23 ?dup is a macro, so its encoded as a one byte token 20:09:12 the detoken word, upon decoding this token, jumpt to ?dup code, wich was defined this way: 20:09:38 its a two part definition, since i use jnz in ?dup, dup must be placed before 20:10:10 dup 4, 8D76fc89 1, 06 ; 20:11:15 ?dup 8D47FF39C375EB81388B068D7675E389C7 ; 20:11:33 thats the first optimization 20:11:51 drop definition goes along with the second, wich is ?# 20:12:05 anyway when i use the ?dup macro 20:12:24 the long string of bytes get executed, wich could be deassembled on the fly in the editor 20:13:07 # ?dup opt 1, B8 ; 20:13:58 So the code that does the stack pushing is ?dup then. If the previous stack item is known to be DROPed, there's no need to manipulate ESI; just overwrite EAX. Otherwise, emit the code to DUP first, then overwrite EAX. 20:14:04 opt is a macro too, so its tokenized as a single byte, pointing to: opt 4, 89D989FB ; 20:15:43 ?dup check in the previous code if there was a drop compiled, by first checking in EBX (last optimizable word address), and then checking for the correct dword at the specified memory location for 100% bug free loopback optimization 20:16:15 if theres a drop, just do lea EDI, edi-5, since drop is 5 bytes long and it must be overwritten 20:16:24 if not then a dup is compiled 20:16:50 by jumping to previous dup definition 20:17:40 so my ?dup word is bugged 20:17:49 since its the version when i still used lodsd 20:17:53 ill correct it 20:17:57 ;p 20:18:06 :) 20:18:41 Well, I was asking, because I was pondering how to do the whole dup/drop optimization myself. I've seen it done in ColorForth, but I haven't studied the code for ideas yet, because I haven't gotten that far. 20:19:12 Your solution to just "back up and roll over the DROP code" with new code is pretty neat. I'll have to record that for future reference. 20:19:32 its chuck idea's lololol 20:19:41 im just copying from the master 20:19:45 Well, like I said, I haven't studied his code yet. 20:19:58 So I didn't know. 20:19:59 i spent a month looking at color code ;o) 20:20:12 his two optimizations are ?dup and ?lit 20:20:17 ?lit use the zeroflag 20:20:25 its more complicated 20:20:31 it looks back the ebx pointer 20:20:37 to check for dup's prescence 20:20:42 to overwrite it also 20:20:46 what it does 20:20:54 if theres a lit 20:21:18 it get the pointer at the beginning of it and put the lit value in eax for the primitive macro to handle 20:22:06 in the primitive you do a call ?lit jnz nolitcode litcodewithvalueinEAX 20:22:11 Hehehe :) That's evil. :) 20:22:54 i knew my system would become the best, since it enable to experiment with these concepts pretty easly 20:23:00 but tahts still to be done 20:23:34 since i have not written an editor yet and I yet have to make a cdrom eltorrito bootloader read hd sectors 20:23:39 in raw mode 20:23:46 anyway 20:23:55 ill continue my explanantion ;p 20:24:05 # ?dup opt 1, B8 ; 20:24:27 the correction btw is simple, change FF in previous definition by FB (-1 by -5) 20:25:05 so opt is opt 4, 89D989FB ; 20:25:45 4, is a macro for compiling code inside the definition to compile the following 4 bytes 20:26:31 4, is defined as 4, 8d7f06c747fa8d7f04c766c747fe47fcc3 20:27:01 notice the c3 at the end 20:27:10 i didnt used ; because its not defined yet 20:27:28 in fact, for speed, every primitive can use c3 instead of a macro call to ; 20:27:33 * kc5tja nods 20:27:35 ill explain ; 20:28:14 btw 4, code compiles 6 bytes: lea EDI, [EDI+4] mov [EDI-4], ... 20:29:02 ; is like ?dup, it's a "multiredword" definition 20:29:19 i mean theres a dependency issue 20:29:24 it starts wih 20:29:28 with* 20:30:21 no wait i could do something slower but that would show you more code 20:30:41 after i defined 4, the long way i defined 1, 20:31:04 1, 4, 47c647ffc3 20:31:25 again the c3 is manually put because ; and ret definitions are just after 20:31:42 ret 1, doret C3 20:32:01 no 20:32:05 i cant do that 20:32:13 anyway i wanted to explain 1, 20:32:22 the code that ive written is this: 20:32:22 ok 20:32:38 ret c607c347 20:32:43 doret c3 20:34:13 ; "8D47FB39C375F48038E875EFFE00" 20:35:10 brb -- phone. Keep writing if you want; I'll read it when I get back (shouldn't be too long) 20:35:33 pushopt "8D40FD39C275EA8038E875E5C6006840FF30FF70058F008F4005 ret 20:35:44 those 4 lines are my ; definition 20:37:03 ; is broken in two parts, the first, following the def token is to compile the same optimization as chuck: if the previous compiled thing is a call, replace it with a jump (opcode E8 becomes E9) 20:37:26 there's a " typo btw 20:38:16 you could remove pushopt entirely, the word would be ok if terminated by ret or C3 20:39:06 back 20:39:08 push opt implement another opt: it detects "call1 jump2" code through the same 100% bug free algo and then replace it with "push2 jmp1" 20:39:19 pushopt* 20:39:54 so testing the speed of this opt and its validity would be easy 20:40:09 Oh, now that's an interesting optimization. 20:40:38 * kc5tja hadn't thought of doing that -- push2 would push the address of word2 on the return stack I assume, so that word1's RET causes a forced branch to it. 20:41:06 wonder if one could push subsequent call adresses in stack, but that would require first of all a deeper opt stack 20:41:17 subsequent... i meant previous 20:41:40 I'm not sure it'd be faster though. 20:41:51 chuck didnt impplemented it, even with his 2 deep opt stack, he could have, but seems its not worth it 20:42:07 me neither, but least the code is there 20:42:27 so now you can understand my # word.... 20:42:40 but while explaining lot of ideas rush through 20:43:08 new ways of doing things, like string table things that could solve some problems im seeing in my detoken design 20:43:22 what jumps in front of me is 20:43:28 1 - i dont use the call token at all 20:43:34 at least now now 20:43:57 2- i can comment out pushopt def with a single bit, but its long bincopy thing would still be there 20:44:15 so it would be nice to tie a string to each def, using an external table 20:44:39 so when i comment the def, i comment the code, and tokens can be use to compile that string, jump to it, etc 20:44:50 no overhead involved like in my system and less ambiguities 20:44:57 but the picture isnt clear still 20:45:33 at least im having fun doing it right now, thinking about this, so i guess im on the way to get something better than waht i thought i had 20:46:45 * kc5tja nods 20:46:56 and its not everyday i can give back something to kc5tja, who makes me learn so much ;p 20:47:10 * kc5tja has little to no artistic talent in and of himself, so he rarely endeavors to explore such things. 20:48:46 I guess I'm more "imaginative" in other areas. But really, nothing I've done to date is truely "new" or "innovative." 20:49:00 I haven't blazed a new trail in my entire life. 20:49:11 me neither, but im on it right now and its pretty exciting 20:49:53 Actually, that isn't strictly true: I *did* exploit Forth's dictionary and colon-definitions to implement key-bindings for VIBE. :) 20:50:15 I had never seen any Forth program do that before I did. Nor have I seen any do it since. :) 20:50:35 what do you mean by using the dictionary to bind keys? 20:52:42 FINDing the word associated with a key press, and EXECUTE-ing it. 20:53:03 (executing a default handler if no explicit word is found) 20:53:22 you man you serach for the scancode value in the dictionary? 20:54:03 i thought about using a short-lived tmeout to get a counted string of input from keybaord to do exactly that, universal kb handling, onthefly keyb configuring with least amount of code etc 20:54:26 In other words, if I receive an ASCII key value of $41 (ASCII "A"), I look for a word $$c41 or $$i41, depending on whether VIBE is in command- or insert-mode at the time. 20:55:27 if it works for you it should work for me ;p 20:55:44 * CrowKilr didn't tried VIBE yet 20:56:13 It's currently written for GForth, since that's the Forth environment I'm using to write FS/Forth's target compiler. 20:57:43 It's usually pretty easy to port to other Forth environments; however, it does require a truely interactive version of KEY -- a7r_ has run into problems using VIBE with pforth, for example, since pforth treats its input as a series of lines, rather than a series of characters. 20:59:01 bahhhh, go native =) 20:59:36 I've considered going straight native right away, actually. 20:59:40 But I lose a lot if I do. 20:59:56 For instance, I lose the ability to browse the web while running in FS/Forth, because I don't have a Forth web browser. 21:00:11 And that is a huge, huge, huge, huge, huge negative for me and my business. 21:00:18 simulator or cross-development 21:00:35 umbilical dev as they call it in holon 21:00:47 For that matter, I lose all support for networking too, since my network card's driver source is indecipherable. 21:01:03 * kc5tja was going to write my environment for SDL under Linux. 21:01:20 once its done, you beat future software and your hardware into submission 21:01:36 This would give me a native-like run-time environment, but with the convenience of being able to run under Linux at the same time. 21:02:51 Well, the problem is that no matter what I do, the step from going from Linux to native hardware is going to be so huge that it'll be as destructive as starting over from scratch. 21:03:10 linux has a magnetic effect on me when i was in 14th grade, then when i got my system (tv ati video card running under 2.2 kernel and otehr kewl hacks, no real programming though) my bubble popped, litterallly, i lost the fire 21:03:45 2 weeks later i f*ck** the hd and it was all gone, i didnt bother to rcuperate it 21:03:50 i lost so much time 21:04:02 own personal point of view here 21:04:32 my bubble was fueled by the fact that i would get total control 21:04:44 The issue is that Linux has a lot of software already written for it which enables me to run my business right now, which is sorely needed right now. 21:04:49 i guess seing the kernel source from my own eyes, and using the system discouraged me 21:05:14 yeah ok business 21:05:19 If I go native Forth right away, I am basically 30 man-years in the whole as far as software I can use to run my business. 21:05:22 im still in school =) 21:05:28 s/whole/hole/ 21:05:44 not if I help you and if others help you 21:05:50 if we form a true community 21:06:00 with everyone understanding everything 21:06:07 liek we could do a small test 21:06:18 Can you write a JavaScript-enabled web browser that supports XHTML 1.0 and HTML 4.2 by the time I get my next web development client? 21:06:28 ok lectures wahetevr so tahte veryone knows about formalities as ?dup and ?lit in compiler design 21:07:35 hmmmm 21:07:44 i dont know enough about html 4.2 21:07:48 xml i could 21:07:56 if i had drivers for framebuffer 21:07:58 kb 21:08:01 network card 21:08:15 The key words: by the time I get my next client. 21:08:18 once the drivers are in fun begin 21:08:21 It isn't going to happen. 21:08:30 imagien you have the drivers, would it take much time? 21:09:02 No human being on this Earth, even Chuck, would be able to write a browser capable of competing with Opera or Mozilla, within two weeks. 21:09:34 For that matter, no team of humans could do it either. 21:09:55 2 weeks full time, with flawless simple drivers and all the tcp/ip/html/etc specs, would be easy to brainstorm something in 1 or two day and start from there 21:10:06 Maybe in two years, I can see that. Maybe, if you manage the project just right and the workers are dedicated, maybe a single year. But not two weeks. 21:10:16 No, it wouldn't. 21:10:17 okok you got more experience 21:10:25 i cant argue ;p 21:10:39 So you see where my dilemma is. :) 21:10:53 but the idea of counted string from kb + dictionary search could be used 21:11:07 I wanted to make an evolutionary path, moving each major piece of software I needed from Linux to Forth, as I needed them, and as my time permitted. 21:11:44 Eventually, FS/Forth would be self-sufficient enough to run native-hardware, and then I'd have all my important projects available to me. 21:14:35 fs/forth and my project and everyforth for that matter needs what im trying to do: establish a true elegant standard that would utterly render every other way of thinking about forth obsolete 21:14:43 colorforth is close to that 21:15:14 Well, I don't subscribe to so militant a view with respect to Forth environments. 21:15:39 Despite adopting many of ColorFOrth's characteristics, it's still a "traditional" ASCII-source-based Forth environment. 21:16:21 everyone here knows it exist, the right way to do things, yet they cant put their finger on it 21:16:42 there's still fat left 21:16:51 even in my minimalistic design 21:16:56 theres still fat lol 21:17:29 5 tokens, they dont match the intent, the code meant to run on them 21:17:44 i was seduced the other day by the string table idea 21:17:58 im sure it can bring simplicity 21:18:06 like i dont like my big pushopt 21:18:09 i comment it 21:18:22 the def could be a ref into the string table 21:18:30 * kc5tja is pretty happy with the structure of his vocabulary layout, actually. 21:18:35 editor would be simplified: the library of words would be a string table 21:18:48 i like counted strings 21:19:05 High level assembler is bloated: use counted and zero termination 21:19:34 * kc5tja uses explicitly counted strings all the time. I never use implicitly counted or null-terminated strings anymore. Ever. They're just too much trouble. 21:19:39 IMO, at least. 21:19:41 counted strings enable you to use zero, so they're better imo 21:20:13 yay we agree ;p 21:20:20 They also reduce the need for so many temporary buffers too. 21:20:51 And, it can be extended to types other than strings -- a string is just a byte array. The concept can be extended to any kind of array. 21:21:09 dynamic array, thats the name 21:21:16 (addr u) is a powerful pair of stack cells: addr is the base of the array, and u is the number of elements (not necessarily the number of bytes). 21:21:29 an array is of defined length, a count enable it to vary in size 21:21:59 yep, with the adress on top or u? 21:23:14 u on top 21:23:25 (usually; it can be any convenient order, but I usually store u on top for consistency) 21:23:48 The idea is that a reference to the array consists of both its base address AND the number of items within it. 21:28:54 got an idea 21:29:07 since i use macros everywhere etc i came to think of something 21:29:07 What's that? 21:29:29 every word refernce that was a macro could be a compilecall token 21:29:43 at the end, the end word that signal the end of source file 21:30:04 would convert the last call, if any, into a jump and execute it or something 21:30:31 the idea is that the call everywhere makes the code be a "compilation bomb" 21:30:59 when one calls the top level word 21:31:15 everything compiles 21:31:23 everything beneath it that is 21:31:52 i think thats how chuck do it when i think of it 21:32:10 he says compilation on the fly, takes no perceptible time 21:32:14 Well, he has some top-level words that are defined like this: 21:32:21 : icons 36 load ; 21:32:32 where typing "icons" causes code to be compiled every time. 21:32:58 load is his token interpreter, equivalent to my detoken word 21:33:06 * kc5tja does this with VIBE, since I do not want the editor to overwrite what has already been compiled, but I don't want it to last in memory either. It works like an overlay. 21:33:07 it depends what inside the block 36 21:33:40 what do you mean, you use a scratch space? 21:33:55 The dictionary is the scratch space. 21:34:07 MARKER foo ....code code code... foo 21:34:44 As soon as the code is finished, it drops to 'foo,' which causes the whole chunk of code to be removed from the dictionary. 21:34:57 chuck probably uses empty at start of block 36 21:35:13 Yes -- he uses EMPTY in front of all his applications. 21:35:23 And it's much superior to MARKER I find. 21:35:35 I've made some simple ANSI-compatibility definitions for it: 21:35:48 empty is a default state with primitives in memory 21:35:57 : mark S" marker _empty_" evaluate ; 21:36:04 : empty S" _empty marker _empty" evaluate ; 21:36:15 : empty S" _empty_ marker _empty" evaluate ; 21:36:27 GODDAMMIT!!! What is wrong with my )(*$&@(#* keyboard? 21:36:31 : empty S" _empty_ marker _empty_" evaluate ; 21:36:43 Geez, you'd think the _ key was broken or something. 21:36:55 : unmark S" _empty_" evaluate ; 21:37:23 It's a dirty hack, but it works. 21:38:02 * CrowKilr don't know about ansi forth, so doesnt see much 21:38:53 It's equivalent to this: 21:39:05 : mark " : _empty_ ;" evaluate ; 21:39:19 : empty " forget _empty_ : _empty ;" evaluate ; 21:39:28 : unmark " forget _empty_" evaluate ; 21:43:29 doesnt ring a bell much, anyway i get the idea even if i cant understand it fully 21:43:48 * CrowKilr is still thinking hard about efficiency in his system 21:44:32 GOT IT 21:44:44 WOAH lol if it works it will change lot of things 21:44:52 okokokok 21:44:59 the source is alive, dynamic 21:45:20 tokens get transformed and erased 21:45:39 the def token get erased, pointer -1, but the address is saved in memory 21:45:56 bincopies: 21:46:20 when the token is shifted out, i got a counted string (counted at sign change, to get even range) 21:46:47 so i write back this count where its supposed to be and i decal every bytes of the string there 21:46:55 compilation would be called mutation lol 21:47:07 ok imagine i have my ret def 21:47:21 ret c607c347c3 21:47:57 in tokens its 1+ret+1+c607c347c3 = 10 bytes 21:48:25 when compiled or mutated 21:49:14 it would see a def token: save the address in memory like before, the source pointer esi adavnces but edi points at rel address 0 21:49:49 esi:4 EDI:0, because def token skips the definition word 21:50:25 now the detokener right shift the token, detects a bincopy, jumps to code 21:50:45 that bincopy handling code takes that count, put it at the [EDI] 21:51:27 and after compiles: mov AL, [ESI] 21:51:36 inc ESI 21:51:52 mov byte [EDI], al 21:51:55 inc edi 21:52:02 or just movsb for small code size 21:52:10 6x smaller 21:52:38 * kc5tja is a bit too tired to figure out what you're saying. 21:52:42 ooo my code is buggy, better use ah lol 21:52:58 i woudl compile over old source code 21:53:05 But I did realize something: if I use SDL for FS/Forth, on my 1024x768 screen, with an 8x8 text font, I'll have 125 columns across, and 87 rows. 21:53:05 not in a new place in memory 21:53:16 That's an awful lot of text to put up on the screen. :) 21:53:33 second level driver: text on graphic display, having this in forth would be great 21:53:56 What's second level about it? That's precisely what I'm going to write for my Forth under Linux. 21:54:08 But, here's the dilemma: do I want 80x25 text, or 125x87? 21:54:16 I suppose I just have to code it to find out. 21:54:33 go for 80x25, will be able to use it in native mode ;p 21:55:06 That requires I emulate a PC text mode in the graphical mode. I'm not sure I want that kind of overhead. 21:55:15 second level, because you need a frambuffer driver before thinking plotting pixels 21:55:26 Well, SDL covers that. 21:55:27 yeah better to use two tasks like chuck did 21:55:33 No!!! 21:55:42 lol ok i said nothing ;p 21:55:46 Chuck's style of multitasking is horribly inefficient! 21:56:01 The CPU never gets a chance to halt when it has nothing to do, so it drives the CPU temperature right up. 21:56:42 good point for running it on higher end machines than a 486 ;p 21:56:49 For running on ANY machine. 21:57:03 Heat dissipated is a function of how many transistors are being worked at any given time. 21:57:17 If the CPU has nothing better to do with its time, HALT it. Otherwise, it'll suck power needlessly. 21:57:47 Very few processors lack a proper HALT instruction. The 6502 did, but the 65816 makes one available (thankfully). 21:58:24 * CrowKilr tells himself: note to self: since im gonna use interrupts, halt use becomes possible 21:58:24 The only key, is that HALTing a CPU requires interrupts to be enabled, because it's an interrupt that wakes the CPU. 21:58:31 * kc5tja nods 21:58:33 Precisely. 21:58:50 another arg in favor of ints 21:58:59 chuck disabled ints ;p 21:59:02 * kc5tja nods 21:59:11 He re-enabled them for his networking code. 21:59:23 thats exactly what i was going to say ;p 21:59:35 i saw the code posted on the cf mailing list 21:59:45 * kc5tja nods -- that's what I have too. 22:00:03 he got his ir transducer working!!! didnt looked carefully ifts a parport /serial one or built in 22:00:19 i want to use my laptop as a fat ass remote too lol 22:00:43 would enable me to test remotes at work 22:01:01 * kc5tja intends on using his computer to control various aspects of his radio, and for accessing AX.25 networks. 22:01:08 This just requires RS232 capability. 22:01:13 we have a "chirper" for this right now, little black box with speaker that chirps if it receives a signal 22:02:02 parports for umbilical dev is great on old boxes, network would be even better because of boot, capabilities cable range etc 22:02:43 Thing is, I need to write a network driver for my Forth environment if I'm going to support networking. And like I said before, the Linux sources for my card are virtually undecipherable. 22:02:55 what is your card? 22:03:06 I suppose I have no choice but to reverse engineer the code though. 22:03:11 buy a realtek if you can 22:03:22 i got SiS hardware in my desknote laptop 22:03:25 3Com 3C95x chipset. 22:03:38 was hoping i could get docs but they dont give them 22:04:10 realtek pdf docs are crystal clear 22:04:10 I'm not going to buy another network card -- the one I have works perfectly fine. 22:04:14 HAHAHAHAHAH! 22:04:36 * kc5tja has the 8139 PDF docs, and it was the worst English I've ever read. To say nothing of outright incomplete. 22:04:48 .... 22:05:26 i told you i know nothing about pci, how could i know it wasnt complete! it was too good to be true lol 22:05:55 CrowKilr: Like I said tons and tons of times before: PCI is transparent. 22:06:03 You don't need to know PCI to bit-bang hardware ON the PCI bus. 22:06:13 You only need to know about PCI when auto-configuring devices on the bus. 22:09:33 --- quit: flyfly (Read error: 113 (No route to host)) 22:11:00 does the bios configure them? 22:11:26 It allocates space in the I/O map for them, yes. 22:11:32 the interrupt table at boot time?! 22:11:47 Huh? 22:11:57 like bridge controller, interrupt 11 22:11:59 etc 22:12:16 if I want to change those i have to configure PCI 22:12:41 I don't know what you're talking about, but none of my PCI references makes any notes about interrupt 11. 22:12:47 but if one has access to the device docs, i/o ports can be used, i remembered that 22:12:49 Bridge controller for what? 22:12:54 when my computer boots 22:13:02 just before the mbr kicks in 22:13:06 Bridge controller for what though? 22:13:11 What bridge? 22:13:12 i dont know lol 22:13:21 its wroitten network card interrupt x 22:13:32 device y interrupt z in a table format 22:13:43 some devices share interrupts 22:13:49 * kc5tja nods 22:13:52 if i want to get individual ints for each 22:14:04 i have to setup PCI through config registers and all 22:14:10 The normal approach is to poll the devices themselves to see if they issued the interrupt. 22:14:13 thats that part I dont understand fully 22:14:22 One generally doesn't poll PCI for interrupts. 22:14:39 In fact, in my PCI references, there are no registers dedicated to interrupt management at all. 22:14:54 So what you're polling isn't PCI -- it's the motherboard chipset directly. 22:15:16 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 22:15:21 re 22:15:23 http://quaff.port5.com/syscall_list.html -- something that ought to be useful to Linux programmers 22:15:34 A complete list of Linux's 190 system calls. 22:16:05 190 ?? 22:16:07 lol 22:16:13 posix has _much_ less ! 22:16:21 Serg_Penguin: No it doesn't. 22:16:41 The POSIX books come in many volumes, and dictates a LOT about how the kernel is constructed, how functions are called, etc. 22:17:11 ill try to install vector linux, if it doesnt work ill go over to slack bare 22:18:12 CrowKilr: Why? I thought you didn't like Linux? 22:18:32 I just posted the URL because I found the table handy. It's good to put stuff like that in the IRC logs, for future posterity. 22:19:14 i dont know why lol 22:19:53 karma "seeker" is the politically correct term ;p 22:20:37 the KW expression made laugh my guts out myself the first time I saw it used on /. 22:21:10 anyway, it might have been that syscal table 22:21:20 even if i didnt have a look at it 22:21:53 but my idea still hold potential, one put the source in memory and compiles over it 22:22:21 * kc5tja is confused -- I'm really not following you. 22:22:32 kc5tja: i was thinking on ASCII editor rework at weekend 22:23:13 * CrowKilr is downloading VL3.2 for fun and glancing at his idea that might crash and burn miserably 22:23:14 your keyboard handler seems to be all the way superior over mine in such kind of proggies 22:23:31 mine is better =) 22:23:46 at least when native code is concerned 22:23:58 CrowKilr: did u seen his block editor ? 22:23:58 CrowKilr: ??????? 22:24:10 CrowKilr: Now you're really not making any sense. :) 22:24:14 vibe, nope 22:24:34 CrowKilr: so u can't say what is better ;) 22:24:41 :) 22:24:44 he explained it a while ago 22:25:19 mine is just smaller and more constrained, since it dont take into account brake code 22:26:19 CrowKilr: What are you saying? 22:26:24 anyway, to explain my silly behavior, i have an astrological excuse: i'm a gemini ascendant sagitarius, dont know if the spell is ok 22:26:42 That doesn't make any difference, CrowKilr, and you know it. 22:26:43 i'm made to express vague and provoking ideas 22:26:45 ;p 22:27:00 My keyboard handler is precisely 6 colon definitions in size. :) 22:27:08 I don't think anything you just said is true at all. :) 22:27:34 kc5tja: it has one MOBY feature - if i redefine keys in plug-in, w/ FORGET they are restored 22:28:13 What is MOBY? 22:28:37 very big (see Jargon File, read the book Moby Dick) 22:28:38 Serg_Penguin: About the MOBY feature -- yes, that is a deliberate decision. 22:29:03 it can't be done w/ table and cleanup on FORGET 22:29:04 Serg_Penguin: I thought you were using MOBY as an acronym. 22:30:24 i was thinking on another feature, but can't invent it 22:33:28 i want to be able to redefine the words the way so words defined _earlier_ use the _newest_ verion of redefined word 22:34:12 like: 22:34:33 : show .... ; 22:34:41 : mainloop ....show .... ; 22:34:43 .... 22:34:48 : show ... ; 22:34:50 ---- 22:35:16 so, i want MAINLOOP to switch to second show then it's defined 22:36:28 and revert to 1'st then the 2'nd is forgotten 22:37:07 DEFER is the closest method you'll get to that, I think. 22:37:11 DEFER show 22:37:17 : myShow .... ; 22:37:19 ' myShow IS show 22:37:26 : mainloop .....show..... ; 22:37:28 .... 22:37:32 : yourShow .... ; 22:37:35 ' yourShow IS show 22:37:50 Bahh, but then you have to reset the old value of 'show' manually. 22:38:11 it's the damnest lossage in this way ;( 22:38:36 the only way i invented uses dictionary search at _every_ call of a word in question 22:38:41 it mega suxx 22:39:06 Yeah, that's pretty slow. 22:39:16 It works for the editor because humans type so slowly compared to how fast a computer runs. 22:40:00 but if you 'defer' a word like xy@ this way.... what's called 2k times per screen repaint :(( 22:40:00 dictionary searches at edit time, not at compile time 22:40:07 once again guys, in your face ;p 22:40:19 brb 22:42:19 ummm 22:42:20 back 22:42:23 What do you mean, guys? 22:42:46 The last time I checked, my vibe program WAS an editor, and it dispatched keypresses, by sheer definition of the very program, at edit-time. 22:42:46 old forth practiosioners 22:43:39 Old, indeed. 22:43:46 * kc5tja feels rather insulted by that statement. 22:43:55 you still have a compiler that parses your ascii source, so it must serach some sort of dictionary 22:44:01 thats what i consider old style 22:44:23 nothing offensive, really 22:44:39 it's gonna work 22:45:04 But we're not talking about that! 22:45:19 We're talking about how we get from, Human Pushes the A Key, to the code that interprets/handles the A key press. 22:45:53 use a table with negative bytes being an absolute pointer into a jump table ;p 22:46:02 * kc5tja sighs 22:46:04 I give up 22:46:07 You're impossible. 22:46:30 First of all, Serg just laid plain the rationale why table is **NOT** workable. 22:46:43 And is the very reason why I went with the solution I did. 22:46:47 it's very good 4 a game 22:47:04 but not so good for _plugin-able_ editor 22:47:48 Secondly, my solution has absolutely *zero* to do with whether it parses ASCII source or not. I could make the same thing for Chuck's ColorForth, for example. 22:48:09 Only the specific details are different. 99.5% of the code will remain the same. 22:48:40 Finally, VIBE is an editor. Key strokes are handled, therefore, at edit time. 22:48:46 code for the whole editor or kb handler? 22:48:46 kc5tja: i found the solution ! 22:49:05 * kc5tja sighs 22:49:25 ( Editor Keyboard Handler ) 22:49:25 \ Word name key: $ $ _ _ _ 22:49:25 \ | | | 22:49:25 \ c = command mode --+ | | 22:49:25 \ i = ins/repl mode | | 22:49:25 \ | | 22:49:27 \ Key code (hex#) -----+-+ 22:49:29 \ 22:49:31 \ Called with ( k -- ) where k is the ASCII key code. 22:49:33 : keyboard KEY ; 22:49:35 : cmd? mode @ 'c = ; 22:49:37 : ins? mode @ 'i = mode @ 'r = OR ; 22:49:39 : mode! ins? 'i AND cmd? 'c AND OR wordname 3 + C! ; 22:49:43 : >hex DUP 9 > IF 7 + THEN '0 + ; 22:49:44 : h! DUP $F0 AND 2/ 2/ 2/ 2/ >hex wordname 4 + C! ; 22:49:46 : l! $0F AND >hex wordname 5 + C! ; 22:49:49 : name! mode! h! l! ; 22:49:50 : nomapping DROP ['] beep cmd? AND ['] chr ins? AND OR ; 22:49:52 : handlerword name! wordname FIND IF ELSE nomapping THEN ; 22:49:54 : handler DUP handlerword EXECUTE ; 22:49:57 : editor BEGIN keyboard handler screen AGAIN ; 22:49:59 : ed page screen editor ; 22:50:01 : edit scr ! ed ; 22:50:03 Ladies and gentlemen, VIBE 2.2's main loop. 22:50:16 That right there, in no uncertain or ambiguous terms, is VIBE. 22:51:24 Holy shit -- a HUGE pack of coyotes is running through our area now! 22:51:56 shoot them from potato gun :)) 22:52:01 you use the sign bit for mode signaling? 22:52:06 or slingshot 22:52:13 or webcam ;)) 22:52:34 maser 22:52:35 CrowKilr: see cmd? and ins? 22:52:36 ;p 22:52:55 bothered by 'c and 'i 22:53:09 and 'r 22:53:10 They're ASCII codes for 'c', 'i', and 'r' 22:53:16 They're character literals. 22:53:23 haaaa ;p 22:53:37 --- quit: a7r_ (Read error: 60 (Operation timed out)) 22:55:53 So now the next question is, how does one switch to command-mode from insert-mode? To do this, I merely create one colon definition -- note that this colon definition can appear anywhere in the source, and requires no other support to link it into the system (e.g., no look-up table stuffing, etc): 22:56:07 : $$i1B DROP 'c mode ! ; 22:57:20 Note the anatomy of the word's name: the $$ is a standard prefix, to help remove any possibility of an accidental key handler. The 'i' signifies insert-mode (e.g., that handler will only ever be executed when the editor is currently in insert mode), and the '1B' is the ASCII code for ESC key (expressed as hexadecimal). 22:58:13 The DROP discards the copy of the character code on the data stack. It's not needed. 22:58:25 anywhere in the source of the editor or of the program? 22:58:37 Yes. 22:59:02 It scans the dictionary at run-time (note: when the editor is running), not compile-time. Note everything is inside colon definitions. 23:00:13 See handlerword. 23:01:07 im confused about how source interact with the editor 23:02:15 first why use colon every line, since you use line to define words 23:02:25 at each new line the editor read the new word? 23:03:10 You are truly, truly very confused indeed. 23:03:14 It's a plain-ASCII block editor. 23:03:29 It does not parse source. 23:03:31 It just edits. 23:03:46 [01:58] anywhere in the source of the editor or of the program? 23:03:46 [01:58] Yes. 23:04:05 dont tell me im confused lol 23:04:10 You are very confused. 23:04:18 haaarg lol 23:04:20 You are sorely confusing everything I've said about VIBE. 23:04:32 VIBE is a plain-ASCII block editor. 23:04:34 That's it. 23:04:35 No more. 23:05:21 It's written for GForth, it'll be ported to FS/Forth, HAS been ported to PygmyForth, . . . 23:05:45 hmmmm, why not empower it a little, now that you got your ascii editor running? 23:05:54 Because it can't be empowered. 23:06:03 How am I going to empower it? 23:06:19 by editing its source code and recompiling it ;p 23:06:22 That requires knowing the very guts of GForth, and I don't the very guts of GForth. 23:06:26 I don't want to know. 23:06:41 CrowKilr: No shit. 23:06:52 You still didn't answer my question. 23:06:55 But it's not important. 23:07:07 The point is, *FORTH* does the compiling, not the editor. 23:07:27 I understood that, eh 23:07:40 im getting the canadian accent, oh my god 23:07:42 OK, now that we have that down, let's move on. 23:07:56 The keyboard handler for the editor runs in the context of the editor. 23:08:26 The first thing it does is show the current block, and wait for a keypress. 23:08:29 wow by using those two silly expressions my english had become better in the eyes of maby americans over the past 23:08:53 i almost puked on myself by writing this lol 23:08:53 Upon receiving a keypress, KEY returns an ASCII code on the data stack. 23:09:07 * CrowKilr is reading, even if off-topic 23:09:24 handlerword converts this keycode into a 5-character ASCII name. 23:09:33 It then uses FIND to search the dictionary for that name. 23:09:49 (If not found, it'll return a reasonable default -- that's the job of nomapping). 23:10:10 kk i understand now how your editor runs on top of a forth 23:10:34 that you dont understand entirely and that you can't modify on the fly ;p 23:10:51 the use of the dictionary is great for ascii chars 23:10:52 Once again, you are making wholesale incorrect statements. 23:11:02 Patently UNTRUE statements. 23:11:21 oh sorry, its getting kind of late here 23:11:23 First of all, I WROTE the editor. Who are you to tell me I don't understand it? 23:11:38 Second, I can change it on the fly all I want. 23:11:57 by editing its source inside the editor? 23:12:04 All I have to do is create a new colon definition for each new keybinding I want. 23:12:09 two hot cowboys in a saloon ;)) 23:12:28 CrowKilr: Sure, why not? 23:12:54 [02:05] by editing its source code and recompiling it ;p 23:12:54 [02:06] That requires knowing the very guts of GForth, and I don't the very guts of GForth. 23:12:54 [02:06] I don't want to know. 23:13:04 As soon as I quit the editor to type "123 edit" again, the changes take effect. 23:13:18 k great 23:13:19 CrowKilr: You took that quote out of context, and you fully know it. 23:13:25 yes lol 23:13:32 i was going to explain why 23:13:34 You know full well that that quote is NOT AT ALL related to what is being argued now. 23:13:37 but i wrote k gret 23:14:03 because its ok, i understand finally, thanks for your incessant efforts ;p 23:14:48 serg_penguin: you wont learn from someone who agrees with you 23:14:57 Serg_Penguin: I think I understand now why Chuck doesn't bother publicizing his efforts anymore. 23:15:04 and from the same man that said that: everything is impossible until its done 23:15:21 CrowKilr: You also learn by being receptive of new ideas. 23:15:44 You were not very receptive to this idea at all. In fact, you were rather hostile to it. 23:15:59 to the idea that...? 23:16:29 your prog is useful? ;ppppppppppppppppppp 23:17:13 * CrowKilr 's getting kind of reaaaaaaal silly here, not to be taken seriously, just pretend im drunk 23:17:57 --- quit: onetom (leguin.freenode.net irc.freenode.net) 23:18:00 --- quit: Robert (leguin.freenode.net irc.freenode.net) 23:18:02 --- quit: Serg_Penguin (leguin.freenode.net irc.freenode.net) 23:18:05 --- quit: ianni (leguin.freenode.net irc.freenode.net) 23:18:15 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 23:18:15 --- join: onetom (~root@cab.bio.u-szeged.hu) joined #forth 23:18:15 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 23:18:16 --- join: ianni (ian@inpuj.net) joined #forth 23:18:46 it scans dict and for every latest word ending in $, it finds $-less DEFER word and points it to latest $-ed word 23:19:20 so, it points SHOW to latest SHOW$ etc... 23:19:28 do you think it's good ? 23:20:13 serg_penguin: I think im realizing your expressed dream of coding in assembly forth-way and you are not ;p 23:23:12 hmmm ok, why people won't follow me when I try to make a discussion significant? 23:23:49 its been a whole 4 minutes since any of you two responded, maybe im disconnected or lagging to death 23:26:19 is anybody alive?? 23:26:27 * kc5tja is here 23:26:46 But I had a netsplit a while ago. 23:26:51 So I could have missed something. 23:27:19 whats your last received line? 23:29:34 Something about you understanding about Forth-like assembly programming, but Serg not. 23:30:12 ive used the verb doing, i dont know him, i dont know at all what he knows or not 23:30:40 kc5tja: did you caught my RELINK idea ? 23:31:03 [02:18] it scans dict and for every latest word ending in $, it finds $-less DEFER word and points it to latest $-ed word 23:31:03 [02:18] so, it points SHOW to latest SHOW$ etc... 23:31:03 [02:19] do you think it's good ? 23:31:03 [02:19] serg_penguin: I think im realizing your expressed dream of coding in assembly forth-way and you are not ;p 23:31:04 [02:22] hmmm ok, why people won't follow me when I try to make a discussion significant? 23:31:06 [02:23] its been a whole 4 minutes since any of you two responded, maybe im disconnected or lagging to death 23:31:08 [02:25] is anybody alive?? 23:31:24 Serg_Penguin: Mp 23:31:27 No even 23:32:13 Ahh, I thought you referred to something after that. 23:32:15 Yeah, I got that. 23:33:34 * kc5tja is looking at some Linux assembly programs on the net. 23:33:42 Man, these guys just utterly abuse the ELF header badly. :) 23:34:33 theres a prog in the program listing of the int0x80 page called cpuburn, the name says it all ;p 23:35:14 interesting exploit value, make the system crash by overheating 23:36:48 --- join: a7r_ (~a7r@206.72.82.135) joined #forth 23:36:53 * kc5tja nods 23:36:59 Designed to stress test newly built computers. 23:37:05 Doggone these netsplits!!! >:( 23:40:55 --- quit: onetom (leguin.freenode.net irc.freenode.net) 23:40:55 --- quit: Robert (leguin.freenode.net irc.freenode.net) 23:40:55 --- quit: a7r_ (leguin.freenode.net irc.freenode.net) 23:40:55 --- quit: Serg_Penguin (leguin.freenode.net irc.freenode.net) 23:40:56 --- quit: ianni (leguin.freenode.net irc.freenode.net) 23:41:38 --- join: a7r_ (~a7r@206.72.82.135) joined #forth 23:41:38 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 23:41:38 --- join: onetom (~root@cab.bio.u-szeged.hu) joined #forth 23:41:38 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 23:41:38 --- join: ianni (ian@inpuj.net) joined #forth 23:42:41 --- quit: CrowKilr ("good night everyone!") 23:43:37 Gahh!! 23:43:54 I got my butt kicked by an 8K text-mode ASCII-art arcade game, written in x86 assembly language for Linux! 23:44:29 hah 23:51:46 http://www.deater.net/weave/vmwprod/tb1/tb_asm.html -- here's the game. :) 23:53:20 may you send me an executable ? 23:55:04 Serg_Penguin: Do you have a copy of Linux to run it under? The executable link is right on that webpage. 23:56:29 i have RH 7.2 at home and MuLinux at work ;) 23:59:59 --- log: ended forth/03.07.20