--- 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 |