マシンステータスを得る

「マシンステータスを得る」の編集履歴(バックアップ)一覧はこちら

マシンステータスを得る」(2015/08/30 (日) 13:40:29) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

マシンステータスを得る ROMやシステム領域を参照してメモリサイズやマシンのバージョンを得ることが可能。 DOSから現在実行中のマシンの種類を得るコマンドmstatを作ってみる。 いろいろ工夫することでもっと多くのマシン状態を表示する事も可能だ。 mstat.c #include <stdio.h> extern unsigned char rom_version(); void main(void){ unsigned int *SZ_VRAM=(unsigned int*)0xFAFC; unsigned int *SZ_DISK=(unsigned int*)0xFFA7; unsigned char ver; unsigned char vmem; printf("--- mstat \r\n"); //VRAM printf("VRAM: "); vmem=(*SZ_VRAM & 0x6)/2; if (vmem==0){ printf("16K \r\n"); } else if (vmem==1) { printf("64K \r\n"); } else if (vmem>=2) { printf("128K \r\n"); } else { printf("\r\n"); } //DISKDRIVE printf("DISKDRIVE: "); if (*SZ_DISK==0xC9) { printf("no \r\n"); } else { printf("yes \r\n"); } //HW VERSION printf("H/W VER: "); ver=(unsigned char)rom_version(); if (ver==0) { printf("MX1 \r\n"); } else if (ver==1) { printf("MX2 \r\n"); } else if (ver==2) { printf("MX2+ \r\n"); } else if (ver==3) { printf("MXTR \r\n"); } else { printf("\r\n"); } } romver.asm ; ; rom_version() ; _rom_version:: push BC ;backup registerfile push DE push HL ; ld a,(0xFCC2) ;slot address ld hl,#0x002d ;read address ; call 0x000c ;interslotcall(readslot) ; pop HL pop DE pop BC ; ld l,a ;return(uchar) ; ei ret ;

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。