Bill Budge posts Pinball Construction Set source code on GitHub
github.com
github.com
CALL -151
3F2:69 FF 5A
BLOAD GPAK.OBJ,A$1300
BLOAD CDRAW.O,A$2480
BLOAD PCSA800.PIC,A$2B00
BLOAD DLIST.O,A$4910
BLOAD SWAP.O,D2,A$4A00
BLOAD TST.O,D1,A$4B00
BLOAD GOATARI.O,D2,A$4B45
BLOAD BOOT.O,D2,A$8E00
BLOAD BOOT2.O,A$8E80
BLOAD ZAP1.O,A$8F00
BLOAD DOWNLOAD.O,D1,A$300
The first line invokes the Apple II "System Monitor", the second writes 3 bytes to memory at address $3F2 (the effect of which is to tell the computer to enter the Monitor whenever someone resets the computer from the keyboard), and the rest load binary files into different memory areas. I'm guessing it's all to build an image to be written to disk. (See [2] for more on the System Monitor.)[1] https://github.com/billbudge/PCS_Atari800/blob/master/Disk1/...
[2] http://apple2.info/wiki/index.php?title=System_Monitor#Gener...
EDIT: added additional details
http://www.youtube.com/watch?v=CDPlfqpgW8c
(I may miss the Merlin assembler, but I don't miss disk ][ drives at all.)
I loved Merlin.
Bill's also not the only developer who has this stuff in the garage. I think the IP rights are just tricky to deal with, so few developers are comfortable dumping this stuff into github yet.
Reading foreign assembly isn't that bad unless it is being intentionally obscured. It definitely takes time to decipher things but at the same time you really learn what's going on :)
More of this type of thing!
[0] http://web.archive.org/web/20030629124143/http://maz.spork.d...
[1] http://www.worldofspectrum.org/infoseekid.cgi?id=0000746
LDA (PARAM),Y ;JUMP TO SELECTION
STA DOMNU6+1
INY
LDA (PARAM),Y
STA DOMNU6+2
DOMNU6 JMP $FFFF
Instead of creating a 16-bit lookup table and doing an indirect indexed branch (which I can't even remember if you can do on a 6502), Budge just modifies the code inline and lets the jump happen naturally. Very nice. lda param_lo,y
sta vector
lda param_hi,y
sta vector+1
vector = * + 1
jmp $5e1f ; dummy address, written with selfmodPinball Construction Set, Spy's Adventure in North America, Robot Odyssey. So many classics on the Apple II that were fun and educational.
I basically learned college level circuit design by playing Robot Odyssey as a child. For those curious, here's a part of a Let's Play trying to solve one of the earliest puzzles in the game:
Thanks! you beat me to my edit.. ;-)
Machines from when assembly was still fun.
(I'm not sure the 6502 counts as particularly much like a Z80?!)
It's the code for the Atari 800 version, I believe, so that's the processor.
Some info on the assembly language for the 6502b http://en.wikibooks.org/wiki/6502_Assembly
Usually you wound up with a handful of bytes free. One cartridge I did had 6 bytes left, and another one had less than 20 and I was trying to think of something cool I could do with 20 bytes.
As a side note, I must say that as a former (contracting) developer at an EA studio, it's a very interesting feeling to see the programmer (the programmer, as in "the one") of a recent release sit next to EA's boss and talk about the title.
Things have certainly moved on a bit, since then. :)
Obviously I can assume it's copyrighted, but it would be nice to have the explicit declarations.
At the very least, people can reasonably assume an implicit permission to do the usual things that are done with Github public repositories: fork at Github, create local copies, create derivatives with the intent of sharing back to the original, etc.
And, if he's using Github's free plan, that's only available for projects that are "open source", a term with a fairly well-understood meaning in our profession. So he's likely also implicitly represented to Github that whatever the formal license, it qualifies as 'open source'.
The author could be confused. It could be a trap. He could probably withdraw any of these implicit permissions by taking the right explicit future steps.
But in the meantime, people don't have to fear normal copying and sharing based on a default 'all rights reserved' assumption. It's probably OK, and even if the author changes his assertions later, penalties for copying during this 'implied consent' period are unlikely.
Although I agree with you that his intentions are probably not at this point to take advantage of his copyright on the code. :)
As far as I can tell, there's no way to turn off a 'public' Github project's download, fork, and pull request functionality. Indeed, those functions are emblematic of the service, and they're meaningless without grants to make copies and republish derivatives far beyond the legacy all-rights-reserved defaults of legislative copyright law.
IANAL, but placing code on Github, where those features are mandatory and expected, looks like an overt act authorizing related copying and modification — an 'implied license' — even without the explicit grants provided by a formally-expressed open source license.
Surely we agree though that it doesn't much matter here. I don't think Bill Budge is going to sue you for porting Pinball Construction Set.
Someone absolutely can get implied permission, from either a physical property-holder or IP rightsholder, when the owner's actions (or even non-actions) are reasonably interpreted to have indicated mutual assent. or created a 'constructive agreement'. or simply waived some rights (modifying the 'all rights reserved'). Some examples of relevant legal principles:
http://en.wikipedia.org/wiki/Implied_license
http://en.wikipedia.org/wiki/Usufruct
http://en.wikipedia.org/wiki/Implied_in_fact_contract
http://en.wikipedia.org/wiki/Estoppel#American_law
http://en.wikipedia.org/wiki/Laches_%28equity%29
It gets murkier in copyright law, because legislation has often been crafted to supercede common law and court precedents.
But these are still potent issues; for example, Google's lawyers sought a summary judgement against Oracle on many of these 'equitable' grounds, based on Oracle's public statements and actions.
Also, the idea of an 'implied license' was a central defense used by those sued by copyright troll Righthaven. (The Righthaven entity has now lost cases right and left, and is facing sanctions for its legal misconduct: http://righthavenlawsuits.com/.)
So it's not just that Bill Budge won't sue. It's that if he did, and asserted that his intent was always 'all rights reserved', he'd almost certainly lose. Defendants would have a strong, perhaps ironclad argument that upload to Github was implied permission for lots of copying/reuse/modification. (That is, you can't put something into a world-readable folder that by custom means "download, share and improve me" – and then assert that's not what you wanted people to do.) And that goes doubly if Budge is on the free plan, that's reserved for 'open source' projects.
When informing people about the letter of copyright law, and the maximal interpretation often asserted by rightsholders and literalists/authoritarians, it's important to also communicate how copyright law is really practiced and interpreted by the courts, and reasonable people. Many of our era's emblematic companies and services -- including Github, Google, YouTube, and blogging -- absolutely depend on the more liberal, fuzzy, implied-permissions and reasonable-balances practice of copyright law.