00:00:00 --- log: started retro/06.08.02 00:38:30 --- quit: jas2o ("Chatzilla 0.9.74 [XULRunner 1.8.0.1/2006012608]") 00:43:34 --- join: Cheery (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #retro 02:24:37 --- join: nighty_ (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #retro 02:26:47 --- quit: nighty_ (Read error: 104 (Connection reset by peer)) 02:28:10 --- join: nighty_ (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #retro 02:47:36 --- quit: Cheery (Nick collision from services.) 02:47:59 --- join: Cheery_ (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #retro 02:48:20 --- nick: Cheery_ -> Cheery 03:58:05 Oh man, this'll be beautiful. :) 03:58:16 match: al /r8 _ /r32 uni; $43 n; 04:00:24 : reg-blah ( dr tr -- ) 04:00:24 chain: assemble, 04:00:24 uni-reg >reg1 04:00:24 uni-reg >reg2 04:00:24 unify ; 04:00:25 match: al /r8 _ /r32 uni; $43 n; 04:00:27 match: _ /r32 _ /r32 uni; $4E ; 04:02:10 this works also for immediate size. 04:02:40 uni-imm >immediate 04:07:36 Actually, by little hackery, you can make it support little optimizations in choosing of opcode. 04:08:09 for example, it can choose some extended opcode by using $xx >reg2 -form after uni; 04:08:32 now I'm wondering how should I implement actual match: and uni: 04:08:36 rest is simple. :) 04:12:30 =) 04:12:34 =) 04:14:51 I think I'll do it somewhat this way: 04:16:49 match: starts a special little routine which reads and executes stuff, compiling literals to be pushed into match-stack until uni; closes the stack compiler and writes a matcher call. 04:17:42 then there comes some normally compiled stuff. 04:19:18 after that, the matcher makes a condition close and makes a reloc which by default points to command which writes "*** ERROR! MATCHING FAILED.". 05:40:54 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #retro 05:55:55 --- quit: nighty_ (Client Quit) 06:49:15 --- join: Ray_work (n=Raystm2@199.227.227.26) joined #retro 07:24:14 --- join: nighty_ (n=nighty@66-163-28-100.ip.tor.radiant.net) joined #retro 07:46:44 --- join: docl (n=docl@74-36-210-133.dr01.hmdl.id.frontiernet.net) joined #retro 09:03:51 --- nick: Raystm2 -> nanstm 11:19:54 Hey! 11:20:03 I built my assembler's backbone. 11:21:19 Now I need a real-life test. 11:21:29 and some instructions written in. :)) 11:21:48 I changed the license to public domain. 11:37:36 good for you! :) 11:38:39 here's a hello world in asm: http://www2.latech.edu/~acm/helloworld/asm.html 11:40:38 good for me? :) 11:40:42 It is good for you too. 11:42:22 hehe yup :) 11:51:00 weird thing, It gives different values from manually given ebx and esi compared to my autogenerated ones. 11:51:16 when I peek it in more, there is no differences. :/ 11:51:39 @ecx @edx @ebx @esi @edi @esp @ebp . . . . . . . 11:51:48 .ebp .esp .edi .esi .ebx .edx .ecx 11:51:54 0 -1080662848 134538161 134527404 134665138 134674915 4 11:52:02 0 -1080662848 134538333 134527416 1 134675150 4 11:54:11 hi Cheery 11:54:31 I did yesterday a little bit of work for a sx assembler... 11:57:26 virl: intresting. 12:00:09 well, I have also been working on a forth for the XGS for a long time 12:01:30 Hmm. 12:01:41 Actually, only two of those values are same... 12:01:53 virl: how I may end up with values like this? 12:02:58 but the devtools were only on windows, and so I decided a couple of days ago that I write them and reprogram it. 12:04:35 Cheery, I don't really understand the question 12:04:43 with values like this? 12:06:37 they seem to be memory addresses or what? 12:08:22 Thought, the functions are identical! 12:08:46 almost 12:08:51 @ecx? @edx? are identical? 12:08:59 @ecx .ecx 12:09:30 my primitive function dumper says that if I do functions: 12:09:41 : @ecx dup [ $c889 2, ] ; 12:09:49 : _ecx dup [ ecx eax reg-move ] ; 12:10:07 that they are giving same memory print: 89 46 fc 8d 76 fc 89 c8 c3 12:13:19 --- join: crc_work (n=cchilder@h-64-105-207-163.phlapafg.covad.net) joined #retro 12:15:33 Cheery: the register values are not saved/restored by the primitives; this is why they change 12:16:39 crc_work: would you mind to test this or upload it somewhere? 12:16:46 I'd have .tar.gz package from sources. 12:17:56 if you email it to crc@retroforth.org, I'll test it when I get home 12:18:26 ok. 12:20:12 * crc_work will have to set up an ssh account on retroforth.org for you sometime... 12:21:30 --- part: crc_work left #retro 12:25:09 crc: tell me with mail if you didn't get it. 12:33:00 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-109-255.pools.arcor-ip.net) joined #retro 12:37:23 --- quit: Snoopy42 (Read error: 131 (Connection reset by peer)) 12:37:28 --- nick: snoopy_1711 -> Snoopy42 13:13:05 --- nick: nanstm -> tiff 13:29:17 --- quit: timlarson_ ("Leaving") 14:11:13 --- part: Cheery left #retro 14:32:56 --- quit: nighty_ ("Disappears in a puff of smoke") 14:39:56 --- join: docl_ (n=docl@74-36-210-133.dr01.hmdl.id.frontiernet.net) joined #retro 14:52:37 --- quit: docl (Read error: 110 (Connection timed out)) 14:57:14 crc: ping? 14:59:10 crc: i may need your help forming an "if with-in and if" statement in retroforth. 14:59:24 this could possibly become a switch case statement. 15:01:03 going home 15:01:44 --- quit: Ray_work ("User pushed the X - because it's Xtra, baby") 15:21:22 hi 16:16:43 hi 16:16:45 oops 16:16:49 --- nick: tiff -> Raystm2 16:17:08 hi 16:19:03 In Fort Worth/Dallas metroplex it's 9999 degrees on the weather map on tv. 16:19:23 Oh wait that's 99 FW and 99 Dallas. 16:19:27 :) 16:19:58 little parsing joke there. 16:21:00 okay, very little. 16:23:40 I'm still working on documentation for the editor as well as some other fun things 16:25:33 crc: this is fun. I really enjoy working with RetroForth. 16:25:49 I only have one problem with it, and it's all my own fault. 16:25:49 good 16:25:53 what's that? 16:26:11 I spend time trying to figure out stuff when I should just be reading source. 16:26:44 just about every construct that is capable of building in Retro has been built in source. 16:27:00 most of retro is source :) 16:27:07 Exactly. 16:27:10 * crc loves the model 16:27:20 I do as well. 16:27:38 I like the way it codes because it models the way one thinks. 16:28:28 you don't wanna waste time reading documentation to see if you are gonna step on a word. Vector it, loc: it, voc: it. what ever. great tool. 16:30:30 I need to merge ep into mvs and then call mvs mv. 16:31:32 I've got it all sorted out in my head but I need to see how if statements nest so that you get ( n--n) cus the ep needs to be passive. 16:32:14 if statements can be nested easily 16:32:20 --- nick: docl_ -> docl 16:32:26 if ... if ... if ... then ... then ... then 16:32:28 :) 16:32:49 first if with last then? 16:32:57 yes 16:33:00 if so that's what I thought. 16:33:01 okay 16:33:04 each if has a matching then 16:33:14 now what is this ;; and ;then about? 16:33:28 ;; is like "exit" in ANS forths 16:33:45 compiles a ret (tail recursive if possible) 16:33:46 okay, is exit like leave for a loop, /me ANS's this 16:33:50 ;then is like "exit then" 16:34:03 OH ;; is an ending no then 16:34:28 you still need a then 16:34:35 okay. 16:34:42 if statements *must* be paired or strange bugs ensue 16:34:48 I see. 16:34:57 there are a lot of conditional forms in retro 16:35:04 :) I like them. 16:35:10 me too 16:36:32 What I really like is that you seem to be combining natural pairs of concepts for convenience, ala the prefixes and much much more. 16:39:00 http://retroforth.net/discuss/comments.php?DiscussionID=5 for a short overview of the conditional forms 16:39:26 just in time for me and ep :) 16:40:10 the: t f t/f forms are the newest ones, making use of the anonymous definitions 16:40:15 soon the one command mv can be changed into that evaluator that docl did last week and you just enter the move and hit the 16:40:32 i've redefined f already. 16:40:39 :) 16:40:57 ahh 16:41:00 oh and docl, mv is nearly ready to handle all types of input. 16:41:36 this will make the PGN translator a breeze on the output side. 16:42:10 everything is either a move and handled automatically or its a promote value and mv can already handle that. 16:42:53 just ep ( which is a tinsy complex) and the castles are left to merge into mv. 16:43:38 castles are easy cus you just check for a king moving two, and in what direction and w = rank 1 and b = rank 8. 16:44:09 you subtract abs source from dest to get the moving-two signal. easy. 16:45:54 I thought I would need to know whose-moveing to determine things but the move data is plenty descriptive. Packed with loads of information, especially when you fetch the piece from the board and use that info to help test. 16:46:28 * Raystm2 is over caffinated today. Please have patience with me. 16:47:47 javajavajavajava! :) 16:48:12 vector: java ." bloatware" cr ; 16:48:45 hehe. 16:49:05 it's all coke and tea. I really shouldn't touch coffee. 16:49:30 I amp up to a point, then I hit a level where I look sedentary but my mind is racing. 16:49:57 hehe 16:50:25 I get that "Restless Leg Syndrom" and can't control myself easily. 16:50:51 the thing about retro's conditionals is they are fairly easy to see how they work 16:51:20 You mean in that source? or the way that it's named? 16:51:34 no just the way they work :) 16:51:36 >if greaterthn if. 16:51:45 Oh yeah testing in the environ. 16:51:50 i.e. this is just a jump to there 16:52:00 conditional on that 16:52:41 but it's a but confusing to newbies that there's no way to do "else" without breaking out of the whole definition 16:54:53 I've done else-less else-if statements in colorforth. 16:55:08 you just use if twice. 16:55:38 or factor out the conditional 16:55:42 ya. 16:56:38 "if this ;then if that then anyways do this" 16:56:39 I'm really suprised now that it took me this long to start codeing retro. 16:57:01 the second if can go to anyways, but the first one can't 16:58:01 of course the solution is to factor them out 16:59:18 ya. 17:00:22 after move gets the character to move from board, I need to test first for 'P and if not just pass everything. 17:00:25 but if so... 17:00:44 I need to first test if it's moving to a set en passant target. 17:01:11 if so ep else pass. 17:01:30 if moving two squares I need to set the en passant target. 17:01:45 any time a pawn moves 1 I need to reset the en passant target. 17:01:53 thats about it. 17:02:18 I'll have to test for 'K as well for the castles. 17:02:34 as to else; try: 17:02:39 macro: else $e9 1, here 0 , swap dup here swap - 4 - swap ! ; 17:02:48 :) 17:03:20 --- quit: yoyofreeman (Read error: 110 (Connection timed out)) 17:04:53 neat :) 17:22:59 : test dup 10 =if drop 1 . else dup 20 =if drop 2 . else dup 30 =if drop 3 . then then then .s ; 17:23:56 all those dups and drops are a bit clunky, I see why case: is so handy now 17:25:13 case: is good for things like that 17:33:25 : test switch 10 case: 1 . else 20 case: 2 . else 30 case: 3 . else then then then .s ; 17:33:37 break not else 17:34:29 * crc hasn't tested his definition of else very well; it may have obscure bugs when used with case: 17:34:50 break doesn't let it fall through to .s like else does 17:35:38 just use then 17:35:53 10 case: 1 . then 17:36:47 ah ok 17:38:20 http://retroforth.net/discuss/comments.php?DiscussionID=5 updated with some notes on case: 17:38:53 cool 17:39:05 it's actually a lot easier than I thought 17:41:43 * crc is going to go eat supper 17:54:36 thanks for that crc :) 18:00:39 --- join: nighty_ (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #retro 18:29:49 --- join: nighty- (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #retro 18:46:36 --- quit: nighty_ (Read error: 110 (Connection timed out)) 23:06:22 uhmm 23:06:36 crc 23:06:57 could you program a RFID tag chipset using retro M 23:07:01 could you program a RFID tag chipset using retro ? 23:07:26 I am getting some information on this and a kit soon 23:33:34 --- quit: nighty- ("Terminated with extreme prejudice!") 23:52:30 --- join: Cheery (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #retro 23:59:59 --- log: ended retro/06.08.02