vasyl_interrupts_and_vasyl_cpu_coordination
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| vasyl_interrupts_and_vasyl_cpu_coordination [2020/10/07 02:51] – [Setting up VASYL interrupts] silverdr | vasyl_interrupts_and_vasyl_cpu_coordination [2021/04/15 12:04] (current) – [VASYL interrupts and VASYL/CPU coordination] laubzega | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| While BeamRacer makes it easy to offload many graphics-related operations to VASYL, there are situations where some precisely-timed assistance from the main CPU may be needed. These can be chiefly grouped into three categories: | While BeamRacer makes it easy to offload many graphics-related operations to VASYL, there are situations where some precisely-timed assistance from the main CPU may be needed. These can be chiefly grouped into three categories: | ||
| - | * Write to an address inaccessible to VASYL. | + | * Writing |
| * Performing computations that 6510 is better suited to. | * Performing computations that 6510 is better suited to. | ||
| * Making sure that CPU operations happen in a specific region of the video frame, to avoid clashes over resources shared with VASYL. | * Making sure that CPU operations happen in a specific region of the video frame, to avoid clashes over resources shared with VASYL. | ||
| Line 11: | Line 11: | ||
| === Non-VIC writes === | === Non-VIC writes === | ||
| - | **MOV** and **XFER** display list instructions do an excellent job of fast, precise writes to VIC-II registers. However, there are locations in C64 memory space that influence video output, and yet are beyond VASYL' | + | **MOV** and **XFER** display list instructions do an excellent job of fast, precise writes to VIC-II registers. However, there are locations in C64 memory space that influence video output, and yet are beyond VASYL' |
| Line 42: | Line 42: | ||
| STA $315 | STA $315 | ||
| </ | </ | ||
| - | * The interrupt needs to be enabled by setting bit 4 in the '' | + | * The interrupt needs to be enabled by setting bit 4 in the '' |
| <code [enable_line_numbers=" | <code [enable_line_numbers=" | ||
| Line 57: | Line 57: | ||
| IRQ ; trigger another interrupt, this time at the beginning of the line | IRQ ; trigger another interrupt, this time at the beginning of the line | ||
| </ | </ | ||
| - | * In your interrupt handler, you need to make sure that VASYL IRQ is acknowledged by setting bit 4 of '' | + | * In your interrupt handler, you need to make sure that VASYL IRQ is acknowledged by setting bit 4 of '' |
| <code [enable_line_numbers=" | <code [enable_line_numbers=" | ||
| - | ; We assume here that no VIC interrupts are enabled and | + | ; We assume here that no VIC interrupts are enabled and |
| - | ; VASYL is the only possible video related IRQ source | + | ; VASYL is the only possible video related IRQ source |
| LDA #$10 | LDA #$10 | ||
| STA $d019 | STA $d019 | ||
vasyl_interrupts_and_vasyl_cpu_coordination.1602064277.txt.gz · Last modified: 2020/10/07 02:51 by silverdr