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 > CSDb Entries > Event id #2417 : First CSDb "Unintended OpCode coding challenge"
2015-10-11 07:18
Monte Carlos

Registered: Jun 2004
Posts: 364
Event id #2417 : First CSDb "Unintended OpCode coding challenge"

So here it is. The First CSDb "Unintended OpCode coding challenge" starts over.

First CSDb "Unintended OpCode Coding Challenge"

Please give some feedback about your interest in this compo.
For those who have been part of the discussion
http://csdb.dk/forums/?roomid=12&topicid=112819#112927
please let me know if you are in better agreement with the reworked rules than before.
However, there will not be a rule change anymore.
 
... 44 posts hidden. Click here to view all posts....
 
2015-10-21 06:36
Bitbreaker

Registered: Oct 2002
Posts: 508
If you want it comfortable, switch to Java.
2015-10-21 13:44
Rastah Bar
Account closed

Registered: Oct 2012
Posts: 336
If you want to make it a subroutine, is this a good idea?
start:  lda zp2
        clc
        ldx #$60
        rol zp1
        rol zp2
        sbx #$00
        lda $c000,x
        sta start+2
        rts 


Where $c000, $c020, $c040, and $c060 contain $18,$38,$38,$18, respectively (opcode clc=$18, sec=$38).

First call: jsr init
Subsequent calls: jsr start

With RLA:
 
start:
        clc
        lda #$60
        rol zp1
        rla zp2
        tax
        lda $c000,x
        sta start
        rts


But I can imagine you want to call it for example 8 times in a row to generate an entire byte in which case the overhead of storing the state of the MLS generator can be much reduced.
2015-10-21 16:29
Oswald

Registered: Apr 2002
Posts: 5095
Quote: If you want it comfortable, switch to Java.

2015-10-22 09:30
Rastah Bar
Account closed

Registered: Oct 2012
Posts: 336
Quoting Color Bar
If you want to make it a subroutine, is this a good idea?
start:  lda zp2
        clc
        ldx #$60
        rol zp1
        rol zp2
        sbx #$00
        lda $c000,x
        sta start+2
        rts 


Where $c000, $c020, $c040, and $c060 contain $18,$38,$38,$18, respectively (opcode clc=$18, sec=$38).

[/code]


Faster is:
init:  lda #seed1
       sta zp1
start: lda #seed2
       clc ; or sec depending on how you want to initialize
       rol zp1
       rol
       sta start+1
       tax
       lda $c000,x
       sta start+2
       rts


This requires a look up table with $18,$38 values for any value of A after the rol. This has the advantage that it is easier to generalize to other MLS orders, where you may have to EOR more than two bits. No UOC required :-(
2015-10-25 12:50
Monte Carlos

Registered: Jun 2004
Posts: 364
lax blabla,x (y)
sbx #..

should emulate cpx,y or cpx,x
2015-10-25 16:19
chatGPZ

Registered: Dec 2001
Posts: 11390
but since that destroys akku, you can just aswell use
txa
cmp bla,y 

:)
2015-10-25 21:17
Oswald

Registered: Apr 2002
Posts: 5095
yeah I wanted to keep A intact :)
2015-10-25 21:31
Rastah Bar
Account closed

Registered: Oct 2012
Posts: 336
In the special case that 'bla' is on a page boundary (for example $1f00):

sty label+1
label:
cpx $1f00
2015-10-25 21:49
Oswald

Registered: Apr 2002
Posts: 5095
yup that would work, but probably also be slower or on par with what I wanted to optimize.
2015-10-26 18:34
Rastah Bar
Account closed

Registered: Oct 2012
Posts: 336
Code optimization is hard ...
Previous - 1 | 2 | 3 | 4 | 5 | 6 - 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
iAN CooG/HVSC
Falborg
Perff/No Name
MP Software/Hokuto F..
Guests online: 1145
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Coma Light 13  (9.6)
4 Edge of Disgrace  (9.6)
5 Mojo  (9.6)
6 Uncensored  (9.6)
7 The Demo Coder  (9.6)
8 Comaland 100%  (9.6)
9 What Is The Matrix 2  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.7)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 Morph  (9.5)
7 Dawnfall V1.1  (9.5)
8 Libertongo  (9.5)
9 Katzen-Video.mp4  (9.5)
10 Onscreen 5k  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Oxyron  (9.3)
3 Performers  (9.3)
4 Triad  (9.3)
5 Fairlight  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 Antitrack  (9.8)
3 OTD  (9.8)
4 Fungus  (9.8)
5 S!R  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.056 sec.