ceda2vga/src/vga.pio

64 lines
785 B
Plaintext

.program vga_pixel
entrypoint_vga_pixel:
pull
mov y, osr
.wrap_target
mov x, y
wait irq 7
loop:
out pins, 1 [2]
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, 27
hsync_back_porch:
jmp y-- hsync_back_porch [16]
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
irq set 1
mov x, osr
vsync_idle:
wait irq 0
set pins, 1
jmp x-- vsync_idle
.wrap