00:00:00 --- log: started forth/03.12.28 01:08:36 --- quit: skylan ("bbiab") 01:43:52 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 01:43:52 --- quit: I440r (Client Quit) 01:44:24 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 01:45:16 * chris is away: sleep 01:45:39 oh, hiya mark 01:48:11 hi 01:48:20 just drove 15 hours :) 01:48:22 time to zzz 01:48:28 heh 01:48:29 same here 01:48:32 nightynight 01:48:35 :) 02:20:47 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 02:23:13 --- quit: chris (zelazny.freenode.net irc.freenode.net) 02:23:13 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 02:23:13 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 02:23:13 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 02:23:13 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 02:23:15 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 02:23:15 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 02:23:15 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 02:23:15 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 02:23:16 --- quit: chandler (zelazny.freenode.net irc.freenode.net) 02:23:16 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 02:23:16 --- quit: mur (zelazny.freenode.net irc.freenode.net) 02:26:15 --- join: ChanServ (ChanServ@services.) joined #forth 02:26:15 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 02:26:15 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 02:26:15 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 02:26:15 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 02:26:15 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 02:26:15 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 02:26:15 --- join: ianp (ian@inpuj.net) joined #forth 02:26:15 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 02:26:15 --- join: mur (~mur@uiah.fi) joined #forth 02:26:15 --- join: OrngeTide (orange@rm-f.net) joined #forth 02:26:15 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 02:26:15 --- mode: zelazny.freenode.net set +o ChanServ 02:44:33 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 02:44:33 --- mode: ChanServ set +o MrReach 02:45:41 hihi! 03:16:47 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 03:16:47 --- quit: chris (zelazny.freenode.net irc.freenode.net) 03:16:47 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 03:16:47 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 03:16:49 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 03:16:49 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 03:16:49 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 03:16:49 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 03:16:49 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 03:16:49 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 03:16:50 --- quit: mur (zelazny.freenode.net irc.freenode.net) 03:16:50 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 03:16:50 --- quit: chandler (zelazny.freenode.net irc.freenode.net) 03:17:43 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 03:17:43 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 03:17:43 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 03:17:43 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 03:17:43 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 03:17:43 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 03:17:43 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 03:17:43 --- join: ianp (ian@inpuj.net) joined #forth 03:17:43 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 03:17:43 --- join: OrngeTide (orange@rm-f.net) joined #forth 03:17:43 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 03:17:43 --- join: mur (~mur@uiah.fi) joined #forth 03:17:43 --- join: ChanServ (ChanServ@services.) joined #forth 03:17:43 --- mode: zelazny.freenode.net set +oo MrReach ChanServ 03:46:51 --- quit: chris (zelazny.freenode.net irc.freenode.net) 03:46:51 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 03:46:52 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 03:46:52 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 03:46:53 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 03:46:53 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 03:46:53 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 03:46:53 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 03:46:53 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 03:46:53 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 03:46:54 --- quit: mur (zelazny.freenode.net irc.freenode.net) 03:46:54 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 03:46:54 --- quit: chandler (zelazny.freenode.net irc.freenode.net) 03:47:16 --- join: ChanServ (ChanServ@services.) joined #forth 03:47:16 --- join: mur (~mur@uiah.fi) joined #forth 03:47:16 --- join: OrngeTide (orange@rm-f.net) joined #forth 03:47:16 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 03:47:16 --- join: ianp (ian@inpuj.net) joined #forth 03:47:16 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 03:47:16 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 03:47:16 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 03:47:16 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 03:47:16 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 03:47:16 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 03:47:16 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 03:47:16 --- mode: zelazny.freenode.net set +oo ChanServ MrReach 03:56:39 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 03:56:39 --- quit: chris (zelazny.freenode.net irc.freenode.net) 03:56:40 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 03:56:40 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 03:56:40 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 03:56:41 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 03:56:42 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 03:56:42 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 03:56:42 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 03:56:42 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 03:56:42 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 03:56:42 --- quit: mur (zelazny.freenode.net irc.freenode.net) 03:58:36 --- join: ChanServ (ChanServ@services.) joined #forth 03:58:36 --- join: mur (~mur@uiah.fi) joined #forth 03:58:36 --- join: OrngeTide (orange@rm-f.net) joined #forth 03:58:36 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 03:58:36 --- join: ianp (ian@inpuj.net) joined #forth 03:58:36 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 03:58:36 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 03:58:36 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 03:58:36 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 03:58:36 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 03:58:36 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 03:58:36 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 03:58:36 --- mode: zelazny.freenode.net set +oo ChanServ MrReach 04:07:25 --- quit: chris (zelazny.freenode.net irc.freenode.net) 04:07:25 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 04:07:25 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 04:07:25 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 04:07:26 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 04:07:26 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 04:07:26 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 04:07:26 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 04:07:26 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 04:07:26 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 04:07:27 --- quit: mur (zelazny.freenode.net irc.freenode.net) 04:07:27 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 04:17:23 --- quit: I440r (Excess Flood) 04:22:43 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 04:22:43 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 04:22:43 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 04:22:43 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 04:22:43 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 04:22:43 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 04:22:43 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 04:22:43 --- join: ianp (ian@inpuj.net) joined #forth 04:22:43 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 04:22:43 --- join: OrngeTide (orange@rm-f.net) joined #forth 04:22:43 --- join: mur (~mur@uiah.fi) joined #forth 04:22:43 --- join: echobunny (~echobunny@adsl-178-38.cytanet.com.cy) joined #forth 04:22:43 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 04:22:43 --- join: ChanServ (ChanServ@services.) joined #forth 04:22:43 --- mode: zelazny.freenode.net set +oo MrReach ChanServ 04:23:22 so there isn't a "clean" forth compiler outhere? (that is free software) 04:24:31 for you purposes ... gforth will do fine 04:24:38 thank you very much for taking the time & for the URLs =) 04:24:40 which I understand to be ... 04:24:44 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 04:24:51 1. working through Starting Forth 04:25:05 * echobunny nods 04:25:12 2. cross compiling a forth for a target system OS 04:25:15 [end] 04:25:27 lemme get you a link to the standard 04:25:27 [happy end] 04:26:00 oh yes please 04:26:00 http://www.taygeta.com/forthlit.html 04:26:00 mind, that document is not for beginners 04:26:17 starting forth is regarded as the best doc for beginners, isn't it? 04:27:01 heh, I started off with only the standard... 04:27:16 can't say I'd recommend that though 04:27:53 hmm..I can't see to find a Gforth win32 bin 04:28:20 oh got it 04:28:59 http://www.complang.tuwien.ac.at/forth/gforth/gforth-0.6.2.bin.i386-pc-linux-gnu.tar.gz 04:32:31 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 04:32:31 --- quit: chris (zelazny.freenode.net irc.freenode.net) 04:32:31 --- quit: echobunny (zelazny.freenode.net irc.freenode.net) 04:32:31 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 04:32:31 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 04:32:32 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 04:32:32 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 04:32:32 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 04:32:32 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 04:32:32 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 04:32:33 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 04:32:33 --- quit: tathi (zelazny.freenode.net irc.freenode.net) 04:32:33 --- quit: mur (zelazny.freenode.net irc.freenode.net) 04:32:33 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 04:32:33 --- quit: I440r (zelazny.freenode.net irc.freenode.net) 04:32:54 --- join: ChanServ (ChanServ@services.) joined #forth 04:32:54 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 04:32:54 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 04:32:54 --- join: echobunny (~echobunny@adsl-178-38.cytanet.com.cy) joined #forth 04:32:54 --- join: mur (~mur@uiah.fi) joined #forth 04:32:54 --- join: OrngeTide (orange@rm-f.net) joined #forth 04:32:54 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 04:32:54 --- join: ianp (ian@inpuj.net) joined #forth 04:32:54 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 04:32:54 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 04:32:54 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 04:32:54 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 04:32:54 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 04:32:54 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 04:32:54 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 04:32:54 --- mode: zelazny.freenode.net set +oo ChanServ MrReach 04:32:57 --- quit: chris (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: echobunny (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: I440r (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: tathi (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: mur (zelazny.freenode.net irc.freenode.net) 04:32:57 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 04:33:15 --- join: ChanServ (ChanServ@services.) joined #forth 04:33:15 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 04:33:15 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 04:33:15 --- join: echobunny (~echobunny@adsl-178-38.cytanet.com.cy) joined #forth 04:33:15 --- join: mur (~mur@uiah.fi) joined #forth 04:33:15 --- join: OrngeTide (orange@rm-f.net) joined #forth 04:33:15 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 04:33:15 --- join: ianp (ian@inpuj.net) joined #forth 04:33:15 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 04:33:15 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 04:33:15 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 04:33:15 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 04:33:15 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 04:33:15 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 04:33:15 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 04:33:15 --- mode: zelazny.freenode.net set +oo ChanServ MrReach 04:33:32 I see .F and .FS used quite a bit ... I'm partial to .4th myself 04:33:57 do people capitalise it by convention? 04:34:12 those that use it seem to 04:34:36 ".f" brought up fortran mode in emacs..eeek 04:34:39 forth is odd about capitalization ... some are sensitive, some are not 04:34:50 I see, I'll have that in mind 04:37:28 well, thank you very much once again =) hope to talk to you soon 04:37:40 --- part: echobunny left #forth 04:51:46 --- quit: tathi ("leaving") 05:32:13 --- join: nekokawaiibakach (wossname@HSE-QuebecCity-ppp80816.qc.sympatico.ca) joined #forth 05:46:42 ok i need some help address wise... 05:47:14 if i define a variable with, create set 4 allot, i create set and give it 4 bytes space, right? 05:49:07 and then after: set 0 + ,the TOS will be the address of the first byte, set 1 + will be the second byte, and so on, or not? 06:00:06 oh, sorry, didn't see you messages 06:00:52 correct, ox x86 architectures 06:01:02 correct, on x86 architectures 06:12:47 hmmm and if i on this on the set variable, 3 set 4 + ! ,will it store 3 as two bits to the byte? or as a 32bit number... 06:13:27 thing is, in this loop i'm using 4 bytes, but for some reason i need to create it as 5 because else i'll get a protection error 06:13:39 ! *ALWAYS* stores a cell-sized data item, which is to say the width of the stack 06:13:41 (which i think indicates i'm writing to memmory i'm not supposed to?) 06:13:56 yep, that is correct 06:14:11 hmmm 06:14:13 C! stores exactly one bytes 06:14:24 but isnt cells 4 bytes on 32bit systems? 06:14:34 that's correct 06:14:52 then why isnt it giving an error when i try to do 3 set 3 + ! 06:15:00 on the 4 byte set variable.. 06:15:07 CREATE FOO 4 ALLOT can store one stack item on 32 bit systems 06:15:44 because the system preallocates a large chunk of mem for the user data area ... and doesn't check how you fill it 06:15:55 ALLOT is not the same as ALLOC 06:16:00 ALLOT is not the same as ALLOCATE 06:16:11 did i type alloc? 06:16:26 if so its my bad, i meant to say allot 06:16:33 even with ALLOCATE , x86 systems generally get mem in 4KB chunks 06:16:54 no, you asked why ! didn't check memory bounds 06:17:03 but then it shouldnt really have a problem when writing to the set 4 + 06:17:57 "0 FOO 4 + !" should never cause an error, even if it's writing to the wrong portion of user memory 06:18:10 did you get a memory error? 06:18:37 i get a protection error... hold on 06:19:18 EXCEPTION 0xC0000005 ACCESS_VIOLATION 06:19:30 please paste the exact code 06:19:40 hm hold on 06:20:29 http://pastebot.nd.edu:80/145 06:21:02 this will produce the error, if you cahnge the "create set 4 allot" to 5, it runs np 06:23:08 no, it won't produce the error 06:23:27 neither new-deck nor ncp are called 06:23:37 if you run new-deck 06:23:39 it will 06:23:54 which forth are you using? 06:23:57 win32forth 06:24:01 win32 6.08?? 06:24:10 6.09.1 06:24:15 ok 06:24:18 just a sec 06:24:20 .01 i mean :) 06:26:08 Data stack: 0 0 0 0 06:26:08 Primitive "0x400000" loaded from: SRC\FKERNEL.F at line: 2713 06:26:26 looks like you're doing a '0 0 !' 06:26:36 which will seqfault every time 06:26:45 g 06:26:48 eh 06:26:51 how's that possible 06:27:29 and why would changing the size to 5 make a difference? 06:28:02 oh 06:28:07 i think i see why :\ 06:28:44 when i is 0, i still do 1 - , then -1 cells , and add it to the address 06:28:52 which will put the pointer BEFORE the variable 06:29:06 and that doesnt happen if the variable is 5 bytes 06:29:07 heh 06:29:08 * MrReach nods 06:29:23 ohwell i have to change it anyways 06:29:31 which screws up the dictionary, and sends the search word into neverland 06:29:36 yea :) 06:29:44 how would i be able to place 1 2 or 3 to "one byte" of the 4 byte variable? 06:30:14 hm wait a minute 06:30:17 erm ... that's not very clear 06:30:30 it does do that, because i output set, and that looks like i intended it to look 06:30:52 : t 4 0 do set c! loop ; 06:31:06 stack underflow 06:31:16 oh you mean when its set 06:31:18 ooops, forgot the i 06:31:29 : t 4 0 do i set c! loop ; 06:31:49 that will set the first byte to "0" then "1" then "2" then "3" 06:32:14 ah c! stores a byte 06:32:26 after running t, you should be able to do "set @ . 3 ok" 06:32:40 that's what I said earlier 06:33:04 "set @ . 3 ok" 06:33:30 hm maybe there's an error on this page 06:33:30 c! ( n -- adr ) 06:33:31 Stores a byte at adr 06:33:41 doesnt the stack comment say it returns the adr? 06:33:48 (on http://astro.pas.rochester.edu/Forth/forth-words.html ) 06:33:50 heh, that's wrong 06:34:01 yea ok 06:34:03 ( x adr -- ) 06:35:04 you should use the standard text to lookup common words 06:35:45 this page is fast and simple to lookup actually 06:36:05 but it's fucking WRONG! 06:36:13 this once :) 06:36:45 I hate it when documentation is blatently wrong 06:36:52 it can cost you days of time 06:37:00 :) 06:38:28 if I were to send him an email asking him to correct his documentation, it would contain the word "moron" somewhere in it 06:39:20 alright, now a different part i'm not quite clear on... if you use create x ,what does he actually do? 06:39:28 i mean, what size will x be? 06:39:47 do you mean "CREATE x ," 06:39:58 actually no, without the , 06:40:14 it does not allocate any storage space at all 06:41:00 not much point in that, really, except for conditional compilation (x exists, so do something based on that fact) 06:41:25 so if you'd define it and tried to use it anyways, you'd write somewhere where you're not supposed to? 06:41:28 [defined?] x [IF] ... [THEN] 06:41:36 that is correct 06:41:39 k 06:41:54 and say i'd do this, create x create y 06:41:59 VARIABLE allocates space, CREATE does not 06:42:00 how could i allot space to x? 06:42:13 or is that simply impossible once you've created another var 06:42:27 yes but variable gives only 1 cells, dont it? 06:42:32 CREATE x ALLOT CREATE y 06:42:37 yep 06:42:49 aye but can you allot to x, once you've created y? 06:43:05 not properly, no 06:43:06 or will allot always pick the latest creation.. 06:43:18 it doesn't even do that 06:43:54 "HERE 100 ALLOT" will set aside 100 bytes of user memory that has no name 06:44:31 and you'd better save the adr that is left on stack or you'll never be able to use it 06:45:17 the idea is to either allot enough mem to hold what you're going to store, or ... 06:45:35 use ALLOCATE and RESIZE to use dynamic 06:45:38 memory 06:45:44 so, what if you'd do 10 allot somewhere in the middle of some code? where would it "give" that to? 06:46:02 from inside a definition? 06:46:07 or at the console? 06:46:18 does it differ? 06:46:28 only temporaly 06:46:35 alright, console.. 06:46:45 ALLOT sets aside user memory whenever it is executed 06:47:13 but he doesnt do anything to it? 06:47:15 then it immediately sets aside 10 bytes in your example 06:47:22 not a thing 06:47:30 hmmm 06:47:34 but then 06:47:40 if you can do create x 06:47:47 create doesnt "expect" allot 06:47:55 but if you do create x 4 allot 06:47:57 nope, it doesn't 06:48:05 the 4 bytes are "given" to x 06:48:15 well, not exactly 06:48:54 the phrase "CREATE x" builds a word that returns the current address of the data pointer 06:49:11 create x ok 06:49:17 whether you actually ALLOT any storage space there is up to you 06:49:21 oh data pointer, sorry 06:49:29 you see ... 06:49:53 the fact that x exists might be what you're after ... and it doesn't need any storage space 06:50:02 well then what attaches the 4 bytes to x? 06:50:16 the phrase "4 ALLOT" does that 06:50:17 i mean if i indeed wanted it.. 06:50:31 but you just said allot doesnt do anything with the bytes... 06:50:40 see where i bump into problems? :) 06:50:44 but you can also execute "4 ALLOT" w/o a CREATE in front of it 06:51:12 ALLOT simply sets aside the data area ... it does nothing else 06:51:21 doesn't initialize it or anything 06:51:23 hmmmmm, so if the last executed word was create, allot automaticly gives the bytes to the variable created, else it does nothing? 06:51:41 heh, it's not that smart 06:51:42 (ok maybe not allot, but the interpreter..) 06:52:08 CREATEd word always return the data address of when they where created 06:52:22 to the datapointer, not the stack, ok.. 06:52:34 ALLOT then sets aside some memory for whatever you might use it for later 06:52:34 btw, the datapointer is not the same as HERE, is it? 06:52:48 yes, it is 06:52:52 oooo.. 06:53:02 hence the code I gave you earlier 06:53:08 yea that makes sense now 06:53:13 "HERE 100 ALLOT" 06:53:15 can you put an adr to the data pointer? 06:53:39 (so change the adr of HERE...) 06:53:49 comma does that 06:53:59 for example ... 06:54:40 "CREATE x 0 , 1 , 2 , 3 ," will store 16 bytes, which you can get a pointer to by executing x 06:57:07 ok ok ok 06:57:16 lets see if i get this, 06:57:32 if i were to create a variable A and allot 1 CELLS to it 06:57:43 then i created b c d e the same way 06:58:18 then if i'd do this: A 2 cells + 32 ! 06:58:26 then c ? will print 32? 06:58:51 erm, yes in win32for, but that is illegal code 06:59:15 but isnt that sort of what happens with allot? 06:59:27 it "reserves" the next x bytes from the ds onwards 06:59:30 look, let's start at the beginning, are you setting up a deck of fixed number of cards? 06:59:37 yea 06:59:59 yes, but there is no guarantee that CREATE doesn't also store into the dictionary 07:00:09 ok, how many cards? 07:00:35 but i need to really _understand_ the whole concept if i'm ever wanna use it, so thats why i'm being a bit ... whatever you wanna call it 07:00:37 81 07:00:54 so they can be represented by a byte ... 07:01:18 yes, 4 digits per card, each digit 3 can be different digits 07:01:26 CREATE deck 81 ALLOT 07:02:28 : deck-init ( -- ) 81 0 DO I deck I + c! LOOP ; 07:02:38 ok, create deck creates the deck and leaves the adr of deck at the data pointer, then allot picks (the next?) 81 bytes from that pointer onwards... 07:02:52 exactly 07:03:00 thus creating a variable of 81 bytes 07:03:11 deck-init fills the array with 1 ... 2 ... 3 ... 81 07:03:22 so this is always consistent? i mean always serial? 07:03:33 never jumps from one part of the memmory to another? 07:04:04 yes 07:04:11 hm ok 07:04:27 did you understand deck-init ??? 07:04:46 I'm writing deck-shuffle on a editor, will paste it shortly 07:05:40 yes, loop from 0 to 81, put i to stack, adr of deck to stack, increase it with i, then put the i thats n2 to the adr in the next byte from the TOS adr 07:05:53 and like you said, filling the array from 0 to 81 07:06:08 eh isnt that 0 to 80 actually? 07:06:41 I believe DO is ( limit index -- ) 07:07:13 well if you take the code i pasted earlier, it runs from 0 to 80, rather then 1 to 91 07:07:14 81. 07:07:31 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 07:07:46 that's correct, but it also returns an offset 0 07:08:04 0 to 80 is 81 different bytes 07:08:11 ye 07:09:16 but just for my own reference, what is the difference, as a result for x i mean, to "create x 2 alot", and "create x create y 1 allot create z 1 allot" ? x will in both cases be 2 bytes right? except with the latter you would be able to call teh first byte by y and the second by z... 07:10:01 alot is allot ofc.. 07:10:45 yes, but that is illegal 07:10:58 why? :) 07:11:27 because CREATE might actually stuff other things into the data area 07:11:35 win32for just happens not to 07:12:08 like what? the size of the variable for instance? 07:12:12 ok, lets say you wanted to 81 different accessors into your deck (god forbid) 07:12:21 haha, aye 07:12:28 like maybe the characters of the name of the new word 07:12:40 CREATE deck 81 07:12:45 CREATE deck 81 ALLOT 07:13:22 : c1 ( -- aCard ) 0 deck + ; 07:13:29 : c2 ( -- aCard ) 1 deck + ; 07:13:36 : c3 ( -- aCard ) 2 deck + ; 07:13:43 etc ad nauseum 07:13:55 yea understood 07:14:01 you'd never actually do that, of course 07:14:08 :) 07:14:15 didnt intend to 07:14:25 you might define "card@" and "card!" though 07:14:48 the addressing thing just popped to mind as something that would be possible if everything is really serial and nothing else is done with the data 07:14:54 : card@ ( index -- value ) card + c@ ; 07:15:15 : card! ( value index -- ) card + c! ; 07:15:48 ye 07:16:15 well this cleared up quite some knots i had for the memmory, thanks alot :) 07:17:05 sure, want the shuffle code? 07:17:25 well i guess you created it, sure, but i dont think it'll be much of a problem to create 07:18:07 loop 1-81, switch card i with a random (1-81) card in the array 07:18:49 : deck-shuffle ( -- ) 07:18:49 81 0 07:18:49 DO 07:18:49 I deck + ( aCard1 ) 07:18:49 81 RANDOM deck + ( aCard1 aCard2 ) 07:18:50 DUP C@ ( aCard1 aCard2 val2 ) 07:18:52 ROT DUP C@ ( aCard1 aCard2 val2 val1 ) 07:18:54 ROT C! ( aCard1 val2 ) 07:18:56 SWAP C! ( ) 07:18:58 LOOP ; 07:19:10 that should have been 10 lines 07:19:17 can I ask why 81 cards? 07:19:24 SET game 07:19:29 three cubed 07:19:33 http://www.reed.edu/~mcphailb/applets/set/ 07:19:39 detailed explanation there 07:19:47 oh, cool 07:19:51 the different colors, shapes, and textures 07:19:58 three different colors, shapes, and textures 07:19:59 yah. 07:20:24 4 properties, 3 options per properties, 3^4 07:20:47 erm ... 07:21:23 that would be 3*3*3*3 allocated, not 81 07:21:43 oh, duh, I'm wrong, nevermind 07:21:46 3*3=9 9*3=27 ... 07:21:48 :p 07:22:03 --- nick: MrReach -> MrDork 07:25:16 well while i'm on the noobcourse, whats the difference between ! and , ? or maybe better, what does , do... place a number in the dictionairy... but what does that mean in practice? 07:25:35 --- nick: MrDork -> MrReach 07:26:02 well, the stack effect, for one thing 07:26:37 hmm, both have nothing as output 07:26:46 ! takes an adr, where , doesnt 07:26:52 yup 07:27:06 , allots one cell and puts the value there 07:27:09 ok, assuming that here is defined as ": HERE ( -- a ) H @ ; " 07:27:21 * qFox looks up h 07:27:46 often, H is a variable that holds the user area pointer 07:27:55 hmmm ok. 07:27:58 oh, tathi had a more elegant solution 07:28:13 oh 07:28:13 so 07:28:17 5 , 07:28:25 here ? 07:28:28 will be 5 07:28:29 : , ( x -- ) HERE 1 CELLS ALLOT ! ; 07:28:35 right? 07:28:59 oooh and now i understand your example earlier, create x 1 , 2 , 3 , 07:29:17 the dictionairy set me in the wrong direction... 07:29:20 the term i mean 07:29:30 right 07:29:50 the dictionary and user data area are often in different memory regions 07:30:05 the way i see it now, dictionairy is the memmory area where you can play around and store stuff, but isnt it also the thing where you store words? 07:30:25 or are they both teh same area?.. 07:30:35 substitute "user data area" in the sentence above 07:30:48 in *SOME* forths, they are the same area 07:30:54 hm ok 07:31:38 so you can't count on "CREATE x 1 , CREATE y 2 ," being contiguous 07:32:17 although it happens to be in win32forth 07:32:43 but you can count on it with "create x 10 allot" ? 07:32:52 or that not either 07:32:56 yes, by definition 07:32:59 ok 07:33:14 and here, will it point to the begin or the end of the alloted area? 07:33:30 after 07:33:34 k 07:34:00 if it's alloted, then it's already in the user data area 07:34:05 look ... 07:34:40 "HERE 100 ALLOT HERE" will leave two addresses 07:34:59 yea :) 07:35:26 the first address (second on stack) will point to the first byte of the 100 bytes of unitialized memory 07:35:45 yep, i understand 07:35:58 the second address (top of stack) will point to the byte just AFTER the last byte of the 100 bytes 07:36:27 and the first byte of the space allot would use next (in winforth anyways) 07:37:00 actually, in any forth it would 07:37:12 k 07:37:14 so long as you didn't call any word that calls CREATE 07:37:31 which includes VARIABLE and colon 07:37:39 so create CAN in some forth's jump around, where allot never (should) does it 07:38:07 yes, tentatively 07:38:09 do definitions of words exist in the same area? 07:38:14 the point is, in some forths, code and data both go in the same space. 07:38:20 _some_ forths 07:38:25 consecutive ALLOTs are guaranteed to be contiguous 07:38:28 ok 07:38:44 but if you do a CREATE in between two ALLOTs, it may stick code in there 07:39:11 and then your data wouldn't be contiguous 07:39:15 but CREATE (and any word that calls CREATE) *MIGHT* put things into the user data area, which would make furthor ALLOTs non-contiguous 07:39:32 heh 07:39:45 and what should you do if you reach the end of your user data area? 07:40:03 because i had that a few minutes ago (i simply closed winforth and reopened it) 07:40:07 get another forth, 'cause the one your using is lame 07:40:13 lol :) 07:40:41 actually, in embedded systems, that is a very real issue 07:40:46 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 07:41:01 and means you need to rethink the structure of your program 07:41:15 well tbh, except for the fact that winforth totally fucks up undo (ctrl-z), i'm quite happy with it, since i found the editor 07:42:10 well, for an experienced forth user, it's biggest drawback is its size 07:42:22 what size do you mean 07:42:44 forthers are used to being able to keep the entire system in their head, files, compiler, dictionary, the whole bit 07:43:02 but win32forth is *WAY* too large and complex for that 07:43:07 oh right 07:43:51 well if i ever get that far i might experient with colorforth and see if i can build a reasonable environment from "Scratch" 07:45:53 btw, whats faster, reading from the memmory, or reading from the stack? not counting the fact you have to put something on the stack to read from the memmory.. 07:46:16 they are both about the same 07:46:23 thought so :) 07:46:39 I notice that you do not use VALUEs and CONSTANTs 07:46:52 not yet anyways, dont even know what value's are 07:46:53 look them up, they are faster than simple variables 07:46:57 k 07:47:15 0 VALUE blah 07:48:07 blah . 0 ok 07:48:07 -1 TO blah ok 07:48:40 assigns -1 to blah? 07:48:49 sort of blah = -1 07:48:49 ? 07:49:03 --- quit: MrReach (Read error: 54 (Connection reset by peer)) 07:49:36 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 07:49:44 --- mode: ChanServ set +o MrReach 07:50:04 sorry, got disconnected ... what was the last you saw? 07:50:11 [16:47:59] -1 TO blah ok 07:50:16 but i got the point 07:50:21 looked up to and value 07:50:32 ok 07:50:39 except, why is it value faster then variable? 07:50:48 isnt the underlying code the same? 07:50:49 --- join: piso (~peter@ip68-8-139-102.sd.sd.cox.net) joined #forth 07:51:10 similar, but variables have to fuss with stuff on the stack 07:51:22 k 07:51:24 values often drop into raw machine code 08:00:01 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:21:17 --- quit: chris (zelazny.freenode.net irc.freenode.net) 08:21:17 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 08:21:17 --- quit: tathi (zelazny.freenode.net irc.freenode.net) 08:21:17 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 08:21:17 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 08:21:18 --- quit: nekokawaiibakach (zelazny.freenode.net irc.freenode.net) 08:21:18 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 08:21:18 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: Herkamire (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: chandler (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: piso (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: I440r (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: mur (zelazny.freenode.net irc.freenode.net) 08:21:19 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 08:21:25 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 08:21:25 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:21:25 --- join: piso (~peter@ip68-8-139-102.sd.sd.cox.net) joined #forth 08:21:25 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 08:21:25 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 08:21:25 --- join: nekokawaiibakach (wossname@HSE-QuebecCity-ppp80816.qc.sympatico.ca) joined #forth 08:21:25 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 08:21:25 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 08:21:25 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 08:21:25 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 08:21:25 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 08:21:25 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 08:21:25 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 08:21:25 --- join: ianp (ian@inpuj.net) joined #forth 08:21:25 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 08:21:25 --- join: OrngeTide (orange@rm-f.net) joined #forth 08:21:25 --- join: ChanServ (ChanServ@services.) joined #forth 08:21:25 --- join: mur (~mur@uiah.fi) joined #forth 08:21:25 --- mode: zelazny.freenode.net set +oo MrReach ChanServ 08:21:58 --- quit: MysticOne (zelazny.freenode.net irc.freenode.net) 08:21:58 --- quit: chris (zelazny.freenode.net irc.freenode.net) 08:21:58 --- quit: OrngeTide (zelazny.freenode.net irc.freenode.net) 08:21:58 --- quit: tathi (zelazny.freenode.net irc.freenode.net) 08:21:58 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 08:21:58 --- quit: warpzero (zelazny.freenode.net irc.freenode.net) 08:21:58 --- quit: nekokawaiibakach (zelazny.freenode.net irc.freenode.net) 08:21:58 --- quit: fridge (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: oooo__ (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: piso (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: Herkamire (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: chandler (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: MrReach (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: Hipo (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: I440r (zelazny.freenode.net irc.freenode.net) 08:21:59 --- quit: mur (zelazny.freenode.net irc.freenode.net) 08:22:09 --- join: ChanServ (ChanServ@services.) joined #forth 08:22:09 --- join: mur (~mur@uiah.fi) joined #forth 08:22:09 --- join: OrngeTide (orange@rm-f.net) joined #forth 08:22:09 --- join: Hipo (~hipo@dsl-hkigw4na7.dial.inet.fi) joined #forth 08:22:09 --- join: ianp (ian@inpuj.net) joined #forth 08:22:09 --- join: oooo__ (o@virgo.bombsquad.org) joined #forth 08:22:09 --- join: MysticOne (mysticone@mysticone.usercloak.freenode) joined #forth 08:22:09 --- join: fridge (~fridge@dsl-203-33-163-107.NSW.netspace.net.au) joined #forth 08:22:09 --- join: chris (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 08:22:09 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 08:22:09 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 08:22:09 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 08:22:09 --- join: nekokawaiibakach (wossname@HSE-QuebecCity-ppp80816.qc.sympatico.ca) joined #forth 08:22:09 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 08:22:09 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 08:22:09 --- join: piso (~peter@ip68-8-139-102.sd.sd.cox.net) joined #forth 08:22:09 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:22:09 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 08:22:09 --- mode: zelazny.freenode.net set +oo ChanServ MrReach 08:22:48 hmmmm the behaviour of c! seems odd, http://pastebot.nd.edu/147?ln=on&submit=Format+it%21 08:23:30 if you run new-deck, and look at the output, you'll notice 222j 222k 222l 08:23:41 but the j k l should be 1 2 3, like the other 3 digits.. 08:23:54 and i can honestly not see where or why he changes that 08:25:51 please take the lines numbers out 08:25:54 all i know is that the first three digits differ 58 or so with with the last one 08:26:09 http://pastebot.nd.edu/147?submit=Format+it%21 08:26:34 and that for some reason they are displayed as chars, rather then numbers 08:28:02 hmmmm actually, could it be that i'm overlapping them somehow? 08:28:20 no that could be if i increased it, but this is storing... 08:29:22 you changed to base 256 08:29:38 which uses an extended character set 08:29:59 ok true, but that still does not explain why the last char differs from the rest 08:30:02 can't imagine why you'd even do that to begin with 08:30:32 god, what a mess 08:30:40 because its saved as 32bit, if you print that number then it would be quite less readable then in base 256 :) 08:31:08 ? 08:31:23 * tathi goes to look 08:32:21 hmmm the output is different from what he saves anyways.. i'll rewrite it 08:33:06 who is "he"?? 08:33:17 winforth, the code 08:33:34 is that your code??? 08:33:41 yes..? 08:33:59 ok 08:34:01 * qFox chuckles 08:35:43 : ncp ( n n -- n/3 ) \ takes counter and offset-number, outputs counter\3 08:36:00 that makes no sense to me 08:36:14 it does to me, but i dont know how to name that offset-number 08:36:32 ok, time to refactor, maybe 08:36:36 refactor? 08:36:45 you've got an array of 81 cells, it seems 08:36:49 yes 08:37:01 devide the code differently 08:37:05 oh right 08:37:17 one cell for each possible card, I presume 08:37:39 are the cards numbered consecutively? or do they have bit fields?? 08:37:43 actually the main body of the code was supplied by Herkamire yesterday, i altered it to be able to save it to an array 08:37:59 they arent exactly numbered as such 08:38:10 its all permutations between 1111 and 3333 08:38:29 oh! gotcha 08:38:37 you're storing as characters? 08:38:49 appearantly, although i meant to store as just numbers 08:38:50 hmmm ... 08:40:08 i dont know what c! does with the number though 08:40:18 i thought he just takes the number and puts it in the byte, nothing else 08:40:22 but now i'm not so sure 08:40:35 that's what it does 08:40:42 what's .r 08:40:52 prints a number with a fixed length 08:41:15 fills the rest with spaces on the left side 08:41:16 ( u n -- ) print number, right justified in n characters 08:41:42 unsigned number, rather, I think 08:42:02 what's with the 51 + 08:42:26 that's probably what's giving you the letter 08:42:29 else you'll get char 1 2 and the other one 08:42:35 yes, and the 1 2 08:42:41 otherwise you get odd chars 08:43:03 hmmmm 08:43:06 fsck 08:43:28 qFox: write a word to print out the card. don't do that silly BASE thing 08:43:33 ok, for new deck ... 08:43:41 Herkamire> thats merely for output, nothing else :) 08:43:49 set up 4 nested loops 08:43:55 oh no you dont 08:43:58 i did that yesterday 08:44:03 and got "yelled at" for doing such 08:44:12 :\ 08:44:22 each one takes its 4 bits, lshifts them and starts the next loop 08:44:31 oh? by whom? 08:44:47 chris i think, although it was chrisw ? i'd have to check logs 08:44:54 Herkamire was here too, he gave me this code 08:44:58 what was his complaint? 08:45:40 you can probably ignore chris :P 08:45:55 4 nested loops are unnessesarily complex 08:46:13 : emit+ dup c@ 48 + emit ; : print-set ( set -- ) emit+ emit+ emit+ emit+ drop ; 08:46:20 each of the field can have how many seperate values? 08:46:28 3 08:46:29 MrReach: 3 08:46:50 ok, so the binary data is NOT contiguous 08:47:32 MrReach> well i thought of the 4 loops myself, was the easiest way, Herkamire (i believe?) came up with this way, which imo was indeed better, and more efficient in code 08:48:42 if your going to use a system where f1*f2*f3*f4 is card number, then numbers are contiguous 08:49:00 in which case you can fill the table with a simple ascending count 08:49:22 if you're using bit fields, then the number are not contiguous 08:50:09 they are contiguous in 3 base... from 1111 to 3333 08:50:22 qFox: start thinking zero-based 08:50:28 0000 to 2222 08:50:33 ye sorry :\ 08:50:36 qFox: will simplify your life :) 08:50:44 no, but it might yours ;) 08:50:46 heh, but 2 bits has four possible values 08:50:59 one of which is not used 08:51:03 ye 08:51:06 qFox: trust me. I've been programming for years. 08:51:21 no i mean, if i think that way you might have it easier ;) 08:51:30 yeah, off-by-one errors are still the most common 08:51:31 your code works fine if you take out the "51 +" btw 08:51:37 yes i noticed 08:51:40 i made a thinking mistake 08:52:03 the 51 + doesnt apply to every digit, just the first one, since its "one number" 08:52:31 so only the right side byte gets the 51 +, and not hte rest, which is the cause of the whole thing :) 08:52:42 I'd probably just use the numbers from 0 to 80 08:53:21 and write a two words to get the fields >BITS and >BYTE 08:53:39 qFox: you're printing it as a number, which means that .r is going to add 48 to each digit (or 97 if it's more than 9) before printing it. 08:53:40 and write a two words to get the fields >FIELDS and FIELDS> 08:54:14 >FIELDS ( colors shapes texture ??? -- ) 08:54:20 ooops, wrong 08:54:38 >FIELDS ( u -- colors shapes texture ??? ) 08:54:41 filling 08:54:54 (the ???) 08:54:57 FIELDS> ( colors shapes texture ??? -- u ) 08:55:01 ok 08:55:05 MrReach: you probably don't want all fields at once. 08:55:21 probably more useful to have a word for each field that fetches it 08:55:21 right, but you can chop out the uneeded ones 08:55:30 or put all of them into local vars 08:55:43 uuugly ugly ugly 08:55:50 lol :p 08:56:05 the names or the concept?? 08:56:37 the thing is, i could do this in mirc in a flash. 4 loops, and the way variables work, done in a minute or two :\ 08:56:46 1) local vars. 2) generating 3 more cells than you want then dropping them 08:56:49 it would reduce the needed data to 1 byte each card, and make the cards contiguous in numbering 08:57:38 the problem is that f1*f2*f3*f4 does not work into natural bit fields in this case 08:57:39 qFox: yes, you're spending most of your time learning the language, and how to fiddle with bytes 08:57:47 :) 08:57:49 MrReach: agreed. 08:58:23 and if you use bits fields, the numbering is sparse rather than condensed 08:58:29 f1-1*27 + f2-1*9 + f3-1*3 + f4 08:58:33 MrReach: it's a tossup for me if I would store the cards as bytes or as 32bit cells so I could fetch each element easily 08:58:52 (f1-1)*27 + (f2-1)*9 + (f3-1)*3 + f4 , could be said is the cardnumber... :) 08:59:14 yes, because those are numbered continuously 09:00:48 but numbered continuously makes it difficult to change/extract any particular field 09:00:56 hmm. you can get rid of the ROT in ncp. 09:01:18 : ncp ( n1 n2 -- n1/3 ) over 3 mod swap set + c! 3 / ; 09:01:29 bit fields make changing/extracting lots easier, but harder to enumberate cards 09:01:46 --- quit: nekokawaiibakach ("^__^%$!") 09:01:53 and you're going to be extracting pieces more than enumerating, I assume. 09:03:09 hmm, actually I'd probably just store as a byte (0-80) and write words >NUMBER >COLOR >SHAPE >SHADING to extract each piece. 09:07:01 you're right about rot tathi, damn :) 09:07:30 tathi: me too. 09:07:37 :) 09:07:45 Well, I don't have rot in my forth 09:07:59 heh, you'd be dropping the numbers off the stack anyway 09:08:59 so it turns out that >FIELDS and FIELDS> wasn't such a bad idea after all 09:11:32 well, I'm not sure you need FIELDS> 09:11:57 because other than enumerating the deck in the first place, I don't _think_ you'll need to change fields 09:12:34 hm what you "need" to know is what to show, so you'd need to know how to show a specific card 09:12:57 do you show a striped version, or a filled, do you show one figure, or three 09:12:58 etc 09:14:12 http://pastebot.nd.edu/148 09:19:27 hm, thats a slightly different approach... maybe even reverse... just create the card depending on what number i is.. 09:20:27 nice :) 09:41:34 Moo. 09:42:34 * chris is back (gone 07:57:20) 09:45:39 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 09:45:39 --- mode: ChanServ set +o kc5tja 10:04:27 : scramble-deck ( -- ) 81 0 do i 4 * deck + dup @ set ! 81 random 4 * deck + tuck @ swap ! set @ swap ! loop ; 10:04:30 my scramble... 10:04:42 (works correctly too :) 10:05:06 hey kc5tja 10:05:32 re 10:05:38 I have to bolt in 15 minutes. 10:06:29 Man, I need to clean this room. 10:06:37 And I need to get FS/Forth working on Linux command-line. 10:06:44 --- join: aktnot (~ident@233.80-202-65.nextgentel.com) joined #forth 10:07:48 I've been slacking. 10:08:15 what does set do ? 10:08:19 Of course, this week is going to be a horrible week for that, since I work 36 hours this week. 10:08:32 set is just a temp variable to hold the data to make the switch 10:08:43 ok :) 10:08:49 (it was already defined before, so i just recycled it :) 10:09:05 why use it at all ? 10:09:22 why not just leave it on the stack ? 10:09:30 easier 10:09:35 I440r: hey 10:09:39 good ennuff :) 10:10:04 hi chris :) 10:10:06 I440r: whats the nasm thingy for getting x bytes and setting them to 0? 10:10:07 plus then i'd probably have to resort to rot and roll and whatever, and i deliberatly tried to avoid them 10:10:11 * chris forgot 10:10:30 err i ferget 10:11:04 hrm, i think i found it 10:11:19 times 65536 dd 0 10:11:20 :) 10:11:29 ugh 10:11:36 big... 10:11:37 horribe syntax 10:11:37 lol 10:11:42 :) 10:11:51 qFox: Personally, I'd factor the above definition to help make the meaning of what's on the stack clearer. 10:12:26 aye but it followed the discussion before you joined, sorry :) 10:12:33 * kc5tja nods 10:13:03 and if i would have done it, you would have yelled flood ;) 10:13:16 No, the IRC server would have kicked you. :) 10:13:26 hmmmm probably 10:13:38 Besides, I'm guilty of pasting 1024-byte long source blocks to this channel, so... 10:13:45 haha :) 10:13:47 * kc5tja doesn't mind as long as it's relavent and not abused. 10:14:13 EOF in linux is \ 10:14:18 EOF in linux is \0, right? 10:14:52 chris: There is no EOF character in Linux. 10:14:57 ... 10:15:02 oh 10:15:04 Ok 10:15:07 nevermind, I get it. 10:15:16 :) 10:15:20 i need to calculate it based on the return of read() :) 10:15:24 * chris forgot that 10:15:35 havent done linux asm in ages 10:15:50 just doing a little brainbomb interpreter to get used to it 10:16:57 --- join: schihei (~schihei@pD9548EEE.dip.t-dialin.net) joined #forth 10:17:04 I440r: how does isforth read? 10:17:24 10:17:28 also look in file.f 10:17:36 tho file.f needs work 10:18:58 : this-card 4 * deck + ; 10:18:58 : random-card 81 random this-card ; 10:18:58 : swap'em 2dup >r >r @ swap @ swap r> ! r> ! ; 10:18:58 : scramble-card this-card random-card swap'em ; 10:18:58 : kc's-scramble 81 0 do i scramble-card loop ; 10:19:01 --- quit: schihei (Client Quit) 10:19:08 qFox: That'd be how I'd do it. 10:21:51 Anyway, I have to get to work. Can't hang any longer. 10:21:56 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 10:32:12 Hrm. 10:32:18 Here's how i want it to work: 10:32:22 - Read it in 10:32:27 - Convert to internal bytecode 10:32:34 - Do grouping optimization 10:33:15 - Do snippet optimization 10:33:35 - Repeat last two until no optimizations are being made anymore 10:34:03 - Translate to another bytecode format 10:34:10 - Do string streaming optimizations 10:34:19 - Translate to assembly source 10:34:21 good idea? 10:42:42 * MysticOne dies 10:42:47 need... more... air! 10:43:03 they sell in japan tinned air 10:44:51 we sell tanks of air ... well, I used to :) 10:45:02 I'm just way out of practice with DDR 10:45:07 wore myself out in about 10 minutes 11:06:38 is there a word that produces x spaces, or will i have to make one myself? 11:08:14 spaces, ok :) 11:13:40 :) 12:09:53 --- join: skylan (~sjh@vickesh01-4628.tbaytel.net) joined #forth 12:22:09 --- quit: tathi ("leaving") 12:34:40 * chris is away: haircut 13:01:38 --- quit: I440r ("Leaving") 13:03:00 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 13:10:55 hmm ok, opinions.... i've set up the start of SET, showing the table and all that... now i need to handle input, since i'm not sure how to handle user input-ed strings, i'll let the user enter the numbers instead... whats would be the best way to temp save the numbers, to test them against eachother... 13:11:56 i need to test the digit for each number against the same digit of the other two numbers. its only valid if they are all the same, or all different... if all 4 digit's for all 3 numbers are good for this, the combination is correct :) 13:13:17 so how would i temporarily save the digits to test, on the stack would make it quite complicated, in an array will mean alot of increasing to get to the right value, and the other alternative is making 12 variables (one for each digit).... 13:13:58 making 12 variables (or values) is probably the easiest... 13:20:20 make an array where each index of the array corresponds to one of the 12 variables 13:20:56 but that does mean that you get alot of "array 10 cells +" 13:21:06 or whatever, to get to the correct value 13:21:41 : array create , does> cells + ; 13:21:48 erm i did that wrong 13:22:01 : array create cells allot does> cells + ; 13:22:08 12 array foo 13:22:11 10 foo 13:22:23 returns the address of the 10th item of the array 13:22:32 you can now fetch and store to the nth item with 13:22:42 n foo @ and n foo ! 13:22:58 do you understand that ? 13:23:08 sorta 13:23:11 "array" is a creating word 13:23:13 why cells + ? 13:23:18 it creates your array 13:23:19 isnt it cells * 13:23:23 ill get to that 13:23:27 no 13:23:46 create cells allot <-- allocates the space for your named array 13:23:50 does> ...... 13:24:01 yes.. 13:24:04 when you references your created array it DOES everything after the does> 13:24:06 so 13:24:07 you say 13:24:10 5 foo 13:24:17 but cells + will just do 4 + whatever is on the stack wont it? 13:24:18 foo EXECUTES. 13:24:32 no. cells is like cell * 13:24:41 qFox: : cells cell * ; 13:24:42 so its the equiv of cell * + 13:24:58 what he said :) 13:25:16 hmmm i think thats wrong tho 13:25:29 herk does it need to be does> swap cells + ? 13:25:49 I440r: mmmm :) sure does 13:25:53 lol 13:25:58 I didn't see that :) 13:26:15 : array create cells allot does> swap cells + ; 13:26:21 i almost didnt too lol 13:26:44 man i dont understand the + 13:26:58 qFox: the bit we haven't told you si this: the word created with creade/does> will first put the address of the buffer on the stack. Then it will do what you put after does> 13:27:23 yes i know what does> does 13:27:29 cells multiplies the specified N by the cell size. the PLUS adds the n*cells to the address of the array 13:27:38 but wont that just add x to the adres? instead of x cells * 13:27:38 5 foo 13:27:43 stack: 5 13:27:51 stack: 5 buffer-addr 13:28:01 swap 13:28:04 stack: buffer-addr 5 13:28:05 cells 13:28:08 qfox not x cells * - you dont want 5 cells multiplied by the array address 13:28:17 you want it ADDED to the array address 13:28:18 stack: buffer-addr 20 13:28:18 + 13:28:25 stack: addr-of-card-in-buffer 13:28:51 * qFox crackle crackle 13:28:56 sup guys 13:29:22 qFox: have we confused the hell out of you yet? 13:29:29 hi warpzero 13:29:35 sort of, trying to go thru your stack 13:30:08 oooh 13:30:32 of course, cells multiplies by itself, it doesnt need * and the + is for addres and it all resolves 13:30:33 doh 13:30:40 Sup Herkamire? 13:30:56 hi warp 13:31:03 qfox there ya go :) 13:31:12 warpzero: playing with graphics through SDL and being a forth tutor :) 13:31:19 :p 13:31:33 Man I rearanged my speakers and some eletronic equipment around a little and now my room is super-pimpin. 13:32:26 i just got an xm radio - i bought my sister a newer one for her car and inherited her old one heh 13:32:33 warpzero: you stud 13:32:46 i cant get it to work in the house tho cuz i dont have a 6v adapter grr 13:32:50 This sounds much better. 13:32:59 I mean my room looks like shit don't get me wrong. 13:33:13 But functionally and aurily it rocks. 13:33:39 so maybe if you date a blind chick? 13:33:54 Dude that would rock. 13:33:58 I look like shit too. 13:34:01 lol 13:34:31 except then you'd probably have to talk to her a lot 13:34:42 I talk alot anyway. 13:34:53 oh, well, then it sounds perfect 13:35:03 i have a blind cat... 13:35:07 Okay where do I find blind chicks? 13:35:52 donno. we have a school for the deaf in town, but I don't know about one for the blind 13:36:11 they should be around, they have to learn braille and such 13:37:08 whee 13:37:17 hm 13:37:26 --- quit: I440r ("brb") 13:37:27 one of the ircop's on this network is blind :) 13:37:37 serious? 13:37:40 yup 13:37:56 hm, kind of a waste of oper-space imo 13:38:06 i mean, sure he can use a computer and chat and what not 13:38:09 so.. if you "/who 0 o" .. you can find all of the ircops on line i think 13:38:11 dmwaters or someone else? 13:38:16 ok, that's it, I'm ordering a new graphics card today 13:38:28 but what's he gonna do when there's a flood... 13:38:36 ohwell whatever 13:38:36 hm /who 0 o doesn't work here hm 13:41:02 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 13:41:17 I finally figured out how to get quick access to the framebuffer on linux though 13:41:30 unfortunately it's in a YUV format with planes 13:42:00 Hahaha. 13:42:10 funky stuff 13:42:20 u and v planes are a quarter the size of the y plane 13:42:22 Dude, my framebuffer just crashed into my cpu. 13:42:47 Herkamire: That's a compression technique. 13:43:31 I just want something simple and fast 13:43:40 I only want like 5 colors 13:44:00 I just want hardware accelerated scaled blits 13:44:22 Er uh why not just use the normal framebuffer driver in 8 or 4 bit mode? 13:44:36 --- quit: I440r (Remote closed the connection) 13:44:37 too damn slow 13:45:06 I want 70fps fullscreen (1280x1024) 13:45:07 The overlay is faster than the normal mode? 13:45:49 with this silly SDL_DisplayYUVOverlay thing I can get 94fps scaling the thing up from 640x512 to almost fullscreen 13:46:14 but it will only let me do that one overlay, I can't seem to use that technique to blit a bunch of things onto the screen. 13:46:54 I tried OpenGL (through glu/glut) and it was going fast, but it crashed X or my graphics card or something when I quit after running for at least 4 secconds. 13:47:10 What card? 13:47:16 rage 128 pro 13:47:25 agp (4x I think) 13:47:34 Hmmm... 13:47:42 Try SDL->OpenGL ? 13:48:14 warpzero: I tried sdl's OpenGL with regular blitting thing, and no acceleration there 13:48:35 I suppose I could try SDL in place of glut 13:48:36 Try using a texture. 13:48:43 ok 13:48:50 maybe it won't crash that way 13:48:57 There's an mplayer mode like that. 13:49:12 Where it uses cards 3D engine to scale the image. 13:49:28 shit, I just deleted my sdl opengl stuff 13:49:42 Lol. 13:49:55 warpzero: :) I got the sdloverlay thing from mplayer 13:50:20 What are you writing? 13:50:20 mplayer is one of the few (only?) programs I have that runs fullscreen (changing all the pixels every frame) and gets a good framerate 13:50:28 a Zooming User Interface 13:50:43 Hell man. 13:50:48 there's a ZUI demo at humane.sf.net 13:50:55 (in flash) 13:50:59 hell? 13:51:00 In that case I would say use mplayer as an interface. 13:51:20 use mplayer as an interface? what? how? 13:51:33 Just feed it an RGB stream. 13:51:41 I just want a little texture for each letter, and hardware scaled blits 13:51:58 Hmm... then just use X11? 13:52:27 Maybe with Xshm? 13:52:28 you think X would do that quickly? 13:52:36 Yeah with Xshm it might. 13:52:43 If your X driver supports XAA. 13:52:43 what's that? 13:52:56 X shared memory extension. 13:53:32 Normally X11 is a TCP or unix domain socket protocol. 13:53:49 Xshm allows you to add a shared memory too that. 13:54:13 With XAA that should go fast. 13:54:28 looks like XAA is working 13:55:44 I don't see anything about Xshm though 13:55:56 Its a client protocol. 13:55:59 not in xfree log of xdpyinfo 13:56:06 s/of/or/ 13:56:21 sdl wheee 13:56:28 It would be with the X11R6 protocol spec. 13:56:31 xaa is a client protocol? or xshm? 13:56:45 XAA is a driver thing. 13:56:53 Xshm is a client protocol extension. 13:57:31 I'd rather do OpenGL than X 13:57:52 Well than just try to find a mode of SDL that will work. 13:57:56 can I get at least comparable results with OpenGL? 13:58:19 hm 13:58:36 well 13:58:58 under X11 and sdl... you don't get hardware acceleration unless you're using DGA or opengl as your backend. 13:59:14 Xshm/XAA is going to get you close to the driver as possible I think. 13:59:16 given that DGA is generally considered a no no (requiring root access), you're better off going with opengl under x11. 13:59:40 (assuming sdl) 13:59:50 if you're gonna do your own xshm/xaa stuff... err.. good luck :) 13:59:57 Heh. 14:00:07 Yeah I don't know you could try using a texture for each blit. 14:01:31 and ... these days... 14:01:39 using ogl for 2d is a good idea anyways 14:02:10 everyone's got a 3d card, and ogl is more standardized(ish) than vesa 14:02:13 Herkamire: What are your goals really? 14:02:39 so you're more likely to get hardware accelerated anything/everything 14:03:39 short-term goal: create a ZUI under linux that runs smoothely and does colored text. make editor in it for my forth-ish language 14:03:51 long-term make an operating system for Mac hardware 14:04:09 Wait so that means you need to scale the text well, right? 14:04:24 no 14:04:29 just pixmaps 14:04:35 I will have one for each character 14:04:47 Use full 3D ogl. 14:05:04 And you can let the card scale the pixmaps for you. 14:05:36 warpzero, wUoNrFk: thanks so much. 14:06:01 I would much rather learn opengl than X crap 14:06:12 Yeah I can see that. 14:06:13 I don't like X one bit, and I wouldn't consider such knowledge useful 14:06:28 I would keep the SDL vs. glut part pretty open. 14:06:41 that also leaves this open to be portable. I'm not sure I'll take advantage of that, but it could be cool. 14:06:48 So you could switch it out easily. 14:06:56 ... if you're eventual target is a new os. 14:07:11 what the.... the sdl opengl example (in the SDL manual) uses glut 14:07:12 i hope you intend on binary compatibility/interoporability with an existing target. 14:07:22 or the use of open source stuff 14:08:01 wUoNrFk: don't think so 14:08:15 it will not run unix software if that's what you mean. 14:08:22 * chris is back (gone 01:33:43) 14:08:30 though I suppose someone could write posix emulation for it if they got really boored 14:08:43 Herkamire: Interesting that both of our goals are to make a new OS. 14:08:59 warpzero: that's not actually an oncommon thing in this room :) 14:09:31 Herkamire: I was planning on the following. 14:11:06 Herkamire: Once I got my shit working in userspace, droping the code into kernel space, then using a pretty much X-less X to power graphics. 14:12:06 Basically I would try and use as little of X as possible just to gain access to a standard driver interface. 14:12:36 Because I do not want to write drivers. 14:12:57 drivers suck. 14:13:04 i do'em for a living :/ 14:13:36 right now i'm doing a psuedo-markup language front end, middle, and back-end for printers (primarily point of sale printers)... 14:13:56 anybody know basic gl/glu/glut who could look over my 3K source file to see if I'm doing something wrong? 14:13:58 Lol postscript. 14:14:11 what did you guys think of my optimizing brainbomb idea? 14:14:35 Herkamire: I know none sorry. Scince I would not be able to use gl for my thing I've never really paid any attention to it. 14:15:02 not nearly as advanced as postscript, html, or any of that.. aint got time 14:15:04 nor desire. 14:15:34 wUoNrFk: Why not just use the stuff that already exists is what I am saying. 14:16:20 chris: What idea is that? 14:16:33 http://jason.herkamire.com/gluttest.c 14:18:21 the link calls out to you! it say "come look at me. I'm easy to read and short. yummmmm..." 14:18:54 Herkamire: Like I said I would try to keep the stuff that is just used to access opengl as modular as possible. 14:20:18 warpzero: of course. 14:20:31 warpzero: ... er hm heh. keep forgetting i'm new here 14:20:47 wUoNrFk: huh? me too. 14:21:11 I just want a simple interface: tex-load tex-blit tex-free swap-buffers clear-buffer 14:21:20 i do embedded stuff at work. we sometimes have an OS, sometimes we don't. all hardware stuff tends to be written by me... 14:21:37 wUoNrFk: cool. do any PPC stuff? 14:21:44 nope 14:21:53 mostly x86 with some uC stuff thrown in here or thre 14:22:27 oh, and fwiw, i don't do forth :) - i just know i440r from ages ago... and there's competent intelligent ppl here... :) 14:22:58 I may be intelligent but I am hardly competent. 14:23:08 heh 14:23:09 wUoNrFk: sure are. you can ask about anything in here (relating to electronics/software) and you'll get answers 14:23:38 I'm more totally fucking nuts then competent. As Herkamire will verifyl. 14:23:44 herk: software: depends on topic .. but yea.. ppl seem to be fairly knowledgeable. particularly concerning the underbelly of things. 14:24:11 wUoNrFk: true. we don't always know about high level stuff at all 14:24:18 ie: in #sdl or other programming channels i might discuss win32 api / sdl stuff / etc ... but here i'd be more likely to ask about some mmx shader routines or why my fuckin fpu state save doesn't work 14:24:39 wUoNrFk: exactly 14:24:44 low level gurus here :) 14:24:59 I come in here to get ignored. 14:24:59 Aparently. 14:25:04 >.< 14:25:05 warp: heh 14:25:08 warpzero: shut up 14:25:09 ;) 14:25:15 * wUoNrFk wanders back to work 14:25:22 gotta figure out how i wanna store images intermediately. 14:25:30 Herkamire: I am working on my language spec. 14:26:14 Herkamire: I am thinking of merging my type and my class stuff but I can't figure out how. 14:30:52 warpzero: I don't know what to say about your language. 14:31:18 seems crazy. but it could be cool if you can get it to work 14:31:40 If I can get it to work the world will suck mah penis. 14:32:00 or, more likely it will continue to ignore you 14:32:20 Fuck you. 14:32:32 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 14:32:51 om :) 14:33:10 * warpzero rethinks his resource hiding model. 14:34:07 Hmm... if volatility can be made relative... 14:34:35 intel has a STD 14:34:58 Hepaghonasyphaherpaids? 14:35:15 lol 14:35:16 no 14:35:20 its has a STD 14:35:29 chris: 14:35:34 What are you trying to say? 14:35:41 look up what STD means 14:35:52 Sexually Transmitted Disease? 14:39:41 I wonder if it would be feasible to variablize variable nams. 14:40:52 Heh... this lanugauge IS totall insane. 14:41:26 hm 14:41:41 in some scripting languages, i would build command / variable names up on the fly and access them that way 14:41:49 it was quite useful. 14:42:15 php does this 14:42:21 simpler than creating a string based linklist (string/variable pairs) 14:42:22 wUoNrFk: I mean so that an object is only accessible by its name which is also an object. 14:42:36 The name is untyped to. 14:42:42 warpzero: languages without ponters often have this 14:42:54 You could probably name something an entire linked list. 14:43:07 I think I will. 14:43:36 I'm teaching my friend QBasic over AIM. 14:43:46 How wonderful. 14:44:23 How do I make a syntax for this. 14:44:26 chris: teach him forth! 14:44:43 i will soon. 14:44:49 i just have to teach him the basics of QB 14:44:58 then, i'll teach him the basics of Forth 14:45:06 then, he'll write a simple forth in qbasic 14:45:12 and then, he'll write a simple basic in forth 14:45:13 :) 14:46:24 Okay this mean that a class must have some way of accepting a variable and returning what amounts to anonymous storage... 14:46:58 We could make semi-absolute pairs... 14:50:06 A type would just be an identifier thats "less instantiated" then... 14:51:12 This language gets more abstract all the time. 14:51:13 Jesus. 14:59:16 I feel like just calling everything in my language a "thing" instead of an object. 15:04:29 --- quit: I440r ("brb") 15:07:21 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 15:08:47 --- quit: chris (Client Quit) 15:39:08 yay :) my opengl code doesn't crash X now :) yay SDL 15:41:01 should I make a texture for each letter, or should I just make one texture with all the letters in it? 15:46:43 --- quit: Herkamire ("oop brb") 15:51:19 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 16:12:22 alright i give up 16:12:41 how do i use AND or whatever to get one digit of xxxx 16:13:38 --- join: aktnot_ (~ident@233.80-202-65.nextgentel.com) joined #forth 16:13:44 hex or decimal ? 16:13:46 i can get as far getting the x from xyyy 16:13:49 dec 16:14:05 hm.. using 'and' would be difficult for a decimal number 16:14:12 no kidding :\ 16:14:16 at least, a binary number :) 16:14:36 well i gave up on and, at first i thought i'd be easy, but ... fat luck 16:14:39 using 'div' or 'idiv' will give ya what you want, but be a bit slower. 16:15:04 qfox if its a decimal number use /mod 16:15:12 /mod? 16:15:14 to extract a single digit in any base use base /mod 16:15:22 it returns the remainder too 16:15:22 * qFox looks it up 16:15:30 3556 % 10000 will give you 3556, no ? 16:15:39 3556 % 1000 would give you 556, no ? 16:15:41 it gives you mod 16:15:45 1234 10 /mod . . 123 1 16:15:58 er 16:16:17 wUoNrFk, no - % usually isnt used for modulo in forth - im thinking of making that change tho 16:16:38 why bother making % as an alias for mod 16:16:40 :s 16:16:49 erm i did that wrong btw lol 16:16:56 anyways 16:17:03 1234 10 /mod . . 123 4 16:17:11 not an alias for it 16:17:14 a replacement for it 16:17:18 the number is a 4 digit number, containing numbers between 1 and 3 16:17:24 i.e. removing "mod" and using % 16:17:37 hm 16:17:39 heh 16:18:12 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 16:18:18 why would you want to remove mod? 16:18:57 because its not forthlike 16:19:07 isnt it the basis of forth? 16:19:17 its was a mistake i think 16:19:21 lol :p 16:19:21 "mod" is three charactes 16:19:29 why not use "fetch" and "store" too ? 16:19:37 instead of "@" and "!" 16:19:57 !%*)(@&# !!!! 16:20:00 * wUoNrFk ahems 16:20:02 and goes back to work 16:20:05 :) 16:20:06 haha 16:20:17 no swearing in forth! 16:21:34 fine, void * foo = (void *)rand(); foo(); 16:21:42 er 16:22:02 that could be interpreted as swearing... 16:22:03 :) 16:22:06 void (* foo)(void); foo = (void (*)(void)) rand(); foo(); 16:22:12 think i got it casted right that time. 16:22:20 you dont need to invent swear words in c - they are all swear words anyway :) 16:22:31 RAND EXECUTE 16:22:34 :) 16:23:23 ok 16:23:31 aside from a rather complicated if structure 16:23:42 how do i "simply" get one digit with /mod ? 16:23:56 i'm sorry, i dont see it 16:24:36 can i convert the number to a string perhaps? is there a function for it? or else how can i do that? :\ 16:24:57 it sounds so simple... 16:26:23 --- quit: aktnot (Read error: 110 (Connection timed out)) 16:27:25 <# # # # #s and #> 16:27:29 look in to those words 16:27:37 k.. 16:27:58 pictured numeric output? 16:28:07 however - i dont know if thats how gforth does it 16:28:08 bleh 16:28:15 i'm on winforth 16:28:16 :) 16:29:09 but what does pictured num output mean? number to char? 16:29:48 heh 16:30:06 it means you can put any number of leading zeros on a number string prior to display 16:30:08 basically 16:30:11 you deside the format 16:30:25 you can even put dashes, dots or ANY other character inside the number string 16:30:30 useful for dates etc 16:30:37 or adding am/pm etc to a time 16:31:10 well i'm not sure how to use that.. but this seems to be exactly what i want... <# # # # 123 #> . 3 16:32:32 just for onlyme: out[(((y - starty) / 7) * width) + x] |= (data[(y * width) + x] ? 0 : (1 << (7 - (y % 7)))); 16:32:34 no 16:32:39 you have 123 on the stack 16:33:01 no sorry, its really 3 16:33:01 it needs to be a double number tho so you should eitehr do s>d or just put a zero there too 16:33:02 then you do 16:33:05 and two if i use two hashes 16:33:07 <# #s #> 16:33:12 and you will have a string in pad 16:33:34 i'll read a tutorial on it 16:33:43 will probably save you some trouble :) 16:33:49 for now this is exactly what i needed 16:34:18 ok damn 16:34:19 :) 16:35:16 guess i'll read it now 16:38:21 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 16:46:19 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 16:46:43 --- nick: chrisrw -> chris 16:50:17 * chris is away: work 16:52:01 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 16:52:01 --- mode: ChanServ set +o kc5tja 17:01:41 ok, i hope this tutorial is very wrong, because all the examples bork up and i have no clue how to do it correctly 17:01:42 http://www.geocities.com/SiliconValley/Bay/2334/4thl2-9.htm 17:02:54 hmm 17:02:59 They are correct for ANSI Forth. 17:03:11 they keep returning stack underflow erros 17:03:13 errors 17:03:25 and when i replace type for . i get an odd number, that doesnt make sense to me 17:03:37 Win32Forth is not ANSI Forth; it's Forth-83. 17:03:41 hm, i think that should be . for type 17:03:48 It's a previous standard, and its numerical output words might differ from ANSI's. 17:03:52 oh 17:03:58 No, because . encapsulates <# #s #> for you. 17:04:19 When you're using <# #s #> you're building a string representation in memory. Hence, you need TYPE to print the string. 17:04:39 some forths also require you to COUNT before you TYPE :) 17:04:55 that ends up in an access violation :p 17:05:00 i tried that 17:05:16 XXX 0 <# # #s #> count type 17:05:21 will type number xxx 17:05:38 with at least ONE digit :) 17:05:42 12 0 <# #s #> count type ; 17:05:42 EXCEPTION 0xC0000005 ACCESS_VIOLATION 17:05:48 actually i think the # is not needed 17:05:54 you will always get at least one digit anyway 17:05:59 and if i include the # the same result 17:06:06 but # # #s wil give at least 2 17:06:22 use a different forth :P 17:06:27 :( 17:06:30 qFox: Don't use COUNT. #> returns a proper string/length pair on the stack. 17:06:47 kc5 yes it does in isforth too 17:06:52 but in swiftforth it doesnt 17:07:02 you have to count in swiftforth 17:07:05 132 0 <# # #s #> type 132 ok 17:07:05 132 0 <# #s #> type 132 ok 17:07:08 I440r: My rear; when I downloaded SwiftForth it worked *precisely* to ANSI Specifications. 17:07:46 132 0 <# # # #s #> type 132 ok 17:07:46 132 0 <# # # # #s #> type 0132 ok 17:07:48 hm 17:07:55 kc5 this bit me in the ass with swiftx 17:08:03 Remember that Forth, Inc. virtually defined all of ANSI Forth. :) It doesn't make sense for their products to not conform. 17:08:12 I440r: i don't believe you. Sorry. 17:08:22 kc5 fine - hang on 17:08:28 qFox: Remember that one # refers to one digit. 17:08:45 #s is basically a loop that calls # repeatedly until no more digits are left to convert. 17:09:11 hmmm why is your hash smaller then mine? 17:09:14 # 17:09:30 or did you cheat... # 17:09:31 Because I used boldface to distinguish normal text from Forth source text. 17:09:32 ah you did 17:09:42 heh yea ok it looked odd 17:10:40 alright, i'm trying to get one digit from a 4 digit number 17:10:54 can you give me an example that "should" work to get that? 17:11:22 <# # # # # #> drop (get-digit-offset) + c@ 17:11:43 where (get-digit-offset) is some code or word which places the desired digit offset on the stack. 17:31:01 --- quit: qFox ("if at first you dont succeed, quit again") 17:38:46 whers futhin 17:38:54 :/ 17:43:24 hey kc5tja 17:51:28 --- quit: tathi ("leaving") 18:10:32 Sorry; as expected, I fell asleep in a nap. 18:12:29 My goal, by night's end, is to get FS/Forth's target image taking names and displaying messages. 18:16:18 okay i wont try to distract you then 18:35:28 * warpzero is away: oh my 18:41:17 --- quit: wUoNrFk (Remote closed the connection) 19:05:45 --- quit: I440r ("brb") 19:07:26 --- join: aktnot (~ident@233.80-202-65.nextgentel.com) joined #forth 19:19:57 --- quit: aktnot_ (Read error: 110 (Connection timed out)) 19:22:01 --- quit: fridge ("Client exiting") 19:46:29 * chris is back (gone 02:56:13) 19:46:44 Moo. 19:46:48 hi kc5tja 19:49:35 --- quit: chris (Nick collision from services.) 19:49:47 --- join: _chrisrw_ (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 19:50:11 --- nick: _chrisrw_ -> chrisrw 19:52:01 re chrisrw 19:52:06 Getting some coding done on FS/Forth. 19:52:11 yeah! 19:52:15 tell me when its usable. 19:52:28 I might write something neat for it for you. 19:52:32 Don't expect it to be usable for at least another two months. 19:52:35 like a block editor' 19:52:44 * kc5tja already has a block editor. Two of them, actually. :) 19:52:47 or maybe curses without the cussing :) 19:52:53 oh yeah, the ed-like one 19:52:53 :) 19:54:08 Well, one of the applications I want to write using FS/Forth is a printed circuit board editor. 19:54:17 So SDL support will definitely be forth-coming. 19:54:25 oh yay 20:02:51 Just implemented the DROP peep-hole optimization. 20:03:11 heh, nice. 20:03:34 i would love a code-generation-optimization book 20:03:54 brb -- coding again... 20:04:11 ok :) 20:05:54 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 20:21:19 --- join: arke (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 20:23:00 --- quit: chrisrw (Remote closed the connection) 20:24:53 --- quit: arke (Read error: 104 (Connection reset by peer)) 20:28:45 --- join: chrisrw (~chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 20:40:03 kc5tja: hey, no optomizing! ;) get back to work ;) 20:43:22 "_ 20:43:25 :) 20:56:12 wheres futhin i gotta whoop his ass now 20:56:24 that has to be one of the worst movies ive ever seen lol 21:10:19 lol 21:10:19 what movie? 21:17:57 equilibrium 21:17:59 lol 21:22:01 ..ok 21:22:21 GOD DAMMIT 21:22:32 ALL I WANT IS TO PLAY A FUCKING MIDI FILE IS THAT SO GOD DAMN HARD 21:22:34 ugh 21:24:29 Herkamire: ?? 21:25:08 ugh 21:25:16 how do i just simply play a god damn midi file? 21:25:42 Doesn't xmms support midi? 21:25:55 I'm sure there are tons of MIDI players available for Linux. 21:25:55 its not playing it 21:26:22 actually 21:26:28 xmms isnt edven adding it to the playlist 21:26:31 uuuugh 21:27:27 http://musicmoz.org/Computers/MIDI/Software/Linux/Players/ has a small list of MIDI players for Linux. 21:27:31 Not sure if that will help or not. 21:27:37 * kc5tja doesn't play MIDI files. 21:27:45 well, kmidi complains about no midi output device. 21:27:49 is that it? 21:27:50 lol 21:28:47 That's likely to have something to do with it. 21:29:06 You have MIDI support compiled into your sound drivers or something? 21:29:18 (again, I have no idea what I'm talking about here; I am just throwing ideas around) 21:30:27 uum 21:30:35 im still with the overloaded stock SuSE kernelo 21:30:38 so yeah, it should 21:34:05 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 22:08:10 * chrisrw is away: sleep 22:19:20 --- join: Serg (~z@212.34.52.140) joined #forth 22:54:29 --- quit: Serg () 23:00:15 --- quit: Herkamire ("ok, past my bedtime") 23:15:14 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:16:02 --- quit: onetom ("leaving") 23:18:02 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 23:59:59 --- log: ended forth/03.12.28