code logs -> 2019 -> Wed, 14 Aug 2019< code.20190813.log - code.20190815.log >
--- 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
code logs -> 2019 -> Wed, 14 Aug 2019< code.20190813.log - code.20190815.log >

[ Latest log file ]