|
|
Atari coding BBS
Sem assunto |
Posted by: ljbk
|
Mar,01.2013-13:27
|
Hi !
We are getting closer with this new bit:
; If we want to continue, we will have to go down to the real deal.
; Let's look at mt_make_freq.
; This procedure fills a table pointed by mt_freq_list with a serie of
; words with 0 and 1. The table size is 23 x 40 words. For each of the
; 23 available read speeds, it will fill 40 words with 0 or 1. These
; 40 words correspond to the 40 digital buffer updates at 50 KHz for each
; of the 25 VBL code blocks. If a 1 is found then a sample read has to be
; done for that digital buffer update for that voice.
; Looking at the code, one can see that the 23 different speeds relate to
; 23 different increments from 3 to 25 both included. So the minimum read
; bytes from a sample is 3 x 25 VBL blocks = 75 bytes. The maximum read
; bytes is 25 x 25 VBL blocks = 625 bytes for the minimum divider case.
; So first the read step is calculated dividing D0 (number of bytes to
; read) by 40 digital buffer updates. A result below 1 is expected as the
; maximum value for D0 (25) is smaller than 40. The result is then
; rounded if the division rest is bigger than 20 (half of 40). Having now
; a long value with the reading pace per digital buffer update, we add it
; for 40 updates and for each one a check is made is a new integer part
; was reached or if the comma part is bigger than 0.5:
;
; moveq #39,d7 40 updates to the digital buffer
;.mt_make_freq
; add.w d2,d1 adds the pace in D2 to the counter in D1
; negx.w d4 D4 contains the integer part of the counter
; neg.w d4 update D4 with X if the add overflowed
; move.w d4,d5 copy result integer part to D5
; move.w d1,d6 copy result comma part to D6
; add.w d6,d6 if result comma part bigger than 0.5 ($8000) this
; negx.w d5 previous add will overflow
; neg.w d5 and so we correct the result integer part with X
; cmp.w d3,d5 if the new value is lower or equal to the
; ble.s .mt_set_zero previous one then we SET a ZERO in table
; move.w d5,d3 otherwise we keep the new value in D3 for
; moveq #1,d5 next time and we SET a ONE in the table.
; move.w d5,(a0)+ (A0) = 1
; dbra d7,.mt_make_freq 40 times
; addq.w #1,d0 from 3 to 25 values
; cmp.w #26,d0
; bne.s .mt_maker
; rts
;
;.mt_set_zero
; moveq #0,d5
; move.w d5,(a0)+ (A0) = 0
; dbra d7,.mt_make_freq 40 times
; addq.w #1,d0 from 3 to 25 values
; cmp.w #26,d0
; bne.s .mt_maker
; rts
;
; Here we have obviously impacts in trying to go down to 25 KHz.
; First one is to reduce everything that is 40 to 20. The division has to
; be done by 20, the round compare value is 10 and the D7 register would
; get 19(20-1) instead of 39(40-1). But that is not all. As we divide by
; 20, the division result can be bigger or equal to 1 for read paces of
; 20, 21, 22, 23, 24 and 25. These are 6 of the 23 read paces. For those
; cases the code must be updated to allow steps bigger than 1 and may be
; also to store a different value in memory other than 0 or 1 for the
; code generation routine to insert the necessary addq #1,An to skip some
; reads. So this routine has to be completly re-written but only after
; the analysis of the code generation routine: mt_make_mixcode.
;
; TO BE CONTINUED ... I HOPE ...
;
;------------------------------------------------------------------------
|
[All messages in this thread] [Start new thread]
Topic
|
Posted by
|
Date
|
Lance's 50khz playroutine
|
Bod/STAX
|
Feb,18.2013-17:35
|
Re: Lance's 50khz playroutine
|
gwEm
|
Feb,18.2013-20:42
|
Re: Lance's 50khz playroutine
|
ggn
|
Feb,18.2013-20:53
|
Re: Lance's 50khz playroutine
|
Bod/STAX
|
Feb,18.2013-21:28
|
Re: Lance's 50khz playroutine
|
gwEm
|
Feb,18.2013-23:05
|
Re: Lance's 50khz playroutine
|
gwEm
|
Feb,18.2013-23:16
|
Re: Lance's 50khz playroutine
|
gwEm
|
Feb,19.2013-02:21
|
Re: Lance's 50khz playroutine
|
Bod/STAX
|
Feb,22.2013-17:08
|
Re: Lance's 50khz playroutine
|
gwEm
|
Feb,25.2013-20:36
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,25.2013-23:54
|
Re: Lance's 50khz playroutine
|
Bod/STAX
|
Feb,26.2013-11:23
|
Re: Lance's 50khz playroutine
|
evil
|
Feb,26.2013-12:04
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,26.2013-14:45
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,26.2013-21:46
|
Re: Lance's 50khz playroutine
|
evil
|
Feb,27.2013-17:01
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,28.2013-13:24
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,28.2013-13:28
|
Re: Lance's 50khz playroutine
|
gwEm
|
Feb,28.2013-14:07
|
Re: Lance's 50khz playroutine
|
Bod/STAX
|
Feb,28.2013-21:41
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,28.2013-22:42
|
Sem assunto
|
ljbk
|
Mar,01.2013-13:27
|
Lance's 50 KHz playroutine
|
ljbk
|
Mar,01.2013-15:49
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,01.2013-17:34
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,01.2013-17:36
|
Re: Lance's 50 KHz playroutine
|
evil
|
Mar,01.2013-19:03
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,02.2013-00:18
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,04.2013-17:39
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,06.2013-02:21
|
Re: Lance's 50 KHz playroutine
|
gwEm
|
Mar,06.2013-13:23
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,06.2013-15:57
|
Re: Lance's 50 KHz playroutine
|
evil
|
Mar,06.2013-16:48
|
Re: Lance's 50 KHz playroutine
|
ggn
|
Mar,06.2013-17:31
|
Re: Lance's 50 KHz playroutine
|
evil
|
Mar,06.2013-17:48
|
Re: Lance's 50 KHz playroutine
|
ggn
|
Mar,06.2013-23:54
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,06.2013-18:18
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,06.2013-21:51
|
Re: Lance's 50 KHz playroutine
|
ggn
|
Mar,06.2013-23:59
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,07.2013-02:31
|
Re: Lance's 50 KHz playroutine
|
ggn
|
Mar,07.2013-12:34
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,07.2013-14:00
|
Re: Lance's 50 KHz playroutine
|
gwEm
|
Mar,07.2013-18:00
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,07.2013-18:51
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,08.2013-02:10
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,08.2013-13:12
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,09.2013-00:17
|
Re: Lance's 50 KHz playroutine
|
ljbk
|
Mar,06.2013-19:28
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,28.2013-15:47
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,28.2013-15:51
|
Re: Lance's 50khz playroutine
|
ljbk
|
Feb,28.2013-18:56
|
Re: Lance's 50khz playroutine
|
nativ
|
Mar,24.2013-00:07
|
Re: Lance's 50khz playroutine
|
ljbk
|
Apr,13.2013-01:21
|
Re: Lance's 50khz playroutine
|
ljbk
|
Apr,16.2013-16:12
|
Re: Lance's 50khz playroutine
|
ljbk
|
Apr,19.2013-12:14
|
Re: Lance's 50khz playroutine
|
ljbk
|
Apr,22.2013-14:54
|
Re: Lance's 50khz playroutine
|
ljbk
|
Apr,25.2013-19:03
|
Re: Lance's 50khz playroutine
|
ggn
|
Apr,25.2013-21:03
|
Re: Lance's 50khz playroutine
|
ljbk
|
Apr,26.2013-09:18
|
Re: Lance's 50khz playroutine
|
ggn
|
Apr,26.2013-11:28
|
Re: Lance's 50khz playroutine
|
ljbk
|
Apr,26.2013-12:13
|
Re: Lance's 50khz playroutine
|
ljbk
|
May,01.2013-22:30
|
Re: Lance's 50khz playroutine
|
evil
|
May,02.2013-14:46
|
Re: Lance's 50khz playroutine
|
gwEm
|
May,02.2013-20:00
|
Re: Lance's 50khz playroutine
|
Damo
|
May,02.2013-21:00
|
Re: Lance's 50khz playroutine
|
evil
|
May,03.2013-13:00
|
Re: Lance's 50khz playroutine
|
ljbk
|
May,08.2013-17:50
|
Re: Lance's 50khz playroutine
|
Cyprian
|
May,10.2013-13:01
|
Re: Lance's 50khz playroutine
|
ljbk
|
May,11.2013-00:22
|
Re: Lance's 50khz playroutine
|
ljbk
|
May,11.2013-08:54
|
Re: Lance's 50khz playroutine
|
Cyprian
|
May,11.2013-15:18
|
Re: Lance's 50khz playroutine
|
ljbk
|
May,11.2013-15:35
|
Re: Lance's 50khz playroutine
|
Lance
|
May,23.2013-00:02
|
Re: Lance's 50khz playroutine
|
ljbk
|
May,23.2013-14:44
|
Re: Lance's 50khz playroutine
|
Bod/STAX
|
Jun,06.2013-20:32
|
Re: Lance's 50khz playroutine
|
Bod/STAX
|
Jun,06.2013-20:39
|
Re: Lance's 50khz playroutine
|
ljbk
|
Jun,07.2013-00:09
|
Re: Lance's 50khz playroutine
|
Bod/STAX
|
Jun,07.2013-18:38
|
Re: Lance's 50khz playroutine
|
ljbk
|
Jun,07.2013-21:46
|
What's the anti-troll code? That's your personal code to be able to add comments and messages on the dhs.nu site.
Don't have a code or forgot it? Fix it here.
|
|
|