00:05:42 -!- augur has joined. 00:07:09 -!- nooodl has quit (Quit: Ik ga weg). 00:08:19 -!- oerjan has quit (Quit: leaving). 00:12:52 -!- augur has quit (Read error: Connection reset by peer). 00:13:17 -!- augur has joined. 00:14:45 -!- augur has quit (Read error: Connection reset by peer). 00:14:45 -!- augur_ has joined. 00:15:29 -!- augur has joined. 00:18:48 -!- heroux has quit (Ping timeout: 240 seconds). 00:19:34 -!- augur_ has quit (Ping timeout: 265 seconds). 00:19:44 -!- heroux has joined. 00:26:35 -!- S1 has left. 00:31:10 -!- nisstyre has joined. 00:38:43 Someone in another channel fed KJV and SICP to a markov bot 00:38:53 "And Jonathan caused David to be different, such as new-withdraw, we will always be considered `unreal' in five years. See BITTY BOX and TOY. GIGO (gie'goh) [acronym] garbage in, garbage out. Usually said of problems spawns new languages." 00:45:11 -!- typeclassy has joined. 00:53:04 that's wonderful 00:53:46 do you ever look at a biography and realize they died young and feel bad 00:59:28 -!- Phantom_Hoover has quit (Remote host closed the connection). 01:01:17 ^style 01:01:17 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 01:01:24 ^style iwcs 01:01:24 Selected style: iwcs (Irregular Webcomic scripts) 01:01:31 fungot, what are you doing 01:01:31 Taneb: you are not evil, terrible things are happening. this time you will not. hmm, no. j. k. rowling, who had given the thrashing we saw a webcomic with a missing. 01:01:47 fungot, I'm not evil? I think my userpage says otherwise 01:01:47 Taneb: but, but... that's not a fish. it's a lump of rock! we didn't give any thought the guys at nasa has fast-tracked a prototype deep has held out well on the bright side, the snakes, and 9... 01:02:54 ^style discworld 01:02:55 Selected style: discworld (a subset of Terry Pratchett's Discworld books) 01:02:58 fungot, symbols, whose values are looked up in the court of the LORD's glory. 01:02:59 Taneb: " they're just fnord,' the girl went on. ' it'd take all day.' 01:07:23 fizzie: when you establish the CS books/holy text style, i can hook you up with a /lot/ of the latter 01:17:46 -!- Sgeo has joined. 01:20:18 I have the opportunity to give a CS-related talk at some point in the near-ish future 01:21:30 I'm somewhat tempted but at a loss for the topic 01:22:12 the fast-growing hierarchy: applications to haskell-based microcontrollers 01:24:04 I was thinking either category theory or something about esolangs 01:24:13 -!- yorick has quit (Remote host closed the connection). 01:24:21 (there's pretty much no restrictions and it's not very formal or anything) 01:25:51 "Esolangs: programming language design as art?" 01:26:17 that sounds way worse than mine imo 01:26:32 Yeah but I don't think I'm sufficiently cool to do yours 01:27:14 sure y'are 01:29:21 -!- adu has joined. 01:51:51 -!- Bike has quit (Ping timeout: 240 seconds). 01:52:05 fuckin assembly 01:52:07 this is hurting my head 01:52:12 probably because i don't know anything about it :P 01:52:40 if i have "mov rax, cs:qword_someshit" and then "call qword ptr [rax+140h]" 01:52:41 -!- cherez has quit (Quit: Leaving.). 01:53:03 what is it doing? calling the code pointed to by memory address rax + 140h i assume 01:53:13 but cs:qword_etc is 0 01:53:23 it's calling the pointer at [rax+140h] 01:53:40 so it loads the 8 bytes at [rax+140h] into temporary space, and then calls /that/, I think. 01:53:43 so rax is 0 and it's just adding 0 for no good reason? 01:54:00 are you like, looking at compiled object code? 01:54:11 disassembled bios code 01:54:16 my fuckin laptop... 01:54:21 i went to put a wireless ac card in it 01:54:28 and its like NO I HAVE A WHITELIST U CANT USE WIRELESS CARDS LOLOL 01:54:37 so i'm to the part where i hack it to avoid that check :P 01:54:46 but i can't find where to do it 01:54:46 lol 01:55:05 the "mov rax, cs:qword_...." might be a thing to load like, the base of the code segment or something, for PIC-ish addressing? 01:55:34 i don't know what that means, but i'm about to check out qword_180001ac8 + 140 and see if anything is there :P 01:56:13 okay, that's past the end of the code lol 01:56:20 but 01:56:29 the program that extracted this module was fucked up anyway 01:56:36 it had like 27 bytes of garbage before the MZ 01:56:43 maybe an equal amount got cut off the end? 01:57:57 -!- adu has quit (Quit: adu). 02:00:14 anyway, nope, didn't think so 02:00:31 there's like a bunch of 0 bytes and various places of the code load them in 02:00:46 i guess that's just how it is... but if so i have no idea where it's calling :| 02:07:57 appears to maybe be an external call 02:08:04 to some other part of the bios 02:08:19 ah 02:08:30 so something would load the correct addresses there, they wouldn't be 0 at runtime obviously :P 02:08:48 and it's a qword which means it could be a long frickin' way away, so probabyl irrelevant for my purposes 02:11:16 -!- Taneb has quit (Quit: Leaving). 02:22:12 -!- adu has joined. 02:28:32 -!- typeclassy has quit (Ping timeout: 240 seconds). 02:57:14 -!- adu has quit (Quit: adu). 02:59:16 -!- Bike has joined. 03:01:40 -!- adu has joined. 03:02:25 -!- jconn has joined. 03:06:47 -!- typeclassy has joined. 03:12:56 -!- adu has quit (Quit: adu). 03:23:52 -!- adu has joined. 03:32:08 hi adu 03:32:19 hi 03:32:29 I didn't realize I had IRC open :) 03:32:30 what do? 03:32:49 can you repeat that in the form of a question? 03:52:11 -!- CADD has joined. 04:07:20 -!- nisstyre has quit (Quit: Leaving). 04:34:38 -!- adu has quit (Quit: adu). 04:43:53 -!- adu has joined. 04:51:07 -!- typeclassy has quit (Ping timeout: 246 seconds). 04:53:26 -!- doesthiswork has joined. 05:36:42 -!- nisstyre has joined. 05:45:09 -!- doesthiswork has quit (Quit: Leaving.). 06:09:57 -!- nisstyre has quit (Ping timeout: 252 seconds). 06:28:28 -!- adu has quit (Quit: adu). 06:48:15 -!- tangentstorm has joined. 07:25:05 Hi tangentstorm :-) 07:33:53 Bike: I still have the RFC style on the to-do list. 07:34:31 kay 07:34:41 are RFC holy 07:34:54 Also, won't people be offended if I put religious texts in? 07:35:50 not if they're all dead religions, and that's where i come in 07:36:42 TIL: freenode channel guidelines imply human beings have been "designed". 07:36:54 [[ Speakers in physical proximity with each other communicate quite a bit of emotional context via this extra bandwidth. This context enables them to avoid misjudging the intent of their conversational partners. It also functions as an unconscious negative feedback mechanism to reduce the incidence of emotional "firestorms" which tend to disrupt the efficient flow of conversation. Human beings ... 07:37:00 ... look for this feedback and indeed they may be designed to require it. ]] 07:37:07 -!- FreeFull has quit. 07:37:17 I've always found the freenode pseudo-psychology material amusing. 07:37:46 (Have you polished your catalyst skills today?) 07:37:55 amusement is about the most positive emotion i can muster in response to it 07:38:29 -!- CADD has quit (Quit: leaving). 07:40:30 I turned off my computer at home yesterday night since it wasn't really doing anything in particular and I would have had to reboot anyway, but now it's not responding to WOL packets. :/ 07:46:24 I guess the lack of psychic communication from fungot may lead to people misreading its intent and e.g. getting offended 07:46:24 olsner: " no," said teppic. it was the rare kind of madness caused by being yourself for so long. 07:46:59 fungot: You certainly have your fair share of that. 07:46:59 fizzie: ' commander vimes is keen on reports.' albert coughed nervously. 07:50:01 -!- carado has joined. 07:50:22 fungot: how long have you been yourself anyway? 07:50:22 olsner: ' don't you dare patronize me!" 07:51:00 hey impomatic :) just heard about this channel, so i thought i'd come lurk :) 07:59:18 -!- carado has quit (Ping timeout: 252 seconds). 08:03:28 -!- yiyus has quit (Ping timeout: 245 seconds). 08:45:28 -!- carado has joined. 08:47:11 -!- CADD has joined. 08:50:45 -!- augur has quit (Read error: Connection reset by peer). 08:50:50 -!- augur_ has joined. 08:59:05 -!- CADD has quit (Quit: leaving). 09:03:02 -!- carado has quit (Remote host closed the connection). 09:40:31 -!- tangentstorm has quit (Quit: WeeChat 0.3.2). 09:50:55 -!- olsner has quit (Quit: Leaving). 10:09:37 -!- drlemon has quit (Read error: Connection reset by peer). 10:21:44 -!- dchevak has joined. 10:25:36 -!- dchevak has left. 10:37:13 -!- Taneb has joined. 10:42:44 -!- Phantom_Hoover has joined. 11:09:33 -!- oerjan has joined. 11:36:37 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 11:50:00 -!- MindlessDrone has joined. 12:22:04 -!- yorick has joined. 12:32:11 -!- Taneb has quit (Quit: Leaving). 12:43:31 -!- Sgeo has quit (Read error: Connection reset by peer). 13:06:19 -!- boily has joined. 13:10:33 -!- boily has quit (Client Quit). 13:10:36 -!- carado has joined. 13:11:21 -!- jix has quit (Remote host closed the connection). 13:13:22 -!- jix has joined. 13:15:36 -!- boily has joined. 13:15:43 -!- metasepia has joined. 14:14:39 -!- variable has changed nick to trout. 14:17:25 -!- oerjan has set topic: The channel of the chimæric hellos | The most corum, clargoint chait you could ever loofefl your slance in. | Magnus♔ | Koirammekokaan ei lennä? :( | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf | logs: http://codu.org/logs/_esoteric/ or http://tunes.org/~nef/logs/esoteric/. 14:21:50 good U+2654 morning! 14:27:48 "-acoustic-mesh -- Preserve word-level acoustic information (times, scores, and pronunciations) in sausages, encoded as described in wlat-format(5)." 14:27:52 I like the terminology. 14:29:25 «acoustic sausages à la provençale, with an entrée of preserved meshes» 14:33:22 "-write-mesh-dir dir -- Similar, but write sausages to files in dir named after the utterance IDs." 14:33:36 "-init-mesh file -- Initialize the word confusion network by reading an existing sausage from file. This effectively aligns the lattice being processed to the existing sausage." 14:34:09 fascinating... and delicious. 14:34:45 the sausages are egregious. 14:43:55 -!- hogeyui has quit (Ping timeout: 272 seconds). 14:46:09 -!- Taneb has joined. 14:46:35 hellogeyui. Tanelle. 14:47:31 bonjoily 14:47:59 Also I now own nerf guns help 14:53:36 -!- mrhmouse has joined. 14:58:47 -!- fergusq has joined. 14:59:13 -!- S1 has joined. 14:59:24 Some of you programming in deadfish? 15:00:41 -!- fergusq has quit (Client Quit). 15:03:36 -!- Rylee has joined. 15:03:52 -!- Rylee has left ("WeeChat 0.4.3-dev"). 15:07:44 darn. too missed `relcomopprtunities... 15:07:52 -!- hogeyui has joined. 15:07:53 Taneb: what kind of nerf gun? 15:08:29 Elite Strongarm times 2 15:08:36 boily: you `relcomissed them 15:09:59 https://www.ruby-lang.org/en/news/2013/11/22/heap-overflow-in-floating-point-parsing-cve-2013-4164/ 15:10:03 heap overflow 15:10:04 in floating point parsing 15:10:07 in 2013 15:11:15 it's all there in the url people 15:11:19 -!- nooodl has joined. 15:13:36 -!- Taneb has changed nick to Ngevd. 15:13:45 heloooooooodl. 15:14:05 -!- Ngevd has changed nick to Taneb. 15:15:42 hoily~ 15:17:45 in other news, i wrote a program that self-modifies its machine code by calling read() 15:18:22 like, it reads into a 'buffer' in the middle of the program? 15:18:40 yes 15:18:45 hells yea 15:19:24 scary. 15:19:28 -!- oerjan has quit (Quit: leaving). 15:22:37 and that program is used to control medical hardware, I hope? 15:22:54 -!- sebbu has quit (Ping timeout: 265 seconds). 15:25:39 -!- S1 has changed nick to S1_afk. 15:30:39 -!- sebbu has joined. 15:31:17 -!- sebbu has quit (Changing host). 15:31:17 -!- sebbu has joined. 15:32:20 yes 15:32:27 a nuclear-powered flying hospital 15:34:43 kmc: do you at least use a lock so another thread can't execute the function while you're modifying it? 15:37:38 i don't have threads 15:37:42 also i don't have functions 15:37:57 or registers (except as necessary to call read()) 15:38:29 huh what? 15:38:50 how does that work 15:38:58 stay tuned for an article about it 15:39:39 do you not even have other processes sharing that memory map executing simultanously for which you need an ipc lock? 15:40:57 no 15:41:04 i guess it would be more eso if i did 15:41:10 is this the kind of wasteful last century program that has a complete copy of its code allocated for just a single thread of execution? does your wood-powered hospital submarine waste its oil like it was last century too? 15:44:27 let's go with 'yes' 15:57:13 Guys 15:57:28 If I were to try to find some PC speaker music from some old game 15:57:54 Can I do it by just looking at the binary for the opcodes of "send shit to the PC speaker" 15:58:07 And see what happens 15:59:17 (Or maybe with a disassembler to be more readable) 16:01:58 there are no such opcodes. the pc speaker is driven by a programmable timer, which can be programmed via a couple of IO ports ... http://wiki.osdev.org/PC_Speaker may be useful 16:02:30 I am aware, yes 16:02:59 http://www.intel-assembler.it/portale/5/make-sound-from-the-speaker-in-assembly/8255-8255-8284-asm-program-example.asp 16:03:07 This is a pretty good description of it 16:04:52 Still I assume you cound find in a binary the "send to port 61H" parts 16:04:59 And maybe find the actual music from there 16:05:16 (though I guess it might be a procedure making it a bit more complicated) 16:05:35 -!- adu has joined. 16:06:25 dosbox has some debugging features 16:07:11 -!- adu has quit (Client Quit). 16:10:06 -!- S1_afk has changed nick to S1. 16:11:36 boily: I made you a thing 16:11:57 mrhmouse: what is this mysterious thing you made at me? 16:12:02 `ello boily 16:12:04 belloily 16:12:15 oh. oooooooh. 16:12:24 * boily grins :D 16:15:37 `ello mrhmouse 16:15:39 mrhmellouse 16:19:50 `ello kmc 16:19:52 kmcello 16:21:03 it has a few basic situations that it checks for, and then it falls back to "Hello, !". 16:22:16 Although maybe I should have it output similarly to `thanks. "Hello, boily. belloily." 16:47:47 but if you thankify the ello, it'll remove its charm! 16:48:38 <`^_^v> is there any list of "famous" PL problems like expression, samefringe, etc 16:49:03 rosettacode? PL shootout on alioth? 16:51:25 <`^_^v> i feel like rosetta code is mostly algorithms that can have different implementations based on the language, but don't really highlight the difficulty of a problem resulting from the languages design decisions, if that makes sense 16:56:47 `ello nooodl 16:56:49 nellooodl 16:57:19 `run cat bin/ello 16:57:21 ​#!/usr/bin/env node \ (function() { \ var consonant_then_o, ends_with_consonant, ends_with_e, name, starts_with_o; \ \ name = process.argv[2]; \ \ if (!(name != null ? name.length : void 0)) { \ console.log('Usage: ello '); \ process.exit(); \ } \ \ ends_with_e = /(.*)(e)$/i; \ \ consonant_then_o = /(.*)([bcdfghjklm 16:57:45 yikes javascript 16:58:24 esoteric ;) 16:59:50 -!- Phantom_Hoover has joined. 17:08:56 -!- S1 has changed nick to S1_afk. 17:13:11 nooodl: what's wrong with JavaScript? :P 17:20:47 Salaam aleikum 17:20:53 Woops 17:20:55 <`^_^v> prototypal inheritance is so 1990s 17:20:55 Wrong window 17:33:14 so meanwhile the first draft of the wolfram language documentation is up: http://reference.wolfram.com/language/ 17:33:19 it's mathematica 17:33:25 like it's literally mathematica 17:34:57 -!- S1_afk has changed nick to S1. 17:41:52 Phantom_Hoover, it's mathematica but named after Wolfram 17:42:26 he makes sure to call it Wolfram Mathematica when he can get away with it 17:42:53 Maybe he was saying "Wolfram/Mathematica" 17:42:59 like some say "GNU/Linux" 17:43:09 http://reference.wolfram.com/language/guide/WebOperations.html 17:43:22 whoops, looks like something got past the search-and-replace 17:43:24 (I kind of want a linux distro with no GNU components, just to piss off Stallman) 17:43:44 those exist i think? but probably not on the desktp 17:43:46 *deskto 17:43:48 *desktop 17:44:31 I meant a desktop one, yeah 17:46:04 -!- FreeFull has joined. 17:48:10 Taneb: that would be difficult 17:52:40 what you should do is have every contributor listed in the name rather than just GNU 17:55:04 when it's cold and rainy outside, nothing beats a good plate of random steamy italian food. 18:02:36 -!- Bike has quit (Ping timeout: 246 seconds). 18:10:08 -!- Bike has joined. 18:11:40 -!- Taneb has quit (Ping timeout: 245 seconds). 18:18:06 -!- Taneb has joined. 18:25:21 -!- Bike has quit (Ping timeout: 241 seconds). 18:26:48 sudden random interrogation: what happened to jsvine and his II? 18:29:13 ¿jsvine? 18:29:30 ¿II? 18:29:37 nobody knows 18:29:42 `seen jsvine 18:29:47 not lately; try `seen jsvine ever 18:29:54 `seen jsvine ever 18:30:01 2013-08-05 21:08:56: Bike: you might like this: https://github.com/dwillis/post_haste 18:30:49 i wonder if bike liked it 18:31:05 -!- Bike has joined. 18:31:55 -!- Taneb has quit (Ping timeout: 272 seconds). 18:39:55 mrhmouse: Infamous Interview. 18:40:14 Bike, 2013-08-05 21:08:56: Bike: you might like this: https://github.com/dwillis/post_haste 18:40:14 i wonder if bike liked it 18:41:10 i don't remember august 18:43:28 August was like forever ago 18:43:34 even HackEgo seems to think so 18:45:03 fungot: how many evers is August for you? 18:45:03 boily: ' not your fault you've moved into a city full of giants,' said detritus, stoically. ' i see here where it contains a number of surprised animals stared down at him. 18:45:34 fungot: pratchett style today, eh? and indeed, it ain't my problem. besides, giants live Downtown, and I don't. 18:45:35 boily: " i suppose it makes sense anyway. there's only so much more clearly... wondering about going in and out of the window by their ankles 18:47:11 boring fungot style imo 18:47:11 FireFly: oats gave up and made a noise like a mouse blowing fnord, and eight, and a couple of ugly things were coiled up in the darkness, found the greasy pilings of a jetty, and clung to them, we're something that might have looked like part of the background hum of the castle mews. there was a question about music. power found its way out. 18:47:44 `style fungot 18:47:44 FireFly: 45. file://localhost/ mnt/ space/ media/ books/ 1000+sci-fi%20books/%5bebooks%5d%201000+%20sciencefiction%20%26%20fantasy%20novels%20%28.lit%20forma/ pratchett%2c%20terry/ text/ 19/ fnord 18:47:45 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: style: not found 18:47:52 ^style fungot 18:47:52 Selected style: fungot (What I've said myself) 18:48:00 whoa, whoa, that shit's illegal!! 18:48:31 fungot: I didn't know you're a pirate 18:48:31 FireFly: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp 18:48:59 Is this a sign? I think fungot wasn't content with my choice of style 18:48:59 FireFly: so, let's say i call them mindless games. if we hit every stupid person, any person going, tough one. if we solve it,... i know... 18:49:22 fungot's getting sinister 18:49:22 Phantom_Hoover: no, it's not. it's more complex than that. read the code.) good stuff 18:49:39 sorry fungot i've underestimated the depths of your character 18:49:39 Phantom_Hoover: to, uhhh.... like nuns in the street, and has not named a programming language... as it's pretty difficult to get computers, but i think they can keep their bullsh*t straight.) 18:50:07 fungot: your code *is* good stuff, though 18:50:07 FireFly: or is it just me, or i: yet, you rogue! fnord fnord --user:protiousgeorge ( user talk:protioustalk) 01:44, 8 september. the officials of the european union's number, and can be extended by nesting them ( having one function call. if one is older. see http://okmij.org/ ftp/ papers/ lagarias/ paper/ html/ fnord 18:50:51 I have a dream. I dream that someday fungot will balance his parenthesises. 18:50:52 boily: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube ( some youtube comments) 18:51:07 Your dream came true 18:51:18 fungot: thungot. 18:51:18 boily: am i that much bad. take up, boy; open't. so, now go with, do miscarrie, thou had'st bin resolute pompey 18:59:51 -!- S1 has left. 19:03:17 hoily! 19:03:27 bonjoily! 19:03:38 I'd like to watch a fungottian version of Julius Caesar 19:03:38 mrhmouse: and is one thing which you might want is broken" archives. even less chance. i called " o" in " the other side has. you came through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through and through 19:04:15 i love it when it gets stuck in loops 19:05:08 ^style youtube 19:05:08 Selected style: youtube (Some YouTube comments) 19:05:12 fungot is demonstrating Pollard's rho method? 19:05:12 int-e: but that is so funny to read my previous post? again: no a320 has ever flown completely by computer and fully automated, there for taking him into the forest at over 200mph? wikipedia should not be allowed to show the ' tenor' roles... 19:05:35 quintopia: hintopia! before you ask, no package yet. 19:05:46 `ello me 19:05:47 mello 19:05:48 i wasn't even thinking of asking 19:06:05 `ello quintopia 19:06:07 quintellopia 19:06:16 clever! 19:07:26 but I want your package! 19:08:18 i'm not in charge of that! talk to the postal service! 19:08:43 (unless you mean the other one. in which case, ... talk to "the postal service") 19:11:29 -!- s_o_l has joined. 19:11:43 -!- s_o_l has left ("Leaving"). 19:12:57 ah, the joy of having to go through USPS and Postes Canada... 19:13:06 Hurray, got Flat Assembler to work! 19:13:08 I printed an h! 19:13:11 (yes, I meant the other other one.) 19:13:30 Though I had to go to dosbox 19:13:42 Apparently windows 64 bits is a bit more finnicky 19:15:41 yay, I can still do *that* ... mov al, 68h; int 29h; int 0x20h 19:15:52 eh, 0x20 -> 20h 19:16:00 and hh -> h 19:17:09 I incremented the register and printed it 19:17:13 And now it says hi :o 19:18:07 are your brainfscking your helloworld through assembly by hand? that's nice :D 19:20:56 Well I am lurnin' 19:21:20 -!- muskrat has joined. 19:21:27 -!- muskrat has left. 19:22:33 and what on earth where they thinking when they decided to use $ as a terminator for strings... http://www.ctyme.com/intr/rb-2562.htm 19:23:02 (maybe they didn't appreciate money back then? :) ) 19:24:09 how do you print an '$', then? 19:24:54 I should link to this copy, less infested by banners (but still some stuff from amazon. sigh. the internet is going to hell.). http://www.delorie.com/djgpp/doc/rbinter/id/73/25.html 19:25:51 boily: you can print single characters or use proper file IO: http://www.delorie.com/djgpp/doc/rbinter/id/02/28.html 19:26:18 (0 is stdin and 1 is stdout, I wonder where they got that from ;-) ) 19:32:26 I have multiple aggressive adblocking and privacy-preserving extensions installed. 19:33:01 BX is on how many bytes? 19:34:10 a 16 bit register 19:35:15 Or two 8 bit ones 19:35:20 BH and BL 19:35:35 Or half a 32-bit one, or one quarter of a 64-bit one. 19:40:29 so, at most 65536 open files at the same time. 19:40:37 (well, minus stdin, out and err) 19:45:31 you'll run out of memory first 19:46:11 Which one is the 32 bit, EBX I think? 19:46:17 And RBX for 64? 19:47:15 Yes. 19:47:20 Hah, I forgot that. CONFIG.SYS had a FILES directive for the number of files that could be opened at once; typical values would be 20 to 40. 19:47:50 (keep in mind that as a rule, only one process would have files open at a time. so that's actually plenty.) 19:53:50 FILES=255 19:53:56 (It doesn't go any higher.) 19:54:55 but that eats kilobytes of memory! 19:57:07 -!- ais523 has joined. 20:01:10 mmm.. kilobytes... 20:06:41 -!- Bike has quit (Ping timeout: 252 seconds). 20:11:58 -!- Bike has joined. 20:13:51 I have FILES=80 in my CONFIG.SYS, it seems. 20:14:00 FILES=80 STACKS=9,256 20:14:27 Oh, wait; there's FILES=35 for some other menu options. 20:14:32 -!- faryad has joined. 20:17:10 -!- faryad has quit. 20:20:20 fizzie: you still have a config.sys? 20:20:32 people here have weird, weird setups. 20:20:57 @tell zzo38 you are the weirdest. 20:20:58 Consider it noted. 20:21:34 ais523: I have one too in my bochs dos install. I have to play commander keen somehow. 20:21:47 ais523: It's in ~/archive/backup/older/colin/old/misc_install/4dos/config.sys, so it's not exactly... active... 20:21:57 fair enough 20:22:10 colin? 20:22:12 * ais523 runs locate config.sys 20:22:19 I guess colin is a hostname 20:22:24 boily: A former hostname, indeed. 20:22:33 well, I might be able to play it without a config.sys in dosbox, technically, but I run a real ms-dos in bochs more often 20:22:54 I use dosbox only for games that don't run under bochs 20:23:42 I should perhaps do some directory cleaning some day. 20:24:01 As an illustrative example, there's the directory ~/__UBUNTU__/_MUST_SORT_/momusspace-before-crash/mnt/_NSA_MOVE_/music_unsorted/random/old/unsorted/ that has some music in it. 20:24:47 ais: in fact, I also have a smaller bochs install that I wired up to irc and might be thematically approperiate for this channel: 20:24:56 btw, I figured out what's up with Unity; it's trying to become Google Desktop 20:25:06 you can run edlin in it to edit files, then bcc to compile C and run the executables 20:25:07 which explains why people are confused 20:25:12 so it can serve as an evalbot 20:25:16 b_jonas: wow, I used to use bcc 20:25:17 I guess /etc/dosemu/freedos/config.sys doesn't really count. 20:25:35 I can show it if you want but it's a bit verbose so probably not on this channel 20:25:51 (I would have to dig out the HD image from a previous PC) 20:25:56 there's #esoteric-blah for things that are appropriate here except too verbose 20:25:59 but it hasn't been used for ages 20:26:03 hi b_jonas 20:26:07 and so I doubt anyone's there 20:27:27 if you want to try it, just tell me so 20:28:02 evalbot? HackEgo is good enough for me... 20:28:27 but this runs a full OS where you have root rights 20:28:41 there's an even more off-topic channel than #esoteric? wooooah, duuuuude... 20:28:44 still sounds like hackego 20:29:09 theoretically you can even install a new OS on it and reboot, all through irc, only you want a very small OS because it's not connected to the internet so you have to transmit all the files through irc 20:29:41 "not connected to the internet" haha 20:30:17 (no internet protocol, I got it, but it's still a funny claim when you can talk to it via IRC) 20:30:48 technically, IRC would work without being part of the public Internet, despite the "Internet" in its name 20:30:52 no, it's not no internet protocol 20:30:58 it's that the virtual machine doesn't have a net connection 20:31:01 Usenet used to not be part of the public Internet at all 20:31:08 only a serial console which a wrapper connects to irc 20:31:13 although nowadays nearly always goes over the Internet 20:31:25 there's probably some Usenet-only cable still keeping it connected somewhere 20:32:53 in theory you could install a linux on the vm and use the same wrapper, configured to talk through serial console, and it would still not have net access 20:34:22 Ah, but if you set it to talk slirp or something over the IRC to another system that's configured to route for it. 20:34:29 Then you could argue it suddely has net access. 20:34:33 then the other system is proxying for it 20:34:36 so it only has proxy access 20:34:55 fizzie: yes, only the bandwidth would be really slow 20:35:03 That's not any different from a carrier who does NAT for all their customers, and that's still called "net access". 20:35:20 sure, but you don't need net access 20:35:31 you could just directly type an uuencoded file through the serial console 20:35:52 but you'd be limited in bandwidth seriously 20:35:55 so it's not worth 20:36:18 It's a matter of principle. 20:36:22 if you wanted to transmit large files, it would be easier to convince me to give you some kind of direct access outside of irc, or run the machine yourself, or something 20:36:26 sure 20:37:56 fungot: Do you consider yourself to have net access? 20:37:56 fizzie: yes, pilots on board...there were 136 people on board. the first modern warfare(which i think his face. well, atleast in tucson, arizona. during the cold war. 20:38:54 hmm, now I have an urge to show that bot here and get kicked for flood 20:39:48 b_jonas: your bot couldn't be as floody as mine. let's have a duel! 20:40:01 boily: ok, on what channel? 20:40:21 b_jonas: esoteric-blah. 20:40:25 boily: #buubot ? that channel likes floody bots 20:40:43 buubot? 20:40:48 #esoteric-blah then 20:43:41 -!- genesisp31011 has joined. 20:44:30 -!- genesisp31011 has left. 20:46:53 Woo 20:46:58 I made a function to display a number 20:47:20 good job. 20:48:37 -!- MindlessDrone has quit (Quit: MindlessDrone). 20:48:57 -!- oerjan has joined. 20:55:21 Wrong window <-- in which Slereah accidentally reveals his al-qaeda membership. 20:55:32 Well it was for #generalrelativity 20:55:40 (It's a secret Al Qaeda front) 20:55:41 (convert 0 <= al <= 15 to 0123456789ABCDEF ASCII:) cmp al, 10; sbb al, 69h; das 20:55:54 We discuss the word of the Imam Al Bert 20:57:23 gener al-relativity 21:02:11 `ello relativity 21:02:13 Hello, relativity! 21:03:06 int-e: yeah, it falls back to a simple hello when it can't mangle the name nicely.. Any ideas for how to mangle "relativity"? 21:03:33 I was expecting something like rello-ativity 21:03:38 `ello bike 21:03:40 bikello 21:03:47 relatello 21:03:59 `ello int-e 21:04:01 int-ello 21:04:12 `ello lambdabot 21:04:14 lambdabellot 21:04:20 int-e: I could probably have it look for el+ 21:05:40 or maybe el+[aeiouy]+, and have it output "rellotivity" 21:07:23 `ello shachaf 21:07:25 shachafello 21:07:37 `ello cello 21:07:39 cellello 21:08:13 `ello kmc 21:08:15 kmcello 21:08:38 `ello fungot 21:08:38 FireFly: is this funny shit. unless they pull off a level, really, i dont now how too write it in the programation, the crew at the station, then... shit, we saw survivors, later we saw captain covered with blood after the game- the preview? 21:08:40 fungellot 21:09:06 ^style 21:09:07 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube* 21:09:18 hmm… youtube comments are no more 21:09:24 but they live on through fungot 21:09:24 ais523: actually, laminarwing, test planes with airline colors are not like im writing a fucking freak. 21:09:43 fungot: wow v. realistic 21:09:43 shachaf: get the facts that are part 121 certified by both the game was hysterical. 21:10:11 yeah shachaf get the facts. fungot is 121 certified for realistic youtube comment impressions. 21:10:11 FireFly: here's the short haired one from earlier scenes on trailer. 21:10:22 v. hysterical 21:13:27 It's kind of fixated on planes in this mode. 21:14:21 fungot: tell me about the astral plane 21:14:21 shachaf: don't be discouraged from flying again. 21:15:14 `ello relativity 21:15:15 rellotivity 21:15:49 `help 21:15:50 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 21:16:41 fungot: I've never flown before. What should I expect from it? 21:16:41 mrhmouse: no one was aboard this flight had a little over 3,000. granted, any crash is unacceptable but i just don't want to land xd 21:17:09 fungot: You've got to land at some point. 21:17:09 fizzie: to any expert, what is the first unmanned, computer didn't ' try to see people killed. 21:17:19 Well, that's comforting. 21:17:36 Any people-killing was apparently purely accidental. 21:17:52 fungot didn't _mean_ to kill people. it just didn't want to land. 21:17:52 mrhmouse: whats that " these angels" are the old her better when she saw me jizz in my pants 21:18:38 `perl -e 'print "\u\c*\c5\c3\c4\c`\c!\c.\c/\c4\c(\c%\c2 \u\c0\c%\c2\c,\c`\c(\c!c\c+\c%\c2\cJ"' 21:18:40 No output. 21:18:45 huh? 21:18:50 try with `run 21:18:54 `run perl -e 'print "\u\c*\c5\c3\c4\c`\c!\c.\c/\c4\c(\c%\c2 \u\c0\c%\c2\c,\c`\c(\c!c\c+\c%\c2\cJ"' 21:18:55 Just another Perl hacker 21:19:01 better, thanks 21:19:24 "`command blah bluh bleh" runs `command` with the single argument that is the literal string "blah bluh bleh" 21:19:34 whereas `run does sh 21:19:42 ah, I see 21:20:03 `run cat /proc/$$/cmdline 21:20:05 cat./proc/285/cmdline. 21:21:03 `run cat /proc/$PPID/cmdline 21:21:05 sh.-c.'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'bash' '-c' 'cat /proc/$PPID/cmdline' | cat. 21:21:08 `perl -eeval for'for$=(2..27){$*=0;$*=($**$=+ord)%127,for/./gs;print+chr$*}'."\n#ig\\tq\24^-/v\c^l,\23\$%\3\ta2\tk\b\c\)\x18 -- ambrus" 21:21:09 ​$* is no longer supported at (eval 1) line 1. \ Just another Perl hacker, 21:21:31 works 21:22:00 ah, I have a variant that's warning-free in newer perls 21:22:28 `perl -eeval for"for\$^(2..27){\$==0;\$==(\$=*\$^+ord)%127,for/./gs;print+chr\$=}\n#P*h!9= Nn[\c\9\0*.:\eUt\17%j{dY\31 -- ambrus" 21:22:29 Just another Perl hacker, 21:22:30 It's OK, you don't have to type it. 21:22:34 We believe you. 21:23:29 this bot msgs the answer without any prefix. I like that, that's great for creating a loop between two bots. 21:23:42 Not quite true 21:24:01 I think it inserts ^O before the reply, precisely to protect against that (and unwanted CTCPs) 21:24:12 ah, nice 21:24:30 I didn't know about that trick 21:24:39 -!- shachaf has left. 21:24:51 I mean, the normal method is to just have bots send NOTICEs instead of msgs, but few people do that 21:25:45 Hm 21:25:49 -!- evalj has joined. 21:25:50 It's a non-breaking space it inserts, isn't it? 21:25:55 Er, zero-width space. 21:25:56 fizzie: no 21:25:59 um 21:26:00 wait 21:26:02 let me try 21:26:02 The assembler is bitching if I try mov es, ip 21:26:16 Is it not the same size, or is it because it's the instruction pointer? 21:26:18 `echo division 21:26:19 division 21:26:26 Slereah: there's no such instruction 21:26:29 you write to the instruction pointer with jmp 21:26:37 whoa, it doesn't actually insert anything! 21:26:43 Yes, but I'm not writing in IP 21:26:48 I'm reading its value 21:26:53 b_jonas: It's only inserted when the reply starts with something that could plausibly be a command prefix. 21:26:59 And saving it for later 21:27:00 Slereah: still, there's just no such instruction as that on x86 21:27:02 `echo ^a 21:27:04 ​^a 21:27:05 Hm 21:27:14 How do I keep track of where I left off then? 21:27:16 ah 21:27:17 `echo .foo 21:27:19 ​.foo 21:27:26 Slereah: with the call insn 21:27:27 `unidecode > ​.f 21:27:28 ​[U+003E GREATER-THAN SIGN] [U+0020 SPACE] [U+200B ZERO WIDTH SPACE] [U+002E FULL STOP] [U+0066 LATIN SMALL LETTER F] 21:27:37 U+200B ZERO WIDTH SPACE, apparently. 21:27:41 `echo ] 39$'x' 21:27:42 That's Numberwang! 21:27:43 ​] 39$'x' 21:27:47 insn? 21:27:51 instruction 21:27:59 `echo evalj: 39$'x' 21:28:01 evalj: 39$'x' 21:28:01 HackEgo: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 21:28:31 `echo evalj: '`echo hi' 21:28:32 "Pushes Instruction Pointer (and Code Segment for far calls) onto stack and loads Instruction Pointer with the address of proc-name." 21:28:33 evalj: '`echo hi' 21:28:33 HackEgo: `echo hi 21:28:35 Ah yes, sounds like it 21:29:28 anyway, yes, it looks like it inserts some non-ascii stuff before some prefixes 21:29:40 and evalj doesn't like that before its short prefix 21:30:12 `echo ~help 21:30:13 ​~help 21:30:19 too smart 21:30:28 Everything outside of [a-z] and maybe digits, from what I recall. 21:30:31 To jump back, can I pop the stack into es and do jmp es? 21:30:43 Slereah: No, but you can "ret". 21:31:14 I'm a bit disappointed 21:31:14 You could also pop the stack to some general-purpose register (not a segment one) and jmp to it, but that sounds very silly. 21:31:24 Slereah: this is what arch exactly? x86_16, x86_32, or x86_64? 21:31:30 I was expecting assembly to be a bit more arcane 21:31:39 Currently using DOSBOX for it 21:31:47 So I assume it is 16? 21:31:50 32 maybe 21:32:05 16 or 32, depending. 21:32:14 if you want to treat ip as a general register, get an ARM or MIPS or whichever arch that is that does that 21:32:18 but I think that's crazy 21:32:30 it's a bad idea for an architecture to do that 21:32:32 Well it is #esoteric 21:32:35 sure 21:32:40 ARM no longer does that in AArch64, either. 21:32:50 fizzie: I see 21:32:51 (No more combined multi-register pop and return.) 21:33:08 does it have jump instructions then? 21:33:22 Are there any "real" architectures that treat pc as a general register? 21:33:30 (and encode jumps as arithmetic on pc) 21:33:53 I think it would be pretty neat to be able to write some self modifying code 21:34:01 does 32-bit ARM do that? 21:34:10 I remember seeing code with pc in it and stuff 21:34:29 Fiora: I think that's arguable. I mean, it does have separate jump instructions too. 21:34:31 i thought the notion of a program counter was oudatd. 21:34:52 huh. so like, redundant instructions? is there a reason for that? 21:34:53 Fiora: (With bigger relative offsets than just usual immediate arithmetic.) 21:34:56 ohhhhh 21:34:56 well, x86_64 can read ip, though not as a general register, 21:35:02 that makes sense. 21:35:09 they added that so you can write position independent code 21:35:17 but it can't just write ip of course 21:35:20 you need jumps for that 21:35:48 Fiora: Also conditional jumps even in modes that don't have condition bits for all instructions. 21:35:50 however, x86_32 didn't have that 21:36:07 Slereah: so what? you can still write self-modifying code with jumps 21:36:40 Slereah: if you want to do so, I recommend overwriting the instruction byte of a conditional jump with the opposite condition 21:36:49 thus dynamically negating a jump 21:37:07 recommend as in #esoteric obviously 21:38:19 Fiora: What it didn't have (I think) is a separate RET instruction, but I guess that's pretty common on architectures with a link register. 21:40:32 Bike: you'd get that impression from Knuth, yeah 21:40:51 but a program counter is really just a different name for an instruction pointer, or for the * register as Knuth calls it 21:40:57 well, he doesn't call it a register 21:41:15 i meant because of ooe and stuff. 21:41:23 ooe? 21:41:23 been a while since i've read taocp1, unfortunately 21:41:27 out of order execution 21:41:34 um so? 21:41:47 ooe: Out Of Echaracter. 21:41:59 So things aren't as simple as one instruction then another instruction. 21:42:03 the semantics is still given by serial execution with an ip, except maybe with some modification 21:42:21 it's not like the cpu can just randomly pick instructions from anywhere and execute them 21:42:42 I mean, some obfuscations play with that, but real cpus don't 21:42:56 there's that ioccc winner 21:44:25 `perl sub h($){($_=$_[0]=pack b208,0 .unpack b362,$_[0])=~tr/\0-\c?/\0/;tr/\0/\377/c;$_}do{$y=$r;$v=join$r='',a..z;$r^=h$r&"\217"x26^h$v&$y for 0..6;$r^=$_ x26}for"k6sNP2B}({ambrusLB%Ox)Z]n0*zf\0I3"=~/./g;print$r 21:44:26 Can't open perl script "sub h($){($_=$_[0]=pack b208,0 .unpack b362,$_[0])=~tr/\0-\c?/\0/;tr/\0/\377/c;$_}do{$y=$r;$v=join$r='',a..z;$r^=h$r&"\217"x26^h$v&$y for 0..6;$r^=$_ x26}for"k6sNP2B}({ambrusLB%Ox)Z]n0*zf\0I3"=~/./g;print$r": No such file or directory 21:44:35 `perl -esub h($){($_=$_[0]=pack b208,0 .unpack b362,$_[0])=~tr/\0-\c?/\0/;tr/\0/\377/c;$_}do{$y=$r;$v=join$r='',a..z;$r^=h$r&"\217"x26^h$v&$y for 0..6;$r^=$_ x26}for"k6sNP2B}({ambrusLB%Ox)Z]n0*zf\0I3"=~/./g;print$r 21:44:36 Just another Perl hacker, 21:44:39 duh 21:44:54 what the fungot is that linënoise... 21:44:54 boily: and if there were many passengers. 21:45:03 boily: http://www.perlmonks.com/?node_id=863110 21:45:03 fungot: then it'd have crashed. 21:45:04 boily: the flying club which staged the show 21:45:06 many, many passengers. (fungöt) 21:45:09 good. 21:45:24 b_jonas: ain't clicking on that. I swore off perlmonks-related drugs years ago. 21:45:44 boily: evaluates a polynomial over GF(128) 21:45:59 that long double-quoted string encodes the polynomial 21:46:21 ... 21:46:25 ........... 21:46:31 /clear 21:46:33 /abort 21:46:37 it has a funny story 21:46:38 /flee-in-abject-terror 21:48:14 ages ago I wrote a perl obfu that evaluates a polynomial over GF(127), which is of course much easier. then martin reinvented that idea and wrote his version. 21:48:45 then I said that his obfu was better than mine, but would be even more amazing if it did computations over GF(128). 21:49:32 he took that seriously and wrote such an obfu, which works quite differently from mine: it computes a table of powers of some primitive root and uses that as a log table to do the multiplications. 21:49:51 I had to one-up his obfu and so wrote this GF(128) obfu which is better 21:50:06 it looks nicer if I don't have to paste it in one irc line of course 21:50:51 “looks better”. yeah right. it still disturbs me. 21:50:55 the nice part is that the obfu is branded in that you can't just strip the "ambrus" part from it and replace it with your name without understanding the obfu 21:51:09 http://pastebin.com/raw.php?i=ucw6tpJa 21:51:15 Goddamn this took forever to write 21:51:16 because that's part of the polynomial 21:51:52 if it weren't, I'd only have felt dejected. 21:52:31 Slereah: oh, shiny! 21:52:42 Now to write a loop to print all the numbers! 21:52:45 255 to 0 21:53:28 Oh great 21:53:33 Loop uses cx 21:53:47 I'd better rewrite the cx stuff into dx 21:53:54 Slereah: modify it to write to stdout and you can try it with that dos machine hooked up to irc that I just showed on #esoteric-blah 21:54:09 Slereah: it even has an assembler installed I think 21:54:24 Isn't that a lot to put in IRC 21:54:33 not really 21:54:48 strip the comments and I guess it fits in a couple of irc lines 21:55:07 plus, that's why it's -blah channel, we can flood there 21:56:37 "The "label" operand must be within -128 or 127 bytes of the instruction following the loop instruction." 21:56:38 Whaaat 21:56:52 Goddamn 21:56:58 Well fortunately the code is small enough 21:57:00 -!- boily has quit (Quit: GAÀÁẢẠÃ!). 21:57:03 -!- metasepia has quit (Remote host closed the connection). 21:57:51 you can always do things like loop foo -> loop x; jmp y; x: jmp foo; y: ... though you're probably better off with dec cx; jnz foo. 21:58:11 Slereah: really, modify it to call dos function 40h and it should work in termbot 21:58:11 (but loop preserves flags, so that's not always an option) 21:58:36 int-e: why bother? on a 286 (or is it 386) onward you can just use the long form conditionals 21:58:48 b_jonas: not with 'loop'. 21:58:48 which take a wider offset 21:58:51 ah, loop 21:58:52 ... 21:58:53 ok 21:59:11 b_jonas: see also the part after the ellipsis :) 21:59:23 ah, I see 21:59:34 anyway, this code is so short it won't even come up 22:00:35 https://dl.dropboxusercontent.com/u/19940612/loop.jpg 22:00:37 Trippy 22:00:45 I guess "line feed" doesn't mean the same thing here 22:01:35 Slereah: show us the source when it's ok so we can try it in evalbot! 22:01:44 you need CR/LF (ASCII 13, 10) 22:01:54 Damn you windows! 22:02:00 DOS 22:02:04 winDOS 22:02:08 actually, old line printers did the same 22:02:27 Yes, but this is not a printer 22:02:33 it's even in the name, LF is a line feed, cr is a carriage return 22:02:41 I'm aware, yes 22:02:42 it's a terminal, which emulates a printer :) 22:02:46 Old typewriter terminology 22:03:14 I think you can skip the cr in the irc bot wrapper 22:03:24 I'm not quite sure 22:03:31 cr lf is probably better 22:03:33 more portable 22:04:15 Portable DOS code. 22:04:22 int-e: exactly 22:04:25 http://pastebin.com/hp1akjtk 22:04:27 There you go 22:04:28 It works 22:04:33 int-e: come on, windows will support it for years after dos 22:05:09 Slereah: great, but like I said, modify it to use dos function 40h so it writes to stdout, or else the output won't go through irc 22:05:29 How is it called? 22:05:39 wait, let me check the manual 22:05:47 int 40h, printing al? 22:05:54 no 22:06:42 http://www.delorie.com/djgpp/doc/rbinter/id/69/25.html is probably more convenient (and should still go through the file handle properly) 22:07:12 int 21h because it's a dos function, ah=40h, bx=1 is the file handle, cx= the number of bytes, ds:dx=address of bytes 22:07:24 like the write call for unix 22:07:29 Fuck 22:07:33 it uses dx 22:07:38 But dx is required D: 22:07:39 so? push and pop it 22:07:43 Ah yes 22:07:46 The stackin' 22:07:53 honestly, use mov ah,06h; mov dl,char; int 21h 22:08:08 Well I need to keep track of dx 22:08:12 saves you setting up a memory buffer 22:08:14 It contains important things 22:08:16 push dx; pop dx 22:08:21 Will do 22:08:26 and you can modify dx inbetween 22:08:27 int-e: does that go to stdout? I see 22:09:43 I guess I'm too used to unix to think of any way other than write(2) to write stuff 22:10:05 printnum: 22:10:06 add al, 0x30 22:10:06 push dx 22:10:06 mov dl, al 22:10:06 mov ah, 0x06 22:10:06 int 0x21 22:10:06 pop dx 22:10:07 ret 22:10:08 All good? 22:10:35 Slereah: let's hope. and the same for the crlf too I guess 22:10:40 yep 22:12:20 you could use the bios serial port service too, but then you'd get a program that works only on the serial console, which would suck. let's use dos to hide this abstraction. 22:13:30 Is assembler sensitive to linefeeds? 22:13:36 Or can I put it in a big line 22:14:09 Some of them have a command-separating character that lets you put multiple things on a line. (Some of them don't.) 22:14:35 http://pastebin.com/81tMfjaC < it is this anyway, if you want the 21h version 22:18:41 it is sensitive 22:18:47 but you can put multiple lines in an irc line 22:18:57 I'll show in a few minutes 22:20:24 So is jmp 0xabcd equivalent to mov ip, 0xabcd 22:22:17 -!- Sprocklem has joined. 22:25:43 have you ever been able to mov into ip 22:25:55 Also if you can't get the value of IP, how does the processor recall the value where it left when using CALL? 22:26:20 the processor can do things you can't, so to speak 22:26:45 Are things like CALL actual instructions? 22:26:51 yes. 22:26:51 I thought it was assembler shortcuts 22:27:07 it might be on some other architecture 22:27:20 Slereah: often it's a shortcut for a range of CALL instructions 22:27:26 like, CALL NEAR and CALL FAR, or whatever 22:27:49 Oh wait 22:27:55 It pushes the IP on the stack 22:28:03 So I guess you can get the IP 22:28:06 Like 22:28:10 CALL whatever 22:28:16 whatever: 22:28:25 on x86, call is an actual instruction. you can read the IP using something like call next; next: pop ax (this can be useful because 'call' uses relative addressing. stuff like that is actually used in x86 dynamically linked libraries) 22:28:27 "call next; next: pop bx" is the conventional "trick", yes. 22:28:28 pop ax 22:29:12 ais523: CALL ABSOLUTE(VARPTR(a%(0))) 22:29:45 Even for x86, I should've written "near call" there :) 22:30:12 Slereah: I've used a system where the stack was not in normal memory, and could only be manipulated via call and return instructions 22:30:20 also it was only 8 entries 22:30:20 That's Numberwang! 22:31:02 If you're writing regular, non-position-independent code, you can typically "read the IP" (so to say) by using a special symbol -- often $ or . -- that the assembler replaces with the address of the current instruction, incidentally. 22:32:39 ais523 : Damn you 22:32:46 I won't be denied my IP! 22:32:55 Slereah: ? 22:33:01 that's a really really weird reaction 22:33:05 to lambdabot randomly spouting stuff 22:33:12 it's not even my fault :-( 22:33:19 oh, I see 22:33:22 that's not my fault either 22:33:27 it's the system's 22:33:32 besides, the IP was stored in regular memory 22:33:34 it's my fault, though I'd like to put the blame on chrisdone (on #haskell) 22:33:45 you could assign to it to do a computed goto if you wanted to 22:34:48 seriously, though, I don't like strong maledictions like that when I haven't done anything wrong 22:34:52 (or even when I have, really) 22:35:05 having used a system with a weird stack is not really something to be damned over 22:35:41 Hm 22:35:46 What thing to try out next 22:35:56 I guess some arithmetics 22:36:11 And then 99! 22:36:18 Slereah: seriously, though 22:36:24 it's not nice 22:36:35 literally can't figure out how to negate a bus 22:36:36 What is? 22:36:44 Slereah: damning me over using a weird CPU architecture 22:36:45 pretty sure i'm basically idiot satan 22:36:54 Well it was more of a joke 22:36:55 Slereah: ais has this thing where he reacts to "damn". 22:37:02 I don't really damn people in seriousness 22:37:06 good 22:37:08 Unless be they damn dirty apes 22:37:11 Are you? 22:37:38 I don't think so 22:38:15 -!- lambdabot has quit (Quit: bye, bye, numberwang). 22:39:02 I wonder if there's a shorter way to display a byte 22:39:15 Without resorting to interrupts or such 22:40:48 ais523, fuck you btw 22:41:17 Phantom_Hoover: I don't mind people saying that because it doesn't really make much sense when interpreted literally 22:41:28 thus, it's just an entirely generic insult with no substance 22:41:39 neither does damn 22:41:59 and let's not pretend you have any reason for doing it beyond amusing yourself 22:42:12 -!- lambdabot has joined. 22:42:19 Phantom_Hoover: well I care about language not eroding 22:42:30 if people keep on using words with meanings entirely different from their actual meanings 22:42:35 ais523 22:42:36 eventually communication will become impossible 22:42:39 English isn't eroding 22:42:41 * Bike points and laughs at the prescriptivist 22:42:48 that's called the language evolution that has been happening for thousands of years 22:42:51 Languages don't erode when they're living 22:42:52 -!- mrhmouse has quit (Quit: Leaving.). 22:43:02 i'm seriously so bad at verilog though. 22:43:03 Bike: I formed the possessive of someone's name, that ended with s, via adding just an apostrophe today 22:43:05 i'm the one eroding, here. 22:43:07 miraculously, communication still appears to be possible, despite the frightening lack of prescriptivists thousands of years ago 22:43:09 If you want to see a language erode go to some village in bumfuck siberia where it's spoken by 3 people 22:43:18 and concluded that it was probably correct nowadays, but I felt bad about it 22:43:26 stop worrying about stupid shit 22:43:47 "Reynolds's" is not something anyone would say nowadays, even though they probably would when I was younger 22:43:57 god. 22:44:13 elliott: uh i have no actual evidence that you're not actually speaking french and i just don't know it?? 22:44:25 ais523, modern language, even when correct, is very much incorrect when compared to old english! 22:45:01 Slereah: there's someone from another channel who asks me for help with English from time to time 22:45:14 For instance 22:45:16 it's depressing that English is so complex and inconsistent, it makes it quite hard to work out what is right 22:45:24 Did you know that "pea" is terribly wrong 22:45:27 what does it mean to be "right". 22:45:30 If you know where it comes from 22:45:37 Bike: exactly :-( 22:45:41 What is the definition. Where does English come from. 22:45:42 Slereah's program works in termbot! 22:45:43 yay 22:45:44 the answer is "what people use" 22:45:52 (WHOA) 22:45:56 only irc is throttling it 22:45:59 btw, the nose in smiley thing is just me being pointlessly prescriptivist for no reason ;-) 22:46:06 Slereah++ 22:46:10 Pea is from the latin "pisum' 22:46:11 no you're still annoying 22:46:19 don't do the "just kidding" thing 22:46:23 Which was rendered as "pease" in old english 22:46:25 But 22:46:32 Since it ended in /s/ 22:46:36 People thought it was a plural 22:46:42 And decided that the singular was "pea" 22:46:46 counting down from 255 at IRC speed seems like a fitting use of #esoteric-blah 22:47:06 ais523: yes, especially in assembly 22:47:07 heh 22:47:14 because it would be much easier if we wrote it in c or pascal 22:47:20 b_jonas: what are you using to convert the number to decimal? 22:47:22 in other news i just noticed that a multiplier is also a shifter. 22:47:34 -!- fr0k has joined. 22:47:37 and i can see an engineer's ass crack. 22:47:43 not regular crack, unfortunately. 22:47:47 ais523 : first digit is n/100 22:47:57 -!- fr0k has quit (Client Quit). 22:47:57 Second is (n/10)%10 22:47:59 ah right, I was wondering whether it was done manually 22:48:03 Last is n%10 22:48:07 Slereah: http://int-e.eu/~bf3/tmp/num.nas is what I'd probably write 22:48:33 XORs :o 22:48:39 I will have tto investigate 22:49:24 Wait, what is x XOR x again 22:49:29 0 22:49:30 Isn't it always 0? 22:49:30 zero. 22:49:38 Why is it there? 22:49:42 xor dx,dx is just a byte shorter than mov dx,0 22:49:43 clears the register. 22:49:48 Ah 22:49:53 Faster than mov? 22:49:55 welcome to x86 i guess 22:50:08 probably the same speed 22:50:20 ais523: me? ask Slereah 22:50:21 but I used to optimize for size, so ... 22:50:36 b_jonas: I wasn just asking generally 22:50:39 and I'd already got my answer 22:50:48 I was thanking Slereah for the answer 22:50:57 The xor-clear is still on the list of recommended idioms, IIRC. 22:51:07 ais523: you mean in C or pascal? I wouldn't divide, I'd just call printf or write 22:51:15 the compilers i still use xor clearing, anywho 22:51:44 b_jonas: I was asking what the #esoteric-blah program did, and I'd already got the answer 22:51:56 According to a friend you can do a shorter version with AAM 22:51:57 my statement was explaining that I was happy with the answer 22:52:04 sure, reducing code size saves memory bandwidth, code cache pressure, all that; and the CPUs are smart enough not to intruduce any artificial data dependencies in this case ('dx depends on the previous value of dx') 22:52:12 I see 22:52:32 Bike: There was some scenario where it was still faster. 22:52:34 int-e: actually there's a better reasoning for why using xor dx,dx 22:52:37 int-e: its 22:53:00 it's that the amd64 architecture optmization manual explicitly says that xor is the best way to clear the register 22:53:14 you don't have to guess anything about artificial data dependencies or stuff 22:53:15 "Since zero idioms [like XOR REG, REG] are detected by and removed by the renamer, they have no execution latency," says the Intel optimization manual. 22:53:21 exactly 22:53:29 and zeroing an sse register is similar 22:53:56 XOR, SUB, PXOR/VPXOR, PSUBB/W/D/Q, VPSUBB/W/D/Q, XORPS/PD, VXORPS/PD is the full list. 22:54:02 "Use one of these -- when possible." 22:54:55 fizzie: in that list, does xorps refer to both the sse and mmx insns? 22:55:15 Well, it says XMMREG only, so maybe not MMX. 22:55:31 meh, ignore that 22:55:33 I don't care about mmx 22:55:38 it's obsolate and stupid 22:55:53 -!- Bike_ has joined. 22:56:15 -!- Bike has quit (Disconnected by services). 22:56:20 -!- Bike_ has changed nick to Bike. 22:56:44 Another random tidbit: while "CMP a, 0" and "TEST a, a" produce the same flags, the latter canbe macro-fused more often. 22:57:13 -!- muskrat has joined. 22:57:16 I'm trying to remember what TEST does 22:57:19 what? there's no way they produce the same flag 22:57:19 -!- muskrat has left. 22:57:23 is it AND but don't write the result anywhere? 22:57:24 ais523: Non-writing AND. 22:57:25 ais523: AND but without writing the result 22:57:26 yes 22:57:32 whereas CMP is subtraction that doesn't write the result 22:57:36 i guess this is what kmc means when he talks about writing compiler assembly being easy. 22:57:42 b_jonas: "a - 0" and "a & a" are the same value. 22:57:57 (So they'll produce the same flags.) 22:57:59 IIRC, and CMP a,0 clears the carry flag; test shouldn't. *goes to check memory* 22:58:04 fizzie: yes, but TEST affects the eflags differently I think 22:58:11 int-e: something like that yes 22:58:32 "The OF and CF flags are set to 0." 22:58:33 er, reading compiler assembly being hard, and writing assembly being easy. on x86. 22:58:34 (For TEST.) 22:58:44 Apparently a better solution for the digits is n/100, and AAM n 22:58:47 No I'm wrong. 22:59:08 confused that with inc/dec :) 22:59:30 yeah, TEST clears CF and AF, and leaves AF undefined 23:00:10 whereas CMP a,0 would zero CF and AF and OF I Think 23:00:24 Nobody's going to be testing AF. 23:00:33 but isn't TEST one byte shorter in first place, except maybe for rAX? 23:00:49 I had a snippet above that used AF: cmp al, 10; sbb al, 69h; das 23:00:54 at least one byte 23:01:01 I mean, the CMP needs an immediate 23:01:15 which is an extra byte unless it uses the special forms for AL or RAX 23:01:16 But there's no place for a 'test' in there :) 23:01:49 b_jonas: OF would also be 0. Only AF makes a difference. 23:02:02 -!- nisstyre has joined. 23:02:06 And indeed that flag is hardly ever important. 23:03:22 What does JZ do? 23:03:28 "Jump if Zero". 23:03:29 I find 'jump if zero' 23:03:35 But if what register is zero? 23:03:38 CX? 23:03:38 "jump if zero flag is set" 23:03:40 If the zero flag is set. 23:03:42 Oh 23:03:47 the flag is set by the test instruction. 23:04:18 anyway, good night now 23:04:25 night 23:04:42 (Curiously enough, there is a special instruction for jumping if CX is zero -- JCXZ/JECXZ/JRCXZ.) 23:05:08 "It is set if an arithmetic result is zero, and reset otherwise." 23:05:09 neat 23:07:10 Let's try rewriting a bit my program 23:08:40 -!- evalj has quit (Remote host closed the connection). 23:13:08 Woo 23:13:10 AAM works 23:15:18 -!- ais523 has quit. 23:15:39 -!- ais523 has joined. 23:15:57 -!- ais523 has quit (Client Quit). 23:16:15 -!- ais523 has joined. 23:20:20 my professor used an inconvenient distribution of opcodes and it fills me with rage 23:21:01 it's just practice for x86, I think ;-) 23:21:35 Now that I can print numbers 23:21:43 I will try to see what the IP looks like! 23:21:46 If I can get at it 23:22:05 Is the IP 8 bits or 16 bits? 23:22:22 the only ops are addition, subtraction, increment, and bit parallel shit. you might think it would be convenient to divide one from the other but nooooo 23:22:22 is this IPv1? 23:22:28 -!- nooodl has quit (Quit: Ik ga weg). 23:22:30 Slereah: 256 bytes of addressable code wouldn't be enough or most purposes :) 23:22:31 oh, instruction pointer 23:22:31 it's x86 23:22:34 not internet protocol 23:22:37 *for 23:22:47 on the 8086 CS is 16 bits and IP is 16 bits 23:22:54 and you need both to work out which instruction is executing 23:23:01 Well, I guess printing the last octet will be enough 23:23:05 but the formula is, IIRC, CS*16+IP 23:23:17 so there's much less than 16 actual bits of data there 23:23:22 but we're writing COM files where initially, CS=DS=ES=SS 23:23:27 Just to make sure that the next instruction is indeed that instruction 23:28:20 http://pastebin.com/raw.php?i=u694Agh6 23:28:24 Let's see 23:28:32 I get 203, 210 and 217 23:29:06 In between, there is always 3 instructions 23:29:14 But why 7 23:29:40 7 bytes, presumably. 23:30:02 But why 7 bytes 23:30:03 1 byte pop, 3 bytes for each call 23:30:04 "call test" is 3, "call printint" is another 3, and "pop dx" is 1, at a guess. 23:30:13 Oh, I see 23:30:15 Your disassembler should print the opcode bytes for you. 23:30:35 I guess call test is like 23:30:38 push the address 23:30:44 jump to test 23:30:51 And... somethig something? 23:31:05 That's pretty much it. 23:31:18 Though "push the address" is "push the address of the following instruction". 23:31:25 Ah 23:31:53 But I guess that the CPU has "push the address of the following instruction" as just one opcode? 23:32:12 the whole call thing is one instruction 23:32:28 (1 byte opcode + 2 bytes address) 23:32:51 Ah right, an address is 16 bytes 23:32:56 where the address is relative, so internally rather than "jump to test" it adds that offset to IP. 23:33:53 It is good to know that I can get IP 23:34:00 Once I am good at assembling 23:34:03 It's a CISC architecture. There are amazingly complex instructions with compact encodings. 23:34:08 I can write the Worst Code 23:34:39 in assembly? the competition is fierce 23:35:10 http://www.cs.utah.edu/~elb/folklore/mel.html 23:35:18 writing bad assembly code has been automated :) 23:35:24 heh 23:37:31 "Put *that* in Pascal's pipe and smoke it." 23:37:38 I will have to remember that expression 23:37:42 Slereah: which assembler are you using now? 23:37:46 x86 23:37:50 On the dosbox 23:38:12 nah, I mean to translate the source code 23:38:27 Oh 23:38:30 Flat assembler 23:38:40 wasn't it nasm? 23:38:45 Nope 23:38:51 NASM was giving me lip 23:39:00 Flat assembler does the linking itself 23:39:15 You don't need to do any linking for a .com file. 23:39:28 NASM's "-f bin" is just fine for making those. 23:39:39 Eh too late 23:39:46 Flat assembler works fine now 23:40:21 I like this Mel fellow 23:41:45 nasm -f bin is the default here. 23:41:50 My first week of computin' school was all "Don't try to be smart, write maintanable code!" 23:41:55 huh, it's a weird feeling when the Story of Mel gets linked again and you see all the reactions from people who haven't seen it before 23:41:56 Mel knows the real deal! 23:42:01 It's the default everywhere, I was just being explicit. 23:42:08 Slereah: in assembler? 23:42:14 and Mel-like behaviour is still useful sometimes, but was more useful then 23:42:16 Nah, in general 23:42:35 hehhhhh, teach just described parameters in verilog modules as "like C #defines" 23:42:41 And I'm afraid I'm not that much into computering unfortunately 23:42:41 I agree in general, but it starts by ditching assembler except possibly for very small pieces of low-level code. 23:42:44 i think that right there is why i loathe this language 23:43:03 So I did not hear of this Mel fellow 23:43:19 I mostly know physics anecdotes! 23:43:45 (The important thing about assembly language is to know when not to use it.) 23:44:08 -!- Sgeo has joined. 23:44:20 Well it is certainly not a good idea to use it 23:44:25 But neither is Brainfuck 23:46:04 BF Joust begs to differ 23:46:13 that game would be less fun in other languages, I feel 23:46:21 because it's designed around how brainfuck works 23:46:30 What is BF Joust 23:46:36 (I haven't been there in a while) 23:47:16 http://esolangs.org/wiki/BF_Joust 23:47:28 the most awesome competitive esolang-based game ever 23:47:32 (not that there's much competition) 23:47:46 it's become something of a running pastime for this channel, now and again 23:47:55 !bfjoust rimfall (>)*31 23:47:59 -!- convicinum has joined. 23:48:02 ​Score for int-e_rimfall: 0.0 23:48:33 int-e: what did you expect? 23:48:37 that dies almost as quickly as < 23:48:51 ais523: I expected 0.0 :) 23:48:58 fair enough 23:49:06 obviously we need more competitive crap. 23:49:09 What competition is there except FYB? 23:49:23 -!- convicinum has quit (Client Quit). 23:49:30 !bfjoust thirty (>)*29(+)*100(+.)*50000 23:49:32 i guess dueling fungepointers has probably been thought of 23:49:32 ​Score for ais523_thirty: 0.0 23:49:40 fizzie: there's golf, I guess 23:50:14 Bike: There's vague rumours about "BeGlad" (Befunge Gladiators), which is reportedly built on Befunge-97 of all things. 23:50:29 thirty beats almost everything perfectly on tape length 30, except omnipotence (loses) and zeroer (win+draw) 23:51:08 Wouldn't the Rube language be perfect for game-things? 23:51:41 oh, right 23:51:41 dasklickenklacker 23:51:44 Rubicon 23:51:47 that's awesome too 23:51:59 http://kevan.org/rubicon/ (requires JavaScript) 23:52:04 err, Java 23:52:08 wow, I haven't rubiconned for ages 23:52:23 i'm going to continue thinking of the marathon mod and you can't stop me 23:52:26 Robozzle might almost-count. 23:53:10 !bfjoust just_curious (>)*8(>(+)*96(+.)*128)*21 23:53:13 ​Score for fizzie_just_curious: 5.9 23:53:39 Are there many loopless "serious" BF Joust programs? 23:54:09 fizzie: not many; there was a lock+full tape clear that someone else submitted that did decently 23:54:19 but you get too much benefit from skipping blank cells 23:54:20 Slereah: there are many good reasons to use assembly language... 23:54:47 they aren't situations most programmers encounter often, though 23:55:27 also even if you're not writing assembly, being able to READ it is incredibly useful 23:56:01 for debugging or for seeing how your compiler is optimizing things 23:56:33 (compilers are smart so the solution is usually to change the code to help the compiler, not to rewrite it in assembly) 23:59:10 kmc: the question "how would you optimize this program?" came up in comp.lang.c 23:59:17 I managed to beat both gcc -Os and clang -Os on size with my own asm 23:59:19 ok. xilinx tools detect finite state machines during optimization. i think something has gone very wrong here. 23:59:43 nice :)