English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 12 March 2024, 14:49   #1
Jobbo
Registered User
 
Jobbo's Avatar
 
Join Date: Jun 2020
Location: Druidia
Posts: 389
Narrow display fetch question.

Is it possible to set up ddfstrt and ddfstop so the display is only 16 pixels wide?
Jobbo is offline  
Old 12 March 2024, 15:00   #2
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
No, afaik 32pix is minimum. The reason being you would have to set start=end and that in turn results in no display. If you set end=start+8, the way things are calculated that ends up in 32pix (add 8, multiply by 2).
a/b is offline  
Old 12 March 2024, 15:04   #3
Jobbo
Registered User
 
Jobbo's Avatar
 
Join Date: Jun 2020
Location: Druidia
Posts: 389
That matches what I'm seeing, thanks.
Jobbo is offline  
Old 12 March 2024, 20:56   #4
Rock'n Roll
German Translator
 
Rock'n Roll's Avatar
 
Join Date: Aug 2018
Location: Drübeck / Germany
Age: 49
Posts: 185
That reminds me of my question:
https://eab.abime.net/showpost.php?p...4&postcount=20
Rock'n Roll is offline  
Old 12 March 2024, 21:29   #5
ross
Defendit numerus
 
ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,474
Quote:
Originally Posted by Rock'n Roll View Post
Yep, and also this:
https://eab.abime.net/showthread.php?t=111329

But be careful, as you can guess from the thread I indicated, the behavior is not the same in OCS and ECS/AGA cases, and this is for the reason that they use two different methods in managing the bitplanes DMA: ECS+ can restart the fetches during the line (even if DMA is 'temporarily' stopped).

So in practice in OCS if DDFSTOP<=DDFSTRT* then there is no STOP match and the fetches continue up to the line hard_stop, while in ECS+ the opposite happens, i.e. the fetches can re-start from the hard_start and stop at DDFSTOP (provided that the STOP is lower than the START).

*clarification: the match after the DDFSTRT can also occur for the minimum granularity of the DDF registers, therefore it is different for OCS and ECS/AGA.
This means that there are two minimum block fetches also for DDFSTOP=DDFSTRT+4 (OCS) or DDFSTOP=DDFSTRT+2 (ECS+).
Furthermore, the fetch is always relative to a DMA block, which can contain several sub-blocks, depending on the resolutions (1 sub-block for lo-res, 2 for hi-res, 4 for sh-res); and add to this all the FMODE handling...
It's no coincidence that I came up with that not-so-simple formula in the indicated thread

Last edited by ross; 12 March 2024 at 22:10. Reason: little fix
ross is offline  
Old 12 March 2024, 23:04   #6
mc6809e
Registered User
 
Join Date: Jan 2012
Location: USA
Posts: 372
What if the copper is used to turn bp dma on and off using DMACON? Does a match with DDFSTRT turn it back on if the copper turns it off? Is bp dma restarted by the copper if it's already off because of DDFSTOP match? If DDFSTRT matches and fetching is occurring can the copper puase bp fetching?

My guess is yes but I'm not certain.

Hypothetical 16 pixel wide might be possible using copper to stop fetches once DDFSTRT starts them.
mc6809e is offline  
Old 13 March 2024, 00:06   #7
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
DMA on/off would work, but the price is 1x wait and 2x move per rasterline, so the question then becomes why? To save DMA (which it doesn't), or you really need a 16pix wide display and it doesn't matter if it's not a passive screen mode.
a/b is offline  
Old 13 March 2024, 09:09   #8
Rock'n Roll
German Translator
 
Rock'n Roll's Avatar
 
Join Date: Aug 2018
Location: Drübeck / Germany
Age: 49
Posts: 185
Things are the way they are and yet I sometimes ask myself why this "complicated" and
therefore error-prone calculation of the DDF values is left to the programmer.

Why isn't it enough to simply specify the size of the display (possibly a bit for horizontal scrolling yes/no)
and that's it and the hardware takes care of the bitplane data fetch on its own?

Why was this task not solved in terms of circuitry?
What advantage does the "freedom" of manually setting the DDF values offer?
Rock'n Roll is offline  
Old 13 March 2024, 09:21   #9
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
MY possible understanding is that the hw keeps adding 2 to the memory pointers for each fetch until it reaches the "last fetch" where it instead adds the modulo. It simplifies the logic.
NorthWay is offline  
Old 13 March 2024, 09:34   #10
AestheticDebris
Registered User
 
Join Date: May 2023
Location: Norwich
Posts: 377
Quote:
Originally Posted by Rock'n Roll View Post
Why was this task not solved in terms of circuitry?
What advantage does the "freedom" of manually setting the DDF values offer?
It saves silicon.

Adding extra logic to translate parameters into these values would've increased the cost (and arguably reduced the flexibility). The burden on the programmer was probably considered to be a lot lower, especially since it was probably assumed most people would stick to either what the OS does or to "known good" display setups. Hardware designers were rarely thinking about all the weird edge case demo effects that could be pulled off with what they built.
AestheticDebris is offline  
Old 13 March 2024, 09:54   #11
ross
Defendit numerus
 
ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,474
Quote:
Originally Posted by mc6809e View Post
What if the copper is used to turn bp dma on and off using DMACON? Does a match with DDFSTRT turn it back on if the copper turns it off? Is bp dma restarted by the copper if it's already off because of DDFSTOP match? If DDFSTRT matches and fetching is occurring can the copper puase bp fetching?

My guess is yes but I'm not certain.

Hypothetical 16 pixel wide might be possible using copper to stop fetches once DDFSTRT starts them.
It's not so simple.
See https://eab.abime.net/showpost.php?p...6&postcount=13

What you said may be valid in OCS or vice versa in ECS+ with a bit different conditions (and not for both chipset).
The advice is to do some testing because you may have unexpected results

EDIT: but what a/b wrote remains: it doesn't make much sense to do all these acrobatics with copper.
If it's just for testing hardware functionality then experimenting is actually fine, but it doesn't make much practical sense to make a 16px wide lo-res display when you have the system 'working against you'.

Last edited by ross; 13 March 2024 at 10:06.
ross is offline  
Old 15 March 2024, 19:34   #12
mc6809e
Registered User
 
Join Date: Jan 2012
Location: USA
Posts: 372
Quote:
Originally Posted by ross View Post
EDIT: but what a/b wrote remains: it doesn't make much sense to do all these acrobatics with copper.
If it's just for testing hardware functionality then experimenting is actually fine, but it doesn't make much practical sense to make a 16px wide lo-res display when you have the system 'working against you'.
If it were me and 16 colors were enough I'd just use attached sprites but he asked about 16px wide bp and who am I to judge?
mc6809e is offline  
Old 15 March 2024, 19:38   #13
ross
Defendit numerus
 
ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,474
Quote:
Originally Posted by mc6809e View Post
If it were me and 16 colors were enough I'd just use attached sprites but he asked about 16px wide bp and who am I to judge?
Yeah, of course I absolutely didn't want to judge either the OP or you , it was just a consideration.
ross is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Monitor question: Squished display in productivity mode paraj support.Hardware 12 31 January 2022 21:10
Silly OCS/ECS/AGA display question Fingerlickin_B support.Hardware 6 11 September 2008 11:35
Question about AGA display data fetches FrenchShark Coders. General 7 30 December 2007 16:40
Suggestion about the IRC user list (low priority problem in narrow window) eLowar project.EAB 7 06 August 2007 20:36
Newbie here, question about cd32 display. saturndual32 New to Emulation or Amiga scene 7 26 March 2005 00:29

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 01:40.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.08513 seconds with 13 queries