71 lines
1.7 KiB
NASM
71 lines
1.7 KiB
NASM
;
|
|
; Jump table initialisation
|
|
;
|
|
; r1: sprite id
|
|
; r2: pointer address
|
|
; r3: pointer value
|
|
|
|
; sprite_empty
|
|
add r1, zr, sprites.empty
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_empty
|
|
store_32 [r2], r3
|
|
; sprite_unimplemented
|
|
add r1, zr, sprites.unimplemented
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_unimplemented
|
|
store_32 [r2], r3
|
|
; sprite_wall_end
|
|
add r1, zr, sprites.wall_end
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_wall_end
|
|
store_32 [r2], r3
|
|
; sprite_wall_straight
|
|
add r1, zr, sprites.wall_straight
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_wall_straight
|
|
store_32 [r2], r3
|
|
; sprite_wall_corner
|
|
add r1, zr, sprites.wall_corner
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_wall_corner
|
|
store_32 [r2], r3
|
|
; sprite_robot
|
|
add r1, zr, sprites.robot
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_robot
|
|
store_32 [r2], r3
|
|
; sprite_ghost
|
|
add r1, zr, sprites.ghost
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_ghost
|
|
store_32 [r2], r3
|
|
; sprite_coin
|
|
add r1, zr, sprites.coin
|
|
lsl r2, r1, arch.instruction_increment_shift
|
|
add r2, r2, ptr.textures_addresses
|
|
add r3, zr, sprite_coin
|
|
store_32 [r2], r3
|
|
|
|
;
|
|
; Screen initialization
|
|
;
|
|
|
|
; r1 = screen parameter value
|
|
mov r1, screen.mode_index
|
|
screen r1, screen.mode_value
|
|
|
|
mov r1, screen.offset_index
|
|
add r2, zr, ptr.screen
|
|
screen r1, r2
|
|
|
|
mov r1, screen.resolution_index
|
|
screen r1, screen.resolution_value
|