mirror of
https://github.com/freitz85/AppleIISd.git
synced 2025-02-08 22:30:56 +00:00
Updated to V1.1
This commit is contained in:
parent
4be091a1cb
commit
f656800697
@ -1,7 +1,8 @@
|
|||||||
;*******************************
|
;*******************************
|
||||||
;
|
;
|
||||||
; Apple][Sd Firmware
|
; Apple][Sd Firmware
|
||||||
; Version 1.0
|
; Version 1.1
|
||||||
|
; Main source
|
||||||
;
|
;
|
||||||
; (c) Florian Reitz, 2017
|
; (c) Florian Reitz, 2017
|
||||||
;
|
;
|
||||||
@ -138,6 +139,8 @@
|
|||||||
;*******************************
|
;*******************************
|
||||||
|
|
||||||
.else
|
.else
|
||||||
|
;@BOOT: CMP #0
|
||||||
|
; BNE @NEXTSLOT ; init not successful
|
||||||
@BOOT: LDA #$01
|
@BOOT: LDA #$01
|
||||||
STA DCMD ; load command
|
STA DCMD ; load command
|
||||||
LDX SLOT16
|
LDX SLOT16
|
||||||
@ -264,7 +267,17 @@ DRIVER: CLD
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
; Signature bytes
|
;*******************************
|
||||||
|
;
|
||||||
|
; Signature bytes
|
||||||
|
;
|
||||||
|
; 65535 blocks
|
||||||
|
; Removable media
|
||||||
|
; Non-interruptable
|
||||||
|
; 2 drives
|
||||||
|
; Read, write and status allowed
|
||||||
|
;
|
||||||
|
;*******************************
|
||||||
|
|
||||||
.segment "SLOTID"
|
.segment "SLOTID"
|
||||||
.dbyt $FFFF ; 65535 blocks
|
.dbyt $FFFF ; 65535 blocks
|
||||||
@ -317,18 +330,22 @@ INIT: LDA #$03 ; set SPI mode 3
|
|||||||
LDA #>CMD8
|
LDA #>CMD8
|
||||||
STA CMDHI
|
STA CMDHI
|
||||||
JSR SDCMD
|
JSR SDCMD
|
||||||
JSR GETR3
|
JSR GETR3 ; R7 is also 1+4 bytes
|
||||||
CMP #$01
|
CMP #$01
|
||||||
BNE @SDV1 ; may be SD Ver. 1
|
BNE @SDV1 ; may be SD Ver. 1
|
||||||
|
|
||||||
; check for $01aa match!
|
LDY SLOT ; check for $aa in R33
|
||||||
|
LDA R33,Y
|
||||||
|
CMP #$AA
|
||||||
|
BNE @ERROR1 ; error!
|
||||||
|
|
||||||
@SDV2: LDA #<CMD55
|
@SDV2: LDA #<CMD55
|
||||||
STA CMDLO
|
STA CMDLO
|
||||||
LDA #>CMD55
|
LDA #>CMD55
|
||||||
STA CMDHI
|
STA CMDHI
|
||||||
JSR SDCMD
|
JSR SDCMD
|
||||||
JSR GETR1
|
JSR GETR1
|
||||||
LDA #<ACMD4140
|
LDA #<ACMD4140 ; enable SDHC support
|
||||||
STA CMDLO
|
STA CMDLO
|
||||||
LDA #>ACMD4140
|
LDA #>ACMD4140
|
||||||
STA CMDHI
|
STA CMDHI
|
||||||
@ -338,12 +355,25 @@ INIT: LDA #$03 ; set SPI mode 3
|
|||||||
BEQ @SDV2 ; wait for ready
|
BEQ @SDV2 ; wait for ready
|
||||||
CMP #0
|
CMP #0
|
||||||
BNE @ERROR1 ; error!
|
BNE @ERROR1 ; error!
|
||||||
; send CMD58
|
|
||||||
; SD Ver. 2 initialized!
|
; SD Ver. 2 initialized!
|
||||||
LDA SS,X
|
LDA #<CMD58 ; check for SDHC
|
||||||
|
STA CMDLO
|
||||||
|
LDA #>CMD58
|
||||||
|
STA CMDHI
|
||||||
|
JSR SDCMD
|
||||||
|
JSR GETR3
|
||||||
|
CMP #0
|
||||||
|
BNE @ERROR1 ; error!
|
||||||
|
LDY SLOT
|
||||||
|
LDA R30,Y
|
||||||
|
AND #$40 ; check CCS
|
||||||
|
BEQ @BLOCKSZ
|
||||||
|
|
||||||
|
LDA SS,X ; card is SDHC
|
||||||
ORA #SDHC
|
ORA #SDHC
|
||||||
STA SS,X
|
STA SS,X
|
||||||
JMP @BLOCKSZ
|
JMP @END
|
||||||
|
|
||||||
@ERROR1: JMP @IOERROR ; needed for far jump
|
@ERROR1: JMP @IOERROR ; needed for far jump
|
||||||
|
|
||||||
@ -661,7 +691,7 @@ TEST: LDA SLOT16
|
|||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
|
||||||
TEXT: .asciiz " Apple][Sd v1.0 (c)2017 Florian Reitz"
|
TEXT: .asciiz " Apple][Sd v1.1 (c)2017 Florian Reitz"
|
||||||
|
|
||||||
CMD0: .byt $40, $00, $00
|
CMD0: .byt $40, $00, $00
|
||||||
.byt $00, $00, $95
|
.byt $00, $00, $95
|
||||||
@ -672,7 +702,9 @@ CMD8: .byt $48, $00, $00
|
|||||||
CMD16: .byt $50, $00, $00
|
CMD16: .byt $50, $00, $00
|
||||||
.byt $02, $00, $FF
|
.byt $02, $00, $FF
|
||||||
CMD55: .byt $77, $00, $00
|
CMD55: .byt $77, $00, $00
|
||||||
.byt $00, $00, $65
|
.byt $00, $00, $FF
|
||||||
|
CMD58: .byt $7A, $00, $00
|
||||||
|
.byt $00, $00, $FF
|
||||||
ACMD4140: .byt $69, $40, $00
|
ACMD4140: .byt $69, $40, $00
|
||||||
.byt $00, $00, $77
|
.byt $00, $00, $77
|
||||||
ACMD410: .byt $69, $00, $00
|
ACMD410: .byt $69, $00, $00
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
;*******************************
|
;*******************************
|
||||||
;
|
;
|
||||||
; Apple][Sd Firmware
|
; Apple][Sd Firmware
|
||||||
; Version 1.0
|
; Version 1.1
|
||||||
|
; Helper functions
|
||||||
;
|
;
|
||||||
; (c) Florian Reitz, 2017
|
; (c) Florian Reitz, 2017
|
||||||
;
|
;
|
||||||
@ -64,7 +65,7 @@ GETR1: LDA #DUMMY
|
|||||||
|
|
||||||
;*******************************
|
;*******************************
|
||||||
;
|
;
|
||||||
; Get R3
|
; Get R3 or R7
|
||||||
; R1 is in A
|
; R1 is in A
|
||||||
; R3 is in scratchpad ram
|
; R3 is in scratchpad ram
|
||||||
;
|
;
|
||||||
@ -74,6 +75,7 @@ GETR3: JSR GETR1 ; get R1 first
|
|||||||
PHA ; save R1
|
PHA ; save R1
|
||||||
PHY ; save Y
|
PHY ; save Y
|
||||||
LDY #04 ; load counter
|
LDY #04 ; load counter
|
||||||
|
JMP @WAIT ; first byte is already there
|
||||||
@LOOP: LDA #DUMMY ; send dummy
|
@LOOP: LDA #DUMMY ; send dummy
|
||||||
STA DATA,X
|
STA DATA,X
|
||||||
@WAIT: BIT CTRL,X
|
@WAIT: BIT CTRL,X
|
||||||
@ -90,7 +92,7 @@ GETR3: JSR GETR1 ; get R1 first
|
|||||||
PLA
|
PLA
|
||||||
STA R31,Y
|
STA R31,Y
|
||||||
PLA
|
PLA
|
||||||
STA R30,Y
|
STA R30,Y ; R30 is MSB
|
||||||
PLY ; restore Y
|
PLY ; restore Y
|
||||||
LDA #DUMMY
|
LDA #DUMMY
|
||||||
STA DATA,X ; send another dummy
|
STA DATA,X ; send another dummy
|
||||||
|
Loading…
x
Reference in New Issue
Block a user