home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 2
/
FreeSoftwareCollection2pd199x-jp.img
/
ms_dos
/
pao
/
etc
/
sno.c
< prev
next >
Wrap
Text File
|
1990-06-14
|
2KB
|
103 lines
#include <stdio.h>
#include <conio.h>
void main()
{
unsigned char srom[32], work ;
unsigned char name[7], sno[5] ;
unsigned short mid ;
int c, cc ;
outp( 0x0032,0x40 ) ; /* シリアルROMアドレスリセット */
outp( 0x0032,0xc0 ) ;
outp( 0x0032,0x40 ) ;
for ( cc=0; cc<32; cc++ ) {
work = 0 ;
srom[cc] = 0 ;
for ( c=0; c<8; c++ ) {
work = ( inp( 0x0032 ) & 0x01 ) ;
if ( c )
work <<= c ;
srom[cc] |= work ;
outp( 0x0032,0 ) ;
outp( 0x0032,0x40 ) ;
}
}
printf("...... 00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F\n") ;
for ( c=0; c<32; c++ ) {
if ( c % 16 == 0 )
printf("%06d ",c/16) ;
printf("%02x ",srom[c]) ;
if ( (c+9) % 16 == 0 )
printf("- ") ;
if ( (c+1) % 16 == 0 )
printf("\n") ;
}
printf("\n") ;
/*
** 19 - 0
*/
printf("アドレス : 19 - 0\n") ;
printf(" : ") ;
printf("%02x",(srom[2] & 0x0f)) ;
printf("%02x",srom[1]) ;
printf("%02x",srom[0]) ;
printf("\n") ;
/*
** 55 - 20 / シリアルNo.
*/
printf("アドレス : 55 - 20\n") ;
printf(" : ") ;
printf("%02x",srom[6]) ;
sno[0] = srom[6] ;
printf("%02x",srom[5]) ;
sno[1] = srom[5] ;
printf("%02x",srom[4]) ;
sno[2] = srom[4] ;
printf("%02x",srom[3]) ;
sno[3] = srom[3] ;
printf("%02x",(srom[2] & 0xf0)) ;
sno[4] = ( srom[2] & 0xf0 ) ;
printf("\n") ;
printf("\x1b[1;36m") ;
printf("シリアルNo. : ") ;
for ( c=0; c<4; c++ )
printf("%02x",sno[c]) ;
printf("%01x",(sno[c] & 0xf0)) ;
printf("\x1b[m") ;
printf("\n") ;
/*
** 71 - 56 / 機種番号
*/
printf("アドレス : 71 - 56\n") ;
printf(" : ") ;
printf("%02x",srom[8]) ;
printf("%02x",srom[7]) ;
printf("\n") ;
mid = srom[8] ;
mid <<= 8 ;
mid |= srom[7] ;
printf("\x1b[1;36m") ;
printf("機種番号 : %04x\x1b[m\n",mid) ;
/*
** 255 - 72 / name
*/
printf("アドレス : 255 - 72\n") ;
printf(" : ") ;
for ( c=31; c>=9; c-- )
printf("%02x",srom[c]) ;
printf("\n") ;
work = srom[31] ;
for ( c=0; c<7; c++ ) {
name[c] = ( ( work & 0x0f ) << 4 ) ;
work = srom[30-c] ;
name[c] |= ( ( work & 0xf0 ) >> 4 ) ;
}
name[7] = NULL ;
printf("\x1b[1;36m") ;
printf("name : %s",name) ;
printf("\x1b[m\n") ;
}