Akai Disk // Hilo Oficial (S3000 S1000 S950)

samplero ladrón d tracks
#1 por samplero ladrón d tracks el 11/01/2016
895ca4547147a77b4d924bf859f46-4212570.jpg
A K A I D I S K
8fc1d94345dd1df6bc2121b6097f5-4212570.jpg

http://mda.smartelectronix.com/akai/

A grandes rasgos este programa / software nos permite pasar archivos de los samplers akai serie S (S3000, S3000XL, S1000, S950) de nuestro pc al disquete de la disquetera de nuestro pc y a la inversa con sus respectivas conversiones.
Así solo tenemos que cargar el disco en nuestro sampler y ya tendremos las muestras pudiendo elegirlas en el pc de forma cómoda y creando nuestros propios floppys.

-Conversiones de .WAV a formato AKAI (Enviar archivos wav al disquete convirtiéndolos en formato AKAI para usarlos en el sampler).
-Conversiones de formato AKAI a .WAV (Enviar archivos del disquete al pc en formato wav).

También nos permite darle formato al disquete des del pc para: s3000, s1000 y s950.
8c07674329db8a39b12e6fda49346-4212570.jpg

d73e98848a8037ee6b5ca3b34de62-4212570.jpg

ea41cb64a491d4ee976a96c2e64f4-4212570.jpg

Para correr el programa sin problemas se requiere WINDOWS 95 o 3.1, DOS. Las versiones como XP y ME a veces presentan problemas y no funcionan dependiendo de la disquetera floppy.
El resto de sistemas no son compatibles hasta que un usuario demuestre lo contrario.

Bueno como no tengo una máquina antigua disponible lo primero que hice fue ejecutar el programa en un WINDOWS XP sin virtualizar, el programa AKAIDISK se ejecutaba y podía explorar las muestras en .WAV. El problema es que no me deja pasarlas al floppy porque dice que el floppy no es formato akai (si lo es lo formateé en mi akai), de todas formas tampoco me deja formatear en el pc, cuando termina el proceso me dice que no pudo lograrlo...

