Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
hardware:copper_programming_model [2010/03/07 00:06] gilgamesh |
hardware:copper_programming_model [2010/03/09 14:53] (current) 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 '' | ||
- | ===== Copper | + | ===== Copper |
- | Copper lists can consist of the following instructions: | + | |
- | === WAIT === | + | The '' |
- | (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^ | + | ^15^14^13^12^11^10^09^08^07^06^05^04^03^02^01^00^ ^15^14^13^12^11^10^09^08^07^06^05^04^03^02^01^ |
- | | 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^ | + | |
- | | 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 ===== | ||
Copper lists can consist of the following instructions: | Copper lists can consist of the following instructions: | ||
- | === WAIT === | + | ==== WAIT ==== |
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. | ||
- | ^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^09^08^07^06^05^04^03^02^01^00^ ^15^14^13^12^11^10^09^08^07^06^05^04^03^02^01^00^ |
- | | VP |||||||| | + | | VP |||||||| |
* '' | * '' | ||
Line 64: | Line 27: | ||
* '' | * '' | ||
- | === MOVE === | + | ==== MOVE ==== |
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^09^08^07^06^05^04^03^02^01^00^ ^15^14^13^12^11^10^09^08^07^06^05^04^03^02^01^00^ |
- | |0|0|0|0|0|0|0|0| | + | |0|0|0|0|0|0|0|0| |
* '' | * '' | ||
* '' | * '' | ||
- | === SKIP === | + | ==== SKIP ==== |
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^ | + | ^15^14^13^12^11^10^09^08^07^06^05^04^03^02^01^00^ ^15^14^13^12^11^10^09^08^07^06^05^04^03^02^01^00^ |
- | | VP |||||||| | + | | VP |||||||| |
(see '' | (see '' | ||
Line 86: | Line 49: | ||
| COP1LC | | COP1LC | ||
| COP2LC | | COP2LC | ||
- | |||