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:49] – 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=" |
vasyl_interrupts_and_vasyl_cpu_coordination.1602064149.txt.gz · Last modified: 2020/10/07 02:49 by silverdr