Topic : TOS - The Operating System Author : Version : tos.hyp (December 19, 2008) Subject : Programmieren/Atari Nodes : 3010 Index Size : 93790 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Title @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File4.13.4.2 Seekrate for all TOS versions TOS /* Portable setting of the floppy seek rate for all TOS versions (except RAM-TOS 1.00). Parameters: As for the XBIOS function "Floprate" */ int16_t SeekRate ( int16_t devno, int16_t newrate ) { int32_t stack; int16_t version; OSHEADER *sys; /* Get pointer to OS-header */ stack = Super (0L); sys = *((OSHEADER **) 0x4f2); version = sys->os_version; Super ((void *)stack); /* With newer TOS simply call "Floprate" */ if ( version >= 0x0104 ) return Floprate ( devno, newrate ); else { /* otherwise calculate pointer to internal GEMDOS variables */ int16_t *sk, merk; if ( version == 0x0102 ) sk = (int16_t *) 0x0a4e; else sk = (int16_t *) 0x0a08; /* Drive B: 2 int16_t follows */ if ( devno ) sk = &(sk[2]); merk = *sk; /* enter value only if not -1 */ if ( newrate != -1 ) *sk = newrate; /* always return old value */ return merk; } }