Almost lost technologies

ここは昔の CPU を用いた工作記事を書くために用意しました。雑談は https://bsky.app/profile/alpine183.bsky.social で。

SCN2650SBC (4) デバッグ中

やっと気分的に手が空いたので、とりあえずシリアルまでは動かしました。

       1/       0 :                     ;;; SERTEST for Sig 2650A
       2/       0 :                     ;;; 2023/09/21 efialtes_htn
       3/       0 :                     ;;;
       4/       0 :                     	CPU	2650
       5/       0 :                     	INTSYNTAX +H'hex'
       6/       0 :                     ;	
       7/       0 : ="2650"              TARGET:	EQU	"2650"
       8/       0 :                     ;
       9/       0 : =$0                  SERBASE: EQU H'00' ; 2661 - 0x00 to 0x7f
      10/       0 :                     
      11/       0 :                     STARTUP: ORG	0
      12/       0 : 60                  	lodz	r0
      13/       1 : 03                  	lodz	r3
      14/       2 : 92                  	lpsu
      15/       3 : 1F 00 80            	bcta,un	CSTART
      16/       6 :                     ;
      17/      80 :                     	ORG	H'0080'
      18/      80 :                     CSTART:	
      19/      80 : 04 AE               	lodi,r0 H'AE' ; async, nopari, 8bit, 16xrate
      20/      82 : D4 02               	wrte,r0	H'02'
      21/      84 : 04 FE               	lodi,r0	H'FE' ; 19200bps, 16X, BKDET
      22/      86 : D4 02               	wrte,r0	H'02'
      23/      88 : 04 37               	lodi,r0 H'37' ; /RTS, /DTR low, error reset, TX/RX enable
      24/      8A : D4 03               	wrte,r0 H'03'
      25/      8C :                     ;
      26/      8C : 04 00               CSSWAIT: lodi,r0 0
      27/      8E :                     CSSWAIT1:
      28/      8E : 84 01               	addi,r0	1
      29/      90 : 98 7C               	bcfr,eq	CSSWAIT1
      30/      92 :                     ;
      31/      92 : 06 00               CSS1:	lodi,r2 0
      32/      94 : 0E 20 BC            CSS2:	loda,r0 MSGS-1,r2,+
      33/      97 : 1C 00 A6            	bcta,eq	ENDMSG
      34/      9A : D4 00               	wrte,r0		SERBASE
      35/      9C : 55 01               CSS3:	rede,r1	SERBASE+1
      36/      9E : 45 01               	andi,r1	H'01'	; trasmit holding register empty
      37/      A0 : 1C 00 9C            	bcta,eq	CSS3
      38/      A3 : 1F 00 94            	bcta,un CSS2
      39/      A6 :                     ;
      40/      A6 :                     ENDMSG:
      41/      A6 : 04 00               	lodi r0,0	; small wait
      42/      A8 :                     INPUTLOOP:
      43/      A8 : 55 01               	rede,r1	SERBASE+1
      44/      AA : 45 02               	andi,r1 H'02'
      45/      AC : 1C 00 A8            	bcta,eq	INPUTLOOP
      46/      AF : 54 00               	rede,r0	SERBASE
      47/      B1 :                     ECHOLOOP:
      48/      B1 : 55 01               	rede,r1	SERBASE+1
      49/      B3 : 45 01               	andi,r1 H'01'
      50/      B5 : 1C 00 B1            	bcta,eq	ECHOLOOP
      51/      B8 : D4 00               	wrte,r0	SERBASE
      52/      BA : 1F 00 A6            	bcta,un	ENDMSG
      53/      BD :                     
      54/      BD : 57 65 20 61 72 65   MSGS: db "We are such stuff as dreams are made on",H'0D',H'0A',0
               C3 : 20 73 75 63 68 20 
               C9 : 73 74 75 66 66 20 
               CF : 61 73 20 64 72 65 
               D5 : 61 6D 73 20 61 72 
               DB : 65 20 6D 61 64 65 
               E1 : 20 6F 6E 0D 0A 00 
      55/      E7 :                     
      56/      E7 :                     	end

テスト結果

さて次は PIPBUG のつもりですけど、asano さんの Unimon を先に動かすかもしれません。どっちにせよ、前に書いている通り、まずプログラム転送ルーチンからですけど。現時点で RAM が間接アドレッシング以外で読めないのが面倒すぎる。