rallyrabbit Posted March 9, 2021 Share Posted March 9, 2021 I feel silly asking this, I assumed I could find some information on DPC (and potentially how Pitfall II is written) or DPC+... but I'm not finding any specific information on than sporadic notes... is there nothing more .... formalized? Quote Link to comment Share on other sites More sharing options...
JetSetIlly Posted March 9, 2021 Share Posted March 9, 2021 1 hour ago, rallyrabbit said: I feel silly asking this, I assumed I could find some information on DPC (and potentially how Pitfall II is written) or DPC+... but I'm not finding any specific information on than sporadic notes... is there nothing more .... formalized? DPC is defined in a US patent. https://patents.google.com/patent/US4644495A/en And for DPC+ I found these links very helpful but nothing as far as I know, nothing formal as a patent. https://atariage.com/forums/topic/163495-harmony-dpc-programming DPC+ with ARM https://atariage.com/forums/blogs/entry/11712-dpc-arm-development/?tab=comments#comment-27116 1 Quote Link to comment Share on other sites More sharing options...
rallyrabbit Posted March 10, 2021 Author Share Posted March 10, 2021 7 hours ago, JetSetIlly said: DPC is defined in a US patent. https://patents.google.com/patent/US4644495A/en And for DPC+ I found these links very helpful but nothing as far as I know, nothing formal as a patent. https://atariage.com/forums/topic/163495-harmony-dpc-programming DPC+ with ARM https://atariage.com/forums/blogs/entry/11712-dpc-arm-development/?tab=comments#comment-27116 Ask a vague question and get any answer that comes that's on me! Let me rephrase. Is there more formalized documentation on how to use the DPC/DPC+ feature set? I've read all the concepts on the original DPC, which sounds fairly straight forward if not a bit cryptic due to how it works. It's more a case of, as a coder, what specifics do I use to utilize this, recommended best practices, etc. However, your links lead me over to the Harmony/Melody club on AtariAge which I didn't know existed and that has a ton of stuff for me to go through. So shame on me for not finding that on me own! Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 10, 2021 Share Posted March 10, 2021 4 minutes ago, rallyrabbit said: Is there more formalized documentation on how to use the DPC/DPC+ feature set? The documentation is in the header file DPCplus.h that's available in the Harmony DPC+ programming topic, such as this section which defines the 8 Data Fetcher registers. Refer to DPCplus.asm for code examples. ;---------------------------------------- ; Data Fetcher ;---------------------------------------- ; There are 8 Data Fetchers which are used to access data stored in the Display ; Data bank. Before using, you must point the Data Fetcher at the data to read ; via DFxLOW and DFxHI. After each read the Data Fetcher will update to point ; to the next byte of data to return. ; ; psuedo code* to point Data Fetcher 1 to the color data ; lda #<(ColorDataPosition - HowFarDownScreen) ; sta DF1LOW ; lda #>(ColorDataPosition - HowFarDownScreen) ; sta DF1HI ; .... ; then in the kernel read the Data Fetcher and update the color, takes 7 cycles ; LDA DF1DATA ; STA COLUP0 ; ; * see DPCplus.asm for actual code ;---------------------------------------- DF0DATA DS 1 ; $08 DF1DATA DS 1 ; $09 DF2DATA DS 1 ; $0A DF3DATA DS 1 ; $0B DF4DATA DS 1 ; $0C DF5DATA DS 1 ; $0D DF6DATA DS 1 ; $0E DF7DATA DS 1 ; $0F 7 minutes ago, rallyrabbit said: your links lead me over to the Harmony/Melody club If you're planning to use pure 6507 code then DPC+ is what you should use. If you're planning to take advantage of C code running on the ARM processor then CDFJ is the way to go. CDFJ cannot be used with pure 6507 code as most of the data streams can only be configured by the ARM. Quote Link to comment Share on other sites More sharing options...
rallyrabbit Posted March 10, 2021 Author Share Posted March 10, 2021 11 minutes ago, SpiceWare said: The documentation is in the header file DPCplus.h that's available in the Harmony DPC+ programming topic, such as this section which defines the 8 Data Fetcher registers. Refer to DPCplus.asm for code examples. ;---------------------------------------- ; Data Fetcher ;---------------------------------------- ; There are 8 Data Fetchers which are used to access data stored in the Display ; Data bank. Before using, you must point the Data Fetcher at the data to read ; via DFxLOW and DFxHI. After each read the Data Fetcher will update to point ; to the next byte of data to return. ; ; psuedo code* to point Data Fetcher 1 to the color data ; lda #<(ColorDataPosition - HowFarDownScreen) ; sta DF1LOW ; lda #>(ColorDataPosition - HowFarDownScreen) ; sta DF1HI ; .... ; then in the kernel read the Data Fetcher and update the color, takes 7 cycles ; LDA DF1DATA ; STA COLUP0 ; ; * see DPCplus.asm for actual code ;---------------------------------------- DF0DATA DS 1 ; $08 DF1DATA DS 1 ; $09 DF2DATA DS 1 ; $0A DF3DATA DS 1 ; $0B DF4DATA DS 1 ; $0C DF5DATA DS 1 ; $0D DF6DATA DS 1 ; $0E DF7DATA DS 1 ; $0F If you're planning to use pure 6507 code then DPC+ is what you should use. If you're planning to take advantage of C code running on the ARM processor then CDFJ is the way to go. CDFJ cannot be used with pure 6507 code as most of the data streams can only be configured by the ARM. Thanks sir! I've been reading up on your stuff for the past hour so. Simply amazing so far!!!! I have a lot of reading to do to figure this out. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.