00:00:00 --- log: started forth/17.08.19 00:16:18 --- join: dys (~dys@tmo-123-63.customers.d1-online.com) joined #forth 03:20:02 --- join: karswell_ (~user@207.91.199.146.dyn.plus.net) joined #forth 03:20:40 --- quit: karswell (Ping timeout: 255 seconds) 03:38:23 --- join: peeteerm1 (~martin@94.252.122.249) joined #forth 04:03:54 --- quit: bedah (Ping timeout: 255 seconds) 04:15:05 --- quit: leaverite (Remote host closed the connection) 04:15:05 --- quit: wa5qjh (Remote host closed the connection) 04:16:45 --- join: bedah (~bedah@2a02:810d:243f:f584:cc6b:72ea:cb2b:c61a) joined #forth 04:22:16 --- quit: dys (Ping timeout: 240 seconds) 05:36:43 --- join: dys (~dys@tmo-100-117.customers.d1-online.com) joined #forth 06:01:43 --- quit: bedah (Quit: Ex-Chat) 06:03:17 --- join: bedah (~bedah@2a02:810d:243f:f584:4568:619e:7eda:64a4) joined #forth 06:30:29 --- quit: rtmanpages (Ping timeout: 248 seconds) 08:37:00 --- join: rtmanpages (~rtmanpage@79.sub-174-204-5.myvzw.com) joined #forth 08:47:09 --- join: mark4 (~mark4@99.30.241.51) joined #forth 11:21:18 --- quit: rtmanpages (Ping timeout: 240 seconds) 11:37:05 hmmmm. is there a magic way to achieve a bit shift of only a select region of bits? 11:39:05 I feel like I might have asked this before, but for example, say I have 0x1234: is there some magic number I can multiply that by to get the same effect as "0x1234 dup 0xff0f and swap 0xf0 and 1 << or" 11:39:13 to result in 0x1234 11:39:16 er, 0x1264 11:39:48 probably not, I guess 11:42:29 --- quit: tusj (Remote host closed the connection) 11:47:49 --- quit: karswell_ (Ping timeout: 248 seconds) 11:55:55 --- quit: groovy2shoes (Ping timeout: 276 seconds) 11:58:31 do an AND with a mask. shif the result. do an AND with that same mask then and the original data with the mask NOT then or in the shifted result 12:00:10 dup mask and [shift] asm and swap mask not and or 12:00:18 argh try that again 12:00:30 dup mask and [shift] mask and swap mask not and or 12:00:43 yeah, I know how to do it with and-shift-or 12:00:46 I already wrote that 12:01:10 but sometimes with things like this you can come up with clever multiples to do it in one instruction 12:04:42 that's fine, what I have works: dup 8#10,000,000 and swap 7 and 1 << or 2 << or (multiplies a high bit by 2 and the lowest three bits by 8, and ORs the result with a second item on the stack) 12:05:07 only other way would be in asm :) 12:05:15 oops, actually I changed it: multiplies the high-order bit by 4 12:05:23 anyway i have to reboot 12:05:25 --- quit: mark4 (Quit: Leaving) 12:18:44 --- quit: peeteerm1 (Ping timeout: 248 seconds) 12:20:50 --- join: peeteerm1 (~martin@94.252.122.188) joined #forth 12:31:29 --- quit: peeteerm1 (Quit: leaving) 12:48:49 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 13:30:33 --- join: rtmanpages (~rtmanpage@79.sub-174-204-5.myvzw.com) joined #forth 14:06:38 --- join: wa5qjh (~quassel@175.158.225.192) joined #forth 14:06:38 --- quit: wa5qjh (Changing host) 14:06:38 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 14:07:00 --- join: leaverite (~Thunderbi@freebsd/user/wa5qjh) joined #forth 16:39:18 --- quit: wa5qjh (Remote host closed the connection) 16:39:18 --- nick: leaverite -> wa5qjh 16:39:53 --- join: leaverite (~quassel@175.158.225.192) joined #forth 16:39:53 --- quit: leaverite (Changing host) 16:39:53 --- join: leaverite (~quassel@freebsd/user/wa5qjh) joined #forth 17:04:26 --- nick: leaverite -> leaverite_ 17:04:58 --- nick: wa5qjh -> leaverite 17:05:10 --- nick: leaverite_ -> wa5qjh 17:07:29 I just had an idea to combine create and : 17:07:37 have only one word, : 17:07:57 : buf 20 cells allot ( create an array of 20 cells ) 17:08:19 : double -> dup + ; ( define a word ) 17:10:04 -> or => would be the same thing as does>, except in interpret mode it begins the body of a high-level word 17:10:28 (I'm already using => for does> in my forth, so I guess I could reuse that here) 17:11:31 so traditional forth's : constant , => @ ; would instead look like : constant => : , => @ ; 17:11:46 ah, damnit. 17:12:04 traditional forth's : constant create , does> @ ; would instead look like : constant => : , => @ ; 17:12:55 maybe that's crossing the line into esoteric, though 17:23:13 --- quit: wa5qjh (Remote host closed the connection) 17:23:47 --- join: wa5qjh (~quassel@175.158.225.192) joined #forth 17:23:47 --- quit: wa5qjh (Changing host) 17:23:48 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 17:37:15 --- quit: dys (Ping timeout: 240 seconds) 17:37:40 could get rid of variable though and just use 0 : foo , 18:03:05 ah crap, I see the problem with it. it breaks the rule that a word isn't visible in the search order until it's concluded with ; 18:04:38 that can be dealt with, but I'm not sure if I like it 18:19:43 would make my syntax highlighting simpler though since I could treat all words ending in a colon the same, due to new-word-creation and begin-compilation being separated 19:18:40 --- join: karswell_ (~user@207.91.199.146.dyn.plus.net) joined #forth 19:48:00 --- quit: leaverite (Remote host closed the connection) 19:48:01 --- quit: wa5qjh (Remote host closed the connection) 22:37:52 --- join: wa5qjh (~quassel@175.158.225.192) joined #forth 22:37:52 --- quit: wa5qjh (Changing host) 22:37:53 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 22:38:12 --- join: leaverite (~Thunderbi@freebsd/user/wa5qjh) joined #forth 23:09:32 --- join: dys (~dys@tmo-108-188.customers.d1-online.com) joined #forth 23:30:04 --- quit: wa5qjh (Quit: No Ping reply in 180 seconds.) 23:30:05 --- nick: leaverite -> wa5qjh 23:31:46 --- join: leaverite (~quassel@freebsd/user/wa5qjh) joined #forth 23:33:29 --- nick: leaverite -> wa5qjh_ 23:33:56 --- nick: wa5qjh -> wa5qjh_1 23:59:59 --- log: ended forth/17.08.19