![]() |
![]() |
#1 |
Registered User
Join Date: Jun 2020
Location: Druidia
Posts: 391
|
Narrow display fetch question.
Is it possible to set up ddfstrt and ddfstop so the display is only 16 pixels wide?
|
![]() |
![]() |
#2 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,095
|
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).
|
![]() |
![]() |
#3 |
Registered User
Join Date: Jun 2020
Location: Druidia
Posts: 391
|
That matches what I'm seeing, thanks.
|
![]() |
![]() |
#4 |
German Translator
Join Date: Aug 2018
Location: Drübeck / Germany
Age: 50
Posts: 214
|
That reminds me of my question:
https://eab.abime.net/showpost.php?p...4&postcount=20 |
![]() |
![]() |
#5 | |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,534
|
Quote:
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 |
|
![]() |
![]() |
#6 |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 374
|
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. |
![]() |
![]() |
#7 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,095
|
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.
|
![]() |
![]() |
#8 |
German Translator
Join Date: Aug 2018
Location: Drübeck / Germany
Age: 50
Posts: 214
|
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? |
![]() |
![]() |
#9 |
Registered User
Join Date: May 2013
Location: Grimstad / Norway
Posts: 877
|
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.
|
![]() |
![]() |
#10 | |
Registered User
Join Date: May 2023
Location: Norwich
Posts: 526
|
Quote:
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. |
|
![]() |
![]() |
#11 | |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,534
|
Quote:
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. |
|
![]() |
![]() |
#12 | |
Registered User
Join Date: Jan 2012
Location: USA
Posts: 374
|
Quote:
|
|
![]() |
![]() |
#13 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,534
|
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
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 |
|
|