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


16ビットマイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第85回]



●INT 22について

[第82回]でINT 22について書きましたところ、以前にND80Z3.5をご購入いただいたユーザー様からメールをいただきました。
「MSDOSではINT 21だけではなくてINT 22も使われているので、もし将来MSDOS互換ソフトを作るということでしたら、ちょっと心配です」
ということでWikipediaのMSDOSで使われているINT typeについてまとめたページもご紹介いただきました。
https://en.wikipedia.org/wiki/DOS_API

またMSDOSについての興味深い記事についてもご紹介いただきました。
http://www.atmarkit.co.jp/ait/articles/1404/24/news144.html

もしIntelの8086とIBM PCとMSDOSがなかったならば、今日のWindowsパソコンはなかった、と言っても過言ではないでしょう。
その原点にあるMSDOSについて短い文章ながらしっかりとまとめられています。
一読されることをお勧めします。

INT 22について、またMSDOS記事についてご紹介いただきました、神奈川県のF様、ご協力有難うございました。
今後ともご支援ご鞭撻をお願いいたします。

ご指摘いただいたINT 22なのですが、MSDOSで使われていることを知らなかったわけではありません。
しかしさほど重要な機能でもなさそうでしたし、INT 21の次ということでINT 22でいいだろう、と軽い気持ちで決めてしまいました。
でもこうしてご指摘をいただいてしまいますと、やっぱり使わないほうがいいだろうなあ、とあらためて考え直しました。
なに大したことではありません。
[第82回]でも書きましたように、INT 22にこだわらなくてもまだINT FFまでたっぷり使えるナンバーはあるのですから、使われてなくて空いているナンバーを使えばよいだけのことです。

実はこんなすごい本を所有しているのです。

いつどこで買ったのか全く記憶にありません。
ずっと長い間本棚でほこりをかぶっていたのですが、こんなところで役に立つとは思ってもみませんでした。

ページが印刷されていないので何ページあるのかわかりませんが、すごい厚さです。

たっぷり4cmもあります。

ここにINT 22について書かれています。


●INT B0を使います

こんな有難い本があるのですから、この際これを利用しない手はありません。
利用されていないINT bヘどうやったらみつけられるでしょう?
おお。
そうでした。
巻末にINDEXがありました。

これを見ますとINT A5からINT B2までが空いています。
キリがいいところでINT B0を使うことにしました。

さっそくシステムプログラムをそのように直して、テストプログラムもINT 22からINT B0に変更しました。

2018/9/11  9:54  intb0t1.LST
[00001]                     ;;; int b0 test
[00002]                     ;18/9/7 911
[00003]                         ORG=8000
[00004] 8000  B061              MOV AL,61;a
[00005] 8002  B11A              MOV CL,1A
[00006] 8004  B407              MOV AH,07;adisp
[00007] 8006  50            LOOP:PUSH AX
[00008] 8007  CDB0              INT B0
[00009] 8009  58                POP AX
[00010] 800A  FEC0              INC AL
[00011] 800C  FEC9              DEC CL
[00012] 800E  75F6              JNZ LOOP <8006>
[00013] 8010  B409              MOV AH,09;crlf
[00014] 8012  CDB0              INT B0
[00015] 8014  CB                RETF
[00016]                     ;
LOOP         =8006  

テストプログラムを実行してみました。

あれ?
code err?
そうでした。
変更後のシステムプログラムをロードするのを忘れていました。
変更後のシステムプログラム(86ROM7C.BIN)をロードして、もう一度テストプログラムを実行しました。
今度は正しく実行されました。

16ビットマイコンボードの製作[第85回]
2018.9.11upload

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