00:00:00 --- log: started forth/04.06.18 00:18:59 --- quit: I440r ("Leaving") 00:32:38 --- quit: topher ("Client Exiting") 02:26:40 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 02:30:37 * aum has just integrated Forth and Python 02:49:51 --- join: bjazz (SunFire@pD95459D8.dip.t-dialin.net) joined #forth 03:02:11 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 03:22:56 --- join: crc (crc@0-1pool176-21.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 03:26:12 --- part: bjazz left #forth 03:43:17 --- quit: crc (Read error: 54 (Connection reset by peer)) 03:48:56 --- quit: aum (calvino.freenode.net irc.freenode.net) 03:48:56 --- quit: mur (calvino.freenode.net irc.freenode.net) 03:48:56 --- quit: Fractal (calvino.freenode.net irc.freenode.net) 03:50:47 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 03:50:47 --- join: Fractal (jah@selling.kernels.to.linus.torvalds.at.hcsw.org) joined #forth 03:50:47 --- join: mur (~mur@smtp.uiah.fi) joined #forth 04:02:14 --- quit: Fractal (calvino.freenode.net irc.freenode.net) 04:02:14 --- quit: mur (calvino.freenode.net irc.freenode.net) 04:02:14 --- quit: aum (calvino.freenode.net irc.freenode.net) 04:03:44 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 04:03:44 --- join: Fractal (jah@selling.kernels.to.linus.torvalds.at.hcsw.org) joined #forth 04:03:44 --- join: mur (~mur@smtp.uiah.fi) joined #forth 04:23:01 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 04:33:48 --- join: Robert (~snofs@c-bf5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 04:35:18 --- join: jdrake (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 04:38:24 --- join: onetom_ (~tom@novtan.bio.u-szeged.hu) joined #forth 04:38:26 --- quit: onetom (Read error: 104 (Connection reset by peer)) 04:46:56 --- quit: jdrake (Read error: 60 (Operation timed out)) 05:05:16 --- join: solar_angel (~jenni@Toronto-HSE-ppp3685160.sympatico.ca) joined #forth 06:15:25 --- join: undesktop (~mhf@p3EE021FB.dip.t-dialin.net) joined #forth 06:15:30 hello 06:15:44 hm, forth seems to have many fans... 06:16:42 it does. 06:17:27 so let's examine the links 06:18:56 Hi undesktop 06:19:28 hi 06:19:30 I just added the last link in the topic a few days ago, really nice Forth page. Has links to everything and everyone. 06:20:16 hiya Robert :) 06:20:35 Hey solar_angel :) 06:21:00 Everything up and running now in the STC port? 06:21:13 yep :) 06:21:20 i've got interrupt support now too 06:21:35 Sounds good. 06:21:44 i like it. 06:22:07 my OS has a built-in screen blanker hooked off the timer and keyboard interrupts now. 06:22:13 :) 06:22:32 Is the Forth compiler written in assembly language? 06:22:52 yes. 06:22:59 Anything else (except boot code) ? 06:23:55 not really 06:23:59 a few routines, for speed 06:24:07 and there's an inline assembler that i use from time to time 06:24:09 although it's not finished 06:24:14 (the assembler itself is written in forth) 06:25:10 OK... So how many of the registers do you currently use, and how many are reserved for the optimizer? 06:25:40 * Robert thinks about using up all the registers and give someone trying to implement an optimizer a big headache. 06:25:48 i'm currently using EAX (TOS), EBP (reserved for function stack), ESI (temporary), EDI (param stack), ESP (return stack) 06:26:24 EBX, ECX, and EDX are reserved for the optimizer. 06:26:52 i'm also using ES for the protected parameter stack area. 06:27:39 OK... I have also reserved ebx, ecx, edx, but allocated the other registers for slightly different tasks. Including two address registers. 06:27:51 oh? 06:28:04 I noticed how words became so much shorter with those. 06:28:15 how so? 06:30:02 I've been writing words for e.g. dictionary lookups and string comparing, and when I rewrote them using two addressing registers they all became a lot cleaner. 06:30:22 And I'm also using them for parameter passing, to avoid some stack handling. 06:30:46 This is actually what an optimizer would do, but I just don't want to bother with that at this stage. 06:30:54 When I can't even test the code properly. 06:31:43 hrm... 06:31:47 fair enough 06:31:59 i'm not sure what you do with the addressing registers though 06:33:16 Right now I do a few dirty tricks with them, as I'm using assembly language. But later I plan to implement words to store, fetch and other things using those registers. 06:33:49 *nods* fair enough. 06:34:05 i'm looking at techniques for implementing my optimizer now 06:34:08 it's just around the corner. 06:34:14 Since just compiling traditional Forth code could get so inefficient when it comes to heavy memory crunching. 06:34:28 Nice, tell me how it went, when it went somewhere. 06:34:56 well, i've seen spots where my optimizer would shrink whole functions down quite nicely. 06:35:10 remember, i've written one optimizer for FORTH already (in C :P) 06:35:22 so i have some well-defined algorithms already 06:35:35 But on the other hand, I guess I could just write such speed-sensitive words in assembly and ignore other optimization. 06:35:41 Did it use one pass? 06:35:49 yes 06:36:06 here's a good example of a call that's horribly inefficient in standard FORTH but optimizes down quite nicely: 06:36:10 : swappos ( pos pos -- ) 06:36:10 OVER CELL + OVER CELL + 06:36:10 OVER @ OVER @ 06:36:10 -ROT SWAP ! SWAP ! 06:36:10 OVER @ OVER @ 06:36:11 -ROT SWAP ! SWAP ! 06:36:13 ; 06:37:08 Er, what is that? 06:37:25 where it's from isn't all that important, but it basically just swaps two doublecells in memory. 06:38:09 Ah, I thought that was a part of the optimizer itself, sorry. 06:38:16 nope. 06:38:22 just an example of something that optimizes well. 06:38:23 But yes, that could be optimized down quite a lot. 06:38:40 i'm writing the version that my optimizer would generate now (i don't have a working optimizer yet but i have the algorithm.) 06:39:29 Would you mind telling me how it deals with word calls, conditionals and loops? 06:40:48 depends on the word call... conventional words it just dumps everything back to the stack and calls it 06:41:03 nonconventional words it mostly tries to inline, if appropriate. 06:45:09 OK, good. How about conditionals? 06:45:19 anyway, that code above would get optimized to something like this (and yes, i know this isn't actually optimal, but it's decent code for a compiler): 06:45:23 MOV EBX, [EDI+4] 06:45:23 ADD EBX, 4 06:45:23 LEA ECX, [EAX+4] 06:45:23 MOV EDX, [EBX] 06:45:23 STOSD 06:45:24 MOV EAX, [ECX] 06:45:26 MOV [ECX], EDX 06:45:28 MOV [EBX], EAX 06:45:30 ADD EDI, 8 06:45:32 MOV EAX, [EDI+8] 06:45:34 MOV EBX, [EDI+4] 06:45:36 MOV ECX, [EAX] 06:45:38 MOV EDX, [EBX] 06:45:40 MOV [EAX], EDX 06:45:42 MOV [EBX], ECX 06:45:44 ADD EDI, 4 06:45:46 MOV EAX, [EDI+4] 06:45:48 RET 06:45:54 conditionals... well, conditionals optimize for sucess. 06:46:12 success* 06:46:26 so if it succeeds, no juggling is necessary. 06:47:10 hell 06:47:17 undesktop: ...? 06:47:40 scarry code *g 06:47:44 solar_angel: OK, and if it is NOT successful, it's just a matter of some swapping around? 06:47:50 Robert - exactly. 06:48:07 undesktop - compiler design is nasty, even compared to OS programming :P 06:48:18 jup I know 06:48:20 solar_angel: Question, is the parameter stack really necessary? 06:48:28 Robert - how do you mean? 06:49:22 Robert - i'm actually considering making the optimizer use the *return* stack for temporaries, if it feels up to it... if it guesses right, it'll generate much better code that way, but if it guesses wrong it can really bork things up. 06:49:35 solar_angel: Since the optimizer could use the parameter (hardware stack) for saving registers in function calls, and inside words the stack is cached in registers, what is the parameter stack used for? 06:50:08 hehehe, see, my first FORTH optimizer was single-stack. 06:50:36 it makes the optimizer a lot more complex, but it's achievable. 06:51:14 With your current design, when is the parameter stack actually used? 06:51:27 my *current* design uses it often. 06:51:47 the design with the optimizer only uses it when calling conventional words 06:51:58 or when the registers are overflowed (as in the above code snippet) 06:52:46 I mean the current optimizer plans. 06:53:00 But OK. 06:54:35 at the minimum, all the stack juggling words (ROT, -ROT, SWAP, NIP, TUCK, DROP, OVER, 2OVER, DUP) and basic primitives (+,-,AND,OR,@,!) should be redefined by the optimizer 06:55:34 this current optimizer is a lot less ambitious than my first one, but it's also designed to be several orders of magnitude smaller. 06:55:48 Hehe, and faster too? 06:56:14 That's what some Forth optimizers seem to have forgot, the compiler isn't supposed to be slower than g++ 06:56:16 faster to run, probably... it won't generate quite as good code in most cases... 06:56:34 well, even my first optimizer was single-pass. 06:56:38 and was quite speedy. 06:57:10 hm if it would be possible to code an os in a language like - prolog? 06:57:31 prolog?!?! 06:57:35 a functional-language OS? 06:59:24 no, a logical language 06:59:31 very funny, we mjst learn it... 06:59:34 must 06:59:44 hehehe. 06:59:55 I wonder how useful that would be. 06:59:56 the distinction between logic and functional languages is rather minor. 07:00:17 Prolog might be good at making humans feel good, but computers need something else. 07:00:42 lol 07:00:47 prolog is a good thing to hurt stduents 07:00:58 Heh. 07:01:01 You don't like it? 07:01:02 students 07:01:08 Or is it just your brain that doesn't? 07:01:18 well, sometimes it's funny 07:01:29 but mostly... no I hate it :-/ 07:02:05 well, but (some?) prolog runtime libs contain code for web clients and such, hehe 07:03:21 What is it used for, really? 07:04:31 don't know, mainly for AI, spoken language recognition and such 07:07:49 qFox: how if forth implemented in risc cpus optimally? 07:08:02 hu, Q expanded to qFox 07:08:09 stupid xchat 07:08:17 was wondering about that :p 07:08:51 appearantly : works as tabcompletion then 07:09:09 I was wondering it would be easier to implement forth, that uses stacks so much, on a cpu, that supports stacks "natively" 07:09:28 Q 07:09:32 yes maybe 07:09:38 Q: 07:09:38 heh. 07:09:40 mh 07:09:46 qFox: bla 07:09:49 Q bla 07:09:56 hm strange :-/ 07:10:09 risc cpus with autoincrement and autodecrement addressing modes work really nicely for FORTH 07:10:35 I've only worked on one such arch, the Atmel AVR chips. 07:10:51 And I must tell you, implementing stack based software on it wasn't bad. 07:10:53 * Robert purrs 07:10:54 i'm about to be working on PPC FORTH soon. 07:11:29 hm ok 07:12:56 * Robert doesn't have (m)any non-x86 computers. :( 07:15:17 i'm getting my first soon 07:15:49 maybe my next pc will also be non x86, if Im happy... 07:16:17 --- join: I440r (~mark4@168-215-246-243.gen.twtelecom.net) joined #forth 07:18:11 Hey I440r :) 07:18:24 hiya I440r. 07:18:48 heh, i'm in the process of attempting to write an AVR FORTH at the moment 07:19:28 Topaz: Cross-compiler, or one that runs on AVR? 07:19:35 it's a tad weird 07:19:39 hi 07:19:40 it runs in an AVR emulator ;) 07:20:04 (the emulator written in python) 07:20:07 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 07:20:15 --- mode: ChanServ set +o kc5tja 07:20:33 so a lot of the words are implemented in python, stuff like colon 07:21:07 hehe, writing an interpreter, thats interpreted again, thats interpreted again 07:21:24 yeah, it's rather gruesome :D 07:21:37 Heh. 07:21:40 well, i'm (for some aweful reason) thinking of making a BASIC interpreter in FORTH. 07:21:51 for nostalgia, i think. 07:22:09 Topaz: I designed a VM, which I implemented in Forth (isforth, by I440r :) and AVR asm, then I wrote a Forth system for that VM. 07:22:11 lol 07:22:23 solar did you see my 284365874 postings of my 8051 assembler on clf ???? :) 07:22:37 Topaz: Never bothered to actually try it on the AVR though. ;) 07:22:57 I440r - what? 07:23:00 the VM being an accurate AVR emulator? 07:23:14 * kc5tja has a complete-ish Kestrel emulator written entirely in one of the slowest dialects of Forth available for the PC: GForth. 07:23:23 i tried to post my 8051 assembloer on comp.lang.forth via google and it kept telling me "internal server error" 07:23:26 GForth, icky :P 07:23:27 It will itself run Forth. 07:23:32 solar_angel: Sounds nice. Why not write a BASIC compiler while you're at it, considering it's so close to assembly language? ;) 07:23:36 so i kept posting - they ALL made it through :/ 07:23:40 Hi kc5tja 07:23:54 i don't read c.l.f 07:24:24 well if you go to isforth.clss.net and click on the 8051 link theres a link in there to both the 8051 disassembler and the 8051 assembler :) 07:24:30 Robert - hrm.... not sure, really... i'm not much of a BASIC programmer these days, it'd just be for nostalgia reasons. 07:24:31 I440r: Hehe, someone came in here complaining about that. You sure are infamous in the Forth world now ;) 07:24:43 came in here complaining about what ? 07:24:53 solar_angel: Right, but you can also use it to make BASIC loves get into Forth. 07:25:07 I440r: Whatever it was you were just talking about, I assume. 07:25:12 * Robert likes converting people. 07:25:32 I440r: You posting about your assembler many, many times. :) 07:25:48 that wasnt my fault 07:25:52 thats GOOGLE 07:25:55 Yeah, riiight. ;) 07:26:11 every single posting i made returned an "internal server error" from google 07:26:11 I think you just wanted some attention! 07:26:12 lol Robert :) 07:26:22 i do. but not THAT sort :P 07:26:25 Hehee 07:26:45 solar_angel: My last BASIC nostalgia trip was like 4 years ago, when I wrote a neat little strategy game. 07:27:46 The last time I used BASIC was about a year and a half ago, when I wrote a Wankel rotary engine design simulation program in QBasic. 07:28:01 kc5tja - cool :P 07:28:29 I was planning on converting it into an X screen saver somehow, but I never got around to it. 07:28:40 Maybe once FTS/Forth for Linux is done again, I'll take the project up again. 07:29:00 who was it that came in ? 07:29:58 I440r: Don't remember.... 07:30:04 I440r: Ask clog, he knows everything. 07:30:20 he is very quite tho :P 07:30:36 I actually downloaded some old #forth logs. 07:30:40 From when I first joined. 07:30:46 Hehe.. painful to read. 07:30:58 lol 07:31:12 but you learned it and didnt quit 07:31:16 that counts for something 07:31:18 not much 07:31:20 but something :) 07:31:48 Hehe 07:32:05 i'd written a FORTH interpreter or 5 before i ever found this place 07:32:08 so i'm not doing so bad. 07:32:09 Maybe because the people in here were nice enough to teach me Forth. 07:32:40 Instead of just showing me some hard-to-get document and replying RTFM to everything I say. 07:34:20 hehehe 07:34:38 well, "Moving FORTH" is pretty easy reading. 07:35:03 Yep -- highly recommended. 07:35:58 Yes, I did read it. 07:36:11 yea 07:36:15 rtfm! 07:36:21 Tsss... 07:36:34 This is one of the sexiest things I've seen. 07:36:35 heheheh 07:36:44 16 high-voltage capacitors nicely lined up. 07:36:58 yikes 07:37:38 lick the terminals! 07:37:39 :) 07:37:43 Hehe. 07:37:46 They're not loaded. 07:37:46 i'm deliberating on whether to make my FORTH use primarily a single-byte stack (though dual-byte for addresses) 07:38:08 Have to wind a good transformer, the one I played with yesterday is kind of...melted. 07:38:14 it'd break ANS compatibility, but would make it faster and more useful 07:38:23 Topaz: That's what I did. 07:38:32 and why would we care about ans compatability 07:38:38 Yeah, exactly. :) 07:38:41 lets all be sheep and be hurded into the corner ? 07:38:45 Usefulness > ANS. 07:38:46 ans? is that some sort of disease? 07:38:57 solar_angel: Hehe, that's one way to put it. 07:39:44 ans forth is the mosdt UNFORTH thing ive ever seen called forth 07:39:59 hehe, gforth WORDS list dumps dozens of pages of words 07:40:24 so does isforth's but i dump them vocabulary by vocabulary and its paged output 07:40:57 There is nothing inherently wrong with ANSI Forth except that it misplaces a number of words into the core wordset. In and of itself, however, ANS Forth is every bit as much a Forth as Pygmy Forth. 07:41:08 I'm not a fan of ANSI Forth either. 07:41:30 kc5 its very unforthlike to try to separate the USER from the SYSTEM 07:41:31 Give me cmForth any day. 07:41:34 and ans forth does just that 07:41:53 there is no user. there is no system, there is NO SPOON! 07:41:56 thers just forth 07:41:56 No, it doesn't. It provides a framework within which a Forth system is implemented. 07:42:15 framework... a boundry? 07:42:19 Things that are marked "implementation detail" in the ANSI spec are just that. Implementation details. This is not any different from traditional Forth systems. 07:42:31 framework ... an expectation. 07:42:37 Hence the whole purpose of a standard. 07:43:02 unfortunatly i am also of the opinion that forth should not have ANY stnadard 07:43:13 porting the soruces is trivial 07:43:20 but thats just me :) 07:43:25 There needs to be some common agreement on common, core words. 07:43:29 And Chuck *DOES* agree with this. 07:43:37 And I agree with Chuck that it needs only 30 or so works. 07:43:38 words 07:43:46 heh, my first FORTH had a radically different core wordset 07:43:51 then again, it wasn't FORTH, as such 07:43:53 im not disagreeing with that 07:43:56 XCHG instead of SWAP 07:43:57 :P 07:43:59 my FORTH hasn't even got !/@ yet, heh 07:44:05 I440r: But you are. "Forth should not have any standards." 07:44:13 though admittedly it does only have actual word 07:44:15 well. yes and no 07:44:35 the core words in isforth arent THAT different from win32 07:44:52 the core set has to "work" 07:44:53 I440r: When making an argument, you must remember to use words whose meanings are understood by all parties. Otherwise, you will just sound argumentative for the sake of arguing. 07:45:11 err. yea - i can see it looking that way lol 07:45:21 I440r: I agree. FTS/Forth is a MachineForth. 07:45:26 i just dont think the standard should be written down 07:45:29 BoxForth is a MachineForth. 07:45:31 And I love them. 07:45:44 becayse its totally unenforceable. and you cant even have an ans forth thats ans forth compliant :/ 07:45:52 In fact, I realized the other day, using only punctuated Forth, that I got a huge amount of ColorForth-like capabilities. 07:46:14 I440r: Sure you can -- gforth is the quintessential ANSI Forth. 07:46:29 Remember that ANS Forth says nothing about *extending* the system. 07:46:42 jeff fox has shown many times that any ans forth will in non ans compliant 07:46:45 ANS only dictates what a Forth system *must* have to qualify for that ANS compatiblity badge. 07:46:47 gforth is also a crawling horror. 07:47:06 bloated too 07:47:21 tho isforth has ALOT there (and growing) its not bloated 07:47:29 Jeff Fox has also been known to be wrong on a number of issues, and like any human, his logic isn't perfect. I'd like to see his arguments sometime. I'm positive there is at least one fallacy in it that invalidates his argument. 07:47:31 50k is not bloat hehe 07:48:07 The mission statement for gforth is to be the "reference standard" for ANS compatibility. 07:48:10 he doesnt seem to be posting much these days heh 07:48:18 ugh 07:48:25 i.e. an unuseable forth compiler 07:48:36 As such, it's expected other Forths will evolve independently. 07:48:37 err - whats the reference standard web browser ? 07:48:38 What? 07:48:39 amaya ? 07:48:40 I use it all the time. 07:48:42 try using it 07:49:03 Kestrel's CPU emulator, assembler, and SDL interface bindings are written all in GForth. 07:49:04 you can also use amaya or however you spell it. that doesnt mean its FUN to use :) 07:49:07 Not a lick of assembly anywhere. 07:49:25 What the hell are you trying to argue? 07:49:26 hmm. would be interested in knowing if you would port that to isforth 07:49:47 gforth is horrible. its huge. its klunky and its slow 07:49:53 i dont like it 07:50:04 in fact ive never seen any "ans" forth i liked 07:50:14 gforth isn't horrible. It is huge. It is klunky, to a degree. And it's slow-ish. (I've seen slower. FICL is slower, for example) 07:50:39 ficl isnt intended to be used as a compiler tho is it ? 07:51:09 I440r: Yes. It's a Forth Inspired Command Language, and fully supports ANSI core word set. 07:51:36 i know what it stands for lol 07:51:49 actually, the autor spent some time in here a while back 07:51:55 And the latest version is supposed to be "much faster than older versions," so imagine how slow THEY must have been. 07:51:57 but didnt stay 07:52:10 Probably because of all the needless ANS-bashing. 07:52:29 not needless. its like checks and balances 07:52:43 they constantly refer to ans as "Standard" forth 07:52:49 honestly, we need ans the way we need systems like kde or gnome. 07:52:51 meaning "Were the king of the castle" 07:53:08 they're big, huge, bloated systems that do everything... 07:53:10 solar! perfect way of putting it :) 07:53:17 some people love them 07:53:19 some people hate them 07:53:25 some people love windows too 07:53:28 exactly 07:53:46 i like my FORTH a bit heavier than the average machine forth 07:53:50 and a bit lighter than the average ans forth 07:53:51 I have never, ever seen a single ANS Forth author make such a claim, except for one: GForth, and that is only because ti has a well-documented and stated intent to serve as a reference model. 07:54:35 Anyway, I have to get ready for work now. 07:54:41 k :) 07:54:46 See you 07:54:52 tc kc5tja 07:54:57 solar_angel: My Forth systems are obviously slightly larger than a raw MachineForth implementation -- it obviously supports the interpreter and compiler. :) 07:55:38 But, I've written the FTS1001 MachineForth compiler, and it's only something like 90 lines long or so. 07:55:43 (Cross compiler obviously) 07:55:44 well, my FORTH uses deeply nested dictionaries... so it's big in one sense, small in another sense. 07:56:01 I don't believe in vocabularies any more. 07:56:08 really? 07:56:13 I just don't need them. 07:56:19 ah 07:56:26 i like to keep my code partitioned and modular 07:56:29 They add untold amounts of complexity to the compiler environment too. 07:56:36 if you keep your code MINIMAL then theres no reason to have vocs 07:56:38 they don't in mine. 07:56:40 Since I reload code as I need them, I don't need them. 07:56:48 It's ordered and modular by default. 07:57:28 kc5 for non minimal forths they simplify the issue in some ways 07:57:33 they also make the compile faster 07:57:52 you can remove words from scope etc etc and thats powerfull! 07:58:00 but power means complexity 07:58:04 its a tradeoff 07:58:05 exactly. 07:58:10 well, it's not that complex in mine 07:58:14 since i use linked-list dictionaries 07:58:23 all i need for a new one is a single cell variable 07:58:34 nor in mine. and im of the opinion that if your going to use a language you should know EVERYTHING you can about it 07:58:36 and just shove the address into the "current input dictionary" or "current output dictionary" slot. 07:58:42 not knonwing how a forth compiler works is BAD 07:58:48 hehehe 07:58:50 exactly. 07:58:51 which is why i hate postpone 07:58:57 : blah compile x ; 07:58:58 postpone? 07:59:01 x is compiled at run time 07:59:08 : y [compile] z ... ; 07:59:13 oh 07:59:16 z (an immediate word) is compiled at compile time 07:59:41 compile takes the next xt from the execution stream and compiles it into the definition being defined 07:59:52 [compile] takes the next token from the INPUT stream and compiles it 08:00:12 postpone is a bastardized version of BOTH of these 08:00:32 that is designed to releave the user of the responsability of knowing the language 08:00:35 Postpone defers the execution semantics of a word by one level. <-- consistent definition no matter what. 08:00:55 oh 08:00:56 It's more mathematically correct. 08:01:12 But COMPILE vs. [COMPILE] is often easier to think about. 08:01:34 i.e. is the simple solution 08:01:34 funny, i don't know either COMPILE or [COMPILE]... but my language has a word called WORD, that does something quite similar. 08:01:45 ans forth is always a very complex solution to a very simple problem 08:02:11 I440r: That's funny...my code isn't any more complex in GForth than it'd be in FTS/Forth. 08:02:36 and instead of compile, i have LITERAL word ,CALL 08:02:39 go fig :P 08:02:48 kc YOUR code. i bet fst is a hell of alot less complex thann gforth :P 08:02:52 i guess i'm nowhere near ans :P 08:03:06 but i bet fst is more complex than laxen and perrys F83 08:03:39 ,call in isforth does just that, its commas a "call" instruction 08:04:07 : create4 head" ,call dovariable ; or something like that 08:04:08 One reason why I probably wouldn't be very interested in isForth is because of how many words you conveniently redefine. :) 08:04:15 isforth has a ,call ? 08:04:22 i didnt redefine 08:04:28 its right out of FPC :) 08:04:40 i thought i made up ,call 08:04:53 you did but someoine else did it first :) 08:04:54 FPC is the #1 Forth system I utterly detest, and is the #1 driving reason for my starting the FS/Forth project years ago. 08:04:55 mine commas a 'call' instruction *and* the address to call though 08:05:11 id be interested in knowing if anyone else has ever done ?: like in isforth 08:05:19 i never saw it before 08:05:26 i'd be curious to know if anyone has ever done :+ like in mine. 08:05:31 solar yes so does mine 08:05:37 it leaves a "JMP RELATIVE 0" at the beginning 08:05:42 ,call dovariable commas in a call to "dovariable" 08:05:44 so that you can hook it later. 08:05:57 ah. mine uses "LITERAL dovariable ,CALL" 08:06:00 solar_angel: DEFER in most other Forths implement a vectored word. 08:06:10 or from interpreted mode it's "IMPORT dovariable ,CALL" 08:06:12 solar do yo know what ' is ? 08:06:17 ' dovariable 08:06:20 nope, i don't know what ' is. 08:06:26 : blah ' dovariable ... ; 08:06:38 I440r: Does isForth have a means of linking to external C libraries? 08:06:41 ' is pronounced tick. it returns the code field address of a word 08:06:48 kc5 not yet 08:06:54 maybe not ever at this rate lol 08:06:58 but it IS on the todo 08:07:10 I440r: Then you'll have to be happy with using GForth for running Kestrel for the time being. 08:07:10 inside a : def tick compiles a literal 08:07:18 : blah ['] foo ; 08:07:26 theres ' and ['] sorry lol 08:07:34 ah. 08:07:38 what c libs does it use ? 08:07:48 SDL, like I documented virtually everywhere. 08:07:53 what's the difference in more standard FORTH's between [] words and the regular version? 08:07:53 : ['] ' literal ; immediate 08:07:58 or something like that 08:08:10 well, in mine, IMPORT does just that. 08:08:13 * kc5tja sighs 08:08:21 : ['] ' ; immediate 08:08:22 No literal. 08:08:25 ah 08:08:33 literal is itself immediate, and takes a number from the data stack and compiles it as a literal. 08:08:43 kct you have to have literal in there 08:08:50 No, you don't. 08:08:59 otherwise you just end up with the xt on the stack 08:09:00 Not, at least, in THAT way. 08:09:07 : blah ['] foo ; 08:09:15 the address of foo is still on the stack 08:09:18 : ['] ' postpone literal ; immediate <-- this will work then. 08:09:39 erm yea. you need a [compile] in there sorry 08:09:45 * solar_angel can't keep up with the words in the standard. 08:09:59 my dialect is totally different, and i like it that way 08:10:07 The words in the Standard, with veyr few exceptions, are just Forth 83. 08:10:10 literal is an immediate word, i forgot that 08:10:21 : ['] ' [compile] literal ; immediate 08:10:52 mine has this interesting syntax though: 08:11:10 FROM Module-blah IMPORT myfunction AS myfunction BODY 08:12:11 FROM just switches to the system dictionary (for now, but eventually will probably switch to the installed modules dictionary)... IMPORT loads the CFA of myfunction onto the stack, and AS compiles the CFA on the stack into a word. BODY switches the input dictionary back to the output dictionary. 08:13:06 btw 08:13:08 Well, I'm off for work. 08:13:13 how do you do string handling in forth? 08:13:27 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 08:13:37 define string handling 08:13:39 undesktop - however you like? 08:13:47 this is actually something not many people have worked on lol 08:13:54 i'm in the process of designing a string table system 08:14:05 that does automatic GC and the like on things in the string table 08:14:11 but it's totally non-FORTH-standard. 08:14:26 so it uses pointer on the stack, to a global heap? 08:14:30 solar please dont refer to ans as "THE" forth standard :P 08:15:00 I440r - sorry. :P 08:15:03 lol 08:15:13 * I440r thwaps solar_angel with the isforth manual 08:15:22 hey, compared to Cy/FORTH, isforth is standard forth :P 08:15:31 lol 08:18:01 Some people don't even accept STC as Forth. ;) 08:18:25 i think STC is overrated... i think my DTC forth was actually faster. 08:18:41 oh well, this lets me add an optimizer, and use an inline assembler whenever i feel like it. 08:18:51 Robert: was your FORTH STC or DTC? 08:19:24 (the AVR one) 08:19:26 solar_angel: At least it can be done faster in theory. 08:19:34 solar_angel: Especially on sane CPUs 08:19:43 on sane CPU's, i agree. 08:19:45 But I don't say DTC is useless. 08:19:50 PPC will do STC a lot faster than DTC 08:19:53 x86 is another story. 08:20:02 x86 might be the perfect DTC machine. 08:20:08 i might my FORTH a revolting hybrid of STC and DTC 08:20:30 ie, the core dictionary as STC, yet able to execute DTC out of RAM (due to the harvard architecture) 08:20:56 topaz whats harvard architecture ?> 08:20:58 x86> 08:21:00 for the novelty of hooking up an LCD and a keyboard and programming a 14-pin DIP interactively 08:21:05 they would like you to THINK it is :P 08:21:23 harvard is a paradigm where the data memory and program memory are separate 08:21:31 i know 08:21:31 Topaz: Sorry, forgot your question. Had to answer the phone. STC. 08:21:47 the two basic setups are 'von neumann' and 'harvard' 08:22:03 Topaz: Since I designed the VM as machineforth-like. 08:22:05 or 'seriously twisted'. you can't forget those. 08:22:10 Heh 08:22:11 they 8051 is usually harvard architecture. my cygnal 8051 forth isnt harvard :) 08:22:14 von neumann where the program and data share the same memory, like a PC (and most big computers) 08:22:29 oh, sorry, heh 08:22:35 i misinterpreted your question :D 08:22:41 * Topaz got carried away 08:22:41 heh 08:23:01 AVR was too straight for me, I had to make a VM 08:23:13 so what purpose did this VM play? 08:23:55 I can execute code from RAM, Flash memory, EEPROM or program memory. 08:24:07 ah 08:24:13 I.e. allows self-modifying code, very Forth-friendly. 08:24:14 so it's obscenely slow? ;) 08:24:20 Depends. 08:24:42 Compare with the computer that executes about 500 brainfuck instructions per second, and everything is fast. 08:25:05 heh 08:25:17 a microcontroller clocking at 10Hz would probably still be useful 08:25:23 Especially considering that with BF, even addition is exponential. :D 08:25:23 16mhz is complete overkill 08:25:33 I downclocked it to 32 kHz. 08:25:44 Yay for the miracles of cheap watch crystals. 08:25:48 i entertain the thought of making a FORTH calculator 08:25:50 heh. 08:26:08 Sounds like a good idea. If you know how. 08:26:13 Topaz - just get a TI89 (68000-based) and write a FORTH for that. 08:26:23 though i'd either need a full keyboard, or write my entire forth using only hexadecimal characters ;) 08:26:39 weird how TI calculators are extremely rare in the UK 08:26:40 I really prefer real keyboards. 08:26:50 * Robert hates calculators for that reason. 08:27:05 Better than nothing, but... 08:28:45 well, a TI92 then 08:28:48 it's qwerty 08:28:56 do any of these FORTH processors actually exist? 08:28:56 and still 68000-based. 08:29:02 Cool.. 08:29:07 Topaz: Yes. 08:29:14 Topaz: Check colorforth.com and ultratechnology.com 08:29:27 And other people have implemented them using FPGAs. 08:29:48 I bet some lunatic did one with vacuum tubes, too. 08:30:44 has chuck moore's proc actually been fabbed? 08:31:06 oh, i see, he has made a few 08:31:10 Some of them, yes. 08:31:18 though i presume they're completely unavailable 08:31:36 I guess so, yes. 08:31:37 i've done an fpga-based design or two, but haven't actually built one yet. 08:31:58 my current design makes a really nice FORTH processor though, so it's likely that this time around will work out. 08:31:59 And since they were produced in small quantities, you probably wouldn't be able to afford one anyway. ;) 08:32:13 xilinx spartan 3 :) 08:32:32 That's the name of it? 08:33:07 Robert - no, that's the name of the FPGA 08:33:12 a million gates for about $15 08:33:17 Oh. 08:33:26 heh, if only 08:33:28 Not bad. Speed? 08:33:28 (pssst... that's a lot) 08:33:40 the prototypable FPGAs in PGA packages are horrendously expensive 08:33:40 good speed... a few hundred MHz for a good design. 08:33:47 Whoa. 08:33:56 Topaz - not at all. 08:34:05 PGA packages??? 08:34:06 where do I buy them? :D 08:34:23 well, the choice seemed to be BGA or PGA, last time i checked 08:34:35 most are BGA. 08:34:49 solar_angel: How many gates does a MachineForth processor use? Can't you fit a lot of them in 1M gates? 08:34:54 BGAs being difficult/risky to hand-solder 08:34:54 http://www.nuhorizons.com/products/xilinx/spartan3/development-board.html 08:35:16 Robert - you can fit a *LOT* of them in 1M gates. my smallest 32-bit forth chip was... hrm... well under 10,000 gates? 08:35:28 and you could go smaller if you don't go 32-bit. 08:35:34 do they do any boards without all the fancy peripherals? 08:35:45 i have no idea. 08:35:54 just showing you a board that's not ludicrously expensive 08:36:00 solar_angel: 100 ones in parallell then? Going in a few 100 MHz? That does sound very tempting. 08:36:09 * solar_angel smiles at Robert. 08:36:18 your biggest problem will be getting enough RAM to the chips fast enough 08:36:30 Hehe, I guess... 08:36:58 heh yeah, it's quite easy to waste 3/4 of an FPGA on the tiniest amount of RAM 08:37:08 * Robert looks at his bt downloads. Mmm... 400 kB/s down. 08:37:51 I don't really know what to use such powerful computers for. 08:37:59 heh. 08:38:08 ...except showing movies. 08:39:40 Even a 100 MHz computer is overkill for most things. If I wasn't so addicted to my collection of mp3 and Simpsons episodes... 08:40:09 well, my current new design is interesting.. 08:40:20 i've come up with a CPU that scales pretty nicely to almost any word width 08:40:35 notably, i've designed 32-bit and 16-bit versions of the instruction set. 08:40:48 the whole point.... 08:40:58 you should be annoying and design an insanely fast 33-bit processor 08:40:58 a cluster of the 32-bit CPU's forms the main computing core 08:41:08 and a set of 16-bit processors handle IO tasks 08:41:28 if you want to play an MP3, don't bother the main CPU... dump the MP3 playing code into the sound processor and let the sound card do all the heavy lifting 08:41:48 Topaz - well, the vax was 36 bit, as i recall. 08:42:21 heh, amusingly I have a fair amount of 9-bit flash 08:42:37 (the final bit is meant for parity i think) 08:42:43 solar_angel: Sure, give me a cheap computer equiped with that, and I'll get rid of the x86. 08:43:06 Robert - you like that idea? 08:43:40 you should see what i have planned for video... the video hardware is basically just a framebuffer, but there's a couple of the 32-bit processors with HUGE vector units attached to them... 08:43:47 solar_angel: Yes. Except I don't know if you _really_ need a cluster of fast 32-bit CPUs for the main core. 08:44:17 solar_angel: I guess it could be kind of neat for multitasking systems though. 08:44:18 well, they're not *lightning* fast. 08:44:29 How fast is "not lightning fast" ? 08:44:38 386-grade, running at a couple hundred MHz. 08:45:18 Heh. 08:45:18 Sounds like the computer I'm on right now. 08:45:24 actually, the first set doesn't have an FPU or a multiplier... out of the current 6-CPU set that i've specced in the first design, one has an "advanced integer unit" that does mul/div, and the other has an FPU. 08:45:35 the other 4 are strictly simple-integer units. 08:46:03 Uhm. What do you use that for? 08:46:58 use what for? simple integer units? 08:47:20 general purpose computing tasks. most FORTHs will run quite readily on one of those, and at good speed. 08:47:43 hmm, i'm wondering how to make it possible to do 16-bit maths, if nearly everything else is 8-bit 08:47:52 if you need to do number crunching, you let the floating-point or fast-int processors work with it 08:47:56 just make 16-bit versions of all the operands? 08:47:57 Yes, but what kind of things will you do at them? 08:48:06 w+ w- etc? 08:48:06 how do you mean? 08:48:23 solar_angel: Games, nuclear explosion simulations, AI programs... ? 08:48:37 Robert - a general-purpose computer, hopefully. 08:49:06 I guess. But what kind of things do you personally do that require lots of computing power? 08:50:36 nothing serious. the design isn't really a powerhouse. 08:51:02 even though the final design will have, like, *dozens* of processors, all told, it's still designed to essentially be low-cost and relatively low-power. 08:51:11 Good. :) 08:51:35 That's what I like... Computers aren't supposed to burn a hole through your clothes if you have them in your lap. 08:51:58 well, the thing is... the main 6-CPU cluster should fit comfortably onto a 400kgate spartan 3. 08:52:20 which makes it smaller than almost any modern CPU, even though there are actually 6 instruction streams. 08:52:24 A $15 chip? Excellent. 08:52:34 exactly 08:53:03 the video processor, even with two cores both with vector units, should easily fit on another 400kgate 08:53:12 probably even with the video controller itself. 08:53:21 funny thing about AVR assembly, is that if you get it wrong, there's no crashing, or otherwise complaining 08:53:24 it just doesn't work :D 08:53:27 Do you know how much power modern TFT monitors use? 08:53:37 Robert - a lot. 08:53:41 Topaz: Hehe. 08:53:43 solar_angel: :( 08:53:53 i wish they'd hurry up and get fabbing OLED monitors 08:53:57 the backlite is usually the worst part of it. 08:54:11 solar_angel: Hm, so, if you want a low-power computer, what would you use? 08:54:24 i've come up with a low-power projection display system... 08:54:34 DLP is pretty impressively low power 08:54:37 but i don't think i want to give away too many details, it seems to be an original invention and i might patent it. 08:54:49 (the vibrating mirror effort) 08:55:07 vibrating mirror? 08:55:37 seems completely improbable, but they actually make data projectors which have a micromachined array of tiny mirrors, electrostatically operated 08:55:43 each mirror for a pixel 08:55:47 ahhh 08:55:53 yes, i've heard of those. 08:55:54 they achieve variable brightness using PWM 08:56:37 Heh. 08:56:40 Are they expensive? 08:56:56 cheaper to produce than LCDs, it appears 08:57:24 of course they can make obsecenely powerful projectors using very small elements 08:57:49 Hm, sounds neat. 08:57:57 since mirrors are so efficient 08:58:11 those things are really nice for the high end. 08:58:16 they're really, really expensive though 08:58:17 (TDT LCDs tend to chuck away 80% of the light going through them since they aren't all that transparent) 08:58:40 you can get cheap projectors with them 08:58:54 they only have a single DLP element, and use a colourwheel for colour, though 08:59:06 (bye bye 2/3s of your light) 08:59:49 heh. 09:00:41 but OLED displays will be nice 09:00:56 vivid colour, extremely bright, very low power consumption and 180 degree viewing angle 09:01:18 plus theoretically cheap to produce, although some of the fab methods they're currently exploring are a little... weird 09:01:56 the real problem with oled... i don't like having to replace my screen every 6-12 months. 09:02:13 yeah, that appears an issue 09:02:27 that's *the* issue 09:02:36 hmm 09:02:37 other than that, oled technology is efficient, bright, responsive, and cheap 09:02:53 but the blue wears out after about 1000 hours 09:03:02 (the red keeps going and going though) 09:03:02 strange 09:03:34 blue crystalline semiconductor LEDs are extremely good 09:03:41 in modern times, yes. 09:03:44 i suppose the organicness is the issue 09:03:54 unstable polymers... 09:03:58 exactly. 09:04:06 you heat it, it degrades. 09:12:06 Ehm, sorry, got a bit distracted. 09:12:17 Had to make my daily telegraphy contact. 09:12:36 heh 09:17:45 can anyone tell me of a flash device that will allow you to write to it at the same time your executing out of it ? 09:18:01 including erasing pages not being executed 09:18:45 MUST be able to read/write/execute from same device at same time 09:19:07 i know they exist, cygnal 8051's can do this 09:20:29 hrm.... 09:20:38 the standard 29F0x0's can't? 09:23:58 i doubt it. the only devices ive seen that will allow you to execute an instruction that writes to the flash is on the cygnal 8051's 09:24:54 newer pics can do that too 09:25:18 hmmm 09:26:20 I440r - the amd 29f040 allows "erase suspend/erase resume" to read during an erase operation. 09:27:36 err do they allow you to execute an instruction at address XXXX that writes data to address XXXX+1 09:27:48 i.e. within the SAME page 09:28:28 SAME page??? 09:28:38 let me check 09:28:41 * solar_angel is reading the datasheet. 09:28:58 it certainly looks like you can write different pages while you're reading/executing from another one. 09:29:21 does it have a small boot page ? 09:29:26 say 128 bytes or more ? 09:30:00 boot page? 09:30:11 some flash's have a boot sector 09:30:43 you can put flash write code and a serial recieve in the boot sector and write your rom image to the rest of flash 09:30:48 well, you can protect sectors of this. 09:30:51 allows you to bootstrap the flash 09:30:53 What are you trying to do, I440r ? 09:31:06 robert nothing (top secret! stop listening!!!) 09:31:07 heh 09:31:07 these are damn cheap chips, is the advantage. 09:31:11 i have a bunch of them around. 09:31:24 I440r: :D 09:31:34 nothing, im just trying to find out if more modern flash devices allow this - so far the only one ive found is the cygnal 8051 09:31:38 the only problem is that some commands (write and erase) take more than one bus cycle. 09:31:45 Lots of secret inventions in here, it seems. ;) 09:32:08 so you'd be best off having a small amount of ram attached to your CPU 09:32:16 solar the cygnal 8051's do this transparantly, you dont need to poll a "were all done" bit to see if the write occurred yet or not 09:32:29 execution is HALTED until the write completes 09:32:42 well, you could do that with this one if you wanted... there's a write-complete line. 09:32:48 you could tie it to the waitstate line of your CPU 09:33:07 anyway, the trick is that you have to send it a special write command for it to start writing. 09:33:24 no good 09:33:37 well. maybe thats ok heh 09:34:02 as long as its not TOO complex, dont want to bog the system down with flash writes 09:34:39 it's not that hard. 09:34:44 you shouldn't be writing flash too often anyway. 09:34:51 1000 writes and it's hosed. 09:35:02 ok. thers a handshake mechanism with the cygnal processors too 09:35:03 eek! 09:35:12 thats fscking almost as bad as NEC flash 09:35:36 cygnal guarantee 20 thousand writes but assure us that they will probably be good for 100 thousand writes 09:35:53 NEC flash is guaranteed for a whopping TEN writes 09:35:56 lol 09:36:03 well, i don't know the actual number 09:36:07 it's probably well over 1000. 09:36:21 i think these are rated at something like 50,000 or somesuch 09:36:25 but the point is, flash writes are limited. 09:37:30 * solar_angel is excited about mram. 09:38:27 mram ? 09:38:30 is that available yet ? 09:38:48 hrm... not commercially. 09:38:52 but i've heard it's sampling. 09:38:53 I don't get excited about types of ram, is there something wrong with me? 09:39:11 what IS mram ? 09:39:20 fridge - if you're not excited about mram, then yes, there is. 09:39:27 magnetoresistive ram. 09:39:37 see, it's like ram, it's fast, and doesn't wear itself out 09:39:43 but it doesn't need power *at all* to store its contents 09:39:50 Wow. 09:40:07 How about power consumtion when reading/writing, also low? 09:40:19 not as low... it consumes power when writing 09:40:39 soooo 09:40:40 luckily less than the technology that it's essentially a minaturized version of, though :P 09:40:46 what about when reading 09:41:08 solar_angel: that does sound pretty neat 09:41:39 it's based on the magnetoresistive concept, so the read power should be quite low. 09:41:43 fridge - yep :) 09:42:41 How efficiently can they pack it on a chip? 09:42:44 it's supposed to use less power than dram, and be nonvolatile. 09:42:53 Robert - that's the current problem... but they're working on it. 09:42:59 Heheh 09:43:05 Is it reliable? 09:43:15 yes. 09:43:27 I mean, if someone puts a kitchen magnet on their calculator, will that cause any problems? 09:43:27 much moreso than flash 09:43:34 oh 09:43:46 well... a static magnetic field might wipe it. 09:44:11 but it's more likely they'll just embed a couple metal pegs into it to avoid such problems. 09:45:05 Sounds neat anyway, 09:45:08 yep :) 09:45:14 i'd definately use it in designs. 09:47:22 well, in 2003, IBM and Infineon introduced a 128kbit MRAM. 09:47:31 so the density isn't great yet but the components *are* sampling. 09:48:22 128kbit isn't too bad. 09:48:23 it's funny... core memory comes back 30 years later. 09:48:31 Hehe 09:49:10 well, MRAM is to core memory what VLSI is to the discrete bipolar transistor. 09:50:31 it's funny if you think of it that way 09:56:08 --- join: warpzero (~warpzero@mi224.dn176.umontana.edu) joined #forth 09:58:16 --- join: Sonarman (~matt@adsl-64-160-165-66.dsl.snfc21.pacbell.net) joined #forth 10:00:05 --- quit: undesktop ("Client Exiting") 10:13:39 --- quit: warpzero (Read error: 54 (Connection reset by peer)) 10:14:15 --- join: warpzero (~warpzero@mi224.dn176.umontana.edu) joined #forth 10:44:44 --- quit: solar_angel ("*going to write some os code*") 11:13:16 --- quit: warpzero (Read error: 110 (Connection timed out)) 11:55:10 --- join: UserXP9 (~UserXP9@12-222-128-22.client.insightBB.com) joined #forth 12:32:27 Hi 12:54:38 --- quit: UserXP9 (Client Quit) 13:13:46 who iwas that ? 13:29:37 HI THERE!!!!!!!!!!!!!!1 13:30:59 --- join: arke (~arke@wbar8.lax1-4-11-100-108.dsl-verizon.net) joined #forth 13:32:22 hiya 13:34:33 --- join: lalalim (~lalalim@pD95EAA30.dip.t-dialin.net) joined #forth 13:38:27 hi 13:40:04 terve mur ;) 13:43:20 anybody know how I can convince opera to display the tab list in fullscreen mode? :) 13:47:15 say pretty please? 13:47:32 --- quit: lalalim_ (Read error: 110 (Connection timed out)) 13:48:23 perdyleease? 13:48:30 pretty please? ;) 13:56:19 --- join: UserXP9 (LINX@12-222-128-22.client.insightBB.com) joined #forth 13:59:45 ack 13:59:57 writing C like Forth 14:00:00 gonna be slow as shit 14:00:01 ;) 14:00:18 (well, at least I'm inlining alot) 14:00:19 hello UserXP9 14:19:32 hmm, how does if/else/then work? 14:20:22 oh, i think i know, does else code a conditional jump from the if to the current position when encountered? 14:20:33 i've implemented if/then, but forgotten about else :) 14:21:54 if is an immediat word, it compiles a conditional branch to address zero 14:22:00 the zero will be back patched later 14:22:11 the address of said zero is left on the parametre stack 14:22:19 forget else for now (well come back to it) 14:22:41 the then stores "here" to the address left on the stack by the if 14:22:58 thats for an if/then (no else part) 14:23:05 if you do an else this happens 14:23:21 if compiles a ?branch 0000 and leaves the address of the 0000 on the stack 14:23:46 else compiles an UNconditional branch to address 0000 and leaves the address of THIS 0000 on the stack too 14:24:07 it then swaps the two items on the parameter stack to get the address of the 0000 left by the IF 14:24:12 it then stores HERE at that address 14:24:27 so the if will conditionally branch arround the true part of the if statement 14:24:59 the then now stores HERE in the address left by the else 14:25:30 this means that the unconditional branch at the end of the true part of the if statement will branch arround the else part 14:25:39 understand ? 14:25:47 if/else/then are all immediate words 14:26:20 yeah, i have if/then sussed, was just being somewhat addled by else :) 14:26:22 but makes sense now 14:26:54 else compiles an unconditional branch at the end of the true part of the if statement :) 14:36:59 hi 14:37:00 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 14:37:28 hi Herkamire 14:38:28 Herkamire: yesterday i wrote a factor interpreter in factor. it basically executes code as usual except instead of calling words directly, it passes the word to a user-defined hook 14:44:05 yay, if/then/elseness 14:44:10 er, if/else/then 14:45:40 --- join: osh (xru52729fj@Orleans-ppp42668.sympatico.ca) joined #forth 14:47:38 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 14:47:40 hi 14:47:57 hi LOOP-HOG 14:48:11 whats going on ? 14:48:38 Your site is in the topic. ;) 14:48:41 I was going to go do some stuff but it seems that I can't stop the urge to be here right now so maybe i can fiddle with the website and with my computer today 14:48:47 thanks 14:49:15 Hehe. 14:49:20 Well, have fun. 14:49:45 i have this window open on one side and a SwiftForth console on the other 14:50:09 Hehe 14:50:33 its fun to play on the 4th console but i MISS FORGET 14:50:36 for doing that 14:50:49 because if i spontaneously think of a word and try to dev it in the console 14:51:00 then i need to recompile it 14:51:06 i forgot to make a MARKER 14:51:15 so i need to shut down and restart the 4th 14:51:32 --- quit: arke (Read error: 110 (Connection timed out)) 14:51:40 : WAY 2 PICK ; 14:51:46 1 2 3 4 14:51:50 WAY 14:51:54 .S 14:51:55 1 2 3 4 2 14:52:07 ( Almost Never Use Way ) 14:52:14 finished 14:52:29 : OOPS 3 PICK ; 14:52:42 LOOP-HOG: swiftforth doesn't have forget? 14:52:48 \ If you use oops you ought to take it out at a latter grooming 14:52:59 nope 14:53:09 its a fudge in my opinion, 14:53:27 \ DUP OVER WAY OOPS 14:54:13 FORGET WAY 14:54:22 end of micro-demo 14:54:56 WAY too much is WAY too much 14:55:29 maybe i should put that up on my site 14:55:42 --- quit: UserXP9 (Client Quit) 14:55:53 here is the factor interpreter written in facor: http://69.198.144.227:8888/inspect/vocabularies'metacircular'run*'def 14:56:08 lets take a look see 14:56:43 what it is? what it does? 14:56:48 it takes three parameters 14:56:53 data stack, call stack, instruction pointer 14:57:06 it executes that as if it was the inner interpreter 14:57:18 hmmm 14:57:22 well, it actually passes each word execution along with the 'simulated' stacks to the 'instrument' word 14:57:24 which is user-definable 14:57:34 the links arn't taking my anyplace 14:57:36 so i could have a stepping debugger, or a word execution tracer 14:57:46 which links? the wordl inks? 14:57:52 what url does it try going ot? 14:58:33 enat 14:58:35 neat 14:58:46 what does DIP do 14:58:59 [ ... ] dip is equivalent to >r ... r> 15:00:04 is it R@? 15:03:32 hi slava :) 15:03:36 cool about the interpreter 15:03:57 LOOP-HOG: 1 5 3 [ + ] dip .s 6 3 ok 15:04:27 ack 15:04:32 opera's IRC isn't too reliable 15:04:33 oh well 15:05:19 teehee: what do you expect. it's a freaking web browser 15:05:22 it shouldn't do irc at all 15:06:09 MOZILLA 15:06:22 mozilla has the same problem 15:06:32 mIRC is ok for me 15:06:47 chatzilla is awful imho 15:07:42 ok 15:09:58 isn't there a tag for code? 15:14:50 --- join: arke (~Chris@wbar8.lax1-4-11-100-108.dsl-verizon.net) joined #forth 15:15:07 ;) 15:15:16 ;) 15:15:19 you mean an html tag? 15:16:01 there is ... 15:16:48 --- quit: arke (Client Quit) 15:17:20 --- nick: teehee -> arke 15:17:44 Herkamire: fear --- I'm at level 21 15:19:24 it doesn't look any different than not using and i'm not getting formatting 15:19:30 --- join: SDO (~SDO@68.170.20.201) joined #forth 15:20:00 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 15:20:30 it's supposed to produced monospaced text.... some people use ... (typewriter text) 15:21:03 but perhaps those are outdated deprecated tags not used in XHTML 15:22:26 --- quit: onetom_ (Read error: 110 (Connection timed out)) 15:24:01 --- quit: I440r ("Leaving") 15:24:40 I tried both and 15:24:51 it does not look any different in either Moz or Expl 15:28:51 it should work: http://webdesign.about.com/library/tags/bltags-code.htm 15:29:35 upon further investigation i found that ... has not been deprecated... still usable in HTML 4, XHTML 1 15:30:01 its not doing what i like 15:30:08 how do i add indentation? 15:30:10 to html 15:30:12 is it impossiable 15:30:32 LOOP-HOG: padding-right or margin-right 15:30:37 (CSS) 15:30:42 I'll just take a look at some html that has indenting, in the mean time, update to memnonio in about 400 15:30:50 at about 4:00pm pst 15:30:59 without css you have to use a table 15:31:14 html designers don't seem to have thought of indenting 15:32:39 oversite perhaps 15:35:15 --- part: osh left #forth 15:46:49 --- join: jdrake (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 15:47:08 Herkamire: WEAK! WEAK! 15:47:09 ;) 15:48:50 --- join: solar_angel (~jenni@Toronto-HSE-ppp3685160.sympatico.ca) joined #forth 15:48:51 --- quit: solar_angel (Remote closed the connection) 15:49:15 --- join: solar_angel (~jenni@Toronto-HSE-ppp3685160.sympatico.ca) joined #forth 15:49:41 arke: I wanna fight! level 9 and I haven't had a fight yet 15:50:38 ;) 15:50:41 hi solar_angel :) 15:51:57 hiya arke :) 15:52:42 how are you? 15:53:25 i'm good. 15:53:40 i just wrote (and now am trying to fix mysterious bugs in) a dynamic doublehash 15:53:43 in FORTH 15:57:21 --- join: UserXP9 (LINX@12-222-128-22.client.insightBB.com) joined #forth 16:01:24 * aum continues with his forth with embedded python 16:01:37 seeking a name for this - possibility is 'forpy' 16:01:59 Hehe 16:02:05 Forþ ;) 16:02:22 memnonio updated 16:02:25 1 min over 16:10:32 --- join: blockhead (default@dialin-755-tnt.nyc.bestweb.net) joined #forth 16:11:24 somebody on osnews said this was the best language ever: http://www.bigzaphod.org/cow/ 16:12:04 omg. 16:12:23 maybe i'll put it into OTHER 16:12:39 ick. it's so BF-like. 16:13:24 it looks like it could give forth some competition 16:13:52 competition for what? 16:13:58 i'd rather program in befunge. 16:14:14 id rather program in MARIO 16:14:18 it's basically just a turing machine, heh 16:14:20 mario? 16:14:27 its where you use Mario games sprites to describe your program 16:14:32 at least it's turing complete ;) 16:14:44 was turing turing complete? 16:15:29 i don't want to have to code in a language where addition is an O(2^n) operation and multiplication is O(2^2n) 16:16:16 if everybody was forced to do that, then we could get some 80s games working again at the right speed :p 16:16:33 80s games like SKAMPY 16:17:08 the Atari ST emulator brings the speed down to a stock ST, but the game was written in ForthMacs so its pretty fast, too fast for some 16:17:11 80's games? you could barely run 60's games at fullspeed on one of those beasties. 16:17:44 hi all 16:18:04 memnonio updated 16:18:46 what exactly is the 'loop control stack'? 16:18:57 anything wrong with using the return stack? 16:19:17 most people put loop control on the return stack. 16:19:18 nothing wrong with using the rstack 16:19:19 at least, i do. 16:19:25 most people do I think 16:19:50 a bit 16:20:33 On the AVR Forth I actually used the parameter stack for that, worked fine. 16:20:51 what did you use for the parameter stack? 16:21:16 "COW is so far more advanced and powerful than .NET that .NET may not have an advanced enough base to properly integrate with COW..." 16:21:18 i'm currently using Z for it, and the call stack as the return stack (given that STC hardly incurs a return stack at all) 16:21:31 Topaz: I'll check, don't remember. 16:21:37 cheers 16:22:00 Y 16:22:06 Z is a temporary pointer 16:22:11 And X is the return stack. 16:23:45 is the return stack ever used in STC? 16:23:59 That is the VM. 16:24:05 oh, of course 16:24:07 The Forth system does "STC" within the VM. 16:24:15 uh... yes, the return stack is used in STC 16:24:20 unless i'm missing something 16:24:24 cow? weird language 16:24:32 one might as well program in fuckfuck 16:24:34 solar_angel: I assume he meant why I'm not using the hardware return stack. 16:24:36 i'm using the native call stack as the return stack essentially 16:24:38 oh 16:24:51 cow reminds me too much of BF. I'll pass on it :D 16:25:21 those languages are all essentially just raw turing machines. 16:25:39 * blockhead cooks his turing machine 16:26:04 heh 16:26:28 actually, i wrote a "language" (it was actually just a raw assembler for a virtual processor i designed) that is the same idea but for a stack processor. 16:26:46 scary little language. 16 instructions, neither of which took operands. 16:26:55 hmm 16:27:32 how many would like to see tables added to the link sections in Memnoino? 16:27:50 solar_angel: not as scary as OISC computer :D 16:28:06 (one instruction) 16:28:14 lol/clear 16:28:30 of course, I've lost the link. someone here had it months ago 16:28:34 * aum has been tempted to write The Spam Programming Language, where classes are expressed as 'business opportunities', methods as 'special offers', I/O as viagra pills, files as 'hot stock tips' etc 16:28:48 :) 16:28:49 Heh. 16:28:52 aum: that would be cool. you could hide programs that way 16:28:54 Sounds like a good idea. 16:29:01 Haha, right. 16:29:10 A virus that looks like a spam letter. 16:29:12 blockhead: that makes sense, especially with these facist copyright laws coming in 16:29:20 exactly 16:29:33 it could be used to smuggle programs containing drm defeats, cracks etc 16:29:35 hmm, is DO immediate? i guess it has to be to compile the branch, but then compiles a non-immediate word (which actually does the work)? 16:29:55 lol 16:29:56 in retrospect it is an ovious idea. Maybe some has already done something like it. Hmmm ... oh google! 16:30:13 exactly, widely circulate DeCSS disguised as spam :) 16:30:13 * Robert steals the idea and patents it. 16:30:30 * blockhead sighs and waits 17 years 16:30:53 17 years? will linux be illegal then? 16:30:54 has anybody thought about grabing the Mozilla DLLs and driving them from FORTH? 16:31:05 patents expire after 17 years 16:31:16 Unix won't die 16:31:16 (at least in the US) 16:31:23 some people love it too much 16:31:25 LOOP-HOG: you've triggered a great idea - forth words for loading dlls and invoking their functions 16:31:30 although i'm not a unix guy 16:31:49 well, there are import abilites in FORTHs 16:32:01 my favourite forth is FICL 16:32:05 then it could be like Moz but more groovy 16:32:35 you could 4 example block Java or Flash by site as well as image 16:32:51 you could rip sites to a folder suitable for burning to CD or DVD 16:33:17 maybe call it Evil Poindexter 16:33:24 aum: here is a link to an on-line random spam generator: http://www.oyonale.com/fun/php/truespam.php?lan=en 16:34:09 blockhead: yikes - thx 16:34:17 that could be used for spam filter training :) 16:34:26 :) 16:34:37 click it and each time it randomly generatrs a new one. 16:35:01 maybe some day i will regurgitate Starting Forth and Thinking Forth onto Memnonio 16:35:25 * aum is working on ways to represent python dict objects in forth 16:35:29 memnonio? 16:35:40 (or should I just google that) 16:35:44 http://www.memnonio.com/forth.html 16:35:50 tahnsk :D 16:35:54 thanks, even 16:36:02 tell me what u think? 16:36:22 low cal spam free forth link concentrator 16:36:30 LOOP-HOG: black background - yuck - hell with an LCD monitor 16:36:50 should i maybe offer an alternative color scheme? 16:36:53 anyone running forth-based web servers? 16:36:58 like white on black? 16:37:10 also a question in my mind, the fth web serverz 16:37:11 LOOP-HOG: or, some tasteful dark colour on white 16:37:25 give me a few days, ok :) 16:37:26 * aum wonders if there is an apache mod_forth module 16:37:35 lol @ mod_forth :) 16:37:46 me agrees with aum. black background is only for a warez site :D 16:37:48 i can't wait until my OS has a network stack. 16:37:50 that'll be fun. 16:38:26 * aum cringes to imagine the dozens of forth programmers working on linux kernel replacements 16:38:45 aum - hey, i have a relatively solid OS written already. 16:38:46 * blockhead is glad you are *not* using frames, aum :D 16:38:54 and it's not just a 'linux kernel replacement' but a full OS :) 16:39:03 blockhead: ??? 16:39:15 whassamatter with frames? 16:39:25 aum: woops. I meant LOOP-HOG. 16:39:31 I'm a blockhead :( 16:39:45 18:33 <@IdleBot> arke, the Bisexual Wizard from Hell, has attained level 21! 16:39:45 Next level in 0 days, 03:45:44. 16:40:56 arke: there is something insidiously appealing about that channel :D 16:41:01 ;) 16:41:43 my site is trim 16:41:48 it will get better over time 16:43:31 how many people want it to be white on black, raise your hands 16:43:36 maybe i'll just do that? 16:44:05 * blockhead raises hand (or some dark color on some light color) 16:44:31 just a min 16:44:56 just throw your hands in the air and wave 'em like you just don't care :D 16:47:02 i was thinking of being cute and offering 4 color schemes 16:47:05 black on white 16:47:08 white on black 16:47:11 green screen 16:47:13 amber 16:48:08 maybe if i used directorys 16:50:53 look 16:52:45 sites with light colours on dark background can't be taken seriously 16:53:56 LOOP-HOG: like this backgroudn better. mgiht want to darken up the link color 16:56:49 --- quit: UserXP9 (Client Quit) 16:59:51 omg, my do/loop works :D 17:01:15 cool :) 17:07:22 --- quit: LOOP-HOG (Read error: 104 (Connection reset by peer)) 17:09:10 --- join: topher (~chris@lsanca1-ar42-4-61-175-184.lsanca1.dsl-verizon.net) joined #forth 17:11:00 --- quit: Topaz (Remote closed the connection) 17:11:04 Topaz: you're writing an AVR forth? 17:11:06 crappit! 17:11:47 Hehe 17:13:37 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 17:15:08 Robert: hey 17:15:17 Robert: any progress on the kernel? ;) 17:17:56 19:14 <@IdleBot> harv [228/363] has challenged qFox [62/154] in combat and won! 17:17:56 0 days, 08:39:10 is removed from harv's clock. 17:18:05 qFox: you lost ;) 17:19:02 Well..... 17:19:32 Not really. 17:20:30 Robert: "not really" means you started. So I'm happy. ;) 17:21:04 That means I haven't worked on it since I started. 17:21:13 More than a few pages, that is. 17:21:24 ;) 17:22:00 Can't you code the bootloader for me? 17:22:24 eh... 17:22:31 F's bootloader works ;) 17:22:38 Not for MinixFS 17:22:44 oh. 17:22:45 well. 17:22:51 I'm not familiiar with MinixFS :) 17:23:00 Neither am I, RTFS. 17:23:10 eh 17:23:12 no docs? :( 17:23:19 Hm. 17:23:23 OSDI :P 17:23:28 :) 17:23:32 well 17:23:55 MinixFS support can be added later. 17:23:56 ;) 17:24:15 I guess I could just use F's boot system for now. 17:24:44 yeah, since you're dealing with only binary right now anyway, right? :) 17:24:57 Yep... 17:27:09 ^_^ 17:27:15 * arke has to go to work soon, btw. 17:27:25 in the meanwhile, before I have to change, I am working on Frapiar a bit. 17:27:26 Have fun 17:27:32 heh :) thanks 17:27:34 Which is? 17:27:51 it's a dessert, right? 17:27:51 my space exploration game 17:27:56 :D 17:28:07 cool! 17:28:30 Hm. 17:28:34 Sounds neat 17:29:27 :) 17:29:29 C+SDL 17:29:41 (OMG I SAID THE C WORD IN #FORTH!! OMG!!!) 17:29:45 --- join: LOOP-HOG-2 (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 17:32:59 --- quit: LOOP-HOG (Read error: 60 (Operation timed out)) 17:33:08 he cheated 17:33:25 he spoke, and threw me off balance :( 17:33:42 ;) 17:34:09 i suck at this game though 17:34:09 02:33:58 irpg@#irpg@EFnet: qFox [72/150] has challenged fail [83/151] in combat and lost! 0 days, 00:00:15 is added to qFox's clock. 17:34:09 02:33:59 irpg@#irpg@EFnet: qFox reaches next level in 0 days, 01:16:56. 17:34:15 :p 17:34:34 but the manual challange thing should be added to all versions imo, it rox :) 17:35:09 except the waiting period 17:35:19 i read that that timer grows exponentially 17:35:36 but that sux, because that means that after a few challanges you'll have to wait ages 17:35:38 :\ 17:35:40 [02:33:59] -irpg- You must now wait 0 days, 01:11:44 before you may challenge again. 17:37:34 i just changed the color scheme on memnonio to black text on white background 17:37:36 take a look 17:37:55 --- part: qFox left #forth 17:37:55 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 17:38:05 tell me if you think that graying for the links does not obscure that text too much 17:38:26 --- quit: jdrake (Read error: 60 (Operation timed out)) 17:38:32 cant you add some fancy css for hovering? 17:38:36 --- quit: fridge (Read error: 110 (Connection timed out)) 17:38:37 aarrghghghg 17:38:50 ixnay on the ancyfay css 17:38:52 SDL took 20 seconds to init ;) 17:40:21 cant wait till i'm level 30ish somewhere 17:40:29 :) 17:40:30 then i can find me some special items!!!1 o_0 17:40:55 in the efnet version there's also an alignment 17:41:02 so i have one client on good, and one client on evil :p 17:41:20 qFox, not up to that lvl someday will get CSS 17:41:26 maybe in a month or so?? 17:41:46 LOOP-HOG-2> a hover-changelinkcolor css is very small and simple to add, inline even 17:42:03 yikes - 'pick' appears 1-based, not 0-based 17:42:15 give me the code and i'll put it in, ok 17:42:22 you can paste it here or email it to me 17:42:26 aum> you mean that 3 pick picks the 4th item? :) 17:42:28 whenever you feel like it 17:42:36 oh lemme fetch it 17:42:41 is that right? '44 33 22 1 pick' -> 1 17:42:50 huh? 17:42:56 '44 33 22 1 pick' should intuitively return 22 17:43:02 no it picks 33 i think 17:43:10 it depends on the Fort 17:43:11 oh, right 17:43:14 qFox: right you are 17:43:26 arke> hm really? 17:43:33 aum> try roll :p 17:43:45 LOOP-HOG-2: i liked the black background better :P 17:43:54 qFox: prefer not roll, because it impacts the stack 17:44:03 i need a non-destructive fetch 17:44:32 17:44:45 SONARMAN, STYLES ARE COMMING! 17:44:47 oh remove the BODY line 17:45:14 BODY? 17:45:20 [02:44:31] BODY {margin-left:0; margin-right:0; margin-top:0;} 17:45:22 thataone 17:45:25 and the 17:45:33 it goes between 17:45:55 give me a little while to plug it in and to try it out 17:46:00 my system is giving me heck 17:46:06 oh no here, this is what i meant: 17:46:06 17:46:11 its time to scrape out the old tin lizzy 17:46:15 in other words, reinstall 98 17:46:20 98... 17:46:49 in a few hours after fixing my site i will go eat and then reinstall windose 98u 17:47:05 but we need styles 17:47:07 i want 4 17:47:13 at the very least 17:47:25 ps, tags dont work in img comments :p 17:47:47 http://www.memnonio.com/ROBOTS.html <-- when you mouseover a img, you see

