日本橋電気街徘徊日誌

いいとしのおっさんがジャンク屋で買ったものをいじったり電子工作したりします。

FM-7用パラレルポート接続SPIシリアルフラッシュメモリアダプタ用のファームウェアを更新しました。(ソース)

2019-04-30 18:22:12 | 電子工作

 

FM-7用パラレルポート接続SPIフラッシュメモリアダプタのファームウェアのソースです。
; Copyright(C)2018 pakapoo All rights reserved.
; http://blog.goo.ne.jp/purupoo/
;
; パラレルポート セツゾク ノ シリアル
; フラッシュメモリ カラ BOOT スル BOOT ROM
; EBIOS6.A ヲ カイゾウ
;
; $FD00 BIT6 OUT STRB SCLK
; $FD01 BIT2 OUT D2   SS1
; $FD01 BIT1 OUT D1   SS0
; $FD01 BIT0 OUT D0   MO
; $FD02 BIT3 IN  PE   MI
;
; 2018/07/?? ナントナク ウゴキハジメタ
; 2019/01/?? マトモニブートスルヨウニナッテキタ
; 2019/04/15 テンソウソクドガ1KB/S->2KB/Sニコウソクカ
; 2019/04/30 プリンタポートノシュツリョクノリヨウシナイBITヲ0カラ1ニヘンコウ
;            FD05デWRITE、FD08デREADトタダシイツカイワケヲシテイナイプログラムニタイオウ
;
;
 ORG $3000
;
; TEST MAIN
;
 LDX #RCB
 JSR READ
 RTS
;
 ORG $3010
 LDX #RCB
 JSR WRITE
 RTS
;
 ORG $3020
 LDX #RCB
 JSR [$FBFA]
 ANDA #$3F
;
 RTS
;
;
 ORG $3030
 LDX #$3080
 LBSR UNSEL
 LDA #$9F
 LBSR SPI2
;LDA  SPIIN
 STA ,X+
 LDA #$00
 LBSR SPI2
;LDA  SPIIN
 STA ,X+
 LDA #$00
 LBSR SPI2
;LDA  SPIIN
 STA ,X+
 RTS
;
;
 ORG $3060
 LDX #$3100
 LBSR UNSEL
 LDA #$77
 LBSR SPI2
 CLRA
 LBSR SPI2
 CLRA
 LBSR SPI2
 CLRA
 LBSR SPI2
L30601:EQU *
 LBSR SPI2
;LDB  SPIIN
 STB ,X+
 CMPX #$3180
 BNE L30601
 RTS
;
;
 ORG $3090
 LDA #100
L30901:PSHS A
 JSR $3000
 PULS A
 DECA
 BNE L30901
 RTS
;
;
;
;
;
 ORG $30C0
;
RCB:FCB 10
RCBST:FCB 0
RCBADR:FDB $3100
RCBTRK:FCB 0
RCBSCT:FCB 1
RCBSID:FCB 0
RCBUNT:FCB 0
TSTST:FDB 0
;
;
 ORG $2E00
;
SPICD:EQU $FD08
SPIDT:EQU $FD09
PRT0:EQU $FD00
PRT1:EQU $FD01
PRT2:EQU $FD02
;
STRD:EQU $D7
FTOB:EQU $53
B1RD:EQU $D1
B1WT:EQU $84
BTOF:EQU $83
APRW:EQU $58
;
;
SCOFST:EQU 128
;
;
;
SS:EQU $FFEB
PNUM:EQU $FFEC
PNUML:EQU $FFED
PAGE_H:EQU $FFEE
PAGE_L:EQU $FFEF
;
; BOOT
;
 BRA BOOTL1
 CLRA
 RTS
 NOP
;BRA  WTRD
;NOP
;BRA  WTRD
;
 NOP
 NOP
 NOP
;
WTRD:EQU *
 LDA ,X
 CMPA #10
 LBEQ READ
 LBRA WRITE
;
;
BOOTL1:EQU *
 LDA #$FD
 TFR A,DP
 CLR <PRT0
 CLRA
 DECA
 STA <PRT1
 LDS #$FC7F
 LBSR UNSEL
 LDB <$FD04
 BITB #$02
 BNE BOOTL2
 LDX $FBFC
 BRA BOOTL3
BOOTL2:EQU *
;
;
 LDA #$31
 LBSR PUTC
 LEAX BTRCB,PCR
 LBSR READ
 LDA #$32
 LBSR PUTC
;
 LDX #$0100
 CLRA
 TFR A,DP
 JMP $0100
;      BRA  BOOTL3
;
;
BOOTL4:EQU *
 LDX $FBFE
;
;
BOOTL3:EQU *
 CLRA
;
COMINI:EQU *
 TFR A,DP
;      JMP  ,X
;
;
 LDU #$FD06
 BSR COMIN1
 LDU #$FD24
 LDA #$04
COMIN2:BSR COMIN1
 LEAU 2,U
 DECA
 BNE COMIN2
 JMP ,X
;
COMIN1:EQU *
 CLR 1,U
 CLR 1,U
 CLR 1,U
 LDB #$40
 STB 1,U
 RTS
