00:00:00 --- log: started forth/15.01.18 01:23:52 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 01:28:32 --- quit: mnemnion (Ping timeout: 252 seconds) 02:12:45 --- quit: tangentstorm (Quit: need to concentrate.) 02:40:33 --- join: dys (~user@ip-109-41-152-132.web.vodafone.de) joined #forth 03:12:35 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 03:17:15 --- quit: mnemnion (Ping timeout: 246 seconds) 03:26:45 --- quit: joneshf-laptop (Ping timeout: 265 seconds) 03:31:04 --- join: joneshf-laptop (~joneshf@98.208.35.89) joined #forth 03:35:33 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 03:40:10 --- quit: mnemnion (Ping timeout: 245 seconds) 03:46:03 --- join: _spt_ (~jaat@host-92-24-239-189.ppp.as43234.net) joined #forth 03:46:16 --- quit: _spt_ (Changing host) 03:46:16 --- join: _spt_ (~jaat@unaffiliated/-spt-/x-5624824) joined #forth 03:56:03 --- join: Bahman (~Bahman@188.159.28.90) joined #forth 04:30:06 --- join: Zarutian (~Adium@168-110-22-46.fiber.hringdu.is) joined #forth 04:31:04 --- quit: darkf (Ping timeout: 246 seconds) 04:44:02 --- join: darkf (~darkf___@unaffiliated/darkf) joined #forth 04:54:33 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #forth 05:42:11 --- join: fantazo (~fantazo@2001:858:5:3a41:99d8:b33b:fce0:c986) joined #forth 05:46:49 I440r, you can xor the pair exchanges directly on the stack inplace without any additional data allocations. 05:58:42 --- join: RodgerTheGreat (~rodger@71.86.237.81) joined #forth 05:58:42 --- mode: ChanServ set +v RodgerTheGreat 06:09:08 Given two variables A & B to exchange you do 1) A = A xor B 2) B = A xor B 3) A = A xor B 06:09:46 with some caveats 06:10:49 caveats would be they must be separate locations otherwise xor against yourself will always result in a zero. the other caveats simply have to do with speed and is completely dependent on the processor and memory architecture. 06:11:12 most compilers will optimize a tmp = a; a = b; b = tmp into using the xchg instruction or your architecture's equivalent 06:11:33 the register allocator might even determine that the swap is unnecessary 06:11:51 I think an xor swap generally falls into the "overly clever tricks" pile 06:12:06 you might occasionally find a situation where it's appropriate 06:12:50 this is forth channerl, not C. :) is this something you'd expect to see in a forth environment? doubtful. and often forths are on tiny processors with very limited memory and possibly no xch instruction. 06:13:50 well then a @ b @ a ! b ! 06:14:12 if your cpu has an xchg op then certainly use it but I'm anticipating his doesn't otherwise he wouldn't be asking. 06:14:22 ok then I'm missing context 06:14:55 Ah yes I see you just arrived. From 10 hours ago: I440r> challenge: reverse the order of the first N parameters on the stack. make N a parameter (not included in the reversal :) 06:16:37 --- quit: RodgerTheGreat (Read error: Connection reset by peer) 07:00:49 --- quit: Zarutian (Quit: Leaving.) 07:11:45 --- join: protist_ (~javery@191.238.69.111.dynamic.snap.net.nz) joined #forth 07:14:23 --- quit: protist (Ping timeout: 256 seconds) 07:51:40 --- join: Zarutian (~Adium@168-110-22-46.fiber.hringdu.is) joined #forth 07:59:14 --- join: xyh (~xieyuheng@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 08:00:08 --- join: kumul (~mool@adsl-64-237-239-137.prtc.net) joined #forth 08:16:27 --- quit: true-grue (Read error: Connection reset by peer) 08:25:11 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 08:32:24 --- quit: darkf (Quit: Leaving) 08:36:41 --- quit: Bahman (Ping timeout: 240 seconds) 08:44:27 --- quit: fantazo (Quit: Verlassend) 08:45:49 --- join: Bahman (~Bahman@188.159.6.38) joined #forth 08:48:51 --- join: samrat (~samrat@123.236.183.195) joined #forth 09:06:22 --- quit: samrat (Ping timeout: 265 seconds) 09:06:51 --- join: samrat (~samrat@123.236.183.195) joined #forth 09:16:43 --- quit: dys (Read error: Connection reset by peer) 09:19:56 --- quit: samrat (Ping timeout: 264 seconds) 09:23:35 --- join: samrat (~samrat@123.236.183.195) joined #forth 09:25:13 --- quit: jameseb (Ping timeout: 276 seconds) 09:26:52 --- join: jameseb (~jameseb_@runciman.hacksoc.org) joined #forth 09:39:20 proteusguy, heh that was just something that popped into my head, what if you receive parameters in a reversed order. how would you process them in the correct order 09:39:50 the answer is to move them off the stack into some buffer and NOT process them from the stack directly. if you need them on the stack in that reversed order you can put them back tho 09:40:23 proteusguy, xor exchanges would be direct memory access, you cant always do that on the stack 09:40:42 you could push them onto the stack of a second forth machine :) 09:41:26 even using the return stack i cant see any way to reverse N parameters usng just normal stack operations :) 09:42:17 well you can do n pick >r n-- loop but the loop cant use the return stack. then do n rep drop followed by n rep r> 09:42:24 not very clean lol 09:42:35 you need 3 stacks. 09:43:15 n 0 do buffer i cells + ! loop <-- transfer parameters to a buffer 09:43:28 yeah or a buffer works too. 09:43:35 thats really the only clean way i can see to do it :) 09:43:53 this isnt something i NEED, just something i though.. hmmm how would you do that 09:44:12 you can also use that buffer as a staging area to put the parameters back on the stack in reverse order 09:44:26 but the buffer needs to be large enough for N parameters what ever N is 09:45:32 or... if your memory manager didnt have a bug in it and fubar on "free" you could use that :) 09:45:38 --- quit: samrat (Ping timeout: 240 seconds) 09:47:31 --- join: samrat1 (~samrat@123.236.183.195) joined #forth 09:51:51 I440r, if you're getting parameters in the reverse order and there's more than two or three then you probably need to fix some other forth word. :) 09:52:16 what if the data comes in from outside? :) 09:53:05 do all your functions in reverse :) 09:53:10 lol 09:53:20 the word that takes them in should know this and ensure they're ordered in a useful manner I would expect. I guess it's useful to have a real scenario to work from. 09:53:30 code them upside down! of course! 09:54:49 data that comes in from the outside is usually buffered but some time in the mid 80's my father wrote a serial receive routine for some factory automation he worked on and that used the stack as its input buffer 09:55:07 yes, in forth 09:57:57 --- quit: samrat1 (Ping timeout: 252 seconds) 10:12:58 --- quit: koisoke (Ping timeout: 252 seconds) 10:20:03 --- quit: mnemnion (Remote host closed the connection) 10:28:12 --- quit: protist_ (Ping timeout: 245 seconds) 10:32:59 --- join: true-grue (~grue@95-27-156-193.broadband.corbina.ru) joined #forth 10:49:54 --- join: mnemnion (~mnemnion@142-254-26-6.dsl.static.fusionbroadband.com) joined #forth 11:08:53 --- quit: irsol (Ping timeout: 264 seconds) 11:28:36 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 11:30:08 --- quit: Bahman (Quit: Ave atque vale) 11:56:15 --- quit: DKordic (Ping timeout: 264 seconds) 12:22:39 --- join: Mat4 (~claude@ip18861915.dynamic.kabel-deutschland.de) joined #forth 12:22:44 hello 12:35:45 heya Mat4 12:36:00 hi tangentsorm, what's new ? 12:36:54 I'm working to replace my operating system with a language environment 12:37:48 oh yeah? :) i'm bootstrapping a parsing system for my own little language right now. 12:38:08 what does 'language environment' mean? 12:38:57 and me 12:39:01 I am re-design and re-implement my language as a VM (first port is to common-lisp) :P 12:39:32 replacing the operating system with my language 12:39:55 and build everything I need on top of that 12:41:24 so like a saiwa command line? :) 12:41:29 heya xyh :) 12:42:22 yes, hi xyh 12:44:09 the VM will have no instruction encoding. 12:44:13 it will be a threaded-code interpreter with a name-table (a hash-table of sting that implements everything which needs the concept of "naming") 12:46:24 --- join: Bahman (~Bahman@188.159.6.38) joined #forth 12:46:57 do you want to support word classes (like in ..) 12:48:02 word classes ? 12:48:21 and every function has to be registered into a title (or say, entitle the title to the function name) 12:48:22 so title is the way I used to manage name of things 12:48:22 a title can be viewed as a type, a module, a structure ... 12:49:21 ok 12:50:02 and every object contents a title and a value. 12:50:57 --- join: spt_1 (~jaat@host-92-24-239-189.ppp.as43234.net) joined #forth 12:54:06 I found that common-lisp has something called reader-macro, so I can use it to embed other languages into common-lisp code. the interface might be :: 12:54:07 block style: 12:54:07 ## cicada 12:54:07 ... 12:54:07 ## end cicada 12:54:07 inline style: 12:54:07 [ (cicada) 12:54:08 ... 12:54:08 ] 12:54:47 --- quit: _spt_ (Ping timeout: 245 seconds) 13:03:15 that is a nice and for sure useful feature 13:26:54 * spt_1 \o/ managed to sample the 30 year old Jupiter ACE 5.25 floppies, using KryoFlux unit 13:34:41 spt_1: you have the images somewhere? 13:57:29 yep, not online yet. 13:58:18 next task to recover single files, as these discs are the only ones, (11 in total) 13:59:42 there is 10 jupiter ACE titles written in Forth and these are the only copies, for now the disc have been imaged 14:01:14 and we have decoded the flux to read the bits, and on on disk date has been recovered and we can read the data as text. 14:02:05 next to the write a program to recove the Forth porgrams from the raw images, for use with emulators 14:02:51 if you want to check out a raw image PM me and I'll give you a link 14:23:23 are those floppies in any strange format or just the usual Forth blocks format? 14:34:36 --- quit: true-grue (Read error: Connection reset by peer) 14:46:55 a very strange format, written to by a 6850 Asynchronous Communications Interface chip, no floppy controller. 14:47:33 --- quit: xyh (Remote host closed the connection) 14:49:01 I've dumped and dis assembled the DOS code you can read it here (Z80/Forth code) http://www.jupiter-ace.co.uk/acedos-dt_rom.html 15:46:12 what the heck is a index hole? 15:49:54 * Zarutian notes that Z80 isnt his strongest arch (prefer 6502 and 658c16 for accumulator based archs) 15:50:43 --- quit: MrMobius (Disconnected by services) 15:51:00 --- join: MrM0bius (~Joey@c-68-45-16-225.hsd1.nj.comcast.net) joined #forth 16:00:18 --- quit: spt_1 (Quit: gone to fix a server for Staffc CC) 16:04:02 --- part: Mat4 left #forth 16:09:18 cat is short for catalogue? 16:43:41 http://www.bahmanm.com/blogs/more-thoughts-on-jvm-based-forth 16:43:55 Comments are most welcome. 16:47:17 --- join: protist_ (~javery@191.238.69.111.dynamic.snap.net.nz) joined #forth 16:48:19 --- quit: Bahman (Quit: Ave atque vale) 17:09:23 --- quit: tangentstorm (Quit: WeeChat 0.3.2) 17:54:52 --- quit: mnemnion (Remote host closed the connection) 17:55:19 --- join: mnemnion (~mnemnion@142-254-26-6.dsl.static.fusionbroadband.com) joined #forth 17:59:31 --- quit: mnemnion (Ping timeout: 246 seconds) 18:03:15 --- quit: karswell (Read error: Connection reset by peer) 18:04:30 --- join: karswell (~user@146.90.202.86) joined #forth 18:19:25 --- join: mnemnion (~mnemnion@c-98-210-219-91.hsd1.ca.comcast.net) joined #forth 18:30:27 --- quit: proteusguy (Ping timeout: 245 seconds) 18:44:57 --- join: proteusguy (~proteusgu@ppp-110-168-229-243.revip5.asianet.co.th) joined #forth 18:44:58 --- mode: ChanServ set +v proteusguy 19:12:23 --- quit: Zarutian (Quit: Leaving.) 19:16:50 --- join: darkf (~darkf___@unaffiliated/darkf) joined #forth 21:27:12 --- join: samrat (~samrat@61.12.96.226) joined #forth 21:51:11 --- nick: MrM0bius -> MrMobius 22:27:00 --- quit: mnemnion (Remote host closed the connection) 22:30:07 --- quit: proteusguy (Read error: Connection reset by peer) 22:41:56 --- quit: kumul (Quit: Leaving) 23:01:56 --- join: proteusguy (~proteusgu@180.183.111.116) joined #forth 23:01:56 --- mode: ChanServ set +v proteusguy 23:44:50 --- join: xyh (~xieyuheng@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 23:59:59 --- log: ended forth/15.01.18