tags :) 17:48:05 ok, i will cut and paste this session and work on this stuff, thanx 17:48:15 it will have 4 color schemes 17:48:15 sure, between the head tags 17:48:34 on what % of all computers will that hover dohicky work 4? 17:48:45 virtually any 17:49:13 you may wanna put "underlined" between : and ; after the text-decoration (without the quotes) 17:49:21 * blockhead checks his hover dohicky :D 17:49:29 ok, just give me awhile 17:49:36 Herkamire [x/69] has challenged Sir-Al [x/587] <-- well guess who won that one :p 17:49:37 one thing at a time 17:50:02 LOOP-HOG-2> sure, css is not so difficult, dont worry :) 17:51:34 Give me a month or so 17:53:19 hm my homepage has been getting quite some USA hits. even though its only about 10 for all of june, its noticeable that most of them are US 17:53:35 which makes me think that my site might be linked somewhere, which makes me wonder... to what purpose :p 17:53:54 google yourself and see wahat sites link to you 17:54:11 ehm how do you do that 17:54:23 'k gimmie a sec 17:54:31 what is URL 17:54:33 ? 17:54:43 members.home.nl/qfox/ or members.home.nl/kuvos/ 17:55:01 (/index.html) 17:55:07 qFox, i will rep the site and then you can take a look at the broken HTML and then tell me what I did wrong 17:55:16 k 17:56:31 qFox: this lists the pages that link to you: http://www.google.com/search?hl=en&lr=&ie=UTF-8&sa=G&q=%22members.home.nl/qfox/%22 17:57:19 qFox, take a look at http://www.memnonio.com/forth.html 17:57:33 blockhead> nothing remarkable :\ 17:57:52 uh :) 17:57:58 where's the page gone? :p 17:58:00 qfox how it works is you type your entire web adress into google as the search tierm. Then when it brind up the next page, there is an option to show the pages that link to that URL. Rather handy feature 17:58:37 s/brind/brings 17:58:42 s/tierm/term 17:58:47 --- join: UserXP9 (LINX@12-222-128-22.client.insightBB.com) joined #forth 17:58:50 LOOP-HOG-2> i'm not sure what you did... but you need to put that block between the tags in the top 17:59:02 LOOP-HOG-2> also, dont forget to end the block with 17:59:05 i will try that 17:59:13 the whole page you mean? 17:59:20 which seems to be missing, which is probably the reason you're not seeing anything 17:59:22 no like 17:59:37 17:59:38 18:00:46 blockhead> ah. but i see nothing out of the ordinary (i still dont understand why that wolfensteinclanpage mistake my (cs) homepage for a wolfenstein clan...) 18:01:21 all i ever hosted there was the page for my CS clan, a long long time ago, but at some point that page picked up my page and said it was a wolfenstein clan :p 18:01:55 * blockhead dunnos. :( 18:02:02 ohwell, w/e 18:02:13 * qFox goes to brush teeth 18:07:46 nt blockhead 18:08:13 the code should have some kind of algo to make it a bit more fair fighting 18:08:27 like only pick x players closest to your rank 18:08:36 or strength or level or w/e 18:14:17 i be go sleep now 18:14:51 'nn qFox 18:15:02 nite 18:15:42 --- quit: qFox ("this.is.not a.real.netsplit") 18:16:43 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 18:17:53 back 18:18:00 my system needs 2 b reinstalled 18:18:03 wb :) 18:18:05 so this is it for tonight i think 18:18:15 i just changed it back to monochrome 18:18:51 i'll deal with that later 18:19:03 i want to go eat in awhile and then fix my machine 18:19:26 if anybody wants to mail me some tags to try out i will accept them probably 18:32:07 --- quit: LOOP-HOG-2 (Read error: 110 (Connection timed out)) 18:39:55 --- join: fridge (~fridge@dsl-203-33-162-85.NSW.netspace.net.au) joined #forth 18:44:56 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 18:45:35 ummm 18:45:47 the alt tag comes up in Explorer but not Mozilla 18:48:39 the mail button is now down below the table on Explorer when the window is squished 18:48:54 but this makes the button at the bottom of table in Mozilla to be way low 18:48:56 oh well 18:49:10 --- quit: topher (Client Quit) 18:53:00 --- join: TheBlueWizard (TheBlueWiz@pc98dn1d.ppp.FCC.NET) joined #forth 18:53:00 --- mode: ChanServ set +o TheBlueWizard 18:57:50 --- quit: UserXP9 (Client Quit) 19:05:03 --- quit: solar_angel ("*later*") 19:07:02 my machine crashed, i didn't get the CSS tags 19:16:14 * slava is coding a wiki 19:16:16 55 lines so far 19:16:22 does everything except for saving changes to the edits 19:16:26 in factor? 19:16:26 need to implement POST request :-) 19:16:29 yeap 19:16:38 neat 19:17:36 cool 19:19:14 yikes... my wiki is 600 lines (for mod_perl) 19:19:29 don't forgot to share the source with us, slava :) 19:19:33 Sonarman: of course 19:19:52 Herkamire: mine will probably be about 100 lines of code when i add formatting and editing 19:20:12 slava: what does it do now? 19:21:12 Herkamire: browses through wiki pages, makes links for wiki words 19:21:29 cool 19:27:46 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 19:27:58 --- mode: ChanServ set +o kc5tja 19:28:45 what is going to be in the wiki? 19:28:56 I changed the color scheme for memnonio 19:31:14 --- quit: Sonarman (Read error: 60 (Operation timed out)) 19:32:42 --- join: jdrake (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 19:34:19 grrrrrrrrrrrrrrrrrrrrrr 19:34:28 how do I get grep to match tabs? 19:38:56 hiya kc5tja 19:41:34 --- join: hefner (~hefner@pool-151-196-35-200.balt.east.verizon.net) joined #forth 19:42:18 Herkamire: good question! 19:42:36 --- join: Sonarman (~matt@adsl-64-160-166-49.dsl.snfc21.pacbell.net) joined #forth 19:42:36 I would've said grep ^V^I file 19:42:43 but this doesn't work =( 19:42:53 ok guys i have a question 19:43:00 actuially nm 19:43:08 tried \011 \t and even [[:space:]] 19:43:40 and they really are tabs too, I checked the file in a hex editor 19:47:50 POST requests are tricky ;) 19:52:33 heh, when I stripped documentation, blank lines, and lines with just } or {, my wiki is 350 lines 19:54:33 dunno how bad it is in forth. not too bad in perl though 19:55:36 tr/+/ / 19:55:46 then you have to undo the hex char encoding 19:55:58 s/%(..)/pack("c",hex($1))/ge 19:58:38 Howdy 19:59:09 --- join: UserXP9 (LINX@12-222-128-22.client.insightBB.com) joined #forth 20:00:29 hi kc5tja :) 20:23:01 hi kc5tja :D 20:23:07 `Hehe :) 20:23:29 * blockhead kicks himself for minimizing the irc window again :/ 20:23:42 * kc5tja measured my car's milage since starting the "2 gallon fillups" experiment -- it still averages at about 17mpg, BUT, today it peaked at 19.5mpg, which is rather substantial. 20:24:07 what: you get better mileage based on how you fill it? 20:24:17 blockhead: Gas weighs a lot. 20:24:30 The more gas you dump in, the heavier your car becomes. 20:24:32 ok. that makes sense, once pointed out to me 20:24:38 Therefore, to accelerate to a given speed, it must burn more gas. 20:24:48 due, you must drive a truck with that mileage. Yo choudl be getting 30+ 20:24:52 (with a car, that is) 20:24:52 Once *at* its desired speed, weight doesn't make much of a difference (it does, but not enough to matter). 20:25:07 "Yo chould" --> "You should" 20:25:22 blockhead: No, I drive a Mazda RX-7 sports car. 20:25:41 And I would like to point out, that milage is actually not that bad for sports cars. 20:25:53 I know sports cars theat get 30 mpg :D 20:25:58 triumph tr4 20:26:04 Not CITY they don't. 20:26:11 oh! 20:26:13 good point 20:26:27 you are doing mostly city driving then? 20:26:42 My car gets about 24MPG freeway, which is average for most sports cars 20:26:54 Though the RX-8 increases that to about 29. 20:27:16 Yes. 20:27:35 Although I take a freeway to get to work, 7 miles isn't long enough to get good freeway milage. 20:28:02 4 cylinder? 20:28:07 2 rotor. 20:28:29 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576399.sympatico.ca) joined #forth 20:28:35 :o ? 20:28:46 oh! rotary engine. never mind :p 20:28:48 My car has a rotary engine. 20:28:57 * blockhead is a blockhead 20:29:32 I need to verify my tires are at proper inflation though. I haven't done that in a while. 20:30:02 And I can't wait to get my transmission and power steering pumps fixed. That'll almost certainly improve milage still more through reduction of friction. 20:30:09 --- join: jc (~jcw@65.3.39.49) joined #forth 20:30:10 oh yeah 20:30:21 Hello. 20:30:24 But even so, I'm approaching 20MPG city with a car that's rated only for 17. I think that's damn sweet. :D 20:30:44 re jc 20:31:12 Without getting into the typical 'ANS Forth sucks' diatribes, anyone know gforth well? 20:31:23 I'd like to think that I do. 20:31:27 Kewl. 20:31:27 ANS FORTH SUCKS :D kidding 20:31:34 * blockhead hides 20:31:46 * kc5tja bans blockhead :) 20:31:51 gforth-0.5.0 has >tib. 0.6.2 does not seem to. I haven't yet figured out what >tib is meant to do. 20:32:08 It seems like an internal word. 20:32:30 the ">" might imply it uses a stack? 20:32:31 >IN is an offset into the terminal input buffer (or whatever the current input stream is supposed to be), so I'd think that >tib served a purpose similar to >in. 20:32:32 PicForth is currently mandating the use of 0.5.0, but I don't think for any really good reasons. 20:32:55 blockhead: >IN/>TIB in this case means "index into" -- it's archaic usage. 20:33:03 kc5tja: ok 20:33:43 I'd like to update it, and I've been poking through the 0.5.0 and 0.6.2 sources. They don't seem to co-exist peacefully, which makes it a little harder to compare things. 20:34:01 No, gforth has a long history of not coexisting with itself very well. 20:34:04 http://69.198.144.227:8888/wiki/ 20:34:16 go nuts 20:34:21 changes are not saved to disk yet :) 20:34:23 I understand it's very frustrating, but, . . . 20:34:30 slava: Wiki in Forth-like langauge? 20:34:36 language rather 20:34:36 kc5tja: yup. 20:34:53 kc5tja: and the source is right here: http://69.198.144.227:8888/inspect/vocabularies'wiki-responder 20:35:03 slava: Care to post sources? I've always wanted to write a Wiki in FTS/Forth some day. It'd be nice to see some kind of inspiration. 20:35:05 slava: kewel 20:35:10 Doh, one step ahead of me. 20:35:24 kc5tja: i'll post an archive with source files soon tonight 20:35:34 kc5tja: the httpd lets you view decompiled code (no comments). 20:35:53 has anyone ever used a forth like 'language' as a protocol? (where you 'push' data through the pipe and execute 'words' based on it) 20:36:01 jdrake: sun's NEWS window system. 20:36:05 i think kc5tja knows more about it than i do ;) 20:36:18 me know nothing :-) 20:36:19 http://69.198.144.227:8888/wiki/ForthLanguage -- it's broken. :D 20:36:35 haha oops :) 20:36:42 i am trying to come up with something that is very basic but I need it to be fairly fast (controlling a window with user interaction :-) 20:36:52 jdrake: Nope, but I'd like to start. NEWS was a *rocking* graphics subsystem. 20:37:05 graphics eh? 20:37:09 i need to know more :-) 20:37:13 slava: i think it broke :o 20:37:26 blockhead: it doesn't seem to handle mutliline input in the edit box :) 20:37:31 jdrake: Yes. Imagine the X11 protocol, but using Forth (or, more accurately, something Forth-like) as its communications protocol. 20:37:38 that woudl do it 20:37:49 kc5tja, no idea really what that would be like 20:38:39 jdrake: An example -- imagine passing, instead of some complex binary data structure to the window manager, something like this: 0 0 640 480 S" My window's title" ..event-flags.. OpenWindow 20:38:47 * hefner once pondered controlling subthreads of a C program by pushing data from a pipe onto the stack then having some mechanism to trigger a function call :) 20:39:00 OpenWindow would then return some result codes useful to the client, like window ID and the like. 20:39:15 OK, 0.6.2 apparently can support >tib, but there's a config option called 'new-input' (sans quotes). Is there a way to pass this in so that as gforth loads the libs, it will not use the detaulted 'True' value for new-input? 20:39:19 slava: i think it is down - getting 503's now 20:39:23 blockhead: yup 20:39:27 blockhead: its getting fixed :-) 20:39:28 * blockhead sorries 20:39:34 that might work, and I could probably use pipes for communication 20:39:46 jc: I don't know, sorry. I've never had a need to deal with that level of input control. 20:39:51 k 20:40:21 hefner: I implemented a proper subset of Forth at hifn, inc. to control a chip tester that was written in C. 20:40:36 instead of coming up with a complex configuration file parser and the syntax to go with it, I just wrote everything using RPN. 20:40:49 Oh, the other developers HATED me for it, but I got the project done on time, and under budget. 20:40:53 I was subsequently laid off. 20:40:58 heh 20:41:23 figures. 20:41:31 kc5tja: so that forth subset was writen in c? 20:41:37 kc5tja, don't all the people that use forth get laid off? 20:41:38 Yes. 20:42:07 blockhead: It didn't support colon definitions, so I didn't bother with a vocabulary structure or anything. But it did support strings, and a number of standard Forth operators. 20:42:31 it would be funny if I actually set it up as a language :-) 20:42:44 * TheBlueWizard shakes his head re: the "business decisions" 20:42:49 theoretically you could make new functions to do things on the server that are quite simple 20:42:58 Well, if I have my way, my Kestrel business will make me money, and I'll be coding in Forth and developing stack-based hardware systems for a living. 20:44:14 I'd like to latch onto a couple of Novix chips. 20:44:15 and, for those who don't already know, I have screenshots of my Kestrel emulator up on my website. 20:44:24 Or an SC/400 board. 20:44:39 blockhead 20:45:00 http://69.198.144.227:8888/wiki/ForthLanguage 20:45:04 i fixed the issue with newlines. 20:45:26 what site 20:45:29 Sonarman: ? 20:46:46 kc5tja: what is your website URL ? 20:47:51 http://69.198.144.227:8888/inspect/vocabularies'wiki-responder'wiki-get-responder'def 20:47:56 handles the GET request 20:48:00 http://69.198.144.227:8888/inspect/vocabularies'wiki-responder'wiki-post-responder'def 20:48:02 handles the POST request 20:48:29 damn that is cool 20:48:30 slava, that isn't in forth is it? 20:48:35 jdrake: nope 20:49:21 Is your wiki a full standalone application, or a Forth CGI under apache/whatever? 20:49:32 a standalone 20:49:37 nice 20:49:45 i wrote the http server 20:49:50 Nifty. 20:49:57 it maps URLs to words basically 20:50:26 hefner: http://www.falvotech.com 20:50:43 i am confused slava, after you mention a reply from jc where he mentions forth 20:50:44 Are the various http protocols handled as actual words, or words that evaluate the text streams? 20:50:59 jdrake: oh its not forth 20:51:22 it's Dactor, right? 20:51:22 jc: this is the key: http://69.198.144.227:8888/inspect/vocabularies'httpd'httpd-request'def 20:51:24 Factor 20:51:27 darn D key 20:51:28 yes 20:51:33 how dare it sneak up next tot eh F key 20:52:02 Perhaps it's Opera, but all I see on that page is 'vocabularieshttpdhttpd-requestdef' in something like a