;
;
;
;
;
;
BTRCB:FCB $0A,0,$01,$00,0,1,0,0
;
;
; DRIVE TABLE
;DRVTBL:FCB  4,4,2,2
DRVTBL:FCB $FC,$FC,$FE,$FE
;
;
;
;
;
UNSEL:EQU *
 CLR PRT0;CLKLO
 PSHS A
 LDA #$FF
 STA PRT1
 PULS A
 RTS
;
;
;
WAIT:EQU *
;       PSHS A
;       LDA  #1
;WAIT1: DECA
;       BNE  WAIT1
;       PULS A
 RTS
;
;
;
SPI2:EQU *
 PSHS X
 PSHS A,B,DP
 TFR S,X
;
 LDA #8
 STA 2,X
;
SPI2L1:LDA SS
 RORA
 ROL ,X
 ROLA
 STA PRT1
 LDA #$40;CLKHI
 STA PRT0;CLKHI
 LDA PRT2
 RORA
 RORA
 RORA
 RORA
 ROL 1,X
 CLR PRT0;CLKLO
;
 DEC 2,X
 BNE SPI2L1
;
 LDA 1,X
 LEAS 3,S
 PULS X
 RTS
;
;
;
;
SPIWT:EQU *
 RTS
;
SSSEL:EQU *
 BSR UNSEL
 PSHS A,B
 LDA 7,X
 LEAY DRVTBL,PCR
 LEAY A,Y
 LDA ,Y
 STA SS
 PULS A,B
 RTS
;
;
RDYCHK:EQU *
 BSR SSSEL
 LDA #STRD
 BSR SPI2
 CLRA
 BSR SPI2
 CLRA
 BSR SPI2
 LBSR UNSEL
 RTS
;
;
; 4 BYTE COMMAND
;
CMD4:EQU *
 BSR SSSEL
;
 LBSR SPI2
;      
;
TST1:EQU *
 LDB 5,X
 DECB
 LDY #PNUM
 CLR 0,Y
 STB 1,Y
;
 LDB 6,X
 ANDB #1
 LDA #16
 MUL
 ADDD ,Y
 STD ,Y
;
 LDB 4,X
 LDA #32
 MUL
 ADDD ,Y
;
 ADDD #SCOFST
;
 PSHS A,B
 LDA 7,X
 ANDA #3
 CMPA #0
 BEQ CMDL1
 CMPA #2
 BEQ CMDL1
 PULS A,B
 ADDD #1280
 BRA CMDL2
CMDL1:EQU *
 PULS A,B
;
;
CMDL2:EQU *
 LSLB
 ROLA
;
 LSLB
 ROLA
;
 ANDA #$3F
;
 PSHS B
 STA PAGE_H
 LBSR SPI2
 PULS A
 STA PAGE_L
 LBSR SPI2
;
 CLRA
 LBSR SPI2
;
;
 LBSR UNSEL
 RTS
;
;
;PNUM: FCB  0
;PNUML:FCB  0
;
;
CMD:EQU *
 LBSR SSSEL
;
 LBSR SPI2
 CLRA
 LBSR SPI2
 CLRA
 LBSR SPI2
 CLRA
 LBSR SPI2
;
 RTS
;
;
;
READ:EQU *
 LDA #FTOB
 BSR CMD4
READL2:LBSR RDYCHK
 CMPA #$AC
 BNE READL2
 LDA #B1RD
 BSR CMD
 CLRB
 LDY 2,X
READL1:EQU *
 CLRA
 LBSR SPI2
 STA ,Y+
 DECB
 BNE READL1
 LBSR UNSEL
 CLRA
 RTS
;
;
WRITE:EQU *
 LDA #B1WT
 BSR CMD
 CLRB
 LDY 2,X
WTLP1:EQU *
 LDA ,Y+
 LBSR SPI2
;
 DECB
 BNE WTLP1
;
 LBSR UNSEL
;
 LDA #BTOF
 LBSR CMD4
WTLP2:EQU *
 LBSR RDYCHK
 CMPA #$AC
 BNE WTLP2
;
 LDA #APRW
 LBSR CMD4
WTLP3:EQU *
 LBSR RDYCHK
 CMPA #$AC
 BNE WTLP3
;
 LBSR UNSEL
 CLRA
 RTS
ENDADR:EQU *
;
;
PUTC:EQU *
 PSHS A
 LEAX ,S
 LDD #1
 BSR PUTS
 PULS A
 RTS
;
;
PUTS:EQU *
 TFR X,Y
 LEAS -6,S
 LEAX ,S
 PSHS A,B
 LDA #20
 STA ,X
 CLR 1,X
 STY 2,X
 PULS A,B
 STD 4,X
 JSR $F17D
 LEAS 6,S
 RTS
;
 LDA #$31
 BSR PUTC
 RTS
;
;
;
;      INTERRUPT VECTOR
;
 ORG $2FF0
 FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
 FCB $FF,$FF,$FF,$FF,$FF,$FF,$FE,$00






最新の画像もっと見る

コメントを投稿