00:00:00 --- log: started forth/02.06.01 00:16:12 --- quit: sif (Read error: 110 (Connection timed out)) 00:57:33 --- join: davidw (~davidw@adsl-66-101.38-151.net24.it) joined #forth 01:32:34 Good morning, all! 03:34:13 --- join: mur (ammu@baana-62-165-189-112.phnet.fi) joined #forth 03:36:34 --- quit: mur (Client Quit) 05:29:08 --- quit: Stepan (Read error: 110 (Connection timed out)) 05:29:18 --- join: Stepan (~stepan@p5084783E.dip.t-dialin.net) joined #forth 05:42:14 --- join: Fare (fare@samaris.tunes.org) joined #forth 05:44:37 Hi Fare. 05:44:40 And wb Stepan. 05:48:05 I need a name for this ecos/ficl thing 05:53:57 I'm going to call it Zog 05:54:04 maybe 06:12:03 come on guys 06:16:41 No idea =) 06:20:41 what does ficl do? 06:21:27 it's a forth 06:22:06 would it run on arm? 06:22:14 is it written in (yuck) C ? 06:22:21 yes and yes 06:22:33 Why not Visual BASIC? :( 06:22:40 vb isn't portable 06:22:44 C is 06:22:55 yes, VB is portable to all systems that matter 06:23:07 Who needs anything else than Windows? 06:23:38 the non-iq deprived? 06:23:56 what deprived? 06:24:16 * rob_ert is just trolling 06:24:20 Ignore me for now :) 06:37:34 you have a son? how old? 06:40:06 * rob_ert wonders if Fare is in the right channel. 07:10:12 indeed, not 07:15:36 --- join: sif (~siforth@ip68-9-58-81.ri.ri.cox.net) joined #forth 07:15:36 Type sif: (or /msg sif to play in private) 08:29:45 --- join: Etaoin (~david@ljk3-7.sat.net) joined #forth 08:31:43 --- join: Speuler (~l@195.30.184.4) joined #forth 08:31:46 g'day 08:42:23 hi 08:42:29 lo 08:47:26 --- quit: Speuler (SendQ exceeded) 08:49:45 --- join: Speuler_ (~l@195.30.184.4) joined #forth 08:50:08 hi agn 08:50:16 brin.openproj is dead 08:50:19 just fied 08:50:20 died 08:50:44 or was there a netsplit a few moments ago ? 08:51:16 --- join: Speuler (~l@195.30.184.4) joined #forth 08:51:17 --- quit: Speuler (Remote closed the connection) 08:51:26 oh 08:51:46 weird things going on .. 08:52:07 --- nick: Speuler_ -> Speuler 09:45:45 --- join: bugslayer (~thin@h24-64-175-61.cg.shawcable.net) joined #forth 09:47:40 --- quit: bugslayer (Client Quit) 10:24:33 --- join: I440r (~mark4@1Cust40.tnt2.bloomington.in.da.uu.net) joined #forth 10:25:20 Hey :) 10:25:24 hi rob :) 10:58:59 --- join: thefox (fox@adsl-209-182-168-45.value.net) joined #forth 10:58:59 --- mode: ChanServ set +o thefox 10:59:39 thefox! 10:59:43 hi :) 11:00:16 i need to recode parse-word to delimit on EOL or the specified char 11:00:41 word/parse-word and parse in isforth are basically laxen and perry code 11:00:48 and its obfuscated 11:01:16 ive walked thru that code mentally a gazillion times and i STILL cant figure out how it works 11:01:16 heh 11:03:06 --- join: ASau (ASau@158.250.48.197) joined #forth 11:03:28 asau! 11:03:29 hi 11:03:37 Hello! 11:03:46 was it you that had that forth printf code or aum ? 11:04:15 No 11:04:41 I had no need to write printf 11:04:55 heh me either 11:05:02 but it was interesting code :) 11:05:17 but that the time i didnt have a compiler capable of actually COMPILING it heh 11:05:30 I haven't seen it 11:05:59 it was a ." that allowed you do do things like x y z ." blah blah %n blah blah %s blah blah %d" 11:06:29 I440r: i got an implementation doing something like this. 11:06:47 allows inserting strings, nums, and some other stuff 11:06:53 speuler cool. i could code it in 10 minutes lol 11:07:01 I see no need to do anything like this 11:07:01 yes %s 11:07:12 Why I cannot use 11:07:17 I440r: i'm sure you can 11:07:41 ." ...." D. ." ..." . ." ...." ( etc) 11:07:59 I think this looks better 11:08:19 ASau: won't works if the string is generated instead of stitched together 11:08:30 No need to use man page for all this formatting issues 11:08:31 asau yes but for every ." " your comping a (.") and a dot - the %s %m %i mechanism would compile smaller code 11:09:06 I440r and code to do all this formatting... 11:09:25 asau forth does perfectly without printf formatting 11:09:34 but it would be an interesting experiment :) 11:09:41 but t'is basically trivial stuff 11:09:42 what i need to be doing now is coding SEE 11:09:46 That's what I say 11:09:47 so i can write the forth debugger 11:10:03 But I have more interesting problems 11:10:32 asau me too - "see/debugger/assembler/meta-compiler" and then some 11:10:57 helps also inserting line breaks, form feed and the like into a single string 11:11:09 isforth now memorymaps its source files but im still grabing chars one at a time out of the map and copying them into tib 11:11:30 will be much faster if i made the memory map itself TIB 11:11:49 set #tib to filesize 11:12:04 but for that i need parse-word to delimit on EOL and the specified character 11:13:12 ... CONSTANT EOL ( ...) EOL WORD ( ?) 11:13:45 Are sitting under UN*X? 11:13:50 asau no i mean. when someone does x word - where x can be a '"' or a bl etc 11:14:14 parse-word should parse UP TO that character. but if it sees an EOL before the specified delimiter. it must stop THERE 11:14:47 Hmm, WORD stops at end of line... 11:15:03 Ahh, QUERY, stops at eoln! 11:15:05 asau no because word normally never SEES eol 11:15:19 query and expect dont store the EOL in tib 11:15:25 they set #tib 11:15:39 word will delimit on end of tib reached or the specified character 11:15:43 Well, I use Fig-Forth dialect. 11:15:55 but when the WHOLE FILE is now in tib you have problems 11:16:04 My QUERY stores EOLN in TIB 11:16:32 asau and what comes AFTER that eol in tib? 11:16:36 blank unused space 11:16:38 Rewrite WORD. Or change EOLN to zero 11:16:43 or junk data 11:17:08 asau i need to recode parse-word 11:17:23 1: memorymap the specified source file 11:17:30 2: point 'tib at the memory map 11:17:38 3: set #tib to the file size 11:17:47 4: revector refill to UNMAP the mapped file 11:17:55 then just interpret as normal 11:18:34 the inner interpreter will keep doing bl word find state if , else execute then nothing left until 11:18:45 for the WHOOLE file 11:20:03 Well, I've seen one my FIG-f. version interpretes command line 11:20:19 I just changed EOLN to blanks 11:20:26 asau isforth can interpret the command line too... 11:20:34 ./isforth - : foo blah blah ; 11:20:48 launches isforth with foo defined because isforth interpreted the tail 11:21:11 wow 11:21:11 Make the WORD not to distinguish EOLN and BL 11:21:28 asau still the same problem, still need to parse up to the specified delimiter OR the blank/0x0a 11:22:02 I see no problem: try to change WORD. 11:22:18 asau THATS the problem hehe 11:22:20 What do you miss in this case? 11:22:37 the "word" or rather in this case "parse-word" im using is from FPC 11:22:49 which is originally from F83 11:22:54 i.e. laxen and perry code 11:23:10 ive single stepped through that code in fpc. 11:23:15 dry ran it in my head 11:23:19 I've not seen L&P code. Have you got it? 11:23:21 over and over and over.... 11:23:32 and i have absolutely NO idea how it works 11:23:42 i could cut and paste the code 11:24:31 Look at Fig-f ENCLOSE and WORD code. 11:24:50 For WORD there're cources form FIG. 11:24:52 colon 'parse-word', parseword 11:24:52 dd tor 11:24:52 dd source, tuck 11:24:52 dd toin, fetch, sstring 11:24:52 dd rfetch, skip 11:24:53 dd over, swap 11:24:55 dd rto, scan 11:24:58 dd tor 11:24:59 dd over, minus 11:25:03 dd rot, rto 11:25:05 dd dup, znotequals, plus 11:25:07 dd minus 11:25:09 dd toin, store 11:25:16 dd exit 11:25:16 flood :) 11:25:24 its that dup 0<> + - >in ! that throws me every time 11:26:12 >r source tuck >in @ /string r@ skip over swap r> scan >r over - rot r> dup 0<> + - >in ! 11:26:19 obfuscated 11:26:40 I440r: did you look at ccg? 11:26:51 ccg ? 11:27:25 i know how i can code the above much simpler, but i would need to modify the return vbalue of scan 11:27:59 scan returns the address of the delimited character plus the number of characters LEFT in the parsed string AFTER that character 11:28:02 What SOURCE does? 11:28:11 rto is R> ? 11:28:21 word would be much simpler if scan returned the string plus a lenght 11:28:26 rto is >r 11:28:29 --- nick: Speuler -> PhoodPhrenzy 11:28:32 and source just returns 'tib and #tib 11:29:17 rto is >R ... tor is >R ? 11:29:47 no r-to to-r rto is r> tor is >r 11:29:56 OK! 11:30:08 those are assembler labels placed on the CFA of each word 11:30:21 had to think of a name the assembler would like yet was still forth-LIKE 11:30:33 : SOURCE 'TIB #TIB ; ( ? ) 11:30:34 it gets confusing tho when you use rot >r and r> in the same word :) 11:30:58 : tib 'tib @ ; 11:31:06 : source tib #tib @ ; 11:31:06 r> is pronounced r-from 11:31:34 to r and r to - i always pronounce '>' as TO 11:31:40 so does my father heh 11:32:09 except when its all by itself of corse 11:32:15 (I used to say FROMR for R>...) 11:32:35 : TUCK ( ??? ) ; 11:32:40 I can understand that. I was suprised to read the pronunciation for a number of Forth words that I had always pronounced a certain way. 11:32:57 : tuck swap over ; 11:33:39 : SSTRING ( ??? ) ; 11:33:44 thefox isforth is already totally NON standard - would it be realy bad if i changed the return values of scan ? 11:34:25 heh /string is easy it takes address and count and n1. it adds n1 to address and subtracts n1 from count 11:34:27 * rob_ert seems to be the one in here not thinking in english. 11:34:54 : /stringdup negate under + under + ; <-- leet l&p code :) 11:35:03 erm /string dup <-- inject a space where i missed it :) 11:35:05 : /STRING ( str -- addr count ) ( ??? ) ; 11:35:33 : /astring ( a1 n1 n2 --- a1+n2 n1-n2 ) 11:35:45 : /STRING DUP CHAR+ SWAP C@ ; ( ??? ) 11:35:57 argh.. mental note must learn to type 11:36:26 advance a1 by n2 11:36:29 decrement n1 by n2 11:36:57 it clips the front end off a string :) 11:37:47 sstring is /STRING ? 11:38:02 : /STRING ( str -- addr count ) ( ??? ) ; ( am I right? ) 11:38:29 if scan would return ( a1 n1 c1 ---- a2 n2 ) where a2 was the address of the scanned up to character and n2 was the number of characters skipped it would be easier 11:38:36 asau yes /string is called sstring in the asm code 11:38:40 but your stack coment is incorrect 11:38:52 ok 11:39:06 What is correct? 11:39:15 : /string ( a1 n1 n2 --- a1+n2 n1-n2 ) 11:39:19 add n2 to a1 11:39:26 subtract n2 from n1 11:39:30 Ahh... Ok! 11:39:39 n1 is the length of the string at a1 11:40:02 I'm slowed down :) 11:42:31 I just looked it up, r> IS pronounced r-from I always have to look up a lot of stuff in ANS, then I don't always interpret it right, but in this case it clearly says the pronounciation is r-from 11:43:09 thefox it might be r-from in ans but how does CHUCK pronounce it! 11:43:37 I've read ANS, a little... I don't use ANS. 11:44:09 toin is >IN ? 11:44:15 yes 11:44:34 >IN @ is address of current pos. for INTERPRET ? 11:45:00 I remember that my friend Dr. Michael Montvelishsky always said DUP with a short u like up instead of a long u like TO as in DUPlicate. 11:45:02 >in is how far into 'tib we have parsed so far 11:45:40 i.e. >IN is displacement (?) 11:45:50 how do you pronounce "char" - i know alot of people pronounce it like "car" 11:45:54 asau yes 11:46:41 I pronounce, as "tscharr", as it's mentioned by MLG 11:47:41 * I440r applies linseed oil to the 1911 grips he is making for his 45.... 11:47:46 from bubinga! 11:48:15 like care. char is pronounced exactly like care. as in I care about that 11:48:52 i always pronounced it as it is spelled.. like the ch in church 11:49:39 it is short for character where the first sound is `care' 'act' 'er' care like air 11:50:12 i know... heh i just always pronounced it the way it was spelled :) 11:50:16 i440: : SKIP ( a cnt c -- a' cnt' ) ( ... ) ; ( ? ) 11:50:22 k-air 11:50:53 asau skip is used to skip leading characters 11:51:07 skip all leading blanks is what its doing here 11:51:11 i440: ok! 11:51:21 or rather, all leading DELIMITERS 11:51:26 which is USUALLY a blank heh 11:51:30 i440: SCAN waits for delimiters? 11:51:49 scan scans UP TO a delimiter 11:52:00 it scans until it sees the delimiter 11:52:22 OK! Make EOLN a DELIMITER. 11:52:45 asau the delimiter is currently specified by whoever calls skip or scan 11:53:10 i need to make scan stop on TWO delimiters 11:53:20 the one specified or an eol 11:53:24 ccg is a runtime assembler in C++ by ian piumarta 11:53:25 but i cant modify scan 11:53:25 Tsch\"ort! ;) 11:53:43 it's nice, but what's nicer is what he does with it 11:53:58 look for squeak's j3 11:54:03 what does he do with it ? 11:54:27 generate code 11:54:31 optimized 11:54:50 i can fix my problem but the fix BREAKS something 11:54:57 i either rewrite scan 11:55:04 or i rewrite parse-word 11:55:16 thats my delema 11:55:27 plus the fact that parse-word is totally unreadable :) 11:55:51 fare i am diametrically opposed to optimizations done by an assembler or a compiler 11:56:02 it destroys the 1:1 co-relation between source and object 11:56:12 Rewrite parse-word. It's more simple task. 11:56:23 Rewriting it breaks nothing 11:57:02 I think a 1:1 correspondence is very powerful because it helps in a powerful feature of forth, treating code as data and data as code 11:57:29 asau the rewrite for parse-word has 2 paths. 1: write a special version of scan 2: rewrite scan altogether 11:57:40 thefox exactly 11:57:55 it also makes debugging the code an order of magnitude easier 11:58:13 optimize that forth/assembler code and you get very fast very difficult to debug code 11:58:18 i440 follow #1. 11:58:44 asau thats what i was thinking 11:59:07 That is also something that may be hard to do with someone else's off the shelf Forth where distribution restrictions apply and hence a good place for diy. 11:59:23 i440 Or you can change all 0x0a to BL. 11:59:47 asau nope 11:59:59 asau how would \ work then 12:00:29 \ parses up to the next eol 12:00:40 and discards whats parsed 12:00:41 I don't use \ 12:00:48 I440r: no optimizations from a compiler??? 12:00:59 i use it ALOT 12:01:08 fare none what so ever. 12:01:09 not even in code generation for 2 2 + ? 12:01:12 not any compiler I write 12:01:16 tho... 12:01:23 In this case such changing is not appropiate 12:01:29 fare who is smarter. me or the compiler 12:01:29 A @ 2 + A ! ? 12:01:51 fare i would personally always code 2 a +! there 12:02:00 you're not smart if you don't teach your compiler to be less dumb 12:02:05 I should be doing the optimization, NOT the compiler 12:02:16 fare i disagree. 12:02:37 compiler optimization arguments are very much bound to architecture. 12:02:37 there was a thread on CLF not long ago that suggested ALL development should be done on an old 8088 slowest machine you can find 12:03:18 a quote from the poster "always distrust coders who insist on using fast machines to develop their code on" 12:03:34 fare who is smarter... the compiler? or the coder! 12:03:41 in most discussions in c.l.f people always are speaking just about the architectures that they use, but they rarely say for .... such and such is true. They represent it as universal truth. ;-) 12:03:51 the coder might be using some trick that the compiler then optimizes out of existence 12:04:11 thefox :) 12:04:21 hi 12:04:25 thefox my latest "semi arguement" with clf was on recursion 12:05:01 deep down inside me i have this gut feeling that ANY recursive algorithm has a much nicer itterative counterpart. 12:05:18 that would include things like ackerman. the problem is we just didnt discover them yet 12:07:00 one might notice that what Chuck calls recusion isn't what other people think of as recursion. He uses no smudging so using a word name inside of the word just compiles a call to itself, recursion. But when combined with ; and tail-recursion it really just becomes iteration equivalent to begin again. 12:07:53 thefox i dont smudge either but a word isnt visible to find until its placed at the head of some hashed vocabulary thered 12:08:14 actually, i am smudging but it dont test that bit anywhere 12:08:22 so you can force it visible and use it recusively? 12:08:41 : recurse last @ name> @ , ; 12:08:48 ok 12:08:57 last always points at nfa... 12:09:00 immediate 12:09:03 of the word being defined 12:09:09 erm yes lol 12:09:27 well spotted :P~ 12:11:00 less than a second to compile 20 source files of about 116k total 12:11:09 i think i can double that maybe 12:11:14 or maybe even more 12:11:32 dont just think, but do it ! 12:11:55 i did however expect the memory mapping would give ALOT better results that it has so far :P 12:11:59 I wrote a number of Forth compilers with various degress of optimization for different architectures but eventually became very fond of what Chuck recommended. The 1:1 is there in machineForth although it does optimize most stuff by compiling inlined opcode instead of nested calls. But it is like a really simple token threaded system because the opcodes are like tokens that don't require a software layer to interpret. 12:12:03 onetom i AM doing it heh 12:12:27 even if it doesnt improve the speed much it DOES simplify things elsewhere 12:12:44 fload is basically a replacement for query/expect AND the interpret loop right now... 12:13:18 doing this would make it a replacement for query/expect ONLY... floaded files would just be interpreted by the same inner interpreter you use interactivly 12:13:33 no need for a "special" version of it for files 12:14:53 thefox: "don't require a software layer to interpret" -- what do u mean by that? could u explain a bit more: 12:14:53 ? 12:15:40 thefox: u were refeing 2 a machine4th chip, werent u? 12:16:11 thefox ive never "studied" the way chuck thinks but from the 2 interviews here and from what you say im finding myself in agreement with him on almost everything :) 12:17:05 onetom: yes. But I noticed that Chuck used the same code inside of colorForth on Pentium. 12:17:47 thefox: but there *was* a sw layer in that color4th, wasnt there? 12:17:54 thefox when chuck codes in assembler within forth does he like the "5 # ax mov" stuff? 12:18:04 i cant handle asm like that, its just all WRONG to me... 12:18:19 but alot of forth coders perfer it 12:19:05 thefox: what forth do u use nowdays? 12:19:21 In a token threaded Forth like OF a bytecode may get shifted to produce an index into a table filled with the addresses of the words. It gets done in software on most machines, but if the 'tokens' that get threaded are opcodes the assembler is a token threaded Forth with a 1:1 correspondence like other threaded forths. hardware token threaden 12:19:24 --- nick: PhoodPhrenzy -> CaffeineJunkie 12:19:33 thefox: or which forth, if its a suitable question 12:21:15 I have a couple of windows forths when I have to, and FPC and several machineForths. I will bootstrap the aha compiler to the aha operating system, but I may port the machineforth that I am using as a cross compiler first to that environment. There is the bootstrap problem. How much do you cross develop and when do you go to the target for dev? 12:21:46 thefox: woooow, thanx 4 the explanation. i didnt think of token threadin this way earlier 12:22:36 it also means that if you compile rule-based systems directly to Forth that the hardware is the inference engine, no software layer needed. 12:23:31 thefox: im only developing 4 microchip's pic controllers 12:24:38 thefox: but they r so small @ tied 2 hardware, so rarely develop on them 12:25:05 chuck mentioned them the other day. He would use them for many things that other people would think require a PC. 12:25:33 thefox: what is a rule-based system, anyway? is it a declarative programming related stuff? 12:25:36 Developing on a pic, now there's a challange! 12:25:59 thefox some of the newer pic's are very well suited to forth im told 12:26:15 I440r: sure, the newer 1s r bigger 12:26:33 I440r: but the really small 1s require crosscompilation 12:26:39 yes :) 12:27:05 thefox: do u know the instruction set of the pics? 12:28:28 it can be, in the sense that that is what prolog does, but it just means decision trees. You give a programmer a set of logical rules and they construct a solution with nested IFs or whatever. Chains of logic statements. One of those things where mixing code and data can be very powerful. Building executable data structures is a nice Forth technique so it is easy to conpile logic rules into executables 12:29:21 I don't know much about the pic line, just the basics. (bad pun intended) 12:30:35 I saw that Al Mitchel had written a basic compiler on top of his Forths and could duplicate the functionality of some basic stamps with it, but 1000x higher performance according to the presentation write up. 12:31:25 hmm, i never heard about it b4 12:31:37 who is al mitchel ? 12:31:40 chuck seems to like the little pic stuff 12:31:51 so, do u know enough about the 2 answer this question? : 12:32:13 is it possible 2 implement a machine4th on pic? 12:32:21 al mitchel research, former FIG board member, full time embedded Forth shop, lots of neat stuff and good stories. 12:32:39 good stories <-- :)) 12:32:55 any jobs goin ??? :) 12:33:08 he must have a homepage then 12:33:39 oh, sure I always like hearing about how he replaced 386 motherboards with 8051 running Forth etc. He has a wide range of target machines, cool software tools, and lots of experience. 12:34:21 thefox im gona finish my direct threaded 8051 forth :) 12:34:33 built for small size, not speed... 12:34:43 well. eventaully ill finish it 12:34:45 I am sure that one could write a machineforth for pic. I have no idea what would and or would not be efficient however since I am just not that familiar with the architecture. But since Chuck seems to think it is ok... I would just guess that it might not be too inefficient for that. 12:35:05 thefox: r mitchels stuff also available 2 zthe public? 12:35:16 amresearch.com ? 12:36:06 thefox siemens has some meters that use 386ex's that ause some RTOS and huge ammounts of c code 12:36:12 yes, http://www.amresearch.com worked nicely 12:36:28 i told em i could recode the whole thing on an 8051 and they laughed at me 12:36:46 al has cool stories like Forth Inc. about beating the crap out of other vendors. 12:37:37 why make it simple when you can make it wonderfully complex? 12:37:55 thefox does forth inc get alot of business then ? 12:38:04 or are they still a struggling company 12:38:24 al stuff is commercial, but he has given lots of people good ideas. His systems are very cheap and his hardware is well made. 12:39:37 He built very nice tethered control cross development systems for a wide range of tiny micros long before it became fashionable. 12:40:10 hmm hmmm -- he is talented enough :) 12:41:32 Phil Koopman once wrote an article about determinism where he showed that the problem with 386 on real-time was that about one time in a thousand an interrupt would take 100x the average interrupt! So you only needed a few extra orders of magnitude of hardware and software to meet any hard spec! 12:43:36 Forth Inc. has had hard times and boom times, I don't know how many people work there today and they are always looking for more business. 12:44:54 i wouldnt mind working there myself but i doubt they would hire me, im too outspoken agains ANS (non)forth 12:45:07 But they have those great stories about coming in as the back-up team competing against the main team that was falling behind schedule and then demonstrating how efficient Forth is for both development time and runtime, beating the competition by an order of magnitude in each. 12:45:41 or more 12:45:52 If you want to work at Forth Inc. you would need to become very familar with their products. 12:46:41 i like the story of that compettion where they had to make a hacksaw blade with LED's on it swing back and forth and display some character. the forth team had a scrolly banner before anyone else had even found the resonant freqency of the hacksaw blade :) 12:46:42 yes, not just program size but speed and power consumption etc. 12:47:40 The first time I used Forth at one job the engineer had not made it back to his desk before I called him back with the software solution to his latest hardware problem. Before that he hated programmers. 12:48:30 :)) 12:48:49 thefox lol. first time i used forth at work was for joy mining machenery. the JNA RS-20 long wall coal mining roof support system was coded entirely in forth... 12:48:58 chipforth for the 8051 to be exact 12:49:38 I would worry about windows running the software! 12:49:54 i found a bug in their code after 2 weeks of being there. the bug had been known about but undiscoverd for 10 years 12:50:13 for some unknown reason a unit would just SHUT DOWN 12:50:29 an expert bug hunter 12:50:56 it was totally unpredictable, didnt happen very often (yes i love hunting bugs but this i discovered by accident) 12:51:10 not another bug hunt? (Aliens) 12:51:13 they needed a way to flash priority messages on the LCD then restore whaqt was there previously 12:51:17 so i had to code a dpuble buffer 12:51:58 and with the double buffer in place the aforementioned "inexplicable HALT" happned every time 12:52:14 so i just put debug stuff in the code and traced it back to the bug 12:52:55 the problem was with the ADC - the same register you use to program it had a "halt" bit in it 12:53:04 that was being accidently set under certain conditions 12:53:06 thefox: :))) nice saying 12:54:12 they should realy have found and fixed that bug the day found out abou tit 12:54:28 for a roof support to just HALT every now and again is VERY dangerous 12:55:05 We had one programmer at iTV who found most of the bugs. It really bothered other people that this guy kept finding their killer bugs. And he didn't like doing it either. He much prefered writing bug free code to finding nasty hiding bugs that other people created. 12:56:05 thefox sounds like my kind of coder. i had a little discussion in #tunes the other day about releasing buggy code and letting the end users beta test it for me.... 12:56:14 if its a bug i know about i FIX it before release 12:56:24 That's what I meant about doing it with PC's running windows.... please insert the installation CD AND ... 12:56:35 actually thats not quite true, i let one slip till just recently 12:57:11 tehfox lol that would work great 2 miles down a mineshaft on a PC with NO keyboard, NO monitor and NO cd :) 12:58:03 you couldnt have any of the above down a mine shaft, might make something go BOOM 12:58:49 you cant even carry ANYTHING made of aluminum down a mine, it starts to spark whenh you get deep 12:58:57 One time we had what the programmers thought was a funny bug. Users and sales didn't like it. We had an 'inhouse' switch which when set caused the system to print out completely accurate error messages for us in development, or when off the politically correct error messages for the users. It went out the door one day with the switch wrong and the users had no sense of humor about their own errors! 12:59:00 i dont know if they understand WHY it does it 12:59:29 lol 12:59:36 thats a good way to lose customers :) 13:00:37 we got 200 phone calls by 8:00 am 13:00:56 tehfox you didnt answer my question about "5 # ax mov" in a forth assembler. does chuck prefer it thaty way ? 13:01:02 we sent out a new release by noon. but we thought it was funny... bad bad programmers! 13:01:05 i know alot of forth coders do 13:01:12 do you perfer it that way ? 13:01:29 chuck uses that kind of syntax in assembler 13:01:43 actually, i think having a "debug" version of software is bad 13:02:00 you can never guarantee that the bug you fixed in the debug version is fixed in the release version 13:02:13 or that the two will act thte same way under the same conditions 13:02:42 i cant get it straight in my head. i started with assembler and moved on to forth. whenm i code forth i think forth. when i code assembler i think assembler 13:02:53 our development version gave more verbose messages, "the idiot user just tried to ..." oops. 13:03:08 lol 13:03:34 i dont think i would allow that sort of error message in a debug version just incase it got released by accident :) 13:03:43 very unprofessional i thin 13:03:45 when I think assembler/forth on forth chips it doesn't come up. but you can use any syntax you want in a Forth assembler. 13:03:47 think 13:04:52 thefox what i realy want for isforth is an assembler extension that can take the existing NASM sources with VERY LITTLE modification.... 13:04:58 prolly a pipe dream 13:04:58 it was a policy long before I got there. I guess it was just a type of error (setting directives wrong) that no one imagined could ever happen. 13:05:02 and WAY beyond what i can do 13:05:16 self in foot shoot :P 13:05:40 lol thats the ONLY comment on my "recurse" word 13:05:45 heh 13:05:59 In the old days, I like using debug assembler/dissasembler format so I could use the rom code. 13:06:26 thefox: i was discussing ur thoughtful programming article w my friend nowdays 13:06:30 I meant DOS code 13:06:47 thefox: but they cant believe what u state. 13:07:01 I have been working on a short essay inspired by something that Chuck said here a while back. 13:07:09 debug assembler/disassembler format ? 13:07:12 thefox: they need an evidence. a kind of example code-pair 13:07:36 many people go into denail. What don't they believe? the many examples of large ratios? 13:07:44 denial 13:07:58 thefox: so could u help me out w such a pair of inefficient-efficient code pair? 13:08:33 thefox: they would like 2 see the sources of those examples 13:08:50 thefox: so they can reveal the causes of those high ratios 13:08:53 people who don't want to believe will always say that you have to publish code owned by other people to prove them wrong, knowing that it can' be done. 13:09:28 I have tried to explain it before, but usually if someone doesn't want to hear it they will shout you down and not listen anyway. 13:10:07 thefox people dont like hearing "your doing it the DUMBASS way" 13:10:42 As Chuck has said, he will continue to publish examples that will clearly demonstrate to anyone who is interested ... 13:11:39 Yes, the problem is simply that Forth is too good. If done right it apparently shames other people so much that they feel personally insulted even if you make no comparisons at all. 13:12:02 You have heard my story about the first time Chuck gave a public speech about F21? 13:12:11 I haven't 13:12:16 nope 13:12:26 thefox: dont know which 1 do u think of 13:12:53 Chuck came down to SVFIG. He talked about the development of F21, what he was doing with OKAD, how fast the chip was etc. 13:12:58 thefox: ive already prepared all the stuff from ultratech being watched 13:13:25 I was very worried that the might make comparisons to C or Intel as he often does and offend someone. I watched very carefully for that. 13:13:47 lol 13:14:01 loll 13:14:14 I was pleased that Chuck made no comparisons to C or ANS Forth or Intel architecture or VHDL or any of that stuff. I was pleased that he had not said anything that gets him into trouble. 13:14:46 I saw this guy in back who I did not know, had never seen before. After Chuck's presentation I went up to him and asked him what he thought of Chuck's presentation. 13:14:56 He said he HATED it! 13:15:06 "ezzel azangol szoveggel, hatha tenyleg azt kerhetek amit akarok ;)" 13:15:11 sorry 13:15:21 my guess is that when the spade is a spade chuck isnt too scared to state it as such :) 13:15:29 He said that he felt very insulted because Chuck had called him an idiot for using C. 13:15:49 Chuck had never mentioned C once. 13:16:18 did he refer to "other languages" instead of stating "c" outright ? 13:16:52 Apparently people listen to Chuck and a voice in the back of their mind says to them, "If what this guy is saying is true, if he can do all that then I am an idiot for using C and for only being able to do 1% of what he can do. 13:17:09 Then they go into denial. Therefore what he says cannot be true. 13:17:14 :) 13:17:14 they are correct 13:17:43 This problem is even worse in the Forth community where so many people want to think that they know more about Forth than Chuck. 13:18:00 the trouble is that acadamia has sold the industry a crock of shit and they have baught into it hook line and sinker 13:18:41 thefox they probably DO know more... thats the baauty of chuck, he filters out all the CRAP other people build in... 13:19:00 chuck had only talked about what he was doing. He had not mentioned other people using C, VHDL, Intel, etc. etc. not a word. 13:19:51 when your a smart guy standing next to someone like nikola tesla you REALY FEEL DUMB!!!!! 13:20:01 i would put chuck up there with tesla 13:20:02 I think industry has sold academia a crock and acedemia bought it and made it what they teach and perpetuate. 13:20:30 thefox a vicious circle :) 13:20:37 were both probably right :) 13:20:45 I think Chuck is one of the smartest people I ever met. 13:20:57 Chuck says that that isn't it, that he just tries harder. 13:21:20 Chuck is usually right, so he is probably right about that too, it makes a nice Zen Koan. 13:21:21 he is clear thinking. he has the ability to SEE through all the CRAP and get right to the heart of the matter 13:22:16 thats also part of it... "this is acceptable to me so ill release it now" <<-- chuck has a higher standard than other people 13:22:21 yes, and he tries very hard, perfectionistically, almost compulsively to get the essentials. 13:22:29 probably TOO high, 5 years to write 4 lines of code is too much :) 13:23:18 he did write a little other code in those 5 years, but it is a funny line. ;-) 13:23:19 i dont like using users as beta testers but ill release not so optimum WORKING code and refine it over time... 13:23:21 --- quit: Stepan ("Client Exiting") 13:23:42 thefox i was exaggerating for effect :) 13:24:14 thefox: so what could u advice 4 me. how can i break the denial? 13:24:31 For those who don't know Chuck was asked how long it took to write OKAD. OKAD had actually been written and rewritten about 5 times in 5 years and kept getting the inner loop cleaner and cleaner until it got down to 4 lines of code. thus Chuck said four lines of code in five years. 13:24:38 thefox: there is no reference source 4 such a comparision available? 13:25:37 thefox is oakad saleable ? 13:25:49 would any chip manufacturers want to buy ? 13:26:04 yes, no, apparently not. 13:26:33 onetom: what comparison? 13:26:38 doh 13:27:08 thefox: sw comparision what proves that ratio 13:27:26 thefox: src of 2 programs what solve the same problem 13:27:38 thefox: but 1 of the is terribly faster 13:28:19 the examples I refer to in that paper were the many examples where the same module got coded twice. Once by an ANS Forth programmer and once by a MachineForth programmer. iTV owns the code. 13:28:47 i c :( 13:29:37 Many people have denied the numbers, some even deny the stories. But there were a dozen of us, some very active in the Forth community where were in all those meetings for years. 13:31:15 We had many many cases where we had modules that did the same thing from the systems point of view, but where performance made all the difference in the world. The first jpeg decode, translated from C was so big, so slow, and produced such ugly images that it was removed from the app for a year. 13:32:26 The well coded machineforth version was about 100 times smaller, 1000 times faster, and looked about 10 times better. It was impressive to see these instant decode jpeg that looked better than vga in b/w. 13:33:28 but the original C version and its 4th rewrite produced absolutely the same result? 13:33:50 You can't really talk about this stuff in public just because people go into denial and argue that it can't be true, or they come up with their own explanations, oh, you must have meant .... instead. 13:35:17 but how about the origianl code? 13:35:23 isnt it free? 13:35:27 jpeg was our best application module example. the use of ANS Forth, Forth Scientific Library, code for C style structures was perhaps the strongest example. 13:35:59 4 the 1st place, eg, my friends said u have choosen the wrong C code 13:36:07 --- join: miket2 (Mike@62.60.91.78) joined #forth 13:36:17 But just bringing it up upsets people and then you are not allowed to explain. We even had FIG board members denying that they ever heard of the FIG Pres and VP. 13:36:17 it was an inefficient implementation even in C 13:36:56 hi miket2 13:37:06 yes, but C allows a nieve implementation to get 'optimization' by the compiler. It is expected. There is also lots of assumptions that people make about hardware that they won't admit to themselves. 13:37:06 hello 13:37:52 miket2: is a forth coder ?? :) 13:38:15 thefox: Forth Scientific Library is a strong example 4 what? 13:38:26 Well it was Chuck who made the statement that if it isn't 100 times smaller than C it isn't Forth. Again, people feel insulted, the screen it out, they don't want to understand. 13:39:30 A strong example of how ANS Forth practice was usually at least 10x larger, often 100x larger, and usually 100x sometimes 10,000x slower than what the machineForth programmers would write given the same requirement for a module. 13:39:52 that has a tendancy to insult both forth and c coders :) 13:40:23 not to mention java, perl, etc. 13:40:39 they dont count 13:40:43 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 13:40:43 they are scripting languages :P 13:40:50 It also upset them that the ANS Forth modules had 50 times more bugs. 13:41:16 But there were the best experts that the company could hire! 13:41:46 people will tell you that any language can do anything that any other language can do. ;-) 13:41:52 hi bob :) 13:41:54 does http://www.ultratechnology.com/mfp21.htm is good 4 learning machine forth? 13:42:23 thefox thats like saying you can build a house out of balsa wood and have it as strong as an oak house 13:43:18 there are a number of machineForth tutorials at my site, more to come. That is the text from one of them. 13:44:46 thefox: NOP 7FFF # A! NOP 1 # A NOP NOP + <-- why is there those nops? (quote from the above article) 13:44:50 I plan to go back over the many tutorials that we posted many years ago that apparently needed more introductory tutorials. The examples of GUI components with various features were meant as hands on tutorials for the simulators. 13:46:09 --- quit: bob4th () 13:46:21 nops are used to align multiple data loads or stores into one instruction word to reduce instruction bandwidth and maximize on-page memory access. nop is required BEFORE + if carry has to propagate more than a certain number of bits in the 13:46:33 + instruction the way Chuck's adder works 13:46:45 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 13:47:37 wb bob :) 13:48:05 thefox ans people wouldnt like that, they would want the compiler to INJECT those nops for you 13:48:07 thefox: so what happens wo those nops? 13:48:26 I440r: thats it :) 13:48:28 i think ans is a conspiracy to make forth more c like 13:49:20 i usually dont type "Forth" with an upper case F because im lazy. i never type c with an upper case c because it doesnt deserve it:) 13:50:55 ans is just an effort to standardize on certain people's practices to add more validity to their products. They also chose to market products more closely tied to the prevailing C based environments. It's just business. It is not a conspiracy. But Forth Inc. sponsored the idea, send multiple repsentatives, chaired every meeting, and now have final authority to interpret what ANS means in all those things where they intentionally 'waffle' 13:52:13 the compiler can inject nops if you want. I prefer not. W/O them the code is smaller, but slower, or depending on the arguments to the + it might not produce the proper result. 13:52:37 Chuck could have included the nop delays in the + instruction so you would never have to add them. 13:53:12 --- part: miket2 left #forth 13:53:35 BUT Chuck does scaled math. This is one of the most important things in Forth. He can use + differently to save a few nano-seconds when he knows the size of the arguments. 13:54:07 he can use + or nop + or nop nop + or nop nop nop + (on the 20 bits) etc. 13:54:50 oy, c... tho, i have 2 study these stuff deeper 2 understand what did u mean by "reduce instruction bandwidth and maximize on-page memory access" :/ 13:54:57 gee that's hard to read "+" or "nop +" or "nop nop +" etc. 13:55:05 but.... you have to THINK about what your coding... nonononono that will NEVER do! 13:55:32 :) 13:56:10 thefox: yeah, it looks pretty ugly 13:56:16 getting close to pentium hardware is difficult, many instructions, deep pipelining, several layers of cache, etc. Very hard to really get close. But with these chips it is easy to get close to the limits of memory. 13:56:23 whats more you have to understand the harware your running on. people dont want to bother with that sort of stuff, let the compiler worry about it... 13:56:33 thefox: and hides the actual algorithm, making it harder 2 modify... 13:56:34 In either case that may be the biggest factory, the layout and use of memory. 13:56:43 tehfox i never liked intel processors 13:56:49 thefox: ceratinly its a cost 4 effectivity, tho... 13:56:50 love their controllers tho :) 13:58:33 thefox: shall we go back 4 the sci lib 4 a while? 13:58:51 thefox: u say, thats inefficient, right? 13:59:03 If you try to discuss actual hardware details many people go into denial. They seem to think that the hardware will do lots of things fast that it can't. They don't want to be bothered with how many layers there are between what the hardware really does and what they can get to. 13:59:08 thefox: so is there a machine forth counterpart of it? 13:59:27 what about the fsl? 13:59:58 is there a machine4th implementation of the fsl available somewher? 14:00:23 that's an oxymoron. 14:00:37 oh, really? ... hmm 14:01:13 libs in machine 4th is an oxymoron in general? 14:01:17 machineforth is about embracing the machine. machineforth was about making Forth 1:1 hardware software. 14:01:48 fsl was about translating portable c code into portable Forth code by adding lots of stuff to do runtime testing to get portability. 14:02:12 a definate oxymoron 14:02:19 portable code always is 14:02:27 runtime testing??? like what? 14:02:43 They represent opposite ends of the spectrum. Every .f file had a .h file associated with it. Everything was mostly transcribed from C into Forth script. 14:02:45 i have the fsl page open in my browser 14:03:04 aha.. 14:03:12 a terminilogical inexactitude to be exact (did i spell that rite?) 14:04:12 ANS 'waffles' on about 100 things that you just can't count on. So runtime code has to test for this and this and this and then decide which version of the code is appropriate for this platform... and they didn't do it at compile time, like in C, but at runtime! ugh. 14:04:30 tehfox im torn as to weather i should port some of the c header files to isforth the #defines would be converted to consts which will eventually be discarede on turnkey - my #reson for NOT doing so is it will generate inter-dependancies in the sources 14:05:13 also, naming EVERY fscking BIT in a byte makes th4e code almost unreadable 14:05:30 you have to go hunting for the header file that defines the bit equate to find out what it equates to 14:05:41 and sometimes even THAT isnt possible 14:06:18 #define foo (fudge << 5 ^ (bar >> 6) & (wtf << 3)) 14:06:21 ugh 14:06:24 For instance in the code for C style structures there was an option diagnostic message to be printed out by every instance of a strucure when enabled. It used a double number. So instead of DOES> + @ ; or something like that it had a 2DUP near the start and lots of 2OVERs and 2SWAPs throughout and a vectored diagnostic at the end that was revectored to 2DROP for embedded use. 14:06:51 lol 14:07:04 all those 2over 2swap etc were not needed just to do a 2drop but there it was. The code was 20 times more complex than it needed to be, but in C style grab it from a library and paste it in! 14:07:40 cut and paste/drag and drop coding 14:07:48 and cant it b coded smarter? 14:07:48 they way of the future !!! 14:08:29 so instead of coding your code to fit the problem you code it to fit existing libraries 14:08:29 lol 14:09:23 the code was so lazy and hogish in its stack use that the author never considered doing it machineforth, he gave up the first 50x by requiring ANS, then he grabbed from a 'SHINING EXAMPLE' of an ANS Forth library and pasted resulting an another 20x factor. Instant 1000x without trying. 14:10:28 but people go into denial. former fig president? never heard of him! 14:10:40 thats why it was 1000x 14:10:43 NOT trying 14:11:25 We were told 1000 times that it was just the idea behind ANS, code re-use, portable libraries, not having to deal with machine specifics, not having to try. 14:11:51 it's just called 'embracing common practice' not a conspiracy. 14:12:10 i.e. turn forth into something c already is 14:12:28 something that any IDIOT can code 14:12:45 thefox: but using libraries is not always a drawback, isnt it? 14:12:55 that was one of hundreds of similar examples. People who don't want to believe it, or don't want others to believe it just won't. 14:12:57 eer, is it? :) 14:13:22 some guy gave me a rating of "gree belt forth coder" he said if i could code this recursive function itterativly he would give me blue :) 14:13:22 I say use libraries. But don't plagurize! 14:13:34 i said at least he didnt rate me as white or yello :) 14:14:07 thefox if the library fits the problem yes. but its like... dont RELY on the library doing so 14:14:31 my father says software engineers today rely on debuggers and in circuit emulators FAR TOO MUCH 14:14:35 thfox: plagurize? 14:14:39 they want the debugger/ICE to find the bug for them 14:14:40 You should have your own library that you can use because you know what is in it. You should have other libraries that you can learn from. Blindly cutting and pasting from other's libraries may not be the source of all evil, but ... 14:14:46 they dont what to have to THINK 14:15:07 Yes, libraries are for learning, not for stealing. 14:15:48 thefox: i just didnt understand the word & failed 2 look it up in the dict.. 14:15:51 grabbing from libraries w/o thinking is what I complain about, it is not what Forth is about. Forth requires thoughful programming, not programming w/o thought. 14:16:00 c coders keep asking me why i have to keep reinventing the wheel 14:16:10 i usually answer "because the last coder coded it square" 14:16:45 plagurize (sp?) to copy someone else's work without giving them credit. To claim that someone else's work is your work. 14:16:49 thefox: but time is so pressing usually, that not thoughtful programming have 2 be used 14:16:54 thefox THAT,and the rpn is what makes most coders go screaming for mommy when they look at forth 14:17:09 thefox: eg, i know i have 2 do some matrix transformations 14:17:15 you can invest time now, or later. 14:17:37 thefox thats not always the case tho, people can reinvent... im sure my hanoy solution isnt MINE exactly... 14:17:42 thefox: i have 2 produce a program what needs those transformations 14:17:43 people want to skip the understanding and design phases and jump to coding. Then they spend 90% of there time debugging. 14:17:47 but i did dream it up all by myseph 14:18:20 "do you want it right now.... or right" or "if we dont have the time to do it right first time where the hell are we going to get the time to do it over" 14:19:15 thefox: but i can understand a problem pretty well wo knowing how 2 implement efficient matirx transformator/operator code 14:19:19 tehfox actually i dont think its possible to FULLY design any code without trying to write it... 14:19:38 there are implecations that do not make themselves apparant until you start coding 14:19:46 the design should be a general overview i think 14:20:02 I found that by doing it in Forth instead of ... I could write it, and rewrite it, get it right, then port it to the target language they wanted. Fast, compared to ... and higher quality. That always kept them happy. 14:20:11 I440r: design & implementation have 2 b iterated 14:20:18 a place to start thinking about how to code... not a "nitty gritty down to the finest detail design" 14:20:39 onetom AFTER you have the implementation 14:20:41 I440r: that's why Chuck says that some code deserves to be rewritten. 14:20:53 you start making demands on implementation at design time and you are going to cripple the design 14:21:27 thefox i think ALL programs should be written at least twice as a minimum :) 14:21:40 write it, get it to work. DELETE IT and start over :) 14:21:42 the second time round will be better 14:22:22 thefox: but if the primary problem is carrying out some matrix operations, probably u dont want 2 solve already solved problems, and wont go and implement your own matrix opertaion. aint i right? 14:22:29 in my short 'forth methodology of Chuck Moore' essay I suggest that we design, redesign, redesign, code, redesign, recode, and then go back and re-think the problem. 14:22:56 thefox but not add-infinitum :) 14:23:02 I suggest that we do that until we get it right. This is not needed for everything, but it is the nature of Forth. 14:23:13 k 14:23:22 only until your dead 14:23:23 thefox: thanks 4 the lesson :) 14:23:51 thefox coding is like art... its never realy finished, just abandoned :) 14:24:05 yes, you want, and need, a library of canned things to re-use. But you must understand them at least once. 14:24:56 thefox: i only have 2 understand their surface, their API 2 b able 2 use them... 14:25:18 thefox: thats why they r called libraries :) 14:25:27 oooor.... :D 14:25:39 Chuck has libraries. I have libraries. I have some of Chuck's code in my libraries, with some of my changes to it. Chuck has looked at my code and used a couple of ideas, but not actual code in his libraries. He says that what libraries are good for. 14:25:51 they rather b read & studied :)) 14:27:04 so u state, there is no "omipotent" form of code for a problem in forth? 14:27:15 when you only understand the api you can only use it in certain ways. It may also lead to problems that you won't easily find. 14:27:21 in a specific implementation of 4th @ least... 14:28:10 --- join: BadCog (spamtrap@1Cust158.tnt1.beaverton.or.da.uu.net) joined #forth 14:28:12 thefox: aha... api is also a constraint... sure, ive already understood it, ithink 14:28:23 Forth is the only omipotent part. libraries are like extensions that you have not compiled on top of Forth. Forth isn't the libraries. The libraries depart from Forth toward application domains. 14:28:37 hi BadCog 14:28:40 :)) omnipotent, actually 14:28:44 hi 14:29:41 what's the subject? 14:29:52 forth :) 14:29:53 low fat programming, ithink :) 14:29:59 and how it beats the crap out of everything else :) 14:30:01 Chuck says that given almost any problem he would start the same couple K of code known as Forth. Other people can't write a hello world without megabytes of extra baggage at the start. 14:30:08 I440r: stoopid ;p 14:30:47 as far as extensions go, in the book Thinking Forth, they talk about components, not librarys 14:31:00 i think that components are smaller than librarys 14:31:07 tehfox thats the problem with linking to libc to do the I/O and ncurses to do all the extra fancy cursor control to put the "hello world" in the right place :) 14:31:10 a component could consist of only a few Forth words 14:31:11 Some of these people write in Forth, but say that 'REAL' forths must have every bell and whistle available off the shelf to everyone else. 14:31:59 One should atleast get a metacompiler with your Forth, so you can strip out the unnneded words if necessary 14:32:02 When you write a complete system you can change the lowest level as easily, more easily, than the highest level. 14:32:08 sounds like tom zimmer :) 14:32:23 badcog thats whats missing from isforth :( 14:32:28 i CANT strip them out yet :( 14:32:36 too bad 14:32:51 need an assembler first and thats beyond me :( 14:32:53 thefox: why isnt there a much more complete forth system available? 14:33:03 thefox: w networking support mainly... 14:33:21 thefox: and w more correct video interface 14:33:40 you mean a Linux Forth, correct? 14:33:48 thefox: so u shouldnt use linux or windows - like u ;p - 4 irc-ing. 14:33:52 Chuck knows how every word in his Forth works and will change the lowest level words to make an application easier. But people who require 50M of someone else's code to start, and code that they can't change I might add, will end up having to write much much more code than Chuck because they are writing for the restrictions that they choose. The more problems that they introduce, and then solve the better the feel. 14:34:01 Chuck just avoids as much of those problems as possible. 14:34:08 badcog isforth IS a linux forth - NOT written in c 14:34:26 onetom: that's a straw man argument. 14:35:07 there is another assembly Linux forth i beleive, just a sec 14:35:42 eforth 14:35:46 I did use only Forth code that we wrote to do everything on the net a while back. If I say that I can write 100 times more efficiently than ... that I should expect to duplicate the work of ten million other programmers. 14:36:30 there is a thing called bootstrapping. Did you write the compiler? did you write the OS? did you design the 14:37:21 and lib4th of corse 14:37:33 chip? did you debug it? did you design a board? did you debug it? Did you then duplicate the work of 10M other programmer? No, we just claimed 100/1 not 10,000,000/1 14:39:50 :) okay 14:39:51 what about bigForth 14:40:14 badcog bigforth is coded in c 14:40:19 at least partially 14:40:20 thefox: do u know enth/flux? 14:40:23 and its ans :) 14:40:31 and the assembler is a bit weird,,,, 14:40:38 tho i do have permission to use it 14:40:40 thefox: hi. 14:40:48 I'm looking at a site that says its a Native Code Forth 14:40:54 --- nick: CaffeineJunkie -> Speuler 14:40:55 I440r: but u can use it a non-ans way 2, if u r smart enough 14:41:14 hey 14:41:21 i typed that 3 minutes ago ... 14:41:21 onetom: I help Sean design and develop it and posted the first information about it. But I have't used it. 14:41:25 badcog it produces native code i believe... isforth doesnt. it produces direct threaded FORTH code 14:41:31 it extends the kernel with the application.... 14:41:34 I440r: anyway, its pretty fast and compiles native code, so u shouldnt really blame it, just because its ans 14:41:56 onetom bigforth is "ok" by me 14:42:03 but its still not a TRUE forth 14:42:07 thefox: do you know other sources for i21/f21 than mr ting ? 14:42:43 (if mr ting sells f21 boards at all i mean) 14:42:48 isforth is has the potential of becoming the ONLY true forth for linux 14:42:57 but im deficient one assembler and one meta compiler 14:43:00 thefox: do think enth/flux is the way 2 go i want a small forth only environment 4 pc? 14:43:24 why does having native code generation make it not true forth? 14:43:48 thefox: probably color4th is smaller, but that reduced keyboard... and its highly incompatible w most of the hw 14:43:53 badcog it does not compile forth sources ONTO itself, its a target compiler only... 14:43:57 s 14:44:01 Dr. Ting owns Offete Enterprises Inc. Offete owns MuP21. I own UltraTechnology. UT owns F21. iTV owned i21. I was a stockholder in iTV. Ting and I are also together on other projects like 25x. 14:44:04 i dont even know if it can create stand alone applications 14:44:25 can you create an executable to run on any x86 machine even if it doesnt have bigforth installed there ? 14:44:38 thefox: why is all those named ...21? 14:44:51 i don't know 14:44:57 neither i :) 14:45:00 badcog you CAN with isforth 14:45:05 but guess so 14:45:05 they are all in the x21 family, originally x20 family, 20 bit data bus, 21 bit alu. 14:45:10 but you cant make coded defs yet:( 14:45:28 I'm just using Win32Forth in windows 98 14:45:30 nor metacompile. you can rebuild the kernel though... with the nasm assembler 14:45:44 I might make the switch to SwiftForth, but I don't know yet 14:45:56 badcog use FPC before that ? 14:46:02 swiftforth isnt free 14:46:10 isforth IS 14:46:17 but isforth is linux only 14:46:21 There was also p32, P32, P8, and v21 made for Chuck's other clients. p21 and F21 were the only chips intended for outside sales. 14:46:22 No, Forthmacs on Atari St 14:46:23 thefox: i tried 3 times to order an i21 prototype board. so i wonder whether there's another possibility to get one 14:47:09 swiftforth has a free evaluation version 14:47:12 BadCog: isforth is being designed to have the same FEEL as FPC, but the code base is 100% written from scratch and my inner interpreter is VERY different from fpc's 14:47:15 which is obfuscated 14:47:17 i think i spoke to mr tings family. not quite sure, as communication wasn't easy 14:47:18 thefox i know 14:47:24 can you create turnkeys wit it ? 14:48:22 You can turnkey with Win32Forth, but not with the Free eval Swift. You gota pay for that 14:48:26 i think 14:48:46 badcog i know... it was a rhetorical question :) 14:49:00 :) 14:49:26 badcog isforth is free. you can create stand alone turnkey apps with it. you can even create NON GPL applications with it 14:49:40 Win32Forth is free 14:49:42 and isforth is lisenced under a modified LGPL 14:50:01 Dr. Ting's father runs the mail order store. His English is very weak and he knows nothing about technology. He can fill an order but not answer quesions. You might be able to reach Dr. Ting at chenhting@yahoo.com.tw 14:50:01 but.... its windows 14:50:09 automatic loser on that score heh 14:50:15 Does isforth have a gui interface for creating other gui interfaces? Does it write object orientated code while you fiddle around in the gui builder? 14:50:38 badcog not yet. but an xlib interface IS planned 14:50:55 ok 14:50:56 and NO it will NEVER write object obfuscated code 14:51:04 speuler: i21 will be hard to get since iTV seems to be out of business. Harder if you try to get it from a compeditor. 14:51:12 and it will NEVER SUPPORT drag and drop gui building 14:51:18 EVER 14:51:40 thefox who owns itv's intelectual rights ? 14:51:46 thats not maybe so bad if you have good docs for the xlib interface 14:51:48 thefox: ok. that was about 5 years ago. what's f21 and x25 availability state ? 14:51:58 itv's prefered investors 14:52:20 badcog isforth is deficient in the dox area too so far :( 14:52:46 my problem is that i can code ANYTHING. but writing the dox for it is a drag :P 14:52:52 but i WANT it fully doccumented 14:53:19 my code makes me look 1337 - my english makes me look dumb 14:53:21 --- part: ASau left #forth 14:53:37 x25 has not been prototyped. It exists only in cad. there are still a couple f21d prototype chips from 98 availble for any serious use. 14:54:07 thefox: please define "serious use" 14:58:00 Well due to four sources of funding all failing at once I ended up with a company that needed to move forward with a handful of chips that each cost a small fortune. I could have sold them all in a week for $10 each and been out of business. I gave many away to people who showed serious interest, meaning they intended to do something. I knew this because they had downloaded the free tools and written code that they could show me. 14:58:34 They contributed software tools and/or hardware tools to help move the project forward. I tried not to sell them to people who would do nothing with them. 14:59:42 its still too bad that I can't walk into K-mart and pick up a half way decient browser for $49 15:00:01 People who wrote code or designed hardware showed a serious interest. I did not want computer-consumers to expect me to give them complete systems with for-idiots type manuals. 15:00:24 --- join: jamc (~dne@as3-6-8.asp.s.bonet.se) joined #forth 15:01:06 or better yet a $5 appliance that slips into the battery compartment on a $19 TV. 15:01:25 well yeah 15:01:37 then the kids don't have to tie up YOUR tv when you want to watch the game 15:01:59 or a handful of programmable $1 appliances, but that requires enough interest to do production. 15:02:33 with the economy the way it is, seem like youd have a hard time finding investors 15:02:38 iTV almost closed a couple of deals for hundreds of millions of such units. 15:03:04 hundreds of millions in the testing phase, if they liked them then they wanted large quantities... 15:03:48 well I need to go do some stuff off-line. best wishes to all 15:03:55 bye 15:04:01 --- quit: thefox () 15:04:48 (was looking for a forth cpu core for chip cards) 15:05:04 got me the shboom / psc1000 then 15:05:18 whats in going in? 15:05:23 badcog i privmsg'd you 15:05:50 didn't work 15:09:25 --- quit: bob4th () 15:10:29 --- part: jamc left #forth 15:43:13 --- join: jamc (~dne@as3-6-8.asp.s.bonet.se) joined #forth 15:43:52 I440r: back :) 15:44:01 :) 15:44:09 much better :P 15:44:15 how dare you leave !!!!!!!!! lol 15:45:07 Hej jamc. 15:45:09 * jamc blushes :) 15:45:17 yo, robban 15:45:36 I440r: Swedes are taking over your world. 15:46:03 rob that cus they are good coders. 15:46:03 *.se are coders :)\ 15:46:12 the rest of the word are coder wannabe's 15:46:17 Heh. 15:46:24 I'm not a real swede then :) 15:46:58 lol 15:47:47 I440r: if it's nasm, I think openbsd is out of the question... I think it only produces ELF objects, does it not? 15:48:02 * jamc continuing here :) 15:48:18 jamc it can produce many different object formats 15:48:42 isforth however only produces elf executables right now but THAT is easy to fix :) 15:48:50 ok, maybe my copy is too old 15:49:32 you seem to be right... i just did nasm -hf 15:49:40 openbsd? object production? what? 15:50:10 onetom: I440r wanted to port his forth to bsd 15:50:38 jamc doesnt open bsd use elf file? 15:50:39 ah, got it 15:50:50 I440r: nope, still a.out 15:51:13 would require someone knowledgable about XXXbsd's (open, free, net) syscalls 15:51:13 at the ASSEMBLEr level 15:51:26 jamc making isforth save a.out would be a SNAP 15:52:17 where can I get the source? 15:52:55 the_rob: sweden plays england tomorrow ? 15:53:09 Maybe... 15:53:20 * rob_ert is not a football freak :) 15:53:47 could start winning the cup for taking over the world :) 15:54:01 Hmm... good idea. 15:54:28 some norwegians come here tomorrow. they support the swedish team 15:54:46 provided the match is tomorrow 15:54:46 rob_ert: hello, how is goin? 15:54:46 :) 15:54:58 onetom: Fine..working on a FAT implementation. 15:55:16 bye, night and over 15:55:24 Bye. 15:55:28 --- quit: Speuler ("Bye.") 15:58:50 I440r: ok, google found your source :) 15:59:37 jamc yea hehe thats quite recent, i deleted my sourceforge account ages ago 15:59:48 and google only just located my new site :) 15:59:59 which im very pleased about :) heh 16:00:08 hehe 16:01:21 im downloading freebsd right now, the iso. the first iso is going to take another 60 hours to download 16:01:33 then i have the second iso to grab too 16:02:49 openbsd is what i run here at home 16:04:38 does open bsd use the same syscall numbering as free bsd ? 16:04:38 and net bsd ? 16:04:49 are they all similar kernels? 16:04:49 or all different 16:05:02 they are similar, but different :) 16:05:48 but net/open can run each other's, linux and freebsd's binaries (syscall emulation layer) 16:07:16 jamc isforth wont run in freebsd, nasm produces an executable elft type ZERO 16:07:18 unknown to free bsd 16:07:43 try the linux binary 16:07:57 --- quit: Fare ("Connection reset by pear") 16:08:36 jamc i need to be able to assemble the isforth kernel under free bsd (net/open) and produce a NATIVE executable 16:09:25 ok.. so it doesn't help to bootstrap it under emulation... i mean it doesn't do "save-image"? 16:10:34 if you compile the sources AS IS you basicaly get a linux executable written out to a BSD format 16:10:39 bsd will assume its a bsd executable 16:10:50 and the syscalls are going to be b0rken for you 16:11:31 yeah i see 16:12:41 so. you need to be able to assemble the kernel with all the syscalls recoded for what ever OS you run 16:12:54 syscalls.1 is where the syscall INTERFACE is 16:12:56 just tried "make freebsd", but my nasm doesn't seem to like "%define" 16:13:22 but there are references to syscalls throughout the code3 and the syscall numbers referenced etc will need to be changed for YOUR os 16:13:27 no 16:13:32 your nasm is old 16:13:38 you need to update 16:13:38 its %xdefine 16:13:51 %define in nasm is FUCKED IN THE HEAD 16:13:54 oh yeah... still doesn't like it :) 16:13:55 %xdefine is a fixed %define 16:14:06 macros.1:4: unknown preprocessor directive `%xdefine' 16:14:06 macros.1:4: label or instruction expected at start of line 16:14:25 %xdefine is not defined in your version of nasm 16:14:32 you need to get the latest version 16:15:05 badcog im good at juggling :) 16:15:13 i'm not so good at it 16:15:18 jamc hers whats wrong iwth %define in nasm 16:15:24 %define x 1 16:15:29 %define y 2 16:15:32 erm %define y x 16:15:35 %define x 3 16:15:47 what are the values for X and Y in the above 16:15:53 forget the %define y 2 - thas a mistake 16:16:10 i have no idea... never coded nasm :) 16:16:20 both are the same 16:16:27 y is defined as a POINTER to x 16:16:42 i.e. you have absolutley NO fucking way to SAVE the value of X in Y for later restoration 16:16:54 xdefine fixes this 16:17:06 well most macro systems suck rotten eggs 16:19:09 taking off 16:19:12 bye 16:19:24 not the a86 assemblers :) 16:19:24 that one is good :) 16:19:31 later badcog!! 16:19:35 --- quit: BadCog () 16:19:43 a86 is so good i baught it lol 16:25:31 * jamc building newer nasm 16:25:45 bought :-) 16:26:00 Anyway... 16-bit NASM 0.98.33 sucks :) Bugs all over. 16:27:20 uhm 0.98.08 was the one i found... is it also too old? 16:28:12 Hehe 16:28:17 It's a bit incompatible. 16:28:24 It defaults to near jumps, iirc. 16:28:31 Or, no 16:28:35 short jumps 16:29:35 robert lol 16:30:50 so which version do I need, and where can i find it? 16:31:30 erm which one are you building now 16:31:43 0.98.08 16:31:48 try nasm.2y.net 16:31:59 get their latest. i think that one works... it does in debian at lest 16:32:10 98.08 worked in debian 16:32:31 continue building it and see if it makes it possible to build my kernel 16:32:57 yup 16:33:15 working ? 16:33:23 cool 16:33:28 not tried it yet 16:33:32 make freebsd or make linux 16:33:40 freebsd build is ALL FUCKED UP 16:33:50 because i do not know what syscall number equates to swhat syscall 16:34:00 or now many parameters any given syscall takes in freebsd 16:34:10 but i think the freebsd.1 source file is basically correct 16:35:01 0.98.08 at least doesn't complain about %xdefine 16:35:10 its just the syscall numbers that are regferenced in there and in the isforth/forthsrc/*.f files that are wrong 16:35:13 but now there's the ELF problem :) 16:35:34 then you can build just fine 16:35:43 yes 16:35:51 you need to modify the asmsrc/Makefile 16:35:53 yup... got kernel.o in ELF format 16:35:58 to write to an a.out 16:36:06 the executable STILl wont run tho 16:36:45 the only files in asmsrc/*.1 that make ANY references to a syscall are... 16:36:45 linux.1 <--- linux specific 16:36:55 freebsd.1 <-- freebsd specific 16:37:05 no other file in there does ahy syscall stuff 16:37:17 i would say work iwth freebsd.1 and change it to work in openbsd 16:37:17 gaah now all hell broke loose :) isforth.asm:25: error: segment name `.head' not recognised 16:37:30 change the syscall numbers that are specified in there 16:37:41 changed to flags = $(debug) $(list) -faoutb in Makefile 16:38:05 err 16:38:17 oh 16:38:17 does a.out allow multiple sections ? 16:38:29 or is it all in one section 16:39:08 yeah, normally you have text, bss and data, as in traditional unix 16:39:22 not sure if you can name your own sections though 16:39:53 .head can be renamed to .data 16:40:25 maybe 16:40:56 yes. 16:41:06 edit macros.1 and change .head to .data 16:41:06 that will probably work 16:41:42 works for me 16:43:08 strip -R doesn't work here, so i'll comment out the stripping 16:43:29 hrm 16:43:30 ok 16:43:32 dne@nowhere$ file kernel.com 16:43:32 kernel.com: OpenBSD/i386 demand paged executable not stripped 16:43:41 cool 16:44:00 did you do a make linux or a make freebsd 16:44:05 freebsd 16:44:21 ok 16:44:26 thats a good starting poing 16:44:32 let me explain the differences between make linux and make freebsd 16:44:37 make linux does 16:44:45 cp linux.1 syscalls.1 16:44:52 make freebsd does 16:44:59 cp freebsd.1 syscalls.1 16:44:59 so. dont edit syscalls.1 heh 16:45:16 agreed :) 16:45:23 look in freebsd.1. make sure all the syscalls specified in there have the correct syscall number 16:47:12 let me explain something tho 16:47:39 there is a function in there caled init_mem that makes calls to 2 different syscalls 16:47:53 sys brk and sys mprotext 16:48:06 those are easy enough to understand 16:48:06 but look towards the bottom of the source file 16:48:13 there are alot of forth syscalls words in there 16:48:22 they all follow the format... 16:48:22 call do_syscall 16:48:29 db syscall_number 16:48:33 db number_of_parameters 16:48:40 you need to make sure THOSE are correct too 16:48:53 once you correc those you can test it by doing 16:48:59 make freebsd 16:49:05 ./kernel.com 16:49:13 if you dont gpf etc you are probably in a working state :)] 16:49:35 fload isforth.f will smoke test it some more for you 16:49:42 if you see alot of dots being printed very fast then you have a working compiler 16:49:54 each dot represents ONE file being compiled 16:50:09 ok, i'll probably need to research the kernel source to figure this out 16:50:18 that should drop you back to the shell and you should then have a ./isforth in there. but dont run it because it will be b0prken till you fix it :) 16:52:05 man 2 works in linux 16:52:15 erm and unistd.h tells me the syscall nubmers for the various syscalls 16:52:43 yup 16:53:07 but are just the numbers enough? i mean the calling sequence may differ too 16:53:23 the fact that you got it to build is a big step hehe 16:53:35 NOW get it to RUN@!!! 16:53:35 lol; 16:53:42 the order parameters are passed might be different. 16:53:45 the nubmer of parameters might be different 16:54:04 the syscall might not even EXIST in bsd 16:54:12 yeah that's what i was thinking 16:54:14 that would be a problem :P 16:54:19 but. 16:54:29 there would be a way to effect the same result from bsd 16:54:47 of course they exist 16:55:28 if you do this i can guarantee youll be an expert syscall person when your done :) 16:56:05 lucky me, hehe 17:03:00 --- quit: davidw (Remote closed the connection) 17:03:00 --- join: davidw_ (~davidw@adsl-66-101.38-151.net24.it) joined #forth 17:05:40 I440r: hmm why is there a sys_creat? open supports O_CREAT in linux i hope? 17:26:11 --- quit: davidw_ (Read error: 113 (No route to host)) 17:32:42 jamc 17:32:49 yup 17:32:57 sorry had to go afk to sort out my sister :) 17:33:09 hehe np 17:33:23 ]theres a sys open and close, open supports create 17:33:33 but theres a sys creat too i belive 17:33:43 yes syscall number 8 is creat 17:34:01 yeah there is... for backwards compatibility... it's considered obsolete nowadays 17:34:19 but open DOES support create of file... thers actuall a bug in isforth relating to this 17:34:39 if i do an fsave in isforth it tries to CREAT its own executable 17:34:49 right, that's "open" is standard way to create files in modern unix 17:34:58 but that tends to crap out if that same executable already exists and is currently OPEN 17:34:58 lol 17:35:08 bugger :) 17:35:20 yea. isforth currently uses creat 17:35:33 i was unaware it had been deprecated 17:35:46 isforth very rarely needs to resave an executable of the same name 17:36:02 but if your running ./isforth and also run ./kernel and try extend 17:36:10 the save is going to barf :) 17:36:19 that will be fixed when we have an install 17:36:28 because the isforth you wil be runnning will be in /usr/bin or something 17:36:28 not ./ 17:36:37 right :) 17:37:40 i'm trying to sort out init_mem... 17:39:14 yes 17:39:22 that would be a good place to start 17:39:30 thats the first thing isforth does :) 17:39:39 it sys breaks out to one meg 17:39:43 here's how the sbrk is implemented in openbsd: "return (ENOSYS);", hehe 17:39:50 then sys mprotects it all to read/write/execute :) 17:40:14 chmod +rwx *.memory 17:40:14 lo;l 17:40:14 its called brk i think 17:40:37 there has to be a break of some sort. or else openbsd is crap :P 17:41:24 yeah there's plain "break", sbrk/brk are implemented in libc as wrappers around break 17:42:06 aha. well. if you go the libc route im going to SHOOT you :P 17:42:18 * I440r goes to find his 1911 :) 17:42:39 hehe just looking there to see how it's done :) 17:43:07 yes 17:43:11 it's in asm, so if you're statically linking there shouldn't be a problem with bloat 17:43:20 i do that... i write a small piece of c code, statically link it to libc 17:43:30 then use the interactive disassembler pro to reverse engineer it :) 17:43:46 jamc i will NOT use libc in isforth 17:43:46 well this is asm already 17:43:54 or ANY OTHER library 17:44:00 but you use errno? 17:44:14 all i/o will go directly to the kernel 17:44:25 no fucked up libraries to hold your hand for you 17:44:39 no 17:44:39 i generate errno 17:44:51 you think libc pulls errno out of thin air ? 17:44:51 no 17:45:11 hehe :) yeah you're right... momentary confusion 17:45:16 it generates it based on the returned value of the syscall 17:45:16 thats what i do too 17:45:16 libc does NOT give me errno. the syscall itself does 17:45:28 yup i remember 17:46:13 its a bit obfuscated and totally undoc'd 17:47:07 well it's how it's been done for ages... described in various books on unix architecture 17:47:45 yes but not in MAN pages :P 17:47:59 and thats all i got :P 17:48:40 well that can be hell, especially on linux (in my experience) 17:49:32 linus doesnt want any one to know how to interface directly to the kernel 17:49:46 he wants us all to be crippled into using shittly middlemen like libc 17:49:53 so he doesnt doccument the calls 17:50:04 i say linux is closed source 17:50:33 hmmm well 17:51:13 source is source, docs are docs 17:51:54 and in linux... never the twain shall meet 17:52:01 i.e. the sources are totally undoc'd 17:52:11 you get what you pay for :) 17:52:17 i.e. closed to all but the super 31337 17:52:33 whats more the sources are a NIGHTMARE to read 17:52:43 oh... its free so the sources have to be a pile of shit ? 17:52:48 thats what im doing wrong with isforth ??? 17:52:50 lol 17:52:59 if you try any of the bsd, you'll see that the manpages are of much higher quality and more complete 17:55:27 im downloading freebsd as we speak 17:55:34 im 9% of the4 way done 17:55:41 ouch :) 17:55:44 and only 66 more hours to go 17:55:54 then i got disk 2 17:59:34 you don't have to use an ISO... you can just put the tarballs on a cd, make an install floppy(s) 18:00:31 jamcso then the install has to go thru the PPP ? 18:00:31 yea... good idea :P 18:00:54 no it doesn't have to 18:01:25 you just transfer the necessary tarballs... it'll be much smaller that ISOs 18:02:41 heh well what i realy want is a bootable freebsd / partion 18:02:49 and a mounted small /home :) 18:03:12 hmmm, there's 4.5-mini.iso - Minimal bootable 4.5 installation CDROM image. 18:03:15 i wouldnt know what tarballs i NEED 18:03:23 177M only 18:04:57 im grabbing 5.0 heh 18:04:57 unofficial cd 18:05:28 ah, well 5.0 hasn't been released yet 18:05:42 hehe 18:05:48 i know 18:05:48 im fast :) 18:05:53 lol 18:06:32 well don't expect stability then 18:07:25 nah 18:07:31 i also ran debian SID for a while 18:07:35 but reverted back to woody 18:10:42 how do i import an external symbol in nasm? 18:11:59 why would you want to 18:12:08 please tell me your not trying to use libc? 18:12:18 that wont work 18:12:20 at all 18:12:40 please do not taint isforth by marrying it to that pile of horse shit 18:12:41 --- join: bugslayer (thin@h24-64-175-61.cg.shawcable.net) joined #forth 18:12:49 futhin! 18:12:53 nope, i need a symbol that points to the end of data segment 18:13:05 erm 18:13:08 i assume it's simply defined in the linker script 18:13:13 err 18:13:16 no 18:13:28 yes 18:13:31 i mean 18:13:34 why do yo uneed taht ? 18:13:41 to emulate sbrk 18:13:44 u lost me 18:13:50 heya i440r 18:14:09 here's sbrk in openbsd: 18:14:14 data being head space... look at the macros to create headers, you could figure out "end of data" by knowing how headers are created etc 18:14:18 movl 4(%esp),%ecx 18:14:18 movl curbrk,%eax 18:14:18 addl %eax,4(%esp) 18:14:18 movl $(SYS_break),%eax 18:14:18 int $0x80 18:14:19 jc err 18:14:21 movl curbrk,%eax 18:14:23 addl %ecx,curbrk 18:14:25 ret 18:14:44 oh you need to know where you are breaking FROM ? 18:14:48 curbrk is intialized with _end, which point to the end of the data segment 18:15:19 OOO you pass parameter by register in openbsd ? 18:15:19 then you need to be working on the linux.1 file as a base 18:15:31 freebsd passes parameters by stack 18:16:07 ok. so you need to knw where your end of memory is currently? 18:16:07 that can be arranged 18:16:07 hang on 18:16:23 you're talking syscalls... now this sbrk code i sent is an asm function in libc 18:16:55 --- join: TheBlueWizard (~tbw@ip-216-25-202-118.vienna.va.fcc.net) joined #forth 18:16:55 --- mode: ChanServ set +o TheBlueWizard 18:17:00 hiya all 18:17:13 howdy tbw 18:17:23 tbw! :) 18:17:26 hiya bugslayer 18:17:32 hiya I440r! 18:17:35 bluewi = bluewy 18:17:48 i declare your nickname is bluewy now :P 18:17:52 jamc yes but its passing the parameters to int 0x80 (the syscall) via registers, NOT on the stack!!!! 18:17:53 hmm? 18:18:10 funner to type "bluewy" instead of "tbw" :P 18:18:19 I440r: uhm isn't that just the syscall number that's passed in eax 18:18:35 in freebsd it would be push parameter push parameter 18:18:45 bugslayer: if that makes you happy...fine...I'll stick with mine, thank you 18:19:09 jamc no!!! freebsd PUSHES all the parameters. linux puts them ALL in registers. im guessing openbsd does too 18:19:09 looking at that syscall code 18:19:20 so you need to be using linux.1 as a base 18:19:29 not freebsd 18:19:33 thebluewizard: no i'm just saying instead of me having to type "tbw" i can just type "bluewy" 18:19:50 and i need to see how best to determine the end of the .data section 18:20:00 tbw is easier 18:20:06 as i said... x86 asm makes me dizzy, can't even remember which way mov moves :) 18:20:11 :P 18:20:48 mov dest, src :) 18:21:08 jamc: if it helps, remember that the constants are at the end (e.g. mov eax,3) 18:21:57 right... but in AT&T syntax (gas) it's the other way around 18:22:12 or? 18:22:20 gas is fucked in the head 18:22:22 so what do you guys think about forth? eh! 18:22:26 hehe 18:22:30 whoever designed gas needs to be shot 18:22:30 twice! 18:22:52 i'll shoot him a second time.. 18:22:53 er 18:22:55 third time 18:23:18 * TheBlueWizard grins 18:23:19 futhin we are talking forth 18:23:25 were talking fixing isforth for openbsd 18:23:25 free bsd 18:23:29 and net bsd :P 18:23:30 calm now.... the ones who needs to be shot are the x86 designers 18:23:48 * TheBlueWizard looks around for futhin.... 18:23:51 them too :) 18:23:53 shh 18:26:52 dumb debuggers are the worst eh ? 18:27:17 reading maxim makes me dumb 18:31:38 jamc it shouldnt be too difficult to find the end of the data segment, the problem is that the only place the data segment is references AT ALL in the sources is from within macros 18:31:44 and they are all in macros.1 18:32:19 well there's a linker symbol, i just need to import it 18:34:52 hrm 18:35:04 you could do 18:35:04 .data 18:35:14 foo = $ 18:35:14 .text 18:35:24 at the end of isforth.f 18:35:35 erm no 18:35:35 do 18:35:35 .data 18:35:35 foo: 18:35:36 .text 18:35:50 i just used it as a variable... seemed to work 18:36:02 and somewhere in the soruces you can do mov eax,foo 18:37:01 mov eax,[foo] gets contents of address 18:37:01 mov eax, foo 18:37:01 points eax at address 18:41:17 anybody have any forth source code to give me? i am interested in small interesting forth programs that do something amusing, like display something or do something useful.. i'm not particularly interested in mathematical programs or extensions of forth , etc 18:49:04 gotta go...bye all 18:49:34 --- part: TheBlueWizard left #forth 18:56:10 * I440r is gona go code... ill bbl 18:56:25 jamc if u get ./kernel.com working ill buy you a beer nest time i see you :) 18:56:45 hehe... i'm busy dumping core :) 18:57:17 lol 18:57:21 --- quit: I440r ("the coder whent that way -->") 19:21:34 anybody here alive? 19:22:01 * jamc nearly asleep 19:22:24 i'm curious about how i can switch the screen mode from 80x25 to 80x50 in forth 19:22:44 in dos 19:22:53 if i were in linux, i'd just use the framebuffer.. 19:23:35 i don't remember how exactly... but it's like 3 lines of asm, IIRC 19:24:04 what keywords should i use to google for it? 19:24:29 --- join: tathi (~josh@ip68-9-58-81.ri.ri.cox.net) joined #forth 19:25:14 80x50 dos text-mode change :) 19:25:43 found it.... http://www.cybertrails.com/~fys/faq.htm#dos1 19:25:59 damn, 4 lines :) 19:26:14 heh 19:30:34 i can type mode co80,50 at the dos prompt too 19:30:46 right 19:33:43 gotta go to bed... see ya all 19:34:10 good night 19:34:24 --- quit: jamc ("[x]chat") 19:46:47 --- join: CrowKiller (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 19:46:52 hi 19:47:01 hey 19:48:13 does someone here developped something for an ARM processor? do you think we could code a unique virtual forth machine in thumb code and x86 assembly? 19:48:30 what's thumb code 19:49:09 don't see why not...never done much with ARM though... 19:49:54 thumb code is from what i've read 16 bits tokenized arm assembly 19:50:10 like a 16 bit instruction set for the most common 32bits instructions 19:52:01 because there's a portable and programmable 32 bits architecture present named the GBA 19:52:29 the gameboy advance is really a nice piece of portable, cheap hardware, with sound and color screen 19:52:46 what processor? 19:52:48 the processor is 32 bits, as with the x86 19:52:52 arm7tdmi 19:53:01 with a graphical coprocessor 19:53:05 nice 19:53:07 speed? 19:53:16 hm around 25-30mhz 19:53:22 the specs are somewhere 19:53:29 but what is really nice 19:53:40 yeah, just thought I'd ask you instead of going and looking it up :) 19:53:49 is that there's a serial bootstrapper onboard 19:54:09 hmm... :) 19:54:26 that read an input stream if theres no cart present, dump it in wram and execute it 19:54:52 http://www.godsmaze.org/gba/ 19:55:18 ive got some AVR chips but the source code for the micro is in PIC assembly 19:55:53 --- nick: bugslayer -> futhin 19:56:50 ah 19:57:01 in my case I would have to port it to the AVR and by using Dataflash serial memories from atmel also, its a much nicer dev platform, limited code memory but with an aha like system it would be quite easy to implement serial compilation on the fly 19:57:15 so dont need a 200$ programmable cart ;o) 19:57:22 the ram is 256kb large I think 19:57:52 wait, source code for the cable's micro is PIC, right? 19:58:02 with that you cna easly dump roms, just upload a little programm that output it on the serial port and its done 19:58:04 yes 19:58:17 oh, ok, I see what you're talking about now 19:59:17 but in theory it can be bypassed, because i know some code for windows 95 that can run Ring0 code on the fly, right in the middle of the program 19:59:44 so the horrible timing issues associated with windows and the hassels of implementing a driver are eliminated 20:00:08 I saw on the colorforth list that some guy wants to code a WinColorForth 20:00:25 it might get very interesting in the future 20:00:26 yeah, I was reading that the other day 20:01:22 I'm more interested in forth being the operating system than running on top of it though... 20:01:58 because the editor could run in Ring3, and when we start the colorforth program, a snapshot of memory is taken, the program run in ring zero and on completion or on error, the routine of putting the memory snapshot back there and returning the os to windows is called 20:02:14 incognito lol 20:02:56 this technique is used by virii makers, its detailed in the VIH source code, this is a great piece of work to learn about viruses and asm programmin 20:02:58 g 20:03:03 heh 20:03:04 yeah 20:03:24 --- mode: ChanServ set +o futhin 20:03:39 --- topic: set to 'can someone tell futhin if a forth chip can emulate the architecture required to run palmos, and run palmos at a faster speed than the current palms out there? :)' by futhin 20:03:58 just recode palmos functionalities in forth 20:04:07 well that's more work 20:04:08 there's an emulator out there I think 20:04:22 i just want to see if i can quickly get forth chips produced and out there in the world :P 20:04:31 futhin, that would kind of depend on the speed of the forth chip... 20:04:49 forth chips like you want thme to be used exist 20:04:55 theyre called java stamps 20:04:59 or named like that 20:05:42 palmos is irrevelant IMHO 20:05:59 irrelevant 20:06:16 just look at the Gameboy Advance 20:06:22 cost lot less than a pda 20:06:51 got mroe capabilities built in than some of them, and you can extend it by building custom hardware into a cart 20:08:12 well ideally, we want forth chips to be used lots in the real world, so that they are available to us forthers :) 20:08:26 design them in FPGAs 20:08:33 but they will not run fast 20:08:41 or as fast as you could get from a real chip 20:08:52 realdigital CPLDs from xilinx look great 20:08:56 I'd love to do that 20:09:10 unfortunately I don't know _anything_ about hardware at that level... 20:09:11 they're all digital CPLDs run on less power and to 300 MHZ 20:09:18 i learned the basics in 2 weeks 20:09:20 yeah, I was looking at them the other day 20:09:22 really easy 20:09:43 that's good to know 20:10:12 but if we only have foreign hardware, we must code efficient virtual machines 20:10:31 a 32 bit one and a 8 bit one 20:10:36 yup 20:10:36 chuck said that before 20:10:49 and i tried myslef to come up with a 8 bit standard 20:10:54 for a 32 bit machine 20:10:58 for compactness 20:11:05 but what i gain there I loose it in speed 20:11:17 really 20:11:20 what would be a "killer application" for forth chips? PDAs? 20:11:24 embbedded stuff? 20:11:26 for 20:11:27 me 20:11:28 : 20:11:31 gameing consoles 20:11:45 XBOX, GBA, gamecube, PS2 20:12:17 you mean you lose speed vs. a 32-bit standard for a 32-bit machine? 20:12:21 XBOX is a x86 and is 32 bits, GBA is a 32bits ARM and the gamecube is a 32bits PowerPc 20:12:38 I'll write stuff for gamecube then :) 20:12:45 what are you talking about? 20:12:47 i own myself a gamecube 20:12:52 how would you use forthchips for that sutff? 20:12:58 and who really cares about gaming consoles? ;) 20:13:02 im not talking about forth chips 20:13:08 talking about virtual machines 20:13:11 if we developp 20:13:15 a virtual machine so good 20:13:20 that it performs well 20:13:24 on those three consoles 20:13:37 then everybody will want to build forth chips 20:14:00 so develop emulators ontop of forthchips.. one that emulates x86, one for ARM, one for powerpc? 20:14:03 is that what you are saying? 20:14:06 because they'll get it in the teeth: forth is the best language around and floppy hardware blocks it 20:14:15 futhin 20:14:16 lol 20:14:21 im saying 20:14:24 we must emulate 20:14:28 the ideal forth chip 20:14:35 on top of those non-perfect hardware 20:14:45 so everybody, in their search for speed 20:14:53 will look into hardware forth chip design 20:14:58 i.e. develop a virtual machine with standard bytecode 20:15:04 write code for it 20:15:05 java tried this 20:15:14 but its wrong and ugly 20:15:19 forth is the key to me 20:15:29 aha particularly 20:15:41 JIT compilation of java 20:15:53 okay, so basically say to everyone "forget about java, use forth" and then create high-quality forth virtual machines for all the architectures 20:15:55 that what it brings to forth 20:16:28 we must code applications in forth, on top of our ideal virtual machine implemented on those 32 bits hardware 20:16:36 java is just an example im saying your mixing things 20:16:38 why will people look into hardware forth chip design? 20:16:48 yes! yes! 20:16:51 this is good stuff 20:17:01 with a virtual machine, we can have a portable forth operating system.. 20:17:10 right? :P 20:17:28 hey come on! forth will be running on top of INNEFICIENT VIRTUAL INSTRUCTIONS 20:17:41 if that code would run on dedicated hardware it woudl run fast 20:17:49 yes 20:17:55 anyway all the picture is very clear to me now 20:17:59 um 20:18:12 code a forth os ontop of the forth virtual machines.. 20:18:18 so that people gain acceptance of the os 20:18:19 get lost with the os 20:18:21 lol 20:18:26 then later on, they switch to forth chips 20:18:27 no os at all 20:18:30 * tathi agrees with CrowKiller :) 20:18:31 and run the os ontop of the forth chips 20:19:02 only a virtual layer, to uniform all forth code, so that a non-platform specific code can run on any of those consoles 20:19:05 that include games 20:19:06 and all 20:19:30 overall acceptance of this programming model would become true 20:19:36 because that the ebst way to go 20:19:56 so have you started designing a virtual machine yet? 20:20:08 we just have to get our ass moving and come up with the best 32 bits virtual machine possible 20:20:11 yes 20:20:18 can't we just use machineforth? 20:20:18 ive got idea for the if 20:20:25 machineforth need improvement 20:20:29 in clarity 20:20:35 how so? 20:20:40 ok 20:20:43 i dont know all of machine forth 20:21:03 but i know I enjoyed very much in my asm programming session on AVRs and SXs 20:21:19 the "skip the next instruction of the flag is true" 20:21:25 or false or whatever 20:21:33 in asm this concept is odd 20:21:45 because you can only skip a single machine instruction 20:21:53 of a specific size 20:22:05 so you can only do this with small jumps values or things like that 20:22:12 imagien that concept in forth 20:22:24 though that's only a problem on machines with variable instruction sizes... 20:22:43 if the "if" skip^the following word only 20:22:46 its great 20:22:57 cause no more search for the damn then 37 word later 20:23:04 no back propagation of the jump offset 20:23:15 no more complications 20:23:20 just a single word 20:23:31 and if you want to make a jump table 20:23:32 its easy 20:23:38 just put a the start of the called word 20:23:43 you still get the same problem with forward branches though... 20:23:46 a Rdrop insstruction 20:24:04 that drop the first item on the return stack 20:24:24 tathi: ? 20:24:53 the bit about searching for the then 20:25:14 my code would look like: :cacaboudin blopblopblop aliboulalawordfromnowhere if jumptothatotherwordiftrue elsegotothatotherword 20:25:30 it would add the flag to the pc 20:25:33 d'oh 20:25:34 sorry 20:25:39 the negative flag 20:25:42 or the zero flag 20:25:47 or any flag that you implement 20:25:50 yeah 20:26:06 this is a lot nicer mechanism 20:26:13 and really easier to code than thens 20:26:40 a lot easier to read and all 20:26:44 its all in my .plan 20:27:01 now that the if are defined i need to tackle with other control structures 20:27:05 like loops 20:27:08 and all 20:27:16 an efficient way of implementing them 20:27:27 maybe a special "count register" 20:27:33 or by using the A register 20:27:56 the A would have store+ or fetch+ 20:28:03 A register would probably be better 20:28:18 a register dedicated to looping constructs 20:28:30 i thought it would be great also 20:28:42 woah woah 20:28:54 and also made the data stack idem to the return stack 20:29:02 wait, I meant I'd prefer using the A register to having a dedicated count register 20:29:03 so we can do drops overs and stuff on the return stack 20:29:25 how does machineforth need improvement in clarity? 20:29:31 let's get back to my question :P 20:29:43 i don't know much asm 20:29:47 in clarity i dont know but at least the code ive read is at someplace hard to understand 20:30:14 looping could be easly implemenetd with "dec if Rover" construct 20:30:20 dedicated count register just seems like one more thing that you don't _really_ need 20:30:28 one more bit of state that you might need to save 20:30:31 hahahaha the if is really powerful that way 20:30:49 crowkiller: why not talk to chuck moore? maybe ask him for some help in building your virtual machine ;) 20:31:07 I would like very much if he could come here 20:31:23 but you people on this chan just bore him with stupid things IMHO 20:31:35 like what? 20:31:41 i dont know 20:31:46 hes advanced a lot 20:32:00 we shpould try to look into what he's interested 20:32:06 i haven't had a chance to ask some deep questions, in fact, i don't really want to do that until i've read all the papers on ultratechnology and at other places 20:32:08 and try to discuss with him 20:32:15 much like jeff did all those years 20:32:25 ive read all those papers 20:32:42 and ive read all the stuff I could read 20:32:56 on the net and elsewhere 20:33:30 and really you dont need that do do something useful or intelligent or to help gurus like thefox or chipchuck 20:34:15 just try to know what theyre talking about and see things like they see them and try to come up with something new fresh and new that would be interesting 20:34:21 i hope whatever virtual machine you design.. i hope that you keep it FORTH! 20:34:23 hackiong away gaming consoles is great 20:34:33 don't bastardize forth :P 20:34:33 it will be forth 20:34:42 ans forth isn't forth in chuck's view 20:34:43 im the only one here that dont bastardize it 20:34:48 i know all that stuff 20:35:02 i hope i don't bastardize it either 20:35:09 and i find it a pity personnaly that isforth exist, that someone put his time in it 20:35:11 i really agree with chuck's philosophy 20:35:21 it's a hard path to walk, but it's the higher path 20:35:29 what don't you like about isforth? 20:35:33 chuck's path is the easiest 20:35:46 the simple reason, it looks complicated 20:35:58 and its not like i want foth to be 20:36:04 its not the incarantion im looking for 20:36:13 no, it is complicated, people won't understand you, and it's hard to achieve the simplest solutions 20:36:16 it takes work 20:36:28 "it takes a genius to be simple" -- one of my favorite sayings 20:36:35 i dont want to code into that, i dont want to learn how its working on the inside 20:36:40 on to cope with its bug 20:36:44 oh you are talking about isforth 20:36:52 learn how to come up with something 20:37:00 what bug? 20:37:14 i dont know, i never used it 20:37:15 whatever bugs it may have... 20:37:19 its a shame in fact 20:37:25 but im not interested 20:37:34 i always got better things to do than try it 20:37:38 well, that's fine and all 20:37:42 like linux 20:37:47 i once believed in linux 20:37:50 i installed it 20:37:54 2 years ago 20:38:05 when slackware 4.0 has hit the shelves 20:38:21 i build my own system from scratch it took me my full summer 20:38:36 this was a ream system for me, well almost, i learned a lot about linux and all i sacrified time 20:38:58 and when my hd got formated because of a stupid partition error and the a format command 20:39:05 ouch 20:39:41 i was so discouraged I got windwos installed, and im using it, i was tired of ripping my ass in 4 just 20:39:48 to come up with something IN LINUX 20:39:54 yeah 20:39:59 i sympathize 20:40:01 because linux is bla bla bla bla bla... you know the stuff 20:40:03 lol 20:40:07 linux can take a lot of time 20:40:18 i tried to install it on my friend,s computers 20:40:24 a learning curve, time to customize things & tools to feel comfortable with it, etc 20:40:25 i wasnt even able 20:40:31 in the time i had 20:40:41 because kernel would not compile on their particular machine 20:40:44 and bla bla b;a 20:40:54 linux is really enslaving people as much or even more as windows 20:41:03 forth is the key 20:41:16 yes true 20:41:23 all i want is simplicity damn it lol 20:41:24 i don't like linux, and i don't like windows 20:41:32 and i don't like just about every os out there :P 20:42:02 my main interest is coding an os 20:42:05 yes, and you're goung to replace them all with a forth os that's going to take the world by storm, we know :P 20:42:09 a better os.. 20:42:12 in forth 20:42:13 its so much gratifyng coding a AVR or a SX to do your owm biddings, to code a complete solution to a problem, its great 20:42:26 we dont need an OS 20:42:31 AVR or SX? 20:42:32 OS = shit 20:42:41 www.atmel.com for the avr 20:42:43 crowkiller: WHO IS "we" ??? 20:42:50 www.ubicom.com for the SX chip 20:42:58 everyone computing 20:43:01 all of us 20:43:05 even the begginers 20:43:31 so what do you propose? 20:43:41 they dont need an os, in fact they need to learn how to use a simple, small, powerful forth in 5-10 minutes 20:43:47 how are we web browsing and talking on irc without an os? 20:43:48 and stop wasting their lives 20:43:52 in front of computers 20:44:04 because the time you're apssing in front of the screen 20:44:28 doing nothing that you want to do, you do nothing useful 20:44:46 lol its that simple 20:44:56 wasting time in a chan 20:44:57 like this 20:45:00 my idea for the forth os is 99% about how the general person will be able to easily code in forth after learning it in 10 minutes.. my inspiration comes from an easy scripting language called MUF (multi-user forth) 20:45:03 bragging into thin air blablas 20:45:17 heh 20:45:18 whatever, irc can be a tool 20:45:21 web browsing is a tool 20:45:22 etc 20:45:27 people want tools 20:45:28 is really annoying for people like jeff fox and chuck 20:45:38 i also want to give them the ability to modify their tools on the fly 20:45:42 they want some innovation 20:45:43 or to code their own 20:45:44 etc 20:45:47 they're actually used to it 20:45:49 lol 20:47:00 lets get back to web browsers, spread sheets, communication tools, etc 20:47:11 where are those things going to be when we eliminate the os? 20:47:17 in source code 20:47:20 all source 20:47:30 yes 20:47:30 no more distributed object code 20:47:33 that's fine 20:47:36 that's still an os 20:47:39 only source that compiles itself on the fly 20:47:39 that's what i was thinking.. 20:47:41 opensource 20:47:47 source for everything.. 20:47:51 opensource need living source code 20:47:56 people can quickly, easily get into the source 20:47:59 modify it, etc 20:48:01 that can evolve rapidly and efficiently 20:48:07 (but more likely, extend it) 20:48:13 because having to compile something is frustrating 20:48:17 you ghet errors in the source 20:48:19 etc etc etc 20:48:27 if the app is stored as source no more need to compile 20:48:39 yes 20:48:44 just execute the compiler when you want to use it and hop, its not traditionnal compilation 20:48:47 it's still an os in my point of view 20:49:06 yeah to me an os is code that supervise other code 20:49:17 so thats why i dont feel a need to that 20:49:29 my vision was that people would be using something like irc, and maybe they want to change how it behaves.. so they just code a few lines on the fly, and boom, they have extended the irc client 20:49:34 and they can throw away that code later 20:49:43 because the language is so simple & easy to understand 20:50:02 imagine kids coding in forth 20:50:06 or they want to code their own tools, etc 20:50:06 on top of their gaming consoles 20:50:12 coding brilliant things 20:50:13 imagine grandmas coding in forth! :P 20:50:21 forth is the lego of programming language 20:50:23 ;p 20:50:24 yes 20:50:46 yes, i was thinking along those lines with the "forthos" 20:50:54 that a dream to me, i would be in a perfect world if all my friend would be able to code 20:51:06 we could share things easly 20:51:18 they could learn faster, open their minds to a lot of things 20:51:22 man, my first exposure to forth was MUF 20:51:34 my first was colorforth 20:51:35 i learned it in like 5 minutes, and i was coding immediately.. it was exhilarating 20:51:44 simple string based stuff 20:51:52 but it was very easy to learn 20:51:54 i got frustrated that i could not do that lol 20:51:58 and use 20:52:17 anyway ill come up with something, i must before going to college 20:52:21 because i wont have time after 20:52:32 the interactive nature of forth is a greater advantage that most people realize.. most people do not understand how much of an advantage it actually is 20:53:02 sure you'll have time 20:53:08 as long as you don't party :P 20:53:21 i wont, actually I hate bars and stuff like that 20:53:35 you only need to study about an hour or two every day 20:53:59 paryys arenot great because to me most of the time its losing time, smoking pot drinking beer and all, funny stuff come out, but to a greater loss: lost of time and health lol 20:54:07 it's not as hard, but it's a trick.. they lull you in the first two months, then the last month is the real shit 20:54:54 --- quit: tathi ("later all...") 20:54:56 imho, school is a joke 20:55:21 highschool, university, whatever.. its a joke, and also a waste of time, inefficient teaching methods, etc 20:55:31 exactly 20:55:40 you wanted to lose 30 pounds? 20:55:46 all knowledge must be accessible 20:55:56 i read this very interesting book recently 20:56:22 called The Carbohydrate Addict's Diet.. 20:56:40 it is from an old women 20:56:55 my mother owns a library, she talked in her book about sugar addiction 20:57:07 do you think maybe you are a carbohydrate addict? ever get any craving for sweets or breads? 20:57:11 no this isn't really about sugar 20:57:13 its was a diet book the name was in french, i dont recall 20:57:17 it's about carbohydrates 20:57:22 the writers are american 20:57:35 it was a translation 20:57:47 this book is not a translation.. 20:57:48 the author's name was english 20:58:08 there were two authors with this book.. 20:58:11 anyways 20:58:12 anyway i know you book isnt translation lol go on 20:58:36 with carbohydrate addicts the body has a tendency to produce excess insulin 20:59:27 generally, you eat, the body produces insulin, you finish the meal, the insulin is absorbed by the muscles and fat cells (and the cells use insulin to get fuel from the bloodstream) 20:59:28 so...? 20:59:59 and then serotonin is produced when the insulin levels have gone down to pretty much zero 21:00:15 and that gives you a satisfied feeling, and tells you that you are full 21:00:33 however, with 80% of obese people, their body produces excess insulin 21:01:25 and so they won't get the feeling of being satisfied.. 2 hours after a meal, they might feel like snacking, even if it was a really big meal 21:01:40 the bad thing is that with all the excess insulin, more fat is stored 21:01:50 so you can actually eat less than a skinny person but still store more fat 21:02:11 but generally, with all this insulin, you'll get lots of craving for carbohydrates 21:02:15 erm 21:02:33 when eating carbohydrates, the body produces insulin.. 21:03:01 also a lot of obese people drink pops all day containg aspartame (synthetic sugar) that breaks up into ascorbic acid, phtenaltaine and methanol when temperature is more than 30deg celcius 21:03:16 those chemical too make insulin imbalances in the body 21:03:34 so eating carbohydrates causes insulin to be produced and excess insulin will result in cravings for more carbohydrates, unsatisfied feelings, and greater fat uptake 21:03:48 in fact aspartame is an excitotoxin, killing your neurons into thinking that what you eat is sweet 21:03:56 so here's how to manipulate the body to lose weight & reduce cravings 21:04:31 the breakfast and lunch meals are low-carbohydrates, and then the dinner can be high-carb, eat as much as you want.. 21:05:10 i usually dont eat much in the mroning or at noon, but i get a hundred snacks when at home lol 21:05:35 when you eat, insulin is released within a few minutes 21:05:47 the amount of insulin released is based on how much insulin needed previously 21:05:51 that may explain my proportionned weight even if i dont do exercise or sport 21:06:21 so because your previous two meals were low-carbs, the insulin released during dinner is very low 21:06:39 you are allowed to eat as much as you want during dinner, but here's the catch: 21:06:45 you have to eat it within an hour 21:06:59 because what happens is that if you are still eating an hour and 15 minutes later from the start of eating 21:07:06 a second amount of insulin will be produced 21:07:22 and you'll end up with excess insulin, cravings for more snacks, etc.. and be basically screwed :P 21:07:50 but the cool thing 21:08:03 is that because the first amount of insulin released is so small 21:08:07 that you can pig out 21:08:12 and still lose weight 21:08:29 because there won't be much insulin to tell the fat cells to uptake fat 21:08:52 if you don't eat for morning or lunch, but eat when you get home, try this: 21:09:00 come home, and eat a low-carb meal/snack 21:09:09 and then wait for dinner, and make sure you finish that off in an hour 21:09:21 and don't eat anything after that, unless it's low-carb 21:09:38 bread is high carbohydrates? 21:09:49 i know at least that gatorade is full of that lol 21:09:58 low-carb stuff are: meat, cheese, lettuce, spinash, most vegetables 21:10:36 high-carb stuff are: bread, starchy foods (grain products, spaghetti, etc), sugars, fruit, pop, juice, etc 21:11:06 the basic of a good alimentation is a vegetarian one and not very much food, and we should all drink our urine form time to time lol 21:11:38 so anyways, when you get home, just have a low-carb snack/meal and wait for dinner 21:11:38 some allergies can be fought with that particular practice 21:11:48 dacodac ;p 21:12:11 i wouldn't be surprised if you lost more than 2 pounds a day because you are fasting the morning & early afternoon 21:12:21 er 21:12:22 a week 21:12:30 more than 2 pounds a week 21:12:31 a day lol 21:12:46 but becareful about weighing yourself once a week 21:12:49 it won't be accurate 21:12:58 i am 5'10" and weighting now about 140lbs 21:13:17 eh? 21:13:17 wtf? 21:13:21 you aren't overweight 21:13:25 i know lol 21:13:34 um 21:13:38 im actually in great physical condition 21:13:54 who the hell was i talking to that needed to lose 30 pounds for some air force thing 21:13:58 i sprinted the fastest last year at my svhool and jumped the highest 21:14:05 dont know 21:14:11 lol! 21:14:13 sorry 21:14:23 that was great info 21:14:26 wasted your time :P 21:14:35 I myself get lost on a lot of subject sometimes 21:14:38 not at all 21:14:44 except you could tell obese ppl around you about the insulin thing ;) 21:14:51 exactly 21:15:01 and those girls around me 21:15:07 that try to lsoe weight 21:15:07 lol 21:15:12 yeah 21:15:21 but the diet only applies to carbohydrate addicts 21:15:33 people who's bodies are slightly out of whack 21:15:51 (not a bad thing, it's probably an old survival trait) 21:15:57 s/who's/whose 21:16:22 that thing is that a regexp? 21:16:30 s/who's/whose 21:18:17 I dont know about them, and they come by every now as "previously known by the reader" references when reading stuff on the Net 21:18:20 it's a vi thing 21:18:41 linux, vi :P 21:18:47 you could get gvim for windows 21:18:52 but bleh, vi has a learning curve 21:19:17 ha like search who,s and replace by whose 21:19:22 even though after you get past that, you'll find yourself working a lot faster, etc 21:19:30 its kind easy to understand in fcat, it was in my 1500 pages linux book 21:19:41 but i skipped this section 21:20:07 well it's understandable, but working with vi and becoming comfortable with it takes some time 21:22:22 I woudl put as topic "Actual Project: To design the easiest, simplest and mightiest 32bit Virtual Foth Machine for x86/ARMthumb/PowerPC possible" 21:22:46 or something like that 21:23:01 because once we have it 21:23:11 when everybody agreed on that 21:23:16 we can actually share code for it 21:23:20 and work together 21:23:33 i think thats the standard people are looking for 21:23:42 anyway thats what im looking after lol 21:24:47 http://www.godsmaze.org/gba/ 21:24:56 this is the gba code uploader 21:25:05 --- topic: set to 'Actual Project: To design the easiest, simplest and mightiest 32bit Virtual Foth Machine for x86/ARMthumb/PowerPC possible' by futhin 21:25:10 they got a NES emulator 21:25:13 a cart dumper 21:25:17 a savegame dumper and uplaoder 21:25:23 all coded serially 21:25:42 hmmm 21:25:47 not all at all in fact 21:25:49 lol 21:25:58 i mean those are samll piece of code 21:26:09 that can be uplaoded to the gba at startup 21:26:27 so that he can do functions that woudl require special hardware 21:27:46 the best thing would be an sram cart, storing apps or roms in inexpensive dataflash and sending them to sram could be great 21:28:31 on the gamecube theres the high speed io port that is connected to the bus that send the bootcode to the gekko processor, the 485 MHz PowerPc 21:28:37 this beast got embedded ram 21:28:46 with a one cycle latency or less i think lol 21:29:01 it would outperform anything if it could run forth 21:29:05 hey, the virtual machine should be also an actual forth chip design 21:29:19 you finally understood my point lololol 21:29:34 forth is truly a hardware design 21:29:39 no, always understood it :P 21:29:53 ok lol 21:30:10 don't worry, english gets in the way of our communication of ideas, points, etc 21:30:21 any language does.. need direct cortical links :P 21:30:54 i can understand anything, but i lack "outward communication skills" in english ;p 21:31:18 in college i will get to Ottawa/Hull region 21:31:26 s/get/go 21:31:28 ;p 21:32:04 so my english will surely get better 21:32:05 well for outward communication skills, try to stick with straightforward logic, and make sure to break up your message so that it is a step-by-step logic thing or whatever 21:32:30 i dunno 21:32:36 you could've said earlier 21:32:56 my point is that forth is also a hardware thingie 21:33:01 ;) 21:33:05 but i know that 21:33:11 and i think most ppl here know that 21:33:19 especially onetom 21:33:29 and perhaps kc5tja afaik 21:33:50 and goshawk 21:34:00 that idling bastard :P 21:34:42 so if we get the best virtual machine around, it will be the best hardware ;p all free and opensource of course =) 21:35:20 well 21:35:39 if the virtual machine is also going to be hardware, you'll have to spend a lot of time designing forth chips 21:35:48 chuck is the expert 21:35:54 learn VLHD and stuff 21:36:01 if we come up with a good virtual machine and if he believs in it 21:36:14 then hell design it for us im sure 21:36:18 fine, we come up with what we think is a good virtual machine, and present it to him 21:36:27 and he'll modify it 21:36:29 his approach to chip engineering is the best around 21:36:32 if necessary 21:36:53 in order to fit the real world realities of how his forth chips function 21:37:03 and the limits and advantages of the chips 21:37:44 look at the instructions for the x18 his masterpiece core 21:38:04 I dont understand how it works completely 21:38:14 the virtual machine is the same as the forth chip design, i doubt that you can create an effective forth chip design AFTER the virtual machine has been designed 21:38:16 at least i came up with a simple to understand if statement 21:38:31 it'll be more effective if the virtual machine & forth chip design are both created at the same time 21:38:41 i dont understand how the call and and all are implemented 21:38:54 thats what i tried to do 21:39:32 adding a flag to the stack can implement a lot of thing, if, -if, odd if or even if 21:40:00 -if and if are the only one in fact 21:40:12 we need in hardare because the otehrs can be made from them 21:40:34 to do a is the number odd if statement 21:40:56 only rotate the 32 bits of TOS right 21:41:01 and do a -if 21:41:30 when using asynchronous logic you can afford to synthetise instructions with forth words 21:42:12 if the chip design is the bare minimum running at a good enough speed great things can be achieved using the minimum of ressources 21:43:00 http://www.colorforth.com/X18.html 21:43:10 its supposed to be its masterpiece 21:43:28 the if jumping to a nowhere to be found then is confusing 21:43:55 a no operand call 21:44:06 can only be call what's on the datastack 21:44:42 the or opcode is confusing 21:44:57 because its really a xor 21:45:02 theres such little details 21:45:20 that need to be adressed to make it even better 21:45:25 hey i'm going to be away for a bit 21:45:34 for 45 minutes or so 21:45:42 k 22:03:53 look at this!!!!!!!!!! http://www.charmedlabs.com/ my dream dev hardware come true lol 22:03:59 for the gba of course 22:04:26 but it applies for anything from gamecube to xbox, just change the controller 22:04:31 i meant the connector 22:05:02 imagine forth running on this baby lol 22:10:18 I think aha redefined what a forth virtual machine need to be 22:10:44 I'll try to come up with something before going to bed 22:14:29 ARM vs X86: Arm is a lot nicer when it comes to instructions, look at section 4.4 of http://www.arm.com/techdocs/56QGGJ/$File/ARM7vC.pdf 22:14:57 only have to look now at the powerpc architecture 22:16:55 this file resumes well the arm7 architecture and is small 22:17:20 ill try to get a powerpcp one for the gamecube but since its proprietary it might be difficult 22:33:19 --- join: sbk_ (~500@dsl-65-184-98-221.telocity.com) joined #forth 22:45:15 an account on that site would be crucial http://www.warioworld.com/ 22:45:32 they surely got the specs for the gekko processor up there 22:45:57 why you messing with gaming consoles? :P 22:48:32 the powerpc in the gamecube is the cheapest abaible processor of this class around 22:50:38 and for the virtual machine I'll see right away if my ideas are good enough, if they work well on a poerpc, and arm and a x86, ill keep them 22:56:11 --- quit: sbk_ ("Leaving") 22:59:34 I think in the virtual machine there should be only no operand opcodes 23:00:06 like in aha, the concept of dictionary could be extended to forth hardware 23:00:35 its already in hardware in fact 23:00:52 because aha's dictionary are indexed calls 23:01:09 ha ill try to come up with something 23:08:41 i must go to bed its 2:10 am here, good night everyone 23:09:07 --- quit: CrowKiller ("The 32 bit machine need to be done, we cant do anything without it!") 23:32:56 --- quit: futhin ("bye") 23:59:59 --- log: ended forth/02.06.01