code logs -> 2018 -> Fri, 02 Mar 2018< code.20180301.log - code.20180303.log >
--- Log opened Fri Mar 02 00:00:27 2018
00:15 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
00:50 celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has joined #code
00:50 mode/#code [+o celticminstrel] by ChanServ
01:04 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code
01:04 mode/#code [+o himi] by ChanServ
01:34 * McMartin hooks a rocket engine to the Refactor Tractor
01:34 celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.]
01:34 celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has joined #code
01:34 mode/#code [+o celticminstrel] by ChanServ
01:34
<@celticminstrel>
Refactor tractor overdrive! :O
01:35
<&McMartin>
You unhook the tiller and those things really move
01:55 Kindamoody is now known as Kindamoody[zZz]
02:21 * McMartin finishes this weeklong refactoring project.
02:21
<&McMartin>
Closer to "reimplementation" than "refactoring", but, net code size -400 lines
02:22 Jessikat` [Jessikat@Nightstar-tq3j4d.dab.02.net] has joined #code
02:24 Jessikat [Jessikat@Nightstar-0ou8dc.dab.02.net] has quit [Ping timeout: 121 seconds]
04:32 celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
05:24 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Connection closed]
05:43 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
05:46 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
05:46 mode/#code [+o Alek] by ChanServ
06:18 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
06:18 mode/#code [+qo Vornicus Vornicus] by ChanServ
06:23 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
06:37 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
06:37 mode/#code [+qo Vornicus Vornicus] by ChanServ
06:45 Vornlicious [Vorn@Nightstar-7fvc4j.sub-174-210-3.myvzw.com] has joined #code
06:48 Vorntastic [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
06:52 himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code
06:52 mode/#code [+o himi] by ChanServ
08:07
<&McMartin>
I do a complete, word-by-word teardown of the Sega Genesis startup code: https://bumbershootsoft.wordpress.com/2018/03/02/the-sega-genesis-startup-code/
08:37 Kindamoody[zZz] is now known as Kindamoody
08:49
<@macdjord>
McMartin: The section labeled 'Vectors and Metadata' is confusing. The first sentence tells me that the first 512 bytes don't contain startup code. The second sentence describes the first 8 of the bytes. The third sentence tells me the actual startup code starts at location 512. But then the next two paragraphs jump back to telling me more about the remaining 504 non-code bytes.
08:50
<@macdjord>
I suggest moving the sentence 'Since this poweron code went at the very front of the cartridge, the startup code begins at location 512.
08:50
<@macdjord>
' to the very /end/ of that section.
08:52
<@macdjord>
Alternately, you could move the sentence 'The first 4 bytes hold the initial value of the stack pointer, and the next four hold the initial value of the program counter.' from its current location to the start of the second paragraph. In that case, you'd need to add a few words to make it clear you're talking about the 512 bytes of metadata again and not the startup code itself.
08:52 Jessikat [Jessikat@Nightstar-2qp.tcr.132.82.IP] has joined #code
08:53
<&McMartin>
macdjord: The intent was to observe that the value *of* the second set of 4 bytes is probably going to be the number "512".
08:54 Jessikat` [Jessikat@Nightstar-tq3j4d.dab.02.net] has quit [Ping timeout: 121 seconds]
08:55
<@macdjord>
McMartin: In that case, I'd suggest: "... value of the program counter; since this poweron data went at the very front of the cartridge, the initial value of the program counter would usually be 512, representing the beginning of the setup code."
08:57
<&McMartin>
nod
09:00
<@macdjord>
McMartin: Also, is the code discussed in the 'Immediately After Poweron' section the stuff starting at 512, or some sort of hardcoded bootloader? Either way, the first line of that section should be edited to make it clear which of those it's talking about.
09:01
<@macdjord>
"Skip the entire setup sequence if configured for I/O" - skip to /where/?
09:01
<&McMartin>
Everything discussed in the article
09:02
<&McMartin>
It's a series of jumps that takes it completely out of the code analyzed (and presumably to 'main program start', but it doesn't know or care)
09:02
<&McMartin>
The "immediately after poweron" is the code that is labeled RESET
09:03
<@macdjord>
"The a5 register is loaded with the head... We do a series of post-increment reads through a5..." Is the code you just showed me a5 /getting/ loaded, or the first of the reads /using/ a5? And if the second, when and how did it get loaded?
09:04
<&McMartin>
There is an assumption here that the reader knows at least a bit of 68k asm already
09:04
<&McMartin>
(Go back one article for the "whirlwind tour of the 68000 CPU)
09:05
<&McMartin>
But it was loaded with the instruction "move.l #@Table, a5"
09:05
<&McMartin>
The general rule for 68k asm is source on the left, destination on the right
09:05
<@macdjord>
Fair enough. I'll keep pointing out bits where I get confused; feel free to ignore any that your intended audience would already know.
09:05
<&McMartin>
# means "literally this value", parens mean "dereference the pointer", + and - on the edges mean "and increment after/decrement before"
09:05
<&McMartin>
Things that aren't registers that don't have # mean "load memory at this address"
09:06
<&McMartin>
.b, .w, .l mean 8/16/32-bit operations
09:06
<@macdjord>
McMartin: You mean 'lea @Table,a5'?
09:06
<&McMartin>
Er, right. Unless it's lea.
09:06
<&McMartin>
CISC, ladies and gentlemen.
09:07
<&McMartin>
LEA is a pretend instruction that picks one of several options for actually loading a value into an address register.
09:08
<&McMartin>
And a quick check of the actual generated binary shows that my assembler didn't pick the good one, so, uh, going to need to make an edit on that one.
09:08
<&McMartin>
(For added fun, if you use the disassembler that Linux ships with because Debian used to run on machines with this chip, it uses an almost completely different syntax)
09:10
<&McMartin>
And yeah, it'll be helpful for those bits, but a lot of the earlier articles where I'm talking about things at a higher level and only rarely dropping into code samples are more likely to make broader sense.
09:10
<&McMartin>
The purpose of this article is to take what seems to have been treated as a magic blob by the people doing Genesis homebrew and account for every last byte in it.
09:13
<@macdjord>
In the 'zero out d0, a6, and usp' bit: What is the purpose of 'move.w (a4),d0'? And more generally, I would expect the process of zeroing out registers to just be 'LOAD IMMIDIATE 0, foo' where foo is each register in turn.
09:14
<&McMartin>
You would think, but that wastes space.
09:14
<&McMartin>
move.w (a4), d0 is the instruction that's reading out of the VDP status register and resetting its write state
09:15
<&McMartin>
then moveq #0, d0 zeroes out d0, which is smaller than clr.l d0 because CISC
09:15
<&McMartin>
and then all the other ones are moving the (now 0) d0 into the other registers because that's two bytes shorter per instruction
09:15
<@macdjord>
Okay then.
09:15
<&McMartin>
(Similar shenanigans are why you never move 0 into a register on x86 or x86_64; you instead XOR it with itself)
09:18
<&McMartin>
(Which shows up in a slightly different form in the 8-bit Z80 code that shows up later on; I'm even more cursory there because I'd spent a large chunk of the previous year writing articles about Z80 projects)
09:18
<&McMartin>
(When I refer there to "things we haven't seen before" I mean "in those previous projects")
09:20
<&McMartin>
In other uses of the 68000 architecture, though: https://www.v68k.org/advanced-mac-substitute/NyanCat.gif
09:35
<@macdjord>
McMartin: Okay, done reading. The only changes I suggest are:
09:35
<@macdjord>
* The edit to the 'since this poweron data' sentence as suggested above
09:35
<@macdjord>
* Changing the first sentence of 'Immediately After Poweron' to make clear we are now looking at the aforementioned startup code beginning at location 512
09:35
<@macdjord>
* Where it says that it skips the setup if I/O is configured, explain where it's skipping to (if I understand your answer, that's 'into somewhere in user-defined code that comes after the end of the setup code described here')
10:37 Kindamoody is now known as Kindamoody|afk
12:40 Degi [Degi@Nightstar-i3ch00.dyn.telefonica.de] has joined #code
13:06 celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has joined #code
13:06 mode/#code [+o celticminstrel] by ChanServ
13:33 Kindamoody|afk is now known as Kindamoody
13:58 celticminstrel [celticminst@Nightstar-gil1m1.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
14:20 Degi [Degi@Nightstar-i3ch00.dyn.telefonica.de] has quit [Connection closed]
14:31 gnolam [quassel@Nightstar-f22.ckv.119.62.IP] has joined #code
14:31 mode/#code [+o gnolam] by ChanServ
15:22 Jessikat` [Jessikat@Nightstar-ltaej8.dab.02.net] has joined #code
15:26 Jessikat [Jessikat@Nightstar-2qp.tcr.132.82.IP] has quit [Ping timeout: 121 seconds]
15:49 Vornlicious [Vorn@Nightstar-7fvc4j.sub-174-210-3.myvzw.com] has quit [[NS] Quit: Bye]
15:49 Vorntastic [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
15:54 macdjord is now known as macdjord|slep
16:05 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
16:42 gnolam [quassel@Nightstar-f22.ckv.119.62.IP] has quit [[NS] Quit: Arghl]
16:44 Jessikat` [Jessikat@Nightstar-ltaej8.dab.02.net] has quit [Ping timeout: 121 seconds]
17:33
<@abudhabi>
Is there any good terminal/console client for discord?
17:34
<&[R]>
There are no good clients for discord. There is only the one true client.
17:35
<&[R]>
All hail our short-sighted proprietary overlord.
17:35
<&[R]>
Let us stab him with pitchforks until he unlearns his stupidity.
17:39
<@ErikMesoy>
What R said.
17:43
<&[R]>
You can run a Discord-IRC bridge, but it runs as a bot... which means the "server" owner needs to allow it and do a bunch of funky steps.
17:50
<&ToxicFrog>
[R]: there's also a *real* discord-IRC bridge; I'm using it right now
17:51
<&ToxicFrog>
[R], abudhabi: https://github.com/creesch/discordIRCd
17:51
<&ToxicFrog>
runs locally, looks like an ircd to your IRC client and connects to discord on the other end using the normal client API
17:51
<&ToxicFrog>
So no server owner intervention needed and you look like yourself on the other end rather than like a bot.
17:53
<@abudhabi>
I will investigate.
17:54
<&ToxicFrog>
(I'm currently connected to four discords using this)
18:06 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
18:10 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
18:10 mode/#code [+o Alek] by ChanServ
18:12 Jessikat [Jessikat@Nightstar-qv8roj.dab.02.net] has joined #code
18:43 gnolam [lenin@Nightstar-ego6cb.cust.bahnhof.se] has joined #code
18:43 mode/#code [+o gnolam] by ChanServ
18:49 Kindamoody is now known as Kindamoody|afk
18:53
<@abudhabi>
Hmm. My interface in Mint/XFCE freezes often. This happens especially in Thunderbird, but also sometimes in Chromium.
18:53
<@abudhabi>
Any suggestions on what I could do to try to figure out what's causing it?
18:56 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
18:56
<&[R]>
htop? strace?
18:57
<@abudhabi>
Not familiar with either. What do they do?
18:58
<@abudhabi>
(The freezing is only temporary. Subsides after a few seconds.)
18:59
<&[R]>
htop is a better top.
18:59
<&[R]>
strace will dump all the syscalls a program makes (you can bind it to a running process)
19:01
<&[R]>
https://www.tecmint.com/guider-a-system-wide-linux-performance-analyzer/
20:07 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
20:07 mode/#code [+qo Vornicus Vornicus] by ChanServ
22:19
<&ToxicFrog>
argh
22:20
<&ToxicFrog>
the fact that $path and $PATH are aliased in zsh screws me again
22:23
<&[R]>
...
22:23
<&[R]>
Why is that even a thing?
22:23
<&ToxicFrog>
[R]: $PATH is the traditional string and $path is an array
22:24
<&ToxicFrog>
Which is often more convenient
22:24
<&ToxicFrog>
But it trips me up when I do something like `read path date title` and suddenly sed stops working.
22:24
<&ToxicFrog>
$PATH_ARRAY or something like would have been better.
22:24
<&[R]>
Yeah
22:40 crystalclaw [crystalclaw@Nightstar-12q9ui.xyz] has quit [Ping timeout: 121 seconds]
22:48 crystalclaw [crystalclaw@Nightstar-12q9ui.xyz] has joined #code
22:48 mode/#code [+o crystalclaw] by ChanServ
22:53 Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code
22:56 macdjord|slep is now known as macdjord
22:59
<&[R]>
Slashdot and Sourceforge are down right now. (You can access a very limited subset of pages)
23:18 Jessikat [Jessikat@Nightstar-qv8roj.dab.02.net] has quit [[NS] Quit: Bye]
23:24
<@PinkFreud>
yeah, massive east coast outage
23:28
<@PinkFreud>
may be related to the massive east coast winter storm
23:28
<&McMartin>
Bombogenesis!
23:39 Vornotron [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
23:39 mode/#code [+qo Vornotron Vornotron] by ChanServ
23:42 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
23:43 Vornlicious [Vorn@Nightstar-q3joe6.sub-174-211-23.myvzw.com] has joined #code
23:44 Vornotron [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
23:47 Vorntastic [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
--- Log closed Sat Mar 03 00:00:29 2018
code logs -> 2018 -> Fri, 02 Mar 2018< code.20180301.log - code.20180303.log >

[ Latest log file ]