Thomson TO8

HxC Floppy emulator support for all others computers...
gilles
Posts: 35
Joined: Sat Jun 18, 2011 11:54 pm

Re: Thomson TO8

Post by gilles »

je vais trouver avec de la protection.
pour le moment avec la version linux y'a un p'tit probleme:
FAT12FLOPPY_libIsValidDiskFile sp1a.sap
FAT12FLOPPY file ! (File , .fatst902)
file loader found!
FAT12FLOPPY_libLoad_DiskFile sp1a.sap
floppy size:0kB, 80 tracks, 2 side(s), 9 sectors/track, rpm:300, bitrate:250000, gap3: 249
Error FindFirstFile

ca ne reconnait pas le bon type d'image. l'autodetection ca a ses limites en meme temps...
[edit]
j'ai contourné en désactivant fat12, et j'ai mergé mon hack... test en cours...

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Thomson TO8

Post by Jeff »

gilles wrote: ca ne reconnait pas le bon type d'image. l'autodetection ca a ses limites en meme temps...
Probablement lié au fait que j'ai modifié cette partie aussi... a corriger donc pour linux...

gilles
Posts: 35
Joined: Sat Jun 18, 2011 11:54 pm

Re: Thomson TO8

Post by gilles »

ok les demos puls marchent comme ca, testé avec les 4 discs space project
(avec le support double face):

maintenant il faut voir comment l'intégrer plus proprement 2 images séparées pour chaque face et forcer l'id de tete à 0 aussi pour fd double face et en raw (optionnel dans ce cas).

Code: Select all

int SAP_libLoad_DiskFile(HXCFLOPPYEMULATOR* floppycontext,FLOPPY * floppydisk,char * imgfile,void * parameters)
{
	unsigned int i,j,k;
	unsigned char* trackdata;
	unsigned char gap3len,interleave;
	unsigned char skew;
	unsigned short rpm;
	unsigned short sectorsize;

	unsigned char trackformat;
	int floppyformat;
	sapID sapid;
	sapID sapid2=-1;
	sapsector_t sapsector;
	SECTORCONFIG  sectorconfig[SAP_NSECTS];
	CYLINDER* currentcylinder;
	
	floppycontext->hxc_printf(MSG_DEBUG,"SAP_libLoad_DiskFile %s",imgfile);

	sapid=sap_OpenArchive(imgfile, &floppyformat);
	if(sapid==SAP_ERROR)
	{
		floppycontext->hxc_printf(MSG_ERROR,"Cannot open %s !",imgfile);
		return -1;
	}

	/* special case of double sided 2 files SAP */
	/* name totoa.sap and totob.sap or totoside0.sap and totoside1.sap */
	if ((strlen(imgfile)>5) && (imgfile[strlen(imgfile)-5]=='a')) {
		char *imgfile2=malloc(strlen(imgfile)+1);
		strcpy(imgfile2,imgfile);
		imgfile2[strlen(imgfile)-5]='b';
		sapid2=sap_OpenArchive(imgfile2, &floppyformat);
		floppycontext->hxc_printf(MSG_DEBUG,"SAP_libLoad_DiskFile %s as second side",imgfile2);
		free(imgfile2);
	}

	gap3len=255;
	interleave=7;
	skew=0;

	switch(floppyformat)
	{

	case SAP_FORMAT1:
		sectorsize=SAP_SECTSIZE1;
		floppydisk->floppyNumberOfTrack=SAP_NTRACKS1;
		floppydisk->floppySectorPerTrack=SAP_NSECTS;
		floppydisk->floppyNumberOfSide=1;
		trackformat=ISOFORMAT_DD;
		break;

	case SAP_FORMAT2:
		sectorsize=SAP_SECTSIZE2;
		floppydisk->floppyNumberOfTrack=SAP_NTRACKS2;
		floppydisk->floppySectorPerTrack=SAP_NSECTS;
		floppydisk->floppyNumberOfSide=1;
		trackformat=ISOFORMAT_SD;
		break;
	default:
		floppycontext->hxc_printf(MSG_ERROR,"Unknow floppy format: %d !",floppyformat);
		sap_CloseArchive(sapid);
		return -1;
		break;

	}
	
	/* if we found a second disk */
	if (sapid2!=-1) {
		floppydisk->floppyNumberOfSide=2;
	}		

	floppydisk->floppyBitRate=250000;
	floppydisk->floppyiftype=GENERIC_SHUGART_DD_FLOPPYMODE;
	floppydisk->tracks=(CYLINDER**)malloc(sizeof(CYLINDER*)*floppydisk->floppyNumberOfTrack);
	rpm=300; // normal rpm
	
			
	floppycontext->hxc_printf(MSG_INFO_1,"%d tracks, %d side(s), %d sectors/track,%d bytes/sector gap3:%d, interleave:%d,rpm:%d",floppydisk->floppyNumberOfTrack,floppydisk->floppyNumberOfSide,floppydisk->floppySectorPerTrack,sectorsize,gap3len,interleave,rpm);
			
	trackdata=(unsigned char*)malloc(sectorsize*floppydisk->floppySectorPerTrack);
			
	memset(sectorconfig,0,sizeof(SECTORCONFIG)*SAP_NSECTS);
	for(j=0;j<floppydisk->floppyNumberOfTrack;j++)
	{
				
		floppydisk->tracks[j]=allocCylinderEntry(rpm,floppydisk->floppyNumberOfSide);
		currentcylinder=floppydisk->tracks[j];
				
		for(i=0;i<floppydisk->floppyNumberOfSide;i++)
		{

			for(k=0;k<SAP_NSECTS;k++)
			{
				if (i==0)
					sap_ReadSector(sapid, j, k+1, &sapsector);
				else
					sap_ReadSector(sapid2, j, k+1, &sapsector);
				floppycontext->hxc_printf(MSG_DEBUG,"[%.2d:%.2d]: Sect %.2d, Track %.2d, Format: 0x%.2x, Protect 0x%.2x",j,k,sapsector.sector,sapsector.track,sapsector.format,sapsector.protection);
				sectorconfig[k].bitrate=250000;
				sectorconfig[k].gap3=255;
				sectorconfig[k].head=0;
				sectorconfig[k].trackencoding=trackformat;
				sectorconfig[k].sector=sapsector.sector;
				sectorconfig[k].cylinder=sapsector.track;
				sectorconfig[k].sectorsize=sectorsize;
				sectorconfig[k].input_data=malloc(sectorconfig[k].sectorsize);
				memcpy(sectorconfig[k].input_data,sapsector.data,sectorconfig[k].sectorsize);
			}

			currentcylinder->sides[i]=tg_generatetrackEx(SAP_NSECTS,(SECTORCONFIG *)&sectorconfig,interleave,(unsigned char)(((j<<1)|(i&1))*skew),floppydisk->floppyBitRate,rpm,trackformat,2500|NO_SECTOR_UNDER_INDEX,-2500);

			for(k=0;k<SAP_NSECTS;k++)
			{
				if(sectorconfig[k].input_data)
				{
					free(sectorconfig[k].input_data);
					sectorconfig[k].input_data=0;
				}
			}
		}
	}

	free(trackdata);
		
	sap_CloseArchive(sapid);

	if (sapid2!=-1)
		sap_CloseArchive(sapid2);

	floppycontext->hxc_printf(MSG_INFO_1,"track file successfully loaded and encoded!");
		
	return LOADER_NOERROR;
	
}

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Thomson TO8

