00:00:00 --- log: started forth/03.12.25 00:19:59 --- quit: chrisrw (Remote closed the connection) 00:32:37 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 02:09:31 --- join: crc (~crc@ACAFF060.ipt.aol.com) joined #forth 03:42:31 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 03:42:31 --- mode: ChanServ set +o MrReach 03:42:43 hihi! 04:09:32 --- quit: crc ("I was using TinyIRC! Visit http://www.tinyirc.net/ for more information.") 04:43:58 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 05:01:50 --- join: Serg (~z@212.34.52.140) joined #forth 05:26:23 --- quit: Serg () 06:22:00 chrisrw: tbw left about hour before you came 06:22:56 --- join: warpzero (~warpzero@id-cralid-cuda1a-49-38.losaca.adelphia.net) joined #forth 06:24:33 anybody awake? 06:25:14 I'd like some input about how to specify displacements in a forth assembler, sytatically 06:25:31 syntatically, even 06:26:01 ? 06:27:30 are you familiar with forth assemblers? (reverse polish notation) 06:28:31 copy eax into ebx -> EAX EBX MOV 06:28:37 --- join: wossname (wossname@HSE-QuebecCity-ppp81219.qc.sympatico.ca) joined #forth 06:31:59 nope 06:32:06 im not familiar with any kind of assemblers 06:32:12 ok, thanks 06:32:19 is there any rule saying it's not EBX EAX MOV ? 06:32:32 nope, the author of the assembler gets to choose 06:32:58 not many rules in Forth 06:33:06 oh 06:33:07 ah, ok. i was actually wondering the same about x y / 06:33:19 you mean writing assembler in postfix 06:33:32 there *IS* a rule-of-thumb for mathematical operators 06:33:41 yes, warpzero 06:34:09 yes, and it makes sense. but when i first read forth programs, i had them swapped for some reason 06:34:14 the rule is to move the operator between to the operands diagramatically 06:34:32 ah! ok 06:34:57 why write assembler in forth? 06:35:05 why not write it in... assmbler? 06:35:21 hm, diagramatical. /me looks up word 06:35:32 the descision I have to make is how to specify the displacement+base+index*scale in a p4 assembler 06:36:02 forth systems traditionally come with assemblers for whatever architecture 06:36:23 Oh, really? 06:36:24 and they are REQUIRED if the system is to meta-compile 06:37:03 What do you mean by meta-compile? 06:37:28 forth is unique in that a forth system can be used to compile a new forth system 06:37:38 from scratch 06:38:14 when a new system is compiled for the same architecture as the host forth, it is called meta-compiling 06:38:27 Oh, hmm. 06:38:30 when for a different arch, it's called cross-compiling 06:38:57 I am familiar with this for C. 06:39:41 anyway, I've come up with a fairly elegant way of expressing scale, base, and idex registers for P4 06:39:58 but haven't found an elegant way to specify displacement 06:40:22 I am not familiar with P4 assembly I hate to say. 06:41:05 roughly the same as i386 06:41:28 but lots more mnemonics and registers 06:42:19 I've only done a small amount of PPC and MIPS. 06:42:30 * MrReach nods 06:43:19 how are you expression scale, base and index registers? 06:43:23 *expressing ~:! 06:43:44 ok, from mem to register ... 06:44:07 [EAX] +[EBX] *4 ECX MOV 06:44:25 i see 06:44:33 +[constant]? 06:44:41 but how to specify the displacement? 06:44:50 for displacement, +[256], etc 06:44:51 hmmm 06:45:11 reverse polish, don't forget ... preferably no parsing 06:46:59 d[256] :D 06:47:14 just keep a displacement state, clear for each new instruction passed through 06:47:59 hmmm ... 06:48:20 0x1234 +> [EAX] +[EBX] *4 ECX MOV 06:49:14 0x1234 -> [EAX] +[EBX] *4 ECX MOV 06:52:29 yes, there will be a series of words ... disp? base? index? scale? 06:53:27 that get translated into ... dirbit modbits regbits scalebits indexbits basebits ... etc 06:53:45 well, i forget how many forms of instructions accept two displacements, i think none 06:54:00 none do 06:54:00 but order of words mostly doesn't matter, does it? 06:54:10 not really 06:54:21 except that src precedes dest 06:54:42 yeh 06:55:59 for example, the inverse of that instruction would compile EXACTLY the same opcode, except the direction bit would be inverted ... 06:56:20 ECX 0x1234 +> [EAX] +[EBX] *4 MOV 06:58:10 ok, I follow you, the +> implies syntactic direction 06:58:27 <+> might be better 06:58:39 just to split dest and src, yeah 06:58:56 I was thinking of using -> for that, if it's required 06:59:18 EAX -> EBX ADD 06:59:39 but it shouldn't be required, in theory 07:00:00 well, it's extra work otherwise. not much, but you said you don't want to deal with 'parsing' :l 07:13:34 oh, I should point out that the mnemonics have a comma appended to distinguish them from regular forth words 07:13:50 sample desassembler output might look like this ... 07:14:36 disassembler, even 07:14:56 (it's amazing I can code at all, given how many typos I perform) 07:14:59 \ 1: [EAX] +[EBX] *4 EAX MOV, ( xxxxxxxx b1 b2 b3 b4 b5 b6 b7 b8 b9 ba ) 07:14:59 \ ... 07:15:00 \ 1@ JC, 07:26:02 --- join: schihei (~schihei@p5085DCF7.dip.t-dialin.net) joined #forth 07:58:56 --- join: networm__ (~networm@L0656P06.dipool.highway.telekom.at) joined #forth 08:19:43 --- quit: wossname ("corfbre") 08:21:00 --- quit: networm_ (Read error: 110 (Connection timed out)) 08:47:54 hm according to this tutorial i should be able to work with strings with just " 08:48:01 but when i use " it returns undefined 08:48:17 S" for stack 08:48:22 c" for counted 08:48:32 eh 08:48:35 but not just " 08:48:35 ? 08:48:45 when writing the standard ... 08:49:03 the behavior of " was about evenly split 08:49:23 so they didn't define it, expecting the end-user to define " as they are used to using it 08:49:37 oh right 08:50:16 so, looking at this winforth, s" puts the string to a location and puts the adres on the stack, then the length of the string on the stack 08:50:24 c" does the same except not the length 08:50:28 right? 08:54:01 and i cant seem to define " 08:54:24 Moo. 08:54:50 qFox: keep a counter? 08:55:03 sorry? for what 08:55:07 " 08:55:17 sorry, i dont understand 08:55:43 and i cant seem to define " 08:55:57 which winforth? 08:55:59 yes, i was trying to define " to behave like c" 08:56:02 win32for ??? 08:56:04 win32forth 08:56:05 aye 08:56:17 hmmm ... lemme eperiment ... 08:56:18 ack :) 08:56:24 Use pygmy. 08:56:29 pygmy? 08:56:30 link? 08:56:34 pygmy is great. 08:56:36 I forget... 08:56:46 http://google.com/search?q=pygmy+forth 08:57:08 Pygmy Forth version 1.5 for DOS (IBM PC) 08:57:14 whats the latest version 08:57:28 1.5 08:57:31 1.6 08:58:09 er 08:58:11 ok then :) 08:58:22 synonym " s" 08:58:30 or ... 08:58:34 synonym " c" 08:58:51 which reminds me, i need to get it, so I can use dosemu/dosbox :) 09:00:58 hm 09:01:01 http://astro.pas.rochester.edu/Forth/forth-words.html 09:01:05 synonym isnt on that page 09:01:07 :) 09:01:13 winforth knows it tho 09:01:42 open win32forth ... type VIEW SYNONYM 09:01:49 yea i did 09:01:53 it is nonstandard, win32forth only 09:01:59 oh right 09:05:33 oh yay, pygmy works with dosbox *grin* 09:07:08 hm then i wont use it 09:07:24 i do prefer a windows environment. copy pasting etc 09:12:54 Bah, 09:12:56 :) 09:13:14 pygmy is teh shite 09:14:09 i dont think there's a real nice yet good working recent windows compiler :\ 09:15:09 For Forth? 09:15:17 Moo. 09:15:35 Gforth should work, although its not _that_ great 09:15:41 although other people swear on it.. 09:16:31 qfox: I'm working on it 09:16:32 win32forth is nice, just not very recent 09:16:36 k 09:16:49 i got me a full version of proforth but it wasnt all that great for me 09:16:52 erm ... go to the yahoo win32forth group 09:16:57 and gforth is dos 09:17:01 they are actively developing it now 09:17:12 whats the name? 09:17:27 just a sec, get you a link 09:17:29 k 09:18:48 http://groups.yahoo.com/group/win32forth/ 09:19:11 what was wrong with proforth?? 09:19:26 oh, you want optimised subroutine threaded? 09:19:31 i cant really explain, just doesnt have the right feeling for me 09:19:38 meaning? 09:19:57 the machine code produced looks more like GCC output 09:20:10 rather than direct or indirect threaded forth 09:20:17 no thats not it 09:20:26 hrm ... 09:20:44 that begs the question ... what does a perfect forth "feel" like to you? 09:21:16 hehe i know, sorry 09:21:44 is there an answer? 09:21:52 no not really 09:22:28 proforth is 16 bit dos, isn't it? 09:22:44 eh, the latest is windows anyways 09:22:52 ok 09:22:53 vfx forth for win32 09:23:14 vfx I've played with, and SwiftX 09:23:48 I really admire the vfx optimiser ... trying to write one myself 09:24:05 windows<->xwindows compatible 09:24:46 that's why I'm so engrossed (for the moment) with the P4 dis/assembler 09:26:10 what i dislike about both win32forth and proforth is that they dont automaticly save your new words 09:26:30 pygmy...pygmy...pygmy... 09:26:38 that's an inapropriate thing to do 09:27:02 i'd like an editor, that does the normal stuff of course, but that would automaticly save your words to your own dictionairy, save it the moment you create it. have a editor window to edit your words on the fly... 09:27:09 the console is intended for dinking/testing new code 09:27:38 and a decent help system, something like the old borland c++ help system (dos one) 09:27:50 yep, I remember 09:28:17 not like, but the win32 and glibc libraries are HUGE 09:28:19 but for copy/pasting stuff, i do want a windows based one, not dos 09:28:27 and not at all related to Forth itself 09:28:49 ya well, the only real reference i have right now is that page http://astro.pas.rochester.edu/Forth/forth-words.html 09:29:02 you don't have the ANS standard??? 09:29:10 no, not yet.. :) 09:29:15 god, just a sec ... 09:29:17 hehe 09:31:00 http://www.taygeta.com/forthlit.html 09:31:05 also, i'd really like the program, while i'm fantasizing..., to popup the stack description for a word if you hover over it (like in visual studio, and so many others) 09:31:20 there are both online version and zipped version 09:31:24 and colors (syntax highlighting) of course :) 09:31:28 ok tnx 09:31:56 no reason that can't happen 09:32:09 lots of space in the dictionary, though 09:32:22 wheres the dvorak C in comparison to QWERTY? 09:32:41 heh, haven't the faintest 09:32:54 never used dvorak 09:32:55 well the program doesnt neccesarily have to be written in forth, i mean i dont really care what code the program is written in, as long as it works :) 09:33:46 I gotta go 09:33:50 --- nick: MrReach -> MrGone 09:34:07 MrReach> hm there's alot of info, but not really a nice userfriendly overlook on the words 09:37:16 --- nick: chrisrw -> moo 09:37:39 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 09:38:14 --- quit: moo ("Leaving") 09:42:19 --- join: _chrisrw_ (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 10:00:31 --- quit: _chrisrw_ (Remote closed the connection) 10:21:16 --- nick: chrisrw -> MooMoo32 10:21:40 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 10:21:46 --- quit: MooMoo32 ("leaving") 11:16:35 --- nick: chrisrw -> MyNickIsFuck 11:16:42 --- nick: MyNickIsFuck -> chrisrw 12:09:40 whats PAD? 12:19:14 not sure... 12:19:25 but ive seen it before 12:28:53 ughhhh 12:29:19 use NS, don't use NS,,,,, 12:39:41 if i put a string in the memmory, with c" or s" or whatever, will it free that memmory as soon as the address is off the stack? 12:45:17 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 12:45:18 --- mode: ChanServ set +o kc5tja 12:52:45 kc5tja=! 12:52:51 the PERFECT time for you to arrive! 12:53:15 :)' 12:54:02 Oh, I see, so now I'm a ! . 12:54:12 :) 12:54:17 qFox: no, it wont. It will stay in the dictionary forever, unless you forget it, but then all the words you defined after that (including strings, and ,'s) will be gone :) 12:54:20 kc5tja: :) 12:54:28 kc5tja: should I use the NS base classes? 12:54:34 they're just so neat and useful... 12:54:35 nono i mean if i'd just do c" hi" 12:54:54 then you got the address 12:54:58 wil hi remain in the memmory, even if the address is . ? 12:55:07 yes, it will. 12:55:07 chrisrw: No, I kind of like the idea that I'm a !. It's just one of those really weird things that 99% of the people just won't get. 12:55:08 so say: c" hi" . 12:55:18 will hi still be in the memmory afterwards.. 12:55:24 qFox: yes it will. 12:55:25 qFox: Depends on the Forth. 12:55:37 qFox: 99% of the forths 12:55:37 isnt that ehm, 12:55:43 :) 12:55:49 hmmm no, cant that be considered a memmory leak? 12:55:59 Yes, it will remain in memory in the sense that as long as you don't do anything to change the value of HERE, it'll remain in memory. :) 12:56:02 over time there will only go data in, and not out 12:56:07 here? 12:56:17 HERE is the word that gives the current compiler address. 12:56:18 hmm 12:56:22 HERE is where the next byte to be compiled goes. 12:56:26 E.g., 12:56:32 HERE . 1 , HERE . CR 12:56:33 basicly the adres where he saves teh string with c" hi" ? 12:56:40 you should see a difference of 2 to 4, depending on the Forth. 12:56:44 kc5tja: c" hi" will increase here by 3 though. so you'd have to reduce it.. 12:56:45 Yep. 12:56:54 here . 1 , here . cr 247780 247784 12:56:59 chrisrw: No, not necessarily. 12:57:09 kc5tja: why not? 12:57:16 ok, if i'd do c" hi" c" hi" 12:57:21 will the first hi get lost? 12:57:36 qFox: i dont think so... 12:57:38 C" and S" are responsible only for placing a string in memory. Unless you're actually inside a colon definition, they're not responsible for advancing the compiler pointer. 12:57:52 qFox: simple test: c" hi" here . c" hi" here . 12:58:03 qFox: Again, it depends on the Forth. :) Some Forths let you define up to 8 strings before overwriting the older strings. 12:58:08 c" hi" here . c" hi" here . 247784 247784 ok.. 12:58:15 . -1022112 ok. 12:58:15 . -1022372 ok 12:58:24 kc5tja: here = pointer into dictionary. and the string is usually saved in the dictionary, right? 12:58:39 but is the string not saved somewhere independt from the dictionairy? 12:58:42 hrm, thats odd, i guess im wrong then :) 12:58:43 "just" a memmory location 12:59:21 c" hi" c" hi" count type count type hihi ok 13:00:01 hm 13:00:13 how can i put an adres directly into the stack? 13:00:46 i'm curious if the string is destroyed if the (last instance of the) address is removed from the stack... 13:01:16 garbage collecting forth? :)) 13:01:26 because that would make sense to me, otherwise the memmory would be filled with strings every time you use a string 13:01:53 chrisrw: Right. 13:01:55 or are you yourself responseble for destroying those locations... 13:02:15 qFox: Better demonstration: c" hello" c" world" count type cr 13:02:22 i did 13:02:26 c" hi" c" hi" count type count type hihi ok 13:02:39 but how do you put a mem-location to the stack? 13:02:43 But since both strings are 'hi', you don't know which one takes precedence. :) 13:02:45 because then i would do 13:02:49 oh right 13:03:00 c" hi" c" hi2" count type count type hi2hi ok 13:03:05 hm intresting 13:03:21 In pygmy: 13:03:25 This is what I mean when I say that it depends on the Forth. 13:03:33 qFox: What Forth are you using? 13:03:42 c" test" dup . count type 13:03:49 " Hi" . HERE . " Hi" . HERE . 18081 18085 18085 18089 ok 13:03:55 then i'd get the mem location, and i could see either it's still there 13:04:01 win32forth 13:04:16 Yeah, gforth doesn't behave that way as far as I can tell. 13:04:17 * kc5tja tries 13:04:17 so in pygmy, the strings are saved in the dictionary :) 13:04:28 " Hi" . HERE . " Hi" . HERE . -1020812 247784 -1020552 247784 ok 13:04:49 chrisrw: Yep. Just don't forget to FORGET or ALLOT a negative amount to reclaim memory, or else you'll slowly leak dictionary space. 13:05:17 * chrisrw tries to define FORGET :) 13:05:42 In fact, I can't even use c" outside of a :-definition. It's purely a compile-time only word. 13:05:43 hrm, the pygmy FORGET is huge :)) 13:05:45 (in gforth) 13:05:46 hm but that means that its a memmory leak if i dont free the allocated space for the string myself? 13:05:56 i can .. 13:05:57 :) 13:06:12 qFox: It's not required to by the standard. 13:06:13 : FORGET BL WORD COUNT CURRENT @ SEARCH-WORDLIST 0= ?MISSING 13:06:13 (FORGET) ; ok 13:06:17 In fact, neither is S". 13:06:18 hm ok 13:06:32 string-address here - allot 13:06:32 :) 13:06:57 as far as i can see c" and s" only differ in that manner that s" puts the length on the stack first 13:07:01 qFox: Pygmy inlines ?MISSING and (FORGET) into a single colon definition. 13:07:08 * kc5tja never did like Pygmy's definition of FORGET. 13:07:25 either way, pygmy is great :) 13:07:36 kc5tja> i'm afraid that tells me very little :) 13:07:40 qFox: Puts the length on the stack only; c" builds a memory-counted string, while s" builds a stack-counted string. 13:07:50 ehh 13:07:53 uum 13:07:57 s" doesnt put the string to the stack? 13:08:02 it did.. 13:08:05 c" Hi" = HI\0 13:08:09 No. 13:08:17 s" Hi" = 2HI 13:08:19 i think? 13:08:22 S" puts the (addr u) on the stack, where addr is the string's memory address, and u is its length. 13:08:23 hmm wth 13:08:32 ...... 13:08:36 confusion :) 13:08:42 Read the ANSI specification. 13:09:01 The stack can only hold numbers. 13:09:07 (and even then, only of a certain size) 13:09:13 It can't hold whole strings. 13:09:21 it could 13:09:23 or any string.... 13:09:27 but the question is 13:09:29 WHY!? 13:09:46 chrisrw: It can't. Not unless you have each stack element at least 256 bytes in length to be truely useful. 13:09:50 That's incredibly wasteful of memory. 13:10:04 yes it can.. 13:10:09 It's better to just represent a region of memory on the stack. 13:10:27 yeah, it is better, but the other way _is_ possible :)) 13:10:29 chrisrw: If you're referring to putting the contents of the string on the stack in byte-wise form, that's wholesale inadequate. 13:10:29 how do i copy a memmory address to a variable? 13:10:33 kc5tja: anyway, i gots a question 13:10:37 qFox: ! 13:10:38 so how do i change the target of a variable? 13:10:40 ah 13:10:47 qFox: A memory address is just a number, like any other. 13:10:48 no n stores a number... 13:10:52 hmm 13:10:56 ok lets try 13:10:57 :) 13:11:03 qFox: VARIABLE FOO C" test" FOO ! 13:11:11 qFox: FOO @ COUNT TYPE 13:11:12 yes but if i'd push 1 to the stack 13:11:14 VARIABLE My-Address c" Blah" My-Address ! 13:11:20 and used anything that reads in a address 13:11:25 would it see that 1 as an address? 13:11:28 Yes 13:11:30 even though it would bork out ? 13:11:32 hm ok 13:11:51 qFox: Forth is untyped. It assumes the programmer knows what (s)he's doing. 90% of the time, it's right. :) 13:11:56 but in that case, the max of memmory it can reach is low, isnt it? 13:12:09 In the other 10%, it'll happily shoot itself in the foot. 13:12:14 * kc5tja loves crashing Forth systems with 0 0 ! 13:12:17 especially if its a signed.. 13:12:24 heh 13:12:32 0.0 13:12:34 OMG 13:12:34 lol 13:12:39 pygmy in dosbox: 13:12:41 Numbers are interpreted different ways by different words. 13:12:42 0 0 ! ok 13:12:44 lol 13:12:46 Type this: 13:13:01 ^_^ 13:13:06 chrisrw: There's a good reason for that, which I won't get into now. It has to do with how DOS works with the program segment prefix. 13:13:15 yeah, i know :) 13:13:19 chrisrw: But on Unix or Windows, 0 0 ! will crash most Forths. 13:13:22 i just find it funny and entertaining 13:13:32 qFox: Try this: c" foo" hex u. decimal 13:13:32 0 0 ! ok 13:13:33 :p 13:13:43 c" foo" hex u. decimal FFF0728C ok 13:13:48 qFox: Win32Forth is doing some kind of address translation then. 13:14:02 As you can see, the integer that is 'signed' when using . is no longer signed when using u. 13:14:11 ye 13:14:14 You can do the same without the hex or decimal words. 13:14:45 It just looks prettier with it in hex, since hexadecimal form is traditionally used for memory addresses. 13:14:46 i wonder if I can go into pmode with dosbox lol 13:15:12 :)) 13:15:16 heh 13:15:21 heres an interesting thought 13:15:22 chrisrw: Not familiar with dosbox, but I know that dosemu does support a limited form of protected mode. 13:15:39 (it's very, very restricted though; implemented just enough to get certain programs working) 13:15:43 a forth block for pygmy which makes the whole thing 32 bit :)) 13:15:59 That block would have to re-implement virtually all of Pygmy in the process. 13:16:07 This is, BTW, what started me to write FS/Forth. 13:16:07 :) 13:16:12 not too much, i'd think :) 13:16:17 well 13:16:22 FS/Forth is to Linux (and native hardware) as PygmyForth is to DOS. 13:16:34 No, it wouldn't be hard to do, but I'm just saying you'd have to do it. 13:16:43 All the primitives are built for 16-bit real-mode, 8086 code. 13:16:59 hrm 13:17:14 1) redefine the assembler 13:17:30 2) rename old primitives 13:17:38 3) new 32-bit primitives 13:18:09 4) set up interrupt handler 13:18:15 5) enter pmode 13:18:28 hrm 13:18:34 probably missing something :)) 13:18:47 kc5tja: should rkg use the NS base clases? they're just so neat.. 13:19:43 chrisrw: Why not? If they're supported by the Objective C runtime, and they're relatively portable (e.g., GnuStep and MacOS X support them, obviously, since both are basically implementations of NeXTStep now), then I'd go for it. 13:20:11 sweet 13:20:12 erm 13:20:21 does GNUStep require X? 13:21:01 or can I use the base classes without having to have some sort of GUI? 13:21:59 Yes, GnuStep is built on X11. 13:22:10 aww :( 13:22:21 Well, NeXTStep is a graphical environment. :) 13:22:25 true 13:22:27 but 13:22:45 i guess then I need X to (at least compile) use the ns base classes 13:24:01 which sux0rs :( 13:24:23 but then again. I can just build RkG on NS 13:24:36 and have curses be the optional alternative 13:24:43 instead of the other way around 13:24:57 how many functions does xlib have? 13:27:46 Too many for its own good. 13:27:51 (e.g., lots) 13:27:59 more than 256? 13:28:02 :) 13:28:10 I'd take a guess and say, "Easily." 13:28:15 :) 13:28:32 > apropos X | grep '^X' | wc 13:28:33 989 7856 60000 13:28:33 hrm 13:28:39 not sure it's all X11 functions.. 13:28:44 ! 13:28:54 fugg... 13:29:52 kc5tja: NSAutoreleasepool cant seem to find too much info about it ... what is it, etc? 13:31:13 My estimate, which is not likely to be conservative, is 848, based on the following shell script: strings /usr/X11R6/lib/libX11.so.6.2 | grep "^X\\.*" | wc -l" 13:31:17 hm, s" x" you can just type the result, with c" x" you have to count it first. 13:32:04 qFox: Yes. That is because of what I said before: S" places the address and the length on the stack, while C" places the address of the count byte (after which follows the string proper) on the stack. 13:33:07 oh yay 13:33:10 chrisrw: Oops. s/wc -l"/wc -l/ 13:33:14 ooh, so at the adres after c", the first byte says the length, the rest is data 13:33:23 i can make pygmy print a string without saying ok afterwards 13:33:43 " Chinese W" COUNT TYPE Chinese Wok 13:34:18 Well, the address that c" puts on the stack points to the count byte. 13:34:31 The memory immediately following the count byte contains the string. 13:34:57 then what are stack points? 13:35:54 * qFox he's not asking for the meaning of life here... or the result of 2+2 for that matter... 13:36:05 hopes* 13:36:55 kc5tja: hrm, could you clarify NSAutoreleasePool for me please? the developer.apple.com one makes sorta sense, but im not too certain 13:37:29 chrisrw: I have no idea. I don't write code for NeXTStep. 13:37:46 qFox: I don't understand your question. 13:38:07 well what are the stack points? 13:38:12 What are stack points? 13:38:17 yes :\ 13:38:36 i'm either not familiar with the term or simply dont know what it is 13:38:38 A stack is just a big bag o' memory that is used to hold your intermediate computations. 13:38:45 yes ok, i know that 13:38:51 but "stack points" ? 13:39:09 hrm, i got it now. 13:39:11 kc5tja: ! 13:39:17 There is precisely one stack pointer, used to record where the next value to be pushed onto the stack goes in memory. 13:39:33 kc5tja: well, it seems that all the things youve said pointed towards it, you know? :0 13:39:36 :)* 13:39:50 (Well, let me make a slight correction: there is one stack pointer per stack; as Forth has two stacks, you need two stack pointers. You normally don't need to know of these though.) 13:40:04 chrisrw: I did? 13:40:05 rp@ sp@ 13:40:06 :) 13:40:13 kc5tja: well, it seemed like it. 13:40:18 :)) 13:40:23 chrisrw: Those aren't standard by any stretch of the imagination. 13:40:40 hm, ok, but whats the point of saving the stackpointer? hm a bit confused now 13:40:50 Consider the meaning of rp@ or sp@ on the F21 microprocessor, where both data and return stacks are in the chip itself, and you can't do anything about it. 13:41:08 qFox: Well, one useful application of saving stack pointers is to support multitasking. 13:41:40 qFox: Each Forth application will need its own return and data stack, so to switching from one task to another requires you to change the stack pointers to the new task's stacks. 13:42:27 Normally, fetching the current data stack pointer is used to figure out how deep the stack currently is (e.g., the word .S is used to print the current contents fo the stack; to do so, it needs to know how many values are on the stack). 13:42:47 yea ok, but bear with me, can you break down c" for me? 13:43:02 i mean, i dont understand the use of the stack pointer in this matter 13:43:12 compared to s" 13:43:17 The word DEPTH is usually defined with something archaic like this: : depth sp0 sp@ - 2/ 2/ ;, which will return the depth fo the current data stack on 32-bit machines. 13:43:52 C" just puts the address of a string buffer on the stack. 13:44:08 yes, but you can type it, you have to count it first 13:44:15 Yes. 13:44:29 The address it returns has nothing to do with the stack. 13:44:34 The stack holds the address. 13:44:38 yes.. 13:45:01 i understood that, sorry 13:45:23 [22:34:12] Well, the address that c" puts on the stack points to the count byte. 13:45:37 thats where you confused me.. 13:45:47 Let me parenthesize it algebraicly for you. :) 13:45:53 sure :) 13:46:00 Well, the address (that c" puts on the stack) points to the count byte. 13:46:33 and the count byte is the length of the string? 13:46:36 number of bytes..? 13:46:48 Yes; it indicates how many bytes are used to contain the string. 13:47:06 does that mean a string is limited to 256 (or 255) bytes? 13:47:15 or something similar 13:47:18 here 5 c, 'h c, 'e c, 'l c, 'l c, 'o c, count type 13:47:36 Strings defined by c" are usually limited to 255 bytes at most. 13:47:47 This is why c" is deprecated in ANSI Forth, and S" is preferred. 13:47:51 and that limitation is gone with s" 13:47:53 ic 13:48:00 Since the string's length is kept in its own stack cell, strings of arbitrary length can be supported. 13:48:07 ye 13:48:21 Plus is lets you do neat tricks like in-place substrings. :) 13:48:26 i thought you meant earlier that you saved some kind of "stack point" 13:48:30 so i didnt get what it meant :) 13:48:54 Oh, no. Sorry, though there is no easy alternative to what I said, that unfortunately is due to the inherent ambiguities of the English language. 13:49:08 its ok :) 13:49:27 It's funny; English is all I speak, and I absolutely abhore it as a language for technical communications. It just reaks of retardedness. 13:49:43 hmmm well my native is dutch 13:50:02 and sometimes i can express myself better (or even only) in english, rather then dutch 13:50:14 Well, no language is perfect. 13:50:19 :) 13:50:20 I find English is quite suitable for general purpose communications. 13:50:31 german is quite nice :) 13:50:32 But for technical communications, I'm not so sure English is the best. 13:50:58 * kc5tja would like to learn German, being half German by heritage, but I'm going to go with Spanish, more out of necessity than anything. 13:51:08 * qFox coughs 13:51:12 german is NOT dutch. 13:51:22 I don't recall anyone saying it is. 13:51:31 alright.. :) 13:51:44 i just hate it when people do think so 13:52:01 Spanish is the Visual Basic of spoken languages. :) 13:52:07 Though I find it interesting there is such animosity between German and Dutch folks, yet Germans refer to themselves as Deutsche(spelling?), clearly indicating a common heritage. 13:52:11 well, actually, no 13:52:16 its the C++ of spoken languages 13:52:27 animosity? 13:52:28 yes, Deutsche :) 13:52:44 but 13:53:00 germans refer to the dutch as "Hollaender" or "Niederlaender" 13:53:11 in fact.. 13:53:15 we do too 13:53:18 hollander 13:53:20 nederlander 13:53:29 qFox: Some Dutch folks I've met get very upset (to the point of raising their voices in public places in a not so kuth manner) when you even hint that Dutch and Germans are, or even were, one people. 13:53:30 well the last is used commonly 13:53:42 well 13:53:57 thats mostly for those who are still angered by the wars 13:54:08 or who are simply retards 13:54:30 I just find it interesting. To me, the similarity of Dutch and Deutsche is just too uncanny. 13:54:38 It's like the words God and Good. Just too uncanny. 13:54:39 i dont like the german language, but it has nothing to do as how i feel about them, or anyone else for that matter 13:54:52 hm 13:55:05 do remember however that dutch is an english word, whereas deutch is german 13:55:11 the two are not related... imo 13:55:17 yep :) 13:55:28 the fact that our country has such oddities in the english language 13:55:35 Anyway, I'm going to take Spanish primarily because I live less than one hour north of the Mexican border, and a large number of people I interact with are more fluent in Spanish than English (if they know any English at all). 13:55:36 has little to do with how germany calls itself 13:55:49 hehe 13:55:49 whats the difference between netherlands and holland in that sense anyway? 13:56:00 hm 13:56:04 history lessons paying off 13:56:06 :p 13:56:37 hollanders are sort of like beggars, or something like that (although few people actually think of it that way) 13:56:50 on the early 1900's when holland was formed 13:57:26 Wow, so Holland is relatively new. 13:57:31 nowadays almost anyone will say nederlands in dutch, although in english i myself am always drawn between i live in holland, or i live in the netherlands 13:57:54 * kc5tja would have thought that Netherlands would refer to a whole region of land, while Holland would be a specific country within that region. 13:58:07 hm btw dont take those years too literal, i didnt like history classes much 13:58:16 but yes, its relatively young 13:58:24 could be off a few hunderd years :p 13:58:49 but in english its just plain stupid 13:58:52 i am dutch 13:58:54 i speak dutch 13:59:01 and i live in holland, or i live in the netherlands 13:59:09 Well, Hollanders were one of a few groups of people constituting the mythical Vikings, right? 13:59:21 Holland and Sweden are the two that seem to stick in my mind for some reason. 13:59:22 i dont speak netherlandish, and i am not netherlandish.. :p 13:59:34 oh i dont know about that 13:59:54 Swedish boats still have the Viking rams on their boats, though not nearly as ornate as they were in antiquity. 14:00:35 ya the swedish and nordics are (eh? something) on that viking stuff 14:00:48 It seems somehow appropriate that Swedes have the quietest submarines in the world today. :) 14:00:59 holland used to be together with belgium 14:01:04 Norwegians. That's the folks. Sorry. 14:01:09 hehe :) 14:01:59 then with the emperror "karel de grote" from spain 14:02:13 somewhere in that era holland became holland, and split from belgium 14:02:30 as far as i remember.. 14:02:55 and come to think about it, i dont think that that emperror ruled around 1900... :) 14:04:14 All I know is that I need to maximize my return on college investment, and Spanish is the language I pretty much have to take if I'm going to be more fluent with the folks I work with and serve. 14:04:49 yes if you live close to the mexican border thats a pre 14:04:59 and i'm surprised you dont already speak it 14:05:00 sort of.. 14:05:06 Well, I lived here for almost 10 years. 14:05:16 oh you didnt grow up therE? 14:05:17 That's because I have a language-related learning disability, or at least, so it seems. 14:05:20 No. 14:05:22 ah ok 14:05:37 And folks who have grown up here aren't always fluent in English either. 14:05:40 heh :) 14:05:41 s/English/Spanish/ 14:05:43 Sorry. 14:06:03 My roommate lived here all his life, and can only say certain key phrases in Spanish. 14:06:09 :) 14:06:13 :) 14:06:20 .ooM 14:06:42 all i know is the odd ?! rules :p 14:07:06 That's what frightens me about Spanish is all the freakin' stupid rules. 14:07:19 well thats the danger behind all languages.. 14:07:24 I took Italian in the past, and hated every minute of it. 14:07:26 there are so many exceptions in dutch 14:07:30 and even more in german 14:07:32 brrrr :\ 14:07:49 * kc5tja took to Esperanto like nothing. That's a fun language. 14:07:55 plus i could hardly tell you them, i know the languages by feeling, not by rules 14:08:01 * kc5tja nods 14:08:09 That's pretty much how I know English. 14:09:53 I think that's why I like Forth so much; it's like Esperanto in that the rules for using it are so small, so regular. 14:10:05 And yet, it's intriguing how Forth is the most irregular language there is. :) 14:10:24 Forth is to English in a sense, as something like Oberon is to Latin. :) 14:10:29 i do hate the fact that a word in on version means nothing in another 14:11:06 qFox: I don't mind that so much; I can always define the word myself if need be. 14:11:25 qFox: But, that is perhaps THE problem that ANSI Forth is trying to solve. 14:12:01 yes but thats because YOU already know the language 14:12:08 but its the problem I have when learning a language 14:12:18 i need some basic form of a standard 14:12:22 * kc5tja nods 14:12:39 need to have tutorials that i can follow, and not one that's written for a specific compiler 14:12:54 I think Marcel Hendrix re-wrote, or at least augmented, the Starting Forth for include ANSI Forth. 14:13:08 * kc5tja tries to find a URL. 14:14:31 well i think i have covered the basis of the language, i now have to "understand" it... learn to speak it fluently so to speak, feel at home with it 14:15:14 why did you learn it? 14:16:16 because i stumbled uppon it and got intrested in it. hoping it would and could replace mirc as my main used language to write stuff in 14:16:34 (you may laugh) 14:16:35 :) 14:16:36 mirc? 14:16:51 heh, i always thought MIRC is some windows IRC client 14:16:55 atm i do almost anything i need in mircscripting 14:17:09 it is, but you can do much more with the scripting language in it 14:17:15 i see - xchat has python scripting :) 14:17:24 comparable 14:17:30 i've made an msn script 14:17:33 for instance 14:17:54 but on the other side mirc has its limitations, speed for one... no graphical possibilities for two 14:18:13 however it has very strong string manipulation, and variable freedom 14:18:21 which i... adore 14:18:22 :) 14:18:33 i see - sounds a lot like python 14:18:50 however most people (that know anything about coding), laugh when they even hear the word mirc 14:19:04 and it gets tiresome in the end :) 14:19:07 which language is mirc-script based on? 14:19:14 redhat 8 can't decide if a rpm is installed or not 14:19:14 Redhat is like anal sex - good every now and then, but if you rely on it too heavily, it starts to bleed out the ass. 14:19:17 dont know, khaled writes it himself 14:19:38 ah, ok. i guess i've never seen any code in it then 14:19:43 there's only one author of the mirc client 14:19:58 and the script-language comes with the client, it's not released standalone 14:20:02 http://home.iae.nl/users/mhx/ <-- found it! 14:20:34 its very easy to use and learn 14:20:41 yet quite powerfull 14:20:49 especially with socket and dll support 14:20:54 that's also said about JavaScript and the version of it used in Flash.. 14:21:09 javascript cannot open sockets to any location 14:21:10 i find C or python much easier though :P 14:21:16 js can also not use external dll's afaik.. 14:21:45 The stand-alone JavaScript can, but not the one embedded in browsers. 14:21:50 ah, that's nice, so you can easily call any addons from MIRCscript 14:22:10 well mirc works fine, its just not taken seriously by almost anyone that doesnt know it, and even some that do "know" it, dont 14:22:19 yes 14:22:29 qFox: Did you get the URL I posted above? 14:22:36 yes 14:22:39 Cool. 14:22:46 :) 14:22:59 [BrntToast] #amish can't join channel (you're banned!) <------- they banned me when i asked for the secret as to how a computer runs without electricity :( 14:23:16 with my msn script for instance, in order to authenticate with msn nowadays you have to get your passport 14:23:24 this passport site is https (ssl) 14:23:29 which is not built into mirc (yet..) 14:23:51 so i have to use an external dll that changes a socketconnection to an ssl connection, to get thru the authentication :) 14:24:10 amish is empty 14:24:56 hm efnet is laggy, and the amish chan there has some odd bans :) 14:25:06 *.nz 14:25:09 *.on.* 14:25:11 :s 14:26:45 heh 14:28:00 http://bash.org/?115726 14:31:23 :) 14:31:52 :) 14:33:05 Man, I can't believe it's already 14:32 here, and it still feels like I just woke up. 14:33:45 i can't believe it's 00:33 already :P 14:36:01 23:35 14:36:28 qFox: did you read the standard link I sent to you? 14:36:35 --- nick: MrGone -> MrReach 14:37:02 you mean http://www.taygeta.com/forthlit.html ? 14:37:02 kc5tja: :) 14:37:07 yes 14:37:21 yes but there wasnt a clear overview of words and the meaning 14:37:38 the appendix has the list of all defined words 14:37:40 i mean, i'm sure that its there, but not... "userfriendly" to quickly lookup 14:37:45 hm maybe i missed it 14:38:00 my local bookmarks point to the that list 14:38:16 aaaalright 14:38:21 time for me to code more :)) 14:38:22 it discusses why strings are defined as they are 14:38:23 ooooh its F 14:38:28 like totally in the bottom :) 14:39:06 incidently, strings are "undefined" in interpretive mode, though most systems have a kludge of some type to allow them 14:41:10 MrReach: They have to, or else words like INCLUDE and the like can't be used. :) 14:41:32 In fact, that's the ONLY reason why interpret-mode strings exist, and why they're so unfeatureful compared to other languages. 14:41:38 erm ... s" afile.4th" INCLUDED 14:41:53 ah! gotcha 14:45:05 thanks for the Hendrix link (again) 14:45:18 been a while since I checked iForth 14:46:29 --- quit: schihei (Client Quit) 14:47:11 * kc5tja haven't used it. 14:47:28 but it's supposedly used in several commercial applications. 14:47:35 Which is pretty cool. iForth is a nice system. 14:47:36 i see that hendrix still hasn't delved into the vageries or PE32 and ELF files 14:47:56 Yeah. 14:48:06 That's the first thing I'm tackling for FS/Forth, of course. 14:48:11 Code optimization support will come later. 14:48:25 same here, but starting with the advanced assembler 14:48:44 * kc5tja doesn't even have an assembler in it. :) 14:48:47 I'll add that later on. 14:48:54 1. assembler/disassembler 14:49:11 2. basic kernel (output file formats) 14:49:27 3. inlining (code copying) 14:49:37 4. optimiser 14:49:44 5. object system 14:49:55 6. GUI components 14:50:00 [end] 14:50:25 Moo. 14:51:31 I can't tell yet if the optimiser is going to be fun or a nightmare 15:06:33 ha! quoting Hendrix ... 15:06:37 (I had to learn gdb to debug mxForth, which was a terrible experience) 15:18:14 --- quit: qFox ("if at first you dont succeed, quit again") 15:32:02 it just occured to me ... 15:32:54 that I don't NEED the new system to write the optimiser ... it can be written and tested on either win32for or gforth (linux) 15:33:09 I think I'm gonna give each client handler its own thread. And then maybe each of those has more threads, one for reading, one for writing, one for managing it all 15:33:17 MrReach: :) 15:33:31 what type of client?? 15:33:54 that's generally the way that servers are done 15:34:24 the main thread starts UID root (if you need a low port) 15:34:56 it reads the config, opens ports, then suid to someone meaningless 15:35:20 then it starts a "thread pool" to which socket handles are passed 15:35:51 thread pool? 15:36:08 you will see a noticable speed improvement if the thread is already initialized when the connection is made 15:36:08 as in, theres only X amount of threads, and then a free one is passed in? 15:36:09 neat. 15:36:14 ... 15:36:17 any advantages to that? 15:36:36 see above 15:37:08 advantage to which part? I covered several 15:38:04 there is _some_ overhead in starting a thread and initializing all its variables 15:39:51 MrReach: I intend on working on and correcting my optimizer using basic rules and predicate logic. 15:40:03 The idea is to minimize, or eliminate, the use of a debugger. 15:40:27 heh, I only posted that from Hendrix because it was amusing 15:43:16 chrisrw: what were you asking about? 15:44:02 a simple debugger in forth ought to be pretty easy to write 15:44:39 MrReach: It's actually reasonably difficult. You have to handle instruction execution traps, variable length opcodes (for x86), disassembly, etc. 15:45:02 It's one of those programs that are small and elegant when it works, but a *bear* to get right the first time. 15:45:46 * MrReach nods 15:47:11 I personally do intend on writing an x86 debugger of some kind. 15:47:21 Using Linux's ptrace() system call. 15:47:26 wasn't sure if you were a subroutine threaded model or an IDC/DTC model 15:47:35 I'm using native code. 15:48:15 Even so, a traditional "Forth debugger", which single steps whole words instead of machine language instructions, defeats the purpose of using one to debug an optimizer. 15:48:18 :-) 15:48:33 well ... 15:49:12 several coders have grown fond of replacing sequences of tokens with optimised tokens 15:49:39 lit 1 + ---> 1+ 15:50:38 hey kc5tja 15:50:53 * kc5tja nods 15:50:58 That's more or less how my compiler works. 15:51:22 except replacing sequences of machine code instructions 15:51:33 Currently, each compiler primitive interrogates the previously compiled word, and based on that, decides what, exactly, to compile in its place. 15:51:49 re MysticOne 15:51:55 ah! you had mentioned that before 15:52:01 Yeah. 15:52:02 hihi, MysticOne 15:52:03 * MysticOne is soooo sleepy 15:52:05 hi MrReach :) 15:52:13 overeat, did you? 15:52:17 yes 15:52:18 It's a very, very simplistic optimization, but it produces *amazing* results for how little programming investment I put into it. 15:52:32 see, at Turkey day, I could only eat a tiny bit at my grandmother's house because we had to go see my wife's relatives and eat dinner there 15:52:35 so I didn't eat much 15:52:45 but this time, we ate at my grandmother's ... so I made up for last time 15:52:59 heh, and went to sleep in front of the TV? 15:53:06 nahhh 15:53:08 just got home 15:53:09 oh, no, you came to #Forth 15:53:22 hehehe 15:55:12 chrisw: what type of client/server are you writing??? 15:55:54 --- quit: networm__ (Read error: 113 (No route to host)) 15:58:36 MrReach: its kinda hard to explain ... its like an integrated environment, sorta 15:59:09 bowp bowp chika chika bowp bowp 15:59:14 how would it be different from and IDE? 15:59:34 because its not strictly an IDE 15:59:37 --- join: networm__ (~networm@L0626P08.dipool.highway.telekom.at) joined #forth 15:59:42 its everything, yet nothing :)) 16:00:47 if you're doing any type of GUI, you're gonna need to go to an event driven paradigm, in any case 16:01:09 maybe not multi-thread, though 16:01:13 --- nick: chrisrw -> christmp 16:02:09 well, it is, but its not. 16:02:14 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 16:02:15 its very hard to explain :)) 16:03:25 --- quit: christmp ("Leaving") 16:04:07 well, it's gonna be hard for us to advise you, then 16:04:20 man ... downloading Quicken 2004 for Mac 16:04:25 $59.95, and the dang thing is only 29MB 16:04:28 that's ... insulting :) 16:05:01 heh, some software is worth it at any cost 16:05:24 still 16:05:28 :) 16:05:39 * MysticOne is trying to get his financial stuff all documented 16:05:59 makes you wonder what they're stuffing into the 400MB packages 16:06:17 yeah 16:06:25 it might d/l more when I load it up though 16:06:26 I dunno 16:06:31 will find out in just a moment 16:06:35 that's true 16:06:42 "modular net install" 16:07:17 Documentation and plug-ins usually. 16:07:32 question to everyone 16:07:40 which one would be better in what ways: 16:07:56 1) Allocate a new thread for each task, then destroy it when its done. 16:08:23 2) Keep a certain amount of threads idling in a pool, and if they're needed, they take over, do their work, then idle again 16:08:53 what is the nature of the tasks? how important is latency? 16:09:18 well, it needs to be relatively fast 16:09:50 the things the threads wouuld do are things like receiving a certain amount of input from a socket, parse it, and store it somewhere 16:10:33 socket is persistent? 16:10:56 well, it stays, unless the client quits or the server needs to exit 16:11:18 i kinda like the pool idea, just don't know how well it is... 16:11:48 ok, use thread pools when latency is critical (like a web server) 16:12:19 for a POP3 server, 1/10 sec delay is unnoticable 16:13:06 how many connections do you expect to handle at any given moment? 16:13:42 is there state data that needs to be shared among connections? 16:17:11 btw, if the processes are all running on the same machine, you'd do better using something like a pipe or a shared memory region for communication 16:17:47 well, the way it works is that it _can_ run on the same machine, but not necessarily. 16:17:57 its supposed to encourage distribution of the load :)) 16:17:58 * MrReach nods. 16:18:42 sounds like a distributed object system i was once contemplating 16:19:50 kinda sorta like it 16:20:07 dammit 16:20:17 i didnt get any unix books for xmas :(( 16:20:22 like i wished for :(( 16:20:34 heh, no other geeks in your family? 16:20:51 who uses books anymore??? 16:21:40 ! 16:21:40 :) 16:22:40 everything you could want to know is on web-pages nowadays 16:22:44 in fact ... 16:23:24 by the time someone writes a book, edits it, typesets it, distributes it ... it's out of date when it hits the shelves 16:25:56 * kc5tja still uses books. 16:26:29 books are nice because you can read them when your parents take your computer away 16:26:43 Heh 16:26:44 heh 16:26:53 Books are nice because they aren't bound by screen size or real-estate. 16:27:28 --- nick: MrReach -> MrGone 16:43:52 ^_____________________________________________^ <-- Julia Roberts 16:52:17 after having some 16:52:27 nm 16:58:56 :) 17:32:54 --- nick: chrisrw -> christmp 17:33:21 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 17:33:53 --- quit: christmp ("Leaving") 17:42:54 anybody got any wm suggestion besides KDE, GNome, Wmaker, *Box, IceWM, Fvwm, Twm, Mwm 17:43:39 What are your precise requirements? 17:44:07 - simple, not bloated 17:44:09 * kc5tja currently uses the Ion window manager, and am quite happy with it. 17:44:12 - multi-desktop 17:44:28 - a panel consisting of a button, tasks, and a pager 17:44:44 Ion won't (currently) fulfill the requirement of a panel. 17:45:14 However, the requirements you ask for are largely mutually exclusive, if my suspicion of what you think is unbloated is correct. 17:45:27 icewm comes the closest. 17:45:48 yeah 17:45:52 haha 17:45:59 i thought icewm was very nice 17:46:03 In point of fact, I find that wmaker and ROX-Filer combined make a *very* effective desktop solution for my needs. 17:46:08 but it doesnt seem to lend itself very nicely to my distro 17:46:13 and its not that pretty, either :)) 17:46:19 You can theme it. 17:46:26 rox filer uses appdirs tho... 17:46:30 true. 17:46:33 * kc5tja uses the OS/2 2.x theme for icewm. 17:46:46 Yes. AppDirs are the bomb. Best freakin' thing that ever could have happened to Linux. 17:47:10 I made appdir shortcuts to all my most commonly used applications. 17:47:23 its neat, BUT i don't want to stray from my distro :P 17:47:40 Ummm....nothing says that you have to use AppDirs. 17:47:55 AppDirs are used to make applets that plug into the ROX panel, though. 17:48:04 someday, when i have enough HD space, I'm gonna have a triple boot, with 2 linux, one SuSE straight, and the other a customized (with AppDirs!) 17:48:34 Within that timeframe, I think I'm just going to have my own operating system, written largely in Forth, with my own applications and requirements met. 17:48:39 Screw everyone else. 17:48:46 And anyone else who finds the OS useful, that's icing on the cake. 17:49:19 That's slowly what I'm working up to with FS/Forth. 17:49:49 My ideal desktop is not Linux. The closest that actually exists today is AmigaOS. 17:50:42 I feel that Forth, maybe augmented to include proof-carrying markup, combined with type inferencing and such, can make a better solution still. 17:50:54 :) 17:50:59 I'm sick of multi-address-space operating systems (MASOSes). 17:51:14 Single-address space OSes are definitely the way to go. 17:51:27 whats CDE and whats it like? 17:51:58 makes CPUs better and smaller and less bloated. 17:52:05 Intel being the perfect example. 17:52:06 No idea how it's evolved over time, but if it's still like what I remember, it's basically a glorified dock for X11. 17:52:16 Well, I'd still support the MMU. 17:52:23 The MMU is truely a useful piece of hardware. 17:52:42 But I'd rather use it for other purposes than enforcing the safety of software. 17:53:07 (That being said, I still want the ability to box an application in its own address space too, so that support will still likely be there.) 17:53:25 I think I'm gonna go with icewm :)) 17:53:30 This is especially true when debugging 'trusted components' of the operating system, that can't be tested otherwise. 17:53:39 kc5tja: more memory protection than isolation? 17:54:18 Well, I was thinking of using the MMU more to implement virtual memory than to support both virtual memory and memory protection. 17:54:43 Also, it'd be used to circumvent the 384KB "hole" in the PC's address space at 0x000A0000-0x000FFFFF. 17:54:56 "hole"? 17:55:28 0x000A0000-0x000BFFFF is the VGA video adapter memory. 0x000C0000-0x000DFFFF is expansion ROM space (e.g., boot ROMs found on Ethernet cards). 0x000E0000-0x000FFFFF is the PC BIOS. 17:55:53 why its not at one of the ends is beyond me. 17:56:17 So if you have 4MB of RAM installed, for example, you actually can only use 4MB - 384KB: the 640KB of "conventional" memory, plus the 3MB of "extended" memory. 17:56:36 chrisrw: Easy to answer. When the PC boots up for the first time, or is reset, the microprocessor enters "REAL MODE". 17:56:52 In Real Mode, the CPU honestly, truely thinks it's a 8086. Yes, that's right -- an 8086. 17:57:06 Complete with a monsterous 1MB address space (which at that time, truely WAS monsterous). 17:57:24 * kc5tja notes that PygmyForth runs in Real Mode. :) 17:58:05 In order to address memory beyond the 1MB barrier, the computer must be shoved into protected mode, in order to define the segment descriptors that lets the CPU access more memory. 17:58:52 yes... 17:59:47 Just one more reason why the 68000 beats the shit out of the 8086/80286/80386. :) 18:00:22 when resetting, the boot-time PC value is fetched from address $00000000 (e.g., the VBR register is reset to 0 if the CPU has one). 18:00:32 This address is a full-fledged, 32-bit address; it can point anywhere in memory. 18:00:44 Hence, if the BIOS address changes, just update the vector table, and all is good. 18:00:58 Then, after booting, turn off the vector table ROM, and you're free to treat it as RAM. 18:01:19 edr 18:01:21 er 18:01:24 im not following 18:02:08 Think. 18:02:24 When a CPU boots for the first time, it needs to fetch the PC vector from some kind of permanent memory. Right? 18:02:46 err 18:02:53 PC vector? 18:02:55 !??? 18:03:13 My whole previous text just got completely ignored. 18:03:24 Re-read what I wrote above about the 68000 CPU. 18:04:55 When the 80x86 boots up, initial instruction executes at the real-mode address 0FFFF:0000h, always. There is not a thing you can do about it. 18:05:14 ooh 18:05:15 ok 18:05:18 i get it 18:05:22 sorry, being a bit slow today :)) 18:05:26 When the 68000 boots up, it fetches its initial PC from memory. 18:05:39 :) 18:05:54 "_ 18:05:55 :) 18:06:40 It would have made much more sense for Intel to stick with resetting its program counter to zero all the way (e.g., including code segment). 18:06:57 * kc5tja notes that the 8008, 8080, and 8085 all booted with PC set to 0000h. 18:07:17 Why they made the decision to boot into high memory for the 8086 will forever be lost to the world. 18:07:19 Perhaps for the best. 18:08:14 heh :) 18:08:47 what was the difference between, say, 8008, 8080, 8085, and 8088/8086? 18:08:56 (i know the difference between 8088 and 8086) 18:09:02 8008 was Intel's very first 8-bit CPU. 18:09:16 It was pretty amazingly anemic in what it could do, all things considered. 18:09:37 The 8080 was a compatible microprocessor that added a lot of capability to the 8008. 18:09:52 The 8080 is often said to be Intel's first useful microprocessor. 18:10:05 The 8008 is good for hardware control, and that's about it. 8080 is a truely general purpose CPU. 18:10:42 what sort of address space did they have? 18:10:46 er 18:10:47 yeah 18:10:50 The 8085 is the last refinement of the 8080, adding a few instructions here and there, but overall I believe it was just easier to use in a circuit, and supported homebrewing better. 18:10:58 All of these were 64K address space CPUs. 18:11:05 0000-0FFFFh and that's it. 18:11:21 16-bit flat addressing. 18:11:32 no segmentation retardation :)) 18:12:06 The 8086 was introduced to be source code backward compatible with both the 8085 and the Z-80, largely because of the success of the CP/M operating system. However, they also wanted it to support things like advanced memory management and multitasking. 18:12:18 Hence the introduction of segmentation: it makes relocatable code *trivial*. 18:12:29 It also enables a larger address space. 18:12:47 Segmentation as defined in the 8086 wasn't retarded, but it was sorely misunderstood (and therefore, abused). 18:12:48 1MB!! whoo! 18:13:13 chrisrw: Considering that most programs were at most 16KB back then, 1MB was absolutely the most enormous thing you could possibly imagine. 18:13:51 Anyway, Intel later realized that plans hadn't gone their way. Meanwhile, users were looking for yet more memory, especially with Microsoft in the fold. 18:14:27 So they released the 80286 CPU, which was fully backward compatible with the 80186 (a backward compatible processor to the 8086, but designed for use as a microcontroller, and not a general purpose CPU). 18:14:43 80286 was the first Intel CPU to support protected mode. 18:15:07 16-bit pmode :)) 18:15:10 80286's segments can be located anywhere in memory, and be up to 64K in size. Protected mode granted the CPU access to 16MB of memory. 18:15:46 major hugeness :)) 18:15:50 Protected mode truely supported many kinds of multitasking operating systems, even Unix if you were careful enough. 18:16:19 But by this time, 68000-envy was drawing a lot of people to that platform, especially since it offered a nice, pure, clean, 32-bit instruction set. 18:16:33 So Intel immediate designed the 80386 to make the 80286 a 32-bit environment. 18:17:05 In addition to making it 32-bit, they also fixed a major hardware bug: a missing NAND gate caused the 80286 to be incapable of switching from protected-mode to real-mode. 18:17:29 The only way to drop back to real-mode was to hardware reset the CPU. 18:17:39 bad.. 18:17:56 lol 18:17:59 i didnt know that 18:18:01 haha 18:18:09 Many PC motherboards could reset the CPU without resetting the rest of the computer. This enabled OSes like Windows 2.0 and IBM's OS/2 1.x series to multitask DOS with native Windows or OS/2 apps. 18:18:33 Performance was majorly slow though (as you can imagine). Resetting a CPU is never a fast operation. 18:19:00 Anyway, segmentation in the 386 was greatly expanded too. 18:19:21 It permitted segments to grow to 1MB in size using a byte-sized granularity, or 4GB using a page-sized (4K) granularity. 18:19:52 Hence, 80386 was the first Intel CPU since the 8085 to permit a flat address space. :) 18:20:31 Also, to support multitasking of multiple DOS sessions, and ONLY because of this, the 386 was the first to support paging in addition to segmentation. 18:21:13 It turns out that it is powerful enough to be used for Unix as well, even without segmentation. 18:22:16 The 386 also supports the I/O Permission Bitmap feature, which can access protect individual I/O ports from user-level software. 18:22:29 This lets only certain software access only certain I/O registers. 18:22:42 In the end, this is a useless feature, but it was a good idea in concept. 18:23:45 The 386 was the first real microprocessor to concurrently run a Unix, DOS, and OS/2 all at the same time, beating the 68020 to multi-OS capability by about one year. 18:24:17 (not that the 68020 couldn't do it; it's just that it hadn't been done before. Intel was being flashy about their 386, and they used this to flaunt the chip to the 680x0 community) 18:24:37 especially since the 68020 required an external MMU chip to handle paging. 18:24:54 Needless to say, the 80386 was a glorified 80286. 18:25:23 :) 18:25:26 The RISC architectures were now putting huge amounts of pressure on Intel (the PowerPC was conceived of at about this time, and SPARC and MIPS were at their peak now) 18:26:12 So they immediate redesigned their integer and floating point units to minimize execution times. The result was the 80486, which was the first Intel CPU to (a) have single-cycle execution for their integer instructions, and (b) have an integrated FPU. 18:26:48 The 80486 changed the world forever, because before it, nobody thought a single-cycle CISC architecture was possible. 18:27:07 486 _did_ have pipelines... 18:27:12 :D 18:27:18 Motorola refused to compete with Intel at this point, releasing instead the 68040, which offered "decent" performance in comparison to the 486. At this point, everyone started jumping ship. Motorola blew it. 18:27:59 Finally, the PowerPC came out, and utterly blew away the 486, clock for clock. 18:28:21 Intel couldn't have this, so they took the 486 and copied it twice on the same die, producing the mythical 80586. 18:28:38 The 586 couldn't be trademarked, so Intel decided to change the name of the architecture. 18:28:41 The Pentium was born. 18:29:07 The Pentium was a 486 with a twin integer execution unit, and one FPU unit, all on one die. 18:29:17 More instructions were RISC-ified, especially the FPU instructions. 18:29:22 Clock rate was jacked up higher. 18:29:29 More performance-related registers were added. 18:29:32 Better caches were used. 18:29:32 etc. 18:29:45 All in all, the Pentium was up to 4x faster than a 486, at the same clock speed. 18:30:13 This sealed the 680x0's fate, and Motorola decided to discontinue the line. 18:30:22 :) 18:30:41 (Note: they DID re-engineer the core of the 680x0 series to compete with Intel's CPUs, but it was a dollar short and a day late. Their result is the ColdFire series of CPUs, which *rock*.) 18:31:18 (Besides, who would use a CISC-based ColdFire when a comparably priced and overwhelmingly more powerful PowerPC-based controller can be had? Which would YOU choose?) 18:32:00 So there you have it. Intel pushed the envelop to ensure their market dominance. The Pentium was the last Intel CPU to truely innovate anything. 18:32:13 Pentium Pro was just a glorified Pentium. Pentium II was just a *faster* Pentium. Etc. 18:32:41 Even today's Pentium IV Xeons are just . . . Pentiums. Sure, they have better instruction dispatch, better caches and all....but all that stuff was pioneered early on. 18:32:44 Nothing truely new. 18:33:00 AMD was the first to do something new with the architecture, making it 64-bit, with 16 general purpose registers. 18:33:09 It remains to be seen how well it'll go. 18:33:44 We do knwo the AMD x86-64 architecture offers outstanding performance; the SETI@Home project claims x86-64 is *the* ideal architecture for it. 18:34:00 But, I see both x86-64 and EPIC architectures competing for quite some time. 18:34:16 (EPIC being IA-64; Itanium and McKinnley processors) 18:41:52 aah :) 18:42:22 this cleared up some things for me, really :)) 18:42:35 ppro + pmmx -> pII afaik 18:42:36 lol 18:42:43 what was so special about the ppro again? 18:44:38 4004 was before the 8008, i know that, and it was a nibble CPU 18:44:55 did it really have a 16 byte address space? lol 18:52:56 --- join: TheBlueWizard (TheBlueWiz@pca0dn1d.ppp.FCC.NET) joined #forth 18:52:57 --- mode: ChanServ set +o TheBlueWizard 18:53:02 hiya all 18:53:40 hi! 18:53:46 merry xmas 18:54:01 Howdy 18:54:04 hiya onetom...and Merry Xmas to you too :) 18:54:08 hiya kc5tja 18:54:22 chrisrw: No, it had 4096 nybble address space (2KB) 18:54:26 i have an xmas present 4 u 18:54:43 u, who is interested, i mean ;) 18:57:11 ive just succeded welding some SDL support in2 TILE 18:57:42 i borrowed the code from XcolorForth 18:58:48 :) 18:58:58 any1 interested in it? 18:58:59 hiya TheBlueWizard 18:59:10 maybe 18:59:14 hiya chrisrw 18:59:17 onetom: suggest me some neat window managers? 19:00:04 chrisrw: i use almost no wm, thatis i use icewm or evilwm 19:00:28 chrisrw: if i understod ur question well 19:01:10 icewm is nice, but not complete. 19:01:17 heh 19:01:36 hey, no1 is interested in developing "crossplatform" graphical 4th apps? 19:02:12 chrisrw: it is the most complete and the smallest wm, beside fluxbox 19:02:29 chrisrw: what do u miss from it? 19:03:14 not configurable enough 19:03:15 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 19:03:21 and even though it has theming, its still ugly... 19:03:23 :) 19:03:33 chrisrw: u miss a graphical config prg? or what? 19:04:23 chrisrw: i misled several ppl w icewm.. they thought its winxp... 19:04:34 lol 19:04:43 chrisrw: use ion :) 19:04:44 it can really look that way, yeah :) 19:04:52 no, no ion :P 19:04:53 wanna some scrshot? 19:05:05 sure. 19:05:09 sec 19:05:42 I'm starting to like xfce 19:06:24 but xfce is more like a desktop environment, not a wm.. 19:07:44 u mix a car's carpet w the car itself 19:07:47 or sg like that 19:08:00 why not ion? 19:08:05 onetom: I am, of course, but I expect the interface to be very simple, yet complete enough to do almost anything. 19:08:07 best WM I've used 19:08:32 kc5tja: almost anything?... u mean w the mouse? 19:08:58 my desktop env is the GNU screen.. 19:09:17 lol 19:09:39 irssi centericq aumix cplay mplayer links etc 19:09:53 and mc of course 19:09:54 :) 19:10:00 mc is the best :)) 19:10:07 almost.. 19:10:24 * kc5tja can't stand mc, but I like gentoo (the file manager, not the Linux distro). 19:10:43 * kc5tja would like a more MacOS X finder-like tool. 19:10:43 you dont like mc? 19:10:44 its very buggy tho the concept is really the best 19:10:45 *gasp* 19:10:46 :) 19:10:53 i gotta check out gentoo or whatever though 19:11:01 Yeah well I can't stand mc either and I like Gentoo the distro. 19:11:17 gentoo is an X11 application that virtually duplicates the two-paned file managers of Amiga fame. DirectoryOpus especially. 19:11:43 kc5tja: what is it like? scrshot url? why is it better than mc? is it text based at all? 19:11:57 onetom: I just said, "It's an X11 application that..." ;D 19:12:14 ah, amiga.. 19:12:37 http://www.obsession.se/gentoo/ 19:13:28 I use the ls/cp/mv/rm file manager. 19:13:30 My only problem with gentoo is that it is mouse only, and its user interface is a bit awkward (e.g., the left and right-hand panes have different locations for the scroll bars, etc) 19:13:41 warpzero: Sometimes, those are just plain too slow to use. 19:14:06 kc5tja: ? 19:14:28 When you have to manage gigabytes worth of files, all mashed in a single directory, ls/cp/mv/rm/etc are a pain in the ass to use. 19:14:35 Wildcards are often inadequate. 19:14:36 http://cab.bio.u-szeged.hu/~tom/linxp.png 19:14:49 (especially since bash lacks a not wildcard, something I truely miss from AmigaOS. :( ) 19:15:02 http://cab.bio.u-szeged.hu/~tom/icent.png 19:15:23 Then I use perl. 19:16:04 In the time it takes you to write your Perl script, then debug it, I could have pointed to a whole range of files, and clicked on a button to do what I need done. 19:16:08 End of story. 19:16:15 Look 19:16:15 Yeh. 19:16:26 I'm not saying that Point-n-Click interfaces are the end-all to UIs. 19:16:33 I'm just saying that sometimes, sometimes, they're useful. 19:16:46 kc5tja: thats u... not us >;p -- tho i use awk 19:16:50 Man, I really hate it when people totally take me out of context. 19:16:58 By the time you get all used to that you end up on a server that you can't run a gui and you don't know how to do it because your so used to your goooyes and you're screwed. 19:17:06 but anyway, im dreaming about a colored shell... 19:17:29 warpzero: Sorry, sir, but I grew up on computers that didn't even know what graphics modes were. 19:17:37 I can assure you that I'm quite fluent and capable in such environments. 19:17:53 like color4th imean 19:17:55 But on a machine that does have them, I have no reservations with using it. 19:18:08 I just don't feel comfortable using them 19:18:23 If you want to ignore your computer's intrinsic capabilities, why do you even have such a computer? 19:18:26 Becuase I feel like I don't know if its going to do something wierd. 19:18:47 warpzero: there is such a thing as reliable software 19:18:57 Well, that's why you download, play, and if you don't like it, move on. 19:19:03 warpzero: though I have developed some phobias to GUIs myself 19:19:04 I mean, sheesh. It's not rocket science. 19:19:31 Yeah I could. 19:19:38 That's like saying, "I don't like screwdrivers because I'm never sure whether it'll slip out of the screw or not," completing ignoring the fact that Torx and Philips are immune to such problems. 19:19:38 Or I could use mv, ls, cp and rm/ 19:20:15 GUIs are tools. And it is as a tool that I use them. 19:20:55 Then you can spend the hours needed to write/debug Perl to work on your directory trees. 19:21:16 uh... 19:21:24 Hardly. 19:21:52 perl -le'' 19:22:14 You're right. Because when you get that odd .tar.gz file that doesn't expand into its own directory, and it thrashes the current directory with hundreds of files, none of which can be adequately handled with a convenient wildcard, then yeah, you won't be able to write a Perl script to cover that. 19:22:21 I normally use the terminal (ls, cd, mv, etc.) but I have had cases where it was much more cumbersome than A good GUI. 19:22:47 kc5tja: just filter on timestamp 19:23:23 Oh, and, I hate it when that happens. 19:23:27 warpzero: Again, not always convenient to do. tar preserves timestamps, for example. 19:23:32 kc5tja: do you have a gui that stops tar from doing this, or can select these files? 19:23:49 Yeah, really. 19:23:49 Herkamire: I use gentoo to select the files then move them into their own directory. 19:24:02 kc5tja: 19:24:11 I just hit ls and type mv and then 19:24:24 warpzero: Bull. You ahve to type a whole freaking lot more than that. 19:24:30 'select' the files. 19:24:40 I've been administering Unix boxes for at least ten years. I am not completely a dunce in this. 19:24:44 warpzero: you'd have to do something like: mv `tar -tzf ___.tar.gz` folder 19:24:46 kc5tja: With tab completion... not really. 19:25:00 warpzero: and hope that the file list isn't too big for bash's parameter expansion buffer 19:25:21 warpzero: Tab completion is useless when files follow no discernable pattern. 19:25:25 Herkamire: ... Yeah but faster than kc5tja's method. 19:25:32 If they DID follow a pattern, I'd use wildcards, obviosuly 19:25:34 obviously even 19:25:40 Not that I really want to add fuel, but what's wrong with: tar -tzf bar.tar.bz > 666.sh; vim 666.sh (%s/^/mv /^M %s/$/ /argh/^M); chmod +x 666.sh; sh 666.sh; 19:25:42 kc5tja: Uhhh... 19:26:11 skylan: Because you have to do it all before hand. 19:26:40 [14:12:11] warpzero: Tab completion is useless when files follow no discernable pattern. <--- what 19:26:43 skylan: It takes forethought, and if I'm going to go through that trouble, I'd just expand the .tgz file in its own directory, like this ( mkdir foo; cd foo; tar xvzf ../foo-1.0.tar.gz ) 19:27:08 warpzero: That statement is sufficiently self-evident as to not require further explanation. 19:27:14 ok, let's stop coming up with wierd situatons, and concede that there are (or at least that there probably are) situations where gentoo would be quicker than cmd line. 19:27:14 Look through /bin for an example. 19:27:19 NONE of the files have a consistent name. 19:27:27 So? 19:27:29 kc5tja never said that gentoo is beter always, or even that he uses it all the time. 19:27:33 warpzero: So? 19:27:46 Stop changing the argument. 19:27:46 skylan: another thing that's wrong with your approach is that you have to visualize how it would go and whether it would work in all cases...tricky with tar methinks 19:27:56 I'm just saying that if you can regonize the files by name its just as fast to tab compete them than click on them. 19:28:24 kc5tja: Hrm.. okay; that's what I'd do if the tarball blew its contents all over a directory, though--since the filenames are all generated from the source, and I get the opportunity to check over the shell-script before I execute.. 19:28:30 warpzero: No, I have to disagree. I type 90wpm and I know that isn't true for me. 19:28:44 kc5tja: Well then you must be a god with the mouse. 19:28:45 There's manual intervention in there... 19:28:51 warpzero: It only takes practice. 19:29:01 And patience. 19:29:05 And an open mind. 19:29:22 I don't discount the GUI concept just because It's A Gooey. 19:30:09 Whatever mister mouse god. 19:30:19 warpzero: chill 19:30:25 * kc5tja shrugs -- and you wonder why people think you're a goofball. 19:30:39 * TheBlueWizard is of an opinion that quotidient tasks and activities should be, well, simple 19:31:56 TheBlueWizard: quotidient? http://www.m-w.com does not have it in its database. 19:33:21 I used to use www.m-w.com 19:33:28 but I got sick of waiting for their page to load 19:33:38 Hmm ... it loads fast enough for my tastes. 19:33:40 What do you use now? 19:33:47 dict 19:33:53 hehe 19:34:05 I haven't even looked at what dictionaries it looks stuff up in 19:34:17 I don't even have dict. 19:34:37 How do you INSTALL dict? 19:35:02 looks like m-w is much faster than when I used it. 19:35:27 Or are you referring to dict.com 19:35:28 ? 19:35:47 (which also does not have that word) 19:35:53 s/quotidien/quotidian/ 19:36:03 warpzero: me? emerge dictd see http://www.dict.org/ 19:36:04 TheBlueWizard: Thanks. 19:36:19 definition: EVERYDAY 19:36:24 skylan: tar tzf xxx.tar.gz | sed -e 's/^/mv /;s/$/ dest/' | sh 19:36:41 I suppose an emerge -s dict would've helped. 19:36:52 onetom: what about using xargs? 19:36:52 I like to exercise my vocabulary muscle :) 19:37:02 warpzero: thats a crap 19:37:16 onetom: Hrm, your munging is superior (thanks!), but I'd want to at least look at it before I just sent them willy-nilly. :) 19:37:24 eek 19:37:27 back for a few seconds 19:37:41 Wow. OK, new word for me. :) 19:37:41 kc5tja: gentoo is basically a more advanced MC... 19:37:54 chrisrw: I find it to be much easier to use. 19:38:02 warpzero: mainly w "realworld" filename containing chars what would require escaping... 19:38:11 But remember, I came from the Amiga community, so I guess that's to be expected. 19:38:47 skylan: than say |less 1st - like me ;) - and just then |sh 19:38:51 xffm is the best gooey one I think I've used. 19:40:05 clear 19:40:08 gah 19:40:18 IRC clients should know when I mean /clear or not. :) 19:40:28 anyway, bbiab. Food. 19:41:22 onetom: Excellent suggestion..but I'm a little paranoid, and want something I can look at and say "okay, this is what happened, what went wrong?" with. 19:41:41 skylan: |sh -x ? ;) 19:42:15 * skylan man-s to find the meaning 19:42:45 --- join: kc5tja_ (~kc5tja@66-91-231-74.san.rr.com) joined #forth 19:43:01 kc5tja: directoropus eats up a lot of desktopspace... :/ but if u prefer 2use the mouse its not a problem, coz u cant really get rid of it 19:43:13 Interesting, I'll have to remember that. 19:43:29 it usually doesnot worth 2 get rid of those buttons, imena 19:43:32 mean 19:44:07 skylan: yeah, its a worth2remember option 19:45:19 gnite 19:45:32 Night. 19:45:38 (and thanks) 19:45:58 ur welcome 19:46:32 bye onetom 19:48:44 terve tbw! 19:48:58 hiya mur! :) 19:50:09 6 am :) 19:50:11 can't get sleep 19:50:22 i ate nightfast already 19:50:49 * TheBlueWizard smiles at the word "nightfast" 19:51:11 :) that is good. I read it as "breakfast" 19:51:14 I assume you mean to say you snacked already, right? 19:51:23 back 19:51:27 I call it "midnight snack" even when mealsized 19:51:38 --- quit: kc5tja (Nick collision from services.) 19:51:41 --- nick: kc5tja_ -> kc5tja 19:51:47 --- mode: ChanServ set +o kc5tja 19:52:08 "lunch, dinner, midnight snack" always seemed to me to be an odd naming scheme for the three meals of the day 19:52:18 mur: is it because you were too excited, or what? 19:52:25 * kc5tja needs to eat again in a couple of hours, so I can take my antibiotics pills. 19:52:50 kc5tja: having problems with biotics? 19:53:09 --- quit: kc5tja (Nick collision from services.) 19:53:19 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 19:53:19 --- mode: ChanServ set +o kc5tja 19:53:26 i was depressed in meaning of pressed 19:53:28 We're getting brown outs. 19:53:32 got enough of irc 19:53:36 felt pressuring 19:53:42 but now the finnish cahnnels are sleeping 19:53:45 i can come back ;) 19:53:51 got lots of ideas 19:53:59 i was goign sleep (2 times already) 19:54:11 but then i started enjoying the night athmospehere 19:54:16 kc5tja: you get brownouts much? 19:54:18 longing for something to do 19:54:21 Herkamire: No. 19:54:28 like going around in some metropol 19:54:29 ah you sound like you are a night owl already :) 19:54:31 But I'm thinking that's why I'm constantly being disconnected. 19:55:29 We have a lot of rain, and a *LOT* of wind right now. 19:56:55 TheBlueWizard: my imagination always works at night 19:57:16 i have got enough of stupid monoculture 19:57:22 i want to do differently 19:57:26 just for that sake 19:57:32 the adv ertises are very simple 19:57:49 to read, i have learned to read visuals in few months only 19:58:02 * TheBlueWizard wonders what "monoculture" mur is talking about 19:58:23 western culture 19:58:36 everything must be standardised, work like everywhere else 19:58:55 commecial culture is thin and short span 19:59:05 everything is made for common intelligent factor 19:59:24 i have explorer subcultures of music a bit recently 19:59:45 argh 19:59:51 i'm sorry TheBlueWizard 19:59:51 I see 19:59:55 :( 20:00:09 i never talk about audio, but you inspire me to talk about them 20:00:11 there are subcultures, sure 20:00:19 that's perfectly ok 20:00:27 this made me sad 20:00:32 why? 20:00:54 well i thought you might be sad 20:01:22 i found IDM, it is "intelligent dance music" 20:01:29 it is unlike anything else 20:01:45 i try explaianing it a bit 20:01:55 if normal music is a photo 20:01:57 no I am not sad 20:02:17 this would be like making a whole picture of sequences of parts of it 20:02:43 like repeating horizontal scan of mouth for 10 times with different cuts to form the whole picture 20:03:08 ambient music, which aims to create moods, could be just plain colours with gradients 20:03:11 hmm 20:03:19 IDM has historical backgrounds to ambient 20:04:01 if normal audio is "This is audiomusic" 20:04:14 ambient woudl be "thhhhhhhhiiiiiiii" 20:04:41 and idm woudl be "ThTThiThisThTTTThiauauau" 20:04:44 um..are you saying the speech would be made using pich only? 20:04:51 pich? 20:04:53 oh never mind 20:04:57 pitch 20:04:58 pitch 20:05:21 IDM is a bit experimental 20:05:26 very subcultural i assume 20:05:32 * TheBlueWizard can see that :) 20:05:39 * kc5tja likes avante guarde jazz. 20:06:00 That's best described as "@(#*$EF kc5tja: avant garde is the correct spelling, fyi 20:06:18 i am talking about my ideals of music 20:06:27 in my ideal, ambient is very aesthetic 20:06:40 while IDM repeats patterns of reality to form the reality itself 20:06:48 mur: I love ambience in music. I wouldn't listen to Pink Floyd or Genesis otherwise. :) 20:06:56 while it is only part of reality, where A + A + A = ABCD 20:06:56 ideal? hmm....I wasn't aware one would have some ideals of music 20:07:12 well 20:07:18 theoretical ideal of music 20:07:22 like in everything 20:07:44 the supermatism might describe ambient 20:07:53 from the painting genres 20:07:56 a bit 20:09:57 .... 20:10:10 TheBlueWizard: do you understand what i say? 20:10:25 um...not really...sorry 20:11:54 I don't think there can be an ideal in an expression of art. 20:11:57 Art just is. 20:12:14 i ate some plum dessert, cheese and grape salad and rye bread with margarine and milk after that 20:12:21 and read a bit of one book 20:12:29 hey kc5tja? 20:12:33 2 questions 20:12:38 well you must understand i think very theoretically sometimes 20:12:43 1) do people call you "samuel" or just "sam"? 20:12:53 2) how does CUT work? I intend to use it. 20:12:57 :) 20:13:09 mur: :) 20:13:16 i mean the absolute ideas of something 20:13:29 in my absolute idea supermatism is only one colour 20:14:09 mur: heh....well, I *often* think very theoretically...only that it consists of something in math, comp sci/programming or physics...and languages (both human and computers) 20:14:55 the first and most famous supermatism painting is "black rectangle on black background", even it might sound stupid, it's one of the first abstraction paintings, painted in sovietunion, price is many millions (20?) and it was considered such big treasure, that govt. cancelled its selling even it was private owner's collections. 20:14:57 chrisrw: CUT works by parsing the set of C files you feed it, looking for specific phrases of text that it uses to know which functions are unit tests. 20:15:18 chrisrw: It then builds a test runner program source (also a C file), which you must compile and link against your unit tests to get them to run. 20:15:48 TheBlueWizard: i have concentrated my thinking to understanding society and humanity. i find those most demanding tasks to understand, maybe thus. 20:15:49 hrm nreat 20:15:50 examplke? 20:15:52 chrisrw: As far as my preference of name, either Samuel or Sam will work. 20:16:07 kc5tja: :)) 20:16:11 chrisrw: I have samples included in the CUT distribution. 20:16:16 TheBlueWizard: do you want some interesting subcultural links? 20:16:20 ok, lemme take a look at them :) 20:16:31 btw, what did sf.net do to piss you off so much? 20:16:49 Note the lack of content on my cut.sourceforge.net page? 20:17:50 Now consider the fact that I used to have over 20 pages worth of material on the site. 20:17:54 Gone. All gone. 20:18:23 In less than one second, someone, somewhere, at sf.net decided to let loose a program which traversed the directory tree of their web server, happily deleting any file that it had permission to access. 20:18:26 mur: sure 20:18:31 TheBlueWizard: http://www.detritus.net/ detritus is concentrated on recycled culture. it is fairly peaceful, even it does not follow the whole legistimation. 20:18:36 Which, unfortunately, and by necessity, included my Wiki page data. 20:18:41 i have some more if i find 20:18:56 And the asshole fucktards for sysadmins refuse to take responsibility for their mistake. 20:19:13 kc5tja: ! 20:19:17 !!! 20:19:22 wow 20:19:26 arent there backups or such? 20:19:32 They have backups. 20:19:39 They refuse to reinstate the system. 20:19:39 ... 20:19:43 .... 20:19:44 kc5tja: how could they take responsibility? or do you mean blame? 20:19:45 WHY!? 20:20:55 bastards.' 20:21:05 Herkamire: Well, for starters, they could admit that they made a mistake, and offer to restore project websites. 20:21:13 TheBlueWizard: http://opsound.org/ is fully legal, it is open source of audio (as knwon record companies have more rights over copyright and stricter guarding than any other area) 20:21:25 i just think that the idea is very nice 20:21:40 to have audio parts and whole songs that are opensource or publicdomain 20:21:48 as such audio does not really exist 20:21:54 open source songs? lol 20:23:00 good audiosniplets even 20:23:22 http://www.guimp.com/ this just has interesting idea. everythign is fit to 20x20 pixels sized rectangle. 20:24:23 http://mjt.nysv.org/humor/yoda.jpg and http://mjt.nysv.org/humor/signals.jpg 20:24:29 i'll try googling for the one file 20:25:35 chrisrw: hey, open source song is an interesting idea...it *invites* you to hack it :) 20:27:03 found it 20:27:17 :)) 20:27:24 http://www.sniggle.net/index.php might not be something everyone want to read, but it certainly is interesting 20:27:44 ugggin moo 20:29:45 I'm liking xfce very much, but it doesnt seem very integratable with my distro 20:29:48 * TheBlueWizard grins re: http://mjt.nysv.org/humor/signals.jpg 20:29:50 aaarghhh 20:31:05 and http://www.nassio.com/sven/links/index-flat.php is a whole lot of all interesting links. what i might find worth examing are rtmark (1st section), adbusters (3rd), billboard liberation front (3), Illegal art (3), and many more seem quite worth browsing through 20:31:12 is/has 20:31:58 OOPS, it'd be nice if I set my data stack pointer, wouldn't it? 20:32:03 but i think i try sleeping soon 20:32:05 again 20:32:08 * kc5tja is wondering why his FS/Forth code is crashing. :) 20:33:11 mur: ok...good luck with sleeping then 20:33:33 yeah 20:33:38 cya soon 20:34:09 http://www.dnalounge.com/backstage/atm/ < check this :) 20:35:43 ARGH 20:35:49 something is blocking my damn sound card 20:36:20 gn now 20:36:21 -- 20:36:48 --- join: Mujin (~Steve@adsl-67-37-224-161.dsl.chcgil.ameritech.net) joined #forth 20:37:16 YAY! I got FS/Forth to invoke a Linux system call correctly!! :D 20:37:26 (namely, 'sys_exit' :) ) 20:37:58 60 list Screen 60 not modified 20:37:58 0 ( FS/Forth for Linux :: Root Block ) 20:37:58 1 20:37:58 2 256 allot here : sp0 [ $be c, , \\] ; 20:37:58 3 20:37:58 4 : syscall [ $56 c, $8b c, $1e c, $8b c, $4e c, $04 c, $8b c, 20:38:00 5 $56 c, $08 c, $8b c, $7e c, $10 c, $8b c, $6e c, $14 c, 20:38:03 6 $8b c, $76 c, $0c c, $cd c, $80 c, $5e c, $89 c, $56 c, 20:38:05 7 $14 c, $81 c, $c6 c, $14 , \\] ; 20:38:07 8 20:38:09 9 : bye [entry-point] sp0 0 0 0 0 0 0 1 syscall ; 20:38:11 Lines 10-15 are blank. 20:38:35 yay! :)) 20:39:01 congrats :) 20:39:24 I wouldn't exactly call this stuff high-level Forth though, of course. 20:39:35 lol 20:39:44 hehe...a lot of hex chicken scratches 20:39:47 But it is unquestionably Forth. 20:39:53 ::)) 20:40:01 x86 code to invoke a Linux system call. 20:40:11 * TheBlueWizard nods 20:40:17 syscall ( ebp edi esi edx ecx ebx eax -- edx' eax' ) 20:41:19 Then sp0 is used to reset the data stack pointer (the ESI register) 20:42:40 The method I'm using to set it is definitely a dirty hack though. 20:44:10 hey kc5tja? 20:44:12 erm 20:44:15 lol 20:44:26 just curious ... why esi for data? 20:44:38 (i hope you're using esp for rstack :) ) 20:45:08 Obviously, I'm using ESP for rstack. 20:45:13 It's native code compiling, remember? 20:45:23 I'm using ESI because, well, because. 20:45:35 I was drunk one night, and it seemed like a good idea at the time . . . 20:45:52 lol 20:46:12 if intel had a neat way to synchronize ESI and EDI, i would be very happy 20:46:17 I may change it at a later time, but for now, it seems like as good a register as any I could choose. 20:46:52 Certainly using ESI for the 'A' register would be an idea, but really, LODSD instruction takes more time to execute than MOV EAX,[EDI]; ADD EDI,4, so even that argument doesn't hold water anymore. 20:47:13 A? 20:47:21 (its been a while since ive read "moving forth") 20:47:33 TOTALLY wrong source of information for information on A. 20:47:59 The A register is a MachineForth concept designed to make implementing simple, yet still native code, Forth compilers easier on underlying hardware. 20:48:11 : @ A! @A ; 20:48:31 Here, A! is used to set the address register to the address desired, and @A is used to fetch from the location stored in A. 20:48:43 oh 20:48:45 Ordinarily, this isn't terribly all that efficient. But it does allow us to do this: 20:48:45 neat 20:48:47 very very neat 20:48:57 : ReadQuickBuffer A! @A+ @A+ @A+ @A+ ; 20:49:09 where @A+ is a post-incrementing version of @A, which most CPUs (except Intel) has. 20:49:12 Or, at least, has for free. 20:49:18 :) 20:49:47 I suppose many RISC processors also lack a post-increment operation as well. 20:50:45 * kc5tja will implement @ in a more traditional manner, but ! has to be implemented using an A-register, because otherwise the implementation isn't nearly as clean. 20:51:37 @ is mov eax,[eax] in FS/Forth, while ! must be something along the lines of mov edi,eax; mov eax,[esi]; add esi,4; mov [edi],eax; mov eax,[esi]; add esi,4 20:52:29 I could optimize it to just mov edi,[esi]; mov [eax],edi; mov eax,[esi+4]; add esi,8, but still, I save only one instruction doing so. 20:52:45 OK, two instructions. I can't count. 20:54:28 : ! A! !A ; 20:54:34 Right. 20:55:18 do you have TOS? 20:55:22 EAX 20:55:29 and EDI is A? 20:55:55 ( i like this A concept ... i think I'll be using it :)) 20:56:04 Yeah. 20:56:17 That's what I was thinking of using it for. 20:56:29 Either that or EDX, since I can also use the I/O instructions with it. 20:56:49 (I/O instructions can input or output only to a port specified as an immediate value, or in the DX register) 20:57:28 OK, at this point, I need to figure out how best to set the stack pointers of a word. 20:57:48 * kc5tja needs to dynamically query the value of ESP, which is easy enough to do. But ESI needs to be hardcoded somehow. 20:58:03 dump? :)) 20:58:06 er 20:58:07 brk 20:58:09 yeah 20:58:12 sys_brk() 20:58:13 ?? 20:58:15 then start at the end 20:58:22 and go down 20:58:26 No. 20:58:44 That solution won't be satisfactory for when I start mapping in shared libraries. 20:59:01 * kc5tja is probably going to allocate the data stack on the return stack itself. 20:59:07 mov esi,esp 20:59:21 sub esp,4096 20:59:46 (this fixes the data stack at 4096 bytes, which ought to be enough for anyone; meanwhile, the return stack can grow indefinitely, as per Linux's normal rules) 20:59:52 that leaves 1024 rstack cells. 21:00:02 No, that leaves 1024 data stack cells. 21:00:08 The return stack is open ended 21:00:08 !!? 21:00:22 Stacks grow *down* in memory, remember? 21:00:28 yeah!? 21:00:30 (well, hardware stacks do) 21:00:35 er 21:00:36 oh 21:00:38 ok, i get it 21:00:38 lol 21:00:41 :)) 21:00:49 And my software data stack also grows down too. 21:01:10 why not one up one down? 21:01:53 Because it offers no signficant advantages. 21:02:38 In fact, one could say the grow-down stack offers a nice advantage in that I can use the r-stack to contain the d-stack. 21:05:17 --- join: ayrnieu (irc@206.61.132.94) joined #forth 21:06:33 :) 21:07:34 gotta go...bye all! 21:07:39 laters TheBlueWizard 21:07:47 bye kc5tja 21:07:58 bye 21:08:10 hrm 21:08:18 bye chandler 21:08:19 ree and I had a big "flamewar 21:08:20 oops 21:08:23 " yesterday 21:08:24 bye chrisrw 21:08:32 :)) 21:08:39 * TheBlueWizard pauses 21:08:43 flamewar? 21:08:54 heh yeah 21:09:04 he said win 3.x was an OS 21:09:08 and I said it wasnt. 21:09:17 then again, I'm kinda weird :)) 21:09:20 ah...heh 21:09:28 Windows 3.x is an OS only when you include DOS. 21:09:32 it is a chimera...nuff said :) 21:09:34 Windows 3.x, on its own, is not an OS. 21:09:38 Neither, interestingly, is DOS. :) 21:09:55 TheBlueWizard: What would you rather deal with: Windows 3.1 or WIndows XP? 21:09:59 I know what *I* would choose... 21:10:23 ugh...I don't like either at all 21:10:35 heh 21:10:44 Windows 3.x is no OS at all because its not on its own 21:10:47 Windows 3.1 isn't that bad all things considered. Sure, it's shoddy, but XP is . . . far worse. :) 21:10:48 colorforth is an OS 21:10:54 DOS is too 21:10:56 but windows 3.x isnt 21:11:03 XP is massive bloat 21:11:05 DOS isn't an OS because it doesn't manage all resources. Only disk resources. 21:11:07 if I *must* pick among the Win OSes by M$, I'd pick Win2000 21:11:12 YES. 21:11:21 win2k is good. 21:11:23 :) 21:11:26 Windows 2000 is definitely my favorite of all the Windows bastar...er...implementations. 21:11:27 kc5tja: ... 21:11:35 but Win2000 is kinda a pain to maintain security wise 21:11:38 kc5tja: it doesnt have to manage all resources 21:11:50 kc5tja: that would mean linux isnt an os because it doesnt handle camera X 21:11:58 but better than NT 4 21:12:23 I'm talking primitive resources. 21:12:28 anyway, gotta go for real 21:12:30 Things like disk blocks, memory, interrupts, etc. 21:12:38 --- part: TheBlueWizard left #forth 21:13:30 ... 21:13:43 DOS stands on its own, and provides stuff for subprocesses. 21:13:45 thus, its an OS 21:14:03 Colorforth stands on its own and provides stuff for its "subprocesses" 21:14:08 thus, its an OS 21:14:39 What 'stuff' does DOS provide? 21:14:47 All non-NT-based windows OSes run a (however bastardized) version of DOS. 21:14:50 It doesn't provide task support, that's for sure. 21:14:54 Thus, they are not OSes in my mind. 21:14:56 It doesn't provide true memory management. 21:15:09 No. So? 21:15:14 I know for a fact it doesn't provide interrupt management. 21:15:25 so? 21:15:27 So? 21:15:33 it provides file/console stuff. 21:15:35 The list of 'stuff' it provides is getting noticably thin. :) 21:15:38 so, it provides 21:15:43 and it allows running sub programs 21:15:47 thus, its an OS 21:15:54 I don't think that defines an OS. 21:15:57 its thin, but it does provide :) 21:15:59 I do. 21:16:01 :) 21:16:24 "Software designed to control the hardware of a specific data-processing system in order to allow users and application programs to make use of it." 21:16:45 sounds like DOS to me. 21:17:02 just because it doesnt control EVERY hardware doesnt mean its not an OS. 21:17:19 "software that controls the execution of computer programs and may provide various services" 21:17:29 sounds like DOS once again. 21:17:36 Also sounds a lot like Windows. 21:17:37 .EXE and .COM and .BAT 21:17:40 hah 21:17:43 Windows, yes 21:17:45 why? 21:17:55 There is no requirement that says it must be self-standing, in the two previous definitions. 21:17:57 because the non-nt ones run on DOS :)) 21:18:05 No, actually, they don't. 21:18:13 well, its a definition i made for myself. 21:18:15 That's like saying ColorForth runs "on DOS" because it uses DOS as a makeshift bootloader. 21:18:19 well, winme doesnt. 21:18:27 Or Linux, for that matter, because I use it to boot Linux. 21:18:42 heh, using DOS to boot linux? 21:18:46 Yes 21:18:52 Because I do not place my faith in Lilo. 21:18:58 I've had bad, bad, bad experiences with Lilo in the past. 21:19:00 use grub. 21:19:04 it works like a charm. 21:19:11 although i have never had probs with lilo... 21:19:20 Yeah, except you require a post-doctorate degree to use it. 21:19:54 Besides, grub doesn't come "out of the box" with any distro except for gentoo. 21:20:18 ... 21:20:23 SuSE? 21:20:27 You know, this is the sixth "Quarterly Stock Alert" e-mail I've gotten TODAY ALONE. Economic quarters must be flying by. 21:20:33 redhat >= 7.2? 21:20:48 The redhat 8.0 system I used used lilo. 21:21:04 hrm, RH9 uses grub, as does RH 7.2 and 7.3 21:21:10 RH 7.0 uses lilo tho 21:21:19 and all the suses ive ever used used grub :) 21:21:41 Hmmm...that's funny, because every distro I've used in RedHat, up to and including RH8 (which includes 7.2/7.3) all used Lilo. 21:21:42 :) 21:21:52 ... 21:21:53 odd 21:21:58 i guess its a choice :) 21:21:59 Are you sure it's not some kind of "Advanced user configuration option" or something? 21:22:09 must be a choice then. 21:22:22 but SuSE at least >= 8 uses grub standard 21:22:24 * kc5tja admits he never used SuSE though. 21:22:48 Anyway 21:23:01 All I know is that I need to get FS/Forth calling Linux kernel directly. 21:23:12 Which I did do, but I need to get the stacks initialized before I can write any serious software. 21:23:26 windows 9x still isnt an OS in my mind :)) 21:24:37 hmmm 21:24:56 Any consensus on what the word to reset the stack pointers is called? 21:24:58 installing xfce4, yay 21:25:07 sp0 and rp0 21:25:10 * kc5tja isn't sure if sp0 is a numerical constant in most Forths or an actual verb that restores the stacks. 21:25:21 hrm. 21:25:35 its a constant in isforth 21:25:39 * kc5tja is pretty sure that sp0 is a constant; depth relies on it, I think. 21:25:51 It's a constant in gforth too. 21:25:56 : depth sp0 sp@ - 2/ 2/ ; 21:26:04 yeah, so go with the constant :) 21:26:15 Yeah, so I need a good verb name to let the application reset the stacks with. 21:26:56 Well, I can't do that because the stack addresses are going to change from Linux to Linux. 21:27:08 Remember I set ESI based on the value of ESP. :) 21:27:32 hrm. 21:27:37 thats easy. 21:27:43 part of the boot code. 21:27:46 :) 21:31:33 --- part: Mujin left #forth 21:33:57 ooh, xfce4 is way pretty 21:35:58 * kc5tja nods 21:36:04 * kc5tja never did like xfce. 21:36:12 It looks too ... too ... Windowsy for me. 21:36:14 yay, i finally found a good window manager :)) 21:36:22 windowsy!? :) 21:36:35 its not very windowsy at all, ya know? 21:40:55 Hmm...it's changed a lot since I last looked at it. 21:41:27 * chrisrw nods 21:41:33 they rewrote completely from 3 to 4 21:41:38 and I LOVE ITT!!!! 21:42:06 and now i need to find out what the hell is blocking my sound card 21:43:14 well, i guess I'll just go for an (involuntary) reboot 21:43:15 :)) 21:43:49 hmmm 21:44:01 or not. 21:44:04 aack 21:44:04 Sound drivers loaded as modules? 21:44:05 :) 21:44:10 i believe so. 21:45:20 hrm 21:45:24 whats the normal sound module? 21:46:56 soundcore is required for all other sound odules 21:47:31 chris:~ # rmmod soundcore 21:47:31 soundcore: Device or resource busy 21:47:31 chris:~ # 21:47:31 chris:~ # rmmod soundcore 21:47:31 soundcore: Device or resource busy 21:47:34 chris:~ # 21:47:47 oops, only wanted to paste that once :) 21:48:02 lsmod 21:48:45 Hmm...I never thought taking medication would taste this good. 21:49:15 Two peanut butter and jelly sandwiches, and one Ciprodoxycycline antibiotic pill, 500mg. Just like Mom used to make. ;) 21:49:38 ;) 21:49:44 snd-via82xx 16064 4 21:49:44 snd-pcm 74116 0 [snd-pcm-oss snd-via82xx] 21:49:44 snd-timer 17056 0 [snd-seq snd-pcm] 21:49:44 snd-ac97-codec 45304 0 [snd-via82xx] 21:49:44 snd-page-alloc 6676 0 [snd-via82xx snd-pcm] 21:49:46 snd-mpu401-uart 4128 0 [snd-via82xx] 21:49:49 snd-via82xx 16064 4 21:49:51 snd-pcm 74116 0 [snd-pcm-oss snd-via82xx] 21:49:54 snd-timer 17056 0 [snd-seq snd-pcm] 21:49:56 snd-ac97-codec 45304 0 [snd-via82xx] 21:49:59 snd-page-alloc 6676 0 [snd-via82xx snd-pcm] 21:50:02 snd-mpu401-uart 4128 0 [snd-via82xx] 21:50:04 dammit, pasted twice again 21:50:06 snd-seq-oss 30048 0 (autoclean) 21:50:09 snd-seq-midi-event 3840 0 (autoclean) [snd-seq-oss] 21:50:11 snd-pcm-oss 49344 4 (autoclean) 21:50:14 snd-seq 41424 2 (autoclean) [snd-seq-oss snd-seq-midi-event] 21:50:16 snd-mixer-oss 15576 0 (autoclean) [snd-pcm-oss] 21:50:19 thats the sound stuff. 21:50:24 er.., and i probably should have /msg'ed that. I apologize. 21:50:36 which reminds me, I need to switch clients. 21:50:44 Holy Criminey!!!! 21:50:48 --- nick: chrisrw -> christmp 21:50:52 You have a *TON* of stuff in your listing that I don't have. 21:51:04 thats because you're a slacker :) 21:51:16 Even my Debian installation doesn't have that. 21:51:19 SuSE tends to load lots of stuff. 21:51:21 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 21:51:24 dont really know why. 21:51:25 --- quit: christmp ("leaving") 21:51:35 its quite odd 21:51:45 oooh 21:51:52 how i loooove xfce 21:53:09 Man, I am sorry; I can't help with that many modules all somehow expected to work together. :D 21:55:00 :D 21:55:12 well, I guess I'll just randomly rmmod stuff until it works 21:55:23 THATS a fun thing to do, eh? 21:56:02 Heh 21:56:48 chris:~ # rmmod snd-via82xx 21:56:48 snd-via82xx: Device or resource busy 21:56:50 uuugh 21:56:52 :) 21:57:09 i think its something thats running thats blocking it. 21:58:13 can i /msg you my ps ax output? I was looking through it, but I couldnt find anything... 21:58:20 Sure. 21:58:25 thanks 21:58:50 Aagh. I love Chopin, but not when the same song is played 15 times in a row!! 21:59:00 must . . . play . . . pink . . . floyd! 22:04:25 :) 22:04:27 * chrisrw is a red hot chili peppers fan 22:04:29 * chrisrw needs it 22:04:31 thats why im trying to get my sound to work... 22:06:10 ugh 22:13:13 --- quit: chrisrw ("brb") 22:14:06 --- quit: Herkamire ("bedtime for me") 22:16:50 --- join: Serg (Serg_Pengu@212.34.52.140) joined #forth 22:18:01 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 22:19:10 oddness. 22:19:17 sound works, but its not as loud as it usually is. 22:19:29 as in, i have to have the speaker AND xmms all the way up. 22:20:30 and this makes it distorted, of course. 22:20:31 dammit. 22:22:47 hmm 22:23:30 YEEHAA! 22:23:44 FS/Forth Hello World? 22:23:45 FS/Forth now properly sets stack pointers without the dirty hack. 22:23:55 I may now safely write Hello World. :) 22:24:50 :) 22:24:54 and i fixed my thing too 22:25:02 just started up kmix, and turned it up. 22:25:05 :) 22:25:41 And now, I shall find a way to integrate the SuSE menu into xfce 22:25:41 08000048 <.text+0x14>: 22:25:41 8000048: 56 push %esi 22:25:41 8000049: 8b 1e mov (%esi),%ebx 22:25:41 800004b: 8b 4e 04 mov 0x4(%esi),%ecx 22:25:41 800004e: 8b 56 08 mov 0x8(%esi),%edx 22:25:42 8000051: 8b 7e 10 mov 0x10(%esi),%edi 22:25:44 8000054: 8b 6e 14 mov 0x14(%esi),%ebp 22:25:46 8000057: 8b 76 0c mov 0xc(%esi),%esi 22:25:48 800005a: cd 80 int $0x80 22:25:50 800005c: 5e pop %esi 22:25:54 800005d: 89 56 14 mov %edx,0x14(%esi) 22:25:56 8000060: 81 c6 14 00 00 00 add $0x14,%esi 22:25:58 8000066: c3 ret 22:26:00 8000067: 89 e6 mov %esp,%esi 22:26:02 8000069: 89 35 34 00 00 08 mov %esi,0x8000034 22:26:04 800006f: 89 35 34 00 00 08 mov %esi,0x8000034 22:26:06 8000075: 8d a6 00 f0 ff ff lea 0xfffff000(%esi),%esp 22:26:08 800007b: 89 46 fc mov %eax,0xfffffffc(%esi) 22:26:10 800007e: 8d 76 fc lea 0xfffffffc(%esi),%esi 22:26:12 8000081: b8 00 00 00 00 mov $0x0,%eax 22:26:14 8000086: 89 46 fc mov %eax,0xfffffffc(%esi) 22:26:16 8000089: 8d 76 fc lea 0xfffffffc(%esi),%esi 22:26:18 800008c: b8 00 00 00 00 mov $0x0,%eax 22:26:20 8000091: 89 46 fc mov %eax,0xfffffffc(%esi) 22:26:24 8000094: 8d 76 fc lea 0xfffffffc(%esi),%esi 22:26:26 8000097: b8 00 00 00 00 mov $0x0,%eax 22:26:28 800009c: 89 46 fc mov %eax,0xfffffffc(%esi) 22:26:30 800009f: 8d 76 fc lea 0xfffffffc(%esi),%esi 22:26:32 80000a2: b8 00 00 00 00 mov $0x0,%eax 22:26:34 80000a7: 89 46 fc mov %eax,0xfffffffc(%esi) 22:26:36 80000aa: 8d 76 fc lea 0xfffffffc(%esi),%esi 22:26:38 80000ad: b8 00 00 00 00 mov $0x0,%eax 22:26:40 80000b2: 89 46 fc mov %eax,0xfffffffc(%esi) 22:26:42 80000b5: 8d 76 fc 22:26:44 Doh, it didn't paste the whole thing. Perhaps for the best. 22:26:48 But it has the relavent code above. 22:26:59 lots of moving and leaing 22:27:08 :) 22:27:19 Those are pushing numeric constants onto the stack. 22:27:22 but great :) 22:27:26 hrm 22:27:42 thats an aweful load... 22:27:56 I can optimize that a small amount by saying 0 dup dup dup dup dup 1 instead of 0 0 0 0 0 0 1 22:28:18 and why do you have mov esi, 0x80000024 twice? 22:28:26 Well, Linux syscall interface takes up to seven parameters in registers eax, ebx, ecx, edx, esi, edi, and ebp. 22:29:27 i love xfce :))) 22:29:36 Good question. The second instruction should be mov 0x8000034,%esi , not the otherway around. 22:30:06 .... 22:30:09 so 22:30:10 er 22:30:11 lol 22:30:45 you're setting esi, then you're setting the address of what esi to the address itself? 22:31:30 It's because of how [entry-point] is defined. 22:31:34 It's broken up into two parts: 22:31:58 s0! writes to the user variable pointing to the top of the data stack. This is written to ONLY at the entry-point. 22:32:18 Then 0stacks is executed to reset the two stack pointers, which reads from s0 to do it. 22:32:27 The implementation of QUIT invokes 0stacks, for example. 22:33:07 The fragment above is executed only once anyway, so it's simply not worth spending the time to optimize out. 22:33:45 ok.. 22:34:27 Basically, here's how I define my [entry-point] in the target compiler: : \\[entry-point] here ep ! s0! \\[0stacks] ; 22:34:57 \\ <---? 22:34:59 here ep ! sets the new entry-point (as you might expect). s0! compiles the code to reset the s0 variable. [0stacks] is then used to, well, 'zero the stacks.' :) 22:35:18 :) 22:35:22 \\ is a word prefix I use to distinguish between 'immediate' and 'non-immediate' words in the target's code. 22:35:30 Remember that I can't directly execute the target's code. 22:35:38 n34t 22:35:40 So I have to fake a distinction between the two somehow. 22:36:10 * kc5tja is a master at making the Forth dictionary bend to my every whim and desire. 22:37:51 The next step is to code up \\S" so that I can compile strings into the target program. :) 22:37:58 : hw S" Hello world!" ; 22:38:28 s" Hello world!" cr count type you mean :) 22:38:36 er 22:38:40 without the count, actually 22:38:44 and the cr after the type 22:38:45 lol 22:39:17 No 22:39:39 S" places the count on the stack, not in memory. 22:39:53 yep :) 22:39:59 Also, there is a reason why I split the word out. 22:40:35 : main [entry-point] 0 0 0 1 hw 4 syscall drop drop ; 22:40:44 oops 22:40:47 : main [entry-point] 0 0 0 1 hw 4 syscall bye ; 22:41:31 Wait -- stdout is file handle 0. 22:41:39 : main [entry-point] 0 0 0 0 hw 4 syscall bye ; 22:43:50 And I'm still pretty sure I screwed something up there; but you get the basic idea. 22:44:36 :) 22:54:38 Crap. 22:54:41 I have to work tomorrow. 22:54:44 >:( 22:54:51 I have to go to bed. 22:55:02 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:20:24 --- quit: Serg () 23:58:28 --- join: networm_ (~networm@L0632P24.dipool.highway.telekom.at) joined #forth 23:58:29 --- quit: networm__ (Read error: 104 (Connection reset by peer)) 23:59:59 --- log: ended forth/03.12.25