ceda2vga/src/vga.pio

64 lines
791 B
Plaintext
Raw Normal View History

2022-10-10 17:10:52 +00:00
.program vga_free_run
2022-10-10 19:48:16 +00:00
entrypoint_vga_free_run:
2022-10-15 13:08:22 +00:00
pull
mov y, osr
2022-10-17 16:15:52 +00:00
.wrap_target
2022-10-15 13:08:22 +00:00
mov x, y
2022-10-17 14:52:15 +00:00
wait irq 7
2022-10-10 17:10:52 +00:00
loop:
out pins, 1 [2]
2022-10-15 13:08:22 +00:00
jmp x-- loop
2022-10-17 16:15:52 +00:00
.wrap
2022-10-10 17:10:52 +00:00
.program vga_hsync
2022-10-10 19:48:16 +00:00
entrypoint_vga_hsync:
2022-10-11 18:39:22 +00:00
pull
2022-10-12 18:29:11 +00:00
mov isr, osr
pull
2022-10-17 16:15:52 +00:00
.wrap_target
set pins, 0 [1]
irq set 0
2022-10-12 18:29:11 +00:00
mov x, isr
2022-10-11 18:39:22 +00:00
hsync_pulse:
2022-10-17 16:15:52 +00:00
jmp x-- hsync_pulse [3]
set pins, 1 [1]
set y, 27
2022-10-17 16:15:52 +00:00
hsync_back_porch:
jmp y-- hsync_back_porch [16]
2022-10-17 14:52:15 +00:00
irq set 7
2022-10-17 16:15:52 +00:00
mov x, osr [3]
2022-10-11 18:39:22 +00:00
hsync_idle:
2022-10-17 16:15:52 +00:00
jmp x-- hsync_idle [3]
.wrap
2022-10-12 18:54:29 +00:00
.program vga_vsync
entrypoint_vga_vsync:
pull
mov isr, osr
pull
2022-10-17 16:15:52 +00:00
.wrap_target
mov x, isr
vsync_pulse:
2022-10-12 20:09:16 +00:00
wait irq 0
set pins, 0
jmp x-- vsync_pulse
2022-11-27 22:07:38 +00:00
irq set 1
2022-10-12 20:09:16 +00:00
mov x, osr
vsync_idle:
wait irq 0
set pins, 1
2022-10-12 20:09:16 +00:00
jmp x-- vsync_idle
2022-10-17 16:15:52 +00:00
.wrap