00:00:00 --- log: started forth/01.05.08 04:01:22 --- join: Fare (fare@ppp33-net1-idf2-bas1.isdnet.net) joined #forth 07:04:48 --- join: grurp (grurp@pc19951.batc.tec.ut.us) joined #forth 07:05:10 world hello 07:05:52 Yo 07:17:46 gimme orthogonal persistence or gimme death! 07:17:48 (reboot) 08:16:46 --- quit: grurp (Read error to grurp[pc19951.batc.tec.ut.us]: Connection reset by peer) 08:18:47 --- join: grurp (grurp@pc19951.batc.tec.ut.us) joined #forth 08:44:48 --- log: started forth/01.05.08 08:44:48 --- join: clog (nef@bespin.org) joined #forth 08:44:48 --- topic: 'http://isforth.sourceforge.net -- http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/isforth/?cvsroot=isforth' 08:44:48 --- topic: set by ChanServ on [Sat May 05 23:27:45 2001] 08:44:48 --- names: list (clog grurp Fare aaronl lar1) 09:02:49 --- join: Trey (Baxter@ns.TreySoft.com) joined #forth 09:38:13 --- join: davidw (davidw@innominate.intercity.it) joined #forth 09:38:22 wow... there is one 09:38:34 so, how do you eval a string in forth - is it possible? 09:41:36 --- join: I440r (mark4@purplecoder.com) joined #forth 09:41:42 wow 09:41:46 lotsappl :) 09:41:59 yeah.. I was noticing 09:42:04 hehe 09:42:05 they don't seem to be lively though 09:42:38 --- mode: ChanServ set mode: +o I440r 09:42:41 --- mode: I440r set mode: +o Fare 09:42:45 --- mode: I440r set mode: +o davidw 09:42:50 --- mode: I440r set mode: +o Trey 09:42:53 --- mode: I440r set mode: +o clog 09:42:57 --- mode: I440r set mode: +o grurp 09:43:00 --- mode: I440r set mode: +o aaronl 09:43:03 --- mode: I440r set mode: +o lar1 09:43:07 know how to eval a string in forth? if it's possible.... 09:43:08 :) 09:43:23 add it to the dictionary ? 09:44:02 evqal in what way ? 09:44:35 well, hrm, like in perl or something you would do eval "print 2 + 2" 09:44:52 2 2 + print ? 09:44:55 hehe 09:45:15 right, but say I want to put that in a string 09:45:20 and have it evaled 09:45:34 its possible of corse... 09:45:40 using a state machine would be easiest 09:46:18 hrm 09:47:35 i would still use the dictionary to evaluate that statement 09:47:42 i would have a word called print 09:47:52 that set the "printing" state 09:47:59 then i would parse the 2 09:48:02 put it on the stack 09:48:25 then i would have a new definition for + which would defer the addition till the end of the statement 09:48:34 then teh second 2 would go on the stack 09:48:38 hmmm 09:48:39 wait 09:48:48 you could use an operator stack and a parameter stack 09:48:54 the impression I'm getting is that this is not a standard part of forth;-) 09:48:57 print goes on the op stack 09:49:05 the numbers go on the parameter stack 09:49:38 then at the end of the statement (the crlf) you pop eachg item off the operator stack one at a time and execute them 09:49:42 so you execute + 09:49:46 then nyou execute print 09:49:48 !!!! 10:03:57 I440r: !!!!!! 10:04:02 I440r: Hey!!! 10:04:06 hi :) 10:04:06 where have you been? 10:04:16 im in PA working 10:04:21 I440r: I've been playing with i386 asm 10:04:24 I440r: it's very fun 10:04:26 cool! 10:04:28 hehe 10:04:36 I440r: i've been writing a CSS descrambler and a simple RPN calc 10:04:44 I440r: But i ran into one problem.... 10:05:01 I440r: How can i multiply esi by an immediate byte? 10:05:18 you cantg i dont believe 10:05:21 except 10:05:23 if its 2 10:05:25 4 10:05:30 8 or 10:05:40 Hmmm 10:05:42 mov esi,[esi*2] 10:05:43 etc 10:05:44 It's 10 10:05:53 mov eax,esi 10:06:02 Also, can you explain to me lea vs. mov ? 10:06:03 mov esi,[esi*2] 10:06:08 add esi,eax 10:06:14 mov esi,[esi*2] 10:06:21 but i would use adds 10:06:25 mov eax,esi 10:06:27 add esi,esi 10:06:30 add esi,eax 10:06:34 add esi,esi 10:06:46 try interleave those with some other operation if you cann 10:06:49 prevent agi 10:07:01 or 10:07:04 mov eax,esi 10:07:09 mov eax,[eax*2} 10:07:15 mov esi,[esi*8] 10:07:19 add esi,eax 10:07:27 you lost me :) 10:07:31 nasm is pretty cool... 10:07:39 where did i los u 10:07:59 i386 is stinky 10:08:05 another thing that i find kinda weird is there are only like 7 general purpose registers... and many of them aren't general purpose at all, e.g. eax is hard-coded for mul 10:08:19 yea 10:08:21 aaronl: welcome to CISC 10:08:21 mul and div 10:08:28 and aam/aad etc 10:08:36 I440r: You lost me at the beginning of that asm code. you're using adds to multiply it by 10? 10:08:47 ok 10:08:55 lest say esi is 2 10:08:58 mov eax,esi 10:09:01 BB 10:09:03 --- part: davidw left #forth 10:09:03 eaxd and esi are now 2 10:09:08 add eax,eax 10:09:10 eax = 4 10:09:13 esi = 2 10:09:22 mov esi,[esi*8] 10:09:31 esiu = 2 * 8 = 16 10:09:38 ok ... 10:09:49 ERM I DID THIS WRONG 10:09:52 OOPTS CAPS 10:09:53 hehe 10:10:04 mov esi,1 ;; lets start easy 10:10:08 mov eax,esi 10:10:19 add eax,eax ; eax = 2 10:10:36 erm im confusing myself 10:10:53 I know I got teh rite idea heh let me scroll back :P 10:10:59 ok wait 10:11:05 ;; eax is in use, can i use edi or something? 10:11:08 mov esi,1 10:11:12 ok 10:11:16 well use esi and edi 10:11:20 yay 10:11:22 mov edi,esi 10:11:28 add esi,esi 10:11:44 add esi,esi ; esi now = 4 * original value 10:11:49 add esi,esi ; 5 * 10:11:56 erm make that add esi,edi 10:12:04 oh hehe 10:12:05 add esi,esi ; esi now = 10 * 10:12:11 diferent.... 10:12:16 mov eax,esi 10:12:24 erm edi even 10:12:41 lea esi,[4 * esi] 10:12:54 i was using mov before but thats wrong... use lea = load effective address 10:13:00 that multiplies esi by 4 10:13:08 add esi,edi ; 5 10:13:10 yeah, i dont quite understand the diff between lea and mov 10:13:13 add esi,esi ; 10 * 10:13:21 cool 10:13:27 in 99% of the places you see lea 10:13:31 use mov 10:13:33 mov is shorter and faster 10:13:34 BUT 10:13:48 when lea is used to MULTIPLY hte register by 2/4/8 etc 10:13:49 use lea 10:13:59 i use lea to do things like load the address of a piece of memory into a register, is that wrong? 10:14:15 can i do it with mov eax,nasm_defined_variable ? 10:14:17 mov is cheaper 10:14:23 will it pass the address of the data in it? 10:14:32 not always 10:14:48 foo dw 10 ; a variable caled foo 10:15:08 bar: dw 10 ; an address called bar 10:15:23 mov eax,foo ;get contents of address foo in eax 10:15:36 mov eax,bar ; get address called bar in eax 10:15:41 they LOOK the same 10:15:45 they are very different 10:15:48 eeeek 10:15:50 is it the colon? 10:15:54 its another place where x86 is fucked up 10:15:55 yes 10:16:01 fuck 10:16:06 masm uses the keyword offset 10:16:10 mov eax,offset foo 10:16:14 * aaronl switches some leas to mov 10:16:17 get teh ADDRESS of foo in eax 10:16:20 but thats shitty 10:16:46 mov eax,w[foo] ;;; this LOOKS like you are collecting teh CONTENTS of the address 10:16:52 which is how its supposed to look 10:17:09 i usually use... 10:17:14 foo: dw 10 10:17:19 mov eax,foo gets address 10:17:24 mov eax,w[foo] gets copntents 10:17:26 Is mov bh, BYTE [ecx+dl-bl] legal? or do i need to split it up, or use lea or something? 10:17:31 there is a VISUAL difference 10:17:35 yeah, [foo] is better 10:17:36 no 10:17:45 thats not legal 10:18:03 you can only use reg+reg or reg-reg 10:18:12 or number[reg+/-reg] 10:18:15 oh hehe 10:18:18 where number is an offset 10:18:23 neway im at wrk 10:18:29 i gotta get back to it :) 10:18:32 aww :( 10:18:35 thanks for your helpo 10:18:40 np :) 10:18:45 x86 IS fun 10:18:47 i like it :) 10:18:51 but its also fscked up hehe 10:19:22 add ecx, dl 10:19:22 mov bh, BYTE [ecx-bl] 10:19:22 sub ecx, dl 10:19:29 yeah, very twisted 10:22:59 you cant add dl to ecx 10:23:15 you cant use ecx-bl as an offset 10:23:18 they must be the same size 10:28:12 Hmmmmm 10:28:14 that sucks. 10:28:30 heh, sshing, eh? 10:28:47 I440r: can you resolve vitelus.com on purplecoder? 10:28:52 I440r: i saw mail bouncing from there 10:29:02 I440r: i tried to forward you something about an in-kenrel forth 10:29:04 mail bouncing from where ? 10:29:06 oh 10:29:17 my mail was fscked up 10:29:25 mark4@purplecoder.com shud work now 10:29:55 and yea im sshing hehehe 10:31:10 I would be at school 10:31:19 but I have an AP computer science test in a few hours 10:31:23 for 4 hours!@# 10:31:37 and in yucky c++ with crazy abstraction!!! 10:31:51 they PROHIBUTE the use of built in arrays or strings (e.g. raw memory) 10:32:01 hehehehe 10:32:02 duh 10:32:25 instead you have to use some stupid class that does bounds checking, is slow as fuck, is a pain in the ass to use, and exits your program if you go out of bounds 10:32:53 i still dont understand what's better than a char string[10] (or string: resb 10) 10:33:24 thats clever :Pits not 10:33:27 erm 10:33:30 its NOT better 10:33:43 object obfuscation is fucked up 10:33:48 more fucked up than x86 asm 10:33:59 they encourage sloppy and stupid programming, making you copy the data all the time (and worse, reallocate much more) 10:34:05 they also discourage pointers for most things 10:34:12 use stupid "references" instead, which are confusing 10:34:17 aaaaarg i could rant forever 10:34:30 Oh yeah, binary operators are prohibuted on the test (!!!!) 10:34:40 heehhe????????????/ 10:35:04 so are ? :, the "abominable" coma operator, printf, in-line assembly.... 10:35:42 I440r: yeah, there was this one sample test problem where you had to toggle a bit. i used xor but technically that's illegall 10:35:48 I440r: they were looking for: 10:35:55 if (bit == 1) 10:35:58 bit = 0; 10:36:00 else 10:36:04 bit = 1; 10:36:05 !!!!! 10:36:10 idiots 10:36:19 bit != bit; 10:36:21 hehe 10:36:22 neway i'll let you get back to your work 10:36:26 bot ^= 1; 10:36:29 :) 10:36:33 i did bit ^= 1 10:36:34 i like ^= hehehe 10:36:48 xor eax, 1 10:36:57 bit += 1; 10:37:02 that works too 10:37:05 i love ^=1 i use it on all my booleans in c... 10:37:07 if its a true bit variable 10:37:18 I440r: yeah, but it sets the next bit, which could be bad 10:37:28 not if its a BIT variable 10:37:29 yeah, i see what you mean, actually 10:37:33 yeah, i see 10:37:36 most c's dont have bit vars tho 10:37:41 "if you're wasting the upper 8 bits" 10:37:42 yeah 10:37:43 mostly only embedded c's do 10:37:49 it doesnt waste ANY bits 10:37:54 and in c a value is "true" if it != 0 10:38:09 so 1 +1 != 0 (in an int), and it's true 10:38:18 get back to your work :) 10:38:21 whatcha working on? 10:39:04 well i have 10 thousand 5 hundred dollars on my desk 10:39:10 im working ona bill acceptor hehe 10:39:18 i hafta give it back when im dun :P 10:39:27 hahaha 10:39:29 lol 10:39:34 i hAVE 100 $100 BILLS 10:39:38 AND 100 $5 BILLS 10:39:40 so you're working on hardware? 10:39:43 no 10:39:58 what's a bill acceport? 10:39:59 im actually just feeding these bills into the billacceptor 3 times each in each direction 10:40:04 ah 10:40:04 so the unit can learn the bills 10:40:10 weird 10:40:10 so im not even coding 10:40:15 my arm HURTS 10:40:17 it "learns" differnt kinds of bills? 10:40:21 yes 10:40:33 you know, the probe that landed on eros was running forth 10:40:38 it had some honeywell forth chip 10:40:42 yea? 10:40:43 cool! 10:40:47 yup 10:40:55 i read it in SIGPLAN 10:41:12 you know, i think it would be cool to port efdtt to forth 10:41:18 i already ported it to asm, just have to test... 10:41:31 this is efdtt: 10:41:32 #define m(i)(x[i]^s[i+84])<< 10:41:32 unsigned char x[5],y,s[2048];main(n){for(read(0,x,5);read(0,s,n=2048);write(1,s 10:41:32 ,n))if(s[y=s[13]%8+20]/16%4==1){int i=m(1)17^256+m(0)8,k=m(2)0,j=m(4)17^m(3)9^k 10:41:32 *2-k%8^8,a=0,c=26;for(s[y]-=16;--c;j*=2)a=a*2^i&1,i=i/2^j&1<<24;for(j=127;++j ;c=c>y)c+=y=i^i/8^i>>4^i>>12,i=i>>8^y<<17,a^=a>>14,y=a^a*8^a<<6,a=a>>8^y<<9,k=s 10:41:34 [j],k="7Wo~'G_\216"[k&7]+2^"cr3sfw6v;*k+>/n."[k>>4]*2^k*257/8,s[j]=k^(k&k*2&34) 10:41:36 *6^c+~y;}} 10:41:56 that loks nice :P 10:42:04 show that to ur coding teacher in school hehehehe 10:42:09 it's a CSS descrambler. questionably legal. i want to make a statement by making a new one, in forth. they alraedy have them for scheme, brainfuck, perl, etc 10:42:12 I440r: i did, actually 10:42:15 I440r: she got pissed 10:42:26 hehehehehehehehe 10:42:43 anyway, how would I do that with a stack, like in forth? 10:42:48 ur coding teacher is a SHE ? 10:42:56 no wonder ur learning to code fucked up shit likle that :P 10:42:59 http://www.cs.cmu.edu/~dst/DeCSS/Gallery/hannum-pal.html 10:43:02 I didn't code that 10:43:05 someone else did 10:43:09 aha 10:43:10 hehe 10:43:11 I _ported it_ to asm 10:43:28 my coding teacher likes object obfuscation, but she also digs asm 10:43:32 she's very smart, quite cool 10:44:59 http://www.cs.cmu.edu/~dst/DeCSS/Gallery/plain-english.html 10:47:02 whose pages are those ? 10:47:41 DST's 10:47:48 http://www.cs.cmu.edu/~dst/ 10:48:45 aha 10:48:45 well back to "hardly working" 10:48:45 hehe 10:52:22 --- log: started forth/01.05.08 10:52:22 --- join: clog (nef@bespin.org) joined #forth 10:52:22 --- topic: 'http://isforth.sourceforge.net -- http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/isforth/?cvsroot=isforth' 10:52:22 --- topic: set by ChanServ on [Sat May 05 23:27:45 2001] 10:52:22 --- names: list (clog @I440r @Trey @grurp @Fare @aaronl @lar1) 10:53:35 Heehee 10:53:41 yeah, my dad has an EB-6 flight calculator 10:53:51 it's a couple rotating disks with log tables 10:54:27 thats a circular slide rule 10:55:28 yes 10:55:41 I'd rather have a PalmPilot though 10:55:47 there's lots of EB-6 emulation software 10:56:15 You know what scares me? http://www.memory4less.com/itemdetail.asp?itemid=331242&selected=overview 10:56:25 i hope that doesn't make programmers be disgustingly sloppy 10:58:05 Wow. 512MB for $120. 10:58:16 zsnes for example. it's a snes emulator writen in asm but its binary is FOUR MEGABYTES because the authors were scared of "call" and abused macros instead 10:58:54 heh. Sounds like a good way to kill the I-cache. 10:59:34 :) 11:03:19 yeah, and they also don't use bss 11:03:52 src/chips/fxemu2.asm:NEWSYM fxtrace, db 0; times 65536 db 0 11:03:53 src/chips/sa1regs.asm:NEWSYM DecompArray, times 65536 db 0 11:03:59 src/endmem.asm:NEWSYM wramdataa, times 65536 db 0 11:04:00 src/endmem.asm:NEWSYM ram7fa, times 65536 db 0 11:04:10 src/endmem.asm:NEWSYM vidmemch2, times 4096 db 0 11:04:10 src/endmem.asm:NEWSYM vidmemch4, times 4096 db 0 11:04:10 src/endmem.asm:NEWSYM vidmemch8, times 4096 db 0 11:04:17 src/endmem.asm:NEWSYM tltype2b, times 4096 db 0 11:04:24 src/endmem.asm:NEWSYM vidmemch2s, times 4096 db 0FFh 11:04:37 src/endmem.asm:NEWSYM PrevPicture, times 64*56*2 db 0 11:04:48 src/init.asm:NEWSYM StoreBuffer, times 128*32 db 0 11:05:00 src/ui.asm:NEWSYM vrama, times 65536 db 0 11:05:01 src/ui.asm:NEWSYM mode7tab, times 65536 db 0 11:05:01 src/ui.asm:NEWSYM srama, times 65536 db 0 11:05:01 src/ui.asm:NEWSYM debugbufa, times 10000 db 0 11:05:01 src/ui.asm:NEWSYM regptra, times 49152 db 0 11:05:01 src/ui.asm:NEWSYM regptwa, times 49152 db 0 11:05:03 src/ui.asm:NEWSYM fulladdtab, times 65536 dw 0 11:05:05 src/ui.asm:NEWSYM echobuf, times 90000 db 0 11:05:07 src/ui.asm:NEWSYM spcRamcmp, times 65536 db 0 11:05:09 src/ui.asm:NEWSYM VolumeConvTable, times 32768 dw 0 11:05:12 ....etc 11:05:15 src/ui.asm:NEWSYM NoiseData, times 32768 db 0 11:05:17 src/ui.asm:NEWSYM vcache2ba, times 262144+256 db 0 11:05:19 src/ui.asm:NEWSYM vcache4ba, times 131072+256 db 0 11:05:22 src/ui.asm:NEWSYM vcache8ba, times 65536+256 db 0 11:05:24 heh 11:08:36 How can they write that much assembly with so few clues? 11:12:46 hehehehehehe 11:13:09 trey codes asm ? 11:27:50 I've started my own Forth in x86 assembly, but I have a wife and kids and not enough free time :-) 11:30:54 hehehe 11:31:01 cool :) 11:31:21 i got now ife and no kids and to much free time and im STILl not putting much time into isforth 11:31:22 duh 11:31:54 Or into improving your typing skills, it seems. 11:36:29 i can type 35 wrong words per minute :P 11:36:36 Heh. 11:39:10 --- nick: Trey -> TreyAFK 11:59:48 --- part: I440r left #forth 12:01:07 --- quit: grurp (Ping timeout for grurp[pc19951.batc.tec.ut.us]) 12:01:28 --- join: grurp (grurp@pc19951.batc.tec.ut.us) joined #forth 13:26:16 --- quit: grurp (Bye all) 13:26:32 --- join: Azynheira (Azyheira@213.22.108.191) joined #forth 13:26:40 Hello 13:32:38 --- quit: Azynheira (Read error to Azynheira[213.22.108.191]: EOF from client) 16:43:30 --- quit: Fare (Connection reset by pear) 16:49:09 --- join: I440r (mark4@purplecoder.com) joined #forth 16:49:09 --- mode: ChanServ set mode: +o I440r 16:51:40 --- part: I440r left #forth 18:20:53 --- join: edrx (edrx@200.240.18.66) joined #forth 19:28:36 --- join: Blandest (kgodel@h24-65-136-122.ed.shawcable.net) joined #forth 19:33:52 --- quit: edrx ([x]chat) 19:41:12 --- quit: Blandest () 23:59:59 --- log: ended forth/01.05.08