Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
hardware:copper_programming_model [2010/03/07 00:06] gilgamesh more on registers etc |
hardware:copper_programming_model [2010/03/07 09:58] gilgamesh |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Programming Copper ====== | ====== Programming Copper ====== | ||
- | Writing to one of the two registers '' | + | Writing to one of the two registers '' |
- | + | ||
- | The '' | + | |
Copper can call the CPU's attention by filing an interrupt request in '' | Copper can call the CPU's attention by filing an interrupt request in '' | ||
Line 10: | Line 7: | ||
Copper lists can consist of the following instructions: | Copper lists can consist of the following instructions: | ||
- | === WAIT === | + | ==== WAIT ==== |
- | (2 word) waits until video beam counter is greater or equal the argument | + | waits until video beam counter is greater or equal the argument |
During **WAIT** the memory bus will not be accessed, freeing it for different tasks. The bus is accessed at //uneven// memory cycles. | During **WAIT** the memory bus will not be accessed, freeing it for different tasks. The bus is accessed at //uneven// memory cycles. | ||
Line 23: | Line 20: | ||
* '' | * '' | ||
- | === MOVE === | + | ==== MOVE ==== |
- | (2 word) moves data word into secified data register | + | moves data word into secified data register |
^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | ||
|0|0|0|0|0|0|0|0| | |0|0|0|0|0|0|0|0| | ||
Line 31: | Line 28: | ||
* '' | * '' | ||
- | === SKIP === | + | ==== SKIP ==== |
- | (2 word) skip next instruction if video beam counter is greater or equal the argument | + | skip next instruction if video beam counter is greater or equal the argument |
- | + | ||
- | ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | + | |
- | | VP |||||||| | + | |
- | + | ||
- | (see '' | + | |
- | + | ||
- | ==== Copper Lists ==== | + | |
- | Writing to one of the two registers '' | + | |
- | + | ||
- | The '' | + | |
- | + | ||
- | ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | + | |
- | | |||||||||||||||| | ||||||||||||||| | + | |
- | + | ||
- | Copper can call the CPU's attention by filing an interrupt request in '' | + | |
- | + | ||
- | Copper lists can consist of the following instructions: | + | |
- | + | ||
- | === WAIT === | + | |
- | (2 word) waits until video beam counter is greater or equal the argument | + | |
- | During **WAIT** the memory bus will not be accessed, freeing it for different tasks. The bus is accessed at //uneven// memory cycles. | + | |
- | + | ||
- | ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | + | |
- | | VP |||||||| | + | |
- | + | ||
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | + | ||
- | === MOVE === | + | |
- | (2 word) moves data word into secified data register | + | |
- | ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | + | |
- | |0|0|0|0|0|0|0|0| | + | |
- | + | ||
- | * '' | + | |
- | * '' | + | |
- | + | ||
- | === SKIP === | + | |
- | (2 word) skip next instruction if video beam counter is greater or equal the argument | + | |
^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | ||
Line 88: | Line 44: | ||
+ | ===== Copper and Blitter ===== | ||
+ | |||
+ | The '' | ||
+ | |||
+ | ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ ^15^14^13^12^11^10^9^8^7^6^5^4^3^2^1^0^ | ||
+ | | |||||||||||||||| | ||||||||||||||| | ||