モニタープログラムをつくろう。

投稿日: Mar 30, 2017 4:22:17 AM

とりあえずシリアルコンソール。

最終的にはスタンドアロンにしたいけど、ハードウェアが決まっていないからとりあえずシリアルで動くようにしてみましょう。

ひとまずキー入力のチェックくらいは出来る様になりましょうってことで。

そこまで作ってみました。

チェックされるのは Enterキーと 0~a~fの数字とアルファベットのabcdef。

これ以外はスルーされます。(大文字のA~Fもスルー対象)

; serial monitor ; ; serial I/O ; 0x0c : serial write ; 0x0d : serial read ; 0x0e : serial available ; 0x0f : print hex ; org 0 jp start seek 0x100 org 0x100 start: ld sp,0x7fff ;32k sram lp1: in a,(0x0e) ;serial available or a jp z,lp1 in a,(0x0d) ;serial read ;out (0x0f),a ;print hex ;check input 'ENTER' cp 0x0d ;cr jp z,cr ;check key table ld hl,keycode kcloop: ld b,a xor a cp (hl) jp z,lpend ;keycode table end ld a,b cp (hl) ;input check jp z,kchit ;hit! inc hl ;non hit, next char jp kcloop lpend: jp lp1 ; process key kchit: out (0x0c),a ;serial out hit char jp lp1 ;disp cr+lf cr: ld a,0x0d out (0x0c),a ld a,0x0a out (0x0c),a jp lp1 keycode: db '0123456789abcdef',0

とりあえず動いてるようですので kchit の部分を拡張して、アドレス選択とか出来る様にしていきたいですね(それに伴って入力チェックにコマンド文字を追加してゆきます)