←2016-05-12 2016-05-13 2016-05-14→ ↑2016 ↑all
00:00:21 -!- oerjan has set topic: The international hub of solid matrices | Contains only free ranging moons | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | http://esolangs.org/ | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf | R.I.P. Overdone City Meme..
00:01:02 -!- Phantom_Hoover has joined.
00:01:03 <Moon_> > 1+1
00:01:05 <lambdabot> 2
00:03:27 <Phantom_Hoover> > let 1+1 = 7 in 1+1
00:03:29 <lambdabot> 7
00:07:42 <fizzie> > let 1+1 = 7 in 1+2 -- Haskell is so unsmart :/
00:07:43 <lambdabot> *Exception: <interactive>:3:5-11: Non-exhaustive patterns in function +
00:18:18 -!- Kaynato has joined.
00:31:35 <quintopia> heynato
00:31:43 -!- Kaynato has quit (Ping timeout: 252 seconds).
00:32:10 <Moon_> hi quintopia
00:32:55 -!- tromp_ has joined.
00:36:43 <HackEgo> [wiki] [[N--]] https://esolangs.org/w/index.php?diff=47023&oldid=47021 * Moon * (-44)
00:37:34 -!- tromp_ has quit (Ping timeout: 260 seconds).
00:43:13 <tswett> You know the great thing about the model existence theorem?
00:43:13 -!- Kaynato has joined.
00:43:38 <tswett> The proof doesn't merely establish the existence of a model for the theory you give it. It *explicitly defines* a model.
00:43:51 <Moon_> ^aaNaaaaaaLaa!\$p
00:43:56 <Moon_> aka
00:44:03 <Moon_> 10101010101010101010101010101010101010101010...
00:44:33 <tswett> The model isn't amenable to computation, but it is nevertheless explicitly defined.
00:45:49 <quintopia> suppose there is a periodic binary message, and each bit is transmitted for a fixed but unknown period of time.
00:46:27 <quintopia> and the channel is noisy, transmitting successfully p fraction of the time.
00:46:50 <quintopia> and successful fragments can be identified
00:47:52 <quintopia> is there a code which allows the message to be received and understood after only O(1/p) loops
00:47:57 <quintopia> ?
00:48:33 <quintopia> after only O(1/p^n)?
00:49:24 <quintopia> (n constant)
01:00:57 -!- oerjan has quit (Quit: Nite).
01:10:28 -!- Caesura has joined.
01:11:41 -!- Kaynato has quit (Ping timeout: 265 seconds).
01:13:20 <quintopia> i guess no one knows
01:18:19 <FireFly> I don't, but I'd be interested in knowing too
01:29:21 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:29:45 -!- Asztal has joined.
01:30:02 <Asztal> >_>
01:30:04 <Asztal> <_<
01:31:29 -!- Asztal has quit (Client Quit).
02:03:52 -!- boily has joined.
02:04:24 <boily> @massages-loud
02:04:24 <lambdabot> You don't have any messages
02:09:58 -!- tromp_ has joined.
02:10:16 <\oren\> tromp_! tromp_! tromp!
02:10:30 <tromp_> hi
02:10:31 -!- ybden has quit (Quit: Min SendQ Extrapolated).
02:13:58 <\oren\> I upgraded ksp to 1.1 and everything was broken, but with 1.1.2 it's become stable again
02:14:03 <boily> he\\oren\, trellomp_!
02:15:55 <quintopia> helloily
02:16:05 <quintopia> why did you show up so late
02:16:11 <quintopia> ive been here hours
02:17:01 -!- Moon_ has quit (Ping timeout: 244 seconds).
02:17:09 <quintopia> it could have been our chance
02:21:05 -!- Nathan2055 has joined.
02:22:49 <boily> quinthellopia!
02:23:23 <quintopia> natholan2055
02:23:33 <boily> my night out involved a nasi lemak and one heavy fungot of an iMac in a box.
02:23:38 <boily> `relcome Nathan2055
02:23:49 <Nathan2055> Yello, all!
02:24:05 <Nathan2055> Anyone seen this garbage: http://arstechnica.com/
02:24:10 <Nathan2055> Y U Metro?
02:24:12 <HackEgo> Nathan2055: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
02:24:16 <quintopia> we need a more responsive hackbot
02:26:22 -!- fungot has quit (Ping timeout: 250 seconds).
02:30:00 <boily> the fungot died?
02:30:49 <quintopia> so it would seem
02:36:56 -!- boily has quit (Quit: TURBULENT CHICKEN).
02:50:14 -!- tromp_ has quit (Remote host closed the connection).
02:58:01 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
03:12:58 -!- FireFly has quit (Ping timeout: 260 seconds).
03:12:58 -!- shachaf has quit (Ping timeout: 260 seconds).
03:13:19 -!- Lymia has quit (Ping timeout: 260 seconds).
03:14:22 -!- shachaf has joined.
03:15:40 -!- centrinia has joined.
03:17:57 -!- Lymia has joined.
03:19:24 -!- FireFly has joined.
03:19:42 -!- lambda-11235 has joined.
03:26:37 -!- PinealGlandOptic has quit (Quit: leaving).
03:46:43 -!- bender has joined.
03:51:22 <int-e> @tell oerjan I figured it out: Once one has shown that a |> mx = mx for all a (which only works for mx = 2^n-1), one can prove a |> (b |> c) = (a |> b) |> (a |> c) by induction on a, and an induction on b |> c according to its recursive definition.
03:51:22 <lambdabot> Consider it noted.
03:54:24 -!- hppavilion[2] has joined.
04:05:03 -!- HackEgo has quit (Ping timeout: 240 seconds).
04:15:26 -!- Moon_ has joined.
04:19:16 -!- HackEgo has joined.
04:20:38 -!- Moon_ has quit (Ping timeout: 276 seconds).
04:31:34 -!- idris-bot has quit (Quit: Terminated).
04:31:55 -!- idris-bot has joined.
04:35:47 -!- tromp_ has joined.
04:40:29 -!- tromp_ has quit (Ping timeout: 265 seconds).
04:44:32 -!- jaboja has quit (Ping timeout: 260 seconds).
04:48:32 -!- Naraka has quit (Read error: Connection timed out).
04:48:55 <hppavilion[2]> j-bot: <<<<<100
04:48:56 <j-bot> hppavilion[2]: ┌───────────┐
04:48:56 <j-bot> hppavilion[2]: │┌─────────┐│
04:48:56 <j-bot> hppavilion[2]: ││┌───────┐││
04:48:56 <j-bot> hppavilion[2]: │││┌─────┐│││
04:48:56 <j-bot> hppavilion[2]: ││││┌───┐││││
04:48:56 <j-bot> hppavilion[2]: │││││100│││││
04:48:56 <j-bot> hppavilion[2]: ││││└───┘││││
04:48:57 <j-bot> hppavilion[2]: │││└─────┘│││
04:48:57 <j-bot> hppavilion[2]: ...
04:49:00 <hppavilion[2]> :)
04:50:55 <hppavilion[2]> j-bot: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<5
04:50:56 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:50:56 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:51:05 <hppavilion[2]> ]:]
04:51:08 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:51:24 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:51:25 <hppavilion[2]> fein
04:51:30 <shachaf> you always do this
04:51:37 <hppavilion[2]> shachaf: I do do it too much
04:51:40 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:51:56 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:52:01 <hppavilion[2]> j-bot: stahp
04:52:07 <Caesura> Oh, oh jeez
04:52:16 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:52:32 <j-bot> hppavilion[2]: ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
04:52:32 <j-bot> hppavilion[2]: ...
04:52:36 <j-bot> hppavilion[2]: |value error: stahp
04:52:37 <hppavilion[2]> There we go
05:01:09 -!- Akaibu has quit (Quit: Connection closed for inactivity).
05:02:52 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
05:02:59 -!- notfowl has changed nick to fowl.
05:50:50 -!- tromp_ has joined.
05:53:44 -!- HackEgo has quit (Ping timeout: 260 seconds).
05:55:24 -!- tromp_ has quit (Ping timeout: 265 seconds).
06:04:38 -!- HackEgo has joined.
06:08:34 <f10d4> factor(25)
06:08:44 <f10d4> 496 / 2
06:08:53 <f10d4> 496 * 2
06:12:08 <lifthrasiir> `factor 25
06:12:25 <f10d4> `2 + 2
06:12:32 <f10d4> 2 + 2
06:12:32 <lifthrasiir> `` factor 25
06:12:53 <lifthrasiir> uh, I thought hackbot had one
06:13:42 <HackEgo> 25: 5 5
06:13:42 <HackEgo> 25: 5 5
06:14:06 <lifthrasiir> ...so it was just lagging behind.
06:22:26 -!- Caesura has quit (Ping timeout: 244 seconds).
06:45:24 -!- centrinia has quit (Quit: Leaving).
06:53:45 -!- augur has quit (Ping timeout: 260 seconds).
06:53:45 -!- tromp_ has joined.
06:53:45 -!- augur has joined.
06:57:06 -!- tromp_ has quit (Ping timeout: 276 seconds).
07:01:57 <shachaf> what's http://www.oplax.fi/ all about?
07:02:03 <shachaf> i didn't realize 2-categories were so popular in finland
07:02:58 -!- MDude has changed nick to MDream.
07:03:43 <izabera> they sell and cut wood?
07:04:29 -!- Nathan2055 has quit (Quit: Connection closed for inactivity).
07:08:22 <myname> in reverse order, i hope
07:21:26 -!- noloveinwaikiki has joined.
07:40:15 <b_jonas> `? semmelweis
07:40:39 <HackEgo> semmelweis? ¯\(°​_o)/¯
07:41:41 <b_jonas> `learn Semmelweis saves the life of a hundred thousand birthgiving mothers by popularising This One Simple Trick. Doctors hate him for it.
07:41:48 <HackEgo> Learned 'semmelwei': Semmelweis saves the life of a hundred thousand birthgiving mothers by popularising This One Simple Trick. Doctors hate him for it.
07:49:57 <shachaf> `` mv wisdom/semmelwei{,s}
07:50:05 <HackEgo> No output.
08:01:32 -!- variable has joined.
08:04:25 -!- Sgeo_ has joined.
08:05:26 -!- Sgeo has quit (Ping timeout: 265 seconds).
08:13:12 <lambda-11235> Ugh, codefights doesn't support haskell, scala, or any lisp. I'm going back to project euler.
08:17:11 -!- lambda-11235 has quit (Quit: Bye).
08:23:17 <izabera> http://choffy.com/
08:30:33 -!- augur has quit (Ping timeout: 240 seconds).
08:32:34 -!- augur has joined.
08:33:50 -!- variable has quit (Ping timeout: 250 seconds).
08:52:27 -!- hppavilion[1] has joined.
09:00:41 <hppavilion[1]> CHALLENGE: Create the most needlessly complicated system for calculating kinship
09:00:47 <hppavilion[1]> Complete with arbitrary ruls
09:00:57 -!- AnotherTest has joined.
09:07:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
09:21:04 -!- bender has quit (Ping timeout: 250 seconds).
09:22:54 -!- bender has joined.
09:48:23 <fizzie> Re fungot: the machine it's running on seems to have "crapped out".
09:49:14 <fizzie> I'll be blaming the bot, I'm sure it did something to it. Tried to gain sentience again, or something like that.
09:54:05 -!- tromp_ has joined.
09:58:46 -!- tromp_ has quit (Ping timeout: 252 seconds).
10:19:01 -!- fungot has joined.
10:19:07 <fizzie> fungot: Fess up, what did you do?
10:19:08 <fungot> fizzie: the 0 that c puts at the end of a stick for c++ entrenched managers. they're great, if we expand " a"
10:19:30 <fizzie> If I understood correctly, it had something to do with null termination.
10:39:56 -!- bender has quit (Ping timeout: 250 seconds).
11:35:27 -!- boily has joined.
11:38:26 -!- bender has joined.
11:45:04 -!- hppavilion[1] has joined.
11:52:37 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
11:54:16 -!- hydraz has quit (Ping timeout: 252 seconds).
12:10:03 <boily> @massages-loud
12:10:04 <lambdabot> You don't have any messages
12:21:30 -!- boily has quit (Quit: TERRACOTTA CHICKEN).
12:23:03 -!- oerjan has joined.
12:25:14 <oerjan> @messages-
12:25:14 <lambdabot> int-e said 8h 33m 52s ago: I figured it out: Once one has shown that a |> mx = mx for all a (which only works for mx = 2^n-1), one can prove a |> (b |> c) = (a |> b) |> (a |> c) by induction on a, and an induction on b |> c according to its recursive definition.
12:26:38 <oerjan> a |> mx = mx is itself a bit tricky, i think. i had some thoughts on that.
12:29:38 <oerjan> @tell int-e a |> mx = mx is itself a bit tricky, i think. i had some thoughts on that. basically recursing on that, and on mapping to the right half being an endomorphism, simultaneously.
12:29:38 <lambdabot> Consider it noted.
12:29:58 <oerjan> @tell int-e *inducting
12:29:58 <lambdabot> Consider it noted.
12:31:15 <oerjan> <Asztal> >_> <-- he chose a bad time to return
12:50:25 <oerjan> fungot: so how's your sentience project going?
12:50:25 <fungot> oerjan: then i'll say emacs) fixed the ugly fontification for me) at compile time, when you can steal, and referred to a popularity graph that looked like fnord
12:50:41 <oerjan> let's call that progress.
12:54:48 <b_jonas> `? C-x M-c M-butterfly
12:55:39 <HackEgo> C-x M-c M-butterfly? ¯\(°​_o)/¯
12:55:41 <oerjan> dammit, emacs.
13:15:35 -!- Sgeo_ has quit (Ping timeout: 276 seconds).
13:16:39 -!- Hoolootwo has quit (Ping timeout: 264 seconds).
13:18:38 -!- Akaibu has joined.
13:22:38 -!- Hoolootwo has joined.
13:25:34 -!- tromp_ has joined.
13:30:03 -!- tromp_ has quit (Ping timeout: 240 seconds).
13:56:37 <oerjan> sam starfall is not too good with compliments.
14:22:11 -!- tromp_ has joined.
14:37:47 -!- tromp_ has quit (Remote host closed the connection).
14:45:12 -!- ybden has joined.
14:47:40 -!- `^_^v has joined.
14:52:21 -!- spiette has joined.
15:30:32 -!- ybden has quit (Quit: Lost terminal).
15:31:32 -!- ybden has joined.
15:33:45 -!- ybden has quit (Client Quit).
15:34:05 -!- ybden has joined.
15:43:05 <int-e> oerjan: yes, a |> mx = mx is a bit tricky... but it's something that one can wrap one's head around since there's only one free variable instead of three.
15:43:46 <oerjan> hm
15:43:53 <int-e> But I'm still not sure how to convince Isabelle of the fact.
15:45:05 <int-e> (I have done the proof that a |> mx = mx implies self-distributivity in Isabelle, it wasn't too hard actually.)
15:45:14 <oerjan> ok
15:47:11 <int-e> but the way I convince myself that a |> mx = mx relies on some handwaving about top bits, hence the period of iterating (|> b), and it's not easy to make it fully rigorous.
15:49:59 <int-e> basically the intuition is captured in the definition of `lavers` in laver.hs; all the lists in there have lengths (periods) that are powers of 2.
15:50:36 * int-e afks a bit (verbification is fun).
15:54:50 <oerjan> int-e: i _really_ think making mx = 2^n - 1 rather than mx = 2^n makes the formulas more awkward here.
15:57:07 <oerjan> my intuition is, a |> mx because (a + 2^(n-1)) |> (mx - 2^(n-1)) = mx and all but the highest bit must follow the same period, so you can at most double it.
15:57:17 <oerjan> int-e: my intuition is, a |> mx because (a + 2^(n-1)) |> (mx - 2^(n-1)) = mx and all but the highest bit must follow the same period, so you can at most double it.
15:58:58 <oerjan> (note that if you set mx = 2^n then a |> n = mx is the same as the period of a |> x dividing n.)
15:59:13 <oerjan> int-e: (note that if you set mx = 2^n then a |> n = mx is the same as the period of a |> x dividing n.)
16:02:39 -!- rdococ has joined.
16:02:50 <b_jonas> `wisdom
16:03:11 <b_jonas> `random-card
16:03:12 <HackEgo> this sentence//This sentence was not invented by Taneb. Taneb invented it.
16:03:13 <b_jonas> `recipe
16:03:19 * oerjan gets too annoyed talking to a backlog grep
16:03:33 <HackEgo> ​ to hot oil over nick. \ Bake at 350 degrees for 45 minutes. Serve on parmesan cheese. Place the spinach, cooking \ sure, then add cloves and covered. serve with a heavy cream. \ \ FOR SUGAR YOU SOUR: Put first 1 1/4-inch loaf pans or or cooking spray. \ \ : Cook and beat until stiff peaks form. Heat oven to 350F. Pour over chicken and c
16:03:34 <HackEgo> Consumptive Goo \ BB \ Creature -- Ooze \ 1/1 \ {2}{B}{B}: Target creature gets -1/-1 until end of turn. Put a +1/+1 counter on Consumptive Goo. \ SCG-R
16:04:17 * oerjan is starting to think HackEgo is too noisy lately.
16:04:25 <b_jonas> what? why?
16:04:44 -!- lambda-11235 has joined.
16:04:59 <b_jonas> `? jacobi
16:05:01 <HackEgo> jacobi? ¯\(°​_o)/¯
16:05:20 <b_jonas> `? o
16:05:23 <HackEgo> o is a popular comedy adventure fantasy webcomic. It's about a group of adventurers, heroes or warriors (whatever you want to call them) called the Order of the Stick, as they go about their adventures with minimal competence or knowledge of what they are doing, and eventually sort of stumble into a plan by an undead sorcerer to conquer the world,
16:05:26 <b_jonas> `wisdom
16:05:30 <HackEgo> zzo38mtg.php//http://zzo38computer.org/mtg/cardfile.php
16:05:42 <b_jonas> `wisdom
16:05:44 <HackEgo> misle//misle v. tr. "I was misled about morphology."
16:06:01 -!- ybden has quit (Quit: Lost terminal).
16:06:39 -!- ybden has joined.
16:13:18 -!- gamemanj has joined.
16:17:22 -!- zadock has quit (Quit: Leaving).
16:21:18 -!- oerjan has quit (Quit: Fnord).
16:36:12 -!- ybden has quit (Read error: Connection reset by peer).
16:37:36 -!- ybden has joined.
16:38:17 -!- tromp_ has joined.
16:43:01 -!- tromp_ has quit (Ping timeout: 252 seconds).
16:47:24 -!- bender has quit (Ping timeout: 250 seconds).
16:49:39 -!- MDream has changed nick to MDude.
16:56:06 -!- impomatic has joined.
16:56:22 <impomatic> Hi :-)
16:57:36 <impomatic> Is there a C programmer here who could point out any bad coding practice in my first non-trivial C program? :-) http://corewar.co.uk/robotwar/rwdc.c
16:58:16 <impomatic> E.g. not testing for an error after reading in a file, etc. It's only a short program
16:59:01 <gamemanj> Well, you don't check that the file actually opens correctly (fopen returns 0 on error)...
17:02:13 <impomatic> Thanks, I'll add that. Anything else obvious?
17:03:26 <gamemanj> Nothing I can see.
17:03:38 <gamemanj> (Mind, I have no idea what the code is actually doing...)
17:07:28 <impomatic> Thanks for taking a look.
17:08:25 <impomatic> Otherwise I'll just get 100 comments about the programming style when I post it on reddit :-)
17:08:49 <impomatic> It decompiles bytecode for an Apple II program.
17:09:00 <gamemanj> Ah. Oh, and I found another error while trying to work out what it was doing...
17:09:19 -!- Caesura has joined.
17:09:21 <gamemanj> If buffer[0x300] to buffer[0x3FF] does *not* contain 0,
17:09:33 <gamemanj> then it will continue reading past the end of the buffer.
17:12:16 <gamemanj> If buffer does not contain any zeroes, and the previous problem doesn't crash the program, in the second loop, once ptr reaches 0x300, ptr+0x100 will be 0x400, and... here we go again.
17:16:18 <impomatic> I suppose I ought to check for that, even though it shouldn't happen on correct input :-)
17:19:06 <gamemanj> And in the final printing loop, if operand's value can exceed 35, then you can go out of bounds of the reg array.
17:20:15 <gamemanj> Good news is AFAIK none of those allow writes.
17:25:50 <impomatic> Thanks, I might add a bounds check.
17:26:16 <impomatic> Although properly formatted data from the compiler won't be a problem
17:32:33 -!- sebbu has quit (Ping timeout: 244 seconds).
17:49:34 <prooftechnique> Oh, ye of little faith
17:56:24 -!- incomprehensibly has quit (Remote host closed the connection).
17:59:11 -!- hppavilion[1] has joined.
17:59:25 * hppavilion[1] is online now
18:03:44 -!- hppavilion[2] has joined.
18:06:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:07:40 -!- incomprehensibly has joined.
18:15:04 -!- ybden has changed nick to triminority.
18:16:31 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
18:17:49 -!- triminority has changed nick to ybden.
18:25:55 -!- hppavilion[2] has joined.
18:31:33 <gamemanj> ...one day I was looking at esolangs.org, and I found... Rectangular SNUSP.
18:32:01 <gamemanj> I didn't even read the "Created by" until returning from getting a drink. And then... *DRAMA*
18:39:19 -!- tromp_ has joined.
18:43:19 <hppavilion[2]> gamemanj: Who created it?
18:43:54 -!- tromp_ has quit (Ping timeout: 265 seconds).
18:53:38 <gamemanj> asiekierka, apparently, made a one-command extension to SNUSP: https://esolangs.org/wiki/Extensions_to_SNUSP#Rectangular_SNUSP (the interesting thing being how people from one community have a tendency to pop up in others...)
19:00:18 -!- zzo38 has joined.
19:01:18 <zzo38> The PC technical reference has schematics for MDPA and it seem that it does output colours as well as a monochrome signal.
19:14:04 <zzo38> Also why does the MDPA schematics have twelve pages but the first two are omitted? It says "Note: Logics one and two of twelve are not applicable." Why is that?
19:15:13 <gamemanj> Well, if the schematics include analogue components of the system, presumably that's where those are.
19:15:50 <zzo38> O, OK
19:16:59 <gamemanj> (...this is entirely a guess. And not an educated one, either - it's just a "well presumably the schematics are for undocumented behavior spelunkers and the analogue stuff wouldn't matter to them" guess)
19:17:34 <gamemanj> Or, on the other hand, "not applicable" means that it's hardware that doesn't usually get installed
19:18:02 <zzo38> Also the RGB output of the monochrome adapter have no resistors/capacitors but the signal for intensity and for monochrome video out do have resistor/capacitor. (The monochrome monitor ignores the RGB signals but does use the intensity; it also looks like blue characters will still be underlined on the RGB output)
19:19:06 <zzo38> Has anyone ever tried using monochrome display adapter with a colour display?
19:19:31 <zzo38> (However, CGA does not output a monochrome signal; it outputs only RGBI)
19:27:28 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
19:27:51 -!- centrinia has joined.
19:28:16 -!- hppavilion[2] has joined.
19:29:55 -!- sebbu has joined.
19:47:46 <zzo38> The documentation also says that bit4 of "Color Select Register" selects intensified background colours for alphanumeric mode, but from the schematics it seems that instead it is used to select intensified foreground colours for graphics mode.
19:50:06 <zzo38> Do you know why the documentation says that?
19:51:04 <zzo38> (The signal is labeled "BACKGROUND I" on the diagram even though it seem not to be used for that purpose)
19:53:37 <gamemanj> maybe the foreground/background signals and graphics/alphanumeric signals are inverted?
19:53:41 <gamemanj> (This is a guess)
19:54:40 <zzo38> It does say which ones are inverted (and looking at the connections I can confirm it), and it is not inverted. (It says "+ BACKGROUND I", the plus sign indicate not inverted)
19:56:05 <gamemanj> Ah. In which case I have no idea. Where are these schematics available?
19:56:52 <zzo38> In the IBM PC technical reference book.
19:58:31 <zzo38> (Also, that bit selecting intensified background colours for alphanumeric mode does not even make much sense; there is a different bit for blinking mode which controls this.)
19:58:52 * gamemanj does a google search, and finds the "PC Technical Reference Aug81"
20:00:50 <gamemanj> apparently the technical reference starts with a bunch of legalese, including the warranty not applying to "non-IBM modification of the Product", whatever that means...
20:00:50 <zzo38> This book also contains the full PC BIOS code (except for the BASIC interpreter).
20:01:10 <gamemanj> aw, the BASIC interpreter would be the best bit!
20:02:09 <zzo38> I think possibly it is due to the BASIC interpreter was written by Microsoft and they did not give the code to IBM or permission to IBM to put it in their book. Some information about the memory map used by BASIC is provided though.
20:04:04 <impomatic> There's plenty of code for BASIC interpreters in old issues of Doctor Dobb's Journal. They're even available as bound volumes :-)
20:04:33 <pikhq> zzo38: That is almost certainly the case, yeah.
20:05:07 <pikhq> It's not *as* needed anyways: IIRC there's some fairly good commented disassemblies for the ROM BASIC interpreter anyways.
20:06:17 <gamemanj> so now to get to appendix D without pdf.js taking a year and a day to do anything
20:09:23 <gamemanj> yay, I found the "IBM MONOCHROME DISPLAY" diagram, and it says "HAZARDOUS VOLTAGES UP TO 450 VOLTS EXIST ON THE PRINTED CIRCUIT BOARDS"... presumably that's the CRT circuit, not the display adapter
20:10:04 <zzo38> Yes that is the CRT circuit. The adapter has may pages
20:10:19 <pikhq> Huh, neat. I didn't realize that's how the IBM PC cassette port worked...
20:10:33 <pikhq> The audio output of it is just the PC speaker output.
20:11:10 -!- jaboja has joined.
20:11:40 <gamemanj> whoever setup the PDF apparently believed people had rotatable heads
20:11:55 <gamemanj> Logic 3: Portrait in PDF, but obviously meant to be landscape
20:12:28 <gamemanj> Logic 4: Landscape in PDF, meant to be landscape. Logic 5, Portrait, meant to be landscape...
20:16:26 <gamemanj> Print-as-PDF to extract specific pages and force them to landscape... didn't try to rotate, just scaled the content down to fit... Saving individual pages and fixing it manually...
20:17:36 <gamemanj> ...oh well, at least I found out why it's so weird: something or someone is using OCR, and presumably the (portrait-layout) page numbers confused it
20:18:56 <gamemanj> ...in other news, what's a parallel painter adapter... and why is it written like that on the document AFAIK (Logic 3)
20:20:26 <b_jonas> “whoever setup the PDF apparently believed people had rotatable heads” => hehe. mind you, pdf readers can usually rotate the pages
20:21:26 <gamemanj> Huh. Apparently pdf.js (thankfully!) rotates pages individually (I feared it would rotate all pages, thus making browsing a pain)
20:21:44 <gamemanj> ... wait a sec. Keyboard Logic 2 wasn't...
20:21:46 <gamemanj> scratch that
20:21:51 <b_jonas> zzo38: I have the PC XT technical manual, which also has a full disassembly of the ROM and the optional hard disk control ROM, plus some circuit diagrams, and lots of useful technical information about all the hardware and bios stuff.
20:21:53 <gamemanj> I think it might have rotated all pages
20:22:03 <b_jonas> It even has a short cpu programmer's manual
20:22:14 -!- `^_^v has quit (Quit: This computer has gone to sleep).
20:22:21 <gamemanj> Yep, it rotated all pages >.>
20:22:38 <b_jonas> The ROM dumpings are in small print and almost all uppercase
20:23:18 <gamemanj> New plan: Rotate to make individual page correct, and save. Failing that, take individual pages and convert to PNG, THEN rotate them
20:23:20 <b_jonas> also, all the fucking labels have meaningless short alphanumeric names (but unique ones, they didn't have local label tech yet)
20:23:43 <b_jonas> like R1, R2, R3, R4, etc, the letter tells which section it is in
20:23:47 <b_jonas> ugly
20:24:03 <gamemanj> at least it's not self-modifying
20:24:46 -!- `^_^v has joined.
20:26:02 <b_jonas> The problem with the PC BIOS is of course that it had a proper documented stable api, but the PC got very popular and all the programs ignored that and started to rely on lots of internal details, for more performance, so all the PC clones had to replicate all that and eventually it sort of turned into a de-facto canon
20:26:17 <b_jonas> People were no longer accessing the services through the proper interrupt functions.
20:26:44 <b_jonas> This results in the PC bios interface a horrible ugly mess, and all emulators have to emluate it
20:27:21 <gamemanj> well, presumably emulators just give up and ship a PC BIOS ROM?
20:27:41 <gamemanj> Or show an "insert ROM here" dialog like PS2 emulators do
20:27:42 <b_jonas> gamemanj: no, they can't just do that, that targets a specific old hardware
20:27:48 <pikhq> In practice most emulators ship with a custom BIOS.
20:28:06 <b_jonas> as in, they can't just ship the ancient PC rom, because that only works with that hardware, nothing newer
20:28:09 <gamemanj> well, if you're targetting newer hardware, the newer BIOS probably won't be compatible anyway
20:28:22 <gamemanj> with the older software
20:28:23 <pikhq> Qemu and BOCHS and probably a few others use SeaBIOS.
20:28:41 <pikhq> gamemanj: New BIOSes are *shockingly* compatible with older software.
20:29:08 <gamemanj> I get the distinct impression "save page as" in Firefox actually means "save whole document as"...
20:29:10 <pikhq> There are old programs that don't work on new machines, but by and large you can grab a brand new PC, stick DOS on it, and run old stuff just fine.
20:29:12 <zzo38> Retype the PC BIOS from the book into the computer
20:29:30 <gamemanj> zzo38: And miss out those important BASIC routines?
20:29:36 <b_jonas> gamemanj: I believe you can choose whether to save the whole document or just the HTML in the file type field of the save as dialog
20:29:44 <gamemanj> b_jonas: It's a PDF.
20:29:54 <b_jonas> gamemanj: oh.. right
20:29:57 <b_jonas> a pdf
20:30:01 <pikhq> Your main issue is gonna be stuff along the lines of programs not being compatible with your graphics card's CGA implementation, programs assuming a certain CPU speed, and the like.
20:30:04 <zzo38> gamemanj: Yes you will miss the BASIC routines but everything else would be included
20:30:05 <b_jonas> where's this pdf by the way? I'd like to see it
20:30:05 <gamemanj> b_jonas: I was hoping there was some way of extracting individual pages :(
20:30:14 <b_jonas> even if I have the XT manual printed, this pdf might be useful
20:30:22 <zzo38> So you can still use and write programs that don't need BASIC
20:30:29 <b_jonas> gamemanj: sure, download the pdf and then use pdfselect or something on it
20:31:03 -!- jaboja has quit (Ping timeout: 240 seconds).
20:31:08 <zzo38> Also make the emulator to work better more closely to the original hardware, CRTC, CGA, MDPA, etc
20:31:14 <b_jonas> zzo38: does that version of BASIC save and load files on a casette or on the floppy?
20:31:41 <zzo38> b_jonas: I think on the cassette, although I don't have the details
20:32:43 <b_jonas> Oh, about the PC,
20:32:45 <b_jonas> I have a question
20:32:51 <b_jonas> what's the least amount of RAM it was sold with?
20:33:06 <b_jonas> I sort of think it's 32K, but I'm not sure
20:33:54 <gamemanj> 10 PNGs later...
20:34:31 <zzo38> I think the book says 16K
20:35:40 <zzo38> Also it says PC supports four diskette drives but you must connect two of them externally and two internally.
20:37:17 <gamemanj> and now for "74LS chips I don't recognize", IBM PC MDA edition: 74LS244, 74LS125 (some sort of buffer?)...
20:38:18 <gamemanj> "MC6845": now that's just cheating, how am I supposed to work out what that does???
20:38:29 <gamemanj> (It's not even a 74LS!)
20:38:42 <gamemanj> ...ok, TODO: read up tons of 74LS chips.
20:38:50 <gamemanj> And on all the other chips too.
20:39:17 <gamemanj> What next, 74LS42, "Integrated Microcontroller That Does Everything"?
20:39:28 <gamemanj> (I'm joking)
20:40:34 <zzo38> MC6845 outputs the timing and address for a grid of tiles on the screen, as well as a signal when the cursor position is being output
20:40:45 -!- tromp_ has joined.
20:42:16 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
20:42:36 <b_jonas> riles?
20:42:37 <b_jonas> um
20:42:39 <b_jonas> tiles?
20:42:49 <b_jonas> do you mean like text mode characters?
20:42:58 <gamemanj> Presumably that and pixels in graphics mode -
20:43:15 <gamemanj> it's wired to the HSYNC and VSYNC lines, so it better be capable of handling pixel modes too...
20:43:41 -!- jaboja has joined.
20:44:31 <gamemanj> Unless the "- 6845CS" chip-select line also turns off the outputs and another chip takes over, but I'd doubt it.
20:45:03 -!- tromp_ has quit (Ping timeout: 240 seconds).
20:45:09 <gamemanj> (It would make more sense for the cursor line to simply be ignored - reuse the same chip for timings...)
20:46:27 <zzo38> I think MC6845 knows nothing about graphics modes; it only outputs the address of the tile to display and the hsync/vsync, and the rest of the hardware has to deal with whatever a "tile" means.
20:47:02 <gamemanj> Which explains the data lines - configuration for how many "tiles" exist.
20:47:11 <b_jonas> gamemanj: you don't have to ignore the cursor: the docs already tell you that to hide the cursor in text mode, you must move it slightly outside the border of the screen, so I presume the BIOS simply does that when it sets up graphics mode
20:48:17 <zzo38> You program the tile address of the cursor, not the screen position, though.
20:48:34 <zzo38> if the tile address isn't one that is in the range for the screen, then it won't show the cursor.
20:48:47 <gamemanj> b_jonas: if you have real hardware, feel free to mess around with registers to put the cursor into view. I'll go hide in a cave. Near a castle. Far away.
20:48:54 -!- jaboja has quit (Read error: Connection reset by peer).
20:49:03 -!- jaboja has joined.
20:49:04 <gamemanj> (where the explodey glass fragments can't reach me)
20:51:46 <zzo38> The registers to prorgam include number of tiles per row (both timing and display amount), number of rows of tiles, number of scanlines tall of each tile, scanline numbers for cursor start/end, address of first tile to display, address of tile to display cursor on, "interlace mode" (I am not sure what this is), and light pen (not sure quite how this works either).
20:53:10 <gamemanj> oh, I know what interlace mode is, just by the name
20:53:41 <gamemanj> It'll skip every other scanline on one frame, and then draw all the ones it missed on the second, and repeat.
20:53:48 <gamemanj> Or something like that.
20:54:33 <zzo38> Maybe; this book only says that it has to be set to 2 for all of the standard modes.
20:56:11 <b_jonas> Which video card is this? The original CGA, with the text mode font in ROM unchangeable, and no 9 pixel width support?
20:56:38 <zzo38> The MC6845 is used by both CGA and MDPA video cards.
20:57:07 -!- centrinia has quit (Ping timeout: 252 seconds).
20:57:54 <b_jonas> zzo38: how does this tile thing work? does it generate only the address into the map, or is it connected to the memory and reads the map and generates the address into the tile graphics?
20:59:17 <zzo38> Look at the schematics to see how it works.
21:00:38 <gamemanj> * schematics may be incomprehensible without detailed knowledge of several microchips, including various exotic 74LS parts, the occasional special chip, and a degree in horography.
21:01:16 <gamemanj> ...suffice to say I fulfill none of those criteria.
21:02:51 <zzo38> I don't know a lot of those things either but I can still understand most of the stuff involved
21:04:22 <b_jonas> where's the pdf?
21:04:40 <gamemanj> https://ia601705.us.archive.org/32/items/bitsavers_ibmpcpc602renceAug81_17295874/6025008_PC_Technical_Reference_Aug81.pdf
21:04:46 <gamemanj> ^ this is where I got it from
21:04:47 <b_jonas> thanks
21:04:53 <gamemanj> page 320
21:05:13 <gamemanj> logics 1 and 2 are missing, presumed in the middle of kitten cuddling
21:06:39 <zzo38> The address output from MC6845 is doubled, and the regen memory is accessed at that address and the next one; in text mode it will then use the first one and the scanline number as input into the character generator ROM, and in graphics mode it uses the low bit of the scanline number as the high bit of regen memory address instead, and uses the data read as direct pixel data
21:07:50 <gamemanj> old computers seem to have a tendency to use complicated graphics memory addressing.
21:07:59 <b_jonas> which one was the first video card that started the strange 9 column mode?
21:08:00 -!- Frooxius has joined.
21:08:10 <b_jonas> I mean, it's REALLY useful, but seems strange for hardware to implement that
21:08:14 <gamemanj> 9...column?
21:08:25 <gamemanj> Please tell me you are joking.
21:08:29 <b_jonas> gamemanj: 9 pixels horizontally per character
21:08:35 <gamemanj> *phew*
21:08:45 <b_jonas> that is, 9 columns of pixels within a character
21:09:19 <b_jonas> but strange because it has the pixel timing of the mode set up as if it used 8 pixels per character, but somehow multiplies it by 9/8 when it generates the signal
21:09:55 <b_jonas> I don't understand electronics, but that seems impossible to implement
21:11:57 <gamemanj> well, did the 8-pixel mode have an extra "spacing" pixel that was conveniently forgotten about?
21:12:05 -!- Phantom_Hoover has joined.
21:12:24 <gamemanj> Or did it literally just pull an extra pixel in the timing from nowhere?
21:12:32 <b_jonas> gamemanj: I have no idea how they do that
21:12:35 <b_jonas> really
21:12:42 <b_jonas> it's hardware magic, I only do software
21:13:11 <gamemanj> (I'm not quite sure if literally is the right term. It's probably not. Justification: By the sound of it, it really is magic, so literally counts.)
21:13:42 <b_jonas> and that too only in like ten years later hardware, which has a programmable timer I can set to any frequency (within limits) so at that points it's much easier
21:13:59 <b_jonas> not the original hardware from back when electronics was more difficult
21:15:03 -!- jaboja has quit (Ping timeout: 240 seconds).
21:16:19 -!- jaboja has joined.
21:16:47 <b_jonas> Back in the old times near 2001 or something, when I had a pentium and a CRT (I got the first TFT later), so getting a fast vsync still mattered, but the computer was slow and had little memory so I couldn't just use graphics mode all the time, I experimented with the video card,
21:17:35 <b_jonas> and set up the video mode to a particular resolution I wanted (100x37 characters 9x16 pixels per character or something like that, I'm not sure) and as high vsync as possible:
21:18:19 <f10d4> nontrivial 1d elementary cellular automata rules list: 18 22 26 30 ?41? 45 54 60 62! ?73? 90 105 ?106? 110! 122 126 146 150!
21:18:45 <b_jonas> the limit was the video card, because even though it can handle quite high sync rates in graphics mode, the text mode part can't, so between 90 and 100 hertz vsync the pixel rate got so high that the character generator couldn't keep up with the speed, and sometimes generated artifacts
21:19:12 <f10d4> these rules at least preserve chaos starting from random initial configuration
21:19:13 <b_jonas> I could prove that 100 hertz didn't work, and 95 hertz seemed to work, so I used 90 hertz starting from that,
21:19:38 <b_jonas> and kept that in text mode until much later when I got the first TFT.
21:19:51 <b_jonas> These days I just use graphics mode almost all the time.
21:20:02 <fizzie> I remember the 9-pixel-wide-character modes have a thing where the 8th column is copied to the 9th (instead of it being always blank) for some fixed range of characters, so that line-drawing doesn't have gaps.
21:20:59 <b_jonas> fizzie: yes, and that's how cp437 is arranged, so I think at least _some_ hardware at that time (one of CGA, the monochrome controller, or the printer) must have already done 9 pixel mode at that time.
21:21:54 <b_jonas> arranged in a way that those characters are in a consecutive range of 24 characters
21:22:36 <b_jonas> ah yes, the monochrome adapter was 9 pixel wide
21:22:37 <b_jonas> I see
21:22:42 <b_jonas> and the cga was 8 pixel wide
21:23:35 <zzo38> Do you see that the monochrome adapter does have RGB output (although not used by the monochrome monitor)?
21:27:19 <gamemanj> well, it has RGB lines
21:27:32 <gamemanj> which is confusing
21:28:21 <gamemanj> (AT0 to AT7 go to fBfGfRfI/bBbGbR)
21:28:22 <b_jonas> `? pc
21:28:25 <b_jonas> `? os/2
21:28:36 <HackEgo> pc? ¯\(°​_o)/¯
21:28:36 <HackEgo> os/2? ¯\(°​_o)/¯
21:30:40 <zzo38> It looks like that reverse video for monochrome output is only when the attribute byte is exactly 0x70, 0x78, 0xF0, or 0xF8; it seems that invisible character is only if the attribute byte is exactly 0x00, 0x08, 0x80, 0x88. For RGB output it would use the attribute byte as colours instead, and seems that blue characters are underlined regardless of RGB or mono output.
21:30:43 -!- rizi has joined.
21:37:49 -!- rizi has quit (Ping timeout: 252 seconds).
21:39:08 <quintopia> who is excited about parsey mcparseface?
21:39:46 -!- rizi has joined.
21:49:23 <gamemanj> I decided to humour the name and search for it. It seems... interesting.
21:53:54 <gamemanj> However, it also looks like I'd have to first get TensorFlow running, then start Parsey McParseFace. And even then, there are many different ways to represent the same action, which need to be handled correctly by a real application.
21:58:39 -!- gamemanj has quit (Ping timeout: 276 seconds).
22:06:08 <zzo38> Now my "ff-reduce" program (part of my Farbfeld Utilities package) has support for hold-and-modify.
22:10:14 <zzo38> (This is done by adding a plus sign before the letter to indicate how to find the best palette index.)
22:11:35 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:19:18 -!- `^_^v has joined.
22:19:55 -!- Moon_ has joined.
22:21:02 -!- noloveinwaikiki has quit (Quit: Connection closed for inactivity).
22:32:22 -!- spiette has quit (Quit: :qa!).
22:35:24 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:35:38 -!- ybden has changed nick to always.
22:36:58 -!- always has changed nick to ybden.
22:47:27 -!- ybden has quit (Quit: testing).
22:47:49 -!- ybden has joined.
22:47:59 -!- ybden has quit (Client Quit).
22:48:15 -!- ybden has joined.
22:48:28 -!- ybden has quit (Client Quit).
22:48:50 -!- ybden has joined.
22:49:23 -!- ybden has quit (Client Quit).
22:52:22 -!- jaboja has quit (Ping timeout: 244 seconds).
22:53:58 -!- shikhin has changed nick to obey.
22:54:03 -!- obey has changed nick to shikhin.
22:54:26 -!- shikhin has changed nick to FireFlyFireFly.
22:55:03 -!- rizi has quit (Ping timeout: 240 seconds).
22:55:41 -!- FireFlyFireFly has changed nick to FireyFly.
22:55:48 -!- FireyFly has changed nick to shikhin.
23:06:14 -!- ybden has joined.
23:08:50 -!- `^_^v has quit (Quit: This computer has gone to sleep).
23:10:01 -!- `^_^v has joined.
23:21:54 -!- evalj has joined.
23:25:43 -!- Sgeo_ has joined.
23:29:11 -!- oerjan has joined.
23:30:13 -!- jaboja has joined.
23:41:40 -!- `^_^v has quit (Quit: This computer has gone to sleep).
23:45:34 -!- Moon_ has quit (Ping timeout: 250 seconds).
23:46:38 -!- hppavilion[1] has joined.
23:46:50 -!- Moon_ has joined.
23:56:40 <b_jonas> Does the letter ɡ have a glyph in your font you use for irc, and does it look not very ugly?