00:00:00 --- log: started forth/02.05.17 00:37:55 --- quit: onetom ("ircII EPIC4pre2.508 -- Accept no limitations") 00:38:03 --- join: onetom (tom@adsl52033.vnet.hu) joined #forth 01:10:58 --- quit: air ("AIRC v0.2.0pre -- http://www.qzx.com/airc") 01:11:09 --- join: air (brand@12-254-199-50.client.attbi.com) joined #forth 01:21:56 --- join: davidw (~davidw@adsl-243-109.38-151.net24.it) joined #forth 01:46:34 --- quit: onetom (Read error: 110 (Connection timed out)) 01:47:05 --- quit: gforth (Read error: 110 (Connection timed out)) 01:53:28 --- join: gforth (guest@adsl52033.vnet.hu) joined #forth 02:38:58 --- quit: gforth (Read error: 104 (Connection reset by peer)) 02:49:17 --- join: onetom (tom@adsl52033.vnet.hu) joined #forth 02:57:16 onetom: what's the magic recipe/paradigm to make a forth word look at the *next* word(s), and not what is on the stack? 02:57:17 like 02:57:19 ' + 03:00:07 sec 03:00:44 "what is on the stack"? :) 03:01:10 anyway, what would u like 2 do? 03:01:19 get the name of the next word? 03:02:23 sure 03:02:29 or something like that... 03:06:45 hold on 03:07:25 : x name type ; x asd asd ok 03:08:56 interesting 03:09:21 no, its not. its simply THE WAY ;) 03:09:24 thanks 03:11:06 but u can use ' and CREATE inside colon defs 03:11:23 coz they r not immediate so this 03:11:43 ' you can't use inside : 03:11:48 create you can use 03:11:49 input scanning feature of theirs 03:11:55 can b inherited 03:13:01 --- join: gforth (guest@adsl52033.vnet.hu) joined #forth 03:13:15 no I guess that's not quite right 03:13:19 ' can be inside : 03:13:19 hrm 03:13:33 g4 : x ' execute ; 4 x . 03:13:35 onetom: 4 03:13:46 g4 : x ' execute ; 4 3 x + . 03:13:49 onetom: 7 03:22:46 so, how would you create an 'add' function that adds the next two numbers 03:22:48 add 2 3 03:22:50 .s 5 03:25:47 How are interrupts usually handled with forth? 03:31:25 heya 03:32:36 rob_ert: I think that's sort of an oxymoron... interrupts are handled, at least at the base level, in ASM 03:36:41 hoinky and rob yours 03:37:04 rob_ert: what do u mean by that? who can it b handled *usually*? 03:37:19 davidw: let me c... 03:39:34 davidw: dont know. but check the i/o tutorial in gforth 0.5.0 manual 04:07:10 if forth is -the- os in a machine, it's at least potential that the forth involved would have interrupt service routines... but this is a special case; most of the time either interrupts are not handled (i.e., any i/o uses polling) or the underlying OS does the interrupts... 04:07:51 jim: ok, but forth still has to deal with the low level stuff somehow 04:08:39 bbl 04:09:11 generally, forth deals with its -own- low-level stuff... which is not to say forth cannot have asm words that are interrupt service routines 04:10:15 for the case where forth is the only thing in the machine, first, why is that the case? example: in sun machines, forth is only used as a boot loader 04:10:31 Hmm 04:10:41 but there are times when forth is the only thing running in that sun 04:10:49 What I mean was simply how a forth routine should be called 04:11:01 (From a non-forth program, or an interrupt) 04:11:16 interrupt handler* 04:11:37 "Hey Joe, bring that 10M hit/day web server down; I need to calculate this formula... bring it into the boot loader and type ..." 04:12:08 :) 04:14:07 the rules do not belong to forth for that case, you must follow the rules of interrupt service routines, i.e., save ALL state (incl flags, pc, all regs and all other processor state), find the requesting device, find out what it needs, service that need (possibly altering external state, like queues or such) and restore saved processor state, and return from interrupt 04:15:27 one reason I can see for the interrupt handler for some device being in a forth dictionary is to allow forth to directly use the device 04:15:41 That's what I mean. 04:15:59 How do I call a forth routine from an assembly interrupt handler? 04:16:46 probably you won't be able to do that... but you might be able to code an asm "wedge" that does what you want 04:19:50 Couldn't I just save all registers, set IP to the word I want to execute and then run NEXT? 04:21:10 unless you can make calling a forth routine reentrant and make it safe to call during an interrupt, it's generally not a smart approach to call a forth routine from an interrupt, partially because it might be overly expensive to initialize a forth interpreter inside an interrupt, partly because it's too slow, partly because "where does it return to?" "how will you know to restore/return"? 04:21:40 interrupts like raw speed 04:22:03 the quicker, the better (or you might lose the next interrupt) 04:22:35 Hmm 04:22:44 having said all that, it might be worth a try 04:23:00 What happends on an x86 if an interrupt is generated while another one is being processed? 04:23:09 Or if the interrupt flag is set... 04:23:21 Does it just skip the new interrupt? 04:23:25 depends upon what interrupts are masked out 04:23:50 maybe... but, of course, you lose out on handling the interrupt 04:24:41 of course, all bets here are off on things like F21s :) 04:25:30 in that case "next" is what the processor does, and "ip" is the pc... 04:25:32 Well... I only have x86 and older stuff... 04:25:40 Yeah 04:25:46 That'd be quite cool. 04:26:08 Do you know any good page/document about multithreading with forth? 04:26:18 I'd like to see how that's done 04:27:25 you're -far- better off creating an interface between the interrupt and forth, in the entity of a data structure which would be written by the interrupt and read by certain forth words 04:28:20 multithreading with forth? never done that. my guess, tho, is to have a forth-in-C and link it against a thread library 04:28:39 then build api binding words 04:28:40 Hehe 04:28:45 I didn't really mean that. 04:28:53 I meant multithreading within the forth 04:29:09 Somewhere I read about a z80 with a forth system that ran about 50 processes. 04:30:03 You could for instance change thread on every NEXT. 04:30:17 well, again, you'd need reentrancy... and for each process/thread, you'd need a block of data 04:30:18 (Maybe a bit slow, but.. that's forth :-) 04:30:31 jim: ok, well if you have an interface, how does forth deal with it? 04:30:40 I guess each thread will need its own: IP, return stack, data stack 04:30:44 it has to be alerted to the fact that it's got something to handle 04:30:54 jim: Yes, but that can be allocated... 04:31:53 davidw: the interrupt acts by altering the data structure... 04:32:12 but I'm beginning to see you also want unix-like signals 04:32:48 ok, you can alter data structures till you're blue in the face, but unless forth acts on it, your device is just sitting there 04:33:32 davidw: typically, a unix i/o routine is a loop that runs until some sort of end-of-data condition exists... 04:33:43 uhmmm 04:33:51 often it uses select or something 04:33:58 so that it doesn't poll 04:34:04 polling is wasteful 04:34:27 maybe it can block when looking for input 04:34:36 ok, but interrupts can't really block 04:34:47 you can't sit their blocking on keyboard, disk, ethernet, etc.... 04:35:04 what you need, more or less, is this: 04:35:11 low level asm stuff to handle interrupt 04:35:20 (but this question you're asking is phrased too generally: "how does forth handle interrupts"; stated that way, I have to reply: any way you want it to! 04:35:32 then it passes it to a higher level forth routine, that's less system critical (i.e. it doesn't block the whole system) 04:35:36 Hmm 04:35:38 that's pretty common in other OS's 04:36:00 the bitch is the reentrancy bit 04:36:29 IP has to be a reentrant var 04:36:38 (for one thing) 04:43:01 davidw: the "less critical" thing could be an application-level data consumer loop 04:43:44 which could live in its own thread, and itself get blocked if no data (so it doesn't need to run rampant while waiting for data) 04:44:59 that makes more sense:-) 04:45:16 there's also the issue of atomic updates of the data structure by the interrupt service routine 04:45:35 (i.e., the updates have to be atomic :) 04:47:19 it would be cool if forth had some kind of test and set 04:48:20 like I said, you could link a forth-in-C to appropriate libs and get those things 04:48:31 heh, that's what I'm doing 04:48:48 the bitch is, at the moment, figuring out ecos' interrupt stuff 04:49:00 the ones I introduce don't seem to work...:-/ 04:49:28 you're saving -everything-? 04:51:18 at the moment, I'm still dicking around with the C part of it 04:51:32 I haven't even begun to look at the forth part:-( 04:51:38 I'm using pforth 04:51:47 it has some good stuff, but I'm not %100 convinced 04:51:52 ficl looks interesting too 04:52:55 lunch time 04:59:01 --- nick: mur -> murAway 05:00:53 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 05:00:58 Hi Speuler :) 05:01:06 hi the_rob 05:14:33 wee gates ? 05:16:45 Het gaat goed, dankje... 05:17:03 *staun* 05:35:16 --- nick: murAway -> mur 05:35:40 re 05:45:05 --- join: gforth0 (guest@adsl52044.vnet.hu) joined #forth 05:46:42 gforth0: bootmessage 05:46:49 gforth0: bootmessage 05:46:54 gforth0: bootmessage 05:47:02 4th: bootmessage 05:47:32 gforth0: bootmessage 05:47:50 Speuler: GForth 0.5.0, Copyright (C) 1995-2000 Free Software Foundation, Inc. 05:47:50 Speuler: GForth comes with ABSOLUTELY NO WARRANTY; for details type `license' 05:47:50 Speuler: Type `bye' to exit 05:54:42 gforth0: s" uname -a" system 05:55:49 s"blablaabl" adds string? is it null ending or pointer in stack? 05:56:07 mur: don't forget the space after s" 05:56:19 leaves addr and count on stack 05:56:33 --- join: onetom_ (tom@adsl52044.vnet.hu) joined #forth 05:56:38 addr = pointer to first char 05:56:44 count = n chars 05:56:53 oh yea, sure, okay 05:57:14 Which is most common, one-byte or one-word string counts? 05:57:18 so pointer and lenght? 05:57:22 mur: left$ ( addr1 count1 u -- addr2 count2 ) umin ; 05:57:27 k 05:57:32 rob_ert: byte count 05:57:57 Do these support support longer strings? 05:58:06 er 05:58:08 systems* 05:58:58 rob_ert: string handling words (expecting addr and count) usually work on strings >255 chars too 05:59:18 rob_ert: but words which assume first byte of string to be count, don't 05:59:35 Okay... 05:59:55 rob_ert: hardly any words assume count byte at first address 05:59:58 Is there any disadvantage other than size when using word-sized counts? 06:00:05 rob_ert: COUNT does 06:00:27 rob_ert: yes. 06:00:33 rob_ert: count won't work 06:00:40 What does count do? 06:01:04 rob_ert: if you fix it, (to work with word), it won't work when it is used, assuming byte access 06:01:19 t'is often used for other purposed than string count byte fetching 06:01:29 : count 1+ dup 1- c@ ; 06:01:54 : count dup 1+ swap c@ ; 06:02:05 I see. 06:02:14 first is often quicker 06:02:14 --- quit: onetom (Read error: 110 (Connection timed out)) 06:02:15 --- nick: onetom_ -> onetom 06:02:40 less stack activity 06:02:47 Yeah... 06:03:00 --- quit: gforth (Read error: 110 (Connection timed out)) 06:03:00 --- nick: gforth0 -> gforth 06:03:07 gforth: see count 06:03:10 Speuler: Code count 06:03:11 Speuler: ( $804C5D7 ) add 204 [esp] , # -4 \ $83 $84 $24 $4 $2 $0 $0 $FC 06:03:11 Speuler: ( $804C5DF ) mov esi , 204 [esp] \ $8B $B4 $24 $4 $2 $0 $0 06:03:11 Speuler: ( $804C5E6 ) xor eax , eax \ $31 $C0 06:03:11 Speuler: ( $804C5E8 ) mov al , 0 [ebp] \ $8A $45 $0 06:03:24 incomplete 06:03:26 But, hmm... I don't feel quite comfortable with such small strings... 06:03:39 gforth: see does> 06:03:43 rob_ert: noname : 06:03:43 rob_ert: dodoes, here !does ] defstart :-hook ; 06:03:43 rob_ert: lastxt 06:03:43 rob_ert: noname : 06:06:28 run time words for string literal are usually implemented for byte count string too 06:06:59 i.e. the strings compile with ." foo" , for example 06:07:04 compiled ... 06:08:39 Hrm.. 06:08:48 Guess I'll have to break a few standards :-) 06:09:35 rob_ert: i'm not sure whether ans still requires strings to have byte count 06:10:00 could be that it is an implementation choice 06:10:01 not sure 06:10:16 but COUNT would be a problem case 06:10:39 count is often used as autoincrementing byte fetch 06:10:53 not only in conjunction with strings 06:11:21 Then I'll simply not use that ;-) 06:11:24 have count produce something else would break exisiting code 06:12:08 Hrm.. 06:12:18 Guess I won't make it standard anyway... 06:12:45 what's wrong with nonaam ? 06:12:54 Huh? 06:13:03 nonama? 06:13:16 Everybody love nonaam ;) 06:13:21 Bah 06:13:23 I meant nonama 06:13:30 He's annoying :-) 06:15:00 Speuler: Do you know a good hashing algorithm that generates a minimum of collisions? 06:15:21 probABLY 06:15:26 need to look it up 06:15:31 did some xperiments 06:15:44 empirically 06:16:00 Okay :) 06:16:07 tried a few, and let a long list of words loose on it 06:16:40 Did you find any algorithm that didn't generate any collisions? 06:16:57 :) 06:16:58 a speedy one, but reasonable distribution, was i think 06:17:02 rob_ert then there is bug: ) 06:17:07 oh 06:17:09 whops .) 06:17:09 mur: ? 06:17:22 nm 06:17:24 rob_ert: no 06:17:41 Okay... Was the number 32-bit? 06:17:44 i tested it to force collisions (number of strings versus size of hash array) 06:18:19 hashed strings to 32-bit, modulo'ed those to #slots in hash-table 06:20:35 used hashed vocs for the psion implementation 06:20:44 (written in a basic-liek interpreter) 06:21:01 to speed up compilation 06:21:20 18 mhz machine ... 06:21:43 128 threads 06:22:09 average of 5 or 6 words / thread 06:23:40 rob_ert: collison-free seems impossible to me 06:23:45 Hmm 06:23:53 as it depends on the number, or string, which is hashed 06:24:00 I mean, for the most commonly used forth words. 06:24:27 To avoid collisions in a dictionary of - say - 200 words shouldn't be impossible, or? 06:24:48 possible i think 06:24:58 sure, possible 06:25:09 rob_ert: jeppis dialekt igen: er hede "jakobstads" öli na goo ? 06:25:10 but depends on number of threads 06:25:58 mur: Heh? 06:26:13 haven't got it at hand 06:26:23 Number of threads? 06:26:30 What does that have to do with it? 06:26:38 thread = hash slot 06:27:03 in case of collision, the slot becomes start of list for entries, using the same slot 06:27:13 could double hash too 06:27:30 but often, making a list of colliding words is cheaper 06:28:04 Hrm... 06:28:11 I think I'll skip hashing instead :) 06:30:55 PROC hash:(name$) 06:30:56 local hashvalue& 06:30:56 hashvalue& = 0 06:30:56 i& = len(name$) 06:30:56 while i& 06:31:05 hashvalue& = hashvalue& + asc(mid$(name$,i&,1)) * (i& * 2 + 1) 06:31:05 i& = i&-1 06:31:05 endwh 06:31:05 return (hashvalue& and KThreadMask%) + 1 06:31:05 ENDP 06:31:17 that's the simple psion version 06:31:21 hashing for speed 06:31:33 therefore very simple hash algorithm 06:32:03 Dankje. 06:32:17 np 06:32:17 Seems pretty fast :) 06:45:04 --- join: gforth0 (guest@adsl52089.vnet.hu) joined #forth 06:53:03 Speuler: Hm... I need a way to load and intepret/compile a source file in my forth... 06:53:15 Speuler: But I also want to be able to get keyboard inout. 06:53:17 input* 06:53:24 Any ideas on how to design that? 06:53:41 rob_ert: what's the problem ? 06:54:02 Well... 06:54:10 I can't really figure out where to start. 06:54:13 different solutions 06:54:16 consider: 06:54:32 Easlier I've just had a "read-line" function that reads from keyboard. 06:54:34 key reads filehandle from a var 06:54:42 usually, standard in 06:55:23 when you open a file, write that handle to the variable key refers to 06:55:37 then key read next chars from file 06:55:48 save the previous handle on a stack 06:56:05 when file has been read, close it, restore previous handle 06:56:19 (allows you nestable includes) 06:56:30 Yeah... thanks :-) 06:57:00 So I'll simply call "compile ( file-handle -- )" ? 06:57:13 don't use compile 06:57:17 --- join: onetom_ (tom@adsl52089.vnet.hu) joined #forth 06:57:37 consider "from" or "include" or "fload" 06:57:53 Well, the name doesn't matter. 06:57:57 But that kind of structure? 07:03:30 --- quit: gforth (Read error: 110 (Connection timed out)) 07:03:30 --- nick: gforth0 -> gforth 07:03:35 --- quit: onetom (Read error: 110 (Connection timed out)) 07:03:35 --- nick: onetom_ -> onetom 07:06:30 --- quit: davidw (Read error: 113 (No route to host)) 07:45:30 --- join: tathi (~josh@wsip68-15-54-54.ri.ri.cox.net) joined #forth 07:46:29 Hi :) 07:48:25 hey 07:49:01 Gaah 07:49:09 ? :) 07:49:14 I can't find any instruction timings 07:49:20 :-( 07:49:22 for x86/16-bit. 07:49:30 Hrm 07:49:34 Guess I should get HelpPC 07:49:44 But then I got to get networking to work on my other computer... 07:49:48 grr.. 07:50:02 rob_ert: for what 4th? 07:50:33 ehhh 07:50:44 Hehe 07:50:46 Not forht.. 07:50:52 forth*' 07:51:05 what then?!?!goaway!;) 07:51:09 Bah ;) 07:53:45 :)) na, jo.. kegyes leszek, visszabbveszem 07:53:50 aaarrgghhhhhhh 07:53:56 Hehe 07:54:47 * onetom kicks the monitor down 2 the ground 07:56:01 onetom you need cursor which follows eye pupils and actives then the right window 07:56:06 oe sumting 07:56:54 mur: Why can't you write a spelling corrector for your IRC client? =) 07:57:24 rob_ert sorry, no 07:58:13 :((( 08:00:13 mur: yeah, iknow :/ 08:07:13 is there anybody interested here in a lil nice programming excercise? 08:07:35 forth ? 08:07:41 doesnt matter 08:07:47 Tell us ;)( 08:07:49 tell us then :) 08:07:56 but actually it ... okay :) 08:08:25 imagine a matrix of numbers, a so 2 say M*M table 08:08:53 there r some given elements in it 08:09:27 from the [0,N]EN interval, 08:10:02 where N E (0,M] 08:10:06 right? 08:10:17 * rob_ert doesn't know anything about matrixes. 08:10:22 yeah 08:10:34 rob_ert: they're ... "tables" 08:10:36 rob_ert: for now, u wont have 2 08:10:53 u have 2 fill the not given elements 08:11:24 in all the possible combinations w numbers from the [0,N] interval 08:11:42 but there r 2 constraints 08:11:45 1st: 08:12:03 oink: I know what they _are_, but not how to count with them. 08:12:25 if u walk the table along a spiral starting from the left top corner 08:12:57 rob_ert: not need 4 any number-matrix operatoins 08:13:11 OK :) 08:13:51 u have 2 get a series of acsending numbers periodically 08:14:10 zeros dont count, so 08:14:22 (is that your homework or what ? :D) 08:14:33 1002003120003001000020030102... 08:15:04 oink: sure. it was a homework @ some univ. 08:15:35 oink: actually it should b coded in some declarative prg lang, like prolog or sml 08:15:59 ugh.. 08:16:00 oink: but its not so simple, so any solutions do play ;) 08:16:32 oink: coz a student is very curious about any algorithms 08:16:50 oink: tho, that student is not me 08:17:15 oink: im interested in the problem, because i wanna introduce forth 08:17:34 so what's the other constraint? 08:17:35 oink: on a linux-flame mailinglist via this problem 08:17:42 2nd: 08:18:15 none of the rows or columns can contain the same number more the once 08:18:22 zeros dont count again 08:18:45 they r the joker values ;) 08:18:48 ---------- 08:18:54 is that clear? 08:18:59 rob_ert: hm? 08:19:34 I'm not clear on _exactly_ what the first constraint is... 08:19:40 what about holding a contest, huh? ;) 08:20:16 tathi: ok. whats wrong: the spiral path? 08:20:31 tathi: or the structure of the series? 08:20:35 the series 08:21:09 u have 2 fill the empty elements w numbers from the [0,N] intervall 08:21:10 you mean that, ignoring 0s, you need to get 12..n12...n etc? 08:21:12 -l 08:21:17 yup 08:21:24 ok 08:21:55 if N>M its impossible 2 meet the 2nd condition, ithink 08:22:18 unless N>M*M... 08:22:33 that is every field is uniqe 08:23:03 but there r prefilled elements certainly... 08:24:08 a recomposition of the text of this problem is welcome from a 08:24:44 person havin a better knowledge of english mathematical terms & style 08:25:40 a brute force algo in forth will also do 08:26:18 but 1 optimized 4 cheap (that is fast) execution would b more welcome 08:34:31 nah? 08:35:57 --- quit: Speuler (Read error: 113 (No route to host)) 08:44:35 No thanks :-) 08:44:44 (I'm back, btw) 08:45:46 rob_ert: that is? 08:46:28 Huh? What? 08:52:01 what do u mean by nothanks? 08:52:20 Your problem. 08:52:28 I'm not going to try it .) 08:52:32 why? 08:52:44 Too hard ;-) 08:53:08 oooh, nooo 08:53:20 the bruteforce method isnt that hard 2 08:53:31 not even difficulty ;p 08:53:35 not even difficult ;p 08:53:40 Hehe 08:54:07 its a perfect excerice 2 try out the power/weekness of 4th 08:54:40 rob_ert: imagine the bruteforce method: 08:54:59 u have a series w holes in it 08:55:48 consider the series of the holes as an x digit number 08:56:05 and simply generate all the possible numbers 08:56:26 that is N^x variations 08:57:02 and then simply test all the possible "numbers" against the conditions 08:57:40 2 implement the condition checking routines inst too difficult 08:57:55 probably the spiral-walk is not so obvious 08:58:17 the row/col uniqeness is pretty straightforward, isnt it? 08:59:39 I don't see why you think N>M is impossible... 09:00:16 gah, nevermind 09:00:43 tathi: im not sure of it. its just an impression.. 09:01:50 probably its possible but the solutions r not so useful.. 09:01:52 idontknow 09:02:12 the whole thing doesnt seem 2 useful anyway 09:02:39 tho, encryption comes 2 mind.. 09:03:30 rob_ert: code the 2nd condition @ least. thats pretty simple.. 09:04:14 rob_ert: 5 constant M create table M M * chars allot 09:04:21 rob_ert: here u go ;) 09:04:51 rob_ert: : test-col ( i -- ) .... 09:05:05 rob_ert: : test-row ( i -- ) .... 09:05:56 rob_ert: : test-table ( -- f) ... do i test-row ... loop ... do i test-col ... loop ... ; 09:06:16 opss 09:06:34 rob_ert: : test-row/col ( i -- f) .... -- ofcourse 10:46:28 --- join: gforth0 (guest@adsl52043.vnet.hu) joined #forth 10:58:17 --- join: onetom_ (tom@adsl52043.vnet.hu) joined #forth 11:00:18 --- quit: tathi ("leaving") 11:05:25 --- quit: onetom (Read error: 110 (Connection timed out)) 11:05:25 --- nick: onetom_ -> onetom 11:05:25 --- quit: gforth (Read error: 110 (Connection timed out)) 11:05:25 --- nick: gforth0 -> gforth 11:10:19 --- join: tathi (~josh@wsip68-15-54-54.ri.ri.cox.net) joined #forth 11:34:50 --- quit: mur (Read error: 104 (Connection reset by peer)) 11:36:48 --- join: mur (ammu@baana-62-165-189-112.phnet.fi) joined #forth 11:47:36 --- join: I440r (~mark4@1Cust179.tnt3.bloomington.in.da.uu.net) joined #forth 11:47:55 Hey :) 11:48:03 --- join: gforth0 (guest@adsl52052.vnet.hu) joined #forth 11:48:04 hi 11:48:31 --- nick: mur -> murBBL 11:48:33 What kind of support for structures and classes does isforth have? 11:50:44 Mr I440r? :-) 11:59:15 --- join: onetom_ (tom@adsl52052.vnet.hu) joined #forth 11:59:58 sorry was akf reading clf :) 12:00:11 robert i just added some code by mrreach to do structures 12:00:23 CLASSTS are an object obfuscatiojn BULLSHIT thing 12:00:30 isforth WILL NOT go there 12:00:36 classes 12:00:49 structures are now supported tho 12:00:54 strut: 12:01:02 5 bytes field: blahh 12:01:07 6 words field: foo 12:01:11 ;struct 12:01:18 erm 12:01:25 struct: structure-name 12:01:37 count size field: field.name 12:01:44 ... 12:01:46 ;struct 12:02:16 if i have a structure called foo and i want a bar field i name that field foo.bar 12:02:33 ugh this looks like hungarian notation 12:02:39 * I440r hangs his head in shame :) 12:02:56 unions are also possible 12:03:08 struct: links 12:03:43 1 dword field: links.parent 12:03:43 1 dword field: links.chile 12:03:43 ;struct 12:03:43 struct some-linked-data 12:03:54 link blah.link 12:04:09 1000 bytes field: blah.data 12:04:09 ;struct 12:04:16 I see. :) 12:04:24 * rob_ert plays with that now. 12:04:29 Nice excercise. 12:04:38 nice monologue 12:04:40 :D 12:04:45 I really love forth for being extensible like this :) 12:04:51 mrreach sent me some code to do that and when i looked at it i didnt realy study it 12:04:54 oink: ur lame lol $#!#$#!?!! 12:05:00 rob_ert: yes :( 12:05:03 oink: :) 12:05:06 --- quit: gforth (Read error: 110 (Connection timed out)) 12:05:06 --- nick: gforth0 -> gforth 12:05:18 but when i realised i had a USE for it i went looking for mrreaches code again 12:05:20 couldnt find it heheh 12:05:25 so i had to write it myself 12:05:30 Haha 12:05:33 You suck :D 12:05:35 ;) 12:05:40 then when i found his code they were practically identical 12:05:44 --- quit: onetom (Read error: 110 (Connection timed out)) 12:05:44 --- nick: onetom_ -> onetom 12:05:47 Hehe 12:06:07 structures are very useful sometimes 12:06:16 they help organize the way you handle your data 12:06:25 but OVER use of them is heavilly frowned upon 12:06:30 :) 12:06:36 lets make 2974927846924 source libraries 12:06:42 defining 243979582746576245982432 constants 12:06:47 2w9562984569824569298275498246 structures 12:06:53 :DDDD 12:06:54 with 2398599824985668490236498562984692846598274928746982469823 fields total 12:06:59 and then try remember them all 12:07:01 ugh 12:07:03 ;) 12:07:06 lets all just go code in c 12:07:08 so if we can have structures in forth, we can also have binary trees, right ? 12:07:10 Yay! C! 12:07:15 oink of corse 12:07:21 oink: You can have everything in forth ;) 12:07:24 you could have those without structures 12:07:26 let's implement AVL trees! :D 12:07:37 do me some BSP tree code instead :) 12:07:40 * rob_ert will try to write some encryption shit in isforth :) 12:07:46 rob_ert:) 12:07:53 that might be usefull dood 12:08:03 turnkeyd apps can self encrypt then self decrypt 12:08:14 turnkey? 12:08:17 not absolutely foolproof but more secure than none 12:08:20 binary runtime encryption ? 12:08:21 What's that? 12:08:29 turnkeyd apps are saved out executables with NO headers 12:08:45 when you RUN a turnkeyd app it runs your code, not forths inner loop 12:09:07 neway i gotta go do some work 12:09:19 oh - 1.05b doesnt have the structures include with it 12:09:24 the next release will tho 12:09:29 but i dont know when that will b 12:09:30 be 12:09:38 Hm 12:09:45 Wait, how do I save an executable? 12:09:59 lets say you have written your code 12:10:05 and your main word is 12:10:08 : foo ...... ; 12:10:22 when your turnkeyd app runs you want it to run FOO instead of quit 12:10:23 well 12:10:31 in isforth quit is defered to (quit) 12:10:35 ' foo is quit 12:10:55 when forth finishes initializing it will jump to quit which will NOW run foo 12:11:04 now all you need to do is 12:11:11 turnkey foo-app 12:11:26 and you will now have an executable called foo-app 12:11:29 ./fo-app 12:11:35 erm ./foo-app even heh 12:12:30 neway - time to go do some werk 12:12:50 Okay 12:12:53 Thanks :) 12:20:51 --- nick: murBBL -> mur 12:22:25 Hrm 12:22:56 How do I load a source file in isforth? I tried fload, and to give it as stdin, and as a commandline paramter... 12:31:02 ./isforth - fload file.f fucks up the file... :-/ 12:37:22 : page 27 emit ." [2J" 0 2 at ; 12:37:31 Why don't include that? 12:37:38 Or 0 0 for use outside isforth. 12:39:10 hmm.. 12:39:16 looks buggy when I try it =) 12:40:56 : page 27 emit ." [2J" 27 emit ." [0;0H" ; <-- looks better 12:42:36 you should be able to shorten that to ESC [ H ESC [ J 12:43:04 if your terminal supports the defaults 12:43:13 You mean the forth code or the escape sequence? 12:43:15 Hmm 12:43:29 the control sequences 12:43:32 Well, my OS doesn't support those weird things ;) 12:44:16 Hmm 12:44:35 When an escape sequence _returns_ something, how do I read that= 12:44:40 so : page 27 emit ." [H" 27 emit ." [J" ; 12:46:24 rob_ert: same way you read anything from the terminal 12:48:00 Oh 12:48:04 stdin? 12:52:32 yes, usually 12:55:04 --- join: gforth0 (guest@adsl52089.vnet.hu) joined #forth 13:04:19 --- quit: onetom (Read error: 110 (Connection timed out)) 13:04:29 --- quit: gforth (Read error: 110 (Connection timed out)) 13:04:29 --- nick: gforth0 -> gforth 13:08:47 --- join: davidw (~davidw@adsl-243-109.38-151.net24.it) joined #forth 13:23:07 deltab you dont need to worry about escape sequences in isforth :) 13:23:17 if there is one missing you can define it tho 13:23:51 escape 2H and escape 2J are identical arent they ? 13:23:56 erm o 13:23:57 no 13:24:01 one clears the screen 13:24:03 no 13:24:08 the other homes th ecursor 13:24:10 sorry heh 13:24:20 J clears part or all of the screen 13:24:28 yes 13:24:31 1j or 2j 13:24:33 H moves the cursor to the given position 13:24:35 or 3j 13:24:42 yes its called a CUP 13:24:51 no, 0J, 1J or 2J 13:24:53 isforth defines ALOT of these sequene 13:25:04 erm ya. erase before, erase all, erase after 13:25:11 do you have isforth ? 13:25:27 isforth.clss.net = linux only x86 direct threaded forth 13:25:44 look in isforth/forthsrc/term.f 13:25:56 i was going to do complete terminfo parsing 13:26:02 may still do so in the futuer 13:26:48 er,, futuRE grrr (mental note - must learn to type) 13:28:23 hey I440r 13:28:29 * mur = juu jukka etc 13:29:15 mur1 hi 13:29:59 :) 13:31:34 so is anyone in here using isforth regularly ???? 13:31:40 if not... WHY NOT!!!! :P 13:35:40 --- quit: tathi ("leaving") 13:39:40 --- join: kc5tja (~kc5tja@stampede.org) joined #forth 13:44:52 kc5tja 13:45:08 re mur...or, should I say, juu? ;D 13:46:22 yes 13:46:24 :) 13:46:34 ohasjawish 13:47:00 * kc5tja wrote a preliminary document on reverse polish notation, and how Forth uses it, so that other people in my department would be familiar with it. They were astonishingly receptive of the idea. 13:47:48 I thought for sure that someone was going to balk bigtime over it. 13:48:08 ya???????????? 13:48:09 cool 13:48:12 I guess my explanation of what it was, and how my software uses it, was so clear to them, that they are happy with its acceptance. 13:48:29 rpn is a better way than PARSING and shit 13:48:42 A few even liked the subject heading for the document: A Brutally Brief Introduction to Forth ;) 13:48:52 you dont need to worry about bullshit things like whoch operator is applied first 13:48:59 lol 13:49:15 you wanna dcc me that? ill put it on the isforth.clss.net site 13:49:19 erm 13:49:22 no dont dcc it 13:49:23 email it hehe 13:49:30 im behing a masq 13:49:40 That's the rationale I gave in my document. "Reverse polish notation, also called postfix, is the natural method a computer uses to process information. It allowed me to employ a complete, Turing-complete language without having to write a complicated parser or grammar, cutting at least 6 weeks of development time from the project." 13:49:51 you still a client, not a server in this case, so it should matter 13:49:55 I440r: I can't -- it's company internal documentation. 13:50:04 oh dang :P 13:50:11 uhoh 13:50:24 shouldn't* 13:50:25 :D 13:50:50 oink: Depending on the firewall configuration and capabilities, it does matter. :( 13:51:17 he said "masq" not "firewall" 13:51:28 oink im behind an ipmasqurading proxy server and i dont think the irc masq module is working rite 13:51:32 Linux masquerading *is* the firewall. 13:51:42 something about my being too lazy to fix it i thin 13:51:44 think :) 13:52:00 ip masqurading is like network address translation 13:52:07 kc5tja: by definition, a Firewall *block* or filter packets 13:52:13 but isnt subject to hefty charges from cisco for its use :) 13:52:19 oink: Then tell that to the Linux developers. 13:52:23 oink or they forward them 13:52:48 masquerading is generally done by a "proxy".. 13:52:51 yesh :) 13:52:58 oink: Under Linux, you must have the firewall installed and running in order to do IP masquerading, especially since masquerading is a firewalls primary objective (it uses the masquerading to capture and process packets for filtration, after all) 13:53:21 and what if we don't want to use netfilter ? 13:53:29 oink: Then don't. 13:53:32 I440r: So, how did I load a source file? 13:53:34 oink: But the firewall is still in place. 13:53:39 ipchains -X 13:54:05 erm then you need to add rules to alow all packets to or from anywhere 13:54:12 but you are STILL masqurading 13:54:22 Sir? :) 13:54:27 so if YOU ping my IP - how does the server know the ping is supposed to come to me 13:54:28 it doesnt 13:54:39 but if i ping you it knows the REPLY is for me 13:54:54 if i initiate it - it works. if you do- its blocked 13:55:00 How do I load file.f in isforth? 13:55:11 I440r: Unless you open the firewall up to ICMP packets. 13:55:30 I440r: rob_ert is paging you. ;) 13:55:37 kc5 no - i share the same IP as the server 13:55:51 so the PING would be processed BY the server. it would never reach me 13:56:03 kc5tja: He's not multitasking :D 13:56:27 I440r: PAUSE ;D 13:56:44 rob_ert: I wonder if that'll work. :) 13:56:48 He segfaulted! 13:57:00 oh 13:57:05 fload file.f 13:57:08 Hmm 13:57:09 that interprets the file 13:57:13 Didn't work too well, I think 13:57:19 I'll check again 13:57:23 fsave saves out a NON turnkeys extension 13:57:39 fload path/to/file.f 13:57:48 Hrm 13:57:49 NOW it works 13:57:52 eventually ill add a set of default paths in isforth 13:57:58 let me add that to the todo list 13:58:03 Bah... this is strange 13:58:05 it was on it - just not specified IN it heh 13:58:32 * kc5tja took a long time to realize that, in Forth, loading a file really meant interpretting the file. I was used to loading a file in the same sense as BASIC. I never thought of it in terms of file inclusion, a la C. 13:59:04 kc5 isforth will allow that 13:59:08 you will be able to say 13:59:14 ./isforth SOME_FILE.F 13:59:19 Well, thanks anyway. 13:59:37 and forth will just remember that file so when you say ED - you jump to the editor and start editing 13:59:45 I440r: Yes, but that causes SOME_FILE.F to be interpretted. 13:59:53 the word OK is going to be used to compile the currently open fike 13:59:56 kc5 no it wont 14:00:03 ./isforth - fload somefile.f 14:00:09 or from within isforth 14:00:12 fload somefile.f 14:00:16 those interpret 14:00:20 ill also add 14:00:24 open somefile.f 14:00:29 it wont actually OPEN the file 14:00:40 isforth wont actually DO anything with the file 14:00:42 What is the difference then? 14:00:48 but OK will compile it and ED will edit it 14:00:54 you can say 14:00:56 open myfile.f 14:00:57 ed 14:01:03 : add new definitions; 14:01:06 quit and save 14:01:07 then say 14:01:08 empty ok 14:01:14 then test it 14:01:18 nope. didnt work 14:01:18 ed 14:01:23 edit some more, quit and save 14:01:25 empty ok 14:01:35 OK being the word to interpret the currently open file 14:01:42 but you dont HAVE to interpret it at all 14:02:00 My point, though, is to get the program into memory, it has to be interpretted at some point. 14:02:04 In this case, 'ok' doe sit. 14:02:05 does it. 14:02:20 * kc5tja isn't saying this is a bad thing. 14:02:21 yes 14:02:28 this isnt in place yet 14:02:33 I'm just saying, when I was first learning Forth, it took a while to wrap my mind around the concept. 14:02:37 its how fpc did it and i liked it 14:02:42 yes 14:02:53 isforth will allow BOTH concepts to exist :) 14:03:11 I was used to the way BASIC did it, where loading a file literally copied the contents of a file into BASIC's memory image, and was directly manipulable there. 14:03:13 OPENING a file is just storing its name away somewhere for future referencey by OK or ED 14:03:32 kc5 ya. how do you get basic to compile it again ? 14:03:36 run ? 14:03:41 oh 14:03:41 It doesn't compile. 14:03:44 ya 14:03:48 It doesn't NEED to -- it's already in pretokenized form. 14:03:49 NOW i remember :) 14:05:30 there were SOME compiled basics out tho 14:08:18 Well, yes, but those were compilers in the C sense though. 14:09:00 * kc5tja has even used a couple -- Visual BASIC 5 being one of them. 14:09:50 However, I'm just really pleased that my use of Forth for this one project (itself written in C unfortunately) really makes my life unbelievably easier. 14:10:33 even a forth written in C is a big step UP from c :) 14:25:27 Well, it's not a Forth in the "normal" sense of the word. I cannot even evaluate 1 2 +. 14:25:34 (but it can evaluate 1 2 ;) ) 14:25:45 heh 14:26:00 It's a very, very, very specialized implementation, designed specifically to handle the tasks that would normally be relegated to a configuration file. 14:26:07 (in fact, the Forth sources have a .ini extension) 14:26:27 sounds reasonable 14:26:45 i used to have a debugger for my c64 that allowed you to write INTELLIGENT break points in FORTH 14:26:48 But since a configuration file is just a (perhaps Turing incomplete) programming language, it made sense to forego the parser for it, and just make everything explicit as a "directly executable configuration file." 14:26:49 thats all it was for. 14:27:06 rite 14:28:08 Maybe, if I'm lucky, I can make this tool scriptable in Forth some time in the future. 14:28:20 But for now, it's "good enough" the way it is. 14:29:46 if your bosses LIKED what you did so far they might WANT you to 14:42:48 Well, that depends. 14:43:17 This testing environment is horribly kludgey, and I need to steer them away from the use of such ugly hacks slowly, over time. 14:43:58 The fact that I'm (still) writing the diagnostics Forth environment for our MIPS processor cards is a huge inroad towards that goal. 14:44:53 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 14:46:52 bongo :) 14:49:43 Bongo? 14:51:33 Hoi Speuler :) 14:53:23 Speuler: == bongo 14:53:27 thats his old nick 14:53:41 Hehe 14:54:11 * rob_ert has had another nick, too. 14:54:16 "Robert" ;) 14:57:47 rob_ert: Why the change? 14:57:57 * kc5tja has used kc5tja since he first signed onto IRC many moons ago. 15:00:36 hi ppl 15:00:38 g'd evening 15:06:17 foo! 15:06:24 * mur for good night 15:06:52 Cool. I am 2/3 finished with this document, and then I can get to doing something useful with my life at work... 15:07:25 --- quit: mur ("MURR! end of file reached. continuing filling logs some other time.") 15:21:47 brb 15:25:04 --- join: gforth0 (guest@adsl52017.vnet.hu) joined #forth 15:30:21 * kc5tja has returned. 15:31:09 Yay! 15:40:54 --- quit: gforth (Read error: 110 (Connection timed out)) 15:40:54 --- nick: gforth0 -> gforth 16:00:57 --- join: Fare (fare@samaris.tunes.org) joined #forth 16:01:06 hi fare! 16:01:15 hows soph ? 16:01:40 probably as depressed as ever 16:03:43 :-( 16:04:10 well ill pray for her - not much elsei can do 16:12:15 Hmm.. 16:12:31 How do I output an unsigned 32-bit integer in isforth? 16:12:35 --- quit: Speuler (No route to host) 16:14:10 . 16:14:11 erm 16:14:12 u. 16:14:16 Oh, OK 16:14:19 Dankje :-) 16:14:21 heh 16:14:31 btw, I've implemented TEA using IsForth 16:14:45 It's really a neat piece of software you've written there :) 16:15:09 tea ? 16:15:13 tea ? 16:15:20 Encryption algorithm. 16:15:25 isforth is cool - i just need more people using it 16:15:25 http://www.ftp.cl.cam.ac.uk/ftp/papers/djw-rmn/djw-rmn-tea.html 16:15:31 stress/smoke testing it 16:15:36 I440r: Now we're two ;) 16:15:44 Oh 16:15:53 Why does "char x" make it segfault? 16:15:58 errr 16:16:02 try 'x' 16:16:15 char isnt defined. no idea why it segfaulted 16:16:32 Okay, heh... 16:18:27 char IS defined! eep 16:18:35 i think i need to find where i defined that 16:18:38 and rename it 16:19:42 :-) 16:20:14 Pedantic bug hunters are good to have ;) 16:20:35 yes 16:21:18 oh. i know what CHAR is now 16:21:23 its part of expect 16:21:33 need to rename it to norm-char or something 16:22:45 Is isforth case sensitive? 16:22:52 yes 16:22:58 :) 16:23:00 and EVERYTHING in the kernel is LOWER case 16:23:07 uppercase is for morons :P 16:23:08 Goed. 16:23:10 Hehe 16:23:12 you can quote me on that :) 16:23:21 I440r: and macros :) 16:23:22 My first forth was upper-case :>) 16:23:24 what kernel btw ? 16:23:26 >:) I mean 16:23:33 IsForth's kernel 16:23:35 oh 16:23:36 :DD 16:23:39 nevermind then 16:23:55 * I440r slaps oink arround with the 83 standard 16:26:59 --- quit: jim ("[x]chat") 16:33:30 I440r: I DISAGREE WITH U 16:33:32 ;P 16:33:52 heh 16:34:21 my dad says he preferd the 79 standard and that it was all downhill from there 16:34:37 * kc5tja prefers the 'standard' words to be in uppercase (where 'standard' means the unique set of words that makes a bare-bones FS/Forth environment identifyable as FS/Forth, for example) 16:34:38 * oink takes an helmet 16:34:39 :D 16:34:58 * kc5tja *loved* Forth 79. 16:35:06 I like cmForth a lot better though, in retrospect. 16:38:39 Wohoo! My TEA implementation works XD 16:39:08 First usable forth program ever for me :} 16:39:15 * rob_ert just lost his virginity 16:39:27 w0ow0o 16:39:51 have you looked down the back of the sofa? 16:41:42 * rob_ert doesn't quite get what deltab means. 16:41:50 oink: Wanna see? ;D 16:42:12 i'm .. tired.. 16:42:15 Bah 16:42:19 echo url | mail ziga@owl.cuckoos.net 16:42:21 * rob_ert sings a song for oink 16:42:24 i'll check it tomorrow 16:42:27 Hehe 16:42:32 I'll mail the source to you ;) 16:42:37 ok :) 16:42:43 What is that host you're on btw? 16:42:53 owl.cuckoos.net 16:42:53 who ? 16:42:58 oink 16:43:20 rob_ert: my gateway ? 16:43:24 ? :) 16:44:25 Right..... you got cable, don't you? 16:44:56 [01:44] -!- Irssi: New mail from Robert 16:44:56 [01:44] -!- Irssi: Subject: :D 16:45:00 no, ADSL 16:45:04 --- join: onetom (tom@adsl52017.vnet.hu) joined #forth 16:45:37 Hi onetom 16:45:44 oink: Oh... 16:46:22 1mbps down, 256kbps up, static ip, reverse.. 16:46:31 :) 16:46:50 hiya 16:46:56 I also have ADSL, 500kbit up/down... 16:47:04 yummm 16:47:05 But the connection is kind of crappy 16:47:07 ehm 16:47:11 symmetric ? :) 16:47:18 Hum? 16:47:27 rob_ert: up==down? 16:47:42 you said, 500 up and down :) 16:47:45 rob bastard 16:47:50 i used to have 384/384 16:47:55 ALSO symetrical 16:47:58 rob_ert: mine is 384 down but just 64 up 16:48:04 Oh 16:48:11 Well, I got same speed up and down. 16:48:26 if you have the same speed up and down its SDSL not ADSL 16:48:34 robyou have sdsl 16:48:38 symetrical dsl 16:48:54 that is dsl 4 short 16:48:59 isnt it? 16:49:06 yes 16:49:13 They call it ADSL, and I don't care what it is as long as I get my kilobits 16:49:40 I440r: symetric dsl can also be.. HDSL, IDSL.. 16:50:33 and "SDSL" stand for Single line Digital Subscriber Line 16:50:45 not Symetric :D 16:50:49 no it stands for symetrical 16:50:53 and a is asymetrical 16:51:09 yes, but SDSL doesn't stands for Symetrical dsl.. 16:51:16 try a google search.. 16:52:12 or dict.org :) 16:52:42 From The Free On-line Dictionary of Computing (09 FEB 02) [foldoc]: SDSL {Single-line Digital Subscriber Line} 16:52:52 From V.E.R.A. -- Virtual Entity of Relevant Acronyms December 2001 [vera]: SDSL Single line Digital Subscriber Line (DSL) 16:53:02 --- part: Fare left #forth 16:54:17 they are wrong :P 16:54:20 Hmm.... I440r, how do I save/load the current number system base? 16:54:30 base @ 16:54:34 Okie, thanks. 16:54:37 hex blah blahblah 16:54:39 base ! 16:55:08 I440r: the VERA can't be wrong! :) 16:55:32 oink shaddap :P 16:55:36 im NEVER wrong:P 16:55:41 YEAH YEAH :D 16:56:01 uhm.. 16:56:06 2am 16:56:16 I'm off to bed, good night :) 16:56:58 Night 16:57:06 hehe 16:57:08 nite nite 16:58:27 oink: Speaking as someone who actually spent more than 6 years in the industry, SDSL is an acronym describing synchronous DSL. 16:59:07 thankyou 16:59:13 Whether this is synonymous with single-line DSL (this, to me, makes NO sense at all, as all electrical circuits must at least employ a signal line and a ground return), is unknown to me. 16:59:30 erm synchronous or symetrical ? 16:59:32 However, I have never, ever seen any reference to single-line DSL in any of the trade publications or standards documents. 16:59:39 Synchronous. 16:59:48 errr 16:59:51 ok 17:00:01 Symmetrical might mean the same thing; it could be a trade name. 17:00:10 This is where up and down-load speeds are identical, correct? 17:00:57 I440r: Hello? :) 17:01:48 " Symmetric digital subscriber line (SDSL), also know as single line DSL, is a technology that delivers a symmetric link to data networks for residential and business users. Using existing telephone lines, SDSL extension technology can transport multiple services, such as private line, digital voice transmission, Internet protocol (IP), or frame relay. Because SDSL is symmetric, its maximum data rate is the same both upstream and downstream. Typically, SDSL gene 17:01:56 http://www.cid.alcatel.com/doctypes/techpaper/dsl/dsl_types.jhtml 17:02:08 OK, we were both you and me right 17:02:16 but 17:02:22 OK, so then I take it that Synchronous and Single-line are "trade names" for the more generic Symmetrical DSL then. 17:02:38 "Symmetric digital subscriber line", is confusing.. since HDSL and IDSL _ARE_ SDSL 17:02:49 while VDSL is ADSL. ;) 17:02:56 I'll be right back -- I am hungry. 17:02:58 --- nick: kc5tja -> kc-food 17:02:58 :) 17:03:04 and i'm tired 17:03:06 cya :) 17:03:39 :) 17:05:13 --- join: tcn (tcn@tc4-login32.megatrondata.com) joined #forth 17:05:14 --- mode: ChanServ set +o tcn 17:05:30 tcn dood 17:05:38 hello 17:05:48 does fbds syscalls return values in registers or on the stack ? 17:05:55 eax 17:06:01 ok 17:06:18 because init_mem has a 16 byte differencve in ESP at exit 17:06:18 you have to ADD ESP, ... 17:06:32 and im removing all the parameters. some fbsd guy is helping me debug it 17:07:26 add esp, byte 4 isnt legal ? 17:07:43 if not THAT might be the problem heh 17:07:45 It goes: push parameters, mov eax,syscall#, int 80h/call _syscall, drop parameters from stack 17:08:05 add esp,byte 4 is what I do 17:11:20 then that isnt the problem 17:11:40 init_mem: 17:11:40 mov eax, 02dh ;we should decide on a good end of memory 17:11:40 push dword 08148000h ;and make a stupid equate for it so we can 17:11:40 call int80 ;bury whats going on with obfuscated code! 17:11:40 add esp, byte 4 ;discard above parameter 17:11:41 ;abort program here if the above fails blah blah 17:11:43 mov eax, 07dh ;sys mprotect 17:11:45 push dword 7 17:11:47 push dword 00100000h 17:11:51 push dword 08048000h 17:11:55 call int80 ;make the entire program space rwx 17:11:57 add esp, byte 12 ;discard parameters 17:11:59 ;abort program here if the above fails blah blah 17:12:01 ret 17:12:05 whusswrong with that :( 17:12:07 theres 16 bytes difference on esp at the ret 17:13:51 i was thinking maybe i had the mprotect parameters out of order but now i dont know 17:13:58 because of the ESP difference 17:14:08 there are 16 more bytes on the stackk at the ret 17:14:30 heh 17:15:02 have you made sure mprotect works the same way in Freebsd? 17:15:15 linux has fuckedup syscalls 17:15:33 heh 17:15:53 the guy testing the code says taht each syscall is leaving shit on the stack 17:16:11 so even a read syscall leaves extra shit? 17:16:50 no idea 17:17:07 all i know is that the mprotect syscall is leaving shit on the stack :( 17:17:25 im not sureif he single stepped the add esp, byte 12 tho 17:17:37 im confused about what he is doing actually 17:17:49 he doesnt understand that add esp, byte 4 is the same as pop eax 17:17:55 but cheaper and doesnt mash on eax 17:18:18 dood i realy need you to fix this 17:18:26 your got a clue :P 17:18:28 you 17:19:16 ok i'll make a note of it :) 17:19:35 gotta boot up bsd and read the kernel docs/source 17:19:54 actually i wouldnt mind installing BSD on my other machine rite now 17:19:59 cept the fucking thing wont boot 17:20:09 and it owuld take me 3 months to download the iso 17:20:31 heh 17:20:53 one time I downloaded that from work via cable modem and burned it :) 17:21:10 i think he had cut and pasted the init_mem routine 17:21:18 and removed the instructions he didnt understand :P 17:21:36 he put them back in and now it doesnt leave shit on the stack 17:21:38 lol 17:21:47 argh i hate the clueless ppl 17:22:09 yeah, hard to tell if what he's reporting is really happening 17:23:04 he now gets the same error i got when i was sshing to joa's box 17:23:07 a bus error 17:23:13 i.e. the mprotect didnt work 17:23:19 i think the parameters are reversed. 17:23:43 so im having him reverse the order now :) 17:23:45 linux uses structures for syscalls with >4-6 parameters 17:24:01 i didnt think of it when i was using joa's box 17:24:04 hmm 17:24:04 yes. very fuciing uglyu 17:24:16 http://ostling.no-ip.com/files/ypn/snippets/tea.f <--- c0de ;) 17:24:16 i have ONE handler for ALL syscalls no matter HOW MANY parameters 17:24:17 i'll fix that when I rewrite it 17:24:36 linux that is :) 17:24:57 you will fix linux when you rewrite it ? 17:24:58 heheh 17:25:28 he reversed the order of the parameters on the mprotect and it still gives a bus error :( 17:28:27 we gotta read the source/docs 17:29:49 so what you been up to coding wize lately ??? 17:33:49 compilers 17:34:10 http://tunes.org/~tcn/pub/compilers 17:34:39 you still working on that parsing stuff ? 17:35:32 you using isforth to do this code dood ? 17:35:57 some of it 17:36:10 i'm using asm now 17:36:36 cool 17:36:52 but at least isforth worked a lot better than C 17:37:57 :) 17:38:02 now THAT i like to hear heh 17:38:18 i added code to create structures in isforth 17:38:30 its code mrreach sent me a while back but i wasnt very interested in it back then 17:38:30 heh 17:38:37 its NEAT code!! 17:38:52 where? 17:39:28 its not in the releaserd code hang on 17:39:48 : struct: ( --- a1 ) 17:39:48 0 constant \ create named structure 17:39:48 here 4- \ remember body field address 17:39:48 0 ; 17:39:57 : field: ( n1 n2 --- ) 17:39:57 over const \ create named structure field offset 17:39:57 + ; \ keep total structure size 17:40:08 : ;struct ( a1 n1 --- ) 17:40:08 swap ! ; 17:40:23 struct: foo-struct 17:40:39 4 field: field1 17:40:46 20 field: field2 17:40:51 struct; 17:41:04 4 and 20 are bytesize of the respective fields 17:41:09 so to USE these you do 17:41:33 some-address field1 + @ or ! or something 17:41:50 you have to add the field offset to the base address of the instance by hand 17:41:53 thats NOT done for you 17:42:29 struct: link 17:42:29 4 field: link.parent \ link to previous structure 17:42:29 4 field: link.child \ not used in this example 17:42:29 ;struct 17:42:29 struct: foo-data 17:42:30 link field: foo.link \ link to previous and next 17:42:32 4 field: foo.value \ some important info 17:42:34 17 field: foo.name \ a counted name string maybe 17:42:36 ;struct 17:42:42 : foo-create ( a1 n1 --- ) 17:42:44 last-foo @ \ get address of last created foo struct 17:42:46 here dup>r \ get address of new structure 17:42:48 last-foo ! \ remember it for next go 17:42:50 foo-dat allot \ allocate space for structure 17:42:54 r@ foo.link + link.parent + ! \ link back to previous foo structure 17:42:56 r@ foo.value + ! \ store n1 in foo.value field 17:42:58 count -1 /string \ :) 17:43:00 r@ foo.name 17 erase \ just in case name is less than 16 bytes 17:43:02 r> foo.name + swap cmove ; \ copy name into structure 17:43:04 thats the example code i created for it heh 17:43:08 hmm cool 17:43:14 it is :) 17:43:45 I found a forth program I wrote once to print all the notes in all 12 keys in the cycle of 4ths/5ths 17:43:52 notice how i make the structure fields LOOK c like 17:44:00 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 17:44:00 by calling them structurename.field 17:44:01 hehe 17:44:20 like G (Em): G A B C D E F# 17:44:46 eh ? 17:44:50 yeah, you just include the . in the name :) 17:44:56 yes hehe 17:45:00 --- nick: kc-food -> kc5tja 17:45:07 --- nick: rob_ert -> zZzZz_bert 17:45:07 Oooo...music and Forth in conjuction. 17:45:11 it smacks of hungarian notation tho 17:45:14 UCSD has a program or two that does that. 17:45:42 I440r: No it doesn't. Not even close. 17:45:49 you know how you every time you move the key up a fifth, you add a sharp? or something like that 17:45:59 Hungarian notation is identification of the type of field you're accessing, not the datatype of the object you're accessing. Big difference. 17:46:05 kc5 hehe it isnt hungarin notatioin but it smacks of it :) 17:46:07 --- join: davidw_ (~davidw@adsl-209-109.38-151.net24.it) joined #forth 17:46:16 You have a warped view of reality then. 17:46:19 thats what this is too. basically 17:46:21 --- quit: davidw (Read error: 113 (No route to host)) 17:46:23 I don't see Hungarian anywhere in it. 17:46:27 good hehe 17:47:40 i also modified isforths case: to allow for a default case 17:47:51 i could have done this right off but i was too lazy :P 17:48:25 --- nick: air -> air|cabin 17:49:24 hey i440r, how come I always get "short jmp out of range" in loops.1? older nasm? 17:49:39 I just change it to "jno near branch" 17:49:48 err possibly because thers been some code added and the source specifies short 17:50:10 i shud prolly just remove all "short" from the jumps 17:50:17 you mean you don't recompile the kernel before you release it? 17:50:26 err. I dont get that heh 17:50:41 Jcc's are always short by default, at least in 0.98.1 17:50:41 tho - i think i fubared the release a little hehe 17:50:59 only if it KNOWS the target is in range 17:51:17 if its a forward branch it wont work if you SPECIFY short and its out of range 17:52:52 Yet another reason to write an open source project in Forth: You can actually embed Easter Eggs, and very few people will be able to find them from the source!! 17:53:58 haha 17:54:02 heheh 17:56:05 * I440r is still pining for an assembler 17:56:09 hint hint ;) 17:56:36 my compiler is coming along pretty good 17:56:45 check out fc1/fc2 17:57:01 i just did 17:57:04 that should give you a clue 17:57:15 it looks like it outputs assembler SOURCE not asm :) 17:57:27 yeah but it has an expression parser 17:57:46 the parser would be easily adapted to parse asm 17:58:03 aha 17:58:04 heh 17:58:09 well hurry up! lol 17:58:09 hh 17:58:31 then it needs all the code generation crap 17:58:41 assemblers are harder than compilers :) 17:59:59 i know 17:59:59 :P 18:00:03 i can write a compiler :P 18:03:00 it's not much harder to parse infix than forth 18:03:15 why'd I ever bother with postfix? 18:03:47 no really it was a good starting point :) 18:05:01 eh? 18:08:52 you know what i men 18:10:51 heh 18:11:05 5 # eax mov is an abomination 18:11:06 nuff sed 18:11:07 :P 18:11:25 We will simply have to agree to disagree on that point. 18:11:28 if mov eax, 5 takes a slightly more complex assembler. so be it 18:11:36 kc5 agreed :) 18:11:47 and i wont dislike you or think less fo you for your silliness :)P 18:11:48 heh 18:12:15 Really? What took you so long? ;) 18:12:26 heh 18:12:38 oh, won't.... sorry, I thought you said you would. I can't read right now. 18:12:45 tcn when are you gona get your bsd box online in here :P 18:13:24 i got shitloads of stuff i need in isforth. i realy need to get SEE working and get that damned debugger written 18:13:27 * kc5tja has a head cold...this sucks. I'm all light-headed now. :( 18:13:40 drink some JD -that will cure it :) 18:14:08 i440r why do you think I went back to linux? BSD's too big 18:14:18 --- quit: davidw_ (Read error: 113 (No route to host)) 18:14:27 tcn bsd is also more complex 18:14:33 to use that is 18:14:45 should i just abandon bsd with isforth ? 18:15:13 leave the bsd build permanantly broken unless someone else just happens to fix it ? 18:15:30 theres at least one guy who comes in here who used bsd and wants to use isforth 18:15:33 I440r: No fecking way. JD is so gross, drinking goat feces tastes better. 18:16:01 kc well i like jd and have never drank goat feces myself so ill have to take your word for it :) 18:16:03 lol 18:16:28 * kc5tja has had JD, and that stuff can stay on the shelf, where it belongs. 18:16:49 Good quality tequilla, however ... now that would definitely work to cure things. 18:16:59 yuck 18:17:01 puhh 18:17:02 puhh 18:17:03 heh 18:17:18 I'm talking about tquilla so good, you don't need the lime, or the salt. Just whoof it down. 18:17:21 Straight up. 18:17:38 tcn btw did you FIX that out of range branch ? 18:17:47 kc5 woffing jd is a waste 18:17:49 you SIP it 18:17:52 VERY slowly 18:17:55 savouring every drop 18:17:58 To me, that whoofing. 18:18:30 im getting depressed about being the only one developing isforth 18:18:34 i NEED help! 18:18:41 theres just too much :( 18:18:49 too much shit i want but cant do it all 18:18:53 Take it one step at a time. 18:18:59 i am 18:19:02 Do not try to do everything all at once. 18:19:09 it will be finished in about 50 years at this rate 18:19:14 So be it. 18:19:18 no 18:19:25 * kc5tja has been developing Dolphin since he was 13, and it still doesn't yet "run." 18:19:26 i440r: loops.1, line 140: change it from 'jno branch' to 'jno near branch' 18:19:27 might as well rm -rf isforth in that case 18:19:41 tcn i dont get that error 18:19:43 how old are you kc5? :) 18:19:47 27 18:19:52 hehe 18:20:01 tcn what version of isforth is tht btw ? 18:20:07 * Speuler almost caught up reading backlog 18:20:14 1.04, 1.05a, 1.05b 18:20:38 and what version of nasm ? 18:20:41 I440r: Does isforth have a block editor? Does it even use blocks for source code? 18:20:54 kc5 it doesnt have a block editor 18:20:57 it doesnt use blocks 18:21:01 it uses flat files only 18:21:06 blocks are too archaic 18:21:09 I440r: 6 # ebx mov is a great way of sorting out the weird operand order intel syntax uses 18:21:11 Ahh. 'cos I could have contributed the block editor I wrote. 18:21:31 * kc5tja prefers blocks over flat files anyday. It's the closest thing Forth has to a straight-up database store for code. 18:21:35 Intel isn't wierd! 18:21:42 everyone else is! 18:21:51 no need for them at all unless forth is the complete OS too 18:21:54 tcn lol 18:22:00 mov eax,6 is like "eax=6" 18:22:03 tcn: depends on what you started with 18:22:14 i like source, destination 18:22:21 so do i 18:22:24 Intel was the first CPU to use destination,source ordering. 18:22:27 * kc5tja does too. 18:22:29 but for intel is HAT to be destination source 18:22:33 HAS even 18:22:41 that's what i'd call weird 18:22:51 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 18:22:51 mov eax, # 5 is not ambiguous 18:22:53 --- quit: BigBoyToddy (Remote closed the connection) 18:22:53 RISC CPUs rationalize it a bit. 18:22:54 BB! 18:22:54 t'is like mounting traffic lights upside down 18:23:00 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 18:23:01 --- quit: BigBoyToddy (Remote closed the connection) 18:23:10 methunks bb is having problems :) 18:23:11 "ld r0,5" Load R0 with 5 18:23:24 "st r4,(r5+r6)" Store R4 to (r5+r6) 18:23:27 etc. 18:23:46 all the motorola cpu's i've used didn't have MOV, they had LDA, LDB, etc.. :) 18:23:52 so is chippie gona show tomorrow ? 18:23:58 tcn: 68k ? 18:24:04 I440r: It's not an issue of being ambiguous; it's an issue of what comes natural to a human reader. 18:24:06 move 18:24:09 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 18:24:18 yay!!! he made it :) 18:24:20 move is somewhat more generic 18:24:24 6811/12 18:24:35 kc5 when im reading 68k 68k standard syntax is natural to me 18:24:48 hello 2 all forthers. 18:24:52 when im reading x86 the x86 INTEL syntax is natural to me 18:25:17 I440r: Only because you're already familiar with it. Take a newbie, OTOH, and they'll be confused out of their wits. 18:25:21 * kc5tja has seen it happen numerous times. 18:25:23 lol 18:25:27 deservedly so:)))) 18:25:28 lol 18:25:42 Just got two new books in, Intorduction to Forth, and also Writing FCode Programs. Both pretty good, the FCode is very technical with TONS of code samples. 18:25:44 newbies need to have alot of confusion factor heaped on them 18:25:49 that will wead out the lamers 18:26:05 fcode? never heard of it 18:26:05 * kc5tja actually started out with the Intel syntax, and when I got my Commodore-Amiga, and started programming 68000 assembly for the first time, I felt I was totally in heaven. 18:26:05 wead = smoking lots of it 18:26:15 weed 18:26:22 forth code, the sbus stuff that drives Sun machines 18:26:25 kc5 yea - 68k rocks 18:26:29 like , skunk 18:26:32 or K2 18:26:45 life begins at 68040. fun begins at 68050 - senility begins at x86 18:26:46 heh 18:26:49 fcode is the standard source bytecode format used by OpenFirmware. It's not sbus specific. 18:26:58 Life begins at 68000. 18:26:59 oops, thanks. 18:27:09 Yes, Openfirmware 1.0 and 2.0 18:27:13 Thanks for the correction. 18:27:26 --- join: TheBlueWizard (TheBlueWiz@ip-216-25-205-129.vienna.va.fcc.net) joined #forth 18:27:27 --- mode: ChanServ set +o TheBlueWizard 18:27:30 tbw!!! 18:27:32 68010 is the single best 680x0 CPU ever made. Keeps the simplicity of the 68000, but adds support for external hardware to intercept bus/address errors, external MMUs, and more. 18:27:33 hiya all 18:27:36 hi tbw 18:27:40 hiya I440r!!! :) 18:27:44 he doesnt come till TOMORROW ppl! 18:27:45 lol 18:27:46 and hiya kc5tja :) 18:27:56 68020 is where Motorola's insanity begins. Itself, it's just a 32-bit version of 68010, but the 68030 is a joke. 18:28:11 the a1200 i had was 020 18:28:16 first one with a vbr i believe 18:28:20 020 that is 18:28:21 Despite being faster, the 68040 insists on removing VERY commonly used instructions, and the 68060 is no different. 18:28:30 the 010 didnt have the vbr i dont think 18:28:34 I440r: 68010 had the VBR 18:28:40 oh 18:28:41 hrm 18:28:43 NeXT built a wonderful hardware platform based on 030, and then upgraded to 040, and finally did a very limited test system with 88110 dual systems, back in 1992 18:28:47 I440r: I hear you loud-n-clear hehe...I already sent that announcement to MD FIG mailing list about his, ahem, second coming ;) 18:28:55 So to say 030 is lame, IMHO that is not very nice or fair. 18:29:19 anyone got an eta on his arrival ? 18:29:21 [I'm a NeXT friend] 18:29:31 any1 of you got a gps ? 18:29:36 BB i use windowmaker - i think thats nice :) 18:29:38 Sounds like we are waitin for elvis to arrive or somthing. 18:29:39 its nextish 18:29:51 I440r: I thought CM will come around 5 PM EST? 18:30:01 k. :) 18:30:05 BigBoyToddy: But it's true. Motorola removed a number of instructions that were quite commonly used from the hardware, requiring them to be emulated in software in supervisor space. The 68030 BROKE AmigaOS big-time before they had to come out with AmigaOS patches that implemented those instructions in software. 18:30:08 about the same time as last time 18:30:31 68040 and 68060 did exactly the same things, too. 18:30:53 they were thining out the microcode ? 18:30:55 * TheBlueWizard hmms re: '030 breaking old AmigaOS big time...(presumably 1.3 and earlier) 18:30:57 kc5tja: that sucks, too bad for the Amiga fans, that must have hurt them big time, and made the OS look broken, but really it was the hardware. I can understand, NeXT though didn't have legacy to deal with at that time, the 030 was their 'first' release. 18:31:01 to allow for some speed increase ? 18:31:15 Fortunately, AmigaOS 2.04 had support for 68030/68040 code already. 18:31:49 BigBoyToddy: It wasn't long for patches to be released. Many 68030/040 upgrade cards had patches in ROM already. 18:31:52 yup...AmigaOS 2.04 came with the release of A3000, 18:32:02 but the fact that those patches were *needed* is, I'm sorry, thoroughly uncalled for. 18:32:05 I still have A3000...still working! 18:32:13 As I recall, migration even at a hardware development level on NeXT was pretty simple from 030 to 040, binary compatible, and also minor recompiles for those that did hacking/assembly. But even the binary (machine code) for a major word processor just worked from 030 to 040, so it depends on what the OS and developers are doing with something under the hood. 18:32:15 tbw ever run linux on it ? 18:32:21 * kc5tja still has his Amiga 500 -- 7.15909MHz, with Kickstart 2.04 -- still working. 18:32:21 IO have a couple A2000. 18:32:37 I440r: nope...I'd rather keep Classic AmigaOS 18:32:40 * Speuler with a500 18:32:46 I also ahve every single Apple II made, all versions, hardware and software :) 18:32:51 ive got a beat up a1200 in england somewhere heh 18:32:57 * Speuler proud owner of a500 + scsi 18:33:04 i have 3 kaypro II's 18:33:09 512 kb :) 18:33:10 all fully working 18:33:13 * TheBlueWizard is amazed at the number of Amiga owners here 18:33:14 If you restrict the code subset to that used by the 68000, you're fine, no matter what CPU you use. 18:33:18 kaypro lost to Osborne didn't they? 18:33:28 something like that 18:33:44 Then osborne lost to itself, worst enemy was itself. 18:33:57 But there was Motorola's big mistake. Why bother introducing features if you are just going to remove them later? 18:34:09 nasa is looking for 8086s 18:34:12 BigBoyToddy: I used to dabble in Apple ][ stuff while in high school (at school, as I couldn't afford that back then) 18:34:33 BTW, having a HUGE spring cleaning technical garage sale tomorrow and sunday. 20+ systems, all kinds of goodies, mobos, cards, unix machines (next, sun, sgi and more), and other stuff. 18:34:37 required for some space shuttle instrumentation 18:34:54 difficult to find nowadays, they say 18:34:57 BigBoyToddy: hmm...(drool ;) 18:35:07 TBW, Apple was great fun, and now I collect it all, apple II stuff that is, and have Apple IIIs and macs, and lisas, and more. But my apple II collection is extensive. 6 storage units full :) 18:35:19 I kinda like the 8086 registers :) 18:35:26 but I suspect I don't live close enough for visiting ya hehe 18:35:28 They should find a way to hack in an 80286 instead. There are several places that make rad-hardened 286 clones. The Hubble space telescope runs on a 286, in fact. 18:35:35 who needs general purpose regs 18:35:53 The hubbles still runs on a 286, I thought they upgraded the CPU this past year or two, didn't they? 18:36:19 BigBoyToddy: To what? 18:36:25 BigBoyToddy: impressive...I've seen Apple III...a rarity, considering the disastrous marketing move 18:36:30 kc5tja: crap I don't know, I have vague recollections of it being upgraded. 18:36:30 They changed motherboards, but nothing at all was said about changing CPUs. 18:36:53 kc5tja: hubble is quite advanced 18:36:57 TBW: yep, it was a mess, but SOS was a cool OS for its time, kinda like business ProDOS. I have 3-4 of them fully working, and lots of scraps/parts machines. 18:37:29 kc5tja: oh, thanks, thought they upgraded the complete system/cpu and all. My loss, I'm 0 for 2 tonight. One more and I'm on the bench for the night. 18:37:31 It's peripherals are, but the motherboard is nothing more sophisticated than an IBM AT. 18:37:51 heh...I personally favor the original Apple II...II+ is also acceptable....dislike the later ones 18:38:22 * Speuler still got a pre-pc computer 18:38:48 TBW: I wish I had an Apple II original, that is the ONE I dont' have, so I guess i have all but that one. It is FAR out of reach economically, in the 200-1000 range. I have loads of Apple II+, //e, //e enhanced, //c, //c+, and more. 18:39:35 worst job i ever did was on an appleII 18:39:40 And I also have all NeXT hardware except a color printer. I even have a NeXT dimension system, with 3, yes 3 Dimension boards in it :) that one is insane! 18:39:45 Speuler: blah! 18:39:58 Speuler: the job, was it the fault of the Apple II? 18:40:05 damn, all I have is a Northgate 386 18:40:11 BigBoyToddy: partly 18:40:14 hehe...I briefly dabbled on the original Apple II...it got some cool stuff like step/trace in monitor...and I still want that printout of the monitor that Apple published, as well as some stuff I think is published in that rare Red book 18:40:16 brb 18:40:22 Apple 8-bit machines really stunk in my opinion. The graphics were *horrid*, and the hardware was clunky and bulky. They did have a nice slot expansion system though. I did appreciate that. 18:40:38 Oh, and don't forget the 15360 different cursor types it had. 18:41:14 At least the C64 had good graphics 18:41:34 kc5tja: the slot system was pretty clean, modeled after others as I recall, just mirrored/spoofed ROM addresses, nice indeed. As for the code in the RedBook, that book is about 100-200 bucks now, and I have a copy around here somewhere. I also have the monitor ROM peeled book, and also the original monitor listing, you want it, just ebay it, they are online for a few bucks. 18:41:49 kc5tja: considering the technological limitation at the time of development, I actually think Steve Woz did a pretty good job....but I think IIe and later should've supported more advanced video...it just added 80 column text stuff...*yawn* 18:42:43 * TheBlueWizard likes C64 video system...pretty good for the time 18:43:01 kc5tja: the graphics are really horrid, just saved a chip and had to do 1/3 table lookup, but the 6502 supported that indirect indexed mode, so that was not really an issue. Rendering graphics was pretty simple, and flicker free graphics were easy with two pages of graphics. No sprites native, but a 3rd party board (or two) did have them. 18:43:15 I wouldn't mind have a C64 18:43:18 * tcn check ebay 18:43:52 $20 18:43:54 jupiter ace still an issue here ? 18:44:17 * TheBlueWizard hmms re: monitor listing on ebay...for a few bux....but he doesn't like forking over money thru the Net....aside from the one time transaction to OLS, he never have sent money...ever! 18:44:36 I would like to own a jupiter ace 18:44:42 tandy color pc ? 18:45:03 BigBoyToddy: Precisely. Commodore had vastly superior graphics in a single chip, better colors (not cyan/red/white only), etc. 18:45:05 (6809) ! 18:45:47 The all-time best 8-bit system, bar none, has to be the Commodore 128. 18:46:19 Dual CPU, dual video chips, dual sound (some models apparently had two SID chips in them!), incredibly superior serial I/O bus, etc. 18:46:20 IMHO I thought C128 leaves something to be desired.... 18:46:39 It left nothing at all to be desired. Apple had to go 16-bit with their IIgs to compete with the 128. 18:46:43 * Speuler 's pre-pc computer came with forth in rom 18:46:43 dual SID/VIC? I wasn't aware... 18:47:03 It had 1 VIC chip, and 1 VDC for 80-column text, 640x200/640x400 graphics. 18:47:37 hmm...still, it feel hackish to me... 18:47:49 I think some European models of the C128 had two SIDs (stereo sound); could have just been an experiment though. Most had only 1. The I/O space, however, did leave room for two. 18:47:54 sorry if I offend you 18:47:57 TheBlueWizard: And Apple doesn't? 18:48:38 The only thing I liked about Apples were the motherboards and their slot expansion. 18:48:50 oh, I consider IIe onward not appealing to me...also somewhat hackish (I only have one brief encounter with IIc and never touched a IIgs) 18:48:50 And I understand that Apple version of GEOS really made the system quite usable. 18:49:05 But the default software for it was quite unnatural and incredibly more hackish to me. 18:49:27 IIgs is quite a nice system, actually. 18:50:06 65816 powered, it could handle some 8MB of memory (no bank switching!), had a much needed, LOOONG overdue graphics overhaul (4096 colors, though only 16 can be displayed on any one scan line), etc. 18:50:19 It also had a wonderful keyboard and mouse. 18:50:25 I really enjoyed it. 18:50:33 And it was noticably faster than any Apple II I've used prior. 18:51:03 65816 can run in 8 MHz, 16 MHz and now 20 MHz... 18:51:21 * TheBlueWizard hopes his memory is intact re: MHz rating 18:51:35 g'd night 18:51:52 bye Speuler 18:51:54 invigourating relaxation period everybody 18:52:29 gsos was quite nice also 18:53:00 The IIGS is a neat machine, and fun to program, with great support in the toolbox for banks, which is too bad but needed for backwards support of software. 18:53:09 Speuler: hehe...yup 18:54:26 goodnight all, subway sandwich, and then beddy bye 18:54:28 ltr. 18:54:29 --- quit: BigBoyToddy ("See ya folks, it has been nice to chat with you all.") 18:54:35 well, it's nice to reminisce about that lost 8-bit glory :) 18:58:00 hmm...it went quiet all of a sudden... 18:59:19 I440r: I read some of your c.l.f. postings about your wanting an assembler for your IsForth project, which digressed into 1/2 argument about various points, licensing, whatever :) 19:01:30 heh 19:01:45 yes. the lisencing is a problem 19:01:52 i cant use win32 forths assembler 19:02:11 so I gather you are still stymied by lack of a suitable assembler to build from 19:02:46 yeah, I saw that...though it took several postings to reach that conclusion about Win32 Forth assembler 19:08:18 --- quit: tcn (Read error: 110 (Connection timed out)) 19:09:35 I440r: um...in one of your postings on c.l.f., you said you wanted to implement a console based UI in IsForth...right? 19:16:35 --- quit: Speuler (Read error: 113 (No route to host)) 19:27:53 hey, anybody awake? 19:28:05 YUP, i'M AWAKE :) 19:28:25 oops...accidentally hit the cap key :) 19:28:39 great 19:29:16 id like 2 hack some "dynamic" length initialized array 19:30:02 like int array[] = {1,2,3,4} 19:30:21 it would b ez 19:30:42 but i need a 2 dimensional array inited like that 19:31:00 in Forth? yeah...2 dim'l case is easy too 19:31:11 create table 19:31:13 1 , 2 , 3 , 19:31:29 11 , 12 , 13 , 19:31:35 21 , 22 , 23 , 19:31:39 e.g. 6 7 * CELLS ALLOT would create 6 by 7 array space 19:31:46 no no no 19:32:03 i need initialization somehow 19:32:18 w automatic dimension calculation 19:32:49 oh, all arrays are linear at some fundamental level 19:32:51 coz i wanna allocate a square shaped matrix 19:33:01 iknow 19:33:12 but still... listen: 19:33:40 dp @ table - cell / 19:33:52 this is the number of elements 19:34:13 >float fsqrt 19:34:24 anyway, since you want an initialized array, you just populate it with 5 , 7 , etc...but of course it can't "see" the dimension just from this populating, so you have to supply something more.... 19:34:25 this is the size of the matrix 19:35:09 but id like 2 avoid float-wordlist dependency... 19:35:46 thx 4 listening. got an idea 19:36:06 oh? did I somehow inspire you? 19:37:02 just by listening 2 me ;p 19:37:18 lol 19:37:42 one way to make it "see" the dimension might go like this: 19:38:43 variable 2darray 6 , 8 , 9 , end-row 19:38:51 7 , 0 , 0 , 19:38:57 etc. 19:39:42 create table max-elem chars allot 19:39:42 table 19:39:42 00 _ 01 _ 02 _ | 19:39:42 10 _ 11 _ 12 _ | 19:39:42 20 _ 21 _ 22 _ | 19:39:42 drop to dimension 19:39:42 end-array where end-row and end-row calculate both parts of the dimensioning you want 19:39:49 : _ ( a n -- a) over c! char+ ; 19:39:49 : | ( n a -- n+1 a) swap 1+ swap ; 19:39:55 this is my version 19:40:03 hmm...yours is quite good 19:40:35 tho, ive missed the dimension accumlator :) 19:40:56 0 ( <- dim acc) table ... 19:42:00 i wont make it more sophisticated, ithink... 19:42:17 yeah...that's one downside, which mine avoid ;) 19:42:20 its perfect 4 the test im hackin 19:43:03 why did u use a variable? 19:43:10 not a simple create? 19:43:19 4 storing the current dimension? 19:43:47 oh...brainfreeze hehe 19:44:04 kforth has a reasonable matrix lib, anyway 19:44:15 I was trying to recall how to just set up a word header 19:44:23 its flexible enough 4 general use 19:44:41 create duh...been a long while since I did any serious Forthing 19:44:59 noticed ;p 19:45:24 heh 19:45:28 i never did b4, anyway 19:45:40 u were able 2 forget things 19:45:46 while im just learning :) 19:45:50 after a long crap filled day, I just wanna veg out with you guys ;) 19:46:09 do u know what am i workin on? 19:46:16 nope 19:46:23 u were not here that time... 19:46:39 some tricky matrix construction stuff 19:47:03 there is a not fully filled matrix 19:47:22 u have 2 fill it in any possible variations 19:47:26 oh? I must've missed out on that...and here you pretty much solved it already....right? 19:47:49 ans it must meet 2 constraints 19:47:55 no, im far from it 19:48:00 sparsely populated matrix, eh? 19:48:19 ??? 19:48:31 sg like that, iguess 19:48:49 wanna know the full problem? 19:49:07 it was a prolog homework 4 some1, anyway 19:49:14 e.g. most entries are zeroes, with occasional nonzero entries here and there...typical in certain applications 19:49:24 so it should b solved by some declarative lang 19:49:42 but its pretty compelx 19:50:00 nah, in what apps? 19:50:25 certain scientific applications :) 19:50:31 im very curious about the application field of .... 19:50:32 :))) 19:50:37 but what kind of? 19:50:52 eh, hold on. im gonna show the full problem 19:51:40 one example: a matrix of circuit connections between parts...it can be sparsely populated 19:52:12 aha... thats right... 19:53:13 http://tunes.org/~nef/logs/forth/02.05.17 19:53:25 08:08:25 imagine a matrix of numbers, a so 2 say M*M table 19:53:25 ugh sorry back heh 19:53:45 a good data structure and algorithm textbook discuss the implementation and analysis of manipulating sparse matrices....such matrices are ypically 1000 by 1000 or bigger, yet efficently encoded 19:54:33 wouldnt a matrix multiply word be specific to the dimensions of the given matrix? 19:54:47 so a 2*2 multiply7 wouldnt work with a 3*3 matrix ? 19:55:31 cant recall, but probably yes&no 19:55:48 tbw yes im goign to be doing a console based UI in isforth 19:56:05 it will be much easier now that i have structures in isfortg 19:56:08 u need 2 construct algos 4 lil matrices 19:56:18 and use those 4 larger 1s 19:56:47 I440r: I see...I suppose you won't be slavishly folloing (n)curses...I think it leaves something to be desired 19:56:55 I440r: how interesting ;p 19:57:25 err no ncurses 19:57:40 cool :) 19:57:50 isforth can alredy do cursor control 19:57:57 WITHOUT bloatcurses 19:58:22 * TheBlueWizard would love both horiz and vert windowed scrolling...ncurses doesn't handle that well 19:59:23 well i might be able to do that :) 19:59:35 hehe....ncurses has to be bloated in order to be compatible with historical curses implementations...and I have to say ESR and gang did a great job...but time marches on oh so violently! ;) 19:59:37 i still dont knnow if what im planning will work 19:59:53 will writing out the entire console be slow ? 20:00:13 actually, ill only need to write out windows that have changed 20:00:20 maybe 20:00:42 but at times i might have to write the complete console when any change occurs 20:00:58 but that might make slow machines drag 20:01:05 the curses was originally designed to work across slow network (think of dumb terminal connected to a timeshare minicomputer)...but now that we have PC roaches all over the world, so you can discard this limitation 20:02:18 i might implement a 'write changes only' algorithm 20:02:53 I believe it would suffice to refresh just a sequence of lines...anything more advanced would be quite complicated to code (the optimization code found in ncurses is quite hard to figure out) 20:03:18 not if your doing windowing 20:03:25 imagine you have a window covering another windo 20:03:30 and the one behind changes 20:03:49 you dont want to draw BOTH windows - draw the one that changed, then draw the one that didnt 20:04:06 so that it overwrites the parts of the first window that it hies 20:04:07 hides 20:04:16 local screen updating on even a lowly 8086 based PC by hardware banging is pretty fast enough...and Linux runs on 386 and higher, so.... 20:04:37 im not just talking about LOCAL updating tho 20:05:02 no reason why you cant be viewing windows on your box that are displays of things happening here 20:05:06 I have a book that discusses the algorithms for doing text based windowing 20:05:20 physical or e book ? 20:05:28 i would be interested in what it says 20:05:39 what do u call a square shaped matrix? a quadratic matrix? 20:05:51 physical...it is published in 1985 I think 20:05:54 i want a TUI that works similar to the amiga workbench 20:06:00 i.e. allocate screens 20:06:07 allocate windows. link windows to screens 20:06:11 allocate menus 20:06:17 link menus to windows (or screens) 20:06:21 etc etc etc 20:06:29 onetom: MxM matrix is called a square matrix 20:06:40 k, thx 20:06:44 tbw are there any oblong matricies ? 20:06:49 3*5 or 5*3 >? 20:06:51 but what is quadratic then? 20:06:59 I440r: ah...I rather want it to be a bit more simple 20:07:11 tbw i WANT it to be simple :) 20:07:21 i simple ;) 20:07:22 oh yes there are "oblong" matrices 20:07:52 tbw wanna do the TUI as a joint effort ??? :) 20:07:57 there are a lot of literature dealing with matrices (trust me; I have a masters in math :) 20:08:08 tbw teach me maths 20:08:15 i dont know shit about maths heh 20:08:24 hmm...of course I am notoriously slow in delivering stuff 20:08:31 tbw so am i 20:08:35 i LIKE slow coders 20:08:51 I know tons and tons of smelly shit about math...and physics...and comp sci hehe 20:08:59 lol 20:09:03 if you dont have the time to do it right the first time - where the fuck are you going to get the time to do it over 20:09:04 http://ou800doc.caldera.com/SDK_charm/_The_ETI_Libraries.html 20:09:11 ill but some skeleton code together and send it to you 20:09:48 i dont understand maths but i can guarantee my vga mode $12 breshenhams line drawing code is the fastest there is 20:09:56 erm for vga mode $12 that is heh 20:10:25 I440r: ...khm... & who cares? ;p /flame 20:11:05 heh 20:11:06 --- part: kc5tja left #forth 20:11:06 knowin smelly shit is more important, ithink 20:11:17 onetom vga mode $12 is a HELL of alot of PHUN!!! heh 20:11:23 ok...I also envision a few level of "libraries"...e.g. the bottommost layer would deal with cursor placing, color selection, and other textual primitives....small, yet practical for, say, 80% of simple console based coding w/o having to do those silly ncurses style raw interfacing 20:11:26 who cares that its only 640x480x16 :) 20:12:09 yes - i already have that part - mostly 20:12:24 color selection is in a seperate source file to cursor manipulation etc 20:12:34 also mouse control 20:12:39 that will be in there too 20:12:44 then the next layer would deal with field imputting, etc...independently of windowing...would be good for writing up a simple lynx like browser...and good for install proggies that are found in Debian Linux 20:12:51 I440r: have u cn that spiral-matrix-walk of "mine" yet? 20:12:53 but to do that i need to add a UNGET to key 20:13:09 onetome whats a spiral matrix walk ? 20:13:28 or sor something like make menuconfig :) 20:14:07 [04:53] http://tunes.org/~nef/logs/forth/02.05.17 20:14:07 [04:53] 08:08:25 imagine a matrix of numbers, a so 2 say M*M table 20:14:08 yeah...make menuconfig is a good example....the current version requires ncurses...bloated :) 20:14:11 tbw the one thing i realy want to avoid is dependancies 20:14:27 I440r: chk that & dodge that ;) 20:14:44 the color.f source file depends on the term.f source file as it is 20:15:02 dependant files realy belong in their own source directory 20:15:09 TheBlueWizard: u 2. 20:15:10 right now they are all in one dir 20:15:18 read up to the 2nd constraint 20:15:33 i want to be able to say - have cursor control and colour stuff WITHOUT requiring windowing 20:15:41 windowing has to depend on cursor stuff tho 20:15:45 the windowing system obviously require quite a number of parts, hence the dependencies...yeah, have to minimize the number of dependencies w/o sacrifice the quality and flexibility...my philosophy: include what you need...and nothing more! ;) 20:16:19 TheBlueWizard: ive created a bit more sophisticated "syntax" 4 the prev problem: 20:16:22 yes - decreasing dependancies is same as decreasing complexity 20:16:23 ALWAYS a plus:) 20:16:25 table := 20:16:25 00 _ 01 _ 02 _ | 20:16:25 10 _ 11 _ 12 _ | 20:16:25 20 _ 21 _ 22 _ | -> M 20:17:59 i should rather name := as <- ... so it wont remind 2 pascal that much :) 20:18:36 either way it seems rather infix for forth :-) 20:18:47 tho, its not that :) 20:19:10 I440r: yeah...but reducing dependencies may result in reduced flexibility and possibly quality...it is a delicate tradeoff...for example, some likes windowing with shadowing, others don't...and we need to remember to support several modes like 80x50 20:19:56 : -> ( n a "ccc" -- ) drop [compile] to ; 20:20:06 whats wrong w it? 20:20:19 it doesnt seem 2 work :/ 20:20:42 err TO is a fucked up word 20:20:49 thers NO place in forth for overloading 20:20:53 use !> 20:20:55 probably postpone to would do the job... 20:21:32 I440r: no1 knows !> ... 20:21:54 yes they do 20:22:00 !> is a FORTH word 20:22:03 no they dont 20:22:05 TO is fucked up 20:22:06 u do 20:22:11 only u.. 20:22:14 it could mean from 1 TO n 20:22:19 or sore TO something 20:22:24 it does NOT express what its doing 20:22:32 parsing is evil 2 some extent as we know 20:22:37 and its an overloaded word so you have to check its context to see what its doing 20:22:40 !> is simpler 20:22:47 thats bad about to, but nothin else 20:22:50 it SAYS what its doing ! (store) > (to) 20:23:23 show me an example 20:23:37 for isforth.... 20:23:39 define - modify - use 20:23:39 0 var foo 20:23:43 5 !> foo 20:23:45 stop 20:23:53 or for OTHER forths 20:23:56 0 value foo 20:23:56 sorry, go in 20:24:03 5 !> foo 20:24:11 hey, where is the use part? 20:24:18 use ? 20:24:25 yup 20:24:30 how do u use that var? 20:24:36 var-name @ 20:24:42 and thats the problem 20:24:45 the @ 20:24:47 .... foo 0 do i blah loop 20:24:51 its like a value 20:24:56 really? 20:24:58 which is basically identical to a constant 20:25:01 but has a different name 20:25:03 then whats the difference? 20:25:05 so you can modify its body 20:25:10 TO is overloaded 20:25:10 just the name? 20:25:25 eh, what do u mean by overloaded? 20:25:27 but yes 20:25:33 now u made me really curious 20:25:37 if the only thing wrong with TO was its name..... 20:25:40 it would be enough 20:25:46 i will NOT be defining it in isforth 20:26:04 TO is a fucked in the head name designed to apease the lame ass c scripters 20:26:07 not being able to read !> 20:26:17 k, skip it 20:26:18 hehe 20:26:21 then we have =: for the lame ass pascal coders 20:26:24 it pisses me off 20:26:26 BIG TIME 20:26:31 !> is a FORTH word 20:26:37 show me how 2 derive a word using !> 20:26:38 ill use forth words 20:26:44 [05:26] !> is a FORTH word 20:26:46 um, the "correct spelling" is := hehe 20:26:53 who states it, exluding u? 20:26:57 : !> ' >body state @ if compile %!> then ; 20:27:25 k, go on 20:27:36 continue answering 20:27:46 whats left to answer? 20:27:56 [05:26] show me how 2 derive a word using !> 20:28:07 *derive* u know whats that? 20:28:11 i just sowed you the definitionf ro !> 20:28:17 define an other word using !> 20:28:18 for 20:28:28 err how about 20:28:31 defer blah 20:28:31 tho, no1 asked u 2 do sop 20:28:34 ' someword !> blah 20:28:48 the word IS is prefered here however as it shows context 20:29:04 you are modifying the body field of a constant when using !> (or a var) 20:29:10 and a defered word when using IS 20:29:15 the definition for is is 20:29:20 ' !> alias is 20:29:52 aint u understood the question or just pretend not understanding? 20:30:14 err i guess i dont understand it :) 20:30:15 i want 2 build another word using !> 20:30:20 ok 20:30:27 you want to see an application for !> ? 20:30:30 : -> do sg .... !> ; 20:30:33 nooooo 20:30:37 or you want to use !> in a creating word 20:30:39 4 gods sake 20:30:53 dont u understand natural languages? 20:31:10 * TheBlueWizard laughs 20:31:14 .... -> aValue 20:31:31 err ok. heh 20:31:37 i dont understand :) 20:31:48 tell me EXSCTLY what you are trying to accomplish 20:31:51 and ill show you the code to do it 20:32:16 TheBlueWizard: was i really so misunderstandable? 20:32:49 TheBlueWizard: dont u think eeyore always starts answering b4 the end of the questions? 20:33:05 that "don't you understand natural languages" is quite subjective 20:33:06 no thats radar from mash :) 20:35:03 ur screen is not clean.. that was not mash 20:35:49 I440r: seriously: u always answer what ud like 2 tell. what u know very well 20:35:49 onetom radar from mash would answer questions at the same time they were being asked etc 20:36:08 i dont understand what you are trying to do 20:36:17 and u dont care its also known well by the quering ppl 20:36:20 if i knew what yuou were trying to do i coould show you how i would do it 20:36:26 u consider them dumd usually 20:36:31 err 20:36:41 onetom i do NOT consider you dumb 20:36:45 not even close 20:36:48 most of us dont ask obvious questions... 20:37:03 if I misunderstand you its NOT because you are dumb 20:37:07 eeyore, iknow u dont consider me dumb 20:37:13 u just behaves so 20:37:39 i get pissed off with the way SOME people insist on bastardizing the forth language with fucked up things like TO and POSTPONE etc 20:37:48 and it makes me ANGRY and i tend to show that 20:37:55 but the anger isnt directed at YOU 20:38:03 its at the fucked in the head words 20:38:14 and u confuse urself while u r angry 20:38:28 because u interrupt the asking ppl 20:38:44 and makes their question a mash 20:38:54 umakes 20:39:21 heh 20:39:25 coz u start answering another -tho similar- question 20:39:35 ok start over 20:39:35 what are you trying to d 20:39:35 do 20:39:35 exactly! 20:39:37 but we r offtopic again 20:39:40 * TheBlueWizard chuckles 20:40:05 : aNew!> do sg .... !> ; 20:40:19 ... aNew!> aValue 20:40:22 ok. the part i dont understand is the do sg //// 20:40:33 er do sg .... 20:40:37 define that part more 20:41:11 : aNew!> !> ; 20:41:34 do sg was part of the ... actually :) 20:41:52 twas natural lang, c now? 20:42:01 well. 20:42:12 sg = something 20:42:17 you would need to do [compile] !> 20:42:19 u would say that :) 20:42:23 storeto itself is immediate 20:42:23 yup 20:42:35 i thought so, but it doesnt work somehow 20:42:47 : blah> ...... [compile] !> ; 20:43:02 ok lets do a REAL (ish) example 20:43:04 g4 0 value v : >> to ; v . 5 >> v v . 20:43:08 onetom: in file included from *the terminal*:-1 20:43:08 onetom: /tmp/fsock-sh-server.request.tmp:46: Invalid name argument 20:43:08 onetom: 0 value v : >> to ; v . 5 >> v v . 20:43:08 onetom: ^ 20:43:08 onetom: Backtrace: 20:43:20 : 5*!> 5 * [compile] !> ; 20:43:22 g4 0 value v : >> [compile] to ; v . 5 >> v v . 20:43:23 0 var foo 20:43:24 onetom: 0 0 20:43:27 1 5*!> foo 20:43:27 onetom: so the question is: how to write the code for TO (or !> for that matter) that WORKS, right? 20:43:29 foo . 5 20:43:40 2 5*!> foo foo . 10 ok 20:43:43 g4 0 value v : >> postpone to ; v . 5 >> v v . 20:43:47 onetom: 0 0 20:43:57 woohoo 20:44:41 TheBlueWizard: sg like that, yes. its about COMPILE/[COMPILE]/POSTPONE actually 20:45:52 ah...tho I am not familiar with POSTPONE, and different Forth define COMPILE and [COMPILE] differently....enough to mess up my brain for good :P ;) 20:46:18 * TheBlueWizard is an old-timer, for those that need a bit of clarification :) 20:46:23 tbw compile and [compile] have similar names but two VERY differnt functions 20:46:35 that I know hehe 20:46:37 how ANYONE could join those two functions into one word is beyond me 20:46:53 [compile] compiles an immediate word into the CURRENT definition 20:47:03 coz u dont understand thing, then... 20:47:05 and then there is ['], and other similar stuff 20:47:13 compile is used in creating words to make the creating word compile some other word INTO the target definition 20:47:29 i.e. they have absolutely NO connection with each other in any way what so ever 20:47:39 tbw think of ['] as literal 20:47:45 ' blah literal 20:47:49 is what ['] blah does 20:48:04 ah 20:48:22 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 20:48:34 wb bb 20:48:39 thanks 20:48:42 thx 20:48:44 t 20:48:45 . 20:48:47 :) 20:49:04 gotta go i think... 20:49:15 ltr 20:49:28 well, bye BigBoyToddy 20:49:54 "It's getting too bright" ;) 20:50:39 gotta go but not away, just back coding :) 20:50:58 :) 20:51:00 ive cheated yall >:) 20:52:08 * TheBlueWizard wonders what to do with a cheater like onetom ;) 20:53:03 --- join: futhin (futhin@dial-20.ocis.net) joined #forth 20:53:17 : >> [compile] !> ; ok 20:53:17 2 >> x x . 2 ok 20:53:19 i440r: chuck moore is coming by tomorrow at same time 20:53:26 it worx in isforth :/ 20:53:30 hi futhin :) 20:54:08 i440r: i haven't advertised on comp.lang.forth, but if you want to.. 20:54:11 hey onetom 20:54:30 oh, jesus, ive nearly forgotten 20:54:33 i'm on somebody elses comp.. drove to a town to visit mom & grandparents 20:54:37 hiya futhin 20:54:44 hey thebluewizard 20:54:45 so... 20:54:48 any of you 20:54:49 onetom corse it does 20:54:54 want to advertise on comp.lang.forth 20:54:57 go ahead.. 20:55:08 i dunno, i'm not really concerned about getting ppl in here 20:55:17 futhin ya 20:55:20 5 est ? 20:55:31 i want it to be relatively quiet when it is unmoderated and chuck is here.. 20:55:39 not too many people.. 20:55:44 i don't really want to advertise it 20:55:49 what do you guys think? 20:55:54 well. YOUR manager :) 20:56:06 im just a coder :P 20:56:18 futhin: dont know... 20:56:26 futhin: what r we gonna ask? 20:56:36 i've been out of it for the last week.. i've been zoned out 20:56:39 brain is sluggish, etc 20:56:49 onetom: i still have a number of left over questions 20:56:58 futhin what ya been smokin ? 20:57:08 those r not enough, ithink :( 20:57:18 onetom: yeah they are 20:57:27 onetom: after we finish off the questions 20:57:28 i think we should advertise 20:57:32 it'll go unmoderated 20:57:32 no 20:57:34 too much noise i think.. 20:57:35 or it will look like were hogging 20:57:40 heh 20:57:47 the logs will go up :P 20:58:15 and not 2 serious 4 such a mind as chuck 20:58:27 but ppl wont have had the chance to chat with chippi 20:58:27 chippie 20:58:43 loll 20:58:43 well we can make this a regular monthly event 20:58:50 watta name :) 20:58:58 did chuck say he was ok with that ? 20:59:01 maybe chuck would be willing to show up monthly 20:59:07 haven't asked him yet 20:59:10 heh 21:00:02 yeah, i'm out of it, my mind is somewhere floatin along 21:00:13 why 21:00:21 stop smokin that shit - its bad for ya 21:00:22 no reason 21:00:28 heh 21:00:32 lol 21:00:38 personality change or something 21:00:45 been happening over the last two weeks 21:00:46 im gonna miss the aikido excercise, im afraid :( i havent slept this night 21:00:46 schitzo eh 21:01:17 well 21:01:22 i gotta get off the computer 21:01:40 its better 2 learn ultratech* 21:01:40 futhin: do u remember the spiral problem? 21:01:40 :) 21:01:43 bye futhin 21:01:55 futhin: thats sad. byebye futhin 21:02:04 i hope you don't advertise, but i won't stop you if you really want to ;) 21:02:12 heh 21:02:17 talk to you guys tomorrow 21:02:22 nite nite 21:02:23 have a good night :) 21:02:31 --- quit: futhin ("bye for now") 21:08:14 I440r: look, a workaround: 21:08:22 table := 21:08:22 00 _ 01 _ 02 _ | 21:08:22 10 _ 11 _ 12 _ | 21:08:22 20 _ 21 _ 22 _ | dim to M 21:08:35 : := ( a -- 1 a) 1 ( dimension accumlator 4 |) swap ; 21:08:36 : | ( n a -- n+1 a) swap 1+ swap ; 21:08:36 : _ ( a n -- a+1) over c! char+ ; 21:08:36 : dim ( n a -- ) drop ; 21:09:24 heh 21:10:30 drop to M would also work but its a bit unfit, ithink 21:10:56 do u agree w such a solution? 21:11:16 except the TO certainly ;) 21:11:46 !> is also okay 4 me, dont misunderstand me 21:11:56 just TO is more common 21:12:30 and its not so miserable name 4 it as u advertise 21:13:10 coz, when i see TO, i imagine sg like !> 21:13:13 too 21:13:27 TO is ansified bullshit 21:13:36 any real forth coder would know !> 21:13:44 eh, u r a racist... 21:13:46 or even be able to figure it out if he doesnt know it 21:13:51 im anti ans 21:13:53 BIG time 21:14:01 ans forth is like c 21:14:04 the more i know about it 21:14:07 the MORe i hate it 21:14:13 so I ain't a real forth coder then? (duck-n-run cuz I don't know !>) 21:14:15 everything "invented" by ans cant b good 21:14:28 just hateable shit 21:14:49 I440r: do u remember chucks words? 21:15:12 about ans describing a language with the same name ? 21:15:14 yes 21:15:17 I440r: 15:06:50 Forth is the best language for all purposes 21:15:17 15:07:04 Because it mimics natural language 21:15:46 TO suits this property, ithink 21:15:54 suits 2 .. 21:16:12 i disagree 21:16:17 how do u read !> ? 21:16:24 store-to, dont u? 21:16:27 because TO does not describe what is happening 21:16:30 Store To 21:16:42 there - THAT describes things beautiflly 21:16:46 beautifully 21:16:47 so thats why its not sooo baaad 21:16:54 --- quit: BigBoyToddy ("See ya folks, it has been nice to chat with you all.") 21:16:57 just a lil bit 2 concise 21:18:00 u use far 2 strong words on unimportant side-questions... 21:18:56 and whats worse u usually cant explain why 21:19:30 * TheBlueWizard wonders how Chuck Moore would answer onetom's matrix question...he would just say "just use 5 , 7 , etc...it'll do just fine" :) 21:19:48 just repeat: BEGIN bullshit, ans, crap, fucked up in the head, like-c AGAIN 21:20:27 TheBlueWizard: :)) yeah probably he would inline those stuff 21:21:06 TheBlueWizard: tho, dont forget, its more then x , y , z , ! 21:21:40 coz , stores 2 the end of the dict 21:21:53 what is not suitable all the time 21:22:46 I know...but I'd bet CM isn't bothered by that at all 21:23:06 TheBlueWizard: have u read the whole spiral-matrix-walk stuff yet? 21:24:13 nope 21:31:15 argh where can i get a list of all the syscalls in fbsd ? 21:32:08 try #freebsd 21:35:19 TheBlueWizard: why? aint u interested in @ all? ;( 21:37:06 in it 21:37:57 about spiral matrix walk? 21:44:49 gotta go...bye all 21:46:20 --- part: TheBlueWizard left #forth 21:55:02 --- join: gforth0 (guest@adsl52029.vnet.hu) joined #forth 22:04:33 --- join: onetom_ (tom@adsl52029.vnet.hu) joined #forth 22:08:46 who here is running fbsd ? 22:12:06 --- quit: onetom (Read error: 110 (Connection timed out)) 22:12:07 --- nick: onetom_ -> onetom 22:13:36 --- quit: gforth (Read error: 110 (Connection timed out)) 22:13:36 --- nick: gforth0 -> gforth 22:14:48 --- join: _MrReach_ (~mrreach@209.181.43.190) joined #forth 22:16:38 --- quit: I440r (carter.openprojects.net irc.openprojects.net) 22:16:38 --- quit: MrGone (carter.openprojects.net irc.openprojects.net) 22:16:38 --- quit: oink (carter.openprojects.net irc.openprojects.net) 22:16:49 --- join: I440r (~mark4@1Cust179.tnt3.bloomington.in.da.uu.net) joined #forth 22:19:12 --- join: MrGone (~mrreach@209.181.43.190) joined #forth 22:19:12 --- join: oink (~ziga@owl.cuckoos.net) joined #forth 22:19:20 --- quit: MrGone (Read error: 104 (Connection reset by peer)) 22:23:14 --- join: kc5tja (~kc5tja@stampede.org) joined #forth 22:23:36 17 MSTD BSD { int obreak(char *nsize); } break obreak_args int 22:23:45 is that the same as the linux break syscall ? 22:36:14 grr wheres gilbert or goa when you need them :) 23:03:12 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:59:59 --- log: ended forth/02.05.17