2017.9.23
前へ

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

マイコン独立大作戦
ROM/RAM/RTCボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第33回]


●ログが取れるようになりました!

ROM/RAM/RTCボードを作ろうと思ったそもそもの目的はマイコン独立システムで実行時のログが取れるようにしたい、というところにありました。
先日からそのためのプログラムを少しずつ作りながらテストをしてきましたが、やっとできあがりました。
まだもう少し補正しなければいけないところもありますが、ひとまず完成です。

ログはSDカードのLOGフォルダに記録されます。
記録を取ったSDカードをWindows7パソコンに接続して、ログを開いたところです。

ZB3BASICだけではなくて、上の画面にありますように、ZB3DOS(CP/M互換DOS)も記録されます。

下は上の画面で開いている09231822.LOGの中身です。

>dirZ       .       LOG     .       A       .VFD    B       .VFD    C       .VFD    D       .VFD    SQRTEST .TXT    SZCCP1F .BIN    SZCOPY1A.BIN    SZINIT1D.BIN    SZBDOS2G.BIN    SZBDS2C .BIN    
>load sqrtest.txt8004-805F
>list    10 FOR A=0 TO 10
    20 PRINT "a=";A,"sqr(a)=";SQR(A)
    30 NEXT A
    40 PRINT "end"
>runa=0         sqr(a)=0
a=1          sqr(a)=1
a=2          sqr(a)=1.41421
a=3          sqr(a)=1.73205
a=4          sqr(a)=2
a=5          sqr(a)=2.23607
a=6          sqr(a)=2.44949
a=7          sqr(a)=2.64575
a=8          sqr(a)=2.82843
a=9          sqr(a)=3
a=10         sqr(a)=3.16228
end

>copmSZBDS2C.BIN
drive D ................................
drive C ................................
drive B ................................
drive A ................................

A>dir
A: MBASIC   COM : STARTREK BAS
A>mbasic
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
28728 Bytes free
Ok
load "STARTREK
Ok
run







                   THE USS ENTERPRISE --- NCC-1701

                  ,------*------,
  ,-------------   '---  ------'
   '-------- --'      / /
       ,---' '-------/ /--,
        '----------------'


                    ,------*------,
    ,-------------   '---  ------'
     '-------- --'      / /
         ,---' '-------/ /--,
          '----------------'


                      ,------*------,
      ,-------------   '---  ------'
       '-------- --'      / /
           ,---' '-------/ /--,
            '----------------'


                        ,------*------,
        ,-------------   '---  ------'
         '-------- --'      / /
             ,---' '-------/ /--,
              '----------------'


                          ,------*------,
          ,-------------   '---  ------'
           '-------- --'      / /
               ,---' '-------/ /--,
                '----------------'


                            ,------*------,
            ,-------------   '---  ------'
             '-------- --'      / /
                 ,---' '-------/ /--,
                  '----------------'


                              ,------*------,
              ,-------------   '---  ------'
               '-------- --'      / /
                   ,---' '-------/ /--,
                    '----------------'


                                ,------*------,
                ,-------------   '---  ------'
                 '-------- --'      / /
                     ,---' '-------/ /--,
                      '----------------'


                                  ,------*------,
                  ,-------------   '---  ------'
                   '-------- --'      / /
                       ,---' '-------/ /--,
                        '----------------'


                                    ,------*------,
                    ,-------------   '---  ------'
                     '-------- --'      / /
                         ,---' '-------/ /--,
                          '----------------'


                                      ,------*------,
                      ,-------------   '---  ------'
                       '-------- --'      / /
                           ,---' '-------/ /--,
                            '----------------'


                                        ,------*------,
                        ,-------------   '---  ------'
                         '-------- --'      / /
                             ,---' '-------/ /--,
                              '----------------'


                                          ,------*------,
                          ,-------------   '---  ------'
                           '-------- --'      / /
                               ,---' '-------/ /--,
                                '----------------'


                                            ,------*------,
                            ,-------------   '---  ------'
                             '-------- --'      / /
                                 ,---' '-------/ /--,
                                  '----------------'


                                              ,------*------,
                              ,-------------   '---  ------'
                               '-------- --'      / /
                                   ,---' '-------/ /--,
                                    '----------------'


                                                ,------*------,
                                ,-------------   '---  ------'
                                 '-------- --'      / /
                                     ,---' '-------/ /--,
                                      '----------------'


                                                  ,------*------,
                                  ,-------------   '---  ------'
                                   '-------- --'      / /
                                       ,---' '-------/ /--,
                                        '----------------'


                                                    ,------*------,
                                    ,-------------   '---  ------'
                                     '-------- --'      / /
                                         ,---' '-------/ /--,
                                          '----------------'


                                                      ,------*------,
                                      ,-------------   '---  ------'
                                       '-------- --'      / /
                                           ,---' '-------/ /--,
                                            '----------------'


                                                        ,------*------,
                                        ,-------------   '---  ------'
                                         '-------- --'      / /
                                             ,---' '-------/ /--,
                                              '----------------'







