ceda2vga/src/vga.pio

64 lines
791 B
Plaintext

.program vga_free_run
entrypoint_vga_free_run:
pull
mov y, osr
.wrap_target
mov x, y
wait irq 7
loop:
out pins, 1 [3]
jmp x-- loop
.wrap
.program vga_hsync
entrypoint_vga_hsync:
pull
mov isr, osr
pull
.wrap_target
set pins, 0 [1]
irq set 0
mov x, isr
hsync_pulse:
jmp x-- hsync_pulse [3]
set pins, 1 [1]
set y, 24
hsync_back_porch:
jmp y-- hsync_back_porch [19]
irq set 7
mov x, osr [3]
hsync_idle:
jmp x-- hsync_idle [3]
.wrap
.program vga_vsync
entrypoint_vga_vsync:
pull
mov isr, osr
pull
.wrap_target
mov x, isr
vsync_pulse:
wait irq 0
set pins, 0
jmp x-- vsync_pulse
mov x, osr
vsync_idle:
wait irq 0
set pins, 1
jmp x-- vsync_idle
irq set 1
.wrap