# | User | Message | Date |
2367 | Andreas | resp. http://www.rebol.net/builds/031/rebview1350031.exe for windows | 8-Jan-10 2:57 |
2366 | Andreas | ah, got it: http://www.rebol.net/builds/042/rebview1350042.tar.gz | 8-Jan-10 2:57 |
2365 | Steeve | it's not in the download section of rebol.com anymore ? | 8-Jan-10 2:56 |
2364 | Andreas | anyone happes to still have a rebol/core binary with rebcode functionality archived somewhere? | 8-Jan-10 2:53 |
2363 | Geomol | I didn't consider much in deep actually. It can be improved, I'm sure. :) | 13-Feb-08 23:17 |
2362 | Steeve | I should do a test before saying that | 13-Feb-08 23:15 |
2361 | Steeve | did you think that using PC as an offset (integer) instead of as a serie could be faster ? | 13-Feb-08 23:14 |
2360 | Geomol | Yup! :) | 13-Feb-08 23:00 |
2359 | Steeve | you got the idea ? ;-) | 13-Feb-08 22:59 |
2358 | Geomol | Thanks! | 13-Feb-08 22:59 |
2357 | Steeve | i give you an example with the TAX opcode ; updating flags in real time label TAX seti X A eq X 0 either [or P 2] [and P 253] seti i X and i 128 eq i 128 either [or P 128] [and P 127] bra continue ; delay the calcul of flags label TAX seti X A or maskA (2 + 128) ; remember that we have to recalculate zero and negative flags using A, but don't do it now bra continue | 13-Feb-08 22:53 |
2356 | Steeve | in theory | 13-Feb-08 22:40 |
2355 | Geomol | ok. One optimization, I consider, is to cross-compile 6502 opcodes to rebcode, instead of emulating the 6502. That won't work with self-modifying code and branches will be a problem. So it's hard, but I think, it might work. | 13-Feb-08 22:37 |
2354 | Steeve | Flags are calculated on the last accumulator value if i don't do mistakes | 13-Feb-08 22:36 |
2353 | Steeve | yes Geomol, it's that | 13-Feb-08 22:36 |
2352 | Steeve | and limited because on 6502 for example, many branchements are calculated (not statics) | 13-Feb-08 22:35 |
2351 | Geomol | Steeva, about flags: e.g. the zero flag Z (bit 1 of P). In stead of that I set it each time A, X or Y become zero, I could save any of those (A, X or Y) in a variable, and then test on that var and set the flag correctly, if and when the flag is actual used. Is that what you mean? | 13-Feb-08 22:35 |
2350 | Steeve | interesting to do on ROMs (static analysis before to launch the code) but not valuable in RAM because the code can be modified | 13-Feb-08 22:33 |
2349 | Steeve | hard to do | 13-Feb-08 22:30 |
2348 | Steeve | ah BrianH, i remember that you made the same proposal for my z80 emu (peephole optimzation) | 13-Feb-08 22:24 |
2347 | Geomol | Ah, that was you. Someone mentioned that one lately. | 13-Feb-08 22:20 |
2346 | Steeve | i' made a Z80 emulator using rebcode (not complete), you can see it in galaga.r on rebol.org | 13-Feb-08 22:19 |
2345 | Steeve | in fact the engine is very similar with the z80 one, i think we could make a meta-emulator using external data-sheets (one for 6502, one for Z80) | 13-Feb-08 22:18 |
2344 | Geomol | Good idea! Do you have previous experience with emulators like this, because I have none. | 13-Feb-08 22:17 |
2343 | Steeve | Geomol, i had a look on your emulator code, i think perfs could be improved if you delay the update of all flags only when they are used. | 13-Feb-08 22:15 |
2342 | BrianH | Rebcode is a higher-level language than 6502 assembler. Perhaps a peephole optimizer can rewrite your generated rebcode into better equivalent rebcode. | 13-Feb-08 18:07 |
2341 | Geomol | There's something wrong with my compare with a 1MHz 6502. I counted the number of cycles in the inner loop and found 17 cycles. A 1MHz 6502 can then do 1'000'000 / 17 * 40 = 2'352'941 loops in 40 seconds. But the BeebEm emulator made 16.7 mio. loops in that time. It should have taken 285 sec. So programming in rebcode is more like a 107 MHz cpu in this test. (It's probably not correct to measure it this way.) | 13-Feb-08 15:53 |
2340 | Pekr | and R3 rebcode si going to be even slower .... | 13-Feb-08 14:57 |
2339 | Geomol | This is just one single test using only a few of the available instructions. To have a better view, more tests are needed. I made a similar loop in C, compiled it with gcc, and it runs around 6 times faster than the pure rebcode version. Initially I won't call rebcode slow, but not blasting fast either. | 13-Feb-08 14:23 |
2338 | Geomol | I'm not sure. | 13-Feb-08 13:02 |
2337 | Henrik | sounds pretty slow? | 13-Feb-08 13:02 |
2336 | Geomol | Is it known how many cpu clocks, each rebcode instruction use in average? | 13-Feb-08 13:02 |
2335 | Geomol | To sum it up:
A 1MHz 6502 takes 40 sec to do 16'777'216 loops of this kind.
Emulating the 6502 using rebcode can do the same thing in 14 sec (on a 1.2 GHz G4) and in 9.5 sec (on a 2.4 GHz P4).
A pure rebcode program (no emulation) can do the 'same' 16'777'216 loops in around 2.7 sec on a 1.2 GHz G4. So a conclusion might be, that programming in rebcode is like having a 40 / 2.7 = 15 MHz cpu (if run on a 1.2 GHz G4). Is this a correct conclusion? | 13-Feb-08 12:58 |
2334 | Geomol | A similar rebcode performance test program might look like: ram: make binary! 3 insert/dup ram #"^(00)" 3 looptest: rebcode [/local a] [ set a 0 pokez ram 0 a label l1 set a 0 pokez ram 1 a label l2 set a 0 pokez ram 2 a label l3 pickz a ram 2 add a 1 pokez ram 2 a eq a 256 braf l3 pickz a ram 1 add a 1 pokez ram 1 a eq a 256 braf l2 pickz a ram 0 add a 1 pokez ram 0 a eq a 256 braf l1 ] It does 16'777'216 loops and takes less than 3 seconds on my 1.2 GHz G4. | 13-Feb-08 12:49 |
2333 | Geomol | A performance test program: lda #0 sta &1001 .l1 lda #0 sta &1002 .l2 lda #0 sta &1003 .l3 lda &1003 adc #1 sta &1003 lda &1003 bne l3 lda &1002 adc #1 sta &1002 lda &1002 bne l2 lda &1001 adc #1 sta &1001 lda &1001 bne l1 It takes 40s to run on a BBC emulator emulating a 1MHz 6502. It took around 14s using the rebcode emulator on my 1.2 GHz G4, and it took 9.5s using the rebcode emulator on my 2.4GHz Pentium 4. | 12-Feb-08 22:11 |
2332 | Geomol | Hm, probably a bad idea to use arrows to navigate ram, because it makes them not work in the text area. | 12-Feb-08 20:58 |
2331 | Geomol | It works like this: 1) Write some 6502 asm in the text area. Example: lda #&80 2) Press the button "Assemble". Now you can see the opcodes in the ram at address 0000. 3) Press the button "Begin" to run the emulator with the produced machine code and see the results in the registers and flags. | 12-Feb-08 20:29 |
2330 | Geomol | Scroll the 65kb ram with arrow-keys, page-up/down, home and end. | 12-Feb-08 20:26 |
2329 | Geomol | You'll need REBOL 1.3.50 to run this!!! | 12-Feb-08 20:26 |
2328 | Geomol | A first version of a MOS 6502 workbench tool is ready: do http://www.fys.ku.dk/~niclasen/rebol/language/m6502wb.r It'll load the 6502 assembler and emulator. It's a tool to compile 6502 assembler programs to machinecode and run it with the rebcode emulator. It's possible to see the 6502 registers and flags. Both asm6502.r and em6502.r has been updated. | 12-Feb-08 20:25 |
2327 | btiffin | John; still can't get into 6502.org but the site holds quite a bit of source code, from snippets to floating point math by Steve Wozniak. | 12-Feb-08 1:56 |
2326 | Geomol | Just to clear things out regarding performance. This is an emulation of a 1MHz cpu. It requires quite some computing power to emulate another cpu. To give a hint: an instruction line INX, which increment the X register by 1 requires 2 cycles on the 6502. So you can do half a million of those instructions on a 1MHz 6502 each second. In my emulator, that INX instruction become 11 rebcode instructions plus 6 rebcode instructions to control the loop, a total of 17 rebcode instructions. And it takes less than half a second to do 1 million of those, which is like a 4MHz 6502. So with this initial test, I'll say, rebcode is useable. | 11-Feb-08 21:47 |
2325 | BrianH | Oldes, the older rebcode version wasn't slower, it just had less features. We had to change the naming convention of the opcodes to add the features. | 11-Feb-08 20:00 |
2324 | Geomol | I'll see, if I can make a good ram-file to test with. And maybe a little wrapper, so it's possible to monitor, what's going on in the emulation. | 11-Feb-08 18:45 |
2323 | Geomol | For 6502 asm documentation, I use the "BBC Advanced User Guide" found here: http://www.nvg.ntnu.no/bbc/docs.php3 | 11-Feb-08 18:40 |
2322 | Geomol | OS X version: http://www.rebol.net/builds/024/rebview1350024.tar.gz Linux version: http://www.rebol.net/builds/042/rebview1350042.tar.gz | 11-Feb-08 18:37 |
2321 | Geomol | This win version should work: http://www.rebol.net/builds/031/rebview1350031.exe | 11-Feb-08 18:37 |
2320 | GiuseppeC | Ok, I will try later | 11-Feb-08 18:35 |
2319 | Henrik | only 1.3.50 and one more version has rebcode. not later versions | 11-Feb-08 18:35 |
2318 | Oldes | You must have version with the old rebcode | 11-Feb-08 18:35 |
2317 | GiuseppeC | I am running view 2.7.5 | 11-Feb-08 18:34 |
2316 | Geomol | Guiseppe, make sure you run rebol 1.3.50! | 11-Feb-08 18:34 |
2315 | Geomol | And this is on a 1.2 GHz G4 powerpc on my iBook. | 11-Feb-08 18:34 |
2314 | GiuseppeC | Script Error: rebcode has no value | 11-Feb-08 18:34 |
2313 | Geomol | I plan to do more tests in the coming days. Or maybe some of you wanna test too! | 11-Feb-08 18:33 |
2312 | Geomol | I only did very little test so far. I got around 1.5 MHz. The cpu (actually a 6512, it seems buth with 6502 instructions) in the BBC was 1MHz. | 11-Feb-08 18:32 |
2311 | Oldes | And what's the result of your test, how fast the rebcode is? | 11-Feb-08 18:31 |
2310 | Geomol | Yes, there is a script called convert-rc.r by Ladislav Mecir. | 11-Feb-08 18:31 |
2309 | Geomol | I think, we can convert it to the other version with one of (I think) Ladislav's scripts. | 11-Feb-08 18:30 |
2308 | Oldes | how sad:/ | 11-Feb-08 18:29 |
2307 | Geomol | Oldes, because that's the one I have under OS X. | 11-Feb-08 18:29 |
2306 | Geomol | Not much to see, but the program ram. To check things, put e.g. print lines in the end of the emulator. Like those 2 already in there commented out: print A print P which will print the content of the A register and the P (status) register. | 11-Feb-08 18:28 |
2305 | Oldes | Why you are using the old and slower rebcode version? | 11-Feb-08 18:28 |
2304 | Geomol | Those 4 lines do this: load the assembler, load the emulator, call the asssembler with a 6502 asm program returning 64kb ram, and finally run the program. | 11-Feb-08 18:27 |
2303 | Geomol | To make a little test: do http://www.fys.ku.dk/~niclasen/rebol/language/asm6502.r do http://www.fys.ku.dk/~niclasen/rebol/language/em6502.r ram: asm6502 "lda #&01 adc #&02" em6502 ram 0 | 11-Feb-08 18:26 |
2302 | GiuseppeC | Nothing ! I want to play Last Ninja 3, how could I do this ? :-) | 11-Feb-08 18:26 |
2301 | Oldes | is there any ram file to test with? | 11-Feb-08 18:25 |
2300 | Geomol | It require REBOL/view v. 1.3.50. That's the rebcode version, I used, because it's the one, that run on most platforms. | 11-Feb-08 18:24 |
2299 | GiuseppeC | Well, I am at the command prompt, I did a do http://www.fys.ku.dk/~niclasen/rebol/language/em6502.r and the prompt is here again. What could I do ? | 11-Feb-08 18:23 |
2298 | Geomol | It's v. 0.9.0, and I didn't call it v. 1.0.0, because it needs some more testing, I think. It's GPL license. | 11-Feb-08 18:22 |
2297 | Geomol | Guiseppe: I know! But shhh, don't tell the others! | 11-Feb-08 18:22 |
2296 | Geomol | And no, you can't play Elite with it! ;) I made this to test the speed of rebcode. That's my primary goal with this. So there is no Operating System stuff of any kind, so no I/O for keyboard, joysticks or screen. | 11-Feb-08 18:21 |
2295 | GiuseppeC | Geomol: you are crazy ! | 11-Feb-08 18:20 |
2294 | Geomol | Here's a MOS 6502 emulator written in rebcode, I made over the last few days: http://www.fys.ku.dk/~niclasen/rebol/language/em6502.r | 11-Feb-08 18:20 |
2293 | Geomol | Ready for some fun? | 11-Feb-08 18:19 |
2292 | BrianH | Maybe it's confusting that something as basic as NONE? doesn't have a corresponding opcode. | 8-Jan-08 0:33 |
2291 | Geomol | Maybe it's confusing, that rebcode has NONE at all!? | 7-Jan-08 15:49 |
2290 | Geomol | I feel, the main goal for rebcode implentation is speed, so it makes sense, that none is the same as zero. It would probably hit performance a lot, if you had the usual REBOL datatypes in rebcode. | 7-Jan-08 15:48 |
2289 | Oldes | I found it using this: r: rebcode[][set i 0 set n none type? n n while [lt.i i 10000][eq.i i n ift [print i] add.i i 1]] r | 7-Jan-08 10:20 |
2288 | Oldes | type? none is in rebcode integer 28 so to test none value it's possible to do: r: rebcode[a][type? t a eq.i t 28 ift [print "a is none"]] r none | 7-Jan-08 10:19 |
2287 | Oldes | In rebcode none is same like zero so if you want to check value where are integers or can be none, than it's not enough. The best way how to solve it now is not to use such a logic, or use something like this: ex: rebcode [a /local r n no][type? r a print r set n none type? no n eq.i r no ift [print "a is none"]] which is quite heavy. Or find out the integer value for each datatype. Or is there any better way how to work with value returned by the type? opcode? | 6-Jan-08 16:33 |
2286 | Geomol | Above example done under Windows with: REBOL/View 1.3.61.3.1 18-Nov-2005 Core 2.7.0 | 6-Jan-08 12:37 |
2285 | Geomol | >> ex: rebcode [/local a][set.i a none eq.i a none ift [print "a is none"]] >> ex a is none | 6-Jan-08 12:36 |
2284 | Geomol | That one gets the type and put it in result. And that wasn't what you asked, I just realize. :) Let me think... | 6-Jan-08 12:32 |
2283 | Geomol | type? result value-to-check | 6-Jan-08 12:30 |
2282 | Oldes | How to test 'none value in rebcode? SETT sets false also for zero so I cannot use it:/ | 5-Jan-08 15:52 |
2281 | btiffin | Ok, played. 2.6.50.4.2 version insert takes word! series! so m: does [make image! 0x0] f: rebcode [] [apply j m [] insert j [1] return j] will assemble and run, but I get a mungled image when I try it. (Can't get the 256 count thingy to assemble) | 1-Nov-07 15:14 |
2280 | btiffin | Sorry ... Micha; | 1-Nov-07 14:41 |
2279 | btiffin | Mich; I'm not real up on rebcode, but I don't think apply can't be applied to make. Apply can't evaluate action! or op! types. So for that part you'd want m: does [make image! 0x0] f: rebcode [] [apply j m [] return j] Then; I've never got the series opcodes to work. insert, change ... none of those. mold system/internal/rebcodes/insert makes it look like they are not implemented. So I would f: rebcode [] [apply j m [] do j [insert j 1] return j] to get your to work, but with the do it's not going to be rebcode speedy. | 1-Nov-07 14:41 |
2278 | Henrik | micha, what exactly does it do? I don' t have access to that version right here. | 1-Nov-07 12:52 |
2277 | Micha | i use rebol2650042 | 1-Nov-07 9:11 |
2276 | Micha | f: rebcode [][apply j make [ image! 0x0] insert j 1 256 return j ] | 1-Nov-07 9:09 |
2275 | Micha | why this code not work on linux ? | 1-Nov-07 9:09 |
2274 | Micha | o | 1-Nov-07 8:50 |
2273 | Geomol | Yeah, the OSX version, I use (which must be very close to the Linux version), is mainly for testing performance and playing around. Not for serious work. | 15-May-07 20:24 |
2272 | ? | yes i spotted that...but linux does not go further then December 2006 unfortuneatly.. I think i have to deal with Rebcode thats limited on linux..at least I have someting that does assembly ;-) | 15-May-07 19:54 |
2271 | BrianH | The Great Renaming happened with 1.3.60 - look for versions later than that. | 15-May-07 16:24 |
2270 | BrianH | Ditto with the Linux version, Rebolinth. | 15-May-07 16:15 |
2269 | BrianH | Geomol, those OS X versions predate the Great Renaming, so most of the opcodes are different. | 15-May-07 16:15 |
2268 | ? | Aaaaaiiiii that 1350042 version is a real old one ..but it has Rebcode..... | 15-May-07 15:23 |
2267 | ? | Now i only need the webpages [Opcode Reference] and [DEMOS] anyone has those cached? | 15-May-07 15:20 |
2266 | ? | Confirmed !! Linux REBCODE version is rebview1350042.tar.gz...Thanks verify with 'print system/internal/rebcodes' | 15-May-07 15:20 |
2265 | Geomol | Pekr, yes and yes, I plan to complete RPaint, when I can. | 15-May-07 14:26 |
2264 | Pekr | Geomol - does codebase for RPaint still exist? Will you resurrect the app once new compositing enigne with R3 is inplace, along with rebcode? | 15-May-07 14:25 |
2263 | Geomol | It's the first version of rebcode, you'll find in those. A later version was released for Windows, yes. | 15-May-07 14:25 |
2262 | Geomol | "The old versions are still out there, Windows only." Not true! rebview1350024 from 16-Oct-2005 is for OSX incl. rebcode. My guess is, rebview1350042 from 14-Oct-2005 include rebcode too. Haven't tried it out though. | 15-May-07 14:24 |
2261 | Pekr | Carl would have to visit us here from time to time, to get us a better answer :-) | 15-May-07 10:58 |
2260 | Gabriele | Carl might be able to give you a much better answer... | 15-May-07 10:57 |
2259 | Gabriele | even if there are only a few... it's still some time subtracted from other stuff. so i can't promise anything about that, especially since i don't know the details of everything. | 15-May-07 10:57 |
2258 | Pekr | .... remembering when rebcode was introduced, Carl seemed to implement improvements in light speed :-) | 15-May-07 10:52 |
2257 | Pekr | there is so many proposed improvements? I thought that Brian requested few opcodes? | 15-May-07 10:51 |
2256 | Gabriele | core with rebcode is a different thing from core with all the rebcode improvements that have been proposed. | 15-May-07 10:50 |
2255 | Oldes | yes, I know... i'm very patient... | 15-May-07 10:45 |
2254 | Pekr | Oldes - but maybe RT has real concern here. You can imagine there will be many requests for furhter improvements, bug fixes, etc., so that we can "steal" time from RT's resources and hence View could get even more postponed ... dunno ... | 15-May-07 10:43 |
2253 | Pekr | exactly - Core is the infrastructure - let us play with kernel first ... | 15-May-07 10:42 |
2252 | Oldes | I'm sure I don't want VID improvements before of rebcode.... I want CORE with rebcode first... And I really hope that some release will not be postponed just because there is no new tree-list GUI or something else | 15-May-07 10:42 |
2251 | Gabriele | yep, please move :) | 15-May-07 10:29 |
2250 | Pekr | chatting in wrong group once again .... :-) | 15-May-07 10:28 |
2249 | Pekr | hmm, maybe we could use kind of devices for that, no? Events could be queued etc. :-) | 15-May-07 10:28 |
2248 | Gabriele | that is, my idea (which carl agreed on, and i think others too), is that the app does not get a mouse click event, it gets a "button pressed" event. (not sure if the explanation is clear) | 15-May-07 10:27 |
2247 | Gabriele | he likes it a lot (liquidgl), but it's too big, so max will need to "distill" it a bit :) | 15-May-07 10:26 |
2246 | Pekr | ah, that makes more sense ... | 15-May-07 10:26 |
2245 | Gabriele | not rebservices directly, but just "messages" for events, so you can also send them thru rebservices. | 15-May-07 10:26 |
2244 | Pekr | what was Carl's reaction to glayout and liquid? | 15-May-07 10:26 |
2243 | Gabriele | i do plan on that - but only as long as carl agrees to that, and i need to show him some prototype to convince him it's not going to be too complicated. | 15-May-07 10:25 |
2242 | Pekr | I have heard Gabriele proposed to use rebservices for the 'feel part, which is imo insane idea :-) (would be slow imo :-) | 15-May-07 10:25 |
2241 | Henrik | I wouldn't mind VID for 3.0. All my programs are VID anyway | 15-May-07 10:24 |
2240 | Henrik | Gabriele, are you planning to follow up on the design document you posted when we talked R3 GUI design? | 15-May-07 10:24 |
2239 | Pekr | ah, ok, there is a Reichart to blame. Reichart - where are you?! :-) | 15-May-07 10:24 |
2238 | Gabriele | probably most will run... but it's hard to say at this point. it depends on the amount of time we have. keep in mind reichart is taking my and richard's time too. | 15-May-07 10:23 |
2237 | Pekr | ah, with View 3.0 | 15-May-07 10:23 |
2236 | Pekr | ok - different pov - do you expect current VID scripts to run with View 1.3? Will you "emulate" face aproach, etc.? | 15-May-07 10:22 |
2235 | Gabriele | but there was no real agreement about what the new system should be. so... well, it's too early to say anything about it now. what we now is that we need something like vid for r3 too. | 15-May-07 10:22 |
2234 | Pekr | With RebGUI state, although VID my be more free-form, I refuse to even touch the thing, which does not have scrollers with area, list-box is not indexed and it hilites two the same values, and tonnes of other problems ... | 15-May-07 10:21 |
2233 | Gabriele | so my answer was, well, let's improve vid, and at the same time develop the new system, so that we have vid (with resizing, liquid-alike stuff, more styles etc.) for 3.0 (or at worst 3.1) and we can have the new system later on. | 15-May-07 10:21 |
2232 | Pekr | btw - as you are close to RT - what happened (or will happen) to rebol's security schema? IIRC Josh was working on some document - was it only regarding plug-in, or did it influence also general rebol interpreter, rebcode, etc.? | 15-May-07 10:20 |
2231 | Gabriele | carl answer was, we need this RSN... no time for this. (others agreed, sort of) | 15-May-07 10:20 |
2230 | Gabriele | my idea was: let's write something from scratch that uses all the good ideas from vid, glayout, rebgui, liquid and so on. | 15-May-07 10:19 |
2229 | Pekr | ? | 15-May-07 10:19 |
2228 | Pekr | ah, and what is the result ... | 15-May-07 10:19 |
2227 | Pekr | but I suspect typical scenario. There is imo no VID+ group active. It will be cooked behind the closed door, and then you will complain, that I will complain :-) | 15-May-07 10:19 |
2226 | Gabriele | we had this discussion during devcon (me, carl, nenad, cyphre, rebolek, max, etc.) | 15-May-07 10:18 |
2225 | Pekr | I don't believe it can be complete, so let's forget VID, it has so many defficiencies, so it should be either completly redesigned (you can't easily just to "improve" VID), or forgot .... | 15-May-07 10:18 |
2224 | Pekr | Gabriele - NOOOOOOO - no VID improvements .... | 15-May-07 10:17 |
2223 | Gabriele | :) | 15-May-07 10:15 |
2222 | Gabriele | the new stuff. basic rebcode will probably be in 3.0. but guys, we have priorities. you want vid improvements before of rebcode, don't you? | 15-May-07 10:15 |
2221 | Oldes | 3.1? sniff :'-( | 15-May-07 10:10 |
2220 | Gabriele | no need to bug me, i already want all that stuff. i guess it'll be 3.1 rather than 3.0 though. remember 3.0 is only a couple months away... | 15-May-07 10:08 |
2219 | Pekr | Brian - that sounds cool. Please bug Carl and Gabriele about Rebcode improvements ;-) | 15-May-07 6:14 |
2218 | Jerry | I'm looking forward to the "BRIAN" NEW rebcode. : ) | 15-May-07 0:47 |
2217 | BrianH | I also wanted support for more datatypes. I was looking at rebcode as a compilation target. It never mattered to me how it looked since I was only rarely going to write it out - most of my code will be generated. | 14-May-07 22:45 |
2216 | BrianH | I'm hoping for better apply support too - rebcode's apply is so slow I found myself inlining functions by hand. | 14-May-07 22:41 |
2215 | BrianH | Petr, in particular I was thinking of vectors, the new objects and a better security model. Hopefully better structs too, with rebcode support. | 14-May-07 22:38 |
2214 | Henrik | BrianH, I remember talking about optimized functions for graphics output. I hope they get in. | 14-May-07 20:41 |
2213 | Pekr | BrianH: why you think R3 kernel will make rebcode even better? | 14-May-07 19:53 |
2212 | ? | cya.. | 14-May-07 19:20 |
2211 | BrianH | Me too! Must work, later... | 14-May-07 19:20 |
2210 | ? | Im realy currious to see what comes out ;-) | 14-May-07 19:19 |
2209 | BrianH | R3 became a higher priority, particularly when it became apparent that the new runtime would make rebcode even better. | 14-May-07 19:18 |
2208 | ? | well lets wait ... | 14-May-07 19:18 |
2207 | ? | and fast for what ive seen then.. | 14-May-07 19:17 |
2206 | ? | MMmm pitty... i realy liked to kick some asm code around in rebol.. it all looked realy orgenized at the time.. | 14-May-07 19:17 |
2205 | BrianH | I've been on the bench related to rebcode for a year, and I was its most avid tester. Waiting for R3... | 14-May-07 19:15 |
2204 | ? | Yes pitty..well lets hope they have some surprices for us in R3 ;-) | 14-May-07 19:14 |
2203 | BrianH | It didn't even make it as far as 1.3.3, let alone 2.7. | 14-May-07 19:13 |
2202 | ? | <man my keyboard is rusty> | 14-May-07 19:13 |
2201 | ? | Yes is justed checken my SDK its also not inside the 2.7.. ;-( So im on the bench ... | 14-May-07 19:13 |
2200 | ? | and there was also a 'life' version i remember.. | 14-May-07 19:12 |
2199 | BrianH | It's too bad they never released an encappable version. | 14-May-07 19:12 |
2198 | ? | Yes.. i realy loved those mandelbrod scripts...fantastic speed.. | 14-May-07 19:12 |
2197 | BrianH | It was OK to run rebcode as long as you only ran scripts that you trusted to avoid the unstable parts. | 14-May-07 19:11 |
2196 | ? | I hope Carl released with R3 more Linux versions instead of windows version with his beta/Alpha releases... Linux users always miss the boat.. Even OSX users get more attention dies days ;-)... | 14-May-07 19:11 |
2195 | BrianH | It's an assembler - of course it's ugly :) | 14-May-07 19:10 |
2194 | ? | That relay a pitty because the alpha currently is still very intresting for its speed...save or not ;-) | 14-May-07 19:10 |
2193 | ? | yes i know it runs but it looks ulgy like hell...beside that... running wine and Rebcode is some kind of a Honey-pot licking contest.. | 14-May-07 19:09 |
2192 | BrianH | Its development never got to the stage of being stable or safe to use though. Wait for R3 :( | 14-May-07 19:08 |
2191 | BrianH | I gather REBOL/View with rebcode worked with Wine. | 14-May-07 19:07 |
2190 | ? | Mmmmmm pitty... So i need to puch my head to windows... Pitty then ill just Drop Rebcode....thanks.. | 14-May-07 19:07 |
2189 | ? | ;-) | 14-May-07 19:06 |
2188 | BrianH | Development on rebcode was temporarily discontinued, but will return with R3. The old versions are still out there, Windows only. | 14-May-07 19:06 |
2187 | Rebolek | that's really strange | 28-Feb-07 7:27 |
2186 | Anton | Not even floats. ridiculous. That's if my memory serves me correctly, of course. | 28-Feb-07 7:27 |
2185 | Rebolek | oh | 28-Feb-07 7:25 |
2184 | Anton | I think it was the use of integers between 0-100 to represent volume, or something like that. | 28-Feb-07 7:25 |
2183 | Rebolek | why? | 28-Feb-07 7:25 |
2182 | Anton | um.. I had a bad vibe about portAudio, I think. | 28-Feb-07 7:24 |
2181 | Rebolek | what about portAudio? | 28-Feb-07 7:18 |
2180 | Anton | OpenAL looks good. Will have to try that later. | 28-Feb-07 5:43 |
2179 | BrianH | Sorry, the source _site_ has a lot of good source _code_ :) | 28-Feb-07 5:21 |
2178 | BrianH | The source for Media Player Classic has a lot of good source, as does ffdshow. | 28-Feb-07 5:21 |
2177 | BrianH | I forget, has OpenAL been ported to Windows yet? Perhaps that will work, Anton. | 28-Feb-07 5:19 |
2176 | Steeve | so , i will add a mute button | 28-Feb-07 3:56 |
2175 | Steeve | i think if i let the sound like that, RT peoples will have a headhash and will implement a correct sound port soon. | 28-Feb-07 3:55 |
2174 | Anton | The good work is to find a nice little open-source audio library for playing samples and try to integrate it into rebol. | 28-Feb-07 3:51 |
2173 | Anton | I had success with external library interface and FMOD audio library, but it's not cross-platform (or open source). | 28-Feb-07 3:50 |
2172 | Steeve | yep, i fear that | 28-Feb-07 3:48 |
2171 | Anton | hmm... maybe you can maintain the fidelity of your samples by inserting copies of your original samples. | 28-Feb-07 3:48 |
2170 | Anton | I don't think the current sound-port implementation is worth bothering with. | 28-Feb-07 3:47 |
2169 | Anton | warning: sound port is really buggy and destroys your samples over time. | 28-Feb-07 3:46 |
2168 | Steeve | i must add a trick to negociate the good frame rate | 28-Feb-07 3:28 |
2167 | Steeve | *recognize | 28-Feb-07 3:26 |
2166 | Steeve | argh !!! | 28-Feb-07 3:26 |
2165 | Steeve | some problems to recogniez the original music | 28-Feb-07 3:26 |
2164 | Steeve | yeah and now u can try i with sound (same adress) | 28-Feb-07 3:25 |
2163 | Anton | Getting better. :) | 28-Feb-07 3:01 |
2162 | Steeve | *as in my dreams ? | 27-Feb-07 23:08 |
2161 | Steeve | speed improvement of http://perso.orange.fr/rebol/galaga.r all video routines have been translated into rebcode, but it' s not so fast than in my dreams. - Added a button to switch Draw randering between bilinear and nearest | 27-Feb-07 23:07 |
2160 | Dockimbel | Human: Well, I need to go to work. | 27-Feb-07 13:47 |
2159 | Oldes | probably not the best translation | 27-Feb-07 12:53 |
2158 | Oldes | Babel: bon faut que j'aille au boulot moi = good is necessary that I go to the job me :] | 27-Feb-07 12:52 |
2157 | Pekr | co to? :-) | 27-Feb-07 12:43 |
2156 | Steeve | bon faut que j'aille au boulot moi | 27-Feb-07 12:40 |
2155 | Steeve | ah merci | 27-Feb-07 12:40 |
2154 | Coccinelle | Bravo Steeve. | 27-Feb-07 12:39 |
2153 | Henrik | I ran it through remote desktop on Windows via OSX. speed was a little slow, but ok | 27-Feb-07 10:33 |
2152 | Oldes | Pekr, do you really think it's sluggish? For me it's too fast to play even in the zoomed version:] | 27-Feb-07 10:31 |
2151 | Pekr | hmm, but nice anyway ... Steeve - if you find anything what could improve rebcode, discuss it with Brian eventually and put it in RAMBO :-) | 27-Feb-07 9:53 |
2150 | Steeve | i removed some debug instructions, it's a little more faster now. Don't forget i have to rewrite the video emulation too. So it will be definitivly faster (i hope). | 27-Feb-07 9:52 |
2149 | Henrik | steeve, you could probably make your file even smaller by enbasing the game rom in source. | 27-Feb-07 8:54 |
2148 | Henrik | yes, definitely | 27-Feb-07 8:52 |
2147 | Pekr | but it shows nice potential, doesn't it? Especially if something like ZX Specturum could be emulated :-) | 27-Feb-07 8:51 |
2146 | Henrik | there are also some time wasting color conversion going on. if that could be done in 1-2 ops, it would be much faster. | 27-Feb-07 8:50 |
2145 | Pekr | ah ... hmm, we will see what new View comes up with ... | 27-Feb-07 8:49 |
2144 | Henrik | it probably can, if rebcode is allowed to write straight to a display buffer rather than through View. | 27-Feb-07 8:49 |
2143 | Pekr | although I wonder if rebol can be fast enough - still sluggish .... | 27-Feb-07 8:48 |
2142 | Pekr | yes, well, that is so cool :-) | 27-Feb-07 8:48 |
2141 | Henrik | sorry, 1361031 it is | 27-Feb-07 8:47 |
2140 | Pekr | ok, thanks ... | 27-Feb-07 8:45 |
2139 | Henrik | works in rebview13611031.exe here | 27-Feb-07 8:45 |
2138 | Pekr | I am getting some error - which is the latest rebcode release? | 27-Feb-07 8:38 |
2137 | Henrik | wow, that's great, Steeve! | 27-Feb-07 8:12 |
2136 | Anton | Impressive, Steeve. | 27-Feb-07 6:49 |
2135 | Graham | hey, what about a 6502 emulator ?? | 27-Feb-07 5:07 |
2134 | Steeve | the next step is to include the PSG emulation, yeah ! we will have music too. | 27-Feb-07 2:53 |
2133 | Steeve | this demo is the first stone of the future MSX emulator, but we could emulate lot of computer based on Z80 ship. | 27-Feb-07 2:51 |
2132 | Steeve | (game rom include) | 27-Feb-07 2:49 |
2131 | Steeve | only 86kb for the source + game rom | 27-Feb-07 2:49 |
2130 | Steeve | use rebcode but not for the video emulation, so we can get it faster, soon... | 27-Feb-07 2:48 |
2129 | Steeve | new version of galaga.r http://perso.orange.fr/rebol/galaga.r | 27-Feb-07 2:47 |
2128 | Steeve | 2 bugs found: poke doesn't work with tuples and when we poke an image with a RGB tuple value , RGB channels are mixed in a strange manner. | 26-Feb-07 23:10 |
2127 | Steeve | done | 24-Feb-07 16:12 |
2126 | Pekr | Why not to write down your logical conclusions and throw them at RAMBO? | 24-Feb-07 8:58 |
2125 | Sunanda | Steeve <BTW, why rebcode thread is not on rebol.net ?> Technically, it is because the group's description does not have "[web-pubiic]" in it.....Add that text to the description, and the last 300 messages will be on REBOL.net in around 10 minutes. *** I suspect no one did that either for the reason BrianH suggests, or because no one has thought to do it. I don't see any reason why it should not be a [web-public] group, but I'll leave the changing of the group description to the active participants. (hint: right-click the group name in the left-hand side list of groups) | 24-Feb-07 8:20 |
2124 | BrianH | Good night. | 24-Feb-07 5:57 |
2123 | BrianH | Limited use though. | 24-Feb-07 5:57 |
2122 | Steeve | good night Brian | 24-Feb-07 5:57 |
2121 | BrianH | I would love a REBOL native swap instruction that worked like block set, but we all have dreams :) | 24-Feb-07 5:57 |
2120 | BrianH | I was thinking vectors and opcodes to handle the struct! type, but a swap instruction would be nice too. | 24-Feb-07 5:55 |
2119 | Steeve | so, to conclude this session, Rebcode needs union handling and swap instruction. | 24-Feb-07 5:54 |
2118 | BrianH | I thought of that, except in my head it was a second set of BRAB blocks :) | 24-Feb-07 5:51 |
2117 | Steeve | Mwahahaha | 24-Feb-07 5:47 |
2116 | Steeve | yeah or i could build another instance of the interpreter and swap them | 24-Feb-07 5:47 |
2115 | BrianH | You could be accessing all of those values indirectly to make the swap easier, but slowing down everything else :) | 24-Feb-07 5:44 |
2114 | Steeve | i don't see how :-) | 24-Feb-07 5:42 |
2113 | BrianH | It could be worse. | 24-Feb-07 5:42 |
2112 | Steeve | exchange of b, c, d ,e , h , l, with b' , c', d', e', h', l' | 24-Feb-07 5:38 |
2111 | Steeve | label EXX set.i tmp _b set.i _b _b' set.i _b' tmp set.i tmp _c set.i _c _c' set.i _c' tmp set.i tmp _d set.i _d _d' set.i _d' tmp set.i tmp _e set.i _e _e' set.i _e' tmp set.i tmp _h set.i _h _h' set.i _h' tmp set.i tmp _l set.i _l _l' set.i _l' tmp (cont) | 24-Feb-07 5:37 |
2110 | Steeve | badly | 24-Feb-07 5:36 |
2109 | BrianH | How does your code handle exchanges? | 24-Feb-07 5:36 |
2108 | Steeve | Z80 is good with rotation | 24-Feb-07 5:35 |
2107 | Steeve | there are 12 different rotations | 24-Feb-07 5:35 |
2106 | Steeve | or not | 24-Feb-07 5:33 |
2105 | Steeve | the carry flag can be injected to the left or to the right | 24-Feb-07 5:33 |
2104 | Steeve | some of them, it's an option | 24-Feb-07 5:31 |
2103 | BrianH | Do the rotation instructions affect the carry flag? | 24-Feb-07 5:31 |
2102 | BrianH | Well, there is no reason to change that balance - the code expects it. 16-bit operations can be sped up using a few tricks if necessary, like temporary registers that are used internally. You can even name those registers _bc, _de and _hl if you like :) | 24-Feb-07 5:29 |
2101 | Steeve | but the first reason is that 8bit register operations are faster | 24-Feb-07 5:27 |
2100 | Steeve | and bit manipulations | 24-Feb-07 5:25 |
2099 | Steeve | like rotation operations | 24-Feb-07 5:24 |
2098 | Steeve | and many operations occur only on 8 bit registers | 24-Feb-07 5:24 |
2097 | Steeve | because it's more compact and faster | 24-Feb-07 5:23 |
2096 | Steeve | 8 bit | 24-Feb-07 5:23 |
2095 | BrianH | Is 8-bit or 16-bit code more common? | 24-Feb-07 5:23 |
2094 | Steeve | but most of instructions act on A | 24-Feb-07 5:22 |
2093 | Steeve | HL | 24-Feb-07 5:21 |
2092 | BrianH | What do 16-bit arithmetic instructions use for an accumulator? | 24-Feb-07 5:20 |
2091 | Steeve | _a in my source | 24-Feb-07 5:20 |
2090 | Steeve | it is A | 24-Feb-07 5:20 |
2089 | Steeve | 8 | 24-Feb-07 5:19 |
2088 | BrianH | Is the accumulator internally 8 or 16-bit? | 24-Feb-07 5:19 |
2087 | BrianH | Internally, they would really be 32-bit registers, of course. | 24-Feb-07 5:17 |
2086 | BrianH | I'm thinking that you may be able to efficiently store your 8-bit registers in your 16-bit registers and break them out when you need them. | 24-Feb-07 5:16 |
2085 | Steeve | ext 128 = -128 | 24-Feb-07 5:15 |
2084 | Steeve | no it works | 24-Feb-07 5:14 |
2083 | Steeve | fooooollll | 24-Feb-07 5:14 |
2082 | Steeve | ext8 (128 + 65536) = -128 instead of 128 | 24-Feb-07 5:12 |
2081 | BrianH | I'm going off docs and memory here. | 24-Feb-07 5:12 |
2080 | BrianH | What happens? I don't have rebcode here to test. | 24-Feb-07 5:12 |
2079 | Steeve | wrong | 24-Feb-07 5:11 |
2078 | BrianH | What happens if you EXT8 a value that already has data in the higher bytes? I'm guessing it will just overwrite that data... | 24-Feb-07 5:09 |
2077 | Steeve | so, the correct answer is: 1 | 24-Feb-07 5:04 |
2076 | Steeve | that's mostly the case | 24-Feb-07 5:04 |
2075 | Steeve | but in fact it can be occured in one opcode of length 1, if the adress is already contained in one 16 bit register . | 24-Feb-07 5:03 |
2074 | Steeve | one for the operation opcode and 2 for the address on 16 bits | 24-Feb-07 5:00 |
2073 | Steeve | 3 is the minimum | 24-Feb-07 4:59 |
2072 | Steeve | yep, you're right | 24-Feb-07 4:59 |
2071 | BrianH | *it depends on the addressing mode | 24-Feb-07 4:59 |
2070 | Steeve | 3 | 24-Feb-07 4:59 |
2069 | BrianH | How many bytes in a load from memory? I suppose on the addressing mode... | 24-Feb-07 4:58 |
2068 | Steeve | *so during 1 operation | 24-Feb-07 4:58 |