User Tools

Site Tools


oric:hardware:sending_a_single_register

Whilst the previous chapter dealt with sending all 14 registers to the sound chip it sometimes is only required to send one register.

This is equivalent to the $F590 ROM routine but alot faster

The same labels are used as in the previous chapter

     #DEFINE ayc_Register $FF
     #DEFINE ayc_Write    $FD
     #DEFINE ayc_Inactive $DD
     
     #DEFINE via_pcr      $030C
     #DEFINE via_porta    $030F

Load the accumulator with the Register number and store in VIA Port A. In this example it is the Volume of Channel A.

          LDA #08
          STA via_porta

Set AY Control lines to Register Number

          LDA #ayc_Register
          STA via_pcr

Set AY Control lines to inactive

          LDA #ayc_Inactive
          STA via_pcr

Place the Register value into VIA Port A. In this example we'll set the volume to 15(maximum).

          LDA #15
          STA via_porta

Set AY Control lines to Write

          LDA #ayc_Write
          STA via_pcr

Set AY Control lines to inactive again

          LDA #ayc_Inactive
          STA via_pcr

And RTS

          RTS
oric/hardware/sending_a_single_register.txt · Last modified: 2008/03/25 22:54 by twilighte