00:00:00 --- log: started forth/03.12.27 00:28:16 * chrisrw is away: zZzZ 00:58:30 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 01:25:19 : doe 3 begin dup . bl 1 - 0= until drop ; 01:25:24 why is this an endless loop? 01:29:18 oh the bl.. 01:29:46 oooh oops, i thought.. wrong :) 01:31:10 the tos is always 31? 01:31:17 32, ya 01:31:23 i thought bl would automaticly print :) 01:32:14 like cr does 01:33:52 --- quit: onetom (Read error: 60 (Operation timed out)) 02:28:38 ok, in this code: http://pastebot.nd.edu:80/135 02:28:52 the most inner loop somehow returns 0 02:32:15 i mean the counter of hte inner loop, its appearantly always 0.. 02:32:23 any reason for this? :) 02:45:41 hm ok, its the outer loop appearantly, but why.. 02:46:51 ah i figured it out :) 02:47:03 stack starts at 0, not at 1 :p 02:47:14 i mean, if you pick or whatever 03:00:34 --- join: networm_ (~networm@L0663P28.dipool.highway.telekom.at) joined #forth 03:08:57 --- quit: networm (Read error: 110 (Connection timed out)) 03:17:47 if i define a variable, will it's initial "size" be equal to cells bytes? 05:43:41 --- join: crc (~crc@ACAFFEC5.ipt.aol.com) joined #forth 07:33:29 --- quit: crc ("I was using TinyIRC! Visit http://www.tinyirc.net/ for more information.") 07:57:20 * warpzero is away: Down, down, down! 08:04:19 --- join: wossname (wossname@HSE-QuebecCity-ppp81282.qc.sympatico.ca) joined #forth 08:04:23 how can i check either a word is already defined? 08:04:48 without causing the code to stop running... 08:04:54 --- quit: wossname (Client Quit) 08:06:07 --- join: wossname (wossname@HSE-QuebecCity-ppp81282.qc.sympatico.ca) joined #forth 08:28:12 --- join: ree- (~jwm@ns.fasthost.net) joined #forth 08:28:23 --- nick: ree- -> reentry 08:29:33 --- nick: reentry -> ree_ 08:32:38 --- join: ree__ (~jwm@ns.fasthost.net) joined #forth 08:37:35 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 08:37:35 --- mode: ChanServ set +o kc5tja 08:41:28 kc5tja> how can i check either a word is already defined? 08:41:34 without stopping the code 08:42:16 Is the word's name known at design-time, or does it change as the program is running? 08:42:49 well atm i keep reloading a file, so i wont loose data if i create an endless loop 08:43:09 but except for the first time, he'll of course always warn me that the word or variable or whatever has already been defined 08:43:27 so i wanna check either it exists, if so forget or free it, and else just continue 08:44:24 From file: D:\download\apps\forth\wf.6.09.01\qfox.f word: TOP isn't unique 08:44:24 From file: D:\download\apps\forth\wf.6.09.01\qfox.f word: DECK isn't unique 08:44:25 etc 08:44:31 OK, so it's known at design-time then. 08:44:38 yes i guess so.. 08:44:45 I would use ' to determine if a word exists. 08:44:53 Oh wait... 08:44:57 but that will only continue if it does 08:45:02 that'll error out if the word isn't defined. 08:45:04 if so put an address to the stack 08:45:04 yes 08:45:08 Does the word "FIND" exist on your Forth? 08:45:18 yes 08:46:06 ah 08:46:10 c" doe" find 08:46:12 tnx 08:46:33 C" SomeWord" FIND IF DROP ( word exists ) ELSE 2DROP ( nope, doesn't exist ) THEN 08:46:42 ye :) 08:47:00 :) 08:47:27 btw, is if true on any non-zero value? 08:47:47 the returning of -1 if something is true, is still a bit unlogical to me... 08:48:03 illogical... eh doesnt make sense :) 08:49:47 --- quit: ree_ (Read error: 110 (Connection timed out)) 08:50:49 if "if" is compilation only, how can i check either the returned value of find is true or false? 09:00:42 [IF] 09:00:54 Yes, any non-zero value is considered true by IF or [IF] 09:01:05 And it's very logical. 09:01:22 um.. 09:01:23 Error: create_deck_array is undefined 09:01:30 at this line 09:01:30 : create_deck_array 09:01:39 arent i defining it right there? :\ 09:01:52 I need to see your source code. I do not have enough context. 09:02:42 http://pastebot.nd.edu/138?ln=on&submit=Format+it%21 09:02:49 line 25 09:04:11 Yeah, that's correct Forth. 09:04:17 That sounds like a bug in Win32Forth to me. 09:04:21 hrm 09:04:22 :\ 09:04:29 Though I suspect something else is going on, because I'm almost positive it can handle that case. 09:05:55 It works in GForth. 09:05:59 its got something to do with whats above 09:06:08 if i remove all the stuff above it, it loads np 09:06:53 and now he works fine 09:06:54 wth 09:07:06 * qFox chuckles... 09:07:07 whatever 09:07:35 Hmm 09:07:38 No idea. 09:07:58 * warpzero is back (gone 01:10:39) 09:08:27 hm i dont think the forget trick works 09:09:27 and the problem comes back when i re-open winforth... the cause is the definition of top line 09:09:33 Are you using the [IF] and [THEN] words instead of IF and THEN? 09:09:40 yes, otherwise it wont work at all 09:09:44 Also, you might want to consider using MARKER instead of FORGET. 09:09:45 c" top" find [if] forget top [then] \ if top exists, forget it 09:09:50 but when i do that 09:09:56 Stack depth increased in file: D:\DOWNLOAD\APPS\FORTH\WF.6.09.01\QFOX.F at line: 09:09:56 19 Stack: [1] 1359136 09:10:06 and he still returns the top already defined warning 09:10:11 Yes, because you forgot the DROP and 2DROPs, like I posted in my example. 09:10:22 ack 09:10:37 FIND is the core of the Forth interpreter -- it finds a word, and either (a) returns its execution token on success (that's why you need DROP), or (b) returns the string address for conversion to a number (hence the 2DROP) 09:10:38 brb 09:11:01 Hey kc5tja. 09:13:48 back 09:13:49 re 09:13:59 Gotta go in 10 minutes -- have to get ready for work. 09:14:41 Okay, man, have fun. Or something. 09:14:54 still odd... untill the first time the file completely loaded, he will return the undefined error if : top ( n1 -- n1 ) dup ." -->" . cr \ prints --> TOS CR 09:14:59 is above it 09:15:15 oh 09:15:21 d'oh, guess what :) 09:15:50 how does one terminate a definition? ;) 09:16:06 how did it ever compile in gforth 09:17:36 qFox: I just took the definition of create_deck_array and its subsequent use. 09:17:39 I didn't compile the whole program. 09:17:42 oh right 09:18:58 would you happen to know why, the first time i run the code, the forget line give a stack underflow error on 2drop? 09:19:00 deck as in deque? 09:19:06 c" top" find [if] forget top drop ( found ) [else] 2drop ( not found) [then] 09:19:10 warpzero> cards 09:19:17 oh 09:19:30 set game; http://www.reed.edu/~mcphailb/applets/set/ 09:20:26 qFox: I probably made an error in recalling the stack effects for 'find'. Try using just DROP instead. I think it might return the count address instead of the string/length pair. 09:21:01 well the thing is 09:21:11 if the file loaded completely once 09:21:14 the error is gone 09:21:22 hm 09:21:26 actually that makes sense 09:21:53 but he still wont forget top... 09:21:58 Though, frankly, I would choose to use a marker word, since that would make things easier, I think: 09:21:58 From file: D:\download\apps\forth\wf.6.09.01\qfox.f word: TOP isn't unique 09:22:01 MARKER Top 09:22:12 oops 09:22:21 Scratch that last line. :0 09:22:22 :) even 09:22:22 dunno what marker is.. 09:22:41 C" Top" FIND [IF] Top [THEN] MARKER Top 09:23:01 MARKER defines a word which, when executed, FORGETs itself and all subsequent definitions. 09:23:27 ah, so a throw-away word.. 09:24:04 but do i mark it after the definition? 09:24:13 MARKER is the defining word. 09:24:26 Look at the line I posted above. 09:24:31 aye.. 09:24:59 If Top is defined, execute it (thus causing it and all subsequent definitions to be forgotten). Then, afterwards, (re-)define Top as a marker. 09:26:30 Oh well. 09:26:36 I have to jump in the shower and otherwise get ready for work. :( 09:26:45 yea go. tnx for the help 09:27:45 n/p 09:27:47 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 09:32:33 i guess i'll just live with the error for now.. 09:32:36 warning.. 10:05:10 Moo. 10:13:41 can you roll in the reverse direction? 10:13:54 it crashes with negative arguments.. 10:19:22 --- quit: warpzero ("Wave 29: 23000 points!") 10:19:58 roll? 10:20:05 * chrisrw has never used either pick or roll 10:21:14 never? 10:21:29 hmmm is it considered sloppy/bad? 10:21:38 like jumps for instance 10:22:53 --- join: schihei (~schihei@pD9E5CD6D.dip.t-dialin.net) joined #forth 10:22:54 anyways i'm off 10:40:05 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 10:42:22 --- quit: networm_ (Read error: 113 (No route to host)) 10:59:51 --- join: networm_ (~networm@L0656P09.dipool.highway.telekom.at) joined #forth 11:19:36 --- quit: schihei (Client Quit) 11:57:58 --- nick: ree__ -> ree_ 12:59:02 --- quit: wossname (Read error: 60 (Operation timed out)) 13:07:34 --- quit: ree_ (Read error: 60 (Operation timed out)) 13:08:36 --- join: ree_ (~jwm@ns.fasthost.net) joined #forth 13:20:41 hey all 14:12:40 --- join: TheBlueWizard (TheBlueWiz@pc91dn1d.ppp.FCC.NET) joined #forth 14:12:40 --- mode: ChanServ set +o TheBlueWizard 14:12:44 hiya all 14:25:28 --- join: ree (thin@bespin.org) joined #forth 14:25:29 --- part: ree left #forth 14:25:53 --- join: ree__ (~jwm@ns.fasthost.net) joined #forth 14:26:05 --- join: ree (thin@bespin.org) joined #forth 14:26:21 --- part: ree left #forth 14:35:29 --- quit: ree_ (Read error: 110 (Connection timed out)) 14:46:45 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 14:47:21 --- nick: ree__ -> ree- 14:54:18 --- quit: tathi ("leaving") 15:14:54 --- quit: networm_ (Remote closed the connection) 15:54:27 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 16:07:40 --- nick: ree- -> ree 16:31:22 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 16:43:51 hi tbw hi ree 16:44:01 hey chris 16:44:25 hiya chrisrw 16:46:06 :) 16:46:14 whats up? 16:46:38 finally figured out how to properly implement the final pieces of the system 16:46:52 yay :) 16:47:47 yeah, I am excited 16:48:44 ree: what sort of system are you making? 16:48:52 we talked about it before I think 16:49:11 large networked general development system 16:49:15 and also a media network 16:49:24 oh right :) 16:50:56 I've started studying stack machines again and came across how to implement this one big feature I wanted to have in the core design 16:51:01 can you roll in the reverse direction? it crashes with negative arguments.. 16:51:09 roll? 16:51:13 dont use roll. 16:51:27 use dup, over, rot, drop, r>, and >r 16:51:37 dont use pick, either 16:51:42 what are you trying to do? 16:51:44 why's that? 16:51:51 roll is bad style 16:51:56 k 16:52:12 4 loops at once 16:52:19 and i need the counters 16:52:27 i mean, the counters value have a meaning.. 16:52:35 (aside from counting :) 16:53:19 may i ask why its considered bad? 16:53:40 because at first glance i wouldnt really know how else to accomplish it 16:55:15 i { j { k { l { save ijkl } } } } , where ijk and l range from 1 to 3 16:56:09 ... 16:56:11 er 16:56:29 show me C-style what exactly you do to i, j, k, l 16:57:26 this seems kinda fishy, lol 16:59:00 for (i=0; i<3; ++i) { for (i=0; j<3; ++j) { for (j=0; j<3; ++j) { for (k=0; k<3; ++k) { thingie[(i-1)*27+(j-1)*9+(k-1)*3+l-1] = ijkl } } } } 16:59:23 ijkl would probably be slightly different but whatever. 17:00:09 !!! 17:00:12 wtf!? 17:00:15 wow 17:00:16 sue me :\ 17:00:19 thats horrible, lol 17:00:28 how would you do it 17:00:31 do you mean i + 1 or i - 1 on all of those? 17:00:46 http://www.reed.edu/~mcphailb/applets/set/ 17:00:55 this is to build a full deck of cards 17:01:06 3^4 cards 17:01:22 with the 4 properties in different order 17:01:51 i'm sorry but making 4 loops is simply teh easiest the way i see it.. 17:03:28 (ok easier would be just hardcoding it i guess) 17:04:57 well, no 17:05:10 its just that that loop is kinda .... wel .... bastardized, I should say 17:05:11 lol 17:05:19 well how would you handle it? 17:05:35 the deck has 52 cards, right? 17:05:38 81 17:05:42 4 x 13 cards 17:05:45 81? 17:05:51 4 properties, 3 types for each property 17:06:07 one card for every combination of properties 17:06:18 Color (Red, Green, or Purple) 17:06:18 Shape (Circle, Diamond, or Squiggle) 17:06:18 Number (One, Two, or Three) 17:06:18 Shading (Filled, Striped, or Empty) 17:06:37 oh SET :) 17:06:37 hrm, lemme rethink that one. 17:06:39 yes 17:06:53 Herkamire> i just pasted it :) 17:07:33 what's ijkl? an int with bitfields? 17:07:37 a structure? 17:07:42 just int counters 17:07:53 counts from 1 to 3 17:08:07 qFox: you might want to rethink the way you store this. 17:08:18 how exactly do you represent each card right now? 17:08:25 its kinda hard to tell from the above. 17:08:30 just 1111 1323 17:08:42 with each digit representing the option one to three 17:08:55 pretty straightforward 17:08:58 yeah, usually structures are used for this 17:09:11 yes but i'm just beginning so cut me some slack 17:09:13 2 bits * 4 = 1 byte 17:09:33 who took away your slack? 17:10:01 chrisrw> yes well the way i save isnt the issue here, is it? i thought the 4 counters were, and how to do it without pick or roll... 17:10:07 : new-card-prop dup 3 mod +! 3 / ; : new-deck deck-buf >a 81 0 do i new-card-prop new-card-prop new-card-prop new-card-prop loop ; 17:10:34 whats +! ? 17:11:44 +! stores to the address in the A register, then increments the A register 17:11:53 (that's where I'm storing your deck) 17:11:54 well, i gotta shower, so ill think about it there, and once im done, ill tell you what I came up with :) 17:12:02 k :) 17:12:23 hmm and this will create all the ways 1111 to 3333 ? 17:14:01 0000 to 2222 17:15:03 hmm 17:15:48 here, try this: : ncp dup 3 mod . 3 / ; : new-deck 81 0 do i ncp ncp ncp cr loop ; 17:15:59 that prints it instead of storing it 17:16:19 and deck_buf is declared how? 17:16:51 create deck_buf xxx allot 17:16:57 never mind that 17:17:13 see my new example, and alter it to store wherever and in whatever format you want. 17:17:56 it just loops from 0 to 81 and converts to base 3 17:20:28 he seems to not like it, but hold on 17:20:45 qFox: who? 17:20:49 winforth 17:20:54 mod? 17:20:56 i'm getting an exception 17:21:07 any message? 17:21:08 in the new-card-prop yes 17:21:31 fails at word NEW-CARD-PROP 17:21:34 winforth probably doesn't have A register. 17:21:41 i did change that to >r 17:21:41 try this one: : ncp dup 3 mod . 3 / ; : new-deck 81 0 do i ncp ncp ncp cr loop ; 17:22:02 qFox: that would make it crash :) 17:22:09 whats a then? 17:22:19 i figured they would both be stacks, my bad :\ 17:22:44 now with 4 17:22:52 oh nm thats just another ncp 17:23:16 no, this one is complete standalone version 17:23:27 yea but it needed 4 :) 17:23:38 fixed that anyways, now i'll analyze :) 17:24:10 what does the i behind do do? 17:24:22 i grabs the loop index 17:24:29 oh its code, ic 17:25:52 leaves the stack filled btw 17:26:02 with 81 zero's 17:26:03 oops, looks like I got the loop indexes wrong too. it doesn't print out 0 0 0 0 17:26:15 no actually its quite right 17:26:21 except it needs a drop somewhere 17:26:34 i changed it slightly for output 17:26:35 : ncp dup 3 mod 49 + emit 3 / ; 17:26:35 : new-deck 81 0 do i ncp ncp ncp ncp cr loop ; 17:26:35 qFox: you're right. add "ncp drop" before "cr" 17:28:09 is this a "standard technique"? 17:28:22 qFox: what do you intend to use this lookup table with the cards in it for? 17:28:32 deal the cards from it 17:28:35 qFox: what? 17:29:06 what about shuffling 17:29:20 well this is a workaround (imo) for counters 17:29:24 back 17:29:28 did you figure it out yet? 17:29:29 I mean "is what a 'standard technique'?" 17:30:00 qFox: oh, don't know if it's standard, it just seemed the simplest way to me. 17:30:04 k 17:30:26 and i can shuffle later, but i need to build the deck in order to use it dont i 17:30:41 many forths have J defined, and there's probably some with K and L. you could define them if you wanted to. 17:30:49 you know the set game (i guess?), so you know the rules and how the cards are dealt.. 17:30:51 qFox: I don't think so. 17:31:09 then how do you make sure a card isnt already dealt? 17:31:15 if you're going random... 17:31:43 my code ("ncp ncp ncp ncp drop") converts an into to a card, so you don't need a lookup table to do so. you will need to keep track of what cards have been delt though. 17:31:46 dealt flags 17:32:05 chrisrw: don't be absurd 17:32:14 there's no need to get so complicated. 17:32:14 yes but i mean, you still have to create that table with cards... 17:32:47 qFox: yeah, that's probably the best way to shuffle, and make sure you don't deal the same card twice. 17:33:08 but I don't think you're going to want the deck in order like we've been generating it so far. 17:33:36 also you have to decide how you want to store the card 17:33:50 that can actually be changed any time.. 17:34:14 if i save it as a byte first, but in bit's later that shouldnt be much of a problem to alter 17:34:49 qFox: yeah, probably not. 17:35:01 either way it'll fit in a register 17:35:07 :) 17:35:18 ye 17:35:20 ok, so you're going to generate a deck, then scramble it right? 17:35:30 well is that neccesary? 17:35:34 what i was thinking 17:35:43 then you can use them in the order you have them in the array 17:35:49 pick cards random from 1 to size-of-array 17:36:01 whenever you pick a card, replace that value with the last value of the array 17:36:50 yes thats the alternative, but that does require two arrays (ok not much of a problem :) 17:37:00 one array is plenty 17:37:16 i mean double the size 17:37:30 heres one 17:37:31 or do you really want to shuffle them? 17:37:43 for each card, pick another random card, and exchange it. 17:37:43 :) 17:37:51 8bit entries in the array is enough, and you could do 32 bit to make it easier on yourself if you want. don't go any bigger than that 17:38:11 chrisrw: yeah, that's how I was thinking of shuffling. 17:38:13 at first i'll just go with 1 cells 17:39:00 i'm still a bit... surprised by : ncp dup 3 mod 49 + emit 3 / ; ... i dont think i would've ever gotten to this.. 17:39:16 which kinda puts me down tbh :) 17:39:44 or better, go through each card, and exchange it with a random other card. then you do this exactly 81 times, and you gaurantee that you never leave any strings of consecutive cards unscrambled. 17:41:01 qFox: you're cards are simple permutations. 17:41:07 ye 17:41:09 s/you're/your 17:42:03 Herkamire: the only problem with that method of shuffling is that the last card can never be the last card generated 17:42:15 chrisrw: sure it can 17:42:21 no it cant. 17:42:26 er 17:42:28 oh 17:42:30 yes it can 17:42:31 gotta go...bye all 17:42:31 lol 17:42:33 nevermind 17:42:33 :) 17:42:37 bye tbw 17:42:57 1) it can be moved two or more times. 2) your randome cell to switch with could be the same one it's at now. 17:43:06 bye chrisrw 17:43:14 later TheBlueWizard 17:43:29 bye Herkamire 17:43:40 --- part: TheBlueWizard left #forth 17:43:59 Herkamire: yeah, i dont know what i was thinking lol 17:44:23 chrisrw: I understand. the same thought passed through my head :) 17:44:54 too bad I can't spell today (randome) 17:48:53 btw how do i immidiatly declare an array, for some reason i cant seem to use create without defining a word for it first... 17:48:54 create deck-buf 81 cells allot 17:49:09 kinda odd :\ 17:49:17 you want an array without a name? 17:49:34 is that possible? 17:49:35 what do you mean immediately? 17:49:42 qFox - eh, yes. Just allocate space for it. 17:49:50 well i had this 17:49:51 : create_deck_array ( -- ) 17:49:51 create 17:49:51 81 4 * cells dup allot \ creates array and leaves size on the stack 17:49:51 cr ." Created an array and allocated " . ." bytes." ; 17:49:51 create_deck_array deck \ create array that holds the deck 17:50:03 because it wouldnt do it without creating a word first 17:50:11 qFox - take a look at HERE first. 17:50:31 HERE 81 4 * cells dup allot ( a n ) 17:50:59 qFox: you want create_deck to create allocate a new array in memory every time you call it? 17:51:14 its a onetime thing really 17:51:21 then don't compile a function to do it. 17:51:23 just do it 17:51:30 thats what i said :\ 17:51:46 create deck-buff 81 4 * allot 17:51:47 or 17:51:48 well i mustve done something wrong yesterday, it seems to work now 17:52:06 here 324 allot 17:52:34 this part seems wrong at first glance: "81 4 * cells" 17:53:00 unless you're talking a cell for each attribute 17:53:07 i defined it as "deck[81][4]" 17:53:12 :) 17:53:17 as bytes or cells? 17:53:24 81x4 cells 17:53:32 why? 17:53:36 cell per attribute? 17:53:39 ye 17:53:44 don't do that 17:53:51 i knew you were gonna say that :p 17:54:20 anything a cell or smaller (your card could be) is much much easier to work with 17:54:21 : advertise ( n -- ) ." Created an array and allocated " . ." bytes." ; : create-deck-array ( -- a n ) here [ 81 4 * cells ]L dup allot cr dup advertise ; 17:57:52 hm, how would you combine the numbers to one number? right now the method i'm thinking is probably wrong... multiply the numbers with 1000 100 or 10 and add them to the total 17:58:08 i dont know if there's some kind of "stringcopy" word for this? 17:58:14 (and i know its not a string) 17:58:20 just store them to your array one byte at a time 17:58:30 or a half nibble at a time 17:58:33 using shifts 17:58:52 hm 1 byte for each number is one cells 17:59:00 for all of them i mean 17:59:09 eh, whatever :) ok 17:59:14 or one byte total 17:59:16 if you do it my way 17:59:32 0xF 0xA 2n, ( store 2 nibbles at HERE ) 17:59:53 yes but that would make it somewhat harder for me to retrieve it, its 3 am here... i'm not too great on my feet 18:00:19 OK, then don't worry about it. 18:00:22 :) 18:00:26 I lshift J or lshift K or lshift l or lshift 18:00:47 chris - oh, at least hide the bit-shifting under a word. 18:00:55 you generally have to AND masks and shift and stuff. I make words to do those. my forth in native PPC and there's and instruction that shifts and masks (rlwinm (Rotate Left With Immediate, aNd with Mask) 18:01:29 herka - nifty =) 18:01:42 but I would do the same on any platform 18:02:05 (create words like hi16 and low8 which mask and shift 18:02:05 whats the stack thingy for rlwinm? 18:02:43 chrisrw: it doesn't work on a stack. it's a PPC instruction, it uses two registers, and 3 hardcoded operands 18:03:02 so what exactly does it do? 18:03:21 or whats the forth equiv? 18:03:28 it rotates the bits (32) left, then masks out any series of them you want 18:03:41 I don't know if forth has a rotate 18:04:21 should not be hard to make 18:04:32 you mean shr and shl, right? 18:04:33 well, use blrot 18:04:43 qFox: no, those are 0-filling shifts 18:04:51 oh ic 18:05:19 rotate left is like shift left except the bits that are shifted off the top are stuck at the bottom. it doesn't loose any bit's it just moves them around 18:05:58 well, please demonstrate a forth version so that I can see :) 18:06:33 it would be a bit messy to implement with shifts, but ok. just a sec 18:06:50 101000101 becomes 010001011 (shifted left), or 110100010 (shifted right), thats what you mean? 18:06:52 pretend to use blrot :) 18:07:18 qFox: :) 18:07:33 : rlwinm ( nmask n nshift# -- n' ) lshift and ; 18:07:36 alright alright i'll shutup :p 18:07:57 ok, it's not messy 18:08:15 what's the stupid ANSI word for shift left? 18:08:16 bbl 18:08:22 lshift and rshoft 18:08:33 tnks 18:10:10 ah, you originally described rlwinm as an 'instruction that shifts and masks' and I missed the later 'Rotate Left With Immediate, aNd with Mask' 18:11:18 : rl 2dup lshift >r 32 swap - rshift r> or ; 18:11:54 ayrnieu: sorry about that. it actually rotates, though most of the time I just use it for shifting 18:21:41 shift with a mask :) 18:21:51 shift = masked rotating, in a sense 18:22:20 chrisrw: yep. on PPC the static shift instructions are just a shortcut for rlwinm 18:24:47 i'm off 18:24:47 cu 18:24:47 rlwinm n, 1, 0xFFFFFF00 = shl n, 1 right? 18:24:48 rshift 6 compiles as rlwinm 24 6 32 18:24:53 --- quit: qFox ("if at first you dont succeed, quit again") 18:25:08 bye wf 18:25:10 er 18:25:10 lol 18:26:07 ie rotate 24 bits left (same as 6 right) and keep bits 6 through 32 18:26:33 neat 18:26:36 rlwinm is the only PPC instruction I use that takes 5 operands (the ones I showed pluss source and destination registers) 18:26:46 how do you tell the processor what register to operate on though? 18:26:53 oh 18:26:53 nevermind 18:26:54 lol 18:27:07 those operands go first. I left them out to simplify 18:27:16 rlwinm r4, r7, 24, 6, 32 18:27:18 wow 18:27:18 lol 18:27:24 exactly 18:27:28 neat :) 18:27:37 * chrisrw needs to learn some RISC assembly 18:27:43 any RISC processor will do 18:27:43 or for simpler notation: shr r4, r7, 6 18:27:46 :) 18:28:09 oops, that's "srwi" not "shr" 18:29:16 * chrisrw is back (gone 18:01:05) 18:40:40 * chrisrw is away: dinner' 18:43:21 --- quit: ayrnieu ("leaving") 18:56:34 --- join: ayrnieu (~julian@206.61.132.128) joined #forth 19:20:47 --- join: nekokawaiibakach (wossname@HSE-QuebecCity-ppp81772.qc.sympatico.ca) joined #forth 19:35:32 nekokawaiibakach: holy nickname batman! 19:36:54 thanks d00d ^___^__~; 19:44:34 * chrisrw is back (gone 01:03:53) 19:44:48 Moo/ 19:44:53 wossname!!! 19:44:57 wossname!!! 19:44:57 wossname!!! 19:44:57 wossname!!! 19:44:57 wossname!!! 19:44:57 wossname!!! 19:44:58 wossname!!! 19:45:11 rk? 19:45:41 yes 19:45:43 it is rk! 19:45:49 how goes it? merry chrustchove 19:46:28 its all good, my friend! 19:46:33 I never see you around anymore... 19:47:24 well, i don't irc often enough. hell, the whole crew wasn't even on on christmas 19:47:31 _not even online on christmas_. get that. 19:48:13 :) 19:48:16 I was on, I think. 19:49:16 i didn't see you, due to your insane namechanging techniques 19:49:24 lol 19:49:33 Well, I still don't like this one. 19:49:39 chrisrw isn't bad 19:49:43 I would love to have chris, but its already taken. 19:49:49 naah, chrisrw kinda sucks 19:49:54 and chrisw is taken, too. 19:50:23 of course, I could do it like Robert did and do something like chr_is 19:50:24 lol 19:50:28 ;D 19:50:36 who, by the way, seems to be internet-less once again. 19:51:03 he is? 19:51:18 i figured he might have retreated to undernet or something, but perhaps not 19:51:21 robert.zizi.org is down, and hes neither here nor on IRCNet 19:51:26 ah 19:51:39 i could check EFNet 19:52:49 i checked efnet, it's the wrong place. #fulhack is where he'd be 19:52:51 as you can tell, I have de-IRCed myself to some extent. 19:53:03 his EFNet nick is rob_ert 19:53:12 and he'd be in #asm :) 19:53:29 you've de-IRCed? i can't tell, because i have too :D 19:53:34 it's the nature of the problem 19:53:35 nekokawaiibakach: btw, how did you know I was rk? 19:53:51 nekokawaiibakach: I have a different nick AND a different ISP 19:53:52 well, i knew your first name was chris. then i checked, and #rkforth was there :) 19:53:58 :) 19:54:12 and whats with your nick? 19:54:25 --- nick: chrisrw -> chris 19:54:53 hrm fuck it, if he kills me, then I'll just log back on. 19:55:02 ;D 19:55:14 'chris' is not his password, it seems. 19:55:16 :) 19:55:26 i could try 'moo' 'Moo' 'foo' 19:55:34 'bar' 'cow' 'cheese' 'tux' 19:56:04 but, I don't want to. 19:56:19 i dont know what kind of password restriction stuff nickserv has 19:56:37 it'll log them all. 19:56:39 and k-line you. 19:56:42 and kill your dog. 19:56:54 but anyway, whats your current project(s)? and how far? 19:56:54 MY 19:56:56 DOG! 19:56:59 OMG NO 19:57:08 I DONT WANT MY LITTLE PUPPY-DOGGY-BITCH DEAD 19:57:14 my dog is a bitch. literally. 19:57:14 lol 19:57:23 eh, indeed. 19:57:34 a bit like saying 'my son is a daughter'. 19:57:43 female dogs give better head. 19:57:45 er.. 19:57:48 disregard that. 19:57:51 No, they don't. 19:58:22 actually, the nicer girls give better head once you convinced them to do so and they're not scared anymore. 19:58:29 ?:~ 19:58:45 how the fuck do we get here 19:58:49 and how the fuck do we leave 19:58:51 chris - indeed. 19:58:57 kawaii - probably your name got us here. 19:59:04 kawaii - 'cute be-yatch'. 19:59:20 :( 19:59:55 i mean, ^___^~!#~; lah zomg kawaii desyobakane 20:00:00 Sorry, I didn't mean to pick on you. We got here because evil perverted interests form the whole of chris's imagination. 20:00:04 learning japanese? 20:00:05 I should. 20:00:19 "Sake nan desu ka" is all i can say. 20:00:35 no, i'm not learning japanese, i'm being retarded 20:00:44 oh. 20:00:45 ok. 20:00:56 I was almost thinking you'd gone smart over christmas or something. 20:01:00 that would have worried me. 20:01:10 don't worry, i keep things real. 20:01:19 it's good to know you still molest your dog :D 20:01:54 :D 20:02:15 things are getting too personal, let's talk about something else 20:02:38 you asked about my projects, eh? i wrote a line drawing function last night before i passed out. it didn't work properly 20:02:45 and what do you spend your time with? 20:02:55 RkG 20:02:55 :) 20:03:10 RkG? 20:03:10 take emacs, strip it of everything, base it on nextstep, and you got yourself RkG 20:03:14 ah 20:03:25 you don't mean to say edit.com? 20:03:28 :l 20:03:31 other irc servers have some retarded nicks 20:03:35 WSBN-DwarfVader 20:03:40 wtf kind of a nick is that shit? 20:03:46 that's a good name for a server with only 100 users 20:03:50 very x-clusive, yo. 20:03:52 and then they got the "partner" nick going on. 20:04:04 [SBDG]Josh: yo 20:04:18 [SBDG]Robert: dude 20:04:20 ugh 20:04:25 pisses me off. 20:04:25 they got clans, man. 20:04:40 clans are gay. 20:04:47 indeed, clannish names annoy me -- as does much of fps culture. 20:04:49 it shows that they post on another forum, and they're like totally chatting in irc together 20:04:52 how tubular 20:04:52 well, not really. 20:04:52 'n00b' must die a horrible death. 20:05:06 aahahah, you're just a jealous ogl-o pub nub scrub 20:05:07 if you put your clan in your name, you restrict yourself to certain channels 20:05:25 if you keep it simple, you could be in as many opposing clans as you want 20:05:29 thats why i like freenode :) 20:06:16 anyways, back on topic. omg the ak is better than the colt 20:06:24 dude 20:06:30 the knife is the way to go, man! 20:06:35 :o 20:06:41 :) 20:06:49 i like making fun of CS people :) 20:07:05 er, counter strike, not computer science :P 20:07:06 i play cs, every day. i enjoy watching my life slip away 20:07:17 also, i masturbate myself to sleep. every. night. 20:07:20 o yeah 20:07:30 ITYM 'oh yeah' 20:07:32 "dude, i killed my dog with a knife, and he's not respawning :(" 20:07:48 sorry, 20:07:49 oh yea 20:07:53 chris: ;D 20:07:56 i masturbate so much nowadays that my wang has become a permanent shade of #FF0000 20:08:02 ahaha fuck you :( 20:08:08 you actually made me laugh 20:08:17 should I bash it? 20:08:19 that's forbidden in irc. i'll have to try a new emoticon. maybe *g*, or 20:08:20 no, you bash it 20:08:21 :)) 20:08:27 20:08:28 chris - please do not 'bash' things. 20:08:34 er 20:08:36 yeah, don't bash things. like fags. 20:08:38 "post it on bash.org" 20:08:44 they always go around fagging it up. damn faggots 20:08:45 chris - indeed. Don't do that. 20:08:51 why not? 20:09:02 Only stupid homos are on bash.org 20:09:08 and I happen to be a stupid homo. 20:09:09 the place for you! 20:09:15 chris - I've only ever seen 'bash it' in the same context of people that say 'lol' and find stupid things fantastically amusing. 20:09:30 i've seen some really great bashes. i like the "pirates of the interweb" one best. 20:09:37 but most of them are horrific shit, yeah. 20:09:42 chris - which biases me against it -- but, hey, if that applies =) 20:09:54 hey look, i'm on the internet chatting about posting a chat to another website 20:10:04 :) 20:10:12 yes, there are some VERY good ones 20:10:15 like the #1 :) 20:10:25 hm. I've lost a machine.. literally _lost_. hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.it responds to ping, it works completely, I just can't figure out where in my apartment it is. 20:10:31 [SA]HatfulOfHollow 20:10:32 or, "hey, look, a senseless snippet of a conversation that would only make you laugh if you'd *been* there, man" 20:10:35 er fuck, fux0red pasting 20:10:35 ]]]] 20:10:36 i masturbate so much nowadays that my wang has become a permanent shade of #FF0000 20:10:39 er 20:10:40 damn 20:10:40 my ] key is stuck 20:10:48 ]]]]]]]]]]]cxvb 20:10:51 there we go 20:10:54 hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is. 20:11:04 i no, that one is guld :) 20:11:06 THAT is funny :) 20:11:38 With that as #1, I know for certain to avoid bash.com 20:12:03 #2 is one of my favourites 20:12:06 http://bash.org/?4848 20:12:09 its bash.org, btw 20:12:16 #2 is stupid. 20:12:18 --- join: carlossch (~user@200.175.75.76.adsl.gvt.net.br) joined #forth 20:12:21 #1 is funny :)) 20:12:25 --- part: carlossch left #forth 20:12:29 Better to do a while :;do clear;fortune -a;sleep 2m;done and glance at it every once in a while. 20:12:33 #2 is good, because i can relate to it, oh yeah. 20:12:38 shit man, fortunes in awesome 20:12:42 i've read all the files, pity me :( 20:12:55 "There are 10 types of people in the world... those who understand binary and those who don't." 20:12:55 That's only 2 types of people, kow. 20:12:55 STUPID 20:13:08 the dirty jokes make me hot 20:13:20 chris - oh. Indeed =) 20:13:21 the dirty jokes make me feel clean. 20:13:41 which reminds me, i need to shave my armpits, legs, arms, face, and crotch. 20:14:14 chris - I can understand how they make you feel clean. I also like to take a shower after reading such material for a while. 20:14:53 well, it's good to have been part of such an /active/ internet chat room, but it's getting late 20:15:07 i've got a schedule, you know. an hour of starcraft before i can pass out naked :( 20:15:09 please don't call this a 'chat room'. 20:15:34 but it is :( 20:15:44 no. We like to call it an 'IRC channel'. 20:15:45 sorry mate. accept reality. we're "chatting", o shit 20:16:04 !! 20:16:05 omg 20:16:08 --- quit: nekokawaiibakach ("i am a waste removal engineer") 20:16:12 somebody ban neko? 20:16:25 eh, why? 20:16:27 damn, i didnt even get to say bye 20:16:33 for calling this a "chatroom" 20:19:33 hah 20:19:57 I have spotted the flaw in his argument 20:20:02 although we may be chatting 20:20:05 there is no room! 20:20:18 indeed. 20:20:33 He wants to use AOL terminology. 20:21:06 AOL = bad. 20:22:16 Please say "AOL => badness" or somesuch, instead of nonsense like "AOL is bad" with a pseudomathematical interpretation. 20:22:38 "AOL sucks" works =) 20:22:42 AOL culture is a very unwell defined culture. 20:22:47 SOL suxxxx0rs 20:22:49 lol 20:22:55 er 20:22:57 AOL 20:25:49 ugh 20:25:52 you an #hprog-er? 20:26:23 Don't tell Smerdy you're a forther, he is mad pro-typing :) 20:45:39 Hrm, is there like a bochs for some other RISC architecture? 20:45:48 I would love to do some asm coding for RISC 21:40:20 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 21:40:20 --- mode: ChanServ set +o kc5tja 21:53:13 * MysticOne feeds kc5tja with a banana! 21:53:30 kc5tja! 21:53:48 whats a good RISC processor that has a workable emulator I could write nice assembly for? 21:54:13 and please, tell me what the current best performance processor out there is :D 21:54:29 current means nothing in the computing world 21:55:32 true. 21:55:37 but 21:56:05 take a look how long itll take the x86 architecture to put forth the performance of a ppc64 21:57:15 talking out your ass now.. one benchmark.. all of the benchmarks show an amd proc trailing by a few marginal points 21:57:33 *sigh* 21:57:36 ok, hold on. 21:57:40 amd isn't even known for fast coprocessing 21:57:44 lemme find something for you to chew on. 21:57:45 intel is faster than amd 21:58:31 I am going to bed heh 21:58:44 I don't care much about x86 or ppc 21:59:05 or whatever other popular mass market droid tech 22:00:26 . 22:04:21 MIPS is certainly the easiest to write an emulator for. 22:04:41 --- quit: ayrnieu ("grr") 22:04:42 As far as which processor offers the best possible performance for the clock speed, it has to go to PA-RISC, from Hewlett Packard. 22:04:56 However, PowerPC is perhaps the best-known high-performer for the clock. 22:05:18 Intel P4 is the best floating point performer, but AMD Athlon *OWNS* the P4 in integer performance (which is what most software runs anyway). 22:06:00 I'm not sure if they improved the FPU in the Athlon64 architecture or not, so I'm not sure how the Athlon64 compares with the P4. 22:06:03 kc5tja: actually, I think the PowerPC 970 beats Intel at FPU 22:06:19 However, PowerPC is perhaps the best-known high-performer for the clock. 22:07:04 yeah, but then you just said Intel P4 was the best floating point performer 22:07:17 Of the Intel series. 22:07:41 you guys use the word own and best.. but the results are marginal at best 22:07:47 ahh, okay, you didn't say that :) 22:08:10 For what it's worth, though, it usually isn't very long for x86 to match or exceed PowerPC's performance. Unlike IBM or Motorola, Intel and AMD just throws more money (= more transistors) needed to make their CPUs run as fast as a PowerPC. 22:08:14 look, if you win by 1 point, you're still the best and you owned the competition 22:08:15 :) 22:08:20 I thought it was pretty obvious given the context. 22:08:59 yes.. and each time it takes everyone a little longer to respond 22:09:00 It's all just a matter of time 22:09:30 ugh. 22:09:36 :) 22:10:07 ree: Grab a 2ghz G5, and a 2ghz x86 architecture of your choice. 22:10:09 Don't get me wrong: I want PowerPC to take over as desktop CPU of choice. 22:10:23 install the same distro with the same software on both computers. 22:10:24 But it'll never happen. 22:10:26 and compare. 22:10:33 kc5tja: why not? it might eventually. 22:10:41 the argument that GHZ doesn't mean much can go BOTH ways 22:10:44 chris: It'll never come close. 22:10:50 kc5tja: how so? 22:11:05 chris: Nobody, and I do mean NOBODY, is using PowerPCs for desktop-class CPUs except for one vendor: Apple. 22:11:07 ree: just do it, and compare. 22:11:08 just because an intel proc may be 1ghz faster than a comparable processor doesn't mean it is any less performing 22:11:14 Apple holds less than 10% the total market share of desktop computers. 22:11:26 apple holds less than 4% 22:11:33 it's at about 3.4 - 3.5 22:11:41 less than 10%, agaik actually 22:11:47 i think its more than that. 22:11:49 And until they start treating their users and business partners with respect, and open their architecture to cloning, they'll never grow. 22:12:04 kc5tja: true, true. 22:12:23 kc5tja: do you happen to have any good MIPS resources? 22:12:29 And with market shares that small, Motorola will receive very, very, very little return on investment for the work needed to make PowerPC keep up with Intel CPUs. 22:12:36 chris: No. 22:12:59 I just know that a MIPS emulator called SPIM exists, and that it is apparently very good. 22:13:15 well, a PS emulator would work, eh? :) 22:13:23 if i find a mips linux image.. 22:13:37 what distro(s) support mips? 22:13:37 Yes, a PS emulator should work too. 22:13:50 I have no idea. 22:13:54 I don't own any MIPS machines. 22:14:17 was messing with mips machines part of your old work? :)) 22:14:34 Yes, but they were embedded devices, not desktop computers. 22:14:50 obviously debian... which is the #1 most ported linux 22:15:05 then if you're tired of linux, netbsd runs on everything and your kitchen toaster & sink 22:15:11 They ran proprietary operating systems (if you can call them that), ran proprietary, hard-coded software, and weren't able to interoperate with PC peripherals at all. 22:15:55 is ps/2 LE or BE? 22:15:59 I'm thinking maybe Gentoo would work too, since it's primarily a source-based Linux distribution. 22:16:14 chris: The MIPS processor is configurable. 22:16:32 chris: It can handle either little-endian or big-endian with relative ease. 22:16:43 as in, it can be changed at runtime? 22:16:43 lol 22:16:59 Yes, but not necessarily "at will." 22:17:05 It's a policy enforced by the host operating system. 22:17:13 hrm, interesting. 22:17:16 lol 22:17:30 actually, I've always wanted to try a BSD 22:17:36 so i think I'll go with netbsd :) 22:17:38 * kc5tja notes that most RISC CPUs are so configurable. 22:19:01 neat, neat 22:19:19 * chris has always wanted to code on an architecture that had more than 8 regs :) 22:19:25 mips has 16 or 32? 22:19:28 32 22:19:35 32 integer registers, 32 floating point. 22:19:38 --- part: ree left #forth 22:19:39 (same as PowerPC) 22:20:24 neat 22:20:34 er, is ps "arc compliant"? 22:20:51 What does "arc compliant" mean? 22:20:58 i wish i knew... 22:21:11 And quite likely not: the PS is a game console, again, not intended for use as a desktop machine (if that's what you're asking about). 22:21:11 About NetBSD/mipsco 22:21:11 NetBSD/mipsco is a port of NetBSD to the MIPS Computer Systems Inc. family of workstations and servers. 22:21:11 Currently only the Mips Magnum 3000 series of machines is supported but it is planned to support other models in the future. 22:21:14 The Mips Magnum 3000 was a popular workstation that was re-badged by companies such as Bull and Olivetti. 22:21:18 Later ARC compliant mips machines are supported by the NetBSD/arc port. 22:21:53 NetBSD/arc is the port of NetBSD to the MIPS processor based computers which comply with the Advanced RISC Computing (ARC) specification put together by the Advanced Computing Environment (ACE) Consortium in the early 1990's, as an alternative to Intel-based PC's. 22:22:19 Oh, almost certainly not then. 22:22:43 But there is a PS port of Linux already in existance, I'm pretty sure. It might be PS2 only though. Not sure. 22:22:46 then netbsd doesnt support ps ... :( 22:24:15 actually, it seems like the arc port would 22:24:16 lemme check google 22:25:18 well, on my current system, PS would probably run at "native" speed (for the PS, which is 33mhz) 22:25:22 SysInfo: Linux 2.4.21-99-athlon | AMD Athlon(tm) XP 1900+ 1602.064 MHz | Bogomips: 3162.11 | Mem: 292/503M [3|||||4|||||] | Diskspace: 13.20G Free: 6.42G | Procs: 99 | Uptime: 1 day 5 hrs 33 mins 28 secs | Load: 0.24 0.26 0.25 | Vpenis: 30.9 cm | Screen: ATI Technologies Inc Radeon RV200 QW [Radeon 7500]@1280x1024 (16 bpp) | wlan0: In: 35.49M Out: 6.05M 22:26:00 hrm, it seems that netbsd is ps2 only 22:27:23 aww :) 22:27:24 er 22:27:25 :( 22:27:34 it seems that theres nothing really for psx 22:28:56 vmips.sf.net <-- good? 22:33:00 No idea. 22:33:04 Never used it. 22:33:10 I only deal with x86 on a regular basis. 22:34:38 hrm :( 22:34:48 vmips doesnt support any graphics. 22:34:50 but thats alright. 22:34:51 :) 22:35:52 ori $8,$0,0x2 # put two's comp. two into register 8 22:35:52 ori $9,$0,0x3 # put two's comp. three into register 9 22:35:52 addu $10,$8,$9 # add register 8 and 9, put result in 10 22:36:20 er 22:36:23 what does ori do? :) 22:37:07 In this context, since register $0 is hardwired to be the number 0 (e.g., any write to it is ignored), it has the effect of loading the registers with a 16-bit signed constant. 22:37:09 brb -- bathroom 22:38:21 hrm 22:39:32 what is the YUV pixel format? 22:40:25 wotsit.org 22:40:42 back 22:41:14 chris: The ori instruction is the logical OR instruction, in case you hadn't realized it yet. :) 22:41:54 chris: Since R0 (or, as the Unix assembler calls it, $0) always contains the value zero (no matter what), in this case, it's loading R8 with (0 OR 2), or just two, and R9 with (0 OR 3), or 3. 22:42:12 why didnt he just do 22:42:18 li $8, 0x2 22:42:29 :D 22:42:36 Because li is auto-expanded by the assembler to ori $8,$0,0x2 22:42:42 i like this architecture sooo much better than intel already 22:42:47 .............! 22:42:53 so 22:43:02 you mean, theres no actual 'li' instruction? 22:43:06 Nope. 22:43:08 Why should it? 22:43:21 All instructions are 32-bits in size. Period. End of story. No further discussion is needed. 22:43:40 hrm. 22:43:47 So, it follows that you can't fit all 32-bits of an immediate value in an instruction. 22:43:52 So they have to load it in piece-meal. 22:44:26 well, as long as its fast :D 22:44:31 It's *VERY* fast. 22:44:44 A 32-bit load immediate executes in at most 2 cycles. 22:44:59 I say at most, because most immediates are small enough to fit in an ORI instruction, thus making it only 1 cycle. 22:45:00 so if you have some 32 bit value, and you want to read it in (lets say yuou want 0x10101010 into $9) 22:45:33 you have to 22:45:54 I'm not 100% sure, but I believe there is an instruction similar to ORI but which affects the top 16-bits instead of the bottom 16-bits as well. 22:46:05 ori $9, $0, 0x1010 22:46:09 If so, I'm going to arbitrarily call it ORIH (for ORI High-Word). 22:46:22 heh 22:46:26 so 22:46:28 ori $9, $0, 0x1010 22:46:31 orih $9, $0, 0x1010 22:46:32 :) 22:46:35 No. 22:46:38 But close. 22:46:43 It'd be this: 22:46:49 ori $9, $0, 0x1010 22:46:55 orih $9, $9, 0x1010 22:47:06 The reason is orih, like ori, would set the whole contents of the register. 22:47:18 oh. 22:47:21 that makes sense. 22:47:23 Using orih with $0 instead of $9 would set the top 16-bits, but clear the bottom 16-bits. 22:47:53 Now, that all being said, I'm not sure if orih exists (even under a different name) for MIPS. 22:48:04 It's been quite a few years since I worked with MIPS, and even then, only fleetingly. 22:48:08 well,in that case, you have to shift/rotate 22:48:11 does MIPS have rlwinm? 22:48:36 or shl? 22:49:02 I'm sure it has at least a simple shift instruction; I doubt it has a rotate and mask instruction (PowerPC's rlwinm instruction is awfully CISC for me, but it makes some sense even in a RISC context). 22:49:34 rlwinm alone replaces all rotate and shift instructions needed :D 22:49:40 its really neat 22:49:58 Got it: 22:50:04 To load a 32-bit immediate in MIPS: 22:50:09 lui $9,0x1010 22:50:15 ori $9,$9,0x1010 22:50:19 lui? 22:50:24 Load Upper Immediate 22:50:31 oh 22:50:36 but 22:50:42 li doesnt exist, why should lui? lol 22:50:56 SWAP doesn't exist in the F21, why should DUP? 22:51:04 li is an assembler mnemonic. 22:51:21 What the assembler produces in response to that mnemonic is up to the assembler. 22:51:47 hrm 22:51:48 ori $9,0,-2 is smaller and faster than lui $9,0xFFFF; ori $9,$9,0xFFFF (one cycle versus two) 22:52:00 i would really like to know what lui creates though 22:52:15 ! 22:52:17 er 22:52:23 if you have lui $9,0xBEEF, then R9 is set to 0xBEEF0000 22:52:40 yeah. 22:53:15 beef 22:53:16 hehe 22:53:44 0xB00B135 22:53:44 lui $9, 0xDEAD 22:53:59 ori $9, $9, 0xBEEF 22:54:01 :) 22:54:03 heh 22:54:12 0xB00B135 22:54:18 nice :) 22:55:28 http://www.cs.umd.edu/class/spring2003/cmsc311/Notes/Mips/load32.html <-- This should help explain things a bit better. 22:55:51 li $9,0xFEEDFACE 22:57:14 lol 22:57:22 0xF00DF4C3 22:57:26 er 22:57:33 0xF00DFACE 22:57:51 .. 22:57:52 wtf? 22:58:02 mozilla: "This document cannot be viewed while offline" 22:58:35 Well, as usual, I must get ready for bed. 22:58:46 I have to work. 22:58:53 Got 36 hours this week, instead of my usual 30. 22:58:56 :/ 22:59:01 Sucks, but at least I'm getting paid for it. 22:59:16 :) 23:00:54 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:11:54 --- quit: Herkamire ("bedtime") 23:59:59 --- log: ended forth/03.12.27