playing-coffee/playing-coffee - Copy/roms/dmg_sound/source/06-overflow on trigger.s

65 lines
1.1 KiB
ArmAsm

; Finds highest and lowest frequencies that don't overflow
; immediately on trigger, for NR10 values of $00-$07
.include "shell.inc"
.include "apu.s"
main:
; DMG-06:
; 0555 0666 071C 0787 07C1 07E0 07F0
wreg NR12,8
ld d,$01
shift_loop:
ld a,d
sta NR10
ld bc,$87FF
- ld a,c
sta NR13
ld a,b
sta NR14
delay_clocks 40
lda NR52
and 1
jr nz,+
dec bc
bit 6,b
jr z,-
+ res 7,b
call print_bc
inc d
bit 3,d
jr z,shift_loop
call print_newline
check_crc $F604603B
; DMG-05, DMG-06, DMG-09, CGB-04, CGB-05:
; 0556 0667 071D 0788 07C2 07E1 07F1
wreg NR12,8
ld d,$01
shift_loop2:
ld a,d
sta NR10
ld bc,$8000
- ld a,c
sta NR13
ld a,b
sta NR14
delay_clocks 40
lda NR52
and 1
jr z,+
inc bc
bit 6,b
jr z,-
+ res 7,b
call print_bc
inc d
bit 3,d
jr z,shift_loop2
check_crc $5A1697EE
jp tests_passed