Total que pensé que igual era la compatibilidad de XP (Windows versions like ME and XP, sometimes it works and sometimes it doesn't. It depends on your computer and floppy drive, so if you have problems try to find an older PC to run AkaiDisk on. The Windows version requires vbrun300.dll (224k) in your \windows\system folder.).
Me puse a instalar windows 95 en mi pentium 4 de forma nativa para dejarme de tonterías y ir a lo seguro (no virtualizado), logré instalarlo pero a la hora de entrar no me dejaba, salia una pantalla en negro con unas letras, me llevé el disco a otro pc y más de lo mismo. Llegué a la conclusión de que al ser un sistema que requiere unos 64 mb de ram y al tener mi pentium 4 un GB eso generaba conflictos y el sistema quedaba sin poder arrancar, lo mismo pasa con los procesadores de varios núcleos.
https://blogs.msdn.microsoft.com/oldnewthing/20030814-00/?p=42903

Así que decidí instalar windows 95 de forma virtualizada en Windows 7, lo logré en VMware y en VirtualBox, el problema es que no reconocían la disquetera, era como si no hubieran los controladores instalados pero en "Mi pc" si que salía el icono de disco A:

Total que por último he instalado Windows 3.1 de forma virtualizada en VMware y este reconoce el disquete cuando estoy en el, en ese momento curiosamente lo deja de reconocer mi windows 7, lo digo porque he intentado pasar archivos así ya que no se como hacerlo de otra forma y lo que tengo que hacer es apagar el VirtualBox, ir y poner los archivos que quiero en la unidad A: de windows 7 (Akai disk y samples .wav), encender de nuevo el virtual box con windows 3.1, abrir la unidad A: y pasarlos la disco virtual C: del sistema y ahí se quedan, es muy tortuga pero bueno tampoco está mal.

Windows 3.1 me deja ejecutar el akai disk, el problema es que pasa lo mismo que windows XP, es como que no reconoce el floppy y cuando envío un wav se traba, esta vez si que me deja formatear sin darme error.

736690b776234c868c914bcce5a67-4212570.gif
En resumen, puedo cargar los archivos .wav de la derecha en esa bandeja pero no aparece nada en la izquierda ni puedo enviar los de la derecha a la izquierda (convertirlos en formato akai).

Aquí viene mi duda para los que habéis trabajado siempre con estos samplers AKAI:
¿Para pasar archivos convertidos a un disco floppy en una disquetera de pc tiene que ser especial la disquetera? ¿Todas escriben a alta densidad?
de4780be4c707dfc54a58f0986c05-4212570.jpg
La disquetera que uso me vino con el pentium 4 y se la he puesto a un quadcore, lee y escribe bien fuera de ese programa ya que he logrado pasar los archivos a Windows 3.1 con ella.

¿En esa época habían marcas de disqueteras para PC con más nombre que otras en el mundo del audio? ¿Algunas iban y otras no? Lo digo porque la mía seguramente no sea muy buena y podría ser el caso de que con una sony no diera ese problema.

Los disquetes no pueden ser, a pesar de que son de los normales de pc, los utilizo en la AKAI dándoles formato y no dan ningún problema.

7c1f574d5f89ae5899a22e92a9994-4212570.jpg


Espero que alguien pueda responder, gracias!
Subir
OFERTAS Ver todas
  • -50%
    NI Komplete 15 Collector's Edition
    885 €
    Ver oferta
  • -6%
    Elektron Digitakt II (B-Stock)
    939 €
    Ver oferta
  • -20%
    Technics SL-1200M7 Lamborghini
    1.199 €
    Ver oferta
Mrkeyboard
#2 por Mrkeyboard el 11/01/2016
Por ahora sólo te vuelvo a contestar yo por entrometido. Viendo todo lo que colocas pareciera que estuviera leyendo a alguien escapado de los 80s. ¿No serás tu uno de los de Volver al futuro? ¿AKAI no tiene esos archivos disponibles en un formato actual? ¿O han dejado perder todo ese material y sólo se puede rescatar así?
Subir
samplero ladrón d tracks
#3 por samplero ladrón d tracks el 11/01/2016
Mrkeyboard escribió:
Por ahora sólo te vuelvo a contestar yo por entrometido. Viendo todo lo que colocas pareciera que estuviera leyendo a alguien escapado de los 80s. ¿No serás tu uno de los de Volver al futuro? ¿AKAI no tiene esos archivos disponibles en un formato actual? ¿O han dejado perder todo ese material y sólo se puede rescatar así?


Son máquinas que dan un sonido especial debido a sus conversores, por eso se siguen utilizando en estudios profesionales para según que menesteres, nada que ver con un secuenciador soft tanto en sonido como en pegada de secuenciación. La mayoría de personas que trabajan haciendo música electrónica en soft utilizan muestras sacadas de estas máquinas.
A parte que estos samplers son muy baratos porque ya casi nadie los utiliza teniendo inmensas webs con librerías y son complejos de entender.

La verdad es que no hay muchas librerías akai por la red, pero hay algunas, la gente no suele subirlas por lo que te dije que ya no se utilizan estas maquinas.

AKAI ha sacado máquinas actuales pero MPC's que son más caras que los racks, las 1000 no tienen un sonido peculiar ni gracia, la 5000 es carísima y muy digital la que está bien es la 2500 que también es carilla.
Subir
Endre
#4 por Endre el 11/01/2016
#1
La respuesta al problema de la disquetera la tienes en el enlace que te dejé acerca del emulador de Atari. El Ibm compatible no es capaz de leer los formatos Akai o Atari, por eso es necesario formatearlos de manera compatible.

La aplicación AkaiSex envía archivos desde el Atari (emulado en PC) al Akai. La interfaz es poco amistosa, pero puedo garantizarte que la emulación funciona porque yo mismo lo he comprobado. En el otro hilo dices que es una paranoia o algo así, pero lo cierto es que es muy sencillo de poner en práctica.
Subir
samplero ladrón d tracks
#5 por samplero ladrón d tracks el 11/01/2016
Endre escribió:
#4


Mira Endre, he logrado ejecutar el akai disk en:

-WINDOWS XP sin virtualizar: en la disquetera de mi pc puedo poner y quitar archivos pero en el programa de AKAI no puedo formatear ni pasar archivos .WAV ni leer mis disquetes akai que hago yo mismo con la máquina.
-En Windows 3.1 virtualizado en VMware: aquí he podido formatear desde akai disk pero creo que no lo ha hecho, lo ha simulado simplemente porque los archivos seguian estando ahí cuando he ido a la unidad A de mi pc. En el mi pc virtual puedo añadir y quitar archivos en la unidad A pero por el akaidisk no puedo modificar nada...
-Windows 95 virtualizado en VirtualBox: he conseguido que reconozca la disquetera, he pasado los archivos del akai disk por el mi pc de windows 7 a la unidad A, he encendido el virtualbox y arrancado el windows 95 y he copiado los archivos en el escritorio, luego he hecho lo mismo para tener unos .wav's para hacer pruebas. No me deja formatear, dice disk error, pero puedo ejecutar el programa.


Lo mismo en los 3 casos da a pensar que es la disquetera...

Ahora vamos a lo que dices... que no entiendo mucho pero bueno voy a intentarlo. No es un ibm, mi pc es un quadcore, la disquetera la saqué de un pentium 4 con placa gigabyte.
La disquetera es una Samsung, SFD-321B, FBT4 3.5"

bb357a97a325a3a88d1679cebfb9e-4212667.jpg


Pero si yo cojo un floppy y lo formateo en el sampler akai y pongo samples y luego voy al pc y lo pongo la disquetera enchufo el akai disk y no me lee nada ¿Por qué es?
Tiene que funcionar... alguien hizo este programa para algo...
Subir
Endre
#6 por Endre el 11/01/2016
BEBE SINCLAIR escribió:
No es un ibm, mi pc es un quadcore

PC = Ibm compatible

BEBE SINCLAIR escribió:
Pero si yo cojo un floppy y lo formateo en el sampler akai y pongo samples y luego voy al pc y lo pongo la disquetera enchufo el akai disk y no me lee nada ¿Por qué es?

Porque PC no lee formatos de otras máquinas. Necesitas un programa que extraiga, convierta o edite el contenido de otras plataformas, como hacen ST Recover y MSA Aconverter para Atari.

Quizá si buscas aplicaciones semejantes para Windows puedas encontrar algo. Mi experiencia ha sido la recuperación de proyectos que trabajé en un Atari para continuar con ellos en el PC.
Subir
samplero ladrón d tracks
#7 por samplero ladrón d tracks el 11/01/2016
Endre escribió:
PC = Ibm compatible

Si, de pequeños le llamaban Inmensa Bola de Mierda (IBM), teníamos uno en clase.

Endre escribió:

Porque PC no lee formatos de otras máquinas. Necesitas un programa que extraiga, convierta o edite el contenido de otras plataformas, como hacen ST Recover y MSA Aconverter para Atari.

Quizá si buscas aplicaciones semejantes para Windows puedas encontrar algo. Mi experiencia ha sido la recuperación de proyectos que trabajé en un Atari para continuar con ellos en el PC.


Pero el akai disk esta hecho para estos samplers, convierte los archivos wav en akai s y al revés y cuando los convierte en akai s en el pc no puedes hacer nada con ellos, ni abrir el disquete que los contiene porque no es de formato windows pero si deberías poder volcar wavs al disquete para llevarlos al sampler.

De algo tiene que servir este programa, esa es su función...
Subir
samplero ladrón d tracks
#8 por samplero ladrón d tracks el 11/01/2016
Endre escribió:
Porque PC no lee formatos de otras máquinas. Necesitas un programa que extraiga, convierta o edite el contenido de otras plataformas, como hacen ST Recover y MSA Aconverter para Atari.

¿ES ESTO? ¿HAY QUE PREPARAR EL DISQUETE?

http://mda.smartelectronix.com/akai/akaiinfo.htm
14. PC floppy drive programming

Code for the adisk4 program is provided here showing how to re-program the floppy drive for Akai disk access and includes read, write and format functions. Note that the code is primitive both in style and content! The software will work under DOS and Windows 3.x/95/98, but not NT which blocks direct disk access.

Not all PCs can read all Akai disks. Some modern PCs are obviously not as "IBM Compatible" as they should be, but problems can also be caused by the long hard life many Akai floppy drives have had. Some problems can be solved by using a disk formatted in Akai format by the PC rather than the sampler.

http://mda.smartelectronix.com/akai/adisk4-c.txt


// AKAI Disk Utilities - Copyright(c)1996-1999 Paul Kellett
//
// You may use any part of this code for any purpose!
//
// Version 4.1 (November 1999)
// Compiled with Borland Turbo C++ for DOS using "compact" memory model
//
//
// Background info:
//
// In the (IBM compatible) PC BIOS, the vector at interrupt 1E points to a table
// of floppy disk controller parameters. The table usually resembles the following:
//
// Byte Value Description
// ------------------------------------------------------------------
// 0 223 Specifications part 1
// 1 2 Specifications part 2
// 2 37 Motor run time
// 3 2 Block size: 0=128, 1=256, 2=512, 3=1024 bytes
// 4 18 Last sector number
// 5 27 Sector search gap
// 6 255 Data transfer length
// 7 108 Gap between sectors
// 8 246 ASCII code of format symbol
// 9 15 Head settle time
// 10 8 Speed up time
//
// The actual values vary a little depending on the PC and if Windows is running.
// You should always leave the table in the same state you found it!
//
// To adjust the table, you need to be able to call interrupts to execute BIOS
// functions. This is no problem in DOS and Windows 3.x, 95 and 98 (so long as
// your compiler actually supports interrupts) but an executable running under
// Windows NT (and probably Win2000) is not allowed direct access so a service
// or driver must be written.


#include <dos.h>
#include <stdio.h>

#define GETSEG(p) ((unsigned)(((unsigned long)((void far *)p))>>16))
#define GETOFS(p) ((unsigned)((void far *)p))

#define LO 5 //disk density
#define HI 10

#define S900 0 //sampler family
#define S1000 3
#define S3000 12

#define FORMAT 1 //mode
#define WRITE 2
#define READ 3
#define LIST 4
#define IMAGE 5

int diskfmt(int drv, int sid, int trk);
int diskread(int drv, int dens, int blk, int secs, char far *buffer);
int diskwrite(int drv, int dens, int blk, int secs, char far *buffer);
int akai2asci(int cod);
int asci2akai(int cod);
void help(int err);

union REGS reg;
struct SREGS sreg; //interrupts


struct FormatTable
{
unsigned char trk;
unsigned char sid;
unsigned char sec;
unsigned char len;
};


struct DirTable //disk table of contents
{
unsigned char name[13];
unsigned char type;
unsigned char orig;
long int length;
unsigned int start;
};


int diskfmt(int drv, int sid, int trk) //format a track
{
struct FormatTable ft[11];
int i;

for(i=0;i<10;i++)
{
ft.trk=trk;
ft.sid=sid;
ft.sec=i+1;
ft.len=3; // 1024 bytes per sector
}
reg.h.ah=5;
reg.h.al=10; // 10 sectors per track (low density doesn't seem to work)
reg.h.dh=sid;
reg.h.dl=drv;
reg.h.ch=trk;
reg.x.bx=GETOFS(ft);
sreg.es=GETSEG(ft);
int86x(0x13,&reg,&reg,&sreg);
return(reg.h.ah);
}


int diskread(int drv, int dens, int blk, int secs, char far *buffer) //read sector(s)
{
reg.h.ah=2;
reg.h.al=secs;
reg.h.dh=(blk/dens)%2;
reg.h.dl=drv;
reg.h.ch=blk/(2*dens);
reg.h.cl=1+(blk%dens);
reg.x.bx=GETOFS(buffer);
sreg.es=GETSEG(buffer);
int86x(0x13,&reg,&reg,&sreg);
return(reg.h.ah);
}


int diskwrite(int drv, int dens, int blk, int secs, char far *buffer) //write sector(s)
{
reg.h.ah=3;
reg.h.al=secs;
reg.h.dh=(blk/dens)%2;
reg.h.dl=drv;
reg.h.ch=blk/(2*dens);
reg.h.cl=1+(blk%dens);
reg.x.bx=GETOFS(buffer);
sreg.es=GETSEG(buffer);
int86x(0x13,&reg,&reg,&sreg);
return(reg.h.ah);
}


int akai2asci(int cod) //convert between ASCII and Akai character sets
{
if(cod>=0 && cod<10)
{
return(cod+48);
}
if(cod>10 && cod<37)
{
return(cod+54);
}
switch(cod)
{
case 37: return(35); // #
case 38: return(43); // +
case 39: return(45); // -
case 40: return(46); // .
default: return(32);
}
}


int asci2akai(int cod)
{
if(cod>47 && cod<58)
{
return(cod-48);
}
if(cod>64 && cod<91)
{
return(cod-54);
}
if(cod>96 && cod<123)
{
return(cod-86);
}
switch(cod)
{
case 35: return(37);
case 43: return(38);
case 45: return(39);
case 46: return(40);
default: return(10);
}
}


void main(int argc, char *argv[])
{
unsigned int oldseg, oldofs, newseg, newofs; //floppy parameter table vector
unsigned int er; //error code returned by bios functions
unsigned int drv=0; //0=A: 1=B:
unsigned int dens=HI; //density (sectors per track)
unsigned int map[1600]; //sector map
unsigned int mode=0; //see above
unsigned formode; //format as S900, S1000 or S3000 family
unsigned int type, ext, i, j, k, n=999, errcode=0;
unsigned char bufdma[10250];
unsigned char param[16], buffer[10250], label[13];
unsigned char far *ptr;
struct DirTable entry[64]; //table of contents
FILE *fl, *fp;
bufdma[1]=1;

//parse command line////////////////////////////////////////////////////////////////

if(*(argv[1])=='B' || *(argv[1])=='b')
if(*(argv[1]+1)==':') {drv=1; ++argv; argc--;} //select B: drive

if(*(argv[1])=='R' || *(argv[1])=='r')
{
mode=READ; //read file ...get file type number
if(*(argv[1]+1)>47 && *(argv[1]+1)<58) ext=(int)(*(argv[1]+1) - 48);
if(*(argv[1]+2)>47 && *(argv[1]+2)<58) ext=10 * ext + (int)(*(argv[1]+2) - 48);
if(*(argv[1]+3)>47 && *(argv[1]+3)<58) ext=10 * ext + (int)(*(argv[1]+3) - 48);
}

if(*(argv[1])=='W' || *(argv[1])=='w')
{
mode=WRITE; //write file ...get file type number
if(*(argv[1]+1)>47 && *(argv[1]+1)<58) ext=(int)(*(argv[1]+1) - 48);
if(*(argv[1]+2)>47 && *(argv[1]+2)<58) ext=10 * ext + (int)(*(argv[1]+2) - 48);
if(*(argv[1]+3)>47 && *(argv[1]+3)<58) ext=10 * ext + (int)(*(argv[1]+3) - 48);
}

if(*(argv[1])=='F' || *(argv[1])=='f')
{
mode=FORMAT; //format disk ...get sampler family
switch(*(argv[1]+1))
{
case '9': formode=S900; break;
case '1': formode=S1000; break;
default : formode=S3000;
}
}

if(*(argv[1])=='D' || *(argv[1])=='d') mode=LIST; //disk directory listing

if(*(argv[1])=='I' || *(argv[1])=='i') mode=IMAGE; //copy whole disk image

printf("\nAkai Floppy Disk Utilities v4");
printf("\nCopyright(c)1999 Paul Kellett");
printf("\nhttp://www.maxim.abel.co.uk/\n\n");

if(mode==0) //nothing on command line ...show help and terminate
{
puts(" Usage: ADISK4 [B:] d - Directory");
puts(" ADISK4 [B:] r### \"AKAINAME\" DOSNAME.EXT - Read File");
puts(" ADISK4 [B:] w### DOSNAME.EXT \"AKAINAME\" - Write File");
puts(" ADISK4 [B:] f@ \"LABEL\" - Format Disk");
puts(" ADISK4 [B:] i - Disk Image");
puts(" ");
puts(" ### = ASCII code of file type");
puts(" @ = Sampler family 9, 1 or 3");
exit(0);
}

//re-program floppy drive///////////////////////////////////////////////////////////

reg.h.ah=0x35;
reg.h.al=0x1E;
int86x(0x21,&reg,&reg,&sreg); // Read floppy parameter vector
oldseg=sreg.es;
oldofs=reg.x.bx;

for(i=0;i<16;i++) // make copy of parameter table
{
ptr=MK_FP(oldseg,oldofs+i);
param = *ptr;
}

// With Microsoft C you must write to the table directly...
// (char __far *)ptr=MK_FP(oldseg,oldofs+3); *ptr=3; etc.

param[3]=3; // 1024 bytes per block
param[4]=dens; // 10 blocks per track
param[8]=0; // Don't format with ö
newseg=GETSEG(param);
newofs=GETOFS(param);
reg.h.ah=0x25;
reg.h.al=0x1E;
reg.x.dx=newofs;
sreg.ds=newseg;
int86x(0x21,&reg,&reg,&sreg); // Set vector to new parameters
reg.h.ah=0;
reg.h.dl=drv;
int86(0x13,&reg,&reg); // Reset floppy controller
if(reg.h.ah) printf("\nError %Xh setting up floppy!\n",reg.h.ah);

//format disk////////////////////////////////////////////////////////////////////

if(mode==FORMAT || mode==IMAGE)
{
if(mode==FORMAT)
{
printf("\nFormatting drive %c: for Akai ",'A'+drv);
switch(formode)
{
case S1000: printf("S1000\n"); break;
case S3000: printf("S3000\n"); break;
default: printf("S950\n");
}

i=0; //tidy up label
while(i<12 && *(argv[2]+i)) {label=asci2akai(*(argv[2]+i)); i++;}
while(i<12) { label=10; i++; }

er=diskfmt(drv, 0, 0); //clear 'disk changed' error
errcode=3; //assume faliure

if(er==0 || er==6)
{
printf("________________________________________");
printf("_______________________________________\r");

er=0;
for(i=0;i<80;i++)
if(diskfmt(drv, 0, i) + diskfmt(drv, 1, i))
{
printf("_"); //error - disk probably corrupt
er++;
}
else
{
printf("#");
}

for(i=0;i<2048;i++) buffer=0;

if(formode==S900) //write S900 label (no entries or map)
{
for(i=0;i<12;i++) buffer[640+i]=label;
er+=diskwrite(drv,10,4,1,buffer);
}

if(formode==S1000)
{
for(i=0;i<64 ;i++) buffer[i*24+23]=3; //S1000 toc
for(i=0;i<4 ;i++) buffer[1537+(2*i)]=64; //S1000 map
er+=diskwrite(drv,10,0,2,buffer);

for(i=0;i<2048;i++) buffer=0; //S1000 label
for(i=0;i<12 ;i++) buffer[640+i]=label;
buffer[652]=0; buffer[653]=0; buffer[654]=0; buffer[655]=3;
buffer[656]=0; buffer[657]=1; buffer[658]=1; buffer[659]=0;
buffer[660]=0; buffer[661]=0; buffer[662]=50; buffer[663]=9;
buffer[664]=12;buffer[665]=255; er+=diskwrite(drv,10,4,2,buffer);
}

if(formode==S3000)
{
for(i=0;i<64;i++)
{
for(j=0;j<12;j++) buffer[i*24+j]=32; // dummy S1000 toc
buffer[i*24+15]=1; buffer[i*24+23]=12;
}
buffer[16]=255; // S3000 series ID
for(i=0;i<17;i++) buffer[1537+2*i]=64; // S3000 map
er+=diskwrite(drv,10,0,2,buffer);

for(i=0;i<2048;i++) buffer=0; //S3000 label
for(i=0;i<12;i++) buffer[640+i]=label;
buffer[652]=0 ;buffer[653]=0 ;buffer[654]=0 ;buffer[655]=12;
buffer[656]=0 ;buffer[657]=1 ;buffer[658]=1 ;buffer[659]=0 ;
buffer[660]=0 ;buffer[661]=0 ;buffer[662]=50;buffer[663]=9 ;
buffer[664]=12;buffer[665]=255; er+=diskwrite(drv,10,4,2,buffer);
}
if(er==0) errcode=0;
}

}
else //copy whole disk image
{
if((fp=fopen("adisk4.img","wb"))==NULL)
{
errcode=4;
}
else
{
printf("\nSaving disk image\n");
printf("________________________________________");
printf("_______________________________________\r");

k=0;
for(i=0;i<160;i++)
{
er=diskread(drv,dens,i*10,10,buffer); //read 10 sectors at once for speed
if(er!=0) er=diskread(drv,dens,i*10,10,buffer); //and try again if error
if(er!=0) er=diskread(drv,dens,i*10,10,buffer);
for(j=0;j<9216;j++) fputc(buffer[j],fp);

er=diskread(drv,dens,9+i*10,1,buffer); //for some reason 10th sector
if(er!=0) er=diskread(drv,dens,9+i*10,1,buffer); //may be corrupt so read again
if(er!=0) er=diskread(drv,dens,9+i*10,1,buffer);
for(j=0;j<1024;j++) fputc(buffer[j],fp);

k++; if(k==2) { printf("#"); k=0; }
}
fclose(fp);
}
}
}
else //get sector map and table of contents for file transfer...
{

reread:
er=diskread(drv,dens,dens-1,1,buffer); //debugging: if(er)help(er);
if(er) //try reading disk
{
switch (er)
{
case 2:
case 4: if(dens==HI)
{
dens=LO; goto reread; //if HI fails, try LO else not Akai
}
else
{
printf("Disk in drive %c: is not Akai format!",'A'+drv);
}
break;

case 6: goto reread; // clear disk change message

default: help(er); //doesn't look like it, but program exits here!
}
}
else
{

er=diskread(drv,dens,3,2,buffer); //read 5 sectors (in 2 chunks as 5th gets corrupted!)
if(er){printf("\nMap: "); help(er);}
for(i=0;i<2048;i++) buffer[3072+i]=buffer;
diskread(drv,dens,0,3,buffer);
if(dens==LO)
{ // Get sector map
for(i=0;i<800;i++)
{
map=buffer[1536+2*i]+256*buffer[1537+2*i];
}
for(i=800;i<1600;i++)map=1; // make space not on disk unavailable
for(i=0;i<12;i++) label=akai2asci(buffer[3136+i]); label[12]=0;
label[12]=0; //get label
}
else
{
for(i=0;i<1600;i++)
{
map=buffer[1536+2*i]+256*buffer[1537+2*i];
}
for(i=0;i<12;i++) label=akai2asci(buffer[4736+i]); label[12]=0;
}

if(buffer[22]==0 && buffer[23]==0) type=S900; else type=S1000;

if(buffer[16]==255) // S3000 series
{
er=diskread(drv,dens,5,5,buffer); //read S3000 TOC
if(er){printf("\nS3000: "); help(er);}
type=S3000;
}

for(i=0;i<64;i++) // Read 64 entries
{
if(type==S900)
{
for(j=0;j<12;j++) entry.name[j]=buffer[i*24+j];
entry.name[10]=32; entry.name[11]=32;

}
else
for(j=0;j<12;j++) entry.name[j]=akai2asci(buffer[i*24+j]);
entry.name[12]=0;

entry.orig=entry.type=buffer[i*24+16];
entry.length=buffer[i*24+18]+256*buffer[i*24+19];
entry.length=buffer[i*24+17]+256*entry.length;
entry.start=buffer[i*24+20]+256L*buffer[i*24+21];
}

if(mode==READ) ///////////////////////////
{
i=0;
while(i<64 && n==999) //look for matching name & ext
{
if(entry.type==ext) //for wanted type and name...
{
k=0; j=0;
while(j<12 && *(argv[2]+j))
{
if(*(argv[2]+j)==entry.name[j]) k++;
if(*(argv[2]+j)==(entry.name[j]+32) && entry.name[j]>64) k++;
j++;
}

while(j<12)
{
if(entry.name[j]==32) k++;
j++;
}
if(k==12) n=i; //found complete match for filename
}
i++;
}

if(n==999)
{
errcode=5;
}
else
{
if((fp=fopen(argv[3],"wb"))==NULL)
{
errcode=4;
}
else
{
printf("Reading \"%s\"\n",argv[2]);

while(entry[n].length>1024)
{
diskread(drv, dens, entry[n].start, 1, buffer);
entry[n].start=map[entry[n].start];
entry[n].length-=1024;
for(i=0;i<1024;i++) fputc(buffer,fp);
}
diskread(drv, dens, entry[n].start, 1, buffer);
for(i=0;i<entry[n].length;i++) fputc(buffer,fp);
fclose(fp);
}
}
}

if(mode==WRITE) //////////////////////////
{
i=0;
while(i<64 && n==999) //look for matching name & ext
{
if(entry.type==ext) //for wanted type and name...
{
k=0; j=0;
while(j<12 && *(argv[3]+j))
{
if(*(argv[3]+j)==entry.name[j]) k++;
if(*(argv[3]+j)==(entry.name[j]+32) && entry.name[j]>64) k++;
j++;
}

while(j<12)
{
if(entry.name[j]==32) k++;
j++;
}
if(k==12) //found complete match
{
n=i;
printf("Deleting %s\n",entry[n].name);
}
}
i++;
}

if(n==999) //no match, use first free slot
{
i=0; while(i<64 && entry.type) i++;
if(i<64) n=i;
}

if(n==999)
{
errcode=5;
}
else //found slot...
{
if((fp=fopen(argv[2],"rb"))==NULL)
{
errcode=4;
}
else
{
printf("Writing %s to \"%s\"\n",argv[2],argv[3]);

//while(feof(fp)==0)...
//write file!!
fclose(fp);
}

//write TOC (deletes entry if file not found)
}
}
}
}

reg.h.ah=0x25;
reg.h.al=0x1E;
reg.x.dx=oldofs;
sreg.ds=oldseg;
int86x(0x21,&reg,&reg,&sreg); //restore old floppy parameter vector
reg.h.ah=0;
reg.h.dl=drv;
int86(0x13,&reg,&reg); //reset controller
if(reg.h.ah) printf("\nError %Xh resettingfloppy!\n",reg.h.ah);
diskread(drv,18,0,1,buffer); //switch light off

//output results to log file//////////////////////////////////////////////////////

fl=fopen("adisk4.log","w");

if(mode==LIST && errcode==0) //directory listing
{
fprintf(fl,"Akai ");
switch(type)
{
case S1000: fprintf(fl,"S1000 "); break;
case S3000: fprintf(fl,"S3000 "); break;
default: fprintf(fl,"S900 ");
}
if(dens==LO) fprintf(fl,"LOW"); else fprintf(fl,"HIGH");
fprintf(fl," DENSITY \"%s\"\n", label);

k=0;
for(i=0;i<64;i++)
if(entry.type)
{
fprintf(fl,"%s\t%d\t%ld\n", entry.name, entry.type, entry.length);
printf("%s\t%d\t", entry.name, entry.type);
k++;
if(k==3) { printf("\n"); k=0; }
}
printf("\n");
}
else //success or faliure message
{
switch(errcode)
{
case 1: fprintf(fl,"No Akai disk found!\n"); break;
case 2: fprintf(fl,"Disk is write protected!\n"); break;
case 3: fprintf(fl,"Disk Error!\n"); break;
case 4: fprintf(fl,"File Error!\n"); break;
case 5: fprintf(fl,"File not found!\n"); break;
default: fprintf(fl,"Finished!\n"); break;
}
}
fclose(fl);
}


void help(int err) //error messages
{
switch(err)
{
case 1: printf("\nInvalid command!\n"); break;
case 2: printf("\nAddress not found!\n"); break;
case 3: printf("\nDisk write protected!\n"); break;
case 4: printf("\nSector not found!\n"); break;
case 5: printf("\nReset failed!\n"); break;
case 6: printf("\nDisk changed!\n"); break;
case 7: printf("\nBad parameter table!\n"); break;
case 8: printf("\nDMA overrun!\n"); break;
case 9: printf("\nDMA across 64k boundary!\n"); break;
case 0x0A: printf("\nBad sector!\n"); break;
case 0x0B: printf("\nBad track!\n"); break;
case 0x0C: printf("\nMedia type not found!\n"); break;
case 0x0D: printf("\nBad number of sectors!\n"); break;
case 0x10: printf("\nUncorrectable read error!\n"); break;
case 0x11: printf("\nCorrected read error!\n"); break;
case 0x20: printf("\nController faliure!\n"); break;
case 0x40: printf("\nTrack not found!\n"); break;
case 0x80: printf("\nNo disk!\n"); break;
case 0xAA: printf("\nFloppy not ready!\n"); break;
case 0xBB: printf("\nUndefined error!\n"); break;
case 0xCC: printf("\nWrite fault!\n"); break;
case 0xE0: printf("\nStatus error!\n"); break;
case 0xFF: printf("\nNo Disk!\n"); break;
case 9999: puts("** Copyright (c)1999 Paul Kellett - http://www.maxim.abel.co.uk **");
}
}
Subir
Aureo.B
#9 por Aureo.B el 02/02/2016
Ya que esta este hilo aprovecho.
Mi mpc2000xl me esta dando problemas de escritura, suelo guardar mis samples en formato wav a través de un adaptador para tarjetas compact flash que llevaba instalada cuando la compré.
Me pregunto si no sera mejor que las guarde en floppys a través del conector scsi que lleva atras... he visto que muchisima gente los sigue usando.
-Son mas fiables?
-En ese caso que tipo de lector es el que funciona bien?
He visto que hay unos alimentados y otros usb mas modernos, me imagino que los modernos no valen... Casi todos en el mundillo de las mpc usan estos lectores, pero en MPCStuff valen una pasta!
-Que tipo de formato hay que darle a los disquetes o las compact flash para que funcionen bien en las MPC?
Gracias y un saludo.
Archivos adjuntos ( para descargar)
Lector Floppy .jpg
Subir
samplero ladrón d tracks
#10 por samplero ladrón d tracks el 02/02/2016
Aureo.B escribió:
Mi mpc2000xl me esta dando problemas de escritura, suelo guardar mis samples en formato wav a través de un adaptador para tarjetas compact flash que llevaba instalada cuando la compré.


Es mejor un zip que ir con disquetes, caben más muestras y las carga más rápido, los disquetes se degradan físicamente y caben 9 muestras contadas, piensa que solo tienen capacidades de unos 1,40 mb.

¿Has probado a cambiar de tarjeta? Con el tiempo las tarjetas SD se rompen porque tienen un límite de reescrituras, lo mismo pasa con los discos duros de estado sólido y los HDD.

El formato creo que se lo das desde la propia MPC, ojalá tuviera una 2000xl para explicártelo.
Subir
Aureo.B
#11 por Aureo.B el 03/02/2016
Gracias PUNKY BREWSTER!!
No sabia eso de los zip, pense que eran iguales a los floppy... ademas creo que he visto a muchos productores con floppys
Pues quiza sea eso de las tarjetas
De todas formas hoy la abri y el lector esta conectado de forma un poco guarra... hay dos cables cortaos a capón, uno amarillo y otro negro, y los otros dos estan empalmados con celo transparente... menuda chapuza
Pobaré conectándolo bien...
Subir
xques
#12 por xques el 07/08/2016
Hay alternativas con respecto al programa que comentais, el emxp.
Emxp es un programa que deja crear, programar y leer los discos de akai s1000, los cuales son compatibles con akai s3000.
Es gratis y solo hay que bajar el omniflop, un driver para hacer que lea los archivos de un disquette akai. En principio esta pensado principalmente para los Emu de principios de los 90
Subir
samplero ladrón d tracks
#13 por samplero ladrón d tracks el 08/08/2016
#12 Buenas, el hilo lo abrí hace meses





De todas formas aún busco entender como meter samples en un disquete con el akai disk, mas que nada por curiosidad.
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo