00:00:00 --- log: started forth/04.03.28 00:00:59 --- join: imaginator (~gps@georgeps.dsl.xmission.com) joined #forth 00:14:08 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:20:11 Hi 00:20:59 hi 00:21:17 I'm having problems implementing a "do word repeat" or "do.n.times" word in assembly for my Forth. 00:21:42 It seems like the obvious way to implement "do word repeat" would be to make do push the address of %eip 00:22:06 and then have repeat take that address from the control stack, but gas doesn't have %eip. 00:22:09 What should I be doing? 00:22:47 well, gas sucks then... 00:22:48 :P 00:23:23 well, you need to push the address of the instruction _after_ do on the return stack 00:23:31 (which, it seems, is the hardware stack here) 00:23:57 That's kind of a problem, because I want most words to be relocatable. 00:24:19 I'm writing to mmap'd memory these instructions. They will basically serve as tasks later on that may be run at any time. 00:25:25 Is there a way to use a raw opcode and movl %esp,%eip even though gas doesn't support it? 00:25:49 well 00:25:51 actually 00:25:54 if you think about it 00:25:54 err movl %eip,(%esp) would be it in gas 00:25:59 thats not what you want :P 00:26:07 * arke made a mistake 00:26:11 Why not? 00:26:22 you just push the current location on the compile-time stack 00:26:50 then, at the repeat, you can do a little pointer math, and do a relative jump =D 00:27:08 How can I get the current location, unless I iterate over all stored words and look for what needs to be relocated? 00:28:53 * imaginator suspects he doesn't understand arke 00:28:56 heh 00:29:13 while you compile it, you store the current dictionary location somewhere 00:29:42 then, at the repeat, you subtract that from the current dictionary location, and do a relative jump back on zero 00:29:51 or rather, not zero 00:35:01 My dictionary setup is much different. I don't think that would work. 00:36:18 --- quit: ayrnieu ("Leaving") 00:37:13 My dictionary isn't linear. 00:37:29 Words are associated with string keys in a trie. 00:39:27 heh 00:39:49 well, then you're gonna have to take the address of whatever its compiling to at compile time 00:46:32 :( 00:46:55 Does an app have to run in a lower ring level than unix puts user apps in to access things like %eip? 00:47:17 * imaginator wonders how to find the opcode. 00:47:22 eh, no, you can always access your own eip lol 00:47:53 call location ; location: .... 00:48:01 after that, location is on the stack 00:48:04 but thats a hassle 00:48:17 It's still better, and should be relocatable. 00:48:23 you don't need eip though :) 00:48:38 I know, but I can make the code relocatable more easily this way. 00:48:55 My then keyword does a relative jump like you were describing by subtracting offsets. 00:49:52 yeah, thats what you want to do here too 00:50:26 * arke is away: sleep 00:54:57 bye arke 00:55:02 sleep well 01:46:36 --- join: fridge (~fridge@dsl-203-33-165-176.NSW.netspace.net.au) joined #forth 02:19:34 --- join: yeoh (~yeoh@219.95.1.19) joined #forth 02:20:00 --- part: yeoh left #forth 03:51:32 --- quit: crc (Nick collision from services.) 03:51:43 --- join: crc (crc@1Cust201.tnt1.levittown.pa.da.uu.net) joined #forth 04:13:22 --- quit: crc ("Goodbye") 04:17:01 --- part: imaginator left #forth 04:59:18 --- quit: Robert ("brb") 05:20:16 --- join: Robert (~snofs@c-2c5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 06:26:07 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 06:26:55 Hi hovil 06:41:09 hi 06:42:22 I work with people who either do nothing (leaving it to me to do it), or do things incorrectly (leaving me to fix it, and then do it correctly) *sigh* 06:49:05 They fall between the following 06:49:12 Stupid and lazy: these don't produce very much, but they don't hurt you. Educate and motivate at your leisure, if possible. 06:49:18 Stupid and motivated: these folks need to be weeded out ASAP, since they actively hurt you. You know, the ones that form "cross-cutting teams" to solve trivial problems. Or add software features that accidentally send mail to everyone in your address book. 06:55:06 --- quit: networm (wells.freenode.net irc.freenode.net) 06:55:07 --- quit: ianp (wells.freenode.net irc.freenode.net) 06:55:07 --- quit: mur (wells.freenode.net irc.freenode.net) 06:55:07 --- quit: cmeme (wells.freenode.net irc.freenode.net) 06:56:13 --- join: networm (~networm@L0625P09.dipool.highway.telekom.at) joined #forth 06:56:13 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 06:56:13 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 06:56:13 --- join: ianp (~ian@69.20.54.28) joined #forth 06:56:14 lol 06:56:38 features :p 07:01:04 --- join: uglymonkey (c-dbvvn-XP@d94.as5.sfld.mi.voyager.net) joined #forth 07:18:47 --- quit: networm (Read error: 113 (No route to host)) 07:19:31 --- join: networm (~networm@L0651P06.dipool.highway.telekom.at) joined #forth 08:29:07 is a variable that's defined with does> read-only? 08:29:41 A read-only variable sounds contradictive 08:29:47 it does, doesnt it 08:30:02 : numvar create 1 cells allot does> @ ; 08:30:33 when i create a new var, numvar test , i cant seem to assign a value to it 08:31:37 i was kind of looking for the behaviour of a constant 08:32:06 Actually many Forths (like IsForth) uses "constants" as variables 08:32:17 And special words are used to change their values 08:33:21 oh 08:33:36 i seem to (attempt to) reinvent the wheel over and over again :p 08:33:42 if you remove the @.. it should work 08:33:53 the @ already fetches what is in the variable 08:33:56 any default word to alter the constant? 08:34:21 yea i know networm, that kind of was the whole point of it... 08:34:35 but if i do, 21 test drop ! it returns an exception 08:35:32 IsForth uses !> 08:35:35 I use -> 08:35:44 So to set X to 123, do: 123 -> X 08:36:13 : numvar create 1 cells allot does> ; numvar test 08:36:21 21 test ! 08:36:25 that should work 08:36:36 oh, you mean, that does> automaticly executes @ ? 08:37:12 it automatically puts the address to the stack 08:37:19 test @ 08:37:24 well yea, but you'd need @ to get the value 08:37:27 ^ that will get back what is stored in the variable 08:37:31 i know :) 08:37:37 but i just wanted ot use test 08:37:40 get rid of the @ 08:38:17 i see.. 08:39:45 not sure that's the best solution.. but you could just make another word for it.. 08:39:59 that would kind of defy the whole point 08:40:09 either i put @ there, or get-variable-value 08:40:11 :p 08:40:55 hm. so the question is, can you get the address where the value is stored inside TEST 08:41:33 no, the question is how to get a variable that behaves like a constant but can be changed like a regular variable :) 08:42:11 well, you need some additional word to change it 08:42:38 something like: 21 change test ! 08:42:46 yea i can live with that 08:42:53 CHANGE should somehow find that address.. 08:43:03 but that brings me back to my first question :) 08:43:09 wasn't there a word to get the datafield address from the XT? 08:43:23 although not really, but why wouldnt it work? 08:43:32 : numvar create 1 cells allot does> @ ; 08:43:34 numvar test 08:43:39 1 test drop ! 08:43:45 oh 08:43:51 because there's no address put on the stack 08:43:56 riiight 08:44:03 yes.. the address is the problem.. 08:44:31 hrm 08:45:11 i guess that makes clear why constants are constants :p 08:47:28 --- join: fdr (fdr@modem-1898.jaguar.dialup.pol.co.uk) joined #forth 08:48:15 21 ' test body> ! 08:48:56 hm,doesn't seem to work in gforth 08:49:05 that didnt work in winforth either 08:49:12 whateverthehell it did, the value is still 0 :p 08:49:19 what does body> do 08:49:35 get the data address from the XT 08:49:45 --- part: fdr left #forth 08:49:47 doesnt ' already do that? 08:49:49 qFox, you want the TO word. 08:49:54 And VALUE 08:49:55 undefined 08:50:39 value does what i want? 08:51:03 Yep. 08:51:08 TO isn't undefined in Winforth 08:51:14 Do this... 08:51:16 is too :p 08:51:24 Nope, it's not. You're just confused by the error. :P 08:51:32 10 VALUE TEST 08:51:34 TEST . 08:51:38 20 TO TEST 08:51:39 TEST . 08:52:13 ! it worked 08:52:13 TO is a parsing word 08:52:13 !fsee TO 08:52:13 Forth: 4Undefined. 08:52:21 but 08:52:26 its defined when you call value? 08:52:33 ? 08:52:46 Rephrase? 08:52:49 well 08:52:51 it didnt work before 08:52:55 and it did work after 08:52:57 ... :) 08:53:05 No... TO was giving you a confusing error. 08:53:10 If you just type TO... 08:53:13 oh 08:53:15 ic 08:53:15 and then hit CR 08:53:23 It's not finding a word to set anything TO 08:53:29 yea understand 08:53:36 TO 08:53:44 TO essentially has a ' in it 08:53:56 : TO ' >body ! ; 08:54:03 Simple way to define it. 08:54:16 that's just what i tried though.. 08:54:20 ' >body ! 08:54:36 * arke is back (gone 08:04:08) 08:54:40 !fdef : TO ( n -- ) ' >body ! ; \ TO 08:54:41 Forth: 12: TO 3( n -- ) ' >body ! 12; 3\ TO 08:54:53 how do you indicate a parsing word in the stack anyways? 08:55:00 21 ' test body> ! 08:55:04 wonder why that doesn't work 08:55:07 >body 08:55:12 ahh 08:56:59 : value create , does> @ ; 08:57:07 yeah, with >body it works :) 08:57:10 : to ' >body ! ; 08:57:12 Heh, yep. 08:57:24 grrr @ whoever invented body> 08:57:25 cfa>body would be more obvious a word. 08:57:32 definitely 08:57:32 body>cfa 08:57:37 yep 08:57:40 or even body->cfa 08:57:45 body2cfa 08:57:53 -> could mean "store in" though 08:58:01 body-to-the-word's-cfa 08:58:02 --- join: Guest300757 (xc@200.163.162.31) joined #forth 08:58:05 Nice and verbose. ;) 08:58:10 heh 08:58:20 not very fortish 08:58:30 but 08:58:34 --- part: Guest300757 left #forth 08:58:38 isnt value then the same as constant? 08:59:18 Depends on how constant is defined. 08:59:53 the general definition of constant is that, aside from optimization stuff code thingies? 09:00:10 Well, try doing TO to a CONSTANT. 09:00:19 * arke is away: brb 09:00:37 good point 09:00:40 * qFox tries 09:01:02 21 constant ding ok 09:01:02 43 to ding 09:01:02 Error: ding Use TO and +TO on VALUE type words! 09:01:08 evil!! 09:01:12 But yea, if you created a VALUE and a CONSTANT using CREATE/DOES> it would be identical IMO. 09:01:19 it works in gforth 09:01:24 IMO, might as well just use VALUE everywhere. 09:01:26 constant/value seems to be the same there 09:01:36 If you really want a constant constant, then do : FOO 123 ; 09:01:45 see value 09:01:45 : Value 09:01:45 (Constant) , ; ok 09:01:59 WTF! Why can't I use SEE in gForth? 09:02:34 see constant 09:02:34 : Constant 09:02:34 (Constant) , ; ok 09:02:38 lol 09:02:39 works for me.. :) 09:03:07 *grumble* 09:04:30 !fhelp 09:04:31 Forth: This is a words database. Add words with !fdef . See words with !fsee . Use !fhelp for more information. This bot is not a parser, so you cannot use it for running code. 09:04:31 Forth: Only define words in Forth, define words that really cannot be defined that way, as CODE. This is a public bot, dont ruin it. 09:05:09 it should be fed with gforth or winforth initially.. 09:05:17 i'm lazy 09:05:23 and winforth is just code. 09:05:31 MINFORTH 09:05:32 except for the words you least expect it from 09:05:41 yes, minforth then, it has most things in forth 09:05:46 * arke is back (gone 00:05:24) 09:06:13 !fhelp owner 09:06:13 Forth: This is a words database. Add words with !fdef . See words with !fsee . Use !fhelp for more information. This bot is not a parser, so you cannot use it for running code. 09:06:13 Forth: Only define words in Forth, define words that really cannot be defined that way, as CODE. This is a public bot, dont ruin it. 09:09:52 !fsee dup 09:09:52 Forth: 12: dup 3( n -- n n ) whocaresitsabloodyprimitive 12; 3\ duplicates the value on the stack 09:10:09 heh 09:10:11 networm> me. 09:10:25 oh, heh 09:10:35 :) 09:11:21 networm, still gonna make a bot out of your forth VM? 09:11:22 --- join: blockhead (default@dialin-694-tnt.nyc.bestweb.net) joined #forth 09:11:57 still planned. 09:12:37 Hey, if we had enough Forth bots in here, we could have Forthbot wars. :) 09:12:49 heh 09:13:11 is someone runnign a forth bot here? cool! 09:13:12 Sounds great. 09:13:36 how would they fight? try to kick the others? 09:13:55 hahaha this bot is a stupid bot though :) 09:13:59 : foo recurse ; foo 09:14:00 probably call each other names and contradic teach other on how [ and ] work :D 09:14:01 just database style 09:14:06 lol 09:14:42 i'm gonna change the !fdef trigger soon so it'll be a bit more lenient to definitions 09:16:07 networm, well they'd probably each have to implement a certain wordset that they would use to battle with. Making the bot exit or freeze would be too easy. :P Better to make them play some kind of game. 09:16:57 something like C robots should work 09:17:04 Yea. 09:17:14 but if wouldn't matter then which bot runs, but which script it runs 09:17:27 Yep. 09:17:42 Could have a server bot and then different fighting bots. 09:17:54 heh 09:18:01 They'd /msg back and forth with the server for info and commands. 09:18:16 and the server would /msg important stuff to the channel :) 09:18:28 * networm bot has won the match 09:18:30 haha 09:18:35 Hehe. 09:19:29 Hmm... and perhaps the bots could load programs from the server in mini-blocks. 09:19:32 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:19:38 Hi Jason :D 09:19:48 hi Chris :) 09:20:27 :) 09:20:29 (: 09:28:28 * arke is away: shower + wanking 09:30:57 Win32Forth is actually pretty neat. 09:32:13 * blockhead installed it awhile ago but never got around to trying it out :D 09:33:20 I'll have to actually try doing some Win32 programming in it. 09:33:32 It's cool how you can TURNKEY apps with it and stuff. 09:33:56 turnkey is kinda good! 09:35:21 Nice cool Forthy alternative to commercial dev environments like MSVC. 09:36:09 * blockhead really should take a look at it 09:38:05 i got a window running 09:38:14 now trying to create some code that will create a filename 09:38:35 there are probably a whole set of standard words for it already, but w/e :) 09:40:34 Win32Forth has a LOT of words. 09:40:44 it does 09:41:07 and the editor is a bit bugy when it comes down to undo/redo 09:41:22 which can be quite annoying sometimes 09:45:13 I have only used the editor to browse thus far. 09:51:56 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 09:52:02 --- mode: ChanServ set +o kc5tja 09:52:36 I just unleashed a 55-gallon container of liquid white phosphorus in the ColorForth mailing list. 09:53:07 umm, you flamed someone? 09:53:22 you claimed winforth ruled all others? 09:54:16 hey all 09:54:36 and if you didnt, can i give it a try? ;) 09:54:46 qFox, is the winforth gui written in winforth? 09:54:56 i think so.. 09:55:00 the editor is 09:55:02 is it OSS? 09:55:06 oss? 09:55:10 open source 09:55:20 oh, um i dont think so, perhaps on the website 09:55:34 http://groups.yahoo.com/group/win32forth/ 09:55:54 oh wait, wrong link 09:56:01 i had some great ideas for the factor IDE 09:56:15 it will have a presentation-based UI with html, irc, console and gui backends 09:56:47 and probably more words than winforth :) 09:56:52 hum i seem to have misplaced my winforth homepage link 09:56:57 thats a lot of words 09:57:15 3,181 Words in Application dictionary 09:57:15 1,689 Words in System dictionary 09:57:15 4,870 Words total in dictionaries 09:57:15 15,513 Windows Constants available 09:57:18 yep. 09:57:27 ooof 09:58:34 so you can write gui apps in winforth? 09:58:43 Oh, yeah, you can kind of say that I flamed someone. 09:58:53 After they proceeded to tell me how much "I don't know what I'm doing." 09:59:09 oopsie 09:59:12 Even despite my rather influential list of credentials in the areas *precisely* that I'm talking about. :) 09:59:15 kc5tja, will the boxos be any kind of 'color forth', or just plain text? 09:59:20 what DID you do 09:59:23 :o 09:59:56 slava: Well, now that I'm considering the addition of proper color, the thought has crossed my mind. But it's too early to tell. I'm thinking 'no' at this point, because it'll be more marketable to a wider audience that way. 10:00:22 qFox: I'm not sure if the archives ahve the message yet. If so, I'll see if I can forward you the link. 10:00:45 what kind of bomb did you drop? 10:00:58 any survivors :D 10:01:00 are those archives still "alive" anyways? i mean, the language is kind of ancient and all? 10:01:01 ? 10:03:48 http://www.strangegizmo.com/forth/ColorForth/ <-- Towards the end of the page, "DARPA Takes Aim at..." 10:04:09 That remains to be seen. 10:04:34 You have to read the thread from the beginning to get the full understanding of how this guy came to think several of us on the list "don't know what we're doing." 10:05:09 who is 'this guy'? 10:05:14 qFox: ?? What do you mean the 'language is kind of ancient and all'? 10:05:25 forth 10:05:26 old 10:05:33 hovil: John. R. Strohm 10:05:40 everything thats being said about it, has been said by now? 10:05:49 qFox: What? 10:05:56 qFox: Where did you get that idea from? 10:06:06 it was a question 10:06:08 hahaha 10:06:09 That's like saying, "Everything that can be said about Lisp has been said already." 10:06:13 Clearly it's not true. 10:06:35 everything than can be written must have already been done so 10:06:45 I mean, gads! writing systems have been around for ages 10:07:03 there are only 12 notes so all the music that can be written is already written :D 10:07:05 hovil: That's been said before. Come up with something NEW...geez... :D 10:07:18 kc5tja, I've never heard it before 10:07:26 hovil: Sorry, was a stupid joke. 10:07:32 I live the simple life 10:10:14 --- join: bitwise (bitwise@69-166-74-248.atlsfl.adelphia.net) joined #forth 10:11:31 --- part: bitwise left #forth 10:12:08 kc5tja, I thought you meant it was a famous quote or something =P 10:12:42 I wish I had bought my assignment to work 10:12:55 it is quite slow now, after the initial rush 10:15:55 though, being 4am, my mind is quite slow too 10:16:08 kc5tja> you kurt? 10:20:19 --- quit: blockhead (Read error: 104 (Connection reset by peer)) 10:20:35 it is quite slow now, after the initial rush 10:20:39 arke, RUSH!!! 10:21:25 --- join: blockhead (default@dialin-704-tnt.nyc.bestweb.net) joined #forth 10:23:59 qFox: No, I'm Samuel A. Falvo II 10:24:05 kc5tja> hm, ok, before i read a whole bunch of posts that say all the same, when does it get intresting? :) 10:24:18 all teh same, or the opposite from the previous post... 10:24:31 I already said, towards the bottom of the page. 10:24:55 that was before i knew who you were :) 10:33:23 --- quit: uglymonkey (Read error: 110 (Connection timed out)) 10:59:15 hi kc5tja 10:59:32 * arke is away: I'm busy 10:59:50 * arke is back (gone 00:00:00) 11:03:27 * kc5tja is reading up on consistent overhead byte stuffing... 11:03:43 It's a sweet system; I proposed something before, but it wasn't as systematic and thorough as Cheshire's work. 11:04:39 ? 11:04:41 hwats that? 11:06:00 You first need to understand how packet data is exchanged on a serial link. 11:06:18 Generally speaking, you have a source address, destination address, some protocol ID, the data, and then some kind of checksum. 11:06:31 Well, that's all good and fine, but how do you identify where a packet starts and ends? 11:07:03 Typically, one would use "framing" information -- SLIP uses $C0 as a start-/end-of-frame flag byte, 11:07:12 $7E is used by PPP and most other HDLC-derived protocols. 11:07:35 The problem is, RS-232 and other (a)synchronous serial chips aren't aware of what a packet is. 11:07:40 It just knows to send a byte whenever it has one. 11:07:55 So how does one differentiate the $7E-as-packet-flag-byte from the $7E-as-data-byte? 11:08:29 Well, traditional solutions involve bit-stuffing (best implemented in hardware), where after five consecutive '1' bits in the data, a '0' bit is conveniently and automatically injected, to prevent any accidental occurance of the flag in the data. 11:09:00 Problem is, in software, this is horribly inefficient to pull off. Plus, it adds 20% network overhead for worst-case data streams (on average, it's about 1% over the life of a single connection, but still). 11:09:10 Another, faster solution is to use byte stuffing. 11:09:31 Basically, everywhere you see a flag byte in the data, replace it with an escape character, followed by an indicator of what to escape. 11:09:54 This is fast to do, but since it now takes two bytes to represent what used to be only one, packet sizes can grow to 200% their original size. Ouch! 11:10:19 What COBS does is basically a variation of RLE-encoding. 11:10:31 run length encoding encoding? 11:10:38 Let's say, for the sake of argument, that $00 is our flag byte. We choose this byte because of conveniences you'll see later on. 11:10:40 don't answer that, I'm being a pest 11:11:02 So whenever we see $00 in the data stream, we know unambiguously that a new frame is starting, and any previuos frame is done. 11:11:27 If the received byte is $01, then this encodes a raw $00 byte. 11:11:46 If we see $02, then we encode ONE data byte, which is IMPLICITLY UNDERSTOOD to have a $00 byte following it. 11:12:03 So $02 $41 received on the wire will cause $41 $00 to be placed in the buffer. 11:12:13 $03 $41 $42 will cause $41 $42 $00, etc. 11:12:20 oh, thats cool 11:12:22 I like that 11:12:30 Thus, given a prefix byte N, we have N-1 bytes of pure data, which is implicitly followed by a zero byte. 11:12:55 For sequences longer than 254 bytes, a special exception is used: $FF, which means 254 raw bytes of data, but NO implicit zero byte. 11:13:11 This means, best case, 1:1 packet sizes are possible. Worst case: 1:1.04. :) 11:13:34 AND, this kind of encoding is utterly trivial to do for microprocessors. 11:13:37 And check this out: 11:13:39 $00 == Flag byte 11:13:43 $01 == implicit zero 11:13:49 $FF == 254 non-zero-terminated bytes. 11:13:57 Note that all these surround $00. 11:14:04 =D 11:14:11 Thus, in 6502 machine language for example, we can *very* rapidly check for these special cases: 11:14:15 LDA INPUT 11:14:19 BEQ NewFrame 11:14:26 DEC A 11:14:32 BEQ AppendZeroByte 11:14:55 err, oops, wrong order of instructions. 11:15:03 And let me use X register instead of A, so it'll work on all 6502 clones. 11:15:05 LDX INPUT 11:15:10 INX 11:15:25 BEQ TwoFiftyFourBytesFollow 11:15:27 DEX 11:15:33 BEQ NewPacketFollows 11:15:37 DEX 11:15:41 BEQ AppendZeroByte 11:15:50 sounds good for packet radio 11:15:59 ; At this point, X contains number of raw bytes that follows. Just append $00 when you're done. 11:16:20 Or, alternatively and perhaps even faster: 11:16:22 LDX INPUT 11:16:31 gahh 11:16:32 LDA INPUT 11:16:48 SHL A 11:16:49 TAX 11:17:01 JMP (jumptable,X) 11:17:29 If jumptable points to the middle of the jump table instead of the first entry, then -1, 0, and 1 become valid offsets into it. :) 11:19:08 Now of course, we can change the meanings of the bytes around if need be. $00 = frame byte, $01 = implicit zero, $02 = 254 bytes, $03..$FF = N-2 bytes follow 11:19:27 hovil: It's pretty much good for everything I can think of. 11:20:16 This is especially useful for implementing a Citadel message base, for example, which has a circular message database. Messages are found by scanning for $FF bytes, which are kept unambiguous by restricting all text to 7-bit characters. 11:20:25 With this method, I no longer have that restriction. It's *sweet*. 11:31:22 * arke is away: playing games 11:38:14 I think the amiga monitor I bought was broken during transport 11:38:23 * hovil shakes his fist at australia post 11:39:07 very bright bands on a white screen, looks very much like the gun is doing things it shouldn't 11:39:22 and I get that ozoney smell 11:39:26 =( 11:40:53 :( 11:45:46 --- quit: blockhead ("Client Exiting") 11:48:11 god doesn't want me to play speedball II, I just know it. 11:48:51 anybody got ctags working with forth? 11:48:54 it was going to be my shed computer... that I could run to in times of marital arguments 11:49:07 ohh.. speedball, by the bitmap brothers? 11:49:24 networm, like there is any other! 11:49:48 luckily there is UAE :) 11:51:33 I think this aircon is diseased 11:51:42 other people in my office have been getting sick 11:51:46 and now I have a runny nose 11:51:52 a sign of bad things to come! 11:52:10 I think I'll resign myself to whining on IRC 11:57:33 --langdef=forth 11:57:34 --regex-forth=/^:[ \t]*([!-~]+)[ \t]*/\1/d,definition/ 12:03:39 hovil: Doh!!! :( Just got the monitor, and it's arcing? 12:08:12 I'm not sure what arcing is. It will produce a white screen, with extra white zigzagged lines across it, as if the gun is doubling up on those areas 12:13:27 Arcing is the "ZAP!" that you get when an electrical discharge happens. 12:13:42 Lightning is the largest known source of arcing on this planet. :) 12:13:59 The static 'zing!' you get when you walk across a carpet then touch someone is a much smaller example of that. 12:14:07 (amazingly, it can be up to several thousand volts!!) 12:14:19 ahh, yes, I'm familiar with that arcing 12:14:21 But if you smell ozone, that's a great indication that something, somewhere, is arcing. 12:14:24 just not in the context of monitors 12:14:29 oh, OK 12:14:34 it may be a mis-smelling 12:14:37 The only way to make ozone at these altitudes is to ionize the air, and arcing is the best way to do it. 12:14:39 it could be burning plastic =P 12:14:59 hehe 12:15:33 it lacks a degauss 12:15:40 I'll have to set it next to my big monitor 12:16:00 and degauss them both at once 12:16:19 but thats not really an issue until I get a picture on it 12:18:59 I wish I knew a reliable and trustworthy electrical repair guy 12:19:16 hovil: where are you located? 12:19:49 sydney, .au 12:19:52 hmm 12:19:54 Don't know. 12:20:11 If you were in the Continental US, I was going to forward the address of my uncle's TV/VCR repair business. 12:27:29 http://www.repairfaq.org/REPAIR/F_monfaqa.html#MONFAQA_001 12:51:12 --- join: das (das@adsl-64-219-100-35.dsl.lgvwtx.swbell.net) joined #forth 12:51:23 --- part: das left #forth 13:06:02 --- join: matt_ (1000@adsl-64-160-164-231.dsl.snfc21.pacbell.net) joined #forth 13:06:07 --- nick: matt_ -> Sonarman 13:09:30 yeehaw. got COM1 and COM2 connected together; now i can sync JPilot with POSE! 13:12:38 :))))))))))))))))))))) 13:12:57 (chapped lips) 13:13:11 damn, i was about to make fun of your double chins 13:13:28 I'm NOT fat! 13:13:37 I am just slightly immature in my physical activities 13:13:43 well, EXCUSE ME for misinterpreting your smiley! 13:14:30 Back in a bit -- going to get some food. 13:14:54 :) 13:14:56 (: 13:16:39 well, at least the plan is that this will enable me to hotsync them 13:16:50 it doesn't seem to be working :( 13:27:47 =D 13:27:55 Frapiar's basic Event system works!!! 13:27:57 its really cool 13:28:04 its just stuck in the Event loop 13:28:06 --- quit: Sonarman (Read error: 60 (Operation timed out)) 13:28:40 then, every 33ms, it calls an interrupt which pushes an event to run the next cycle =D 13:28:48 --- join: Sonarman (1000@adsl-64-169-94-41.dsl.snfc21.pacbell.net) joined #forth 14:04:23 * arke is away: games, getting ready for work, work ): 14:08:58 --- quit: hovil ("Leaving") 14:17:59 --- join: Sonarman_ (1000@adsl-64-169-92-172.dsl.snfc21.pacbell.net) joined #forth 14:28:48 --- quit: Sonarman (Read error: 110 (Connection timed out)) 14:30:57 back 14:38:15 hi kc5tja 14:38:21 kc5tja: got me when I'm about to go to work :( 14:38:28 kc5tja: how's life? 14:44:58 * arke is away: work 14:56:03 --- join: networm_ (~networm@L0625P02.dipool.highway.telekom.at) joined #forth 14:58:07 --- nick: Sonarman_ -> Sonarman 15:06:12 --- quit: networm (Read error: 60 (Operation timed out)) 15:06:38 sorry, helping my roommate with his computer again. Installed another DVD-ROM drive for him. 15:15:37 anyone here ever use the palm emulator POSE under Unix? 15:18:05 No. 15:18:27 I know that it is recommended for use in developing Palm software under Linux though (as I recall). 15:18:43 i can't figure out whether the desired serial port is supposed to be entered DOS-style or Unix-style 15:19:33 no mention of it in the PDF, that i could find 15:19:45 i just want to try Quartus Forth :) 15:20:14 I believe it's Unix style, if I'm understanding you correctly. 15:20:48 as in, /dev/ttyS0 as opposed to COM1 15:23:22 /dev/ttyS0 = COM1, right? 15:23:47 bleh 15:29:14 yes 15:29:59 well, it's not working anyway :) 15:46:49 --- join: warp0b00 (~warpzero@209.180.166.194) joined #forth 15:47:57 hmm 15:48:01 Not sure then. 15:53:39 brb -- napping. 16:21:21 i'll see that nap and raise you with sleep! 16:21:57 --- quit: qFox ("if at first you dont succeed, quit again") 16:43:42 back 16:43:57 good nap? 16:44:18 Good enough. 16:44:22 Still a bit tired though. 16:49:47 Still reading up on consistent overhead byte stuffing techniques. 16:50:03 * kc5tja is strongly, strongly leaning towards applying it to the peripheral interconnect bus in the Kestrel. 17:01:23 hey kc5tja, in the example code for COBS you gave earlier today, what does the instruction "SHL A" do? 17:03:15 shift-left accumulator 17:03:37 shift-left by 1 bit? 17:03:51 And it's not a complete implementation of COBS -- it's just the decision tree part of a COBS decoder. 17:03:54 Yes. 17:03:56 The 65816 only has 1-bit shift instructions. 17:04:11 ok 17:04:53 (well, I mean to say, they're actually 9-bit/17-bit shift instructions, but they only shift by one bit. :)) 17:05:04 haha :) 17:05:30 i don't understand why you're shifting the input left, though 17:07:36 An address (in the code) is 2 bytes in size. 17:08:09 Shifting to the left multiplies the value by two (proof: 5*2 == 5 + 5 == 0101 + 0101 == 1010 <-- Note the '101' value of five shifted left). 17:08:58 Thus, I'm converting the input byte directly to a table offset, which the JMP uses to calculate which address to jump to (via an indirect memory reference first). 17:09:00 oh, right. i don't know why i was thinking 8-bit addresses :) 17:09:21 thanks 17:10:10 n/p 18:32:51 Man, I was thinking about doing this many months ago: http://www.waxy.org/archive/2004/03/21/infocomb.shtml 18:33:13 IM could be used for many things... IF, BBSes, shells, Forth, etc. 18:35:34 Funnily enough, that's pretty much what amateur radio's AX.25 protocol is like. We had the patent on IMing so long ago. (In the figurative sense.) 18:36:36 Just finished reading Stuart Cheshire's Ph.D. Thesis. He has *one* technical error in his whole document that I can discern. 18:37:03 He claims that AX.25 performs a two-for-one substitution of frame characters in the protocol. This isn't true; AX.25 is an HDLC-derived protocol that performs bit-stuffing. 18:37:53 You don't say. 18:38:39 The only time two-for-one substitutions are performed is in the *very* specific case of operating a TNC in KISS-mode. I can understand his point of view, but only because I'm familiar with both modes of operation. :) But his paper concerns itself primarily with wire- (or in the case of AX.25, air-)level transmission, and thus, isn't appropriate to consider KISS-mode in that context. 18:39:26 Otherwise, I'm in complete and total agreement with the document. 18:40:16 madgarden: yes. When you operate a TNC in anything but KISS-mode, it waits until you type RETURN to send a packet. Packets are always sent with source and destination addresses, like KC5TJA-2>FOOBAR: Hello world! 18:40:37 To connect to a BBS, you just "IM" the BBS: C W6BBS-4 18:40:53 Perfect. 18:41:05 The C command is an intrinsic command of the TNC when unconnected, but of the BBS itself otherwise (which is how digipeat routes are set up!). 18:41:51 if you already know the full network route, you can do something like this too (depends on TNC though): C BBS1 BBS2 BBS3 ... BBSn 18:41:58 where BBSn is the target node you wish to reach. 18:43:30 --- join: ASau (~asau@158.250.48.196) joined #forth 18:43:37 Dobroe utro! 18:43:44 Good evening! 18:53:39 y0 18:54:13 --- join: thin (~thin@csnet034.cariboo.bc.ca) joined #forth 18:54:36 arke fix the topic, it cuts off heh 18:58:06 thin: Depends on your client. 18:58:20 hmm 18:58:29 18:55 -!- Topic for #forth: A channel dedicated to the Forth programming language, its implementation, its application, and its philosophy. :: UPDATE: Those 18:58:32 interested in the up-coming ForthBox Kestrel home computer kit are invited to review the Kestrel's very own Wiki at http://www.falvotech.com/cgi/kestrel || 18:58:35 kuvos, a words database bot: !fhelp !fsee !fdef || SNEAK PREVIEW IMAGES OF THE FORTHBOX KESTREL!!! http://www.wsu.edu/~jackdoll/jak/comp/images/comp4.jpg 18:59:22 heheh 18:59:32 sweet forthbox setup ;) 18:59:51 Hehe :D 19:00:02 I didn't even know he posted the picture until you brought the topic up. :) 19:00:12 * kc5tja will have to link to it on the Wiki. :) 19:00:59 * kc5tja has been researching various framing methods for the peripheral interconnect bus today, when I came across COBS. It's a *sweet* system. 19:01:43 It uses $00 as the start-/end-of-frame byte. 19:02:25 $nn (where 1 <= n <= 254) says the next n-1 bytes are to be copied into the target buffer, and followed with a $00 19:02:56 $FF says to copy the next 254 bytes into the target buffer, but without the ending $00 byte. 19:03:13 Thus, it's possible to completely strip the transmitted data of all instances of $00, thus letting it be used as frame delimiters. 19:03:21 This has two particular applications: 19:03:57 1. For serial communications, it allows the use of totally dumb, extremely simple serial communications equipment. And as we all know, the fewer the transistors, the faster and cheaper things go. :) 19:05:03 2. For storing data in databases (e.g., Citadel BBSes stored its message data in a circular buffer file. Old messages were overwritten with new message data as needed. Message boundaries were marked with $FF, but to keep $FF unique, there was a restriction that no message data could ever ahve the high-bit set. COBS does away with that restriction). 19:09:53 kc5tja. Never use special characters. 19:10:15 It's the headache of every NLS system. 19:10:58 $FF is _alpha_. 19:11:06 ASau: UTF-8 requires the use of higher bytes. 19:11:23 UTF-8 is not practiced. 19:11:27 ASau: You apparently haven't a clue what Citadel is then. 19:11:28 $FF is alpha. 19:11:35 --- join: thin_ (~thin@csnet034.cariboo.bc.ca) joined #forth 19:11:36 ASau: It's practiced practically everywhere here. 19:12:05 * kc5tja really doesn't understand how you can say it isn't practiced. 19:12:13 I know you, americans, like your ASCII code. 19:12:29 UTF-8 is an international code. 19:12:34 _NO_. 19:12:51 UTF-8 is American and West European _ONLY_. 19:13:10 ASau: State your sources. 19:13:34 KOI-8 clearly states that $FF is hard sign. 19:13:50 Does KOI-8 permit 16-bit or 24-bit character encodings? 19:13:58 KOI-8 is the main standard. 19:14:02 Laughable. 19:14:03 At best. 19:14:20 I'm not saying KOI-8 is an insignificant encoding. 19:14:38 --- quit: thin (wells.freenode.net irc.freenode.net) 19:14:38 --- quit: warp0b00 (wells.freenode.net irc.freenode.net) 19:14:38 --- quit: kuvos (wells.freenode.net irc.freenode.net) 19:14:39 --- quit: OrngeTide (wells.freenode.net irc.freenode.net) 19:14:39 --- quit: chandler (wells.freenode.net irc.freenode.net) 19:15:02 --- join: thin (~thin@csnet034.cariboo.bc.ca) joined #forth 19:15:02 --- join: kuvos (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 19:15:02 --- join: OrngeTide (orange@rm-f.net) joined #forth 19:15:02 --- join: chandler (~chandler@chandler.registered) joined #forth 19:15:03 --- join: warp0b00 (~warpzero@209.180.166.194) joined #forth 19:15:06 But your accusation that UTF-8 is somehow not international, when it encodes huge sums of the CHINESE character set, RUSSIAN character set, and way, way, way more, just leads me to believe that you are utterly biased and utterly uneducated in this domain of knowledge. 19:15:16 Encoding name is meta-information. 19:15:17 --- quit: thin (Connection reset by peer) 19:15:40 KOI-8 is Eastern Slavic main standard. 19:15:49 So it is not Russian only. 19:16:02 Fine. 19:16:10 Like I said, I am not downgrading the significance of it. 19:16:22 But you seem to have this concept in your head that UTF-8 doesn't encompass it. 19:16:23 False. 19:16:35 Unicode was designed *expressly* with universality in mind. 19:16:42 You love your UTF-8 because you're sticked to your Latin-based alphabets. 19:16:44 And UTF-8 is a means of minimal encoding for Unicode. 19:16:45 nothing more. 19:17:04 Is that an insult? 19:17:16 Who is "you" in this context? 19:17:23 Try to work with double sized texts. 19:17:29 and who is "your", as they aren't necessarily the same person/party. 19:17:41 --- nick: thin_ -> thin 19:17:47 --- mode: ChanServ set +o thin 19:17:58 Look, I'm trying to be civilized about this, but you're really starting to make me very, very angry. 19:17:59 "You" means Americans and West Europeans. 19:18:35 Citadel BBS was invented in America, for Americans to use, back in the 70s/early 80s, when 7-bit communications links were the standard. 19:18:59 That format gave rise to a rather unique and enticing way to store messages for BBSes. 19:19:02 It's not 8-bit safe. 19:19:03 Well, you're not in 70s to make these mistakes. 19:19:15 COBS is a means of updating the concept to 8-bit-safeness. 19:19:39 If you had read a single word of what I was writing, you would have understood quite well what I was talking about. 19:19:53 And this whole argument would never have started. 19:19:57 But you're going to make special characters out of regular ones. 19:20:05 * kc5tja sighs 19:20:07 Look 19:20:11 I'm going to say this just once. 19:20:23 Why can't you use control characters? 19:20:24 It's a standard. 19:20:28 Maybe not the best. 19:20:31 But it IS a standard. 19:20:42 Well. 19:20:48 KOI-8 is standard. 19:20:53 And it's better. 19:20:53 MOTHER OF CHRIST!!!!! 19:20:55 JESUS~! 19:20:58 WHAT THE &*$#(#&$(&#@ ? 19:21:05 Why can't you understand?! 19:21:16 COBS IS 8-BIT CLEAN!!!!!!!!! 19:21:16 I understand you well. 19:21:18 USE WHAT YOU WANT! 19:21:46 Use control characters for control. 19:21:47 The whole point of COBS is to clearly delineate packets of data from each other. 19:21:51 IT DOES!!!!!!!!!!!!!!!!! 19:22:01 $00 is the only control character it needs. 19:22:08 it serves as a packet separator. 19:22:13 What the (#@*74 hell else do you need? 19:23:08 That's like asking, "Why doesn't Ethernet delineate its packets with control characters?" 19:23:12 * kc5tja sighs 19:31:00 * slava starts extensible parser in factor 19:31:14 user code can now provide custom parsing words, or even a custom read table for per-character syntax 19:31:20 -- to be used sparingly. 19:55:53 --- quit: cmeme (SendQ exceeded) 20:00:04 --- quit: warp0b00 (Client Quit) 20:00:11 --- join: warp0x00 (~warpzero@209.180.166.194) joined #forth 20:13:04 * Herkamire likes length counted data 20:13:36 (if it can't be fixed length) 20:14:58 that reminds me of PE 20:15:10 phys-ed? 20:15:11 Penis Enlargement. It's a hobby! 20:16:09 It's funny because I was reading up on it and this one website was discussing why guys do it, and one of the things it said was "It's a hobby for those with time on their hands".. made me ROFL 20:16:13 it's only a hobby if you're talking about the kind of Enlargement that goes away in 15 minutes when you're done 20:17:45 nah you can enlarge your penis naturally by pulling on it while its half erect, pushing the blood to the top.. but i'm extremely off topic now heh 20:18:32 that's ok! :P 20:19:39 sounds like milking 20:20:31 yeah i was hanging out on this channel that deals with picking up girls, methodology, etc.. understanding social dynamics between men & women, abolishing myths/perceptions generated by society that is detrimental to a guy getting laid, etc.. ended up learning a bit about PE but i'm too lazy to work at it, besides i'm happy enough with my size heh 20:21:19 heh :) sounds like fun :) 20:22:06 yeah i got laid 20:22:27 i know how to meet a girl and get same day lays :D 20:22:38 bonus :) 20:23:13 Herkamire: That's more or less how this system works, but it does so in a way that is recoverable from errors. Hence the reservation of $00 as a frame delimiter byte. 20:23:52 actually its quite simple, like you pay attention to which girls give you AI (approach invitation), SOI (signals of interest), you go talk to them etc, then (my method) venue change to starbucks, talk some more, find an excuse to get them to my place or theirs.. then kino (touch them) then make out.. easy as pie :D 20:23:59 3.142943! 20:24:28 :) 20:24:55 one of the main things is that you want to avoid being an AFC (average frustrated chump) 20:25:34 basically an AFC is a guy that puts the girl up on a pedestle, ends up with oneitis for a girl, supplicates to the girl, buys stuff for the girl for no reason 20:25:35 etc 20:25:37 kc5tja: cool. reserving a $00 worries me, as it would sometimes make me have to do encoding, but I haven't really thought about error-recovery... Which could make that the best solution 20:25:37 nasty stuff 20:25:54 never ever buy beer or flowers or anything for a girl that you haven't sexed 20:26:30 lots of acronyms too :) 20:26:49 yeah lots of language :D 20:26:54 it's a veritable field in its own right 20:26:59 sounds like quite a knowledge base 20:27:16 oh, :) I've always figured there was a lot to know 20:27:26 I certainly don't know how to do it 20:27:31 Herkamire: You have to do encoding *anyway*. 20:27:39 yeah its a website & newsgroup (2 of them, one is part of the website) and irc channel 20:27:53 The point is to unambiguously identify where one packet of data starts, and one packet of data ends. 20:27:57 kc5tja: what do you mean? do you consider having a length byte/word at the begining encoding? 20:28:22 In its most primitive sense, yes. 20:28:28 However, it's exceptionally prone to errors. 20:28:32 thin: cool. URLs please? 20:28:41 It's very likely that a packet can have its length misinterpreted due to communications noise or some such. 20:28:59 kc5tja: I see 20:29:04 This is why you need codes to unambiguously identify where a packet starts and stops. 20:29:47 so communications requires encoding 20:30:05 herkamire: #pua on freenode www.fastseduction.com best places to start are www.fastseduction.com/youarenew/ and the best no nonsense free "method" is http://gunwitch.fastseduction.com 20:30:08 This is particularly true in a circular storage file, where you don't know where one record starts and another ends, as old records (and their delimiters) can be arbitrarily overwritten. 20:30:44 kc5tja: oh definately in that situation 20:31:02 I thought the circular file was the waste bin under the desk ;) 20:32:07 thin: thanks :) it's on my reading list if I don't browse tonight. 20:33:06 herkamire: if you don't read any of it except gunwitch.fastseduction.com you'll be doing great. reading the other stuff only serves to help the GWM (gunwitch method) to be understood better & on a more fundamental level 20:33:18 I didn't really think of it as "encoding" when you have additional metadata (such as a length counter, and data type). but I suppose it is 20:34:19 Herkamire: Meta-data is data that doesn't directly contribute to the intelligence being communicated; hence, it's overhead. 20:34:20 heh :) I don't actually want to pick up anyone ATM (have a steady girlfriend for almost 2 years) 20:34:26 Introduction of overhead is a form of encoding. 20:34:36 but I'm quite interested in how girls work, social interactions etc. 20:34:58 And I'm very interested in schools of thought that are centered on, and tested against what works. 20:35:36 I agree that it is encoding. I just hadn't thought of it that way. 20:36:55 overhead? you make it sound like it's unnessesary. how do you get on without a length byte or some encoding that tells you where the end of the data is? 20:41:59 Overhead is, by definition, data which does not contribute to the intelligence being communicated. 20:42:37 Length bytes of packets, for example, are not passed on to applications using the data it refers to. Hence, it takes away from the channel's capacity to transmit data at the fullest possible speed, and therefore, is "overhead." 20:42:43 This is not to say that overhead is a bad thing. 20:42:56 FEC codes represent huge overheads. But sometimes they're necessary. 20:43:06 Likewise with checksums and network headers. 20:43:10 The trick is to minimize them. 20:43:42 ahh I understand 20:45:08 FEC codes? 20:45:18 Forward Error Correcting 20:46:07 It's what enables a receiver to not only detect, but to actually *correct*, a given number of errors when receiving a packet; this eliminates the need to waste bandwidth (usually greater than that consumed by the FEC codes, thus making them a net win) requesting retransmissions. 20:48:43 wow :) 20:48:54 I didn't realize FEC saved bandwidth. 20:49:01 Oh, heck yeah. 20:49:02 :) 20:49:04 I've read about freenet using this technique 20:49:28 Well, I question the viability of its use there. 20:49:37 I thought it was mostly for healing, so that if part of a file was lost, it could be recreated 20:49:40 IP packets either get delivered, or are dropped. 20:50:02 Herkamire: Same thing. Lost parts of a file are just errors. :) 20:50:09 right. 20:50:16 That's why they're used on CD-ROMs and harddrives. 20:50:35 it uses FEC to recreate lost parts of large files (which have parts stored on different hosts) 20:50:57 Ahh, OK, I see what you're saying. I thought it used it for transmission control. 20:55:51 no. it's so when you finally manage to download 90% of the sections of the file, you have it. otherwise the likelyhood of getting all the pieces of a large file would be virtually zero 20:56:14 * kc5tja nods 20:56:15 and when the client get's all 90% (or whatever %) it recreates the rest, and resubmits them to the network. 20:56:35 this allows the network to "heal". 20:57:03 Dang it, I want food, but I don't want to cook. 20:57:13 But I can't afford to eat out either, which means I have to cook. 20:57:24 * kc5tja will procrastinate on food for as long as his stomach will permit. 20:57:37 heh :) I do that 20:57:50 fortunately I like toast a lot :) 20:58:27 kc5tja, eat some cheese. 20:59:06 hehe 20:59:47 Quickie snack meals can be great... cheese, crackers, salami, and a sliced up apple. Yum! 21:00:10 Yeah, but I really haven't eaten anything pretty much all day. 21:05:18 --- join: Serg (~z@212.34.52.140) joined #forth 21:06:36 hi ! 21:06:49 kc5tja: RU is good market for kit comp's 21:06:59 serg: really? how come? 21:07:14 folks are still working w/ Spectrum (many homebuikt) and Amigas 21:07:42 new spec-clone, Sprinter, was recently released 21:08:12 thin: some love antiques, some - too poor to afford 'normal' comp 21:08:25 but clever enough to revive old dead speccy 21:08:41 cool 21:09:58 but for RU, it gotta be not only hobby item, but workhorse too 21:10:17 here some hackers try to implement TCP/IP on speccy ;))))) 21:10:57 modems already attached, FIDO-like network exists 21:11:26 so it gotta be capable of data xchange w/ PC 21:18:17 AMIGA!! 21:18:31 Sorry, just an instinctive reaction. I love that machine. :D 21:20:27 wow ! 21:20:45 i want AMIGA too, but have too little space at home ;( 21:31:43 Serg: Well, it's true that later models of the computer will increasingly become more Amiga-like in nature. 21:32:56 And yes, my computers will be just as good at working as it will be at playing. 21:33:10 That's why I'm investing, literally, so much time in getting the Peripheral Interconnect Bus right. 21:33:56 cool 21:47:49 have you considered forthchips? 21:48:04 that company that sells the old forthchips.. for java machines 21:49:51 They're way too expensive. 21:50:02 I can undercut them significantly by programming a MISC in an FPGA. 21:50:07 (which is precisely what I intend on doing) 21:50:09 But not right now. 21:50:12 I need cheap solutions. 21:50:23 I can't invest too much too fast, or I'll start losing people. 21:52:52 how much are the chips you are going with? 21:53:06 less than $10 bucks ? 21:59:47 A good sized FPGA can be had for $13.50 or so. 22:00:02 I can pack a 32-bit MISC with 5- or 6-bit opcodes on a chip. 22:00:09 If I'm lucky, I can even do asynchronous logic with them. 22:00:13 Which would be WAY cool. 22:00:44 I estimate up to 100MIPS with asynchronous logic, assuming 10ns pin to pin propegation delays in the best case scenarios for everything. 22:00:47 But we'll see. 22:00:58 I'm not going to make outlandish predictions until I have better numbers. 22:01:45 eh? are you going with an FPGA? 22:02:10 When it comes time to use them, of course. 22:02:11 :) 22:02:15 heh, RU's Sprinter has FPGA CPU what can be _changed_ by reflashing BIOS ;)) 22:02:55 I probably won't bother going that sophisticated. 22:03:02 you can _choose_ what CPU to use - madly overclocked Z80 or modern one, or maybe design your own in same FPGA 22:03:15 the problem is, it's dangerous. 22:03:23 kc5tja: the patriot chip is approximately 100mips and sells individually for $15. altho i don't know if it has the features you want 22:03:28 * arke is back (gone 07:18:26) 22:03:29 Misprogram the chip, and you no longer have a computer, but rather an expensive paperweight. 22:03:39 dangerous ??? 22:03:40 hi 22:03:43 use dual bios ! 22:03:52 Serg: It can cause electrical damage to the chip too. 22:04:02 or untoucheable blocks in single one 22:04:10 If bad programming causes a data bus bit to be driven high while a ROM or RAM cell drives it low, a dead-short will occur. 22:04:23 Serg: FPGAs don't work that way. 22:04:56 thin: The Patriot chip is, as far as I know, synchronous, and the instruction set is much more complicated than the later generation MISCs. 22:05:16 dog knows, but that computer is adv'ed to be "new CPU by reflash" 22:05:25 thin: Moreover, there is little hope of it gaining in performance over time. Meanwhile, my design is free to ride on whatever the latest FPGA technology exists, and can take advantage of their features. 22:05:26 ugh 22:05:36 i feel sorry fgor anyone who ever has to replace a tire at night :( 22:05:36 cool 22:06:03 arke: depends on the weather 22:06:12 thin: Synchronous, I expect 25 to 33MHz clock speeds, and thus, 25 to 33 MIPS. But asynchronous, I expect to get 3x that rate at least. 22:06:42 thin: heh 22:06:49 thin: wasn't bad here, its a pain though 22:06:57 kc5tja: hmm, this asynchronous stuff is newish isn't it? i.e. regular PCs don't have that yet? 22:07:06 arke: shouldn't take more than a half an hour.. 22:07:12 thin: especially since I live in an area where there is an abundance of large spiders that love to bite you and inject their venom into ya 22:07:25 btw, new 'stone' at reflash allows to incorporate microprograms in applications, leaving core the same 22:07:34 thin: took me 45 minutes, but only because it took me awhile to figure out how to get out the damn spare tire lol 22:07:45 This is weird. mplayer just stopped playing video. It has audio, but no video at all. WTF is going on? 22:07:46 and also, because it was on a hill, and I had to kill spiders 22:08:03 my car's spare tire is mounted _underneath_ 22:08:31 see: matrix CPU for 3D game, hardware neuro net - for AI task, all in same FPGA 22:10:00 arke: car or pick up truck? 22:10:13 car 22:10:20 little tiny fucked up Colt Vista 22:11:17 Restarting X11; maybe, if I'm lucky, I can get my video working again. 22:11:24 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 22:12:19 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 22:12:26 --- mode: ChanServ set +o kc5tja 22:12:27 kc5tja: Next time, screen irssi :) 22:12:37 No need to. 22:12:42 ... 22:12:46 much better to screen 22:12:47 You can put up with the occasional quick disconnect/reconnect. 22:12:47 trust me 22:12:51 ack 22:12:52 :) 22:12:57 It's not like it's an everyday occurance. 22:13:10 And this is the first time I've had this happen since I've owned the computer. 22:13:14 I really don't understand what happened. 22:13:31 heh 22:14:00 I was watching the Bela Fleck video, and *pop!* the video goes black. 22:14:16 Even if I quit mplayer and restarted it, it wouldn't play the video -- only the audio. 22:14:21 No errors in the diagnostic messages either. 22:14:25 Bloody weird. 22:15:50 --- join: theFox (poohka@user-2ivflpq.dialup.mindspring.com) joined #forth 22:15:55 w00t! 22:15:57 hey wow 22:16:02 Hello theFox. 22:16:11 hi 22:16:12 the one day i'm on #forth thefox comes ;) 22:16:33 thefox: is chuck moore alive? 22:16:38 and well 22:16:47 alive and well 22:17:04 good good.. is he still coding lots? or has he slowed down on that front? 22:17:11 I love how everybody is like, "Hey, is CM alive?" but never consider acknowledging thefox himself. :D 22:17:22 heh 22:17:30 a new release of colorforth is in the works 22:17:34 Hi theFox :) 22:17:36 theFox: are you coding these days? 22:17:41 theFox: cool :) 22:18:55 I haven't been doing much coding myself. I have been doing more mundane things like responding to emails, some reorganization and some testing. 22:19:25 * kc5tja has continued to work at In-N-Out, but am trying to launch a homebrew computer kit. 22:19:37 theFox: And, I hope you never ever ever have to change a tire in the dark =D 22:19:47 The testing involves programming, but nothing much. Diagnositic programs can be challenging at times but so far not too much. 22:20:32 what exactly are you testing? 22:21:20 change a tire in the dark? That doesn't sound too hard, if I had a spare, a jack, and a hammer I could easily do it blindfolded. 22:21:44 I have been doing chip testing in OKAD II. 22:22:18 HAH! We just got done talking about how I intend future kit computers to be based on a MISC architecture programmed in an FPGA. 22:22:28 I write ROM code, I compile a copy of the chip with the code compiled to ROM and I run simulations. 22:22:50 theFox: well, the actual changing the tire part wasn't too bad, but its the getting out the spare tire mounted UNDERNEATH the vehicle, surrounded by lots of large poisonous spiders :) 22:23:42 Right now, the Kestrel is centered on a 65816 microprocessor (a 16-bit 6502 family CPU). 22:24:04 kc5tja: I know MISC stands for minimal, but what is the difference (if any) between MISC and RISC or OISC? 22:24:25 MISC -- zero operands. None. 0. Zip. 22:24:40 stack CPU ;) 22:24:51 Well MISC is really quite different than RISC because there are normally no operands to decode. 22:24:52 A MISC chip has absolutely *the* minimum needed to function and compute useful solutions to problems. 22:24:59 kc5tja: how would you do LIT then, without the ugly TTA hack? :) 22:25:20 arke: LIT is just a load from (PC), with a post-increment on the PC register. 22:25:23 The operands are bound to certain instructions, but there are no general purpose register banks that require selection. 22:25:25 The LIT itself has no operands. 22:25:25 kc5tja: and while we're on that, would a TTA count as a MISC? :) 22:25:45 That changes a lot of things in the order of the steps that each instruction takes. 22:26:27 RISC generally require deep pipelines, and memory caches to achieve high performance and MISC is pretty much the antithesis of this. 22:26:29 stack machine, as Serg said :) 22:26:29 arke: In a certain sense, yes. But in another, no. The problem with a TTA is that a single instruction consists of a source and a destination register. If both are 8-bits, then it can be considered as having (up to) 64K instructions, and therefore, is far from minimal. 22:26:58 theFox: i was considering initiating a group buy of forthchips such that the money is stored in a trust company until there is enough by a certain date to order several production runs (to debug).. if there isn't enough money, then it gets sent back to each person 22:27:01 but it doesn't :) 22:27:28 there's only one 22:28:38 thin: this has been proposed by other people, but is more complicated than one might think. There is the issue of how one deals with people and companies who have already invested or bought rights. 22:28:40 arke: A TTA is best described as an OISC. 22:29:29 theFox: companies that have bought rights? what if the forthchip was the 25X chip? 22:29:30 theFox: I assume development on the 50X is continuing? Man, that'd be a sweet chip to have... 22:29:44 arke: zero operand does not mean that LIT (#) (load immediate) does not take a number out of memory following the instruction and put it on the stack. 22:29:45 thin: The 50X is being built for Enumera. 22:29:48 ooh 50X? 22:29:51 that's news to me 22:29:54 what's Enumera? 22:30:22 A company that doesn't have a whole lot of funding, judging by the appearance of their website. 22:30:38 LOL 22:30:40 It means that there are no register field operands in the instructions that have to be decoded sepearately from the instructions. 22:30:47 http://www.enumera.com/ 22:30:54 a sweet name, and a not so great website, bah 22:30:59 Instructions all have fixed data paths, that is one architectural feature. 22:32:13 Enumera has kind of come and gone. There is another option being pursued by the creator of Enumera relating to digital music. And there are other potential clients for more involved applications. 22:33:20 * arke is thinking of just how short you can cut a TTA 22:33:22 UGH! 22:33:49 same old same old bullshit flying around.. forthchips MAY be finally produced, but hopes dashed yet again and again anda again 22:34:07 only a true super human can get the forthchip produced :P 22:34:12 thin: Now you know why I am choosing to invest in CPLD and FPGA technology, and why I want my computers to be built using parts from my vertical monopoly: independence from outside, commercial influences. 22:34:14 PC, ADD, ROL, AND, XOR I'm thinking.... 22:34:45 The ..x chips will match a customer's app as much as possible. 4x or 24x or larger, much of that has to do with I/O pins as always. 22:35:16 Packaging will likely not be much bigger than the die in production devices. 22:35:52 theFox: Thin still has a point; customers for these things are (a) too far and few between, and (b) more often than not fly-by-night operations. 22:36:13 Both of these are counter to the development of the Forth processor in the commercial sectors. 22:36:45 arke: in MISC each instruction has fixed data paths, all CPU instructions execute in every clock cycle and when the decoder figures out which instruction was selected one set of outputs are enabled. 22:37:17 * arke is away: brb, gotta pretend to sleep until dad sleeps =D 22:37:42 What? No IRCing from bed? :) 22:38:07 there are some commercial customers, plus forthers. what is needed is a group buy, getting all these people together, getting them to send in purchase orders (along with money) to a trustworthy legal company.. 22:38:11 i seriously think it would work 22:38:12 We have been dealing with a number of well known, large, consumer goods manufacturers. No deal is complete however at this time. 22:38:21 all it requires is a blog/forum site dealing with the group buy 22:38:33 information on the chip & its capabilities 22:38:57 and extensive word-of-mouth advertising thru CLF etc 22:39:02 it's simple 22:39:09 but i'm lazy about implementing the damn thing 22:39:21 theFox: what's your MBTI? 22:39:22 CLF is a dead-end for this kind of thing, I think. They're very hostile to the MISC idea, as I recall. 22:39:31 clf ;-) 22:39:36 not to the forthchip idea though? 22:41:17 I haven't been on CLF for so long that I don't recall. 22:41:18 clf is a most hostile place to the idea of Forth chips. The experts there are promoting software for non-Forth chips, it is pretty much as simple as that. 22:41:27 theFox: just curious if you are INTP, lots of people in #forth happen to be INTP 22:41:48 INTP ? 22:42:13 All I know is this: self-developed CPU + self-developed I/O chips + self-developed motherboard == extremely low cost kit computers with extremely high (relative to the price and volume metrics) performance. 22:42:29 And a total lack of dependency on outside vendors, except for the FPGA chips themselves. 22:43:11 theFox: personality type. Introverted Intuitive Thinking Perceiving. find out your type http://www.humanmetrics.com/cgi-win/JTypes2.asp 22:43:13 It's how Commodore dominated the home computer market, and it's how I'm banking to be differentiated from my competitors in the hobby/homebrew market. 22:43:26 yeah 22:43:31 it's a good idea 22:43:37 i'm eager for your success 22:44:03 if you get it off the ground, don't ignore .ru and south africa etc 22:44:17 My family has web store fronts that need to be filled. 22:44:21 north america = crappy market for anything 22:44:24 I'll sell my product through their business. 22:44:27 cool 22:44:31 They take credit card orders and such. 22:44:51 The trick is getting the thing shipped overseas; I have no knowledge of how to do that or how much it'd cost. 22:45:50 --- part: warp0x00 left #forth 22:48:50 --- join: Sonarman_ (1000@adsl-64-169-92-45.dsl.snfc21.pacbell.net) joined #forth 22:49:51 * arke is back (gone 00:12:34) 22:49:53 I think he sleeps now... 22:50:58 * kc5tja is afk temporarily -- cooking some dinner. 22:51:12 :) 22:51:47 --- quit: Sonarman (Nick collision from services.) 22:51:55 * arke likes the idea of a Forth chip 22:52:17 but, there's also other things =D 22:52:27 * arke is interested in TTA's and MIPS :) 22:52:31 MIPS is great 22:53:00 Oh, I love RISC processors!! MIPS is my favorite! 22:53:22 But if I were to build my own CPU, MISC is the way to go, because I can implement the full core, and some other goodies, all on one chip. 22:53:32 Example: I intend on creating an asynchronous CPU in an FPGA. 22:54:01 Async logic takes up to 50% to 100% mroe gates than a comparable synchronous design; so the smaller the 'core logic,' the easier it'd be to fit such a design onto an FPGA. 22:54:35 And asynchronous logic has HUGE advantages in RF emissions (specifically, the lack thereof, and therefore, its friendliness to using such a computer while operating on ham radio bands!). 22:55:27 thats what TTA is for =D 22:56:17 --- quit: Sonarman_ ("leaving") 22:56:53 I profile as an ENTJ type. 22:57:40 I profile as a ISTP 22:58:06 I think I will go off to do something else. Thanks for the info. 22:58:19 --- quit: theFox () 22:58:19 Introverted Sensing Thinking Perceiving 22:58:27 what does that mean? =D 22:58:31 bye theFox 22:59:23 Like their fellow SPs, ISTPs are fundamentally Performers (note the capital 'P' :-)), but as Ts their areas of interest tend to be mechanical rather than artistic like those of ISFPs, and unlike most ESPs they do not present an impression of constant activity. On the contrary, they lie dormant, saving their energy until a project or an adventure worthy of their time comes along--and then they launch themselves at it. The apparently fre 22:59:24 nzied state that inevitably ensues is actually much more controlled than it appears--ISTPs always seem to know what they're doing when it comes to physical or mechanical obstacles--but the whole chain of events presents a confusing and paradoxical picture to an outsider. 22:59:29 omg, that is SOOOO true! 23:03:07 --- quit: networm_ (Read error: 60 (Operation timed out)) 23:12:00 --- quit: thin (Read error: 110 (Connection timed out)) 23:13:19 Heh. 23:13:23 That's definitely not me. 23:13:31 * kc5tja is INTP all the way -- text-book. 23:14:00 me too 23:14:14 --- join: networm_ (~networm@L0625P10.dipool.highway.telekom.at) joined #forth 23:14:23 whats INTP? 23:14:33 I'm most of the way through a lengthy and detailed description of INTP and it's me exactly 23:14:52 arke: personality type 23:15:19 arke: http://thin.bespin.org/intp.html 23:15:35 < INTP 23:16:44 havent taken the test in a long time, but i believe that is me 23:17:05 i meant what sort of type is INTP :) 23:17:32 yeah, textbook 23:17:36 read the page 23:17:37 gehe 23:20:46 back 23:59:59 --- log: ended forth/04.03.28