Almost lost technologies

ここは昔の CPU を用いた工作記事を書くために用意しました。

MELPS740 SBC チェック(8) - UART テスト(続き)

RESET 後にノイズが乗るのは、これも KiCAD化の時に余計なことした(TXD をプルダウン)影響でした。

Power On 時も問題ないようにするなら、インターフェース側からプルアップを引くのが良さそう。まだこちらの方はやっていません。

読み込みが上手くいかないのは …… このUARTって受信後に 受信バッファに書かないと 受信レディが消えないのね。

直してこうなりました。

       1/       0 :                     ;;; UARTTEST for MELPS740
       2/       0 :                     ;;; 2023-04/11 efialtes_htn
       3/       0 :                     ;;;
       4/       0 :                     ;;; Assumes PHI=8MHz - UART external clock = 307.2KHz
       5/       0 :                     ;;;
       6/       0 :                     ;;; 2023-04-09 parameter should be 8bit no-parity
       7/       0 :                     ;;;
       8/       0 :                         CPU    MELPS740
       9/       0 :                     ;    
      10/       0 : =MELPS740           TARGET:    EQU    "MELPS740"
      11/       0 :                     ;
      12/       0 :                     ;; VECTORS
      13/    FFFA :                         ORG    $FFFA
      14/    FFFA : 00 00                   FDB    $0000    ; NMI
      15/    FFFC : 00 F0                   FDB    $F000    ; RESET
      16/    FFFE : 00 F0                   FDB    $F000    ; IRQ/BRK
      17/   10000 :                     ;
      18/    F000 :                         ORG    $F000
      19/    F000 : A9 12               CSTART:    LDA    #$12    ; Stack-page1, Microprocessor mode
      20/    F002 : 85 FF                   STA    $0FF
      21/    F004 : A6 FF                   LDX    $0FF
      22/    F006 : 9A                      TXS
      23/    F007 : D8                      CLD
      24/    F008 : 12                      CLT
      25/    F009 : A9 FF                   LDA    #$FF    ; all output
      26/    F00B : 85 EB                   STA    $0EB    ; port4 directional reg
      27/    F00D :                     ;
      28/    F00D : A9 08                   LDA    #$08    ; No sleep, 8bit UART, SCLK=P36/16
      29/    F00F : 85 F4                   STA    $0F4    ; T/R Mode register
      30/    F011 :                     ;
      31/    F011 : EA                      NOP
      32/    F012 : EA                      NOP
      33/    F013 : EA                      NOP
      34/    F014 : EA                      NOP
      35/    F015 : A9 00                   LDA    #$0    ; reset every errors. then enable
      36/    F017 : 85 F5                   STA    $0F5
      37/    F019 : A9 05                   LDA    #$5    ; RSV/TRN enabled
      38/    F01B : 85 F5                   STA    $0F5
      39/    F01D :                     ;
      40/    F01D : A2 00                   LDX    #$0
      41/    F01F : EA                      NOP
      42/    F020 : EA                      NOP
      43/    F021 :                     CONOUT0:
      44/    F021 : EA                      NOP
      45/    F022 : EA                      NOP
      46/    F023 : BD 00 F2                LDA    WSTR,X    ; WSTR
      47/    F026 : F0 09                   BEQ    ECHOBACK
      48/    F028 :                     CONOUT:
      49/    F028 : 37 F5 FD                BBC    1,$0F5,CONOUT
      50/    F02B : 85 F6                   STA    $0F6
      51/    F02D : E8                      INX
      52/    F02E : EA                      NOP
      53/    F02F : 80 F0                   BRA    CONOUT0
      54/    F031 :                     ;
      55/    F031 :                     ECHOBACK:
      56/    F031 : EA                      NOP
      57/    F032 : 77 F5 FC                BBC    3,$0F5,ECHOBACK    ;get one character
      58/    F035 : A5 F7                   LDA    $0F7        ;get received char
      59/    F037 : 85 F7                   STA    $0F7        ; ... write back to clear RI
      60/    F039 : EA                      NOP
      61/    F03A :                     CONOUT1:
      62/    F03A : 37 F5 FD                BBC    1,$0F5,CONOUT1
      63/    F03D : 85 F6                   STA    $0F6
      64/    F03F : EA                      NOP
      65/    F040 : EA                      NOP
      66/    F041 : 80 EE                   BRA    ECHOBACK
      67/    F043 :                     ;
      68/    F200 :                         ORG    $F200
      69/    F200 :                     WSTR:
      70/    F200 : 4F 20 62 72 61 76       FCB    "O brave new world, That has such people in't!",$0D,$0A,$00
                    65 20 6E 65 77 20 
                    77 6F 72 6C 64 2C 
                    20 54 68 61 74 20 
                    68 61 73 20 73 75 
                    63 68 20 70 65 6F 
                    70 6C 65 20 69 6E 
                    27 74 21 0D 0A 00 
      71/    F230 :                     
      72/    F230 :                         END

うまくいっている感じ。次は Asano さんの Universal Monitor をナントカしましょう。