sixth viewport

This commit is contained in:
Brooke Vibber 2025-01-01 21:15:38 -08:00
parent 837082cf56
commit dcf5a3f59e
2 changed files with 9 additions and 1 deletions

View file

@ -296,6 +296,7 @@ viewport_zoom:
.byte 7
.byte 5
.byte 7
.byte 7
viewport_ox:
.dword ($00000000 & $3fffffff) << 2
@ -303,6 +304,7 @@ viewport_ox:
.dword ($ff110000 & $3fffffff) << 2
.dword ($fe400000 & $3fffffff) << 2
.dword ($fe3b0000 & $3fffffff) << 2
.dword $fd220000
viewport_oy:
.dword ($00000000 & $3fffffff) << 2
@ -310,6 +312,7 @@ viewport_oy:
.dword ($ffbe0000 & $3fffffff) << 2
.dword ($00000000 & $3fffffff) << 2
.dword ($fffe0000 & $3fffffff) << 2
.dword $ff000000
; 2 + 9 * byte cycles
.macro add bytes, dest, arg1, arg2
@ -1426,6 +1429,8 @@ number_keys:
beq four
cpy #KEY_5
beq five
cpy #KEY_6
beq six
jmp skip_char
one:
@ -1442,6 +1447,9 @@ four:
jmp load_key_viewport
five:
ldx #4
jmp load_key_viewport
six:
ldx #5
; fall through
load_key_viewport:
jsr load_viewport

View file

@ -18,7 +18,7 @@ Enjoy! I'll probably work on this off and on for the next few weeks until I've g
## Current state
Basic rendering is functional, with interactive zoom/pan (+/-/arrows) and 5 preset viewports via the number keys.
Basic rendering is functional, with interactive zoom/pan (+/-/arrows) and 6 preset viewports via the number keys.
The 16-bit signed integer multiplication takes two 16-bit inputs and emits one 32-bit output in the zero page, using the Atari OS ROM's floating point registers as workspaces. Inputs are clobbered.