Post by Jeff »

Good news! :D

Il faut faire ça a un niveau plus haut.

Je reviens + tard a ce sujet.

gilles
Posts: 35
Joined: Sat Jun 18, 2011 11:54 pm

Re: Thomson TO8

Post by gilles »

si le cas n'est pas unique oui, sinon ca risque d'alourdir le process pour un cas très particulier. la règle multifichier n'est pas absurde, les archives rar utilisent une règle de ce type.

Par contre il faut pouvoir le preciser (id à 0 face 1) pour la création d'images vides à formater, c'est peut être le bon moment pour avoir des profils de disquettes par plateforme dans l'outil directement.

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Thomson TO8

Post by Jeff »

gilles wrote:si le cas n'est pas unique oui, sinon ca risque d'alourdir le process pour un cas très particulier. la règle multifichier n'est pas absurde, les archives rar utilisent une règle de ce type.

Par contre il faut pouvoir le preciser (id à 0 face 1) pour la création d'images vides à formater, c'est peut être le bon moment pour avoir des profils de disquettes par plateforme dans l'outil directement.
En fait je pensais a un petit outil en ligne de commande pour le moment. Il suffit de charger les 2 sap normalement (voir code de l'outil linux) et de créer un troisième disque avec les 2 premiers (principalement un jeux avec les pointers ;) )

Au passage le bug avec le loader fat12 est corrigé.

Pour les profils, un gros changement devrait apparaitre dans quelques temps : Support d'un format genre xml pour la manipulation des formats disques.

gilles
Posts: 35
Joined: Sat Jun 18, 2011 11:54 pm

Re: Thomson TO8

Post by gilles »

je testerai une fois que ca sera intégré.
pour le moment j'ai un outil fonctionnel pour le double face et ca me va comme ca pour le double face.
Maintenant il reste la question des protections mais ce n'est pas urgent et ce ne sera pas forcement simple.

pulkomandy
Posts: 132
Joined: Sun Mar 20, 2011 6:55 pm

Re: Thomson TO8

Post by pulkomandy »

Salut !
des nouvelles de ces trucs ? :)

