Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > ROL'in a byte onto itself
2016-03-01 17:04
mhindsbo
Account closed

Registered: Dec 2014
Posts: 50
ROL'in a byte onto itself

What is the fastest and/or shortest code for rolling a pattern through a byte? I use it to trigger an action following a certain pattern. I came up with (18 cycles worst case / 12 bytes):
          clc
          lda pattern
          bpl no_carry
          sec
no_carry  rol pattern
          bcs take_action 

if your pattern ends on a 1 (bit 0 = 1) then you could also do (17 cycles worst case / 13 bytes)
          lda pattern
          bne @cont
          lda #%00110101   ; restore pattern
@cont     asl
          sta pattern
          bcs take_action 

any other variations?
 
... 22 posts hidden. Click here to view all posts....
 
2016-03-03 19:32
Hoogo

Registered: Jun 2002
Posts: 102
Quoting Frantic
@Hoogo: I'd like to add this to codebase, but before doing so I just want to ask if you would rather prefer to do it yourself?
Don't bother, just add it. I'm a little surprised by all this reaction...
2016-03-03 20:04
Frantic

Registered: Mar 2003
Posts: 1627
Quote: Quoting Frantic
@Hoogo: I'd like to add this to codebase, but before doing so I just want to ask if you would rather prefer to do it yourself?
Don't bother, just add it. I'm a little surprised by all this reaction...


I guess nerdy coders like us find the simplicity of such small and simple tricks beautiful.

https://codebase64.org/doku.php?id=base:rotate_byte_and_act_on_..

(Couldn't come up with a sensible name for the article really, but hopefully it is comprehensible.)
2016-03-03 22:12
Digger

Registered: Mar 2005
Posts: 421
What's could be a practical application for that?
2016-03-04 02:29
mhindsbo
Account closed

Registered: Dec 2014
Posts: 50
I use it for an alternating fire pattern. This piece of code sits in the fire function and decides if it fires or not when called
2016-03-06 00:36
Copyfault

Registered: Dec 2001
Posts: 466
Quoting Hoogo
asl pattern
bcc no_action
inc pattern


Wow, that's true art!

Thanks for being (or better getting) active again, Frank ;)
2016-03-06 09:51
Style

Registered: Jun 2004
Posts: 498
Quote: Quoting Hoogo
asl pattern
bcc no_action
inc pattern


Wow, that's true art!

Thanks for being (or better getting) active again, Frank ;)


Id use

ASL mem
ADC #0
2016-03-07 19:17
Hoogo

Registered: Jun 2002
Posts: 102
Quoting Style
ASL mem
ADC #0
It's easier, faster and shorter, but does not work :) Where's the Accu coming from, and where does it go?
2016-03-07 20:04
chatGPZ

Registered: Dec 2001
Posts: 11116
Quote:
It's easier, faster and shorter, but does not work

AEG would love it *g*
2016-03-08 23:29
Style

Registered: Jun 2004
Posts: 498
Quote: Quoting Style
ASL mem
ADC #0
It's easier, faster and shorter, but does not work :) Where's the Accu coming from, and where does it go?


Oh was that a prerequisite? :)


LDA groep
ASL
ADC #0
STA groep


There ;)

(wanders off to find copy of "coding drunk for beginners")
2016-03-09 13:41
mhindsbo
Account closed

Registered: Dec 2014
Posts: 50
Yes the requirement was code that works (checking chapter 1 in "coding drunk for beginners" ;-) just need to add the branch to take action ;-)

All in all Hoogo's solution is both shortest and fastest. Part of the joy I get from coding on the C64 are finding elegant short, fast and clean solutions, within the constraints of the system, and I really like the aesthetics of this one :-)
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Oxbow/Xenon
ptoing
CA$H/TRiAD
jmin
Magic/Nah-Kolor
Data/De-Koder/Tropyx
Shake/Role
Paladin/G★P
Guests online: 149
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Wafer Demo  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.057 sec.