YOUR ORDERS ARE AS FOLLOWS:
--------------------------
   DESTROY THE 19 KLINGON WARSHIPS WHICH HAVE INVADED
   THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS
   ON STARDATE 2428 . THIS GIVES YOU 28 DAYS. THERE ARE 
   3 STARBASES IN THE GALAXY FOR RESUPPLYING YOUR SHIP.

ARE YOU READY TO ACCEPT COMMAND ('N' FOR INSTRUCTIONS)? y


YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED
IN THE GALACTIC QUADRANT, 'CAPELLA I'.

   +--1---2---3---4---5---6---7---8-+
 1 |                         <E>  * | 1         STARDATE          2400.0
 2 |                                | 2         CONDITION          GREEN
 3 |      *               *         | 3         QUADRANT            3 , 5 
 4 |                  *             | 4         SECTOR              1 , 7 
 5 |                                | 5         PHOTON TORPEDOES      10
 6 |                      *         | 6         TOTAL ENERGY        3000
 7 |          *   *   *             | 7         SHIELDS                0
 8 |                                | 8         KLINGONS REMAINING    19
   +--1---2---3---4---5---6---7---8-+

COMMAND? ^C
Break in 2060
Ok
system

A>zb3
>mon

ZB3BASICのシステムルーチンの画面表示は通常の画面表示とは異なるルーチンを使っているため、改行がログに反映されません。
たとえば一番上のDIRはその後ろで改行しているのですが、ログでは改行されません。
その下のLOAD、LIST、RUNコマンドのところも同じです。
なおDIRコマンドのファイル表示は改行を含まず全部を連続して表示しますからログでも改行されません。
スクリーンの表示では80字を表示すると自動的に改行表示が行なわれます。

それから[BS]などの特殊キー操作はログには反映されません。
上のログでCPMを起動しているところが
copmSZBDS2C.BIN
となっています。
cpmと入力するつもりがcoと入力してしまったため[BS]で戻って[o]を消してpm[Enter]と入力しました。
[Enter]もログには反映されませんから続いてシステムによってZBDS2C.BINと表示されました。

ログファイルはND80Zモニタから[I/O][8]でZB3BASICを起動したときにオープンされます。
その後は512バイト表示されるごとにSDカードに記録保存されていきますが、リセットするなどでシステムをいきなり終了すると、最後の512バイトに満たない部分が記録されません。
そのためにMONというコマンドを新しく作りました。
ZB3BASICでMON[Enter]と入力するとログの最後の残りをログファイルに記録してファイルクローズしたあとND80Zモニタに戻ります。

下はMONコマンドを入力してZB3BASICシステムを終了したあとの画面です。


そのときの全体の様子です。

左にあるのはND80Z3.5(試作基板を利用しています)です。
MONコマンドでND80Zモニタに戻りましたから7セグメントLEDの表示はオール0になっています。
真ん中にあるのはCRTインターフェースボードです。
ボードの上にカラーキャラクタディスプレイボードが載っています。
その右はSDカード/PS2キーボードIFボードです。
その左側、キーボードの右上にあるのはROM/RAM/RTCボードです。

ROM/RAM/RTCボードの製作[第33回]
2017.9.23upload

[総合第90回]へ
前へ

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