REBOL3 - rebcode (Rebcode discussion [web-public])

Return to Index Page
Most recent messages (300 max) are listed first.

2367Andreasresp. for windows8-Jan-10 2:57
2366Andreasah, got it: 2:57
2365Steeveit's not in the download section of anymore ?8-Jan-10 2:56
2364Andreasanyone happes to still have a rebol/core binary with rebcode functionality archived somewhere?8-Jan-10 2:53
2363GeomolI didn't consider much in deep actually. It can be improved, I'm sure. :)13-Feb-08 23:17
2362SteeveI should do a test before saying that13-Feb-08 23:15
2361Steevedid you think that using PC as an offset (integer) instead of as a serie could be faster ?13-Feb-08 23:14
2360GeomolYup! :)13-Feb-08 23:00
2359Steeveyou got the idea ? ;-)13-Feb-08 22:59
2358GeomolThanks!13-Feb-08 22:59
2357Steevei 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
2356Steevein theory13-Feb-08 22:40
2355Geomolok. 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
2354SteeveFlags are calculated on the last accumulator value if i don't do mistakes13-Feb-08 22:36
2353Steeveyes Geomol, it's that13-Feb-08 22:36
2352Steeveand limited because on 6502 for example, many branchements are calculated (not statics)13-Feb-08 22:35
2351GeomolSteeva, 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
2350Steeveinteresting to do on ROMs (static analysis before to launch the code) but not valuable in RAM because the code can be modified13-Feb-08 22:33
2349Steevehard to do13-Feb-08 22:30
2348Steeveah BrianH, i remember that you made the same proposal for my z80 emu (peephole optimzation)13-Feb-08 22:24
2347GeomolAh, that was you. Someone mentioned that one lately.13-Feb-08 22:20
2346Steevei' made a Z80 emulator using rebcode (not complete), you can see it in galaga.r on rebol.org13-Feb-08 22:19
2345Steevein 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
2344GeomolGood idea! Do you have previous experience with emulators like this, because I have none.13-Feb-08 22:17
2343SteeveGeomol, 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
2342BrianHRebcode 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
2341GeomolThere'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
2340Pekrand R3 rebcode si going to be even slower ....13-Feb-08 14:57
2339GeomolThis 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
2338GeomolI'm not sure.13-Feb-08 13:02
2337Henriksounds pretty slow?13-Feb-08 13:02
2336GeomolIs it known how many cpu clocks, each rebcode instruction use in average?13-Feb-08 13:02
2335GeomolTo 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
2334GeomolA 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
2333GeomolA 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
2332GeomolHm, 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
2331GeomolIt 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
2330GeomolScroll the 65kb ram with arrow-keys, page-up/down, home and end.12-Feb-08 20:26
2329GeomolYou'll need REBOL 1.3.50 to run this!!!12-Feb-08 20:26
2328GeomolA first version of a MOS 6502 workbench tool is ready: do 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
2327btiffinJohn; still can't get into but the site holds quite a bit of source code, from snippets to floating point math by Steve Wozniak.12-Feb-08 1:56
2326GeomolJust 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
2325BrianHOldes, 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
2324GeomolI'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
2323GeomolFor 6502 asm documentation, I use the "BBC Advanced User Guide" found here: 18:40
2322GeomolOS X version: Linux version: 18:37
2321GeomolThis win version should work: 18:37
2320GiuseppeCOk, I will try later11-Feb-08 18:35
2319Henrikonly 1.3.50 and one more version has rebcode. not later versions11-Feb-08 18:35
2318OldesYou must have version with the old rebcode11-Feb-08 18:35
2317GiuseppeCI am running view 2.7.511-Feb-08 18:34
2316GeomolGuiseppe, make sure you run rebol 1.3.50!11-Feb-08 18:34
2315GeomolAnd this is on a 1.2 GHz G4 powerpc on my iBook.11-Feb-08 18:34
2314GiuseppeCScript Error: rebcode has no value11-Feb-08 18:34
2313GeomolI plan to do more tests in the coming days. Or maybe some of you wanna test too!11-Feb-08 18:33
2312GeomolI 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
2311OldesAnd what's the result of your test, how fast the rebcode is?11-Feb-08 18:31
2310GeomolYes, there is a script called convert-rc.r by Ladislav Mecir.11-Feb-08 18:31
2309GeomolI think, we can convert it to the other version with one of (I think) Ladislav's scripts.11-Feb-08 18:30
2308Oldeshow sad:/11-Feb-08 18:29
2307GeomolOldes, because that's the one I have under OS X.11-Feb-08 18:29
2306GeomolNot 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
2305OldesWhy you are using the old and slower rebcode version?11-Feb-08 18:28
2304GeomolThose 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
2303GeomolTo make a little test: do do ram: asm6502 "lda #&01 adc #&02" em6502 ram 011-Feb-08 18:26
2302GiuseppeCNothing ! I want to play Last Ninja 3, how could I do this ? :-)11-Feb-08 18:26
2301Oldesis there any ram file to test with?11-Feb-08 18:25
2300GeomolIt 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
2299GiuseppeCWell, I am at the command prompt, I did a do and the prompt is here again. What could I do ?11-Feb-08 18:23
2298GeomolIt'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
2297GeomolGuiseppe: I know! But shhh, don't tell the others!11-Feb-08 18:22
2296GeomolAnd 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
2295GiuseppeCGeomol: you are crazy !11-Feb-08 18:20
2294GeomolHere's a MOS 6502 emulator written in rebcode, I made over the last few days: 18:20
2293GeomolReady for some fun?11-Feb-08 18:19
2292BrianHMaybe it's confusting that something as basic as NONE? doesn't have a corresponding opcode.8-Jan-08 0:33
2291GeomolMaybe it's confusing, that rebcode has NONE at all!?7-Jan-08 15:49
2290GeomolI 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
2289OldesI 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]] r7-Jan-08 10:20
2288Oldestype? 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 none7-Jan-08 10:19
2287OldesIn 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
2286GeomolAbove example done under Windows with: REBOL/View 18-Nov-2005 Core 2.7.06-Jan-08 12:37
2285Geomol>> ex: rebcode [/local a][set.i a none eq.i a none ift [print "a is none"]] >> ex a is none6-Jan-08 12:36
2284GeomolThat 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
2283Geomoltype? result value-to-check6-Jan-08 12:30
2282OldesHow to test 'none value in rebcode? SETT sets false also for zero so I cannot use it:/5-Jan-08 15:52
2281btiffinOk, played. 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
2280btiffinSorry ... Micha;1-Nov-07 14:41
2279btiffinMich; 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
2278Henrikmicha, what exactly does it do? I don' t have access to that version right here.1-Nov-07 12:52
2277Michai use rebol26500421-Nov-07 9:11
2276Michaf: rebcode [][apply j make [ image! 0x0] insert j 1 256 return j ]1-Nov-07 9:09
2275Michawhy this code not work on linux ?1-Nov-07 9:09
2274Michao1-Nov-07 8:50
2273GeomolYeah, 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 least I have someting that does assembly ;-)15-May-07 19:54
2271BrianHThe Great Renaming happened with 1.3.60 - look for versions later than that.15-May-07 16:24
2270BrianHDitto with the Linux version, Rebolinth.15-May-07 16:15
2269BrianHGeomol, 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
2265GeomolPekr, yes and yes, I plan to complete RPaint, when I can.15-May-07 14:26
2264PekrGeomol - 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
2263GeomolIt's the first version of rebcode, you'll find in those. A later version was released for Windows, yes.15-May-07 14:25
2262Geomol"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
2261PekrCarl would have to visit us here from time to time, to get us a better answer :-)15-May-07 10:58
2260GabrieleCarl might be able to give you a much better answer...15-May-07 10:57
2259Gabrieleeven 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
2258Pekr.... remembering when rebcode was introduced, Carl seemed to implement improvements in light speed :-)15-May-07 10:52
2257Pekrthere is so many proposed improvements? I thought that Brian requested few opcodes?15-May-07 10:51
2256Gabrielecore with rebcode is a different thing from core with all the rebcode improvements that have been proposed.15-May-07 10:50
2255Oldesyes, I know... i'm very patient...15-May-07 10:45
2254PekrOldes - 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
2253Pekrexactly - Core is the infrastructure - let us play with kernel first ...15-May-07 10:42
2252OldesI'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 else15-May-07 10:42
2251Gabrieleyep, please move :)15-May-07 10:29
2250Pekrchatting in wrong group once again .... :-)15-May-07 10:28
2249Pekrhmm, maybe we could use kind of devices for that, no? Events could be queued etc. :-)15-May-07 10:28
2248Gabrielethat 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
2247Gabrielehe likes it a lot (liquidgl), but it's too big, so max will need to "distill" it a bit :)15-May-07 10:26
2246Pekrah, that makes more sense ...15-May-07 10:26
2245Gabrielenot rebservices directly, but just "messages" for events, so you can also send them thru rebservices.15-May-07 10:26
2244Pekrwhat was Carl's reaction to glayout and liquid?15-May-07 10:26
2243Gabrielei 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
2242PekrI 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
2241HenrikI wouldn't mind VID for 3.0. All my programs are VID anyway15-May-07 10:24
2240HenrikGabriele, are you planning to follow up on the design document you posted when we talked R3 GUI design?15-May-07 10:24
2239Pekrah, ok, there is a Reichart to blame. Reichart - where are you?! :-)15-May-07 10:24
2238Gabrieleprobably 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
2237Pekrah, with View 3.015-May-07 10:23
2236Pekrok - 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
2235Gabrielebut 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
2234PekrWith 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
2233Gabrieleso 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
2232Pekrbtw - 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
2231Gabrielecarl answer was, we need this RSN... no time for this. (others agreed, sort of)15-May-07 10:20
2230Gabrielemy 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
2229Pekr?15-May-07 10:19
2228Pekrah, and what is the result ...15-May-07 10:19
2227Pekrbut 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
2226Gabrielewe had this discussion during devcon (me, carl, nenad, cyphre, rebolek, max, etc.)15-May-07 10:18
2225PekrI 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
2224PekrGabriele - NOOOOOOO - no VID improvements ....15-May-07 10:17
2223Gabriele:)15-May-07 10:15
2222Gabrielethe 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
2221Oldes3.1? sniff :'-(15-May-07 10:10
2220Gabrieleno 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
2219PekrBrian - that sounds cool. Please bug Carl and Gabriele about Rebcode improvements ;-)15-May-07 6:14
2218JerryI'm looking forward to the "BRIAN" NEW rebcode. : )15-May-07 0:47
2217BrianHI 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
2216BrianHI'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
2215BrianHPetr, 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
2214HenrikBrianH, I remember talking about optimized functions for graphics output. I hope they get in.14-May-07 20:41
2213PekrBrianH: why you think R3 kernel will make rebcode even better?14-May-07 19:53
2212?cya..14-May-07 19:20
2211BrianHMe too! Must work, later...14-May-07 19:20
2210?Im realy currious to see what comes out ;-)14-May-07 19:19
2209BrianHR3 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
2205BrianHI'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
2203BrianHIt 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
2199BrianHIt'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
2197BrianHIt 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
2195BrianHIt'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 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
2192BrianHIts development never got to the stage of being stable or safe to use though. Wait for R3 :(14-May-07 19:08
2191BrianHI 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
2188BrianHDevelopment on rebcode was temporarily discontinued, but will return with R3. The old versions are still out there, Windows only.14-May-07 19:06
2187Rebolekthat's really strange28-Feb-07 7:27
2186AntonNot even floats. ridiculous. That's if my memory serves me correctly, of course.28-Feb-07 7:27
2185Rebolekoh28-Feb-07 7:25
2184AntonI think it was the use of integers between 0-100 to represent volume, or something like that.28-Feb-07 7:25
2183Rebolekwhy?28-Feb-07 7:25
2182Antonum.. I had a bad vibe about portAudio, I think.28-Feb-07 7:24
2181Rebolekwhat about portAudio?28-Feb-07 7:18
2180AntonOpenAL looks good. Will have to try that later.28-Feb-07 5:43
2179BrianHSorry, the source _site_ has a lot of good source _code_ :)28-Feb-07 5:21
2178BrianHThe source for Media Player Classic has a lot of good source, as does ffdshow.28-Feb-07 5:21
2177BrianHI forget, has OpenAL been ported to Windows yet? Perhaps that will work, Anton.28-Feb-07 5:19
2176Steeveso , i will add a mute button28-Feb-07 3:56
2175Steevei 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
2174AntonThe 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
2173AntonI had success with external library interface and FMOD audio library, but it's not cross-platform (or open source).28-Feb-07 3:50
2172Steeveyep, i fear that28-Feb-07 3:48
2171Antonhmm... maybe you can maintain the fidelity of your samples by inserting copies of your original samples.28-Feb-07 3:48
2170AntonI don't think the current sound-port implementation is worth bothering with.28-Feb-07 3:47
2169Antonwarning: sound port is really buggy and destroys your samples over time.28-Feb-07 3:46
2168Steevei must add a trick to negociate the good frame rate28-Feb-07 3:28
2167Steeve*recognize28-Feb-07 3:26
2166Steeveargh !!!28-Feb-07 3:26
2165Steevesome problems to recogniez the original music28-Feb-07 3:26
2164Steeveyeah and now u can try i with sound (same adress)28-Feb-07 3:25
2163AntonGetting better. :)28-Feb-07 3:01
2162Steeve*as in my dreams ?27-Feb-07 23:08
2161Steevespeed improvement of 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 nearest27-Feb-07 23:07
2160DockimbelHuman: Well, I need to go to work.27-Feb-07 13:47
2159Oldesprobably not the best translation27-Feb-07 12:53
2158OldesBabel: bon faut que j'aille au boulot moi = good is necessary that I go to the job me :]27-Feb-07 12:52
2157Pekrco to? :-)27-Feb-07 12:43
2156Steevebon faut que j'aille au boulot moi27-Feb-07 12:40
2155Steeveah merci27-Feb-07 12:40
2154CoccinelleBravo Steeve.27-Feb-07 12:39
2153HenrikI ran it through remote desktop on Windows via OSX. speed was a little slow, but ok27-Feb-07 10:33
2152OldesPekr, 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
2151Pekrhmm, 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
2150Steevei 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
2149Henriksteeve, you could probably make your file even smaller by enbasing the game rom in source.27-Feb-07 8:54
2148Henrikyes, definitely27-Feb-07 8:52
2147Pekrbut it shows nice potential, doesn't it? Especially if something like ZX Specturum could be emulated :-)27-Feb-07 8:51
2146Henrikthere 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
2145Pekrah ... hmm, we will see what new View comes up with ...27-Feb-07 8:49
2144Henrikit probably can, if rebcode is allowed to write straight to a display buffer rather than through View.27-Feb-07 8:49
2143Pekralthough I wonder if rebol can be fast enough - still sluggish ....27-Feb-07 8:48
2142Pekryes, well, that is so cool :-)27-Feb-07 8:48
2141Henriksorry, 1361031 it is27-Feb-07 8:47
2140Pekrok, thanks ...27-Feb-07 8:45
2139Henrikworks in rebview13611031.exe here27-Feb-07 8:45
2138PekrI am getting some error - which is the latest rebcode release?27-Feb-07 8:38
2137Henrikwow, that's great, Steeve!27-Feb-07 8:12
2136AntonImpressive, Steeve.27-Feb-07 6:49
2135Grahamhey, what about a 6502 emulator ??27-Feb-07 5:07
2134Steevethe next step is to include the PSG emulation, yeah ! we will have music too.27-Feb-07 2:53
2133Steevethis 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
2132Steeve(game rom include)27-Feb-07 2:49
2131Steeveonly 86kb for the source + game rom27-Feb-07 2:49
2130Steeveuse rebcode but not for the video emulation, so we can get it faster, soon...27-Feb-07 2:48
2129Steevenew version of galaga.r 2:47
2128Steeve2 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
2127Steevedone24-Feb-07 16:12
2126PekrWhy not to write down your logical conclusions and throw them at RAMBO?24-Feb-07 8:58
2125SunandaSteeve <BTW, why rebcode thread is not on ?> 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 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
2124BrianHGood night.24-Feb-07 5:57
2123BrianHLimited use though.24-Feb-07 5:57
2122Steevegood night Brian24-Feb-07 5:57
2121BrianHI would love a REBOL native swap instruction that worked like block set, but we all have dreams :)24-Feb-07 5:57
2120BrianHI was thinking vectors and opcodes to handle the struct! type, but a swap instruction would be nice too.24-Feb-07 5:55
2119Steeveso, to conclude this session, Rebcode needs union handling and swap instruction.24-Feb-07 5:54
2118BrianHI thought of that, except in my head it was a second set of BRAB blocks :)24-Feb-07 5:51
2117SteeveMwahahaha24-Feb-07 5:47
2116Steeveyeah or i could build another instance of the interpreter and swap them24-Feb-07 5:47
2115BrianHYou could be accessing all of those values indirectly to make the swap easier, but slowing down everything else :)24-Feb-07 5:44
2114Steevei don't see how :-)24-Feb-07 5:42
2113BrianHIt could be worse.24-Feb-07 5:42
2112Steeveexchange of b, c, d ,e , h , l, with b' , c', d', e', h', l'24-Feb-07 5:38
2111Steevelabel 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
2110Steevebadly24-Feb-07 5:36
2109BrianHHow does your code handle exchanges?24-Feb-07 5:36
2108SteeveZ80 is good with rotation24-Feb-07 5:35
2107Steevethere are 12 different rotations24-Feb-07 5:35
2106Steeveor not24-Feb-07 5:33
2105Steevethe carry flag can be injected to the left or to the right24-Feb-07 5:33
2104Steevesome of them, it's an option24-Feb-07 5:31
2103BrianHDo the rotation instructions affect the carry flag?24-Feb-07 5:31
2102BrianHWell, 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
2101Steevebut the first reason is that 8bit register operations are faster24-Feb-07 5:27
2100Steeveand bit manipulations24-Feb-07 5:25
2099Steevelike rotation operations24-Feb-07 5:24
2098Steeveand many operations occur only on 8 bit registers24-Feb-07 5:24
2097Steevebecause it's more compact and faster24-Feb-07 5:23
2096Steeve8 bit24-Feb-07 5:23
2095BrianHIs 8-bit or 16-bit code more common?24-Feb-07 5:23
2094Steevebut most of instructions act on A24-Feb-07 5:22
2093SteeveHL24-Feb-07 5:21
2092BrianHWhat do 16-bit arithmetic instructions use for an accumulator?24-Feb-07 5:20
2091Steeve_a in my source24-Feb-07 5:20
2090Steeveit is A24-Feb-07 5:20
2089Steeve824-Feb-07 5:19
2088BrianHIs the accumulator internally 8 or 16-bit?24-Feb-07 5:19
2087BrianHInternally, they would really be 32-bit registers, of course.24-Feb-07 5:17
2086BrianHI'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
2085Steeveext 128 = -12824-Feb-07 5:15
2084Steeveno it works24-Feb-07 5:14
2083Steevefooooollll24-Feb-07 5:14
2082Steeveext8 (128 + 65536) = -128 instead of 12824-Feb-07 5:12
2081BrianHI'm going off docs and memory here.24-Feb-07 5:12
2080BrianHWhat happens? I don't have rebcode here to test.24-Feb-07 5:12
2079Steevewrong24-Feb-07 5:11
2078BrianHWhat 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
2077Steeveso, the correct answer is: 124-Feb-07 5:04
2076Steevethat's mostly the case24-Feb-07 5:04
2075Steevebut 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
2074Steeveone for the operation opcode and 2 for the address on 16 bits24-Feb-07 5:00
2073Steeve3 is the minimum24-Feb-07 4:59
2072Steeveyep, you're right24-Feb-07 4:59
2071BrianH*it depends on the addressing mode24-Feb-07 4:59
2070Steeve324-Feb-07 4:59
2069BrianHHow many bytes in a load from memory? I suppose on the addressing mode...24-Feb-07 4:58
2068Steeve*so during 1 operation24-Feb-07 4:58

Return to Index Page