00:00:00 --- log: started forth/03.07.29 00:00:08 I better go catch some rest ... 00:00:09 'morning. 00:00:10 --- quit: gilbertdeb ("ChatZilla 0.8.31 [Mozilla rv:1.4/20030624]") 00:00:59 Ahhh, I know those days. Good thing my English requirements are satisfied for school. >:) 00:01:06 Anyway, it's midnight here, so I should get some rest myself. 00:01:15 night all. 00:01:22 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:01:51 --- quit: Serg_Penguin () 00:52:15 --- quit: onetom (Remote closed the connection) 01:04:44 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 01:07:33 --- join: hefner (hefner@pool-151-196-242-12.balt.east.verizon.net) joined #forth 01:19:49 --- join: njd (melons@njd.paradise.net.nz) joined #forth 02:14:37 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 02:14:55 --- quit: Serg_Penguin (Client Quit) 03:58:12 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 04:02:00 --- quit: Serg_Penguin (Read error: 54 (Connection reset by peer)) 04:40:23 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 04:48:24 --- quit: Serg_Penguin () 04:53:13 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 05:40:28 --- join: rk (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 06:12:04 --- join: rO|__ (~rO|@pD95459D2.dip.t-dialin.net) joined #forth 06:12:20 --- join: w1k1_ (~w1k1@pD95459D2.dip.t-dialin.net) joined #forth 06:20:12 --- quit: rO|_ (Read error: 60 (Operation timed out)) 06:30:15 --- quit: w1k1 (Read error: 110 (Connection timed out)) 06:30:17 --- nick: w1k1_ -> w1k1 06:31:05 i really missing Mur now ;) 06:38:14 --- quit: Serg_Penguin () 07:36:57 --- join: snowrichard (~richard@c66.190.102.131.ts46v-01.mrshll.tx.charter.com) joined #forth 07:37:45 what's up 07:40:45 --- join: rO|_ (~rO|@pD9E599A6.dip.t-dialin.net) joined #forth 07:41:19 --- join: w1k1_ (~w1k1@pD9E599A6.dip.t-dialin.net) joined #forth 07:43:20 morning 07:45:46 Hi snowrichard 07:48:41 --- quit: rO|__ (Read error: 60 (Operation timed out)) 07:51:46 hi I was in another channell too 07:52:32 not much computer time this week away from house at night. 07:52:50 sister had car wreck I've been taking her to work 07:53:03 she was not in car 07:53:10 but car is total 07:54:59 --- quit: rk (Read error: 104 (Connection reset by peer)) 07:55:13 lucky she found out insurance willl cover yesterday 07:57:32 Great :) 07:58:00 * Robert is mostly reading, and preparing for the trip to Germany and Austria. 08:00:32 --- quit: w1k1 (Read error: 110 (Connection timed out)) 08:00:34 --- nick: w1k1_ -> w1k1 08:06:07 have good trip 08:06:58 Thanks :) 08:10:21 I am missing a kitten 08:10:33 we had 4 now there are three and I can't find it 08:11:19 --- join: gilbertdeb (~knoppix@67.97.122.107) joined #forth 08:11:37 knoppix? downloaded that last night :) 08:11:44 it is awesome isn't it? 08:11:55 well I have not burned the CD yet 08:12:09 you should. you should also download plan9. 08:12:12 :) 08:12:21 plan9? 08:12:26 run on intel? 08:12:28 I use knoppix at school so that I don't have to use windows. 08:12:32 yes it does. 08:13:05 http://www.cs.bell-labs.com/plan9dist/ 08:13:20 do well to read the papers on it. the iso.bz2 is only 65M 08:13:54 --- join: rk (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 08:13:56 was the knoppix iso a bz2? I am having trouble finding it on my drive 08:14:13 no it wasn't. 08:14:20 but the plan9 iso is. 08:14:46 the next thing they should do ofcourse is to distribute knoppix with a forth! 08:15:10 oh I almost forgot I was in #forth :) 08:15:38 hehe. 08:15:44 I'll port my Michael to it. 08:15:52 whats your michael? 08:16:08 http://opensourceincome.com/files/Michael_Manual.html I think 08:16:48 cool! 08:17:42 really minimal at this point of course 08:18:10 but the multiple level of include files helps me organize stuff better 08:19:04 come to think of it I need to install it on here again. 08:19:13 well it works on knoppix. 08:19:27 I just bunzip2'ed it and compiled. 08:19:58 yeah the word "port" was a little strong :) 08:20:20 there are a few exampe programs on the web site 08:20:47 if you try it out give me suggestions for what to do next with it rsnow1@charter.net 08:22:27 Hi gilbert. 08:23:25 hi robert 08:23:34 snowrichard: why does it say token .s is undefined? 08:23:43 it neither likes .S nor .s 08:26:07 it doesn't translate case 08:26:32 but there should have been a .S if I had it in the web page, I have not compile it yet 08:27:25 never mind. 08:27:29 it's started working. 08:27:41 maybe a control char? 08:27:54 it prefers .S 08:27:55 didn't filter those 08:27:57 my misteak. 08:28:18 ls 08:28:27 ? 08:33:32 sorry ww 08:33:54 it works here ran the #cat.f and "test.txt" EDIT 08:34:22 what works here? 08:34:32 .S seems to be working here as well. 08:34:34 the michael program I didn't have it installd 08:34:39 :O 08:34:45 tsk tsk tsk! 08:35:22 I was dicking with a POS Lexmark printer I gave it to my sister because the damn closed source binary only driver would not work 08:35:42 it can't be cracked? 08:35:58 ie the binary? 08:36:21 it installed, printed alignment page, but when try to print test page said msgcat package missing 08:36:40 never could get anything in queue to print 08:36:59 works on win98 though 08:37:31 very nice color the test page is peacock 08:37:48 get a laser printer sometime. 08:37:55 you'll end up saving a bundle. 08:37:59 yeah right when I get rich 08:38:27 I have entered the publishers clearing house thing about 50 times :) 08:38:59 get it used. 08:39:09 yeah ebay has some stuff once in a while 08:39:25 or computer geeks 08:39:31 an apple laserwriter from an old aunt might be very cheap 08:39:55 laserwriter we used with macs on my old job was good 08:40:12 but apple talk interface 08:41:21 my cat keeps hiding her kittens I am down to 2 now 08:41:37 hiding from what? 08:41:45 the other cats most likely 08:41:52 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 08:43:28 "filename" EDIT pops up a vi window with the file in it 08:45:36 it should pop up an ed line instead ;) 08:45:49 edlin? bites ... 08:45:57 ed, not edlin. 08:46:07 ok I was thinking old DOS editor 08:46:14 ed of the '?' prompt fame. 08:46:27 all errors in ed are presented as a '?' :) 08:46:35 never used it much. Demanded Motif from digital when I had to 08:47:11 use command line editor on VAX 08:48:21 EVE/TPU is nice thoughj 08:49:20 vax vms? 08:49:20 you've used that? 08:49:37 Your michael pops up a vi window when you type EDIT, my michael reveals an ed prompt instead ;) 08:49:46 most frequently used editing functions are on keypad -- Find Select Insert Here Prev Next Remove Next 08:49:49 I'd really like to play with vms sometime. 08:50:01 I do know that TECO exists for vms still. 08:50:09 I have 2 vaxes but I don't have CDROM drive for them 08:50:18 VMS is $30 for hobby use 08:50:26 hmmm. on any machine? 08:50:31 VAX 08:50:40 but how does one get a VAX? 08:50:45 Ebay 08:50:49 cheap? 08:50:50 or mailing lists 08:51:01 $20 - $70 dollars 08:51:05 hmmm. 08:51:11 what models are worth buying? 08:51:11 but they are like real slow 08:51:57 to quote a VERY famous man: "where's the fire?" 08:52:01 Vaxstation 3100 will work with Linux-vax or netbsd, the 4000 VLC needs a boot host but it also only runs Netbsd of course either would run VMS but the VLC need external disk drive 08:52:16 I don't wanna run yet another *nix. 08:52:19 if you want to install VMS 08:52:27 I'm a little tired of those ... 08:52:30 need CDROM rrd-42 08:52:35 or similar 08:52:50 I've tried solaris, irix, debian, knoppix, and freebsd (the best of the best being freebsd). 08:53:03 ah and Mac osX. 08:53:06 I have been using netbsd on the vax and one PII 08:53:34 netbsd isn't available for my r10k indigo2 so I still use irix on there. 08:53:44 POS though. 08:53:57 PII with NetBSD is faster than Celeron 500 with win98 :) 08:55:01 do check out plan9 sometime. 08:55:14 oh I need to see if my knoppix dl finished 08:55:32 2 more hours 08:55:49 but at least my CD burner is fast :) 08:56:24 got url for plan 9 so I can read about it? 08:57:18 sure ... 08:57:24 I may buy another sparcstation or 2 they are cheap as well and run a little faster 08:57:27 http://www.cs.bell-labs.com/plan9dist/ 08:57:36 read the intro papers on it first. 08:57:51 from bell labs? open source? 08:57:57 completely. 08:58:01 ... or so they say. 08:58:06 way cool 08:58:56 what other vax models might I consider looking into? 08:59:01 ie machines which WILL run vms? 09:07:06 --- join: wossname (wossname@HSE-QuebecCity-ppp82084.qc.sympatico.ca) joined #forth 09:08:16 --- quit: tathi ("leaving") 09:10:01 vms will run on all the vaxes 09:10:09 that is what digital design vms for 09:10:35 it is linux-vax that is picky 09:11:33 ebay had a 7000 for sale a while back, several thousand dollars, expensive power, heavy need truck to move 09:11:51 but it looked way cool 09:12:11 but I would like one of the new SGI onyx 09:12:24 I am drreaming :) 09:13:21 sgi onyx? 09:13:24 actually at this point would like a cell phone with web capability :) 09:13:31 sgi has cool new stuff on web site 09:13:46 cool new == $$$ 09:13:47 but I imagine it very expensi\ve 09:14:07 they talking enterprise level servers 09:14:23 marketing speak. 09:14:24 data mining 09:14:39 yeah try to sell more boxen 09:14:41 data mining? don't bury the data to begin with! 09:14:59 where did I put that post it note :) 09:17:08 I just realized I need to change this little cat.f example to take parameter from stack for file to display and it would be more useful 09:18:28 and not make it run auto 09:19:35 well I am going to fiddle with the program for a while talk later please send me email if you can with any suggestions problems with the little language 09:20:21 --- quit: snowrichard (Remote closed the connection) 09:30:10 --- join: Stepan (~stepan@likes.smoking.and.watching.spacenight.dk) joined #forth 09:30:13 hi there 09:30:39 Hi :) 09:30:42 Long time no see. 09:31:02 indeed. I've spent some time coding on "BeginAgain", the openbios forth engine 09:31:09 but i am confused 09:31:34 what's the difference between compile, and , ? 09:31:46 is : compile, , ; compile-only ? 09:33:41 I think compile, is used with ' word 09:33:47 So that a call is generated. 09:35:16 I'd check the manual of your Forth though, I'm usually wrong :) 09:35:45 my forth is just being written ;) 09:36:18 we got pretty far by now, but all these words for compiling confuse me 09:36:26 [compile] compile compile, , 09:36:58 Oh. 09:37:13 Make your own words, which you think are intuitive. 09:38:18 i'm trying to implement open firmware, ieee 1275-1994 09:38:31 Ah... then look at that manual :) 09:38:31 so i am kind of bound to implement the ones described 09:38:40 but the descriptions are crap 8) 09:41:51 How about the ANS document? 09:46:03 have not looked to be honest.. is it online as pdf or so? 09:48:43 I think it's even available in HTML format. 09:48:51 Check forth.org for a link, I think they have one. 10:09:30 --- join: snowrichard (~richard@c66.190.102.131.ts46v-01.mrshll.tx.charter.com) joined #forth 10:11:37 --- join: mur (murr@baana-62-165-188-154.phnet.fi) joined #forth 10:11:51 --- quit: snowrichard (Remote closed the connection) 10:13:11 --- join: snowrichard (~richard@c66.190.102.131.ts46v-01.mrshll.tx.charter.com) joined #forth 10:13:20 sorry about that 10:13:27 didn't realize it would mess up 10:13:33 hello lumi :) 10:13:52 won't paste again .... 10:14:07 --- join: I440r (~I440r@dialup-67.29.205.114.Dial1.Cincinnati1.Level3.net) joined #forth 10:14:16 the guitar man! 10:14:20 hi :) 10:14:21 lumi is snow :) 10:14:27 terve kaikki :) 10:14:41 wow - lots of people in dont know :) 10:14:50 sorry my speaking in tongues doesn't work today :) 10:14:51 or are you all BOTS!!! 10:15:13 how are you doing mr isforth? 10:15:37 not too bad, njot been working on isforth tho, i just developed an 8051 forth for the Cygnal line micro-controlers 10:16:00 --- join: a7r (~a7r@206.72.82.135) joined #forth 10:16:01 im almost ready to release that too!! - but that might be shareware or something 10:16:08 cool microcontrollers would be neat to play with (less compleex systems I suppose) 10:16:18 like 6502 I used to have 10:17:05 yea. but the 6502 is a 1mhz processor 10:17:12 these can run up to 25 mhz!!! 10:17:12 my knoppix just finished I will get offline to burn CD bbl 10:17:19 :) 10:17:24 6502 was in 1977 too :) 10:17:33 yea. and is STILL way cool 10:17:38 yoh 10:17:42 8051 is an 80's thing too 10:17:52 I440r: which chip? 10:18:03 400 for the computer with 8k memory now you could get playstation with linux for that 10:18:29 a7r ive develope it with the c8051f015 10:18:30 well actually it was closer to 600 10:18:39 after we paid to build power supply 10:18:41 but it can easily be ported to other cygnal 8051's 10:18:44 I440r: werd. 10:18:47 or even to other non cygnal 8051's 10:19:06 Hi :) 10:19:18 going off to burn my CD now 10:19:20 whats weird ? 10:19:22 for knoppix 10:19:24 cul8er snow 10:19:40 --- part: snowrichard left #forth 10:47:37 --- quit: I440r () 11:15:54 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 11:15:54 --- mode: ChanServ set +o kc5tja 11:16:07 re 11:18:19 Hi 11:20:31 I received my first spam on my corporate account. 11:21:32 ooh 11:21:49 is it xxx, fit miracle or scam email? 11:22:27 Targeted business promotion. 11:22:35 And it is actually half-way realistic in its claims too. 11:22:47 Instead of the top 100,000 search engines, they claim only the top 20. 11:22:49 so it is advertise to spam more? 11:22:56 No. 11:23:00 ah 11:23:08 so it is search engine for 11:23:11 It is a targeted business promotion. 11:23:11 shops or such? 11:23:21 No. 11:23:25 I just said what it was. 11:23:25 :) 11:23:43 --- quit: gilbertdeb (niven.freenode.net irc.freenode.net) 11:23:43 --- quit: Robert (niven.freenode.net irc.freenode.net) 11:23:45 They will review my site for the right keywords and submit it to the top 20 search engine sites. 11:23:56 --- join: gilbertdeb (~knoppix@67.97.122.107) joined #forth 11:23:56 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 11:27:26 Wow. Quite a few people have been hitting my site. 11:27:37 What is it about? 11:27:45 It's my business site. 11:29:08 Though, I might be putting some select amount of personal material on it. 11:30:24 Oh, OK. 11:42:12 --- quit: rk (Read error: 104 (Connection reset by peer)) 11:45:13 --- join: rk (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 11:45:44 --- quit: TreyB (niven.freenode.net irc.freenode.net) 12:30:46 Well, I started a google adwords campaign. We'll see how much it won't work. At least the price is right -- I pay only when it does work. 12:38:41 --- quit: njd (Read error: 54 (Connection reset by peer)) 13:04:59 has anyone here read this article: An 80386 Assembler in Forth by 13:04:59 John Dilworth? 13:05:09 No. 13:05:12 its in the october '88 issue of DDJ 13:06:02 what about this one? http://www.art.net/~hopkins/Don/lang/forth.html 13:06:41 I wish I had some $$$ to subscribe to DDJ :( 13:07:14 the basic subscription does not offer access to that article. 13:07:52 terve 13:08:40 terve mur. 13:19:08 --- quit: rk (Read error: 110 (Connection timed out)) 13:23:31 --- quit: wossname ("keep on hacking in the free world") 13:41:14 --- quit: a7r (Read error: 110 (Connection timed out)) 14:01:43 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 14:09:15 --- join: suprdupr (CrowKilr@HSE-Windsor-ppp251652.sympatico.ca) joined #forth 14:10:54 since you people got more forth experience than me, is it useful to have a more than 3 items stack? 14:11:00 or said another way 14:11:22 would yopu sacrifice datastack items for ease of use and performance, by keeping the stack in registers? 14:11:43 ease of use from a compiling standpoint, that is 14:12:18 Very. 14:12:33 (to the first question) 14:12:35 isn't that more "ease of implementation?" 14:13:51 yes 14:13:53 ;pp 14:14:17 well.. with 3 items stack you cant really do much 14:14:44 Actually, you can do anything a normal CPU could do. BUT, it'd take longer, because you'll be constantly swapping stuff to and from memory variables. 14:14:59 thats almost like you implement a stackfree forth engine on stackmachines like the C64 or x86 8) 14:15:08 i would use EAX, EDX, ECX as stack, eax being the top of stack 14:15:16 */ is transparent to the stack 14:15:26 and ecx act as a counter in the stack 14:16:05 Stepan: I'm sorry? 14:16:15 stackfree=only TOS? 14:16:28 I might steer clear of EDX, since things like MUL tend to wipe it out. Unless you want to take advantage of that. 14:16:30 you need at least two items for ! and 3 for */ 14:16:48 hefner that was the idea 14:16:59 kc5tja: i see x86 as a stack machine with 3 TOS buffers 14:17:05 I don't. 14:17:07 since it has no real registers 14:17:17 no freely usable ones 14:17:30 EBX is one 14:17:32 no special use 14:17:37 hehe 14:17:37 It has plenty of real registers, and the 8 that are programmer visible to you in 32-bit protected mode are quite general purpose. 14:18:02 kc5tja: then why can i only count with (e)cx? 14:18:04 i would use EAX EDX ECX to keep EDI for A register 14:18:23 * suprdupr will try to posta keybaord handler on the flatasm board 14:18:30 Stepan: I count with other registers all the time. 14:18:36 If you're referring to LOOP instruction, well, don't use it. 14:18:42 It's slower than explicit instructions anyway. 14:21:53 yeah flag test loops (alu then jcc) are faster 14:27:20 is not inc faster than neg? 14:33:49 inc increments by one; neg takes a two's compliment. I'm not sure how they're related or why you're comparing them. 14:42:06 "not inc" 14:42:08 ;pp 14:42:28 neg = not then inc 14:42:55 dec? 14:44:01 or, not 14:51:09 A system used in some computers to represent negative numbers in binary. Each bit of the number is inverted (zeros are replaced with ones and vice versa), as for ones complement, but then one (000...0001) is added (ignoring overflow). 14:53:37 I'll take "Binary Number Representations" for $200, Alex. 14:54:43 ? 14:54:48 ? 14:55:12 kk jeopardy didnt understood 14:55:20 hmmm another question 14:55:27 let say i have a signed value in AL 14:55:34 8 bit signed value in EAX 14:56:02 if i use mov EAX, [EAX*4+Offset], will this work? 14:56:33 do i need to signextent? 15:00:02 i now think that it might be appropriate 15:00:04 ill try it 15:03:18 does that work 15:03:19 test al, not(0E0h) 15:03:19 jz E0Handler 15:03:33 to replace compare? 15:04:01 or i can get false positives? 15:04:17 simetimes i ask questions that i shouldnt ask 15:04:56 If you have an 8-bit signed value in AL, you don't necessarily have one in EAX. 15:05:08 But if you have an 8-bit signed value in EAX, then you don't need to sign-extend. 15:05:13 Note the semantic difference. 15:05:18 kk 15:05:23 and for the test not() 15:05:26 ? 15:05:27 If you're unsure, you should movsx eax,al 15:05:45 actually its a mosx from my Charmap table 15:05:50 and i want to keep the sign 15:06:00 cause i want to build my function pointers 15:06:02 ??? 15:06:07 for action keys on top of charmap 15:06:13 movsx is an instruction that does sign extension to 32-bits. 15:06:38 movsx EAX, byte [EAX+Charmap] 15:06:52 You misunderstand. 15:06:55 eax contains before that instruction the keyboard scancode screened for breakcodes 15:07:10 OK, but this isn't what you asked. 15:07:13 so it should be be positive 15:07:16 k well sorry 15:07:19 ;p 15:07:21 Also, no the NOT test will not work. 15:07:27 AND al,0xE0 15:07:30 CMP al,0xE0 15:07:36 jz E0Handler. 15:07:51 Otherwise, all you're testing for is the lower 5 bits are clear. 15:08:19 kk 15:08:22 See, this is why I don't like optimizing before getting something to work. 15:08:25 thanks 15:08:43 Premature optimization is the root of all evil, and I firmly believe it's why we have to put up with so much damned complexity in today's software. 15:08:50 lol its just an idea i wrote in code form to not forget it, but wasnt sure about its usefulness 15:09:05 Make it obvious FIRST, then make it fast LATER, and only if you need to. 15:09:20 I know, but it bears repeating. 15:09:28 tssss its a shame, really, look at the size of the current pieces of software 15:09:34 nobody cares once its working 15:09:35 Anyway, I have to get going -- need to pay rent. 15:09:37 bbiab 15:09:42 even if its taking 100x more ressources 15:11:02 the beauty of software these days is that people insist on writing in barbaric languages like C and C++ where they should have enough control to keep things relatively fast and small, but still manage to write gargantuan, horrifically slow software 15:11:25 presumably all they get for their trouble are a lot of pointer chasing bugs 15:16:43 --- join: rk (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 15:37:27 im thinking about implementing short jumps in to my ; optimization 16:05:19 * XeF4 drops in for a picosecond or so 16:07:14 Hehe, hi. 16:08:33 hefner: you don't really have enough control to keep things fast and small because the language can't be extended 16:09:40 maybe not "small" by forth standards. 16:10:42 small by what standards then? 16:11:37 heh, by C standards? I dunno, I imagine the lack of extensibility would cause the source code to grow more than the compiled size, at least until programmer laziness takes effect. 16:11:50 menuetos is a dream come true 16:11:54 readable assembly code 16:11:59 for system interface 16:12:06 my hd code is almost the same as them 16:12:10 monolithic blobbery (re: menuet) 16:12:23 too many cooks etc. 16:12:23 I can't say I really grok the forth approach just yet. 16:12:31 maybe but its readable source 16:12:34 CM shouldn't have made it that easy to write forths ;) 16:13:18 gilbertdeb: ? why? cause people work on their own forth system all the time and produce no code? 16:13:30 :) 16:13:50 gilbertdeb: colorcode is easier to read and write than ascii source, especiall ascii forth source 16:13:52 something tells me there are more forths than there is actual forth code! 16:14:04 thats true, but look at colorforth's code 16:14:16 its real code and it works 16:14:29 I'll take a look at it. 16:14:40 I'm a little afraid of it to be honest. 16:16:32 CF made user-editing of bytecode acceptable and for that I can't thank Moore enough 16:16:41 s/acceptable/socially acceptable/ 16:17:41 tokenization is the way to keep fat at bay ;p 16:18:19 Huh? 16:18:36 XeF4: is CF _that_ innovative? 16:18:47 or are there other things like it? 16:18:56 aha and colorforth are what you should learn about 16:19:10 they are the best systems, at least in the innovation department 16:19:33 aha? I don't think it gets as much air time. 16:19:49 overall language innovation or forth innovation? 16:19:56 gilbertdeb: instead of putting information on how to process a word in spaces between words, i can now put a whole word and the action on it in a single byte =) 16:20:10 words inside space of source code 16:20:15 supr: have you seen any evidence that aha really exists because I haven't. 16:20:35 the idea is there and flowcharts help understand, biut those are very f21 specific 16:20:37 hehehe, rumors of its existence have been greatly exaggerated? ;) 16:20:39 j/k. 16:21:02 jeff seems to be dead, at least retired from the community 16:21:28 supr: really? 16:21:35 * XeF4 jumps about for joy 16:21:39 Heh. 16:21:54 ??? 16:27:40 nope theres a message from him in c.l.f 16:28:02 I like him, his documentation effort is immense 16:30:06 his documentation effort sure is immense, but his effort to implement the things he documents is another matter 16:32:30 XeF4, Robert sleep time ;) 16:32:30 no, I must code all night after I get off irc 16:32:30 Night mur 16:32:30 --- quit: kc5tja ("[x]chat") 16:32:49 hehe 16:33:02 and all the following day 16:33:10 Have fun 16:33:13 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 16:33:14 --- mode: ChanServ set +o kc5tja 16:33:16 and then I must finish. oh fsckzölkajsf assembly is in 8 days 16:33:35 Wow. I typed "back" in x-chat, and the window disappears. 16:33:38 why does it always go this way 16:35:48 * kc5tja has quit IRC ("[x]chat") 16:35:57 back 16:35:59 * gilbertdeb is away: I'm busy 16:36:03 hmmm. 16:36:11 mur: btw, are you coming to assembly after all? 16:36:26 it seems /back and /away are synonyms. 16:36:33 mur: Be that as it may, I didn't type /quit. 16:37:04 gtg 16:37:11 --- quit: gilbertdeb ("Client Exiting") 16:37:57 XeF4 nah :P 16:38:11 be in helsinki that time though 16:38:19 moving later 18.8. -> to hki perm 16:39:26 --- quit: mur ("MURR! save the http://rainforest.care2.com/") 16:52:57 --- quit: XeF4 ("pois") 17:14:01 --- join: I440r (~I440r@dialup-67.29.214.15.Dial1.Cincinnati1.Level3.net) joined #forth 17:14:56 hi! 17:16:49 hi 17:17:36 re 17:18:06 hi 17:19:47 trying to add labels to my 8051 assembler 17:19:51 these are a bitch 17:20:06 * kc5tja nods 17:20:11 they gotta be immediate and state smart too 17:20:16 or else im not thinking right 17:25:46 w00t -- just after paying some rent, I have a contract! 17:25:56 MAYBE I can make enough to live here for another month. 17:25:59 (if I'm lucky!) 17:26:45 Heh, nice :) 17:26:50 cool 17:26:53 can i have one too ? 17:27:35 :) 17:28:32 it takes 2 minutes for this target board to compile its assembler extension :/ 17:30:44 * kc5tja needs to find a used Pentium-class machine in the 233MHz speed range. 17:30:52 with PCI slots and preferably an AGP slot. 17:35:47 fucking windows pisses me of BIG TIME 17:35:52 fucking pile of shit 17:38:47 Not just any pile of shit though. 17:38:54 It's a thick, gooey, steaming pile of shit. 17:40:39 --- quit: I440r (Connection reset by peer) 17:42:03 Well, I certainly thought I'd get a more productive response than that, but I guess there's no contesting it. :) 17:46:07 --- join: debiano (~larecrazy@200.60.246.29) joined #forth 17:46:15 --- part: debiano left #forth 17:47:50 --- part: hefner left #forth 17:52:25 kc: whats the contract about? dont tell us its top secret ;pp 17:53:43 I need to put a used PC together so that he can run PC/GEOS (which won't run on any new computer systems because they're too fast), network it to another computer, grab critical business-related files off the other computer, and integrate it into his LAN. 17:53:58 If I do that well enough for his liking, then I get a web development contract out of him. >:) 18:01:10 great! 18:01:33 i'll try my hd red code, brb 18:01:35 --- quit: suprdupr ("brb") 18:16:58 Registered for college. 18:17:16 Only taking one class (the class I just so happen to have the book for already). :) 18:55:26 --- join: suprdupr (CrowKilr@HSE-Windsor-ppp251048.sympatico.ca) joined #forth 18:55:38 wb 18:55:41 damn i follow the ata spec and it doesnt work 18:55:52 ill put screen debug output 18:55:57 and ill go retest it 18:57:24 hmmm 18:59:59 --- join: TheBlueWizard (TheBlueWiz@207.111.96.79) joined #forth 18:59:59 --- mode: ChanServ set +o TheBlueWizard 19:00:04 hiya all 19:00:14 i look at the busy bit for 0, the drq bit for 1, anyway my code is posted at board.assembler.net 19:00:19 hi TBW 19:00:24 hiya suprdupr 19:01:00 TBW, do you know anything practical about HD PIO transfers,im following the ata 6 spec and it doesnt work 19:03:09 I'm no HW guy...so, sorry! someday when I have time, I plan to muck around with HW stuff...until then...alas 19:05:43 re TheBlueWizard 19:07:16 thanks, im back for testing with the new help of some "mov [0b8000h], word 0F3Xh" instructions ;p 19:07:19 --- quit: suprdupr ("brb") 19:07:33 Hehe :D 19:07:52 hiya kc5tja 19:07:52 * kc5tja simply isn't looking forward to the time when he needs to hack the IDE device directly. 19:08:44 * TheBlueWizard finishes processing emails and stuff, and has to go now 19:08:48 bye all! 19:08:53 ok 19:08:58 bye kc5tja 19:09:02 --- part: TheBlueWizard left #forth 19:12:53 --- join: suprdupr (CrowKilr@HSE-Windsor-ppp250399.sympatico.ca) joined #forth 19:13:28 it went stuck on the busy bit 19:14:51 ahh 19:19:25 http://www.reed-electronics.com/ednmag/archives/1996/050996/10di4.htm 19:19:27 nice tut 19:19:37 what puzzle me is when he select the drive 19:19:53 You then select the drive with the command o 1f6,1. If you have two IDE drives and want to select the second one, the command is o 1f6,11. 19:20:12 its suppose to be the 4th bit that select the device 19:20:28 * kc5tja nods 19:20:39 if i write one to 1f6 19:21:06 I select head1 of drive zero, in chs mode 19:21:25 (from ata, the 6th byte is named LBA, god knows why) 19:21:29 I thought you were using LBA to access the drive though. 19:21:29 byte*bit 19:21:52 thats why I use E0 in 1F6 19:22:11 Shouldn't it be 0xE1 though? 19:22:14 What does bit 0 do? 19:22:15 its written in ata: obs LBA obs DEV LBAbitsleft 19:22:26 first 3 bits select the head 19:22:37 in my head, head 0 exists ;p 19:22:54 obs? What is obs? 19:22:58 What is DEV? 19:23:15 0 = master, 1 = slave 19:23:20 obs = obsolete 19:23:44 Obsolete bits should be kept 0, I think, no? 19:24:00 in fasm they use E0 19:24:03 0x5x, where x is the remaining LBA bits? 19:24:13 yep 19:24:23 i could try this 19:24:54 this is code from fasm 19:24:58 for the 1f6 reg 19:24:59 mov al,[esp+11] 19:24:59 and al,1+2+4+8 19:24:59 add al,byte [hdid] 19:24:59 add al,128+64+32 19:24:59 out dx,al 19:25:00 You shouldn't have to worry about heads when in LBA mode -- the controller does the CHS conversion for you. 19:25:15 uhhh 19:25:29 hd id is zero in kernel 19:25:39 zeroed* 19:25:41 Kernel of what? 19:25:46 menuetos 19:25:49 from fasm lol 19:25:53 fasm is just an assembler, it's not an OS. 19:25:54 i meant from menuetos 19:25:55 OK 19:25:57 lolol 19:26:53 they effectively use E 19:26:58 for lba mode 19:27:36 * kc5tja does not like that code. 19:27:52 me neither 19:27:59 menuetOS code is ugly 19:28:03 thats why it didnt worked 19:28:16 i didnt looked at v2os, maybe it would be better 19:28:24 Doubtful. 19:28:38 Unless code cleanup is in the changelog. 19:29:19 And of course, 1F6 is a write-only register. 19:31:53 no, its r/w 19:32:35 really it pisses me off lol 19:33:05 HD_Idle: 19:33:05 mov word [0B8000h], 0F32h 19:33:05 mov DX, 1F7h 19:33:05 in al,dx ;Read Status register 19:33:05 test al,80h ; Busy bit 19:33:06 jnz HD_Idle ; must be zero 19:33:08 ret 19:33:44 as soon as busy=0 and drq=1, i can read 512 bytes 19:34:15 but busy never get cleared, i read one sector so its not a loop problem yet 19:34:23 but i think the loop is cleaner than before 19:35:23 i do a test because i didnt write a busy word like chuck did, since its only good to check for reading 19:36:45 doups wrong 19:36:53 its also used to read in pio mode 19:38:16 anyway smaller inlined ;p 19:41:20 it works under vmware 19:41:37 my bios is playing tricks on me 19:42:08 Are you sure you're writing the command to the IDE controller correctly? 19:44:47 HD_Read: 19:44:47 mov word [0B8000h], 0F31h 19:44:47 mov bl, al ;BL act as sector counter 19:44:47 mov dx,1F2h ;Sector count register 19:44:47 out dx,al 19:44:48 mov eax,0E0000002h ;LBA address, master device 19:44:50 inc edx 19:44:52 out dx,eax 19:44:54 add EDX, 4h ;Command register 19:44:56 mov al,20h ;"Read and Retry" command 19:44:58 out dx,al ; 19:45:08 GetSector: 19:45:08 call HD_Idle 19:45:08 mov word [0B8000h], 0F33h 19:45:08 test al, 8 ; Wait until sector read 19:45:08 jz GetSector ; is completed 19:45:10 mov word [0B8000h], 0F34h 19:45:12 sub EDX,7h ;1F0h=data port 19:45:14 mov ecx,256 ;512 bytes 19:45:15 out dx,eax may be the problem. 19:45:16 rep insw 19:45:18 mov word [0B8000h], 0F35h 19:45:20 dec bl ;Respect 0 = 256 sectors 19:45:22 jnz GetSector 19:45:22 You may have to break that up into individual bytes. 19:45:24 ret 19:46:04 that's the only difference left from the menuetos driver 19:46:14 and chuck write bytes individually 19:46:29 so I guess I will do it also ;p 19:46:39 * kc5tja nods -- try it, I think that might make a difference. 19:47:10 The IDE interface is ultimately only 8-bits wide (despite having a 16-bit data bus). A full 32-bit I/O transfer like that *really* depends on proper chipset behavior, and that's certainly not guaranteed. 19:47:52 What you might want to do is build an IDE "command packet," then use a loop to "blit" the packet to the IDE registers, byte by byte. 19:52:41 "shr EAX, 8 inc EDX out dx, al" repeated 3 times 19:54:06 * suprdupr got a SiS based laptop 19:54:30 sis graphics, bridges, i/o is via, from linux 19:54:44 a version of linux misdetected my sis network card 19:54:53 its a rlt8139 clone 19:55:09 but it used a bastard driver from hell wich i dont remember 19:55:13 which* 20:00:11 I was going to say, I think SiS made an 8139-clone at one point. 20:01:55 MenuetOs got a driver for realtek boards =) 20:02:23 im more than happy to have found this piece of code, i may be able to finish my memoire in advance 20:03:08 I have SO many ideas i want to suggest students next year for their memoires 20:03:45 memoires? 20:04:10 look at this: 20:04:25 thesis like work 20:04:45 supposed to summarize your by-school learning experience 20:04:50 on any given subject 20:04:54 http://www.fieldlines.com/story/2003/7/26/16927/0401 20:04:58 look at this generator 20:05:07 wellt he link is the first one on top of the board 20:05:47 now put, like i stated earlier, a big flywheel on the shaft between the motor and generator 20:06:04 voila, free energy, or at least a generator able to regauge itself =) 20:06:14 Not even that. 20:06:20 You are neglecting air friction. 20:07:13 you are neglecting the fact that when the mass is spun fast enough, air friction doesn't count and by keeping the momentum using a switched mechanism, one can attain that kind of performance 20:07:29 bedini has done it, i do not 20:07:33 i may be wrong 20:07:38 The faster you move a mass through air, the more friction applies. 20:07:54 You are not only wrong, you are so provably wrong that two hundred years of documentation exists to prove it. 20:08:13 I won't even begin to get into the other system losses. 20:08:23 Here's a hint though: Free Energy -- ISN'T. 20:08:38 kk self recharging electric generator 20:08:45 Not even. 20:08:50 i wont use the word free along with energy anymore 20:09:06 Fancy wording doesn't hide the free-energy intent. 20:09:43 kk then ill just talk about efficiency in the upper 90% percents ;o) 20:09:57 Another falsity. 20:09:57 i hope i can get numbers before 20:10:23 kk then ill shut up and go test my ide code ;o) 20:10:28 --- quit: suprdupr ("brb") 20:10:28 There is only one way you can exceed the Carnot 50% efficiency limitation: compound thermodynamic cycles. 20:11:22 Even then, due to the inability to get precisely to 50%, it's a certain guarantee that 100% can not be achieved, although we have attained as high as 95% using combined-cycle gas turbine and steam turbine engines. 20:15:08 --- join: suprdupr (CrowKilr@Ottawa-HSE-ppp3653678.sympatico.ca) joined #forth 20:15:15 now it just reboots 20:15:32 i noticed something strange 20:16:55 whenever i boot from USB-FDD 20:17:14 my hd light come on before the booting from .... message appears 20:17:28 i knew my bios was playing tricks on me ;p 20:17:40 --- quit: skylan (Killed (NickServ (ghosted: skylan_!sjh@nwc57-70.nwconx.net))) 20:18:39 --- quit: suprdupr (Client Quit) 20:19:10 --- join: skylan (sjh@nwc57-70.nwconx.net) joined #forth 20:21:15 --- join: suprdupr (CrowKilr@Ottawa-HSE-ppp3653814.sympatico.ca) joined #forth 20:21:35 wb 20:21:41 well, 20:21:43 IT WORKS 20:21:44 =) 20:21:53 Told ya it was the 32-bit/8-bit I/O debacle. :) 20:21:54 just my jump at the end that made the computer crash 20:27:47 there's 255 bytes left in the image 20:28:13 still room for features! 20:28:20 maybe a prompt =) 20:28:26 a whole forth lol 20:29:21 --- join: hefner (hefner@pool-151-196-242-12.balt.east.verizon.net) joined #forth 20:31:00 Is this 255 bytes in the boot sector? 20:34:11 yeah there's still 255 bytes left in the bootsector image of my ide bootloader 20:34:29 pmode, no int bootloader that is ;p 20:34:59 * kc5tja nods 20:38:09 now i got an ide for my keyboard driver... 20:38:24 I will try to merge the concept with my tokenized forth project 20:38:56 An IDE? As in an integrated development environment? 20:39:25 hehehe you found a great word play ;p 20:39:33 it would still retain its name 20:39:37 lol 20:40:00 ide in a bootloader project lol 20:40:13 great title for a memoire! 20:40:33 imagien the excitement of the teacher that will correct this 20:40:55 memoires are sent all over the world 20:41:03 you dont know in advance who will read your work 20:41:42 ide in a bootloader.... that could change the world ;p 20:41:54 give a new meaning to bootsector virus ;o) 20:42:16 ha that is TOO great, i got to do this 20:43:10 i doubt it would enter in a single bootsector, but at least if the core could....sources would start at sector bondaries 20:43:11 Heh 20:43:37 Well, if you use sectors 0 and 1, you get 1KB of space to play with, and that's equivalent to one Forth block. 20:43:46 =) 20:43:59 in fact most computers dont use the 62 first sectors of their drives 20:44:08 PC computers 20:44:21 those who does use it for copy protection mechanism 20:44:31 those who does use it use it for copy protection mechanism 20:44:36 --- quit: ChanServ (niven.freenode.net irc.freenode.net) 20:44:37 those who does use it use it as a copy protection mechanism 20:44:38 lol 20:44:51 I finally stated it right ;p 20:45:13 one big step would be the interrupts 20:45:18 Those who do use it, use it for copy protection mechanisms. 20:45:27 >:) 20:45:30 lol 20:45:32 thanks 20:45:34 --- join: ChanServ (ChanServ@services.) joined #forth 20:45:34 --- mode: niven.freenode.net set +o ChanServ 20:45:48 --- quit: ChanServ (Shutting Down) 20:46:05 --- join: ChanServ (ChanServ@services.) joined #forth 20:46:05 --- mode: niven.freenode.net set +o ChanServ 20:46:53 I definitly have poor english skills, except for reading comprehension 20:47:16 in fact the menuet droiver is for rtl8029 boards 20:48:26 ;; While this implementation handles only PCI bus RTL8029 ;; 20:48:26 ;; hardware, it can be easily adapted to other NE2000 clone ;; 20:48:26 ;; products. I just dont have any to try! ;; 20:48:45 RTL8139, then, is a type of NE2000 interface? 20:48:51 I thought it was a completely different interface. 20:49:52 n its different 20:50:13 Just making sure on that. 20:50:15 but ne2000 clones are common and cheaps 20:50:25 But slow. 20:50:30 (no DMA) 20:50:35 yeah its pio 20:50:36 ; Function 20:50:36 ; eth_pio_read 20:50:36 ; 20:50:36 ; Description 20:50:36 ; Read a frame from the ethernet card via Programmed I/O 20:53:28 theres a lot of useful info in the PCI32.inc file also 20:53:35 exactly waht I wanted 20:58:23 one enhancement would be to build at runtime a gdt limited to available RAM 20:58:46 but it would only be useful with ints and faults handlers 21:01:35 Build a GDT? 21:01:51 lgdt 21:01:56 Remember that the GDT itself is limited to only 64KB of memory -- 8192 entries, the first of which is assumed NULL. 21:02:15 i mean 21:02:39 a gdt enforcing two descriptors for code and data, but limited to physical ram instead of 4GB 21:07:31 Ahh 21:07:33 Gotcha. 21:09:03 now next big thing: short jumps in ;, if possible 21:16:22 * kc5tja is always amazed when he sees the Contiki operating system. 21:16:46 It's an Internet-enabled (with support for a specific type of Ethernet card) operating system for the Commodore 64. :) 21:26:00 i was thinking of it!! 21:26:12 a guy asked how to implement multitasking 21:26:26 and i thought answering with contiki url 21:26:36 Contiki's 21:28:51 i have 32kb of space available, minus the bootsector to play freely with on my hd 21:35:00 --- quit: suprdupr (niven.freenode.net irc.freenode.net) 21:35:01 --- quit: Robert (niven.freenode.net irc.freenode.net) 21:35:01 --- quit: rk (niven.freenode.net irc.freenode.net) 21:35:02 --- quit: TreyB (niven.freenode.net irc.freenode.net) 21:35:02 --- quit: w1k1 (niven.freenode.net irc.freenode.net) 21:35:02 --- quit: rO|_ (niven.freenode.net irc.freenode.net) 21:35:02 --- quit: GnuVince (niven.freenode.net irc.freenode.net) 21:36:05 --- join: suprdupr (CrowKilr@Ottawa-HSE-ppp3653814.sympatico.ca) joined #forth 21:36:05 --- join: rk (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 21:36:05 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 21:36:05 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 21:36:05 --- join: w1k1 (~w1k1@pD9E599A6.dip.t-dialin.net) joined #forth 21:36:05 --- join: rO|_ (~rO|@pD9E599A6.dip.t-dialin.net) joined #forth 21:36:05 --- join: GnuVince (~vince@modemcable158.188-200-24.mtl.mc.videotron.ca) joined #forth 21:36:22 --- quit: suprdupr (niven.freenode.net irc.freenode.net) 21:36:22 --- quit: Robert (niven.freenode.net irc.freenode.net) 21:36:49 --- join: suprdupr (CrowKilr@Ottawa-HSE-ppp3653814.sympatico.ca) joined #forth 21:36:49 --- join: Robert (~snofs@h126n2fls31o965.telia.com) joined #forth 21:40:39 Yep. 21:40:47 Just got done playing with the demo server via VNC. 21:40:50 Neat system. 21:40:58 VNC is a bit slow -- they could optimize the display a bit better. 21:41:04 But it's very responsive. 21:41:17 The multitasking it uses is very simple -- even simpler than most Forth multitasking schemes. 21:41:28 pause word? 21:41:29 I brought it up in the ColorForth mailing list once, and it's absolutely trivial. 21:41:31 Nope. 21:41:32 No need. 21:42:01 Programs, when loaded, execute a special initialization function which registers callback functions as event handlers to various things. 21:42:04 Then the function exits. 21:42:13 That's it. 21:42:38 jump table 21:42:41 When an event occurs that the program is interested in, the driver for said hardware or software event calls upon (or, at least, schedules a call for) the appropriate event handler. 21:42:46 Not exactly. 21:42:51 There is still an event queue. 21:43:13 but instead of every program having their own event queue, **ONLY** the kernel has an event queue, and **ONLY** the kernel dispatches events to various programs. 21:43:36 It is so utterly deceptively simple that it defies explanation. 21:43:42 * kc5tja isn't sure he's explaining it clearly at all. 21:44:43 the kernel has a fifo for the drivers to fill with a certain kernel call and the kernel just execute each one sequentially, emptying the fifo as he goes 21:44:49 is that it? 21:45:17 Yep. 21:45:33 That's it. 21:45:37 i thought of this once 21:45:41 but never tried it 21:45:43 Everyone has, I think. 21:45:51 * kc5tja did try it with an experimental OS called MiniOS once. 21:45:55 Wrote it in C, under DOS. 21:45:59 Worked very, very well. 21:46:21 But, it requires a very, very different mindset for programming. 21:46:47 For example, multitasking is explicit -- you are not only expected to be aware that other programs may be running, but also you're required to be cordial about it. 21:46:57 No more assuming you can hog the machine, and letting the kernel deal with it. 21:47:08 (which you're not supposed to do ANYWAY, as per preemptive kernel design guidelines) 21:47:52 E.g., in Unix, you're expected to use select(), poll(), or some other kernel function which calls those when dealing with I/O or IPC, because it's known to improve multitasking performance substantially. 21:48:29 Only in Contiki or my Forth environment (yes, my Forth environment will be structured in an event-driven manner, at least eventually), there is absolutely *zero* need for select(). 21:49:41 This is also how the original GEOS operating system was structured for the Commodore 64. 21:50:20 so the kernel got a event function accessible by other programs to enqueue an event 21:50:35 Yes 21:50:44 then he just unqueue from the fifo and use the jump table 21:50:45 Interprocess communications are implemented as processes exchanging events. 21:50:55 modified by each program's entry function? 21:51:03 Can you be more specific? 21:51:08 like in contiki? 21:51:23 I don't know specific details of how contiki works, only general design overview. 21:51:26 contiki uses events I think 21:51:29 Yes 21:51:52 In my system, an event is just a scheduled call back into some program. 21:51:59 In C, I'd describe an event like this: 21:52:01 struct Event 21:52:01 { 21:52:05 Node linkage; 21:52:13 void (*callback)( void ); 21:52:18 void *arbitraryData; 21:52:20 }; 21:52:25 (or something similar) 21:52:53 --- join: gilbertdeb (~gilbertde@24.53.192.88) joined #forth 21:52:53 When an event arrives in the queue, it is dequeued in FIFO manner, and its callback called with a pointer to its arbitrary data. 21:53:02 Note that the application never actually sees the Event structure. 21:53:22 Note also that, in my system, the callback is a real, honest to goodness function pointer. 21:53:50 I think I would probably change that to use a jump table instead of actual pointers, for safety reasons. But for now, I have no explicit need for it. 21:53:58 so the program only knows about an enqueueevent function? 21:54:03 * kc5tja nods 21:54:50 i dont really understand how it can be useful in light of the sequential destructive dequeuing.... 21:54:59 Timer services are implemented by having the timer device driver enqueue an event at the appropriate time. 21:55:16 I don't understand how you can't understand how the system works. 21:55:19 ha ok 21:55:19 It's so damn simple. :) 21:55:35 And what about destructive dequeueing? 21:55:44 If I didn't destructively dequeue, things would run in an endless loop. 21:55:49 Not at all very useful. 21:55:58 so let say i can tell the timer to enqueue event x 1 time every second? 21:56:04 Nope. 21:56:17 You tell the timer, "Alarm me one second from now." 21:56:24 When it does, you tell it again. 21:56:27 And so on. 21:56:58 k, so there would be an alarmin1second event/word? 21:57:24 If you decide to write one for your application, yes. 21:57:29 It absolutely won't exist in the kernel. 21:57:51 An alarm word will exist, but not hardwired for any particular timeout. 21:58:22 in the timer or in the program? 21:58:29 Be specific. 21:58:38 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 21:58:43 ok the program send alarmin1second in queue 21:58:51 hi 21:58:54 is it how it works? 21:59:10 suprdupr: Yes, but there is no alarmin1second word to do this with in the kernel. This is a function of your application. 21:59:23 And, actually, no, it's NOT at ALL how it works. 21:59:37 The application calls the timer interface, "Please alarm me in one second." 21:59:48 The timer driver records the request, not the event queue. 22:00:14 Whenever a timer interrupt occurs, it checks the current time, to see if anyone needs alarming. 22:00:29 If one does, it removes its record, and then submits the callback to the kernel's queue. 22:00:45 When that callback reaches the head of the queue, the application's handler code is executed. 22:00:56 (which quite likely will start the cycle anew) 22:01:02 (especially if it's a clock program) 22:01:26 ok! 22:01:48 but its not meant at all for a clock 22:01:56 at least a multitasked clock 22:01:58 ;p 22:02:16 My explanation of how the timer works is simplified just to get you to understand the basic event management. 22:02:35 THe reality is, the algorithm for my clock handler permits multitasking clocks very effectively, requiring only ONE hardware clock to do it with too. 22:02:47 but the callback will lose time on the fifo queue 22:02:49 (and with a very high degree of precision) 22:02:55 * kc5tja shrugs -- so? 22:03:04 You lose precision with ANY kind of multitasking. 22:03:13 there can be 1 or 5 events inbetween 22:03:20 Yes, that's quite true. 22:03:24 I fail to see your point. 22:03:45 when you will resend your event alarm me in one second 22:03:49 then you fall behind 22:04:18 Again, you're taking my description of the clock verbatim. 22:04:22 Don't. 22:04:34 I just said, I simplified the operation of the clock to make clear how the events are handled. 22:04:47 The clock itself is much more sophisticated, and is aware of "absolute time," not just relative time. 22:04:57 you mean the alarm word is truly alarm on seconds bondaries 22:05:01 Hence, it can compensate for variances. 22:05:06 --- quit: gilbertdeb ("ChatZilla 0.8.31 [Mozilla rv:1.4/20030624]") 22:05:08 * kc5tja sighs 22:05:08 No. 22:05:22 The timer code I have written is good into the microsecond range. 22:05:47 But the algorithm is not trivial, and I will not attempt to explain it here. 22:05:56 what if there was 5 2 seconds events before your callback entered the queue 22:06:00 If you're getting confused over this, you will be confused over how the timer's algorithm works. 22:06:02 :) 22:06:17 What if? 22:06:25 better to use "alarm me each second" word 22:06:29 No. 22:06:33 Because that doesn't solve a THING. 22:06:50 yeah, you dont lose time, only the display is delayed variably 22:06:57 Not true. 22:07:20 If there are 5 2 second events in the queue, 10 1-second alarms will queue up in the mean time, and NOT be processed until the END of those 5 events. 22:07:30 So you gain nothing. 22:07:46 First of all, 2-second events won't happen. 22:08:04 The applications in this kind of system are written with the full realization of real-time issues. 22:08:26 Second, this type of real-time failure will occur in all forms of cooperative multitasking environments. 22:08:30 ALL of them. 22:08:40 yeah but time after the update's "10 seconds jump", the time will still be ok 22:08:48 The only thing that can mitigate it is the introduction of event priorities, where some events take priority over others. 22:09:14 And what if it's not a clock? 22:09:30 What if, instead, it's an audio ripper program? Or something else that is dependent on time? 22:09:39 Like an animation player? 22:09:40 a pulse generator? sustaining life? then you're screwed lol 22:09:51 So again, you gain nothing. 22:09:55 Simplicity!!!! 22:10:02 Keep the system SIMPLE, and it will work much better. 22:10:14 Again, 2-second events just won't happen in this system. 22:10:18 Not without the programmer knowing about it. 22:11:18 * rk needs sleeeeeeep 22:12:13 * rk leaves 22:12:15 night! 22:12:25 bye *yawn* 22:13:12 8_hours me sleep 22:13:18 --- quit: rk ("Client Exiting") 22:14:02 * kc5tja never thought he'd ever see the day when he'd defend cooperative multitasking. 22:15:52 * Serg_Penguin cumpleetly missed the debate 22:16:15 i had enough of "fake" m-task in Win98 22:17:55 I was explaining how the multitasking in Contiki worked, trying to use my own multitasking engine for an experimental OS I wrote as a more concrete example. 22:18:20 It's cooperative multitasked, but not at all in the way most people usually think of multitasking. 22:19:01 hmm... for me, writing OS is black magik 22:19:22 i dream of, but don't dare ;) 22:20:52 Lots of details are involved, but if you can keep them straight, it's not hard. 22:21:02 In fact, it's painfully obvious. 22:21:20 And if you hate Windows now, just you wait until you write your own multitasking OS to see just how *BAD* Windows is. 22:21:41 Even Linux is horrifyingly complicated compared to some of the kernels I've written. 22:21:52 * Serg_Penguin does not grok Pentium PMODE 22:22:01 look at my code 22:22:02 Granted, my kernels are all single address space, but I've seen multi-address space kernels that were unfathomably simpler than Linux. 22:22:15 Protected mode versus real-mode isn't the issue. 22:22:24 serg_penguin: i gota pmode bootloader on board.flatssembler.net 22:22:25 Another myth promulgated by the OS supremacy. 22:22:53 All the OS vendors go, "We need! We need! We need!" And the reality is, they don't. 22:23:09 Anyway, protected mode is one of those "We need!" things that the OS vendors claimed they wanted. 22:23:20 But it turns out, now, that they don't use it!!!! 22:23:37 hmm.. i want something like MEGA DOS 22:23:40 By that I mean, they only use paging -- and the features of paging simply do NOT require the full set of features granted to them by protected mode. 22:23:48 Serg_Penguin: Protected mode is the only way to get it. 22:24:22 But here's the deal: shove the CPU into protected mode, turn off paging, and use 4GB code and data segments, overlapping, and you have your mega-DOS run-time environment. It's just a matter of writing device drivers and kernel at that point. 22:24:35 The code to set up that kind of run-time environment is very simple, although again, lots of little "gotcha!" details. 22:24:52 Protected mode is one of those things that is set-it-and-forget-it. 22:25:12 * suprdupr agrees 22:25:18 mega dos w/ symple syscalls borrowed from POSIX ;) 22:25:32 not fu.. int21 in MS-DOS 22:26:07 Sorry, but there isn't a whole lot of difference. 22:26:25 You're quite likely going to end up using INT to invoke system calls. 22:26:29 really, amiga had one address space and was more stable than Win98 22:26:35 Yes. 22:26:55 yes, INT, but in less chaotic way 22:27:07 Sorry, but POSIX is extremely chaotic. :) 22:27:14 The only thing rational about it is the file interface. :) 22:27:19 (and I'm not referring to ioctl() either) 22:28:05 Is there a freely available listing of the POSIX kernel calls? If such a thing can be said to even exist? 22:28:13 (Since POSIX is just a paper specification, not an implementation specification) 22:28:45 Oh, and POSIX signals are an abomination from hell. 22:29:02 * kc5tja hates them with such conviction that I detest the thought of putting them into a kernel. 22:29:08 Oh, the horrors they bring. 22:29:46 * Serg_Penguin has fixed idea of writing yet another UNIX in Forth ;) 22:29:55 but not enough skill ;( 22:30:22 Unix requires multiple address spaces to implement properly -- that's really the only tricky part of the system. 22:30:34 Once you get address space management done and out of the way, the rest becomes comparatively simple. 22:30:50 * suprdupr has now 111h bytes to play with in his IDE-in-a-bootsector image =) 22:30:51 Look at all the "major upgrades" to Linux over the years -- they've all centered around how Linux manages memory. 22:32:10 Actually, if you implement a UNIX, will it be multitasking like other Unix clones? 22:32:26 If not, I'm sure it can be simplified a great deal. 22:32:33 No need for multiple address spaces then 22:32:50 im going for sleep, goo night everyone! 22:32:59 goo night to you too, slimey... :) 22:33:04 g nite ! 22:33:10 --- quit: suprdupr ("Bouyaaa!") 22:33:23 * Serg_Penguin was making a rainbow in a night dream few days ago 22:33:30 --- quit: skylan (niven.freenode.net irc.freenode.net) 22:33:30 --- quit: hefner (niven.freenode.net irc.freenode.net) 22:33:30 --- quit: Stepan (niven.freenode.net irc.freenode.net) 22:33:50 --- join: hefner (hefner@pool-151-196-242-12.balt.east.verizon.net) joined #forth 22:33:50 --- join: skylan (sjh@nwc57-70.nwconx.net) joined #forth 22:33:53 * kc5tja doesn't remember his dreams anymore. 22:34:20 Not unless they were particularly memorable or lucid. 22:34:27 * Serg_Penguin is Dianetics auditor ;) 22:34:35 * kc5tja was toying with the idea of a purely reverse polish spoken/written language the other day though. 22:34:47 * kc5tja has several paragraphs in his notebook of Forthic English. :) 22:35:06 i wasn't doing it years, but wanna return to it ;) 22:35:15 Return to what? 22:35:20 Dianetics 22:35:23 uugh 22:35:40 Forgive me, but you do know that Scientology is just a money-making scam, right? 22:36:23 how did you came to such a decision ? 22:36:56 The fact that L. Ron Hubbard couldn't publish a book to save his life, and was quoted as saying in public, "The only way to make any real money these days is to start your own religion." 22:37:01 Not long after that quote, Dianetics appeared. 22:38:07 did you really heard it on tape, not badly teared out of context ? 22:38:31 http://www.xenu.net/roland-intro.html 22:40:17 --- join: Etaoin (~david@cs2416077-217.houston.rr.com) joined #forth 22:40:52 heh, i read a lot of alike stuff then i was in doubt ;) 22:41:15 * kc5tja sighs 22:41:21 * kc5tja is surrounded by brainwashed people, it seems. 22:41:25 but then i stepped over doubt, it made me capable to step up in a social stairs 22:41:37 from dropout to worker 22:41:41 Whatever. 22:42:00 What you do with your life is your decision, leave me out of it. 22:42:07 * kc5tja will have absolutely nothing at all to do with scientology. 22:42:23 and things seem like it gonna help me climb another steps ;) 22:43:25 "Learn how the Church of Scientology came to declare the Internet an enemy of Scientology, and see what it has done to try to defeat this enemy." -- http://www.modemac.com/cos/ 22:43:53 You're violating your affiliation with the Church of Scientology by talking to me on IRC. 22:49:20 ;)) 22:50:42 what you said is like saying what man wants to burn anything printed, then actually he just sued against printed slander ;)) 22:51:54 it reminds what was said by covert talmudists of Inquisition against scientists of medieval times 22:52:30 The difference is that scientology is provably a fake. 22:52:33 --- join: gilbertdeb (gilbert@24.53.192.39) joined #forth 22:52:52 kc5tja: did your machine look like this: http://www.vttoth.com/vicproc.htm 22:52:56 http://www.xenu.net/archive/leaflet/xenuleaf.htm -- a picture of a page with L. Ron Hubbard's handwriting, and the basis of Scientology. 22:53:28 gilbertdeb: I assume you mean my homebrew 4-bit machine? 22:53:32 No, it was much simpler. 22:53:35 yes yes :) 22:53:50 Hmm, I must have asked this question before... 22:53:56 deja vu. 22:54:23 My 4-bit processor wasn't Turing complete. 22:54:35 It was, in fact, dreadfully incomplete in comparison to this guy's processor. 22:56:27 I wonder how much (or little) it would cost to build such a machine. 22:58:21 Probably under a hundred dollars with all the chips, sockets, wires, and boards. 22:58:33 For a simple stack architecture, I'd wager about $50. 22:58:36 Give or take. 22:58:45 It's actually pretty cheap for a discrete component processor. 22:58:53 50?? 22:59:00 I was gonna say only. 22:59:08 i'm a little brick brack broke atm. 22:59:36 I think I'm gonna give it a try when I do get more money though! 23:01:24 --- join: suprdupr (CrowKilr@Ottawa-HSE-ppp3652752.sympatico.ca) joined #forth 23:01:45 came back to express my frustration that my ide bus hd reading code 23:01:55 reads only zeroes and doesnt quite work yet 23:02:35 ShowDword: 23:02:36 mov CL, 8 ;nibble count 23:02:36 NextNibble: 23:02:36 rol EAX, 4 23:02:36 push EAX 23:02:36 and EAX, 0Fh 23:02:38 cmp AL, 0Ah 23:02:40 jl @f 23:02:42 add EAX, 7 ;offset to letters 23:02:44 @@: add EAX, 0F30h 23:02:46 stosw 23:02:48 pop EAX 23:02:50 dec CL 23:02:52 jnz NextNibble 23:02:54 ret 23:02:54 gilbertdeb: Welcome to the club. :( 23:03:13 used this routine to display, might be able to write short ShowByte extension for the error register 23:03:27 but im too tired 23:03:37 see ya everyone 23:03:40 --- quit: suprdupr (Client Quit) 23:03:58 kc5tja: are there any docs I should look at regarding the 4 bit stack machine? 23:04:14 at least I can start rehearsing mentally until I actually build one :) 23:04:14 I don't think a 4-bit stack machine exists. 23:04:26 * kc5tja was going to build a 16-bit unit. 23:04:43 do you have an idea how one like Viktor's machine might be built? 23:05:43 Not off hand, no. There are a myriad of ways to build a CPU, even one as small as 4-bit wide. 23:06:08 but what about your stack architecture machine? 23:06:22 are you going to have to design it from scratch? 23:09:10 Yes. 23:09:26 Interesting. 23:12:08 I have to. 23:12:17 I have to work within the limitations of discrete component TTL. 23:12:51 can radioshack provide all the components? 23:12:55 --- part: Etaoin left #forth 23:13:03 Not all of them. 23:13:12 Many of them will need to be mail order. 23:39:11 what a very interesting project 23:39:38 hefner did you see Viktor's amazing 4 bit machine? 23:40:16 no, checking scrollback.. 23:40:27 I can repost. 23:40:36 found it, thanks 23:40:37 http://www.vttoth.com/vicproc.htm 23:40:47 n/m 23:41:18 wow, that's really cool. I'd like to try something like that, when my electronics skills become existant. 23:41:38 they may become existent when you build one :D 23:43:04 quite likely, but I only just took my first electronics baby steps tonight, inspired by reading through homebrew projects on 6502.org, which someone posted here last night 23:43:25 heheh. 23:43:30 I think this might be much simpler. 23:43:37 I'm waiting until I get some dough. 23:44:29 That'd probably be me. :) 23:44:53 yeah, I was gonna blame you. 23:45:01 I believe that building a 6502-based circuit is simpler than building a custom CPU-based circuit. The 6502 already exists, after all. 23:45:10 ah that too. 23:45:34 the cool thing, (I just realized) about Viktor's machine is that you can _design_ your own very slow CPU! 23:46:25 I was thinking that desoldering the CPU out of my old Nintendo would be more fun for projects, it's almost a 6502, then I remembered I'd never touched a soldering iron :) 23:47:48 hefner: is it a N64? 23:47:54 no, an NES 23:48:01 ah. 23:48:21 if it were, it would have been a bonafide sgi MIPS 64bit chip. 23:48:53 I don't think I'd be able to build anything homebrew around that. :) 23:49:28 The SuperNintendo (akak Super Famicom) uses a vastly superior and proper superset of the 6502, called the 65816. 23:49:51 aka even 23:50:29 The 65816 is a 16-bit version of the 6502; it is backward compatible too. 23:50:36 indeed it is, but I don't have one of those to hack apart 23:51:15 this calls for a garage sale/flea market/salavation army shopping spree doesn't it? 23:52:33 the 2A03 (NES's 6502 knockoff) has built in sound and a few simple IO pins (for reading controllers), I find this appealing. 23:55:34 gilbertdeb: Not sure, but Western Design Center can supply you with 65C816 chips -- the only gotcha is that there is a $100 minimum order. 23:57:02 how many for 100? 23:57:25 Somewhere in the vicinity of 20. 23:58:31 20 chips? for a 100 bucks? 23:58:36 that doesn't sound too bad! 23:59:09 No, but what are you going to do with all those CPUs? :) 23:59:48 a parallel machine. 23:59:59 --- log: ended forth/03.07.29