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 > 100% versions..? Party versions..? etc..?
2018-11-19 22:21
Raistlin

Registered: Mar 2007
Posts: 570
100% versions..? Party versions..? etc..?

So, I was wondering ...

Both "Delirious 11" and "X Marks the Spot" have the RESTORE key crash... and "X Marks" has a last minute glitch that crept in...

For myself I'd love to release a 100% version ... but I also kinda wouldn't - because doing so "dirties" the CSDB releases somewhat ... there'd then be something like an "X Marks Party Version" and "X Marks 100% Version" sullying the charts ........

I know Comaland had a 100% version, I can see it right now sat nicely at #2 in the charts ... but that version has more changed since the party version than what I'd likely do...

What do others think? Leave the demos alone and move on .. or go back and fix them.
 
... 48 posts hidden. Click here to view all posts....
 
2018-11-20 21:45
soci

Registered: Sep 2003
Posts: 474
Not quite as much. It's 8 to 10.
2018-11-20 21:46
Oswald

Registered: Apr 2002
Posts: 5022
"Set CIA2 timer A period to 9 cycles and set CIA2 timer B to count 7 timer A underflows (9 cycles * 7 = 63 cycles), then let timer B trigger interrupts, NMI vector still pointing to timer A counter ($dd04).

Et voilà, one timer NMI per rasterline with only 9 interrupt handlers "

instant erect penis. thats beautiful :)
2018-11-20 22:14
Krill

Registered: Apr 2002
Posts: 2850
Quoting soci
Not quite as much. It's 8 to 10.
Not so rhetorical a question then, eh? :)

Anyways, yes, point taken. So 21 interrupt handlers with the two-timers setup in the worst case. And well, the extra interrupt handlers only reachable by hitting restore would just be an RTI each, anyways.

However... all 8-cycle instructions are undocs, and thus the maximum interrupt delay for "legal" code would be 9 cycles, which fits neatly with the 9-7 scheme.
2018-11-20 22:36
Raistlin

Registered: Mar 2007
Posts: 570
Thanks everyone :-)

I'll have a think about this... I've never played much with the CIA timers to be honest... and I've no idea whether that's allowed when using Spindle? I'll see...
2018-11-20 22:40
Krill

Registered: Apr 2002
Posts: 2850
Perfectly fine with other loaders that have optional frameworks. :)

Be aware of different CIA revisions vs. different interrupt delay, though.
2018-11-20 23:14
soci

Registered: Sep 2003
Posts: 474
Still the 7 cycle modify absolute indexed instructions (like LSR $1000,x) need to be avoided as jump targets. The 9*7 scheme can compensate up to 8 cycles only.

But this special case shouldn't be too difficult to avoid in practice.
2018-11-20 23:21
hedning

Registered: Mar 2009
Posts: 4602
Just ignore the restore-thing, Raistlin. It’s no flaw. What I said at X was ”don’t tell Burglar not to press Restore, as that might trigger him to actually press it” ;) If people feel a need to press restore during the demo, let them have the reward they deserve.
2018-11-20 23:26
Copyfault

Registered: Dec 2001
Posts: 466
Quoting soci
I think I must ask the following rhetoric question:

What's the worst case interrupt latency of the following code sequences in cycles?
1.
clc
bcc *+2
rts

2.
ldx #1
bne *+2
lsr $1000,x

3. 
ldx #1
bne *+2
isb ($10,x)

No page boundary crossing.
The relevant question is: what range of interupt latency are we dealing with? I.e., how many different states do we have upon entering the irq?

IIRC, when I examined this long ago, I found this (going through the examples above):
for 1. min latency of +1 (irq happens on 1st cycle of "clc"), max latency of +7 (irq occurs on 2nd cycle of bne)
-> 7 different states

for 2. min latency of +1, max latency of +8
-> 8 different states

for 3. min latency of +1, max latency of +9
-> 9 different states
Thus, the 9*7-method presented by Krill should work on any "legal code usage"-occasion. Unless you want to cover the difference between old and new cia by treating it as an additional latency cycle (which would raise the no. of states given above by one in every case).

Correct me if I'm wrong, but I'm rather sure that the behaviour was like this...
2018-11-20 23:53
Krill

Registered: Apr 2002
Posts: 2850
If i read Cycles to get into IRQ routine correctly, there are 9 different timer values (8 cycles jitter) for "legal" instructions in the branch-to-same-page case.

11 different values would be the maximum: add one for "illegals" and another one for raster IRQ on line 0, which doesn't apply here.
2018-11-21 00:08
soci

Registered: Sep 2003
Posts: 474
I was wrong, sorry.

Copyfault is right, the taken branch is only adding a single cycle and therefore 9 interrupts will covers all cases, including illegal opcodes.

More testing and less talking for me next time ;)
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
Fred/Channel 4
Moderators/CSDb Staff
Scrap/Genesis Project
acrouzet/G★P
doctorfargo/Binary L..
jmin
Youth
Guests online: 70
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 Dawnfall V1.1  (9.5)
8 Quadrants  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (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 Musicians
1 Vincenzo  (9.8)
2 Rob Hubbard  (9.7)
3 Stinsen  (9.7)
4 Jeroen Tel  (9.6)
5 Linus  (9.6)

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