Sidsound Designer replay sought

All 680x0 related coding posts in this section please.

Moderators: simonsunnyboy, Mug UK, Zorro 2, Moderator Team

User avatar
unseenmenace
Atari God
Atari God
Posts: 1961
Joined: Tue Sep 21, 2004 9:33 pm
Location: Margate, Kent, UK
Contact:

Sidsound Designer replay sought

Postby unseenmenace » Mon Mar 07, 2005 9:20 pm

I have a working SSD replay binary that uses Timers A, C an D, which is what I need however it uses an area of low memory for storing a load of stuff during playback resulting in an inability to use GEMDOS disk access routines while playing music. Does anyone have or know of an SSD replay (source or binary) that is more system friendly?.
UNSEEN MENACE
Several STFM's, 4MB STE, 2MB TT with 1.2GB Hard Drive and 14MB Falcon with 540MB Hard Drive,
Lynx 2 and Jaguar with JagCD
Member of GamebaseST and AtariLegend team
Check out my website at http://unseenmenace.110mb.com

Pink/RG
Moderator
Moderator
Posts: 32
Joined: Tue Dec 17, 2002 5:54 pm
Location: Guildford, UK
Contact:

Postby Pink/RG » Tue Mar 08, 2005 1:17 am

Its not the usage of low memory that hampers the disk loading, its the fact its taken over timer c.

On GodPey, to get disk i/o working after SSD had taken timer c, I had to emulate the gemdos critical error handler on the VBL. (the system timer c calls this).

ijor
Hardware Guru
Hardware Guru
Posts: 3796
Joined: Sat May 29, 2004 7:52 pm
Contact:

Postby ijor » Tue Mar 08, 2005 2:22 am

