復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第315回]
●I/Oレジスタへのアクセス方法(2)
前回の説明の中で、I/Oレジスタに00Hを書き込む場合に限っては、普通のOUT命令(コードD3XX)が使えるはず、と書きました。
念のために、テストプログラムをそのように変更して試してみました。
下は前回使用しましたテストプログラムの先頭部分を普通のOUT命令に書き換えたプログラムのリストです(先頭の変更した部分のみ示します)。
2013/2/10 21:7 e80time3.txt END=802A ;;; music 09/10/9 10/10 10/12 10/15 ;;; ;;;MUSIC from MYCPU80 MUSIC ;10/6/4 6/5 6/15 for ND80Z3 CLK=6MHz ;7/20 9/24 ;12/11/27 for E-80 clock? ;13/1/27 ;2/6 time test ;2/10 ; ORG $8000 ; 8000 AF XOR A 8001 D332 OUT (32),A 8003 D336 OUT (36),A 8005 310000 START:LD SP,$0000 |
2013/2/10 21:7 e80time4.txt END=802F ;;; music 09/10/9 10/10 10/12 10/15 ;;; ;;;MUSIC from MYCPU80 MUSIC ;10/6/4 6/5 6/15 for ND80Z3 CLK=6MHz ;7/20 9/24 ;12/11/27 for E-80 clock? ;13/1/27 ;2/6 time test ;2/10 ; ORG $8000 ; 8000 AF XOR A 8001 013200 LD BC,$0032 8004 ED79 OUT (C),A 8006 0E36 LD C,36 8008 ED79 OUT (C),A 800A 310000 START:LD SP,$0000 |
>/ld e80time2.bin,8000 loading E80TIME2.BIN ...0030(48)bytes loaded,from 8000 to 802F >dm 8000,802f 8000 3E 3F ED 39 36 3E 30 ED-39 32 31 00 00 3E 88 D3 >?.96>0.921..>.モ 8010 FB 3E 03 D3 FB CD 22 80-3E 02 D3 FB CD 22 80 C3 .>.モ.ヘ".>.モ.ヘ".テ 8020 11 80 F5 3E 5F E5 E5 E1-E1 00 3D C2 25 80 F1 C9 ...>_.....=ツ%..ノ >cm 8006 8006 30-00 8007 ED- >cm 8015 8015 CD-3e 8016 22-02 8017 80-d3 8018 3E-fb 8019 02-c3 801A D3-11 801B FB-80 801C CD- |
; ORG $8000 ; 8000 3E3F LD A,3F; refresh off 8002 ED DB ED;OUT0 (36),A 8003 39 DB 39; 8004 36 DB 36; 8005 3E30 LD A,30; memory wait off 8007 ED DB ED;OUT0 (32),A 8008 39 DB 39; 8009 32 DB 32; 800A 310000 START:LD SP,$0000 800D 3E88 LD A,88;A=out,B=out,CH=in,CL=out 800F D3FB OUT (FB),A 8011 3E03 LOOP:LD A,03 ;sp out=H (pc1=H) 8013 D3FB OUT (FB),A 8015 CD2280 CALL T1MS 8018 3E02 LD A,02 ;sp out=L (pc1=L) 801A D3FB OUT (FB),A 801C CD2280 CALL T1MS 801F C31180 JP LOOP |
; ORG $8000 ; 8000 3E3F LD A,3F; refresh off 8002 ED DB ED;OUT0 (36),A 8003 39 DB 39; 8004 36 DB 36; 8005 3E00 LD A,00; memory wait off 8007 ED DB ED;OUT0 (32),A 8008 39 DB 39; 8009 32 DB 32; 800A 310000 START:LD SP,$0000 800D 3E88 LD A,88;A=out,B=out,CH=in,CL=out 800F D3FB OUT (FB),A 8011 3E03 LOOP:LD A,03 ;sp out=H (pc1=H) 8013 D3FB OUT (FB),A 8015 3E02 LD A,02 ;sp out=L (pc1=L) 8017 D3FB OUT (FB),A 8019 C31180 JP LOOP ; |