code logs -> 2023 -> Fri, 03 Feb 2023< code.20230202.log - code.20230204.log >
--- Log opened Fri Feb 03 00:00:26 2023
00:11
<&McMartin>
Oh it was following any lesson links that it just flat out refused to do, claiming they led to The Bad Place
00:14
<&McMartin>
Anyway, yeah, after looking at the capabilities of the playground on easy6502 that is actually *exactly* what you and they asked for so I think that's my first recommendation, with text-mode C64 as a followup if they want to get into retrocoding proper, since there's a natural ramp from stdio to direct screen memory/color edits to sprites to bitmap modes, with a side quest on the SID basically whenever you
00:14
<&McMartin>
want
00:51 Kizor [a@Nightstar-nfsqa7.yok.fi] has quit [Ping timeout: 121 seconds]
01:04 Degi_ [Degi@Nightstar-muv3uf.pool.telefonica.de] has joined #code
01:05 Degi [Degi@Nightstar-m4k.djm.14.89.IP] has quit [Ping timeout: 121 seconds]
01:05 Degi_ is now known as Degi
01:24
<&ToxicFrog>
Huh. I likewise cannot find anything suspicious in the lessons proper.
01:24
<&ToxicFrog>
But thank you very much, I will pass that on :)
01:26 Kizor [a@Nightstar-nfsqa7.yok.fi] has joined #code
01:48 gizmore [kvirc@Nightstar-tqdh4h.dip0.t-ipconnect.de] has joined #code
01:51 gizmore|2 [kvirc@Nightstar-6mvp6d.dip0.t-ipconnect.de] has quit [Ping timeout: 121 seconds]
04:29
<&McMartin>
One fun part about writing about Classic Mac programming is that you get to refer to the OS as "the System", capital S, because that is its name until Mac OS 8
04:59 Degi_ [Degi@Nightstar-k9sv4r.pool.telefonica.de] has joined #code
05:01 Degi [Degi@Nightstar-muv3uf.pool.telefonica.de] has quit [Ping timeout: 121 seconds]
05:01 Degi_ is now known as Degi
06:14 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has joined #code
06:14 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
07:42 abudhabi_ [abudhabi@Nightstar-emidrd.adsl.tpnet.pl] has joined #code
07:45 abudhabi__ [abudhabi@Nightstar-q7v4ii.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
08:06
<&McMartin>
More Mac nonsense, though this is just an initial code walkthrough of my maybe-quarter-done minimal application. https://bumbershootsoft.wordpress.com/2023/02/03/classic-mac-development-beginning-in-earnest/
11:24 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
11:37 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has joined #code
11:37 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
15:01 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
15:01 mode/#code [+qo Vornicus Vornicus] by ChanServ
16:13
<&ToxicFrog>
Mixed results with easy6502. symbol finds that it introduces concepts/instructions in an order that doesn't make a lot of sense, and a lot of the exercises are very open-ended and lack clearly defined goals.
16:13
<&ToxicFrog>
This also prompted the question "how do you map bits in the instruction into signals inside the chip itself"
16:14
<&ToxicFrog>
Which prompted me to crack open some 6502 schematics
16:14
<&ToxicFrog>
And the answer turns out to be "via an instruction predecoder that turns the 8-bit opcode into a ~16-bit "partially decoded" opcode and then feeds that + clock information into a 21x130 PLA
16:15
<~Vornicus>
...gracious
16:15
<&ToxicFrog>
which then feeds into a logic nest that takes up like a third to processor to generate the ~64 actual signals that control which registers are reading/writing which buses, what operation the ALU is performing, etc.
16:15
<&ToxicFrog>
*takes up a third of the processor die
16:16
<&ToxicFrog>
This explains why it is hard to come up with a straightforward instruction bit -> internal signal mapping: there isn't one.
16:22
<~Vornicus>
that's ... cool. i wonder if it could be rejiggered into something more sane.
16:54 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
17:38 Emmy [Emmy@Nightstar-qo29c7.fixed.kpn.net] has joined #code
21:24
<&McMartin>
So the thing is, the 6502 is already one of the most absurdly logic-optimized production chips out there.
21:24
<&McMartin>
(And also: it was modified by legal command to be less compatible with the 6800, which makes PLAs help a lot~)
21:25
<&McMartin>
and also also: though it doesn't mean it in the way that, say, MIPS does -- instructions all take fixed numbers of cycles depending on what they do when they do it -- the 6502 is, but 1970s standards, a "pipelined" architecture. This definitely does not apply to memory accesses, and I've never been entirely sure what it *does* mean to them, but I've assumed that the ALU operations get multiplexed somehow
21:25
<&McMartin>
during address decoding.
21:25
<&McMartin>
But the 6502 was, IIRC, built out of something like 4,000 transistors
21:26
<&McMartin>
There is a point where you find yourself asking "how much simpler do you want to get"
21:26
<&McMartin>
And the answer is this: https://gigatron.io/
21:27
<&ToxicFrog>
3000-3500 transistors depending on what revision/manufacturer you're looking at.
21:27 * McMartin tries to remember what he was told by the MOnSter 6502 guys
21:27
<&McMartin>
I won't swear to it but I think this may also depend on whether or not you count the transistors that are actually just resistors printed on the IC
21:27
<&McMartin>
(Because the MOnSter guys just used resistors for those~)
21:29
<&McMartin>
Anyway, no matter how you count, this is less than 10% the transistor count of the MC68000, which is older than it
21:31
<&ToxicFrog>
Also the Gigatron looks amazing
21:41
<~Vornicus>
wait, the 68000 is older?
21:42
<~Vornicus>
man.
21:47
<&McMartin>
Yeah, its comparative sophistication is that most of the things we think of as microcomputer CPUs are basically hopped-up microcontrollers, but the 68000 was, by deesign and intention, a stripped-down minicomputer.
21:49
<&McMartin>
The best part about the Gigatron was that they did get a chance to show it to some of the old hardware designers from the era of hand-designed and hand-built CPUs, and they were all flabbergasted by its power and elegance
21:50
<&McMartin>
So in a very real sense, we can directly measure that, despite the increasing mechanization and reliance on mass production and replication and automatic routine and optimization
21:50
<&McMartin>
We have, unmistakably, Learned Something about how to do this stuff
21:58
<&ToxicFrog>
That is incredibly cool.
22:01
<&ToxicFrog>
And yeah, re the 6502, I think part of the shock here is that all my cpu-design experience is on stuff where we had a 16 bit data bus and no pipelining or multi-cycle opcodes. At that point you can get away with, say, 2 bits for instruction family and then those control a bank of muxes that determine which decoder the instruction goes to, and the decoders are fairly straightforward
22:01
<&ToxicFrog>
affairs that just peel apart the opcode into different signals and route them to different parts of the control circuitry.
22:01
<&ToxicFrog>
The 6502 (a) takes at least two clocks to execute every single instruction, often more and (b) packs 50+ instructions into 8 bits, at which point you cannot adopt a straightforward 1 bit in IR = 1 wire in the chip design.
22:02
<&McMartin>
Ah, that makes sense
22:03
<&McMartin>
And that also reminds me a bit of the very earliest punchcard computers, which ISTR did things like split things up like that but also use, e.g., letters as operand flags so that you'd just write the machine code directly as AM47I16 for ADD [47], #16 or whatever
22:04
<&McMartin>
Most of my experience with those comes from gawking at museum pieces, not actually learning to command or operate them; I'm overall less interested in the room-sized computers even when you make them small
22:04
<&McMartin>
(But also, AIUI "assemblers" are called that because they'd put the instructions together for you from other sources once that became a less trivial thing to do.)
22:05
<&McMartin>
(Likewise, the original "compilers" were more like library linkers; they took a bunch of routines and made them one binary blob for use elsewhere)
22:05
<&McMartin>
(... which is much closer to what "compiling" actually *means*)
22:07 * McMartin actually scrolls down the Gigatron page, !s
22:08
<&McMartin>
I learned of the Gigatron through them presenting it at VCF West, and I now have the uncomfortable sense that I may have wound up briefly meeting Marcel van Kervinck mere months before he died
22:15
< Alek>
as opposed to months after he died?
22:15
<&McMartin>
That would have been a challenge, to be sure
22:17 macdjord [macdjord@Nightstar-04p1sk.dsl.bell.ca] has quit [[NS] Quit: Deep inside, every housecat believes themself to be just a temporarily embarrassed tiger.]
22:19 macdjord [macdjord@Nightstar-04p1sk.dsl.bell.ca] has joined #code
22:19 mode/#code [+o macdjord] by ChanServ
22:53 Emmy [Emmy@Nightstar-qo29c7.fixed.kpn.net] has quit [Ping timeout: 121 seconds]
22:56 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
--- Log closed Sat Feb 04 00:00:27 2023
code logs -> 2023 -> Fri, 03 Feb 2023< code.20230202.log - code.20230204.log >

[ Latest log file ]