Hmm, what Timer C has to do with disk access? There is no disk code in the 200Hz system timer. And of course that the critical error handler is not called there (it wouldn't make any sense).

There is floppy code at the VBL though. If the floppy VBL is not called, media change detection might fail and the drive will never be deselected.

It might be some third party disk code at the 200Hz. A write back cache program (or hard disk driver) might very well use the system timer. But not TOS itself, at least not the older versions (I'm not so familiar with later TOSes).

User avatar
unseenmenace
Atari God
Atari God
Posts: 1961
Joined: Tue Sep 21, 2004 9:33 pm
Location: Margate, Kent, UK
Contact:

Postby unseenmenace » Tue Mar 08, 2005 8:30 am

I was gonna say I don't think Timer C is an issue coz I can still load files whilst playing other music formats without having restored the OS Timer C routine. I believe the low memory that is being used contains various system variables and data buffers used by the GEMDOS disk routines. This is also the case with Mad Max's Ghost Battle Driver (ripped and relocated to $4140 by Grazey) where I have to back up an area of low memory to copy the music driver and song data to for it to work. This again stops disk routines from working but they are fine if I stop the music and restore the backed up memory.
UNSEEN MENACE
Several STFM's, 4MB STE, 2MB TT with 1.2GB Hard Drive and 14MB Falcon with 540MB Hard Drive,
Lynx 2 and Jaguar with JagCD
Member of GamebaseST and AtariLegend team
Check out my website at http://unseenmenace.110mb.com

User avatar
Grazey / PHF
Captain Atari
Captain Atari
Posts: 497
Joined: Fri Jun 21, 2002 12:50 pm
Location: Montreal, Quebec
Contact:

Postby Grazey / PHF » Tue Mar 08, 2005 10:07 am

Quite a few music routines use memory around $200 (SSD , Lotus etc) as far as I was aware these don't interfere with GEM DOS file routines. In UMD8730 I used all music whilst loading using FREAD without any problems.

Regarding Ghostbattle, my latest SNDH og GB removes all Word addressing so the tune can be played from any address. OCWAS ULM, OCWAS Mainmenu, also use this driver.

Grazey
http://phf.atari.org - demo coders since 1983
http://sndh.atari.org - Maintainer of the Atari ST chip music archive
http://www.scenemusic.net - Nectarine Administrator

User avatar
unseenmenace
Atari God
Atari God
Posts: 1961
Joined: Tue Sep 21, 2004 9:33 pm
Location: Margate, Kent, UK
Contact:

Postby unseenmenace » Tue Mar 08, 2005 12:19 pm

Cheers Grazey

Grazey wrote:Quite a few music routines use memory around $200 (SSD , Lotus etc)
The SSD driver I'm using uses memory at $200 ish for its timer routines but it also uses some memory around $1500 - $2200 ish for something which I presume is the bit causing the problem. In case its of any help I'm using several GEMDOS routines for reading directories (setdrv, chdir, sfirst & snext) and loading files (set DTA, sfirst, open, read and close).

Grazey wrote:Regarding Ghostbattle, my latest SNDH of GB removes all Word addressing so the tune can be played from any address
Nice one, I'll be sure to rip out that replay routine for my player. At this rate my credits screen will say Grazey about 10 times :) and a few mentions of other people that have kindly shared their wisdom.
UNSEEN MENACE
Several STFM's, 4MB STE, 2MB TT with 1.2GB Hard Drive and 14MB Falcon with 540MB Hard Drive,
Lynx 2 and Jaguar with JagCD
Member of GamebaseST and AtariLegend team
Check out my website at http://unseenmenace.110mb.com

Pink/RG
Moderator
Moderator
Posts: 32
Joined: Tue Dec 17, 2002 5:54 pm
Location: Guildford, UK
Contact:

Postby Pink/RG » Tue Mar 08, 2005 1:54 pm

I believe some hard disk drivers use the 200hz system counter ($4ba) that timer c drives. Certainly after i let SSD take over timer c I had some intermittent loading problems. Adding this routine onto my VBL fixed everything:



Code: Select all

AudioMusic_Fake4BA:
   move.l   a0,-(a7)
   move.l   a1,-(a7)

   tst.w   gAudioMusicFake4BAFlag
   beq.s   .noFake
         
   lea      gAudioMusic4BA_Add+8,a0
   lea      gAudioMusic4BA+8,a1
   andi.b   #0,CCR
   addx.l   -(a0),-(a1)
   addx.l   -(a0),-(a1)
   move.l   gAudioMusic4BA,$4BA.l

   move.w   $442.w,-(a7)
   move.l   $400.w,a0
   jsr      (a0)
   addq.w   #2,a7

.noFake:

   move.l   (a7)+,a1
   move.l   (a7)+,a0

   rts

gwEm
Captain Atari
Captain Atari
Posts: 220
Joined: Tue Jun 08, 2004 4:43 pm
Location: London, UK
Contact:

Postby gwEm » Tue Mar 08, 2005 2:02 pm

i guess you looked at the SSD replay rout sources available on dhs.nu? the low memory area accesses are dead easy to remove if they bother you.. or substitute with SMC routines.

i'm using this routine in my SNDH converter, and disk accesses are fine when playing them. as others have already said, just steal the VBL or Timer-C vector in a more system friendly way.

G

User avatar
unseenmenace
Atari God
Atari God
Posts: 1961
Joined: Tue Sep 21, 2004 9:33 pm
Location: Margate, Kent, UK
Contact:

Postby unseenmenace » Tue Mar 08, 2005 2:23 pm

Pink/RG wrote:Adding this routine onto my VBL fixed everything:

Cheers I'll try that

gwEm wrote:i guess you looked at the SSD replay rout sources available on dhs.nu?

Actually I disassembled a binary that I had. I didn't realise there were any decent sources available. I shall certainly have a look at them, cheers.
UNSEEN MENACE
Several STFM's, 4MB STE, 2MB TT with 1.2GB Hard Drive and 14MB Falcon with 540MB Hard Drive,
Lynx 2 and Jaguar with JagCD
Member of GamebaseST and AtariLegend team
Check out my website at http://unseenmenace.110mb.com

ijor
Hardware Guru
Hardware Guru
Posts: 3796
Joined: Sat May 29, 2004 7:52 pm
Contact:

Postby ijor » Tue Mar 08, 2005 2:41 pm

Pink/RG wrote:I believe some hard disk drivers use the 200hz system counter ($4ba) that timer c drives.


So what you mean is that the timer C handler calls the event timer vector, not the critical error handler. Yes, of course it does.

TOS doesn't use the 200hz timer for any disk code anyway. Yes, as said, a third party hard disk driver might. It might use it for timeouts and for write back cache flushing.

User avatar
unseenmenace
Atari God
Atari God
Posts: 1961
Joined: Tue Sep 21, 2004 9:33 pm
Location: Margate, Kent, UK
Contact:

Postby unseenmenace » Tue Mar 08, 2005 2:46 pm

ijor wrote:TOS doesn't use the 200hz timer for any disk code anyway. Yes, as said, a third party hard disk driver might. It might use it for timeouts and for write back cache flushing.

Anyone know if that would include STeem's virtual hard drives?

Grazey wrote:Regarding Ghostbattle, my latest SNDH og GB removes all Word addressing so the tune can be played from any address. OCWAS ULM, OCWAS Mainmenu, also use this driver.

It took me a while to figure out that OCWAS was "Oh Crikey What A Scorcher" lol. Incidentally is it OK to "borrow" your modified Ghost Battle routine? It'd save me some grief :)
UNSEEN MENACE
Several STFM's, 4MB STE, 2MB TT with 1.2GB Hard Drive and 14MB Falcon with 540MB Hard Drive,
Lynx 2 and Jaguar with JagCD
Member of GamebaseST and AtariLegend team
Check out my website at http://unseenmenace.110mb.com

ijor
Hardware Guru
Hardware Guru
Posts: 3796
Joined: Sat May 29, 2004 7:52 pm
Contact:

Postby ijor » Tue Mar 08, 2005 3:47 pm

unseenmenace wrote:
ijor wrote:TOS doesn't use the 200hz timer for any disk code anyway. Yes, as said, a third party hard disk driver might. It might use it for timeouts and for write back cache flushing.

Anyone know if that would include STeem's virtual hard drives?


More than likely it doesn't. Steem doesn't need to care about hard disk controller timeouts or caching. Hard disk is emulated at the Gemdos level, not at the hardware level.

User avatar
Grazey / PHF
Captain Atari
Captain Atari
Posts: 497
Joined: Fri Jun 21, 2002 12:50 pm
Location: Montreal, Quebec
Contact:

Postby Grazey / PHF » Tue Mar 08, 2005 5:58 pm

unseenmenace wrote:It took me a while to figure out that OCWAS was "Oh Crikey What A Scorcher" lol. Incidentally is it OK to "borrow" your modified Ghost Battle routine? It'd save me some grief :)


yeah, no problem :)

Grz
http://phf.atari.org - demo coders since 1983

http://sndh.atari.org - Maintainer of the Atari ST chip music archive

http://www.scenemusic.net - Nectarine Administrator


Social Media

     

Return to “680x0”

Who is online

Users browsing this forum: No registered users and 4 guests