It’s release day again here at C64CD and, since most people will have noticed that we’ve established a routine, this new demo is for the Apple II and takes influences from the previous Code Notes instalments for the same platform (along with a couple of ideas from C64 demos as well). So here is F15 D’Gamma Clone, a crack intro style affair – there’s no sound because that’s what an Apple II intro in 1985 was more likely to do!
There are three effects in operation here; the moving bars are loosely on Black Bag’s F-15 Strike Eagle intro but tweaked a little so that they’re split into twenty chunks across the line with each being at a different position within the sine curve. We also have the logo moving, although the five tiles are shuffled one character at a time rather than the entire graphic bouncing up and down – this is based loosely on the first part of a C64 demo called Pastime 2 by Amok and Future Technologies 2009, except the Apple II version uses bitmapped graphics whilst the C64 is handling things in characters.
The final effect is below the static picture is four lines of text similar to the routine in Clonemas, but with the character inversion being randomly toggled on a cell by cell basis in a similar way to how the Lantern Of D’Gamma intro by The Six Pack worked – the randomisation code comes from a discussion at demo scene website Pouet and your correspondent’s 6502 assembly language version can be found within the source at Github by searching for the subroutine random.
One final thing to note is that in order to synchronise with the screen refresh, this demo relies on $C019, the topmost bit of which is set whilst the display is being rendered and clear during the upper and lower border areas. Although this appears to be quite well documented, your correspondent has previously read that said technique may not be compatible across the Apple II range; if anybody reading should find the time to test on their own system, please let C64CD know through the usual channels what the result was and which expansions are present!
Addendum added 2016-05-20 – Whilst the second edition of Apple’s own Apple IIc Technical Manual states that the vertical blank sync via $C019 mentioned above works, said official tome is apparently wrong and your correspondent will at some point write an updated version of his code to work around that difference. We have to note dear reader that this is precisely the kind of incompatibility that changes to a computer’s specification can cause and why your correspondent has always argued that Commodore’s decision to not upgrade the C64’s BASIC after the machine’s release was a sensible one!
Addendum added 2016-05-21 – An Atari Age forum user called “cybernesto” has very kindly fixed the vertical blank sync issue in your correspondent’s code and tested it as working on his Apple IIc and IIc Plus systems. If that solves the issue remains to be seen, but it runs on far more models of Apple II than before.
Addendum added 2016-06-03 – Marco Verpelli has tweaked the demo a little and converted the source for the Merlin-8 native assembler, this image has been uploaded to the Asimov archive.
 Your correspondent went with twenty rather than the possibly forty because it would have caused all manner of visual artefacts.