--- Log opened Wed Aug 14 00:00:45 2019 |
00:37 | | Kindamoody is now known as Kindamoody[zZz] |
01:08 | | himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code |
01:08 | | mode/#code [+o himi] by ChanServ |
02:27 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
03:22 | < Yossarian> | Godot looks like an interesting engine to build from but there seems to be some limitations plus they have GUI tools I think? |
03:22 | < Yossarian> | maybe one barely writes code at all |
04:33 | <&McMartin> | Yossarian: The book you want, regarding the history of the advancement of the x86 series, is The Graphics Programming Black Book |
04:34 | <&McMartin> | http://www.jagregory.com/abrash-black-book/ |
04:34 | <&McMartin> | Covers the 8088 through the Pentium. |
05:08 | <&[R]> | <Yossarian> [R]: the only big thing between Allegro's std-c and C++99 or whatever for me is difference between new() and delete() and ctors, copy constructors, and just good ol' malloc() <-- new and delete are keywords, not functions |
05:09 | <&[R]> | <Yossarian> [R] and anyone else: here is an interesting question - if you were writing a CLI tool or script and it got a bit complicated and you wanted to offer a GUI front-end that was low-weight and agnostic of tons of dependencies you'd get with something like GTK+, what would you use? <-- I'd simplify the CLI tools. |
05:10 | <&[R]> | But if that absolutely wasn't an option, I'd make a website with a JSON-RPC API, which lets me retain the positives of a CLI (mostly) while letting me represent more complicated information to interact with |
05:11 | <&[R]> | There are literally only three UI things I use: a web browser, an email client (mutt or Thunderbird if I need to send HTML emails), and an IRC client. (Excluding games obviously) |
05:11 | <&McMartin> | If you want a managable and reasonably self-contained set set of "tons of dependencies", Qt has been the best of breed by an enormous margin for over ten years |
05:12 | <&McMartin> | Qt is not however "low weight" except by the standards of modern javascript app deployment. |
05:13 | <&[R]> | Qt's docs alone are massive (though they're HTML and include a fair amount of images IIRC) |
05:14 | <&McMartin> | Desktop GUI applications are full of spiders |
05:14 | <&McMartin> | Gtk3 does not deliver on its alleged cross-platform promise. Qt and Electron do. |
05:14 | <&McMartin> | But if you want light-weight, you're programming directly against the libraries that shipped with the OS, tbqh. |
05:28 | <&McMartin> | But, like, yeah |
05:28 | <&McMartin> | Not Suffering From Consolitis costs you about 10MB these days |
05:28 | <&McMartin> | If you're lucky |
05:28 | <&McMartin> | This is... not strictly necessary, but you have to be insane. |
05:30 | <&McMartin> | There's a chat app that manages to put the entire application on all three platforms into a few hundred KB each, but he also decided that the correct way to do this was to first design and implement his own programming language. |
05:30 | <&McMartin> | I can state with absolute certainty that this was not a necessary step |
05:31 | <&McMartin> | ( https://volt-app.com/ ) |
05:32 | <&McMartin> | And yeah, you get your Mac app down to 350KB by relying on the 70MB that is Cocoa and Foundation already being installed. |
06:20 | | celmin|away [celticminst@Nightstar-6an2qt.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
07:21 | | himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds] |
07:36 | | Kindamoody[zZz] is now known as Kindamoody |
07:42 | | Pink [user1@Nightstar-1j7.l7n.44.24.IP] has joined #code |
08:15 | | macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Connection closed] |
08:15 | | macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has joined #code |
08:15 | | mode/#code [+o macdjord] by ChanServ |
09:21 | | Derakon [Derakon@Nightstar-fr5qel.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
09:36 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
09:36 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
10:36 | | Derakon [Derakon@Nightstar-f1lpvo.ca.comcast.net] has joined #code |
10:36 | | mode/#code [+ao Derakon Derakon] by ChanServ |
10:36 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code |
10:36 | | mode/#code [+o himi] by ChanServ |
12:37 | | * TheWatcher watches jenkins crap itself on a job that has 113821 builds |
12:37 | | * TheWatcher sighs |
12:57 | | Kindamoody is now known as Kindamoody|afk |
15:11 | | Vash [Vash@Nightstar-sjaki9.res.rr.com] has joined #code |
16:43 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code |
17:13 | | Vash [Vash@Nightstar-sjaki9.res.rr.com] has quit [[NS] Quit: Leaving] |
18:12 | | Kindamoody|afk [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Client exited] |
18:14 | | Kimo|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code |
18:14 | | mode/#code [+o Kimo|autojoin] by ChanServ |
18:14 | | Kimo|autojoin is now known as Kindamoody |
19:13 | | Tamber [tamber@furryhelix.co.uk] has quit [The TLS connection was non-properly terminated.] |
19:13 | | Tamber [tamber@furryhelix.co.uk] has joined #code |
19:13 | | mode/#code [+o Tamber] by ChanServ |
19:37 | <~Vornicus> | huh. this one uses a very different style: it pushes a thing to the stack instead of using scratch space. ...I think it leaks a stack value, if I'm reading this right |
19:39 | <~Vornicus> | ...conveniently sized bit here, it does 25 entries which are a value of 40 apart. We're making a multiplication table! |
19:41 | <~Vornicus> | (and specifically one for the screen space) |
19:41 | <&McMartin> | If it's going to play silly buggers with return values or pushing synthetic ones, be aware that the 6502 series pushes a value that is 1 before the return address, not actually the return address. |
19:41 | <&McMartin> | The "OK, you've run an instruction, now bump the program counter" circuitry happens after the pop~ |
19:43 | <~Vornicus> | it's PHA and PLA, we're leaking a single byte, namely ... 0xc0, which means nothing. |
19:43 | <&McMartin> | (This particular trick is very common for implementing jump tables without resorting to self-modifying code) |
19:44 | <&McMartin> | What does "leaking" here, mean? popping and throwing it out? |
19:44 | <~Vornicus> | It pushes but does not pop |
19:44 | <&McMartin> | ... that's usually bad as soon as the next RTS is hit~ |
19:44 | <~Vornicus> | if it uses this thing I do not know where, but it's not in the next hundred instructions. Also we're technically in init |
19:45 | <~Vornicus> | there are no jsrs before here. |
19:45 | <&McMartin> | Oho |
19:45 | | * McMartin shrug |
19:45 | <&McMartin> | Meanwhile, I have been attempting to make sense of an Atari 800 type-in program |
19:45 | <&McMartin> | Which has the twin properties of beign in BASIC and not actually working on any of my emulators. |
19:46 | <&McMartin> | It does not appear to be obviously relying on calls into ROM, though. |
19:47 | <&McMartin> | What it *does*, however, seem to do, is some madness to avoid the need for machine language support routines |
19:47 | <&McMartin> | If I understand what it is trying to attempt... |
19:48 | <&McMartin> | ... well, first, let me back up. The Atari 800 doesn't have sprites. It has "player/missile graphics", which are broadly speaking what the Atari 2600 had, but now a coprocessor called ANTIC manages the scanline-by-scanline wrangling of them. |
19:57 | <&McMartin> | So you have, essentially, "sprites" the height of the whole screen, so you have to move them vertically by doing blits. |
19:57 | <&McMartin> | BASIC's too slow to do that, so you usually write machine-code support to do it |
19:58 | <&McMartin> | Instead of doing that, they have (attempted to; I think the issue is that in the emulated machine I'm using this is failing) move BASIC's string variable area into the spot where the player/missile graphics go, so that it can "blit" with substring copies. |
20:02 | <&McMartin> | And I have a sinking feeling that the correctness of this program relies on things like the order in which you typed the lines in |
20:03 | <&ToxicFrog> | o.O |
20:04 | <&McMartin> | Atari BASIC saves a memory dump of the BASIC state, and variables are allocated when first referenced. |
20:04 | <&McMartin> | Which is when you type them in, not when you run it. |
20:04 | <~Vornicus> | what. the. fuck. |
20:05 | | * Vornicus figures out a few more things, should probably take a shower but hey he found the IRQ routine! |
20:10 | <&McMartin> | ToxicFrog: One of Bumbershoot Software's dirty secrets is that bare-metal programming is actually the easy case~ |
20:13 | <&McMartin> | Oh wait. Atari BASIC has an ADR command that actually lets you take the address of string variables |
20:13 | <&McMartin> | I can actually check to see if the variable is or is not in the right place! |
20:18 | <~Vornicus> | ok. shower time then back to it. This task is far too enjoyable to be real |
20:36 | <~Vornicus> | ok! What's next on here. |
20:45 | < Yossarian> | hmmm |
21:22 | <~Vornicus> | ok. sprite data filled with the first sprites. Then some more data and then.... a call to the BASIC routine STROUT! Which then has a clr/home and a red control code. Now if I could get the disassembler to notice my attempt to combine these two adjacent text fields |
21:44 | < Yossarian> | too tired to be doing this but messing with pdp-8/e emulator |
22:00 | < Yossarian> | I don't suppose anyone has any experience? I think the SW switch has to be in its low state and under STATUS registers it should be on, so now... next instruction |
22:35 | | himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
22:38 | < Yossarian> | I guess I'm not setting the PC register properly. This emulator is OK, there is one with actual text buffer of what's in memory translated to opcodes/assembly but it is Mac OS only. :( |
22:53 | | macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Connection closed] |
22:56 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Connection reset by peer] |
23:06 | | macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has joined #code |
23:06 | | mode/#code [+o macdjord] by ChanServ |
23:29 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
23:32 | | Kindamoody is now known as Kindamoody[zZz] |
23:34 | | Tamber [tamber@furryhelix.co.uk] has quit [The TLS connection was non-properly terminated.] |
23:34 | | Tamber [tamber@furryhelix.co.uk] has joined #code |
23:34 | | mode/#code [+o Tamber] by ChanServ |
--- Log closed Thu Aug 15 00:00:46 2019 |