00:00:00 Of course any interesting program I've tried hasn't really worked well on dosemu. 00:00:00 fizzie, um. Yet it is available on x86_64? How is that possible 00:00:09 iirc long mode prevents vm86() 00:00:51 -!- cherez has joined. 00:01:05 -!- cherez has left (?). 00:01:12 at least virtual 8086 mode is not available even from 32-bit compat mode under long mode according to AMD docs iirc 00:01:36 I didn't do it, I don't know how it works. But the vm86 trick is what it used to do, anyway. 00:01:43 mhm 00:02:17 anyway thanks to recent coverage analysis I have found two real bugs in cfunge. + a lot of stuff mycology doesn't test. Now to debug those bugs... 00:02:19 While dosbox actually emulates a CPU too. 00:02:55 This performance is ridiculous. 00:03:14 heh 00:03:23 Like really ridiculous. 00:03:31 I can see the line go from the left to the right of the screen. 00:03:35 ehird, rewrite it in ASM 00:03:36 (And it's drawing top-down!) 00:03:38 AnMaster: NO NO NO 00:03:44 why not? 00:03:48 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 00:03:50 BAD AnMaster!! 00:03:53 why? 00:04:00 BEACUSE I HAVE _SOME_ SANITY 00:04:07 On x86, dosbox also has some "dynamic instruction translation" option, which is faster but less accurate. 00:04:16 Oh shit, this is going to go further than the video memory 00:04:18 ehird, ok then. POKE machine code somewhere, then jump to that 00:04:18 WILL IT CRASH?! WHO KNOWS 00:04:19 :P 00:04:23 AnMaster: That's actually in the docs. 00:04:28 what?! 00:04:31 Yeah. 00:04:35 -_- 00:04:45 fizzie: where is it again? 00:04:45 AnMaster: Didn't you see my copy-paste. The help file has some inline machine code examples. 00:04:50 ah 00:04:56 fizzie, must have missed that 00:04:59 http://zem.fi/~fis/qbu.html#QEw4MDhh 00:05:03 The CALL ABSOLUTE statement. 00:05:43 what is the calling convention 00:05:46 so you can return and such 00:05:55 Holy shit. 00:05:59 H o l y s h i t 00:06:01 I crashed dosbox 00:06:02 Not even cleanly 00:06:04 ehird, err 00:06:04 It just exited 00:06:06 You do a RETF when you want to return. 00:06:06 huh 00:06:10 Wanna know how? 00:06:12 CALL ABSOLUTE(0) 00:06:16 hah 00:06:16 *BOOM* 00:06:28 ehird, segfault? 00:06:32 Dunno 00:06:35 And you can't return any values or anything. 00:06:52 Example: 00:06:52 PRINT "Game over." 00:06:54 END 00:06:55 Of course you can manipulate the memory allocated for some BASIC variable if you want to return something. 00:06:55 ehird, I mean it is possible the memory at 0 could have contained something to stop the machine 00:06:56 that's so depressing. 00:06:58 HLT or whatever 00:07:05 Er, the memory at 0 contains nothing, AFAIK. 00:07:10 Well. 00:07:13 PRINT PEEK(0) prints 112. 00:07:16 Is 112 HLT? :P 00:07:19 -!- FireyFly has quit ("Later"). 00:07:20 no idea 00:07:29 and HLT is the wrong one anyway 00:07:33 Typically the memory at 0 in a dos system contains the interrupt vector table. 00:07:36 HLT halts until interrupt iirc 00:07:44 HCF 00:07:57 To build programs that Use a Basic development environment that 00:07:57 require over 160K of memory supports creating large programs. 00:08:01 LAAAAAAAAAAAAAARGE PROGRAMS 00:08:08 To distribute your programs Use Microsoft Visual Basic for MS-DOS or 00:08:13 t'was contaminated even then 00:08:58 HLT Halt 00:08:58 Causes the microprocessor to halt instruction execution and enter the HALT state. Entering the HALT 00:08:58 state puts the processor in low-power mode. Execution resumes when an unmasked hardware interrupt 00:08:58 (INTR), non-maskable interrupt (NMI), system management interrupt (SMI), RESET, or INIT occurs. 00:09:13 that is AMD64 docs. But iirc it was introduced quite early on 00:09:15 not sure when 00:09:24 AnMaster: "The current version of the CPU emulator, as of dosemu-1.1.x, has been rewritten from scratch, and is now called simx86. -- Added a native 64-bit port for x86-64, which, by default, uses CPU emulation for V86 mode, and runs DPMI code natively." 00:09:27 maybe 386, maybe a bit later 00:09:32 So that's what dosemu does on x86-64. 00:09:40 fizzie, I see 00:09:50 fizzie, DPMI? 00:09:51 It has a dosbox-like full CPU emulation, but it only uses that when it has to. 00:10:00 It's the DOS way of running in protected mode. 00:10:07 ah 00:10:10 "DOS Protected Mode Interface". 00:10:13 /G Sets QBasic to update a CGA screen as fast as possible 00:10:14 (works only with machines using CGA monitors). If you 00:10:16 see snow (dots flickering on the screen) when QBasic 00:10:18 updates your screen, your hardware cannot fully support 00:10:20 this option. If you prefer a clean screen, restart 00:10:22 QBasic without the /G option. 00:10:24 IF YOU PREFER A CLEAN SCREEN 00:10:35 ehird, yes and? 00:10:45 xD 00:10:49 ehird, idea: Haskell -> QBasic translator 00:10:52 XD 00:10:54 no 00:10:58 YES! 00:11:20 call it QHaskell. Or HBasic? 00:11:27 http://zem.fi/~fis/qb.html#QEw4MDgz 00:11:31 AIAEEEEEEEEEEEEEEE 00:11:45 ■ Remarks are ignored when the program runs unless they contain 00:11:45 metacommands. 00:11:46 Ha ha ha what 00:11:56 http://zem.fi/~fis/qb.html#QEw4MDdi 00:11:57 >_< 00:11:59 They go in COMMENTS> 00:12:01 ehird: '$DYNAMIC 00:12:04 commands that work from comments 00:12:07 horrible 00:12:13 basically it's for compatibility with other versions of BASIC 00:12:15 which didn't read them 00:12:26 however, given that $STATIC and $DYNAMIC change the semantics of the language... 00:12:29 ehird, err INTERCAL has comments like that 00:12:32 kind of 00:12:38 It's a bit like #pragma. 00:13:05 Except maybe even a tiny bit uglier. 00:13:10 AnMaster: not really 00:13:23 it's more INTERCAL doesn't have comments, people abuse syntax errors as comments 00:13:30 ais523, well yeah 00:13:42 BASIC as a scripting language for a C program: 00:13:47 In C, 00:14:02 funcptr basic_funcs[512]; 00:14:10 in basic_funcs, put pointers to machine code. 00:14:20 ehird, err... what? 00:14:23 wait for it 00:14:26 then, to execute a basic program, 00:14:37 put an INPUT line, that reads into cFuncsBase 00:14:43 and then procedure definitions 00:14:47 that use CALL ABSOLUTE to call into them 00:14:49 ehird, where is this from? 00:14:51 then cat the program to it 00:14:52 then, run it 00:14:55 AnMaster: nowhere, I just invented it 00:15:00 ok 00:15:06 ais523: discuss the awfulosity 00:15:10 ehird, also DOS doesn't have cat 00:15:18 that's not the point. 00:15:21 ok 00:16:01 ehird, so is this extending C with BASIC or BASIC with C? 00:16:09 Former 00:16:16 An old-school game scripting language scheme :P 00:16:18 ehird, so the C program starts first? 00:16:24 sort of 00:16:26 you do 00:16:29 system("qbasic ...") 00:16:29 in C 00:16:34 well 00:16:35 except more complex 00:16:40 and it can call back to C? 00:16:41 since you write the address of basic_funcs to its stdin 00:16:45 oh wait, no fork() 00:16:47 and yes, via the funcs you specially set up and pointers 00:16:56 AnMaster: fork() is impossible altogether in DOS 00:16:58 how can that even work. How can you know basic won't overwrite your memory= 00:16:58 ? 00:17:02 you don't 00:17:04 you never do in DOS 00:17:22 "Code your own computer opponent with the Microsoft QBasic language you know and love. Just use our library of standard game procedures in your program—they're there automatically!" 00:17:32 well. I mean system() can't really work if you have been overwritten when it returns 00:17:52 ehird, heh 00:18:00 if the user overwrites the game from his AI, that's his own shit-stupid fault and he gets what he deserves 00:18:54 then something happened... Between 1990 and 2000... 00:18:58 :D 00:19:07 ? 00:20:15 ehird, memory protection started going mainstream more and more. Windows NT. Later during 200x: windows xp. 00:20:20 ah 00:20:30 windows nt didn't really hit home users 00:20:35 well, this passes around a pointer from another app that you jump to 00:20:35 but work places mostly 00:20:39 so it wouldn't work anyway with memory protection 00:20:48 ais523: is there -no way- to multitask in dos? 00:20:51 ehird, I doubt that would work even under Windows 9x 00:20:55 there has to be, surely, see: all the advanced dos programs 00:21:06 ehird: you can do cooperative multitasking sort of 00:21:12 but you normally need cooperation from both programs 00:21:16 ehird, TSR? 00:21:22 ais523: yeah, we don't control qbasic so that's not an option 00:21:26 you effectively have to write your own OS kernel above DOS in order to do competitive 00:21:37 also, as AnMaster says, there were TSRs 00:21:46 ah, that could work 00:21:46 which basically worked by hooking the interrupt table in evil ways 00:21:51 have the qbasic program tsr 00:21:54 while the game keeps running 00:22:01 and then, in the game loop, have a resumeQBasic() 00:22:02 I'm not sure if you can get QBasic to TSR 00:22:02 at the end 00:22:05 ehird, I doubt you could do that in qbasic 00:22:08 ais523: it can execute arbitrary machine code 00:22:09 well POKE machine code... 00:22:28 so you'd just have a snippet to tsr, then control it from C 00:22:39 = Scripting a C DOS game with QBasic! And as a side effect having it crawl to a stop. 00:22:44 WHAT NOT TO LIKE 00:23:19 s/LIKE/DO/ 00:25:12 hmm 00:25:16 ais523: have you got any qbasic programs lying around? 00:25:19 i'd love to try them :) 00:25:32 ahahaha 00:25:32 ehird: they were mostly on a really old laptop that doesn't work nowadays 00:25:37 what a silly typo 00:25:41 let me run a quick slocate to see if any survived 00:25:43 AnMaster: wut 00:25:56 buf[n] = '\0'; vs. buf[STRINGALLOCCHUNK] = '\0'; 00:26:21 nope, apparently none of them did, pity 00:26:33 I see 00:27:11 I'd love a sort of "QBasic 2009" dealie 00:27:18 nowadays it's all about Visual Basic 00:27:30 ais523, VB.NET 00:27:31 even 00:27:37 -!- zzo38 has joined. 00:27:37 yes, but I don't mean actually basic 00:27:44 just a really simple language you can do SDL-y stuff in 00:27:45 would be nice 00:27:46 oh, hi zzo38 00:27:58 ehird, hm... asm? 00:28:02 we. 00:28:02 zzo38: http://www.newscientist.com/blogs/shortsharpscience/2009/03/how-moores-law-saved-the-web.html 00:28:04 AnMaster: *er 00:28:17 ehird, if with simple you mean low level 00:28:25 anyway, you can get QBasic from http://support.microsoft.com/kb/135315 00:28:27 AnMaster: ... no. 00:28:28 download olddos.exe 00:28:32 and run it in dosbox 00:28:33 ais523: I have qbasic... 00:28:35 ehird, haskell with hsdl? 00:28:40 ehird: other people here might not 00:28:42 AnMaster: that's not "really simple" 00:28:47 ehird, well ok 00:29:04 ehird, hm... Java? 00:29:10 .... 00:29:12 just stop talking 00:29:19 ehird, then any suggestions? 00:29:20 The #anagol channel doesn't help. How to put FlogScript on anarchy golf site? Can someone send a message, but I don't use e-mail and am unsure. Still, I do it anyways on the wiki entry for FlogScript but if it is directly on there, it can be together listed with the others! 00:29:27 zzo38: You cannot. 00:29:31 You must ask shinh to add a language 00:29:49 He is on IRC quite often 00:30:05 shinh was on but I received no reply 00:30:21 ais523, I like gopher, so that link above.. 00:30:25 -!- KingOfKarlsruhe has quit (Remote closed the connection). 00:30:40 And the tunes.org log seems to be not working right now 00:30:49 It works here 00:31:32 The log works now 00:31:38 -!- ais523 has quit. 00:32:40 Maybe my DNS is mixed up and doesn't always work. I am unsure 00:33:29 So, I invented a language earlier today. 00:33:48 "What BASIC would be if everything was event-based instead of imperative, and there were only assignments and a few other things and stuff." 00:33:54 Catchy name, I'm sure you'll agree. 00:34:07 What link for description of language you invented earlier today 00:34:36 No link right now 00:34:37 Here's an example 00:34:58 0 SUM 00:34:58 0 NUMBERS 00:34:59 ON INPUT% N 00:35:01 SUM + N SUM 00:35:03 NUMBERS + 1 NUMBERS 00:35:05 OVER 00:35:07 ON INPUT$ ='' 00:35:09 NUMBERS READ 00:35:11 ' NUMBERS, SUM ' READ 00:35:13 SUM READ 00:35:15 OVER 00:35:17 READ actually prints, it means "read out" 00:35:21 It should be obvious what it does but how it works is a bit odd 00:35:23 ehird, that looks like AppleBASIC... 00:35:33 Here it is with blank lines 00:35:34 0 SUM 00:35:34 0 NUMBERS 00:35:36 00:35:38 ON INPUT% N 00:35:40 SUM + N SUM 00:35:42 NUMBERS + 1 NUMBERS 00:35:44 -!- oerjan has joined. 00:35:44 OVER 00:35:46 00:35:48 ON INPUT$ ='' 00:35:49 UNDER 00:35:50 NUMBERS READ 00:35:52 ' NUMBERS, SUM ' READ 00:35:54 SUM READ 00:35:56 OVER 00:35:58 easier to read that way 00:36:02 oerjan, "What BASIC would be if everything was event-based instead of imperative, and there were only assignments and a few other things and stuff." 00:36:05 is the context 00:36:17 The interesting thing is, 00:36:22 in "INPUT% N" 00:36:22 oerjan, hi btw 00:36:25 AnMaster: would i have said "OVER" if i cared about the context? 00:36:25 That's actually an assignment 00:36:34 oerjan, no idea. 00:36:36 and INPUT$ ='' is an assignment too, although not how you might think 00:36:37 i mean "UNDER" 00:36:39 = is a variable modifier. 00:36:49 Basically, everything is an assignment 00:37:09 if you assign to a variable starting =, it is compared to the rest and is true if the thing it'd assign is equaal to that. 00:37:16 everything is water 00:37:16 ehird, did you see my comment about AppleBASIC above? 00:37:21 it's "VALUE VARIABLE" 00:37:24 thus the 0 SUM 00:37:26 so INPUT% N 00:37:27 is 00:37:30 N = INPUT% 00:37:33 and INPUT$ = '' 00:37:34 is 00:37:43 X = INPUT$; IF X = '' THEN TRUE ELSE FALSE 00:37:50 except X isn't actually assigned 00:37:59 and, of course, assigning to READ prints out the value 00:38:10 $ means string and % number, there's actually two different INPUT commands 00:38:39 ON foo\n...\nOVER means "Whenever performing foo happens (is true), do the stuff, then finish,." 00:38:46 * AnMaster tries to come up with rules that would make befunge harder to use 00:38:49 Basically, it listens for user input and the like all the time, but by default does nothing. 00:38:54 panta rhei 00:38:54 what about swapping arguments for - 00:39:01 Anyway, I think it's easy to understand from that, does that make sense zzo38? 00:39:12 so you need 4\- to do the same as 4- now 00:39:14 You can also define your own assignments and stuff 00:39:14 Yes it make sense. OK 00:39:23 So if you want to condition on multiple stuff you can 00:39:25 Like 00:39:33 -!- comex has changed nick to judicaster. 00:39:43 if we want to say FOO whenever we get a number below 10 00:40:36 BEGIN 00:40:36 INPUT% N 00:40:37 N < 10 00:40:39 IS INBEL10% N 00:40:42 00:40:43 ON INBEL10% N 00:40:45 'FOO' READ 00:40:47 END READ 00:40:49 OVER 00:40:51 END is a string with a newline. 00:40:57 So, BEGIN\n...\nIS blah means "blah is true if the stuff is true" 00:41:08 Pretty simple, like I said it's just event-based BASIC, sort of 00:41:27 I called it Simple Tables, because the CPU architechture I thought about that would run it well involved tables for events 00:42:01 oerjan is wrong 00:42:10 haven't used tabs in vim, then 00:42:23 The machine architechture basically had two instructions 00:42:28 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 00:42:38 an instruction that made it easy to condition on an event (which is: any outside input, or clock tick, or whatever) 00:42:43 i.e. one instruction, that would just idle then jump 00:42:51 And another one which you gave a pointer 00:42:56 And it'd read that pointer, and see another pointer 00:42:58 read that, execute it 00:43:00 -!- bsmntbombdood has quit (Read error: 145 (Connection timed out)). 00:43:00 and go on one 00:43:12 So an ON would just add to the pointer list of that event 00:43:20 and an ON of an event not seen before would add it to the event table jump 00:45:24 bye 00:47:28 -!- zzo38 has quit. 00:48:28 -!- bsmntbombdood has joined. 00:48:47 -!- Jophish has quit (Read error: 104 (Connection reset by peer)). 00:53:07 -!- Corun has joined. 00:53:13 $ ~/funge/interpreters/rcfunge/funge tests/sigfpe.b98 00:53:13 Floating point exception 00:53:16 should I report it 00:53:18 sigh 00:53:44 just all division by zero 00:53:51 which is well defined in befunge to be 0 00:53:58 this time in various fingerprints 00:55:28 * oerjan thought this was from sigfpe the blogger for a moment 00:55:45 from who? 00:55:58 also SIGFPE is floating point exception 00:56:03 http://blog.sigfpe.com/ 00:56:14 well i remembered that the next moment 01:06:12 * pikhq is doing a rather absurd DVD ripping spree... 01:06:19 43 fucking DVDs. 01:06:26 (Farscape, in its entirety) 01:06:26 pikhq the ripper 01:07:23 Fortunately, copying the DVD to disc can be done seperately from the encode. So, just spend a few hours feeding discs in, and let a batch encode run for, oh, say, a week. 01:13:19 http://paste2.org/p/164029 :) 01:14:00 -!- [helloworld] has joined. 01:15:07 <[helloworld]> hello, i'm trying to write simple ROT-program in brain-fuck but i have problems with rot-1 ;/ it doesn't work for all cases. I just increase ascii value, but it doesn't work, where i have got Z, it shoul return A 01:15:11 <[helloworld]> could you hlp me? 01:15:19 * oerjan swats MizardX -----### 01:15:23 I AM NOT EHIRD 01:15:39 You have shared nicks sometime in the last 4 months 01:16:01 <[helloworld]> yes 01:16:02 well yeah i remember him impostering me the other day 01:16:05 <[helloworld]> i asked about that 01:16:20 <[helloworld]> but still have no idea :/ 01:17:06 [helloworld]: well you need to test for Z i guess 01:17:19 also, what about non-alphabetic characters? 01:17:29 <[helloworld]> but how can i do simply if() in BF? 01:17:50 <[helloworld]> i start learn BF, i want to write in only for A-Z chars 01:18:26 <[helloworld]> i read only one char increase it and write 01:18:29 take a look at http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms 01:18:43 <[helloworld]> but i should first check is it a 'Z" 01:19:31 so you probably need the if-then-else algorithm there 01:19:48 http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms#if_.28x.29_.7B_code1_.7D_else_.7B_code2_.7D 01:20:34 see the beginning of the article for how to interpret the algorithms 01:20:37 <[helloworld]> or maybe modulo 01:20:50 <[helloworld]> what should be easier? 01:21:26 hm maybe 01:21:48 Does the Rickroll phone number still work? 01:22:23 well the modulo looks short enough 01:23:22 <[helloworld]> but how to use it? 01:24:35 <[helloworld]> or maybe if, it looks easier 01:26:14 <[helloworld]> what is: temp0[-] should i change it? it's forbidden chars 01:26:17 well for if you would need to subtract 'Z' from your character, then test, since all basic testing is for 0 01:26:32 [helloworld]: i said to read the beginning of the article for that 01:27:46 <[helloworld]> i did that and stil don't know ;/ 01:28:40 basically the variable names are abbreviations for >'s and <'s to get to that particular spot 01:29:31 <[helloworld]> still don't know, could you give me an example code with if instruction? 01:29:52 you need to first choose where on the tape each variable is 01:31:24 <[helloworld]> but how can i 'save' this vars on the 'tape' 01:31:47 <[helloworld]> i read one chars using "," 01:31:56 <[helloworld]> then where/how should i store it? 01:32:03 yes, so go to the right place before you do , 01:32:29 <[helloworld]> so this char shoulnd't be the first in my program? 01:32:55 Not unless you want it stored at cell 0. 01:33:02 Which could very well be quite reasonable. 01:33:14 well you want to loop, so it at least needs to be in a loop 01:33:39 but it could be worthwhile to duplicate it, for example cat is ,[.,] 01:34:00 That's generally a good idea, since you *probably* want to check for EOF. 01:34:10 (assuming EOF=0) 01:34:36 <[helloworld]> ok but if I only want read only one char from input? 01:34:51 Then you don't have read in a loop. 01:34:55 <[helloworld]> why should i use loop? 01:35:22 then you don't need to 01:35:33 <[helloworld]> ok, so I read that char and how can i check is it 'Z' or no 01:36:01 you need to subtract the code for 'Z' since all testing is for 0 01:36:21 you can use just a bunch of -'s for starters 01:36:28 <[helloworld]> don't understand, could you paraphrase? 01:36:54 the code for 'Z' is 64+26 = 90 01:37:03 so 90 minuses 01:37:29 there are shorter ways though, but they require some copying around 01:37:36 http://paste2.org/p/164039 <-- updated 01:37:45 There's another page on the wiki for those shorter ways. 01:38:04 yes, Brainfuck constants 01:38:49 <[helloworld]> ok, i have ,---[90 times]. Then i should check is that [90 minuses]==var i have read? 01:39:32 No, you do - 90 times on the var you've read, and then check whether that's 0. 01:40:05 <[helloworld]> how can i chec it? 01:40:10 <[helloworld]> k, but wait 01:40:25 <[helloworld]> if it's not 0 i should write that var++? 01:40:54 yeah you'll need to add 91 back then 01:41:12 <[helloworld]> but stil don't know how to code if 01:41:19 <[helloworld]> how can i check is it 0? 01:41:29 see the if then else algorithm 01:41:52 <[helloworld]> i do that and still don't understand that "pseudo"code 01:41:53 now you need to select cells for temp0 and temp1. x is your original var. 01:42:20 if you let temp0 and temp1 be the next cells you can use the second, simpler version 01:42:41 <[helloworld]> but how to select that cells in BF? 01:42:54 with the right number of >'s and <'s 01:43:10 you need to know what cell you are on before, and which you want to go to 01:43:38 <[helloworld]> could you paraphrase 01:43:48 since you have just subtracted 90 from x, you will still be at x 01:44:00 so to get to temp0 you do > 01:44:15 and to get to temp1 after that, another > 01:44:27 then you go back to x with << 01:45:08 <[helloworld]> ok, now understand selecting, but stil don't udnerstand why should i use that temps 01:46:38 basically the way to test for 0 is with a [loop]. but you need some trickiness to get out of that loop after just one test, and to know what the test result was 01:47:34 <[helloworld]> i've already known: read my var x and substract 90 from it. Then i have to check is my "new" var is 0 01:47:42 <[helloworld]> and now i don't know how to code it 01:48:32 temp0[-]+temp1[-]x[code1x>-]>[->]<< 01:48:41 that's the second version 01:49:00 assuming x is the first cell, temp0 the second and temp1 the third 01:49:41 code1 will start running at x, it will be run if x is nonzero 01:50:11 code2 will also start running at x, it will be run if x is zero 01:50:26 <[helloworld]> so I should change it that code temp0 via > and temp1 via >> ? 01:50:49 it depends where you start from 01:51:18 but assume code1 and code2 don't move (i don't think they need to). then we should know where you are all through that mess 01:51:39 let me change those to >'s and <'s for you 01:52:04 >[-]+>[-]<<[code1>-]>[->]<< 01:52:09 <[helloworld]> >[-]+>[-]<<[code1x>-]>[->]< ok 01:54:26 <[helloworld]> it's working :) 01:54:29 <[helloworld]> thanks a lot 01:54:34 :) 01:55:14 <[helloworld]> it's my second BF code :) (first was Hello-world ^^) 01:55:17 you're welcome 01:58:40 oh 01:58:43 happy pi day 02:00:06 <[helloworld]> thanx ;) 02:00:26 <[helloworld]> cya 02:00:32 -!- [helloworld] has quit ("MegaIRC v3.97 http://ironfist.at.tut.by"). 02:13:52 heh 02:13:59 huh? 02:14:05 if (fspace.bottomRightCorner.y < position->y) 02:14:05 fspace.bottomRightCorner.y = position->y; 02:14:05 if (fspace.topLeftCorner.y > position->y) 02:14:05 fspace.topLeftCorner.y = position->y; 02:14:10 that generates better code 02:14:11 than 02:14:16 if (fspace.bottomRightCorner.y < position->y) 02:14:16 fspace.bottomRightCorner.y = position->y; 02:14:16 else if (fspace.topLeftCorner.y > position->y) 02:14:16 fspace.topLeftCorner.y = position->y; 02:14:20 which is rather weird 02:14:29 oerjan, don't you agree? 02:14:56 huh, again 02:15:07 oerjan, you agree then or? 02:15:12 yes 02:15:14 anyway. reason: x86 has "conditional move", avoiding overhead of branching. 02:15:20 with else if you can't use it 02:15:29 since you need to jump past then 02:15:45 oerjan, so the former is in fact faster 02:15:51 due to less branching 02:15:59 ah so pipelining makes the first do more at one time, essentially? 02:16:04 in fact the former has no branches 02:16:05 at all 02:16:59 oerjan, well possibly that too 02:17:02 but don't think so 02:17:12 but mainly this is due to branch prediction 02:18:13 oh well 02:18:45 oerjan, http://paste.lisp.org/display/77000 02:19:09 fspace there is really fspace.topLeftCorner.x 02:19:13 but they have same address 02:19:24 first member of struct 02:19:39 * oerjan gives up understanding that 02:19:49 (tldr essentially) 02:19:56 oerjan, well it is a bit confusing since all this is in RIP addressing 02:20:08 that is relative the program counter 02:20:23 oerjan, the comments show the expanded values 02:20:43 oerjan, what is "tldr"? 02:20:44 i think you are misunderstanding me. i am saying i cannot be bothered to try and understand that. 02:20:52 "too long, didn't read" 02:23:09 oerjan, since "position" is passed in registers on amd64 this is even more confusing 02:23:13 it isn't even on stack 02:24:17 -!- neldoreth has quit (Read error: 113 (No route to host)). 02:36:53 -!- olsner has joined. 03:26:14 -!- sebbu2 has joined. 03:43:52 -!- sebbu has quit (Success). 03:46:33 -!- GreaseMonkey has joined. 04:03:46 -!- oerjan has quit ("Good night"). 04:04:47 -!- Corun has quit ("Leaving"). 04:37:13 Hmm 04:37:39 I'm trying to design a set of cpu/sound/video hardware for something like a demo 04:37:58 probably to just run it in an emulator 04:38:19 and I'm out of inspiration 04:38:33 especially for the cpu part 04:48:12 also should be 16 bits-ish and possible to implement on FPGAs 04:50:02 BITCHES 04:51:12 16 bitches? 05:06:41 yes 07:37:25 -!- Sgeo has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:48:32 -!- mad has quit ("Radiateur"). 09:04:56 -!- MigoMipo has joined. 09:53:57 -!- GreaseMonkey has quit ("Client Excited"). 10:06:01 -!- Slereah has joined. 10:17:08 -!- neldoreth has joined. 10:18:06 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 10:24:14 -!- tombom has joined. 10:25:46 -!- KingOfKarlsruhe has joined. 10:35:56 Oh, and yet another conversion variant: http://zem.fi/~fis/qbc.html has a lot more authentic colors. 11:15:08 -!- Mony has joined. 11:29:13 -!- MigoMipo_ has joined. 11:30:48 -!- MigoMipo has quit (Nick collision from services.). 11:30:54 -!- MigoMipo_ has changed nick to MigoMipo. 11:40:32 * AnMaster is irritated... Spent three hours trying to track down a "rootkit" detected by chkrootkit, only to find and confirm it was a false positive. 11:40:54 (of course I did it from bootcd too, so even more wasted time) 11:43:02 -!- sebbu2 has changed nick to sebbu. 13:15:07 -!- neldoreth has quit ("Lost terminal"). 13:15:23 -!- neldoreth has joined. 13:15:49 -!- Jophish has joined. 13:21:13 -!- KingOfKarlsruhe has quit (Remote closed the connection). 14:12:17 -!- Corun has joined. 14:46:13 -!- BeholdMyGlory has joined. 15:16:05 -!- FireyFly has joined. 15:26:14 -!- neldoreth has quit (Read error: 110 (Connection timed out)). 15:32:57 -!- neldoreth has joined. 15:52:20 -!- Corun has quit ("This computer has gone to sleep"). 15:53:04 -!- Corun has joined. 15:55:33 -!- KingOfKarlsruhe has joined. 16:15:00 -!- Corun has quit ("Leaving"). 16:40:34 -!- tombom has quit ("Peace and Protection 4.22.2"). 16:42:39 fizzie: the background is blue, silly. 16:42:51 also, a qbcnou would be nice 16:42:52 03:50 psygnisfive: BITCHES 16:42:56 "but i don't say bitches!" 16:43:01 MizardX: lol i am not ais523 :D 16:44:22 There is an updated version: http://paste2.org/p/164039 16:44:58 -!- Judofyr has joined. 16:45:01 I removed the spourious nick changes that made the script think you where the same person 16:46:26 -!- Corun has joined. 16:50:25 MizardX: that's a rather limited selection of logs 16:51:04 Yes. Only since november. 16:54:33 I'll write a script to download all of clog 16:57:30 ehird, English question: 16:57:51 "Move the IP forward one step" or "Move the IP forwards one step"? 16:57:55 and also: 16:58:03 "Move the IP backward one step" or "Move the IP backwards one step"? 16:58:14 AnMaster: 1) either works, the latter is more pronouncable 2) either works, the latter sounds a lot better 16:58:20 mhm 16:58:23 so I'd go for the latter both times 16:58:40 ehird, yeah I thought "backwards" sounded better, but I wasn't sure about forward(s) 16:58:41 thanks 16:59:08 np 16:59:25 ehird, btw did you see that code I posted yesterday, where if was faster than else if? 16:59:26 :D 16:59:57 yes 17:00:23 anyone know curl here? 17:00:25 weird isn't it? I mean, logically, just testing one branch should be faster. 17:00:37 ehird, as in libcurl API or curl the command line tool? 17:00:40 latter 17:00:49 ah well then I'm not the right person to ask 17:00:55 well I used curl a bit 17:01:01 so I might be able to help 17:01:06 what is the issue? 17:01:12 I just want it to output a one-line progress bar, instead of this monstrosity: 17:01:13 % Total % Received % Xferd Average Speed Time Time Time Current 17:01:14 Dload Upload Total Spent Left Speed 17:01:16 100 277k 100 277k 0 0 71867 0 0:00:03 0:00:03 --:--:-- 81084 17:01:35 hmm, well actually they're so small I don't need a progress bar 17:01:38 oh well, thanks anyway :P 17:01:39 ehird, have you see what wget outputs? 17:01:54 -#/--progress-bar Display transfer progress as a progress bar 17:01:57 ehird, tried that ? 17:02:00 ah, thanks :) 17:02:21 ehird, from curl --help | grep progress 17:02:25 -_- 17:02:31 well sorry ;_; 17:02:45 ehird, no problem 17:03:27 just wanted to help you in the future. You know you always tell me to use google so to keep the balance I have to tell you to use --help/man/info/grep/whatever 17:03:29 ~ 17:10:31 -!- Corun has quit ("This computer has gone to sleep"). 17:23:08 I wrote a script to download all clog logs (or, if you already have them, update them to the current day) 17:23:12 It also renames them to YYYY-MM-DD 17:23:21 It'd be nice if I could fix the times too; anyone know clog's timezone? Well, I could check. 17:23:22 -!- ais523 has joined. 17:23:25 hi ais523 17:23:30 hi ehird 17:23:49 also, /is/ my-cars (car . cdr)? 17:24:01 yes 17:24:07 it's the lisp translation of "My other car is a cdr" 17:24:14 heh 17:24:33 surely people would use a list not a cons cell to list their cars, though? 17:24:38 -!- ais523 has set topic: (eq? (cadr my-cars) 'cdr) | http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 17:24:40 no 17:24:44 "my other" means there's only two 17:24:51 -!- ehird has set topic: (eq? (cdr my-cars) 'cdr) | http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 17:24:57 it's a pair of cars 17:25:14 hmm, ok 17:25:20 but cons cells are inherently ordered 17:25:23 I suppose lists are too, though 17:27:17 My script is currently downloading aaaall the tunes.org logs. 17:27:31 It automatically only downloads ones you haven't downloaded yet, too. 17:27:49 I want to make it fix the timezones, too 17:27:50 to UTC 17:28:07 hmm 17:28:12 it's 16: here, 09: there 17:28:19 so UTC-7 17:28:32 hmm 17:28:33 agh 17:28:38 it crosses the day line, of course 17:28:42 so I'd have to move lines between files 17:28:49 :\ 17:28:54 ais523: worth it, do you think? 17:29:06 yes 17:29:19 it would normally be UTC-8, though 17:29:28 oh, right 17:29:32 does UTC have daylight savings? 17:29:38 or, -8 from us, anyway 17:29:39 if not, I can just blanket -8 17:30:52 hmm 17:30:55 should be simple enough 17:31:10 if it's N hours away from midnight, strip from file onwards and append to 'Putthisinthenextfile' 17:31:20 when you make a file, splurge putthisinthenextfile after the first 'starting' line 17:31:22 repeat 17:31:37 if you come to today - 1, disregard putthisinthenextfile (It never downloads an incomplete log) 17:34:37 I'll make it download first, though 17:36:59 anyway, the net effect should be -- wait a few minutes, get YYYY-MM-DD logs with UTC timestamps, fully greppable 17:51:59 you know what irritates me? 17:52:12 OOP weenies "praising" functional programming by saying it has things to contribute to architechture 17:52:22 because, of course, _replacing OOP_ cannot possibly be a productive path 17:52:37 functional and OOP simultaneously is of course entirely possible 17:52:38 no, we just have to stick and pile crap on to our existing model, see? those functional languages are just wacky things we'll cherry pick from 17:52:45 ais523: yes, but I mean the OOP C# Java sort of people 17:52:46 always say that 17:52:48 that doesn't mean it's a good idea for all programs 17:53:05 they never consider that maybe replacing OOP is better than adding on to it 17:53:14 it's always things "contributing" to mainstream languages 17:55:26 so anyway 17:55:34 should I write a book about esolangs and esoprogramming 17:55:40 i mean I've been toying with the idea for a while. 18:04:23 so have I 18:04:32 but our books would probably look very different 18:04:37 ehird: i changed my ways just for you. 18:04:56 ais523: why? :P 18:05:03 Asztal: I misread UTC-8 as UTF-8, and got confused for a moment 18:05:06 its a symbol of my love *-* 18:05:08 well, mine was gonna have a loot of theoretical stuff 18:05:12 and then like some practical tipz 18:05:13 ehird: because we seem to disagree stylistically on everything 18:05:21 but that's not too dissimilar from what I was planning 18:05:30 I think I'd include in-depth discussions of many of the most popular esolangs, though 18:05:40 I wonder how to measure esolang popularity? Page-hits on the wiki? 18:05:50 I was maybe gonna do two books 18:05:58 one about esoprogs & esolangs in general 18:06:04 one about how to actually write a damn program in brainfuck/intercal/etc 18:06:10 two sections of the same book might work better 18:06:13 mm 18:06:27 I can't imagine they'd be too big, yeah :P 18:06:56 wow, http://esoteric.voxelperfect.net/wiki/Special:Popularpages is pretty interesting 18:07:06 I'm surprised Ook! is so far up, for instance 18:07:19 and that INTERCAL is so far down 18:07:29 -!- Judofyr_ has joined. 18:07:53 so I found a qbasic game that dosbox was too slow to run X 18:07:54 XD 18:08:02 you can speed it up 18:08:06 it had "delay = 10000" 18:08:09 it was obviously designed for more modern computers 18:08:12 I'm setting it to "delay = 0" 18:08:22 ais523: it was made in 1995 by a friend; but it was his second ever game 18:08:29 for example, all IFs were just gotos, etc 18:08:31 heh 18:08:38 that's before I was born 18:08:38 so, it's probably a large artifact of the code 18:08:43 ais523: what, 1995? 18:08:50 oh, misread it as 1985 18:09:00 It was slightly after I was born, I think 18:09:27 ais523: what cpu cycles do you have your qbasic dosbox? 18:09:31 mine is 3000 18:09:42 I leave it on default 18:09:45 I don't use it much, you see... 18:09:51 it'll be in the title bar 18:11:02 wow, this game is fancy, it even has an icon. 18:14:14 I can't type backslash, argh 18:20:17 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 18:25:16 Huh. 18:25:17 BASIC is portable. 18:25:25 I just translated some C64 basic to QBasic trivially. :P 18:25:31 I wouldn't be surprised if there was at least one portable version by now 18:25:32 (graphical) 18:25:40 arguably, VB.NET is portable due to Mono, but that's hardly BASIC 18:26:55 wait, spectrum 18:26:55 not c64 18:26:59 Spectrum BASIC: 18:26:59 10 BORDER 0; PAPER 0 18:27:00 20 FOR n = 1 TO 7 18:27:02 30 INK n 18:27:04 40 CIRCLE 100+n*10,100+n*10,50 18:27:06 50 NEXT n 18:27:08 QBasic: 18:27:10 SCREEN 12 18:27:12 FOR n = 1 TO 7 18:27:14 COLOR n 18:27:17 CIRCLE (1==+n*10,100+n*10),50 18:27:18 NEXT n 18:27:20 err 18:27:22 CIRCLE (1+n*10,100+n*10),50 18:33:00 -!- oerjan has joined. 18:35:35 16 bitches? 18:35:48 * oerjan imagines some kind of counting song 18:40:48 ehird: It's not blue in my qbasic.exe help-browser by default; it's black there, even though the edit screen is white-on-blue. 18:40:57 oh right 18:41:36 Although at least quickbasic has a colour configura-o-tron for the UI. 18:43:59 http://jsspeccy.zxdemo.org/ 18:44:09 all it needs now is a BASIC editor 18:44:47 -!- Judofyr_ has changed nick to Judofyr. 18:50:49 ais523: you know how you said the shuffle should have buttons on the headphones? 18:50:50 it _does_ 18:50:55 wow 18:50:56 I just realised 18:51:01 but unfortunately, it isn't just the headphones? 18:51:14 There's a thin unit: http://images.apple.com/ipodshuffle/gallery/images/ipodshuffle_image1_20090311.jpg 18:51:18 but yes, not quite all in those tiny tiny earphones 18:51:53 You have a thin unit 18:51:53 http://images.apple.com/ipodshuffle/gallery/images/ipodshuffle_image3_20090311.jpg <- headphone cable controls 18:51:53 Slereah: Oh burn. 18:51:56 kekeke < `?> 18:55:25 kekeke? is that some kind of french laugh? 18:55:45 Korean. 18:56:02 aha 18:56:19 It's "lololo" put through the Orcish/Human filter in World of Warcraft 18:56:43 If I remember correctly, anyway 18:56:48 hm 18:57:27 Evidently "kek" is "lol" but "kekeke" is "hahaha" according to Wikipedia 18:58:10 no 18:58:13 it originates from starcraft iirc 18:58:26 there's an orcish/human filter on world of warcraft? 18:58:26 The origin is the Korean 18:58:28 or at least, common usage 18:58:34 how does it work, just swapping certain letters? 18:58:45 I think so, yes, with some hardcoded words (like "lol" -> "kek") 18:58:54 it doesn't, considering the < `?`> smiley next to it it's obviously meant to be korean 18:59:27 ehird: It originates in Warcraft, to be precise 18:59:38 wspanig elttres 18:59:47 I.e. Warcraft: Orcs and Humans from 1994 18:59:53 Or 1993? Not sure 18:59:56 *wspaipgn 19:01:21 ot wspa, ro ont ot wspa, httas' hte uqseitno 19:02:17 s/httas'/htta si/ 19:02:32 an ode to orcs enjoying hot spas, obviously 19:03:54 octnartcoisn tfw! 19:04:08 Qapla'! 19:04:14 hmm... it seems to be mostly anagramming rather than substituting letters 19:04:37 ais523: i hope you are not thinking i am being authentic here 19:05:01 or does that mean i'm more authentic than i thought? 19:06:06 -!- kar8nga has joined. 19:06:28 Hell, now that I see the quote in question, make that "taH pagh, taHbe"... 19:07:43 :o 19:07:46 KLINGON!? 19:07:47 :o 19:07:48 my klingon is rather rusty. 19:07:57 as in, dead before birth, really 19:08:00 QAPLAH 19:08:05 i dont know klingon 19:08:37 Slereah: i do vaguely recall it being case sensitive, though 19:08:42 Yes 19:08:43 it is. 19:08:53 Well, the transliteration anyway 19:08:57 klingon uses caps and lowercase for different sounds 19:09:02 They don't 19:09:06 they do. 19:09:10 in the transliterations. 19:09:13 It's the transliteration that does that 19:09:18 Klingon has an alphabet 19:09:22 yes i know this 19:09:24 thank you. 19:09:28 it has two, actually 19:09:31 but thats besides the point 19:09:47 HOEFLER TEXT 19:09:59 hoefler text? 19:10:04 Yes! 19:10:26 and why is this font interesting now? 19:10:33 It is awesome. 19:10:37 ok 19:10:43 Also, *typeface. 19:10:44 its italic Q is pretty neat 19:10:45 * oerjan hoefles around 19:11:28 text figures <3 19:15:31 * oerjan swats a wiki spammer -----### 19:15:45 * ais523 catches the wiki spammer in a butterfly net -----\XXXXX/ 19:15:45 he'll never know what hit him 19:16:28 i don't think the gentle butterfly net is appropriate for spammers 19:16:41 well, it's to hold them still while you swat them 19:16:54 Why does the gentle butterfly net remind me of a frying pan? 19:17:10 Hello! I am testing stuff. Please feel free to totally ignore me. 19:17:11 Thank you! 19:17:18 frying pans are similar but harder and more painful 19:17:18 -!- Corun has joined. 19:17:22 also they have a smaller volume 19:17:39 Frying pans are presumably preferred by the really hard-core butterfly enthusiasts. 19:17:54 um, you would be surprised 19:18:32 http://screencast.com/t/jlgWoqvK (needs flash) 19:18:48 ehird: just do it all command-line and use termcast 19:18:53 heh 19:18:55 that doesn't need flash, or indeed a web browser 19:19:07 it needs telnet. and it requires you to use command line tools. 19:19:19 what do you mean needing telnet is a problem? needing flash isn't either. 19:19:21 well, it's for broadcasting terminals, of course it requires command line tools 19:19:40 besides, Windows Vista comes with telnet by default, and not Flash 19:19:46 likewise for every other common OS, I think 19:19:55 but doing it with windows is more impressive 19:19:55 why are you using a computer? use a television. that doesn't need RAM, or indeed a CPU. well, it's for broadcasting images, of course it requires passivity 19:20:05 besides, my house came with a TV, but no computer 19:20:23 I'm not sure Windows Vista comes with telnet by default 19:21:00 it does, it's just not enabled by default 19:21:04 Well, it does, but you have to install it. 19:21:06 windowshelp.microsoft.com sez: "By default, Telnet is not installed with Windows, but you can install it by following the steps below." 19:21:12 no install is needed 19:21:15 at least, it's on the computer 19:21:16 Huge video capture is huge! I bet this one will be like 15MB+. 19:21:17 but you have to turn the thing on 19:21:19 Stupid FLV. 19:21:35 Testing, testing. 19:22:13 Installing is what they call "turning it on" on that windows help thing, though. Although admittedly the installation instructions go to some "Turn Windows features on or off" page. 19:22:45 Also other very good questions there: "Telnet doesn't look like Windows. Why?" 19:23:03 "I've got the Telnet window open. Now what?" 19:23:52 interesting fact: for ages, Windows NT only supported one locally logged in person at a time, but allowed any number of users to telnet in 19:25:30 That may be a fact, but I'm not sure why it's so interesting. :P 19:25:57 -!- oerjan has quit ("And then, a miracle occurs"). 19:26:23 ...and I am here to capture this miracle forever and ever. 19:26:30 Oh, I feel so special to be selected as the sole receiver. 19:26:37 Whatever will become of my life when this wonder is over? 19:26:43 It's interesting because it has 2*2*2*3*5 letters. 19:26:47 I'll flip burgers or something. I'll burger flips. 19:26:50 I am a burger. 19:26:53 Arem 19:26:55 Aren't you? 19:27:05 Is "burger" a verb? 19:27:17 of course 19:27:30 otherwise you wouldn't be able to say "burger flips" 19:27:57 -!- Corun has quit ("This computer has gone to sleep"). 19:30:19 http://screencast.com/t/vdo7feUDvw <-- Burgers, miracles, etc. 19:30:28 Can you tell I'm testing? 19:30:46 No, you sound just like you usually do. 19:30:51 :-D 19:31:18 It'd be nice if Jing was less... laggy. And less SWF. 19:31:26 maybe I'll write my own capturerotron 19:36:47 http://www.newartisans.com/2009/03/hello-haskell-goodbye-lisp.html <- Yet another joins the club. 19:49:06 -!- ais523 has quit (Remote closed the connection). 19:49:47 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)). 19:50:11 -!- BeholdMyGlory has joined. 20:18:57 -!- Mony has quit ("Quit"). 20:23:14 ehird: what IRC client is that 20:23:20 limechat 20:23:22 OS X only 20:23:28 http://limechat.net/mac/ 20:23:29 well 20:23:32 looks better than colloquy 20:23:33 there is a limechat for windows by the same author 20:23:36 but it's totally separate 20:23:37 and it is 20:24:05 also 20:24:06 "Note that you need to install it even if you are using OSX 10.5.5. " 20:24:07 ignore that 20:24:09 it's bullshit 20:24:15 just download limechat, it works :P 20:26:51 omg 20:26:54 there's limechat for the iphone 20:26:56 why nobody tell me 20:27:08 http://limechat.net/iphone/images/serverlist.png 20:27:16 * ehird grabs 20:27:44 hrmps, £3 20:32:37 AnMaster: should I learn erlang? 20:32:59 http://gist.github.com/79022 On second thoughts, maybe not. 20:46:30 oh, screen 13 is trivial 20:46:57 x+(y*w) 20:47:00 where w = width of stream 20:47:04 screen 20:48:35 hi 20:48:39 hi AnMaster 20:48:40 ehird, maybe. If you want. 20:48:45 I got fast graphics working in qbasic 20:49:04 oh? nice 20:49:14 I'll show the code as soon as this finishes running :P 20:49:25 ehird, have guests today that stay over night. Not much time to talk. 20:49:30 using poke inset of pset? 20:49:31 kay 20:49:35 Asztal: yeah, pretty much 20:49:36 instead* 20:49:46 it's for screen 13 (@AnMaster: 320x200, 256 col) 20:49:48 (relatives...) 20:49:52 but I couldn't get it working before 20:49:57 now it seems to work 20:50:04 mhm 20:50:11 @AnMaster: 320x200, 256 col <-- ? 20:50:17 that's what screen 13 i 20:50:18 s 20:50:23 k 20:50:33 ehird, screen 13 meaning? 20:50:38 screen mode 13 20:50:40 ah 20:50:41 QBasic: SCREEN 13 20:51:08 ehird, I think "the 13th terminal" which is very different 20:51:12 heh 20:51:17 thought* 20:51:23 -!- neldoreth has quit ("leaving"). 20:51:28 -!- neldoreth has joined. 20:51:40 Looks like it's finishing off... 20:51:42 ehird, and it just didn't make sense for DOS! 20:51:53 you should see my multi display DOS setup 20:51:54 it's hardcore./ 20:52:06 i have a 17" text display 20:52:11 http://gist.github.com/79022 On second thoughts, maybe not. <-- wth 20:52:12 a 14" 640x480 16-col display 20:52:17 * AnMaster tries to understand that code 20:52:21 and a 15" 320x200 256-col display 20:52:23 AnMaster: it's from erlang 20:52:25 's source code 20:52:26 otp, thing 20:52:29 err 20:52:31 erl_eval 20:52:32 or something 20:52:46 any language that has a fun keyword is cool with me 20:52:57 fun awesome -> radical 20:53:14 ehird, it doesn't make much sense 20:53:23 why not 20:53:59 ehird, well maybe in context. But you can call a fun with unknown arguments count at compile time in cleaner ways 20:54:11 apply(Fun, Args) -> term() | empty() 20:54:11 Types Fun = fun() 20:54:11 Args = [term()] 20:54:16 that is a BIF even 20:54:27 er, no 20:54:28 becaus 20:54:29 e 20:54:32 that's in the evaluator 20:54:35 it isn't an actual function 20:54:37 thus the eval_fun shit 20:55:24 ehird, well that code assigns a fun(a,b,c,...) to F that calls eval_fun 20:55:36 I'm not dumb, I can read i 20:55:37 t 20:55:38 ehird, I'm not sure why this is useful. 20:55:39 it's just hdeous 20:55:41 hideous 20:55:44 I mean. what is the context 20:55:46 and I agree 20:56:08 what source file is it from? 20:56:16 dunno 20:56:43 Howdy neighbor! This here's sup-config, ready to help you jack in to 20:56:43 the next generation of digital cyberspace: the text-based email 20:56:45 program. Get ready to be the envy of everyone in your internets 20:56:47 with your amazing keyboarding skills! Jump from email to email with 20:56:48 hm /usr/lib/erlang/lib/stdlib-1.15.5/src/erl_eval.erl 20:56:49 nary a click of the mouse! 20:56:50 it seems 20:56:51 wth 20:56:51 — sup-config program 20:58:30 ehird, hm. It seems very weird indeed. The normal way would be to compile to erlang byte code then run that iirc 20:58:32 -!- Sgeo has joined. 20:58:43 you can do that sort of stuff 20:59:31 This module provides an interpreter for Erlang expressions. The expressions are in the abstract syntax as returned by erl_parse, the Erlang parser, or a call to 20:59:31 io:parse_erl_exprs/2. 20:59:33 hm 21:03:35 ehird, and yes that code was horrible. But then it isn't something I ever needed to do thankfully 21:04:02 it seems erl_eval is meant to support safe evaluation of erlang code 21:04:17 with callbacks for all function calls and such 21:04:34 During evaluation of a function, no calls can be made to local functions. An undefined function error would be generated. However, the optional argument LocalFunction‐ 21:04:34 Handler may be used to define a function which is called when there is a call to a local function. The argument can have the following formats: 21:11:18 AnMaster: here's the code 21:11:19 SCREEN 13 21:11:23 DEF SEG = &HA000 21:11:26 FOR n = 0 TO 32767 21:11:29 FOR x = 0 TO 100 21:11:34 POKE x + (1 * 320), n 21:11:35 NEXT x 21:11:36 NEXT n 21:11:47 it's `x + (y * 320)` 21:11:58 anyway, that flashess a band of colour on the second line of the screen. 21:11:59 a lot. 21:15:30 Next you'll be graduating to VGA palette rotation tricksies. (That's also trivial: OUT &H3C8, followed by OUT &H3C9, ; OUT &H3C9, ; OUT &H3C9, with rgb values in the [0, 63] range; and it auto-advances, so you can just OUT &H3C8, 0 and then feed the whole 256-color palette in the 0x3c9 port. 21:16:40 fizzie: what does that buy you? 21:35:22 nice 21:36:11 btw confusing: callgrind reports that 0 system time was spent in fclose() or fwrite() when writing files. Even though commenting out those calls actually reduces run time... 21:36:12 wth 21:36:25 it reports the system time just fine for other stuff 21:36:31 You can do "animation" fast without screen-redrawing. As long as you're happy with just manipulating palette values. 21:36:47 ==16002== L2 refs: 123,201 ( 28,492 rd + 94,709 wr) 21:36:47 ==16002== L2 misses: 30,943 ( 21,054 rd + 9,889 wr) 21:36:47 ==16002== L2 miss rate: 0.0% ( 0.0% + 0.2% ) 21:36:54 I don't believe valgrind can count? 21:37:04 the miss rate seems way off 21:38:20 or, if it is actually relative L1 refs in the table above... 21:38:21 http://paste.lisp.org/display/77046 21:38:26 then it is very confusing output 21:46:45 (And of course it also "buys you" a less silly color palette -- well, less silly for many uses -- than the default 256-color one.) 21:49:38 Stop all the QBasic nonsense before I catch the qb bug too, though. I'm already very close to running dosbox; probably would've started it already, except I'm afraid it might use enough CPU to make the virtualbox windows vm get some audio-playing glitches. 21:58:26 The "Version Differences" list at http://zem.fi/~fis/qbc.html#QEw4MDBm should make you appreciate QBasic over the older pre-5 DOS GW-BASIC. 22:16:01 -!- oerjan has joined. 22:17:01 Whatever will become of my life when this wonder is over? 22:18:18 you will be caught up in a struggle between religious sects with fiercely different interpretations of the miracle. as a result you will end up being burned on the stake, although that will still be many years in the future. 22:18:36 * oerjan hopes this cleared it up. 22:20:23 Are you sure you should be revealing your information-of-the-future stuff to us? I understand it's usually very hush-hush. 22:20:58 not this one. it is a self-fulfilling prophecy, and those are important to get into the open. 22:22:43 hm 22:23:01 what exactly does this mean: char* const args[] 22:23:03 in C 22:23:16 black magic. 22:23:22 int execvp(const char *file, char *const argv[]); 22:23:24 is the context 22:23:26 the POSIX API 22:23:34 at least that's how i understand const in C (i.e., not very well at all) 22:23:52 well I understand const char*, just not char* const 22:24:12 It's a constant pointer. 22:24:25 hm 22:24:36 I mean, "const char*" is a pointer to constant characters, while "char* const" is a constant pointer to (modifiable) characters. 22:24:52 cdecl> explain char* const args[] 22:24:52 declare args as array of const pointer to char 22:24:54 hm does const commute with some of it? i.e. is const char * == char const * ? 22:25:01 Yes. 22:25:22 There's a long discussion about the benefits of "const char *" and "char const *" in the C++ FAQ. 22:25:28 It's about "business reasons". 22:25:32 heh 22:26:13 those should be the same... 22:26:23 so it would just be a matter of coding style -_- 22:26:52 "Fred const* x is functionally equivalent to const Fred* x. However, the real question is which should be used. 22:26:57 Answer: absolutely no one should pretend they can make decisions for your organization until they know something about your organization. One size does not fit all; there is no "right" answer for all organizations, so do not allow anyone to make a knee-jerk decision in either direction. "Think" is not a four-letter word." 22:27:04 That's a very typical piece of the C++ FAQ. 22:27:04 char *const argv[restrict] <-- nice one from posix_spawn() 22:27:17 what does *that* restrict change 22:27:26 wait 22:27:56 in an argument list this is pointer to array of pointers to null terminated strings 22:28:11 the pointers to the strings are constant 22:28:16 and may not alias each other? 22:28:24 or what bit does restrict there restrict 22:28:24 ? 22:28:30 That sounds reasonable, but it's a silly-looking place for the restrict. 22:28:45 int posix_spawn(pid_t *restrict pid, const char *restrict path, 22:28:45 const posix_spawn_file_actions_t *file_actions, 22:28:45 const posix_spawnattr_t *restrict attrp, 22:28:45 char *const argv[restrict], char *const envp[restrict]); 22:28:50 is the full prototype 22:29:35 To tell you the truth, I'm actually a bit surprised that it's legal. But my guess is that "char *const argv[restrict]" might be the same thing as "char *const *restrict argv", maybe. 22:29:36 it may also indicate argv and envp can't alias each other 22:29:38 I'm not sure 22:30:01 fizzie, restrict is perfectly legal inside [] in argument lists 22:30:17 Yes, obviously, but it still looks silly. 22:30:33 I don't see where else it could be in a [] thing, so I guess there's not really an alternative. 22:30:42 fizzie, for example, this is valid: static inline void mulMatrices(const double a[restrict 16], const double b[restrict 16], double r[restrict 16]) 22:30:55 yeah that is 16 as in size 22:31:08 16 restrict isn't valid though: 22:31:13 /home/arvid/src/cfunge/code-cleanup/src/fingerprints/3DSP/3DSP.c:139: error: expected ‘]’ before ‘restrict’ 22:32:50 fizzie, nice syntax eh? 22:32:52 ~ 22:33:19 20:36 fizzie: You can do "animation" fast without screen-redrawing. As long as you're happy with just manipulating palette values. 22:33:21 ha 22:33:30 20:46 fizzie: (And of course it also "buys you" a less silly color palette -- well, less silly for many uses -- than the default 256-color one.) 22:33:31 Yes, well, I'm not quite sure where else it could be, so I guess it makes sense; it just looks silly. 22:33:33 what are the values? 22:33:35 32-bit colours or w/e? 22:33:45 20:49 fizzie: Stop all the QBasic nonsense before I catch the qb bug too, though. I'm already very close to running dosbox; probably would've started it already, except I'm afraid it might use enough CPU to make the virtualbox windows vm get some audio-playing glitches. 22:33:47 dosbox uses like 0 cpu 22:33:50 do eet ;) 22:34:03 I mean qbasic is just awesome. 22:34:09 Yes, and come to think of it, that virtualbox seems to use something like 10-30 % of one core, anyway. 22:34:22 how many cores you got? 22:34:27 Just two. 22:34:34 me too! we're core-buddie. 22:34:35 buddies 22:34:40 * AnMaster only has one code 22:34:42 core* 22:34:45 The R/G/B values (each written separately) are 6-bit values, since VGA only does 18-bit colors. 22:34:57 hmm fizzie should I not get an 8-core so we can stay core buddies? :( 22:35:00 ehird, however I do have root on a Quad Core Opetron server! 22:35:08 legal root 22:35:13 pfft, quad core. 22:35:15 (of course) 22:35:21 my hypothetical 2xquad-core nehalem scoffs at you. 22:35:24 ehird, model name : Quad-Core AMD Opteron(tm) Processor 1354 22:35:28 don't think that is too bad 22:35:59 ehird: Go do 8-core if you want; I can just sum up different computers and pretend they're somehow metaphysically speaking part of the same system. 22:36:09 fizzie: i tried that once 22:36:16 in this room, I have 5 cores 22:36:17 I think 22:36:33 err 6 22:36:33 I just link a few erlang nodes :P 22:36:35 Currently, there's only 2 cores in this room. I run old hardware. 22:36:37 7 22:36:41 pikhq, same 22:36:47 iMac: 2, ancient powermac: 1, iphone: 1, nintendo DS: 1, gamecube: 1, game boy advance sp: 1 22:36:53 assuming I didn't miss anything 22:37:04 of course, most of those cores are ridiculously underpowered... 22:37:13 oh wait 22:37:18 livebox runs linux so it must have some sort of cpu 22:37:18 8 22:37:27 hey I don't need to buy an 8-core 22:37:30 I have it already! 22:38:18 It'd be nice if QBasic would work with, say, more than 80x24 22:38:19 ehird: the DS has two CPUs :) 22:38:19 Nintendo DS counts as two. 22:38:22 Or, you know, DOS in general 22:38:24 wait, the DS has two cpus? 22:38:30 There's both a 66 MHz and 33 MHz ARMs. 22:38:35 that's some powah. 22:38:38 an ARM9 and ARM7, I think 22:38:47 ARM9 and ARM7; the ARM7 pretty much only does sound an input, though. 22:38:57 i have 9 cores 22:39:00 top of the range! 22:39:02 night 22:39:32 Cassette tape support Yes No 22:39:33 aw bummer. 22:39:40 An unsubstantiated rumour says that in the official Nintendo dev-kit you can't really write custom code for the ARM7 anyway, there's just the Nintendo-provided binary that can handle sound-playing and other hardware functions unique to the ARM7 side. 22:39:41 Code organization Linear Modular 22:39:47 is that referring to the awful F2 sub browser? 22:39:52 that hides subs from your main text? 22:40:11 Yes, probably. And maybe also the fact that you can actually have subs, although that's covered elsewhere too. 22:40:29 I'm pretty sure even old BASICs had subs apart from really old ones 22:40:36 fizzie: your code prints out \ as \\, it's causing alignment issues 22:41:02 Oh, I didn't de-escape that; probably didn't notice it either. 22:42:21 I have in this room two Athlon X2 dual-core things (sum: 4), two iBooks (sum: 6), and then all those "you can only non-seriously count these", like a DS (=8), a Symbian phone (=9), a Linksys WLAN thing (=10), and some even less-computery systems like the amplifier which has some sort of cpu/dsp dual-thing. I'm sure we can agree on some core-buddy number, though. 22:42:38 a DS has 8 cores? 22:42:39 What now? 22:42:40 oh 22:42:43 it's a running total 22:42:48 It's just the cumulative sum, yes. 22:43:14 yeah, a linksys router with 10 cores would be fun 22:43:42 so fizzie have you started up dosbox :P 22:43:56 I recommend setting cpu cycles to 5000, it seems to run the most authentic while not being stupidly slow 22:44:10 It depends on what you're running 22:44:24 Well, you probably want >5000 for QBasic games, given their dog-slowness. 22:44:48 But is that authentic speed? 22:45:12 Well, I'm operating ont he assumption that this game was actually playable in 1995 22:45:16 As opposed to taking one second to turn 22:45:18 Not yet, no. I'm still just considering. For some reason dosbox's keyboard layout wasn't automagically okay either. 22:45:22 My point was that 'authentic speed' depends on what you're doing, the emulation is slower for some apps than others 22:45:44 Mm. 22:45:48 And I've seen some pretty unplayable qbasic "games". 22:46:18 Even with cpu cycles 53000 it's too slow on some things 22:46:30 Raising CPU cycles slows stuff down after a certain point 22:47:00 There's the 'dynamic' mode, or whatever it was called, which often works best 22:47:09 I'll try that 22:47:26 That's the on-x86-only binary translation thing, I guess. 22:48:08 Deewiant: Since you're such a dosbox gooroo, how do I get my keyboard to work right? By default this seems like the US layout. 22:48:10 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 22:48:12 Deewiant: that changed absolutely nothing. It just sticks at 3000 cycles. 22:48:21 oh 22:48:22 it's core= 22:48:23 not cycles 22:48:25 dur 22:48:31 ehird: Then it was something else, I don't remember what it's called but it removes the cycle count from the title bar 22:48:44 core=dynamic 22:48:49 hmm 22:48:53 it sstill says cpu cycles, though 22:49:09 fizzie: I just spent half a day a few weeks back trying to get the layout to work right, the best I could do was an almost-working (backspace is both backspace and caps lock) US 22:49:22 I can't type \, it shows up as #. 22:49:36 It's not really friendly to non-US layouts 22:49:42 This is a US layout. 22:49:46 Albeit an Apple one. 22:49:49 I'm talking to fizzie 22:49:52 ah 22:49:54 Or in general 22:49:56 I can't type #, it shows up as #. <-- say what? 22:49:58 Not to you in particular, anyway 22:50:06 oerjan: in DOSBox. 22:50:14 My \ key is just above my (one line) enter key. 22:50:39 That's strange, my # key is above 3. 22:50:40 So anyway, a colemak layout with swapped caps lock and backspace was pretty much impossible to get to work 22:50:50 In Windows, I got it to work really easily though 22:51:10 Okay, even with cpu cycles: max this game is ridiculously slow 22:51:57 Oh, right, there's that ctrl-f1 keymapper, can that do something useful? 22:51:58 -!- Corun has joined. 22:52:05 I couldn't get it to work right 22:52:13 It thought right alt was page down 22:52:16 And other stuff like that 22:52:31 Maybe I'll just use the US layout since it seems to work right. 22:52:33 Oh, there were two possible keyboard modes in the .conf file 22:52:55 The other one worked like that (not at all) and the other one worked partly, can't remember how exactly 22:53:08 In the end I just stuck with US with broken backspace 22:53:15 broken backspace, that must be a pain 22:53:21 No, backspace works 22:53:34 ehird: 22:53:34 ehird: 2009-03-14 23:49:08 ( Deewiant) fizzie: I just spent half a day a few weeks back trying to get the layout to work right, the best I could do was an almost-working (backspace is both backspace and caps lock) US 22:53:43 ah 22:53:56 I have a ZX Spectrum+ on which backspace is 0 over 90% of the time 22:54:00 That's a pain 22:54:01 Anyway, fizzie, I recommend you set: 22:54:03 cycles=max 22:54:05 in the configuration 22:54:12 It's still dog slow, but you can write QBasic programs and have them finish before you die. 22:54:47 "D'oh, typo. D'oh, zero! D'oh, zero! (...) Yay, backspace! D'oh, didn't hold it down, still 60 zeroes before my typo" 22:55:05 Also the mouse won't work, but I'm not sure I'd be using that much. F6 for window-swapping feels a bit silly though. 22:55:31 I didn't have mouse trouble 22:56:10 If I click the window so that it captures the mouse, I can only move the cursor up and down on the rightmost column of the screen. 22:56:53 I guess the more important thing is that I have no clue what to do with qbasic. 22:57:14 fizzie: You type, and F5 runs. 22:57:18 Ctrl-Break terminates. 22:57:23 You can open, save, find, replace. 22:57:25 And F2 browses subs. 22:57:30 For all else, see your manual. :P 22:57:36 (Yes, I am deliberately misinterpreting) 22:58:19 Whoa. I just sped my program up like 5x by using POKE instead of pset. 22:58:19 :D 23:00:02 How did you interrupt this thing again? I didn't follow that part of the conversation. :p 23:00:10 Ctrl-Break. 23:00:18 Which doesn't work for me but there you go 23:00:38 It didn't really want to work for me either. 23:00:46 fizzie: Try alt-Break. 23:00:48 Just Break. 23:00:49 Shift-Break. 23:00:50 etc. 23:00:57 Ctrl-Shift-Break. blah blah 23:01:04 Alt-Break changed the window title to be QBASIC PAUSED, that's about it. 23:01:29 hmm second 23:02:12 aha 23:02:14 fizzie: ctrl-break ESC 23:02:24 err, but alt-braek froze it 23:02:25 don't do tha 23:02:27 trestart dosbox :P 23:02:43 Alt-break here just pauses it, and a second alt-break restores. 23:02:48 Ah. 23:02:51 Then ctrl-break ESC. 23:02:54 Huh, also, a note 23:03:04 For actual lines, use LINE, it's faster than repeated POKEs 23:03:10 POKE is just fast for single pixel thangz. 23:03:19 Sure, a qbasic loop is slow-as-molasses. 23:03:39 Did ctrl-break esc work for you? 23:04:01 It had already finished; I'll try when I get stuck next. 23:04:24 I'm being transported back to good old days I never had :P 23:05:26 I had some qbasic days, and I'm not sure they were especially good. I think the Commodore kids and such got all the good old days, while PC people just got the sucky old days. 23:05:43 Well, QBasic is pretty cool. 23:09:31 aha 23:09:32 fizzie: try 23:09:37 ctrl-scrollock ESC 23:10:04 yep 23:10:05 it works 23:10:07 in fact 23:10:10 just ctrl-scrollock 23:10:11 no ESC 23:10:12 works perfectly 23:10:42 -!- kar8nga has joined. 23:10:46 Yes, seems to. Good. 23:11:10 Demoscene law dictates that I now write a mandelbrot renderer that twirls it around. 23:11:35 It will not be very fast. 23:11:51 Hey, a mandelbrot viewer came with QBasic, apparently. 23:11:55 It's gotta be possible. 23:12:02 Sure, just not very fast. 23:12:07 Sides, I can use inline machine code. 23:12:45 Oh yes, the comfortable solution. 23:13:07 Well, there's nothing you can't do with QBasic! 23:14:20 ehird: Anyway, here's one palette-rotation example for you, if you can bother waiting for it to finish drawing: http://zem.fi/~fis/prot.txt 23:14:43 That's scarily ... organized. 23:15:25 fizzie: Heyyy, that's my fractal! 23:15:30 :DD 23:15:38 Whoa it changes colour. 23:15:40 Right, it's the ehird fractal. 23:15:42 Best program ever. 23:17:27 fizzie: Try replacing (X AND Y) with (X OR Y). 23:17:32 Yes, well, "changes colour" is pretty much what you get with palette-messups. As far as graphics chipsets go, VGA is pretty boring. 23:17:41 It's the same! 23:18:35 fizzie: wtf, XOR produces it too 23:18:39 is there any operation that DOESN'T produce it? 23:18:52 XOR's pallette changing is diagonal, which is nice. 23:19:01 Are those bitwise or boolean operations? 23:19:05 Bitwise 23:19:16 fizzie: (X + Y) gives a smooth gradient 23:19:42 Yes, that's just "manhattan-distance from (0,0)" and the palette happens to be a smooth gradient. 23:19:49 haha :D 23:20:29 X IMP Y gives it to you in a bit different orientation, but most bitwise ops do "look" rather similar when done that way. 23:20:47 X EQV Y is perhaps a bit different-looking. 23:21:06 err it is 23:21:07 ? 23:21:09 it looks the same to me 23:21:13 It also has a bit of a "straight line looks curved" visual illusion going on, or maybe it's just my eyes that are wonky. 23:21:20 oh 23:21:23 fizzie: EQV is XOR 23:21:24 for this 23:21:34 Right, I didn't try XOR. But yes, sure. 23:21:54 It's just NOT (x XOR y) anyway. 23:21:58 I wish it wrapped on overflow instead of errored 23:22:38 fizzie: anyway, that palette changing would indeed be useful to animate without redrawing anyhting 23:22:49 EQV and XOR are dual. (NOT x) EQV (NOT y) = NOT (x XOR y) 23:23:42 Hmm, how do you convert a string to an int... 23:24:05 The canonical palette-animation example is an animated sea: just allocate 8 or 16 colors for a blue-white gradient, use that to draw your sea tiles, then you can rotate that 16-color block to get waves. 23:24:52 http://zem.fi/~fis/qbc.html#QEw4MDI1 23:25:02 CVI(string) converts to an integer. 23:25:11 And CVL to long. 23:25:22 ah 23:25:43 are you sure? 23:25:49 as in CVI("123")=123 23:25:53 Not really, no. 23:25:58 VAL converts a string representation of a number to a number. 23:25:59 it's VAL. 23:26:17 Okay, this is very slow but pretty. 23:26:24 CVI is the inverse of MKI$, which is for formatted int-printing. 23:26:38 STR$/VAL seems to be the human-readable pair. 23:26:44 Aw, overflow. 23:26:45 I don't really remember any of this stuff. 23:27:00 Okay. 23:27:02 *Hokay. 23:27:07 What now, hrm 23:28:07 http://library.thinkquest.org/19436/download/gorilla/gorilla.bas 23:28:12 gorilla.bas; albeit double spaced. 23:28:26 Exciting! 23:28:27 That thing would be useful (in a very limited sort of way) for quick prototyping of... well, something; if it were, you know, quick. 23:28:41 "thing"? 23:28:46 QBasic? 23:28:49 qbasic. 23:29:02 I am very upset you do not consider it a viable programming choice :P 23:29:31 GORILLAS RUNS :D 23:29:41 *RUN 23:30:17 or possibly, *GORILLA 23:31:21 IF again$ = "y" THEN GOTO spam 23:33:26 haha, setting gravity=-1 in gorillas messes everything up 23:33:43 velocity 1? the banana just shoots off into space. veeery slowly. 23:38:39 Incidentally, VGA can do this unchained mode, where you get four 64K planes, with plane 0 containing pixels 0, 4, 8, .., plane 1 containing 1, 5, 9, ... and so on; then you can set a write mask of 0b1111 and write a pixel to all four planes simultaneously; that's quite a bit faster if you just need to write the same value to all pixels. 23:39:22 (And of course it lets you use all the 256K memory a VGA card has, so you can do double-buffering with hardware-assisted page-flipping.) 23:39:29 Hmm 23:39:34 Is there any way to have more than one palette at a time? 23:39:44 Like, changing the palette in the middle of a redraw? 23:39:49 It's just that things are more complicated then, and whenever you add a bit of qbasic logic, things get real slow real fast. 23:40:00 Then you could have >256 colours 23:40:39 I don't think I've seen such tricks done on a PC, really. I don't think you can get any interrupts at particular raster-lines or anything. 23:40:54 Mm. So drawing is atomic, then. 23:40:54 You'd need some pretty careful cycle-counting, at the very least. 23:41:11 Not very doable in a qbasic program. 23:41:16 fizzie: what if you drew only some of the pixels per redraw, and flashed between them really fast? I guess the hardware isnt' fast enough to make that plausible 23:41:48 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 23:42:11 lament: link to haccordion? 23:42:15 Since I have leopard now 23:43:05 Oh, I'm sure you can flash between two screens at 60hz (it's just a couple of writes to the VGA registers to switch the display start offset) so you can draw two pictures with close-enough colors, and that way get colors between the ones in the (static) palette, if you don't mind the horrible flickering. 23:43:15 fizzie: in asm it could be fast enough. maybe? 23:43:26 but yeah, N segments gives you 256*N colours 23:43:39 so if you have a segment per pixel the possibilities [for your epilepsy] are boundless 23:44:30 "Okay this is subjective because it depends on your definition of large. When I say large, I mean about 6 gigs or so. Because your company's source tree is probably that large." 23:44:34 You can fit up to four frames of that 320x200 256-color mode on the standard video memory. I really don't have a clue how slow the palette reprogramming is. 23:44:34 That is one shit company. 23:47:37 Hokay, mandelbrot. 23:47:42 Let's see if I can't done figure this out? 23:52:38 er wait 23:53:30 Oh dear, my mandelbrot leavs a flat nothing,. 23:56:34 -2 to 2 on both axes if you want all of it 23:56:36 iirc 23:56:44 Actually, it's just a bug. 23:56:46 Well. 23:56:49 Maybe not quite a bug, just. 23:56:52 It takes 5 years. 23:58:07 I think the (-2,-2) .. (2,2) range is not the aesthetically most pleasing one. I don't remember what I've used, though. That certainly should contain all of it, anyway, so you can fine-tune. 23:58:48 might do something refining, painting larger squares first 23:59:16 Oh well, I'll stick to simpler fractals. 23:59:27 I can render a sierpinski in 4.5 seconds, you know. 23:59:44 Actually it's more like 8 seconds