SetGlobalTempo llama a SetTempo por cada canal, y SetTempo utiliza de como parametro para el tempo.
SetTempo:
ld hl, Channel1Tempo - Channel1
add hl, bc
ld [hl], e
inc hl
ld [hl], d
bc se utiliza en SetTempo para identificar el canal que debe actualizar, mientras que SetGlobalTempo no requiere bc como entrada ya que se encarga de iterar sobre 4 canales llamando a SetTempo en cada caso con su valor en bc correspondiente:
ld bc, Channel1
call SetTempo
ld bc, Channel2
call SetTempo
ld bc, Channel3
call SetTempo
ld bc, Channel4
3asmcall es el nombre de un script, no de una instrucción asm. Utiliza rst $08:
ld a, BANK(\1)
ld hl, \1
rst $08
Es decir:
ld de, xxxx
ld a, $3a
ld hl, $4ac7
rst $08