#include <stdio.h>
#include <stdlib.h>

void DisplayHelp( void );

int main( int argc, char *argv[] )
{
	FILE *SrcFp;
	FILE *DstFp;
	char cHead[32];
	char SrcPath[129];
	char DstPath[129];
	int nXs;
	int nYs;
	int nSize;
	int i;
	int c;
	int nLineCnt;
	/* ----------------------------------------	ƒwƒ‹ƒv•\Ž¦ */
	if ( argc < 2 ) DisplayHelp();
	if ( strcmp( argv[1],"/?") == 0 ) DisplayHelp();
	if ( strcmp( argv[1],"-?") == 0 ) DisplayHelp();
	/*  */
	strcpy( SrcPath, argv[1] );
	strcat( SrcPath, ".MPD" );
	strcpy( DstPath, argv[1] );
	strcat( DstPath, ".ASM" );
	if ( ( SrcFp = fopen( SrcPath, "rb" ) ) != NULL ) {
		if ( ( DstFp = fopen( DstPath, "w" ) ) != NULL ) {
			for( i=0; i<31; i++ ) {
				cHead[i] = fgetc( SrcFp );
			}
			nXs = cHead[27] + cHead[28] * 256;
			nYs = cHead[29] + cHead[30] * 256;
			nSize = nXs * nYs;
			nLineCnt = 0;
			fprintf( DstFp, "\tDW\t%d, %d\n", nXs, nYs );
			for( i=0; i<nSize; i++ ) {
				if ( nLineCnt == 0 ) {
					fprintf( DstFp, "\tDW\t" );
				}
				c = fgetc( SrcFp );
				fprintf( DstFp, "%05Xh", c );
				nLineCnt++;
				if ( nLineCnt > 7 ) {
					fprintf( DstFp, "\n" );
					nLineCnt = 0;
				} else {
					fprintf( DstFp, ", ");
				}
			}
			fclose( DstFp );
		}
		fclose( SrcFp );
	}
}

void DisplayHelp( void )
{
	printf( "mpd2asm\n" );
	printf( "usage:\n" );
	printf( "mpd2asm [filename]\n" );
}
