mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-10 08:54:51 +00:00
firework: time invariant launch
This commit is contained in:
parent
ca57701102
commit
fd80493293
@ -79,14 +79,16 @@ done_fireworks:
|
||||
;===========================
|
||||
; LAUNCH_FIREWORK
|
||||
;===========================
|
||||
; cycles=???
|
||||
; cycles= 54+60+67+60+56+56+15+8+21+11 = 408
|
||||
|
||||
launch_firework:
|
||||
|
||||
jsr random16 ; 6+42
|
||||
lda SEEDL ; 3
|
||||
and #$4 ; 2
|
||||
sta COLOR_GROUP ; HGR color group (0 PG or 4 BO) ; 4
|
||||
sta COLOR_GROUP ; HGR color group (0 PG or 4 BO) ; 3
|
||||
;============
|
||||
; 54
|
||||
|
||||
jsr random16 ; 6+42
|
||||
lda SEEDL ; 3
|
||||
@ -94,6 +96,9 @@ launch_firework:
|
||||
clc ; 2
|
||||
adc #$1 ; 2
|
||||
sta X_VELOCITY ; x velocity = 1..4 ; 3
|
||||
;===========
|
||||
; 60
|
||||
|
||||
|
||||
jsr random16 ; 6+42
|
||||
lda SEEDL ; 3
|
||||
@ -104,6 +109,8 @@ launch_firework:
|
||||
sta Y_VELOCITY_H ; y velocity = -3..-6 ; 3
|
||||
lda #0 ; 2
|
||||
sta Y_VELOCITY_L ; it's 8:8 fixed point ; 3
|
||||
;============
|
||||
; 67
|
||||
|
||||
jsr random16 ; 6+42
|
||||
lda SEEDL ; 3
|
||||
@ -111,37 +118,54 @@ launch_firework:
|
||||
clc ; 2
|
||||
adc #33 ; 2
|
||||
sta MAX_STEPS ; 33..64 ; 3
|
||||
;============
|
||||
; 60
|
||||
|
||||
; launch from the two hills
|
||||
jsr random16 ; 6+42
|
||||
lda SEEDL ; 3
|
||||
and #$3f ; 2
|
||||
sta XPOS_L ; 3
|
||||
sta XPOS_L ; base of 0..63 ; 3
|
||||
;============
|
||||
; 56
|
||||
|
||||
jsr random16 ; 6+42
|
||||
lda SEEDL ; 3
|
||||
and #$1 ; 2
|
||||
beq right_hill ; 2
|
||||
left_hill:
|
||||
lda XPOS_L ; 3
|
||||
clc ; 2
|
||||
adc #24 ; 2
|
||||
sta XPOS_L ; 24-88 (64) ; 3
|
||||
|
||||
beq right_hill ; 3
|
||||
;============
|
||||
; 56
|
||||
|
||||
|
||||
|
||||
left_hill: ;-1
|
||||
lda X_VELOCITY ; nop ; 3
|
||||
lda X_VELOCITY ; nop ; 3
|
||||
lda X_VELOCITY ; nop ; 3
|
||||
nop ; 2
|
||||
lda #24 ; make it 24..87 ; 2
|
||||
jmp done_hill ; 3
|
||||
right_hill:
|
||||
; 1
|
||||
lda XPOS_L ; 3
|
||||
clc ; 2
|
||||
adc #191 ; 2
|
||||
sta XPOS_L ; 191-255 (64) ; 3
|
||||
;===========
|
||||
; 15
|
||||
|
||||
right_hill:
|
||||
lda X_VELOCITY ; 3
|
||||
eor #$ff ; 2
|
||||
sta X_VELOCITY ; 3
|
||||
inc X_VELOCITY ; aim toward middle ; 5
|
||||
inc X_VELOCITY ; aim toward middle ; 5
|
||||
|
||||
lda #191 ; make it 191..254 ; 2
|
||||
;===========
|
||||
; 15
|
||||
|
||||
done_hill:
|
||||
clc ; 2
|
||||
adc XPOS_L ; 3
|
||||
sta XPOS_L ; 3
|
||||
|
||||
;===========
|
||||
; 8
|
||||
|
||||
lda #YSIZE ; 2
|
||||
sta YPOS_H ; 3
|
||||
@ -153,12 +177,15 @@ done_hill:
|
||||
|
||||
lda #1 ; 2
|
||||
sta CURRENT_STEP ; 3
|
||||
;===========
|
||||
; 21
|
||||
|
||||
lda #1 ; 2
|
||||
sta STATE ; move to launch ; 3
|
||||
|
||||
rts ; 6
|
||||
|
||||
;============
|
||||
; 11
|
||||
|
||||
|
||||
;===============
|
||||
|
Loading…
Reference in New Issue
Block a user