diff options
| author | sik | 2018-01-22 19:19:19 -0300 |
|---|---|---|
| committer | sik | 2018-01-22 19:19:19 -0300 |
| commit | 8fdf49b8e53fd3063ccc2eb51c49c3b6e4d073bb (patch) | |
| tree | addb91518f99d4df76986d3e282e41cd6baf077e /src-68k | |
| parent | a2f67fbe8fe6b27f661e70ce2b6b75c17cd1fe54 (diff) | |
Echo 1.6 release... kind of a mess, will clean up in further commits I guess
Diffstat (limited to 'src-68k')
| -rw-r--r-- | src-68k/echo.68k | 24 | ||||
| -rw-r--r-- | src-68k/esf.68k | 19 |
2 files changed, 33 insertions, 10 deletions
diff --git a/src-68k/echo.68k b/src-68k/echo.68k index 7abdbf8..e755d19 100644 --- a/src-68k/echo.68k +++ b/src-68k/echo.68k @@ -273,6 +273,22 @@ Echo_SetPCMRate: rts ; End of subroutine ;**************************************************************************** +; Echo_SetStereo +; Sets whether stereo is enabled or not +; +; input d0.b ... 0 to disable, otherwise to enable +;**************************************************************************** + +Echo_SetStereo: + movem.l d0-d1, -(sp) ; Save registers + tst.b d0 ; Check what we want to do + seq.b d1 ; Put parameter in place + move.b #$09, d0 ; Command $09 = set stereo + bsr Echo_SendCommandByte ; Send command to Echo + movem.l (sp)+, d0-d1 ; Restore registers + rts ; End of subroutine + +;**************************************************************************** ; Echo_SetVolume ; Changes the global volume for every channel. ; @@ -283,7 +299,7 @@ Echo_SetVolume: Echo_Z80Request ; We need the Z80 bus movem.l d0-d1/a0-a1, -(sp) ; Save registers - lea @FMTable(pc), a0 ; Determine FM volume + lea Echo_FMVolTable(pc), a0 ; Determine FM volume moveq #0, d1 move.b d0, d1 lsr.b #2, d1 @@ -299,7 +315,7 @@ Echo_SetVolume: move.b d1, (a1)+ ; FM channel 6 move.b d1, (a1)+ ; FM channel 7 - lea @PSGTable(pc), a0 ; Determine PSG volume + lea Echo_PSGVolTable(pc),a0 ; Determine PSG volume moveq #0, d1 move.b d0, d1 lsr.b #2, d1 @@ -324,13 +340,13 @@ Echo_SetVolume: ;---------------------------------------------------------------------------- -@FMTable: +Echo_FMVolTable: dc.b $7F,$7B,$77,$73,$70,$6C,$68,$65,$61,$5E,$5A,$57,$54,$50,$4D,$4A dc.b $47,$44,$41,$3F,$3C,$39,$36,$34,$31,$2F,$2D,$2A,$28,$26,$24,$22 dc.b $20,$1E,$1C,$1A,$18,$16,$15,$13,$12,$10,$0F,$0D,$0C,$0B,$0A,$09 dc.b $08,$07,$06,$05,$04,$04,$03,$02,$02,$01,$01,$01,$00,$00,$00,$00 -@PSGTable: +Echo_PSGVolTable: dc.b $0F,$0F,$0E,$0E,$0D,$0D,$0C,$0C,$0B,$0B,$0B,$0A,$0A,$0A,$09,$09 dc.b $08,$08,$08,$07,$07,$07,$06,$06,$06,$06,$05,$05,$05,$04,$04,$04 dc.b $04,$03,$03,$03,$03,$03,$02,$02,$02,$02,$02,$02,$01,$01,$01,$01 diff --git a/src-68k/esf.68k b/src-68k/esf.68k index fc8dacc..7f5aae5 100644 --- a/src-68k/esf.68k +++ b/src-68k/esf.68k @@ -220,12 +220,19 @@ ESF_SetFMReg macro ESF_Delay macro if (\1)>0 - if (\1)<=$10 - dc.b $D0-1+(\1) - else - dc.b $FE - dc.b (\1)&$FF - endc + if (\1)>=$100 + rept (\1)/$100 + dc.b $FE, $00 + endr + endc + if (\1)%$100 + if ((\1)%$100)<=$10 + dc.b $D0-1+((\1)%$100) + else + dc.b $FE + dc.b (\1)%$100 + endc + endc endc endm |
