Jump to content
IGNORED

Manuals or Howtos on DPC?DPC+


Recommended Posts

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

 

 

  • Like 1
Link to comment
Share on other sites

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!

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...