font. 20:52:10 jc: hmm 20:52:19 'nn all. 20:52:19 can you do 'view source'? 20:52:27 "Therefore, I reserve the right to refuse to change my site for the benefit of users of Microsoft browsers." go kc5tja ! 20:52:32 vocabularieshttpdhttpd-requestdef

vocabularieshttpdhttpd-requestdef

20:52:33  
20:52:33 20:52:33 i linked slava's wiki into GENERAL-INFORMATION 20:52:34 bye blockhead 20:52:41 --- quit: blockhead ("laugha while you can, monkey boy") 20:52:42 LOOP-HOG: what is that? 20:52:54 re TheBlueWizard 20:52:59 i am testing memnonio on both Mozilla and Explorer at the same time 20:53:01 jdrake: :) 20:53:21 http://www.memnonio.com/forth.html 20:53:30 LOOP-HOG: my url is not permanent! 20:53:32 its a dynamic ip 20:53:34 don't link it :) 20:53:41 oops 20:53:46 i can take it out 20:53:47 hiya kc5tja....I spent a bit of my time protoing up a network simulator in Python...very sketchy at this point :) 20:53:54 LOOP-HOG: and the wiki is not persitent yet either :-) 20:53:59 TheBlueWizard: Cool. :) 20:54:35 took it out 20:54:37 I'm going to be playing some more with the emulator more this weekend. I've implemented some code that makes it feel faster to me. 20:54:39 :) 20:54:41 Screen refreshes are much quicker. 20:54:49 kewl 20:54:52 is the wiki working for anybody else? 20:55:21 I came up with a possible IP scheme...looks simple enough to me, and hopefully flexible (then again, remember I'm no network guru and I hafta learn a zillion of stuff :) 20:55:26 slava: It sorta worked for me, as I indicated above. All you need now is a working Wiki. :-) 20:55:29 * kc5tja ducks 20:55:43 i just lob it into my site 20:55:46 well next on the list is text formatting and persistence 20:55:48 no big whoop 20:55:52 LOOP-HOG: you can link to www.jedit.org/factor/ 20:56:12 TheBlueWizard: I think it might be interesting to try from scratch, from first principles, but with hindsight. 20:56:18 i'll put it into systems 20:56:30 " A custom-designed, stack-architecture, MISC CPU will take its place" kc5tja - Q: custom designed? 20:56:41 jdrake: I'm designing the FTS1001. 20:57:03 my god man 20:57:30 how much is that going to cost 20:57:54 yeah...it is *very* experimental, of course. I picked Python cuz (a) it is interactive, (b) I intend to take advantage of OOP for ease of prototyping, (c) I don't wanna worry about data structure stuff too much :) 20:58:03 Well, up-front R&D is going to be higher, but not much higher. 20:58:21 if I win the lottery... :p 20:58:23 I'm programming the CPU into an FPGA chip, so if it bugs out on me, I can just reprogram the FPGA. 20:58:35 The FPGA chip itself will likely cost around $13. 20:58:50 what speed 20:58:57 --- quit: UserXP9 (Client Quit) 20:58:58 But as a side benefit, I can also pack a fair amount of additional logic on the chip too. 20:59:15 jdrake: The CPU will run at 25.175MHz, synchronous with the VGA video display circuitry. 20:59:28 if you pack too much on there, there won't be much left to put together in the kit =p 20:59:45 hefner: The problem is there isn't much to begin with. 20:59:57 hefner: I'm charged by the square inch of printed circuit board space. 21:00:08 linked Factor into SYSTEMS 21:00:08 Thus, to meet my pricing goals, it's a requirement that I minimize PCB space. 21:00:43 Also, static, cache RAM chips simply don't exist at the speeds the bus would run at in "kit-friendly" form. 21:00:52 memnonio went from green screen to monochrome 21:00:53 So I'm switching to SDRAMs instead. 21:01:13 are you still planning to use the same peripheral bus? 21:01:38 sodimm? 21:01:45 fridge: What do you mean? 21:01:56 FPGA design is cheap. There are decent Linux-based tools and excellent Windows based tools (vendors support Windows heavily). There's a website, I can't remember the URL, that has a lot of VHDL/Verilog IP, including CPUs. 21:02:01 jdrake: I'm going to use PC SDRAM sticks. 21:02:05 ahh the firewiresque bus 21:02:13 There are ARM CPUs, reimplementations of 6809, 6502, etc, and some stack based archs. 21:02:14 32bit cells? 21:02:20 jc: Well, there are *no* synthesis tools for Linux that are freely available. 21:03:02 Hrm. I loaded some X-based synth tools, and played with it for about an hour. I don't remember any limitations on it. 21:03:03 fridge: I haven't put a lot of design effort into it of late. But it will need to exist, otherwise, the computer will be of limited utility for many. 21:03:31 jc: I would have expected such tools to have been all over the GNU EDA mailing lists. 21:03:45 jc: So far, I've heard nothing, and no amount of Google searching yields anything. 21:04:19 i was wondering about return stacks, how exactly do they differ from the regular stack (i am not entirely sure how they work) 21:04:22 LOOP-HOG: Yes, it's a true 32-bit design. 21:04:32 jdrake: Conceptually, they don't. 21:04:35 Huh. It was a verilog tool, as I recall. I'm pretty sure it had synth, simulation, timing, etc. I wonder if I've got it bookmarked. 21:04:36 It's just what it's used for. 21:04:42 A return stack is used to hold return addresses. 21:04:53 When you invoke a word, the environment needs to know where to return to once that word is done. 21:05:02 (hence the name, "Return" stack) 21:05:08 http://www.opencores.org/ This the other site I was talking about. 21:05:08 oh I see 21:06:01 jc: I've been there already. Not very impressed with it. But, I did leech the Wishbone bus specs from it, which is 90% compatible with the 6502/65816's natural bus specs. Hence my K-Bus -- a Wishbone implementation optimized for use at the PC board level. 21:06:53 http://www.icarus.com/eda/verilog/index.html 21:06:57 However, since there are no expansion slots on the board, there is no need for a formal implementation of K-Bus. 21:07:09 jc: I'm using Icarus to model the CPU. 21:07:31 I'll probably end up using Altera's synthesis tools under Windows (maybe under Wine??) for actual synthesis. 21:07:34 I'm sure you've been there, that was more for the benefit of the others. It's a good place to start, if you're not an experienced VHDL/Verilog user, and need examples. 21:07:55 Icarus isn't complete yet, but it's darn good for what it can do. 21:08:00 I'm very, very, very pleased with it. 21:08:09 It claims to be a synthesis tool. Is it not? 21:08:19 I'm also going to use gschem to draw up the schematics for the board, or at least, TRY to. It's woefully incomplete. :( 21:08:40 I still haven't found any Linux based PCB software that pleases me. I still fall back to Protel. 21:08:50 It is, in the sense that it can generate *SOME* back-end input files. But it still needs the back-end readers for these files, which only exists on Windows. 21:08:59 ah 21:09:07 I'm very, very happy with EagleCAD. 21:09:11 If I could afford the license, I'd be using it. 21:09:49 Yea, a lot of people use Eagle. I haven't, but mostly I'm not inclined to switch, with around a dozen designs already in Protel, and a bunch of trusted symboles. 21:09:51 how much would it speed up your work? 21:09:52 symbols. 21:10:18 But if I didn't have Protel, I'd likely use Eagle. 21:10:32 LOOP-HOG: At this point in time, not very. I still have to finish the emulator, and get a working Version 1.0 BoxForth implementation on it. 21:11:04 There's not much point in making a computer that isn't known to work, only to find out you don't have any software (which itself, by definition, isn't known to work once it's actually written anyway). 21:11:22 i just set the view to 120% in Moz 21:11:37 BoxForth Forth OS 21:11:37 So I want relatively bug-free code to exist for the new platform BEFORE I actually build the hardware. This way, I can have a reference with which to test the physical hardware against. 21:11:47 i see 21:11:53 i never thought of that b43 21:11:55 i never thought of that b4 21:12:19 One of the things that's prevented me from really getting into VHDL is lack of a decent FPGA board. There are plenty out there, but they're $$$. Also, given what I know about me, I'd likely buy one, and it would never get used. 21:12:24 LOOP-HOG: I'm an experienced silicon post-verification technician, remember? :) I know how to test chips. (Apparently, Hifn, Inc. doesn't, but I digress) 21:12:54 if i have the bucks, i'll probably get one just for kicks and chuckles 21:13:37 if i was in a videogame i would be LOOP-BOSS-HOG 21:13:38 Heh. Opposite ends of the spectrum: I have sitting on the table in front of me, 9 Rockwell 6511 Forth CPUs. With 9 zig-zag sockets. 21:13:51 kewl 21:13:51 Stand back, boys, these things are *fast*. 2Mhz. 21:14:00 but still 21:14:06 I'm considering making my own FPGA "modules" so that I can build a prototype of the CPU and video chip with. 21:14:19 faster than your dad's slide rule dude 21:14:26 Seen the Burch boards? A lot of people seem to use those, although they're not cheap. 21:14:42 what would be the break thru $$ point? 21:14:46 No. I'm thinking of making mine via backplane slots. 21:15:11 will it have USB? 21:15:15 No. 21:15:23 Yea, at 25Mhz, you should be safe. Unless you're talking about PLL'ing the clock up to several hundred Mhz. 21:15:52 no we're talking about hacking into some CPUs salvaged from a wrecked ufo 21:16:00 =^) 21:16:06 It will have a proprietary serial loop-based expansion bus that (a) is *VASTLY* easier to build customized hardware for, and (b) you don't need to pay big bucks to a special interest group to sell "certified parts" for. 21:16:39 kc5tja, how do you like the new look 21:16:50 jc: At a later stage, I am planning on experimenting with asynchronous logic, which means abandoning the Wishbone interface. But, that ought to significantly improve throughput (perhaps by a factor of 3 at least). 21:17:09 rad 21:17:20 But this is not for initial release. 21:17:35 And the research will depend only on the feedback I get from others. 21:17:43 LOOP-HOG: I haven't looked. 21:17:53 slava: thanks for making your http inspector work with my browser 21:18:53 --- join: htp123 (~tehsux@S0106000d6151238b.gv.shawcable.net) joined #forth 21:19:08 I would like to have USB ports on the box, but man, they are hard to program for. :/ 21:19:27 ok, then how do i get out to a CD-RW or DVD-RW 21:19:29 They're actually less standard to code for than legacy ports. 21:19:39 i would like the boot rom to boot from the disk 21:19:39 Yea, in a well thought out design, the actual bus implementation should be pretty well de-coupled from the CPU. At least, to the degree you can get the CPU working, then tune your bus architecture. 21:19:50 then i could reprogram the system by burning a disk on my PC 21:20:05 Use the peripheral interconnect loop to talk to a normal host PC, or to a specially designed IDE interface (kits of which will also be made available in the future). 21:20:21 ok i see 21:20:25 teathered 21:20:55 Unless you're going for balls to the wall speed for the IDE, if you can do any sort of parallel port (not PC, but byte-wide I/O), you can support IDE. 21:20:59 At some point, I also have considered using optical for its standard peripheral interconnect, using back-scatter on a wall or some such. But that will definitely require more R&d. 21:21:23 jc: there will be at least one IDE device on the motherboard to start off with. 21:21:28 Otherwise, it wouldn't be able to boot. 21:21:36 FTAGDSOABWHAOFM 21:21:37 (well, it WOULD, it just couldn't save or load anything) 21:21:51 ?? 21:21:54 I dunno. Flash memory, programmed via JTAG. 21:22:06 But CF cards are just too easy to work with. 21:22:09 Flash is expensive. IDE is very much cheaper. 21:22:38 IDE is also replacable. 21:22:41 But for development purposes, you put down 32MB of flash, use some as BIOS, the rest as disk. 21:22:59 It's not like you're going to produce a production ready motherboard on the first pass. 21:23:10 The ROM is hard ROM -- it never changes. 21:23:18 r u guys going to just run barefoot over the metal on this thing all of the time? 21:23:42 (even though *TECHNICALLY* it'll be implemented as EEPROM, the circuit won't allow reprogramming of it. Sorry, Friends Don't Let BIOS-Virii Run on Their Friends Computers) 21:23:53 I think we're losing a distinction here. You've got ROM, to program the FPGA. But you still need a BIOS to boot. 21:23:56 LOOP-HOG: that is my *personal* intention. 21:24:14 However, others have expressed interest in the availability of a more traditional operating system for it as well. 21:24:23 Presumably, you'll have a debugging monitor for at least a while. 21:24:28 that will be more or less out of the box, and not a vm on metal 21:24:38 jc: Forth is in ROM. It'll boot to Forth. 21:24:46 will this be source baised? 21:24:54 You're talking end product again, I think. I'm talking development platform. 21:24:59 will this be source text baised or will it use tokens like CF 21:25:01 Block source based, as any pure Forth system will be. 21:25:12 jc: No, it'll boot to Forth. :) 21:25:29 jc: Remember, I'm writing the emulator in large part to develop the Forth *before* I build the box. 21:25:35 then the FORTH in the Kestral will get some blocks or files from someplace, like an AUTO.F file 21:25:46 No. 21:25:51 The blocks are directly read from the disk. 21:26:01 Block 0 is sectors 0 and 1, block 1 is sectors 2 and 3, etc. 21:26:46 its own private disk? 21:26:55 sorry 4 my ignorance :) 21:27:06 Simulation will solve many problems before they hit hardware, but I've never seen a development platform where just about everything isn't reprogrammable. 21:27:27 Do you *really* want to pull the part out of the socket any time you want to update it? Test code, bad words, whatever? 21:27:37 jc: What? 21:27:49 the only thing with tom sawyer bare metal is that you break portability because the instruction set of one MISC chip will be different than for another 21:27:51 jc: EEPROM is electrically erasable and reprogrammable. 21:28:04 jc: You reprogram it while it sits on the motherboard (powered off). 21:28:10 "(even though *TECHNICALLY* it'll be implemented as EEPROM, the circuit won't allow reprogramming of it" 21:28:36 jc: What I'm saying is that the Kestrel can't reprogram its own EEPROM. 21:28:45 ah 21:28:47 You need an external EEPROM programmer to do it. 21:28:50 which is good 21:28:52 hi kc5tja 21:28:53 :) 21:28:55 Likewise with the FPGAs. 21:29:26 Personally, I disagree with it not being able to reprogram itself. It should require the installation of a jumper, or a switch, but the hardware should be capable of it. 21:29:57 kc5tja: I think my clutch is starting to wear out... 21:30:05 hey arke 21:30:31 hello sir drake 21:30:46 LOOP-HOG: You really don't -- my emulator's Forth sources are rather portable to nearly any Forth environment, with maybe 30 minutes of hacking time to get CPU endianness issues taken care of, and provided that it can readily link to external C libraries. As long as you stick with Forth code, it actually doesn't matter what your CPU actually is. 21:30:56 re arke 21:30:58 before I go I am taking some of your advice about plugins/language independance,etc. I was going to make a network protocol to communicate between X language and the main program. Guess what this protocol could be called (or derived from) 21:31:16 fux? 21:31:18 Forth Under X? 21:31:40 FRPC -- Forth Remote Procedure Call? :) 21:32:01 hey guys don't give him any hints or anything :-) 21:32:13 kc5tja might have it close though for a name 21:32:20 jc, X does not necessarily involve 21:32:27 ok, its plain old FORTH mostly, machineForth is good, but its like a machine language FORTH hybrid. Ofcourse I would want my machine language to be a cousin to plain old FORTH, that would be a bonus :) 21:32:34 kc5tja: guess it doesn't surprise me .. the owner before my mom didn't have too much leniency in that thing, then my mom drove it (she didn't cause any wear, I'm sure of that). Then I learned the stick on it, so that was massive abuse. The other day, my foot slipped off, making it slam (which was very, VERY bad), and then sometimes 3rd gear just kinda pops out, which probaly causes wear as well. 21:32:40 X being a generic place holder, not X-Windows. 21:32:57 but i would isolate all machineForth words into high level Forth words like working on a CISC CPU 21:33:20 ok, frpc looks better though :-) 21:33:49 LOOP-HOG: Get used to the idea of coding in MachineForth, because that will result in vastly superior performances. And it's still very much so Forth. 21:33:56 kc5tja: but oh well, I'm just a whiner. I mean, that car is almost 20 years old ;) 21:34:09 but if i code in MachineForth i break portability 21:34:13 FLIM - Forth Module Inteface Language 21:34:13 kc5tja: whats teh difference between Forth and Machine Forth? 21:34:19 if i code in only and just MachineForth 21:34:20 and FLAM, the Forth Language Access Module. 21:34:27 So you can be the FLIM-FLAM man. 21:34:32 arke: Forth is a stack-based language for a hypothetical stack-based virtual machine. 21:34:49 no no no no no no 21:34:52 MachineForth is a stack-based language for a real machine -- it need NOT be stack based (MachineForth for x86 proves this). 21:34:54 FOS Forth Operating System 21:35:05 SIL Standardized Inputing and Listing 21:35:08 FOS - SIL 21:35:20 kc5tja: can you give me some examples of this? 21:35:26 we're like down in the FOS-SIL man 21:35:29 arke: http://www.colorforth.com 21:35:40 Are you old enough to remember TRS-DOS? 21:35:56 LOOP-HOG: Why do you break portability if you code in MachineForth? 21:35:56 kc5tja: eh. 21:36:03 LOOP-HOG: : @ a! @a ; 21:36:10 where is A! in ANS? 21:36:11 LOOP-HOG: The same rules apply. I mean......I'm really confused?? 21:36:20 you have to sythesize it in ANS in a preload file? 21:36:27 LOOP-HOG: No. But who cares? Define it if you need to. 21:36:40 ok, np :) 21:36:50 Too many people whine and complain about compatibility and portability, but they fail to realize the very power of Forth itself: its maleability. 21:37:21 I would like to be able to move my work to another MISC cpu some day 21:37:22 I intend on implementing a few words that have ANS roots in FTS/Forth, because I find them personally convenient to have around. 21:37:37 maybe that doesn't have some of the instructions of yours, it will be ok 21:38:03 Well, of course, there are going to be performance impacts if you define the missing words. 21:38:10 Get it working first, optimize later. 21:38:20 yes 21:38:22 The whole point of exposing the hardware is so you can take advantage of it. 21:39:07 well, if i can't get at the h/w in XP, and I loose Gramps ( 98 machine ) then I need Junior to have h/w access if i need that 21:39:36 but if i can get my greedly little paws on a Chuck Moore Special, then i'll recompile my source onto it 21:40:17 My CPU is a proper superset of Chuck's CPU. 21:40:21 ok 21:40:53 The instruction encoding is different, obviously, as I have more opcodes, but still. 21:41:43 this is thin metal 21:41:49 Also, I *AM* considering porting BoxForth's machine forth assembler to x86 to replace my earlier attempt at writing FTS/Forth for Linux. 21:43:05 I'm so impressed with BoxForth's assembler that I'm definitely going to replace FTS/Forth For Linux's target compiler with an x86-specialized version. 21:43:41 Of course, you won't be bare metal anymore, and some "instruction set" changes will need to be made, but not much. 21:43:49 And it'll let you produce real, honest to goodness ELF executables. 21:43:58 Something *NO* existing Forth environment for Linux can do except for isForth. 21:44:16 and even then, it's turnkeyed ;) 21:45:02 but one can gather info on how to generate ELF from IsForth w/o too much effort 21:45:36 arke: So will mine be. I don't see the issue. Linking your code against libc is no different from having a standard Forth run-time in your code. 21:46:05 kc5tja: I meant that isforth is DTC, and thus still needs the interpreter in its code 21:47:05 yes, his is a more traditional Forth environment. FTS/Forth is a MachineForth environment. 21:47:44 the FORTH will be a regular looking FORTH with machineForth instructions if you want to use them 21:47:46 i guess 21:47:56 a machineForth lexicon 21:48:05 Yes. 21:48:13 i think i get it now 21:48:15 I will define @ and ! and all the normal words -- I use these just as much as anyone else. 21:48:31 But I am really starting to appreciate using !A+ and @A+ for graphics work. Or any kind of vector work. 21:48:45 how deep will the stack be, i just don't feel like reading the site right now if you don't mind :) 21:48:47 @ and ! are defined in terms of the A- and B-register words. 21:49:10 I'm planning on 18 data stack entries and 16 return stack entries in hardware, with NO automatic spill-over. 21:49:11 maybe !A+ and @A+ are replacements for not having DO and LOOP and I 21:49:16 ok 21:49:44 for loops with a rolling pointer, you can just prearange the paramaters of DO 21:49:58 I don't think they're direct replacements, but they do change the fundamental way you build loops. 21:50:06 its going to have the regular FORTH control structures isn't it? 21:50:22 Not out of the box. You'll have to load a block to get those. 21:50:29 But they're relatively easy to define. 21:50:47 9ok 21:50:49 fine 21:51:05 More often than not, with highly factored code, they're actually not strictly needed. 21:51:18 You can get the same effect using recursion (which is tail-call optimized) and IF and THEN. 21:51:26 I don't even have ELSE defined by default. 21:51:37 its neat but its not as readable to me personally 21:52:04 I find it to be incredibly readable; remember to use self-documenting coding practices, and it makes perfect sense. 21:53:02 its probably equivalent, you don't have DO LOOP natively, thats fine by me 21:53:38 yeah, it's more precise in its reading. 21:53:48 I never could reliably figure out DO/LOOP anyway. 21:54:12 I *DO* like FOR and NEXT in cmForth though. That is useful. 21:54:20 But that can be implemented in low-level machine forth easily enough. 21:58:11 --- quit: jdrake (Read error: 110 (Connection timed out)) 22:02:32 Heh. gforth can be cross compiled for shboom. 22:02:49 Or rather, supports cross compiling to shboom. 22:09:49 hardware and software independance 22:09:51 hardware and software independance 22:09:51 hardware and software independance 22:09:57 oops 22:10:54 hehehe 22:10:55 hehehe 22:10:55 hehehe 22:10:57 ;P 22:11:03 lol 22:11:44 :) 22:11:45 oops! this channel becomes an echo chamber! 22:12:09 -ECHO 22:12:12 what are we gonna do gonna do gonna do do do? 22:12:29 THX HOG 22:12:51 when i cut and paste i didn't see it go into the bottom line in mIRC32, it just automatically sent it to the server 22:12:57 hi Sonarman 22:16:38 that happens to me all the time 22:16:45 because the newline is accidentally copied 22:16:48 hi Crhis 22:16:51 gack 22:19:06 ;) 22:19:40 gotta go...bye all 22:19:48 bye 22:20:04 laters 22:20:05 by TheBlueWizard 22:20:06 vtw 22:20:08 bye 22:20:19 bye LOOP-HOG-ECHO ;) 22:20:32 bye kc5tja 22:20:40 bye arke and Sonarman 22:20:43 --- part: TheBlueWizard left #forth 22:21:42 ;) 22:25:13 kc5tja, if you include kernel/files.h into gforth 0.6.2, does it flame out? Specifically on tibstack? 22:25:43 jc: I don't even know what kernel/files.h is. 22:26:02 It's the files support for gforth. 22:26:28 jc: My GForth has them compiled in already. 22:26:55 But I'm still confused about what it is you're actually asking. 22:27:05 Sorry, i meant files.fs. Anyways, it's checking new-input. If that's defined it uses the new input methods. 22:27:14 If it is not defined, it uses the old-skool methods. 22:27:38 By default, new-input is 'true DefaultValue new-input' in machpc.fs.in. 22:28:04 However, new-input doesn't seem to be defined as a word, variable, etc, that's persistent in the build. 22:28:16 So you have no WAY of knowing if new-input was defined in the interpeter or not. 22:28:16 I don't know. 22:28:31 And I can't figure out how to define new-input so the fscking has? test picks it up. 22:28:38 jc: I think if you use the ENVIRONMENT ANS Forth word, you might be able to detect it? 22:28:56 I don't know anything about this stuff. 22:29:02 I'm not a GForth "Power User"(tm). 22:29:12 I'm not sure ANYONE is, except for Anton Ertl himself. 22:29:19 I don't need to detect it so much as set it, so that when files.fs is included for a cross compile, it doesn't try to use the old methods. 22:29:23 This sucks. 22:29:24 You might want to ask these questions on comp.lang.forth. 22:29:42 Yea, OK. Thanks. 22:29:50 Sorry, I couldn't help. :( 22:30:02 But these are fairly esoteric things that few people in general use. 22:30:21 Yah 22:30:35 Well, I'm going to get to bed, I think. 22:30:44 I might grab some food first though. 22:30:53 But anyway, I'm outta here. :) 22:31:19 Same here. g'night. 22:32:07 bye 22:32:21 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 22:33:30 --- join: poingie (~chatzilla@user-uinj8j3.dialup.mindspring.com) joined #forth 22:34:04 ;) 22:45:56 --- quit: poingie ("Chatzilla 0.9.64a [Mozilla rv:1.7/20040614]") 22:55:31 damn, missed poingie again 22:55:46 jc: there's a gforth mailing list; you could try that 23:24:39 --- quit: LOOP-HOG () 23:28:08 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 23:35:48 --- quit: Sonarman ("leaving") 23:50:48 EXIT 23:50:50 --- quit: LOOP-HOG () 23:59:59 --- log: ended forth/04.06.18