Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
Thread Over   [2012]

Thread Over Released by :

Release Date :
4 December 2012

Type :
C64 256b Intro

User rating:awaiting 8 votes (2 left)   See votestatistics

Credits :
Code .... Wisdom of Crescent

Download :

Look for downloads on external sites:

User Comment
Submitted by Skate on 5 December 2012
congratulations! these are one of the most trickiest 12 bytes. :)
User Comment
Submitted by Wisdom on 5 December 2012
Frantic, right, but then, you don't have to use X for indexing, and you can use Y instead (which has $01 as default value on startup, but I didn't check where it's coming from, it worked on all emus I have).

007C JSR $FFD2
007F SRE ($83),Y
0081 TXA
0082 SBC #$91
0084 BNE $007C

That makes it 12 bytes, as Skate suggested. Also that makes it very cooperatively written code, cheers guys.
User Comment
Submitted by Frantic on 5 December 2012
@Wisdom: There is no ROR (z,x) but there is SRE (z,x) which does A <- (M >> 1) \-/ A. If the value of A is thrown away anyway, with that TXA that Skate suggested, then the extra EOR stuff on the A register performed by SRE doesn't matter. The problem would rather be that you would have to do SBC #$91 instead of $92, due to different value in the A register than in your version, and then your trick of accessing $d012 through its mirror on $d092 wouldn't work any more... :)
User Comment
Submitted by Wisdom on 5 December 2012
Also very nice trick, Skate. I don't think it is possible to merge two methods, due to unavailability of an (ZP,X) addressing mode for ROR. But something else can be thought, of course. Thank you for your contribution.
User Comment
Submitted by Skate on 5 December 2012
13 bytes version has a very nice trick. but if we're going to assume x register to be $ff at the start up, there is an alternative method which i've used for random +-1 value switching before.

	ror $d012
	adc #$6e
	jsr $ffd2
	bvc -

if we merge both methods (didn't try it myself), 12 bytes might be possible. just my 2 cents.
User Comment
Submitted by Wisdom on 4 December 2012
Uploaded a screenshot from 11 byte (memmaze) version. If you wait around 45 seconds (until the program reaches $A000), this is what you see. Previously, I was lazy to upload a new screenshot, and just used the one from Thread Down. :-)

$FFD2 preserves input register values on exit, when output device is the screen.
User Comment
Submitted by enthusi on 4 December 2012
The 11 byte version looks nothing like the screenshot though of course, depending on if you run it after powercycle :).
Isnt ffd2 even kinda setting X?
Anyway, nice one :)
User Comment
Submitted by Wisdom on 4 December 2012
11 and 13 bytes versions of the original effect. Both versions have their own drawbacks; 13 bytes version expects X register to be $FF at startup (nevertheless, it worked on all emus I have tried), and 11 bytes version uses the data in memory for its output, instead of having a "random" input.
Search CSDb
Prev - Random - Next
Detailed Info
· Summaries (1)
· User Comments (8)
· Production Notes
Fun Stuff
· Goofs
· Hidden Parts
· Trivia
· Discuss this release
Info on other sites
· Pouët
Support CSDb
Help keep CSDb running:

Funding status:

About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.082 sec.