標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第620回]

●Windows7のコマンドプロンプトで異常表示(その2)

[第618回]では、Windows7(32ビット版)のコマンドプロンプトでZ80アセンブラZASM.COMを実行すると、それまで画面に表示されていた日本語の表示が全部???…に化けてしまうという、信じられない現象について書きました。
ZASM.COMは言わずと知れた16ビットアプリケーションです。
というか純粋混じりっけ無しの8086アプリケーションです。

原因は皆目見当がつきません。
あるいは私の作ったプログラムに問題があるのかも知れません。
でも、ZASM.COMは結構しつこいプログラムなのですよね。
どこかに問題があったとしても、それを追求するのはなかなかに大変なことで…。

そうか!
確認する方法がありました!
もっと、うんと簡単なプログラムを書いてテストしてみればいいじゃありませんか。
ほら、例の”Hello World!”っていうやつです。 

そうか、”Hello World”って書けば良かった。今、そのことに気が付いたんですけど、もう別のプログラムを書いてテストしてしまいました。

comtest2.comというのが、そのテストプログラムです。

この画面で、これから[Enter]を押します。

と、こうなります。

簡単なプログラムでも、同じ現象がおきました。
ね。私のプログラムのせいじゃなかったでしょ。

あ。”TEST END”は”Hello World”だったことにしておいてくださいね。

comtest2.comのプログラムリストです。

2010/9/24  9:10  COMTEST2.TXT
[00001]                     ;;; command prompt test 10/9/24
[00002]                         ORG=100
[00003]                     ;
[00004] 0100  BF3101            MOV DI,TBL
[00005] 0103  32C0              XOR AL,AL
[00006] 0105  E80600            CALL DEDP <010E>
[00007] 0108  32C0          REENT:XOR AL,AL
[00008] 010A  B44C              MOV AH,4C
[00009] 010C  CD21              INT 21
[00010]                     ;
[00011] 010E  8AF0          DEDP:MOV DH,AL
[00012]                     DEDP1:
[00013] 0110  26                ES:
[00014] 0111  8A15              MOV DL,[DI]
[00015] 0113  47                INC DI
[00016] 0114  3AD6              CMP DL,DH
[00017] 0116  7501              JNZ DEDP2 <0119>
[00018] 0118  C3                RET
[00019] 0119  80FA0D        DEDP2:CMP DL,0D
[00020] 011C  7407              JZ CRLF0 <0125>
[00021] 011E  B402              MOV AH,2
[00022] 0120  CD21              INT 21
[00023] 0122  EBEC90            JMP DEDP1 <0110>
[00024] 0125  47            CRLF0:INC DI
[00025] 0126  B402          CRLF:MOV AH,2
[00026] 0128  B20D              MOV DL,0D
[00027] 012A  CD21              INT 21
[00028] 012C  B20A              MOV DL,0A
[00029] 012E  CD21              INT 21
[00030] 0130  C3                RET
[00031]                     ;
[00032] 0131  544553542045  TBL:"TEST END
              4E44
[00033] 0139  0D                DB 0D
[00034]                     ;
0100-0139
CRLF         =0126  CRLF0        =0125  DEDP         =010E  DEDP1        =0110  DEDP2        =0119  REENT        =0108  TBL          =0131  

実はこのお話しについては続きがあるのですけれど、本日は時間がありません。
その続きは次回に書くことにいたします。
2010.9.25upload

前へ
次へ
ホームページトップへ戻る