home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 2
/
FreeSoftwareCollection2pd199x-jp.img
/
ms_dos
/
pao
/
etc
/
mid3.c
< prev
next >
Wrap
Text File
|
1990-06-14
|
2KB
|
107 lines
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
/******************************* GET Machine ID ****************************/
/*
** < RETURN >
** 機種識別 :
** Towns1,2 = 1
** Towns1,2(F,H) = 2
** R70 = 3
** R60/50 = 4
** R60/50(16dot) = 5
** R50S = 6
** R50LT = 7
** ??? = 0
*/
int mid()
{
union REGS regs ;
struct SREGS sregs ;
unsigned char mdata[16] ;
unsigned char id, cpu ;
regs.h.ah = 0x05 ;
regs.x.di = (unsigned int)mdata ;
segread( &sregs ) ;
int86x( 0xaf,®s,®s,&sregs ) ;
if ( mdata[4] == 0 ) {
printf("JISキーボードを使用してますね!\n") ;
} else if ( mdata[4] == 1 ) {
printf("親指シフトキーボードを使用してますね!\n") ;
} else {
printf("キーボードは何?(%02xH)\n",mdata[4]) ;
}
id = mdata[0] ;
if ( (id & 0x07) == 0x01 ) { /* R60/50 系列 */
if ( (id & 0xf0) == 0x50 ) { /* FMTowns */
cpu = inp( 0x31 ) ;
switch ( cpu ) {
case 1 :
return ( 1 ) ; /* モデル 1,2 */
break ;
case 2 :
return ( 2 ) ; /* モデル 1,2(F,H) */
break ;
default :
return ( 0 ) ; /* ????? */
break ;
}
} else if ( (id & 0xf0) == 0x20 ) { /* R-70 */
return ( 3 ) ;
} else if ( (id & 0xf0) == 0x00 ) { /* R-60/50 */
if ( (mdata[3] & 0x80) == 0x80 ) { /* 16dot */
return ( 5 ) ;
} else {
return ( 4 ) ;
}
} else if ( (id & 0xf0) == 0x30) { /* R-50S */
return ( 6 ) ;
} else if ( (id & 0xf0) == 0x40) { /* R-50LT */
return ( 7 ) ;
} else { /* ????? */
return ( 0 ) ;
}
} else { /* ????? */
return ( 0 ) ;
}
}
void main()
{
int id ;
id = mid() ;
switch ( id ) {
case 1 :
printf("旧FMTOWNS(モデル 1/2)\n") ;
break ;
case 2 :
printf("新FMTOWNS(モデル 1/2-F/H)\n") ;
break ;
case 3 :
printf("FMR-70\n") ;
break ;
case 4 :
printf("FMR-60/50\n") ;
break ;
case 5 :
printf("FMR-60/50(16ドット有り)\n") ;
break ;
case 6 :
printf("FMR-50S\n") ;
break ;
case 7 :
printf("FMR-50LT\n") ;
break ;
default :
printf("?????\n") ;
break ;
}
}