gilles
Posts: 35
Joined: Sat Jun 18, 2011 11:54 pm

Re: Thomson TO8

Post by gilles »


pulkomandy
Posts: 132
Joined: Sun Mar 20, 2011 6:55 pm

Re: Thomson TO8

Post by pulkomandy »

Bon, alors voici ma version du patch pour la gestion des 2 faces. C'est fait dans le main de la version linux, ce qui permet de l'utiliser avec d'autres formats (dsk par exemple). Attention, ça manque surement de controle d'erreur et ça risque de planter en particulier si les images des deux faces n'ont pas le même nombre de pistes...

http://pulkomandy.lexinfo.fr/drop/HXC_D ... NVERT.diff

Il faut également mettre l'entrelacement à 7 dans le loader SAP pour que les images générées soient correctes.

pulkomandy
Posts: 132
Joined: Sun Mar 20, 2011 6:55 pm

Re: Thomson TO8

Post by pulkomandy »

J'essaie d'utiliser le HxC pour émuler 2 drives sur mon TO8.
J'ai du cabler le drive select 1 qui ne l'est pas dans le lecteur de disquette externe (il est envoyé vers le connecteur pour le deuxième drive).

Résultat :
* Si je mets le drive A en DS0, ça marche
* Si je mets le drive A en DS1, ça marche (ça répond au TO8 sur un DIR"2:")
* Par contre, pas moyen de faire marcher le drive B ! J'obtiens tout le temps un "no disk"...

J'ai le firmware beta 1.6.2A. Est-ce qu'il y a un problème connu avec le ready et/ou le disk change (ou autre chose) quand il y a deux drives ? Est-ce que ça peut venir d'une config bizarre dans le fichier CFG ? (genre le drive B ne serait pas en mode Shugart mais autre chose, alors que le A c'est bon ?)

J'ai essayé plusieurs fichiers HFE en drive A et B, à chaque fois mêmes symptomes.

La DEL jaune s'allume, le LCD affiche RB, mais juste après j'ai un No Disc... pas de changement de piste, rien...
Je suis inquiet pour la santé de mon HxC...

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Thomson TO8

Post by Jeff »

pulkomandy wrote:J'essaie d'utiliser le HxC pour émuler 2 drives sur mon TO8.
J'ai du cabler le drive select 1 qui ne l'est pas dans le lecteur de disquette externe (il est envoyé vers le connecteur pour le deuxième drive).

Résultat :
* Si je mets le drive A en DS0, ça marche
* Si je mets le drive A en DS1, ça marche (ça répond au TO8 sur un DIR"2:")
* Par contre, pas moyen de faire marcher le drive B ! J'obtiens tout le temps un "no disk"...

J'ai le firmware beta 1.6.2A. Est-ce qu'il y a un problème connu avec le ready et/ou le disk change (ou autre chose) quand il y a deux drives ? Est-ce que ça peut venir d'une config bizarre dans le fichier CFG ? (genre le drive B ne serait pas en mode Shugart mais autre chose, alors que le A c'est bon ?)

J'ai essayé plusieurs fichiers HFE en drive A et B, à chaque fois mêmes symptomes.

La DEL jaune s'allume, le LCD affiche RB, mais juste après j'ai un No Disc... pas de changement de piste, rien...
Je suis inquiet pour la santé de mon HxC...
Fais un test en revenant a la version 1.6.0.0 pour voir

pulkomandy
Posts: 132
Joined: Sun Mar 20, 2011 6:55 pm

Re: Thomson TO8

Post by pulkomandy »

J'ai downgradé en 1.6.0.0 et ça marche... Mais c'était peut être un jumper défectueux :oops:

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Thomson TO8

Post by Jeff »

pulkomandy wrote:J'ai downgradé en 1.6.0.0 et ça marche... Mais c'était peut être un jumper défectueux :oops:
Dans ce cas refais un test avec cette version en pj.
Attachments
HXCFE_V1_6_3_6A.UPD
(58.5 KiB) Downloaded 416 times

pulkomandy
Posts: 132
Joined: Sun Mar 20, 2011 6:55 pm

Re: Thomson TO8

Post by pulkomandy »

No disc également avec celui là...
(ça me rassure au moins sur mes jumpers...)

Post Reply