mirror of
https://github.com/freitz85/AppleIISd.git
synced 2024-11-25 17:40:35 +00:00
Several fixes, binary and srec files added
This commit is contained in:
parent
de4edffe30
commit
7d67a7b4d5
BIN
AppleIISd.bin
Normal file
BIN
AppleIISd.bin
Normal file
Binary file not shown.
941
AppleIISd.lst
941
AppleIISd.lst
File diff suppressed because it is too large
Load Diff
114
AppleIISd.s
114
AppleIISd.s
@ -13,7 +13,7 @@
|
||||
DAT
|
||||
|
||||
XC ; enable 65C02 code
|
||||
DEBUG = 1
|
||||
DEBUG = 0
|
||||
DO DEBUG
|
||||
ORG $8000
|
||||
ELSE
|
||||
@ -83,8 +83,8 @@ DUMMY = $FF
|
||||
FIN
|
||||
TAX ; X holds now SLOT16
|
||||
|
||||
JSR INIT
|
||||
BIT $CFFF
|
||||
JSR INIT
|
||||
|
||||
*
|
||||
* TODO: check for init error
|
||||
@ -404,27 +404,26 @@ GETR3 JSR GETR1 ; get R1 first
|
||||
*
|
||||
********************************
|
||||
|
||||
BLOCK PHY ; save Y
|
||||
LDY SLOT
|
||||
BLOCK PHX ; save X
|
||||
PHY ; save Y
|
||||
LDX SLOT
|
||||
LDA $46 ; store block num
|
||||
STA R33,Y ; in R30-R33
|
||||
STA R33,X ; in R30-R33
|
||||
LDA $47
|
||||
STA R32,Y
|
||||
STA R32,X
|
||||
LDA #0
|
||||
STA R31,Y
|
||||
STA R30,Y
|
||||
STA R31,X
|
||||
STA R30,X
|
||||
|
||||
PHX
|
||||
LDY #9
|
||||
LDX SLOT ; ASL can't be done with Y
|
||||
LDY #9 ; ASL can't be used with Y
|
||||
:LOOP ASL R33,X ; mul block num
|
||||
ROL R32,X ; by 512 to get
|
||||
ROL R31,X ; real address
|
||||
ROL R30,X
|
||||
DEY
|
||||
BNE :LOOP
|
||||
PLX
|
||||
PLY ; restore Y
|
||||
PLX ; restore X
|
||||
RTS
|
||||
|
||||
|
||||
@ -460,16 +459,7 @@ COMMAND PHY ; save Y
|
||||
STA DATA,X ; dummy crc
|
||||
:WAIT2 BIT CTRL,X
|
||||
BPL :WAIT2
|
||||
:GETR1 LDA #DUMMY
|
||||
STA DATA,X ; get R1
|
||||
:WAIT3 BIT CTRL,X
|
||||
BPL :WAIT3
|
||||
LDA DATA,X ; get response
|
||||
*
|
||||
* TODO: check for error!
|
||||
*
|
||||
CMP #$FE
|
||||
BNE :GETR1 ; wait for $FE
|
||||
JSR GETR1
|
||||
PLY ; restore Y
|
||||
RTS
|
||||
|
||||
@ -525,13 +515,23 @@ READ JSR BLOCK ; calc block address
|
||||
LDA #$51 ; send CMD17
|
||||
JSR COMMAND ; send command
|
||||
|
||||
PHY
|
||||
:GETTOK LDA #DUMMY ; get data token
|
||||
STA DATA,X
|
||||
:WAIT BIT CTRL,X
|
||||
BPL :WAIT
|
||||
LDA DATA,X ; get response
|
||||
*
|
||||
* TODO: check for error!
|
||||
*
|
||||
CMP #$FE
|
||||
BNE :GETTOK ; wait for $FE
|
||||
|
||||
LDY #2 ; read data from card
|
||||
:LOOPY STZ WORK
|
||||
:LOOPW LDA #DUMMY
|
||||
STA DATA,X
|
||||
:WAIT4 BIT CTRL,X
|
||||
BPL :WAIT4
|
||||
:WAIT1 BIT CTRL,X
|
||||
BPL :WAIT1
|
||||
LDA DATA,X
|
||||
STA ($44)
|
||||
INC $44
|
||||
@ -541,21 +541,12 @@ READ JSR BLOCK ; calc block address
|
||||
BNE :LOOPW
|
||||
DEY
|
||||
BNE :LOOPY
|
||||
PLY
|
||||
|
||||
JSR GETR3 ; read 2 bytes crc
|
||||
LDA #SSNONE
|
||||
STA SS,X ; disable /CS
|
||||
CLC ; no error
|
||||
LDA #$00
|
||||
PLY ; restore Y
|
||||
RTS
|
||||
|
||||
:ERROR LDA #SSNONE
|
||||
STA SS,X ; disable /CS
|
||||
SEC ; an error occured
|
||||
LDA #$27
|
||||
PLY ; restore Y
|
||||
RTS
|
||||
|
||||
|
||||
@ -569,27 +560,35 @@ READ JSR BLOCK ; calc block address
|
||||
* C Clear - No error
|
||||
* Set - Error
|
||||
* A $00 - No error
|
||||
* $27 - Bad block number
|
||||
* $27 - I/O error or bad block number
|
||||
* $28 - No card inserted
|
||||
* $2B - Card write protected
|
||||
*
|
||||
********************************
|
||||
|
||||
* TODO: check for card detect and write protect!
|
||||
|
||||
WRITE JSR BLOCK ; calc block address
|
||||
|
||||
LDA #SS0 ; enable /CS
|
||||
STA SS,X
|
||||
LDA #$58 ; send CMD24
|
||||
JSR COMMAND ; send command
|
||||
|
||||
PHY
|
||||
LDA #DUMMY
|
||||
STA DATA,X ; send dummy
|
||||
:WAIT1 BIT CTRL,X
|
||||
BPL :WAIT1
|
||||
LDA #$FE
|
||||
STA DATA,X ; send data token
|
||||
:WAIT2 BIT CTRL,X
|
||||
BPL :WAIT2
|
||||
|
||||
LDY #2 ; send data to card
|
||||
:LOOPY STZ WORK
|
||||
:LOOPW LDA ($44)
|
||||
STA DATA,X
|
||||
:WAIT4 BIT CTRL,X
|
||||
BPL :WAIT4
|
||||
:WAIT3 BIT CTRL,X
|
||||
BPL :WAIT3
|
||||
INC $44
|
||||
BNE :INW
|
||||
INC $45 ; inc msb on page boundary
|
||||
@ -600,17 +599,46 @@ WRITE JSR BLOCK ; calc block address
|
||||
|
||||
LDY #2 ; send 2 dummy crc bytes
|
||||
:CRC STA DATA,X
|
||||
:WAIT5 BIT CTRL,X
|
||||
BPL :WAIT5
|
||||
:WAIT4 BIT CTRL,X
|
||||
BPL :WAIT4
|
||||
DEY
|
||||
BNE :CRC
|
||||
PLY
|
||||
|
||||
LDA #DUMMY ; get data response
|
||||
STA DATA,X
|
||||
:WAIT5 BIT CTRL,X
|
||||
BPL :WAIT5
|
||||
LDA DATA,X
|
||||
AND #$1F
|
||||
CMP #$05
|
||||
BNE :ERROR ; check for write error
|
||||
|
||||
:WAIT6 LDA #DUMMY ; wait for write cycle
|
||||
STA DATA,X ; to complete
|
||||
:WAIT61 BIT CTRL,X
|
||||
BPL :WAIT61
|
||||
LDA DATA,X
|
||||
CMP #$00
|
||||
BEQ :WAIT6
|
||||
|
||||
LDA #SSNONE ; disable /CS
|
||||
STA SS,X
|
||||
CLC ; no error
|
||||
LDA #0
|
||||
PLY
|
||||
RTS
|
||||
|
||||
:ERROR
|
||||
:WAIT7 LDA #DUMMY ; wait for write cycle
|
||||
STA DATA,X ; to complete
|
||||
:WAIT71 BIT CTRL,X
|
||||
BPL :WAIT71
|
||||
LDA DATA,X
|
||||
CMP #$00
|
||||
BEQ :WAIT7
|
||||
LDA #SSNONE
|
||||
STA SS,X ; disable /CS
|
||||
SEC ; an error occured
|
||||
LDA #$27
|
||||
RTS
|
||||
|
||||
|
||||
|
62
AppleIISd.s19
Normal file
62
AppleIISd.s19
Normal file
@ -0,0 +1,62 @@
|
||||
S00600004844521B
|
||||
S1130000A220A000A203863C2058FFBABD0001290B
|
||||
S11300100F853D09C08DF8070A0A0A0A852BAA2C08
|
||||
S1130020FFCF2000C9AE31BFBD32BF2970C52BF050
|
||||
S113003032CA10F4AE31BFE00DD006203AFF4C6353
|
||||
S1130040C8BD31BF9D32BFCAD0F7A904052B8D327C
|
||||
S1130050BFEE31BFA53D0AAAA9649D10BFADF80744
|
||||
S11300609D11BF60D82058FFBABD0001290F853DFE
|
||||
S113007009C08DF8070A0A0A0A852BAA2CFFCFA506
|
||||
S113008042C900F010C901F00FC902F00EC903F013
|
||||
S11300900D38A901604CA8CA4CB0CA4CFACA4C8AA3
|
||||
S11300A0CB00000000000000000000000000000081
|
||||
S11300B0000000000000000000000000000000003C
|
||||
S11300C0000000000000000000000000000000002C
|
||||
S11300D0000000000000000000000000000000001C
|
||||
S11300E0000000000000000000000000000000000C
|
||||
S11300F0000000000000000000000000FFFF476453
|
||||
S1130100D8A9039D81C0A90F9D83C0A9079D82C062
|
||||
S1130110A00AA9FF9D80C03C81C010FB88D0F5A92E
|
||||
S11301200E9D83C0A98E8540A9CB854120D7C920C7
|
||||
S1130130EBC9C901D039A99A8540A9CB854120D7FB
|
||||
S1130140C92006CAC901D02AA9A68540A9CB8541E0
|
||||
S113015020D7C920EBC9A9AC8540A9CB854120D7BC
|
||||
S1130160C920EBC9C901F0E0C900D0034CACC94CAB
|
||||
S1130170C8C9A9A68540A9CB854120D7C9A9B285FC
|
||||
S113018040A9CB854120D7C920EBC9C901F0E3C9F7
|
||||
S113019000D0034CACC9A9948540A9CB854120D794
|
||||
S11301A0C920EBC9C901F0F6C900D01CA9A085403B
|
||||
S11301B0A9CB854120D7C920EBC9C900D00A18A012
|
||||
S11301C000900838A028B00338A027A90F9D83C049
|
||||
S11301D0A9009D82C098605AA000B1409D80C03C97
|
||||
S11301E081C010FBC8C00690F17A60A9FF9D80C051
|
||||
S11301F03C81C010FBBD80C0853C2980D0EDA9FFA7
|
||||
S11302009D80C0A53C6020EBC9485AA004A9FF9D6D
|
||||
S113021080C03C81C010FBBD80C04888D0EFA43DA5
|
||||
S11302206899F805689978056899F80468997804D4
|
||||
S11302307AA9FF9D80C06860DA5AA63DA5469DF85C
|
||||
S113024005A5479D7805A9009DF8049D7804A0099B
|
||||
S11302501EF8053E78053EF8043E780488D0F17A0D
|
||||
S1130260FA605AA43D9D80C03C81C010FBB978045B
|
||||
S11302709D80C03C81C010FBB9F8049D80C03C81C6
|
||||
S1130280C010FBB978059D80C03C81C010FBB9F853
|
||||
S1130290059D80C03C81C010FBA9FF9D80C03C81AE
|
||||
S11302A0C010FB20EBC97A6018A900A2FFA0FF6070
|
||||
S11302B02038CAA90E9D83C0A9512062CAA9FF9DF6
|
||||
S11302C080C03C81C010FBBD80C0C9FED0EFA0023D
|
||||
S11302D0643CA9FF9D80C03C81C010FBBD80C092DE
|
||||
S11302E044E644D002E645E63CD0E788D0E2200666
|
||||
S11302F0CAA90F9D83C018A900602038CAA90E9D01
|
||||
S113030083C0A9582062CAA9FF9D80C03C81C01047
|
||||
S1130310FBA9FE9D80C03C81C010FBA002643CB2DE
|
||||
S1130320449D80C03C81C010FBE644D002E645E613
|
||||
S11303303CD0EC88D0E7A0029D80C03C81C010FB7B
|
||||
S113034088D0F5A9FF9D80C03C81C010FBBD80C052
|
||||
S1130350291FC905D01AA9FF9D80C03C81C010FB8C
|
||||
S1130360BD80C0C900F0EFA90F9D83C018A900602B
|
||||
S1130370A9FF9D80C03C81C010FBBD80C0C900F0B6
|
||||
S1130380EFA90F9D83C038A9276038A901604000F8
|
||||
S1130390000000954100000000F948000001AA8710
|
||||
S11303A05000000200FF7700000000656940000073
|
||||
S10B03B000776900000000FF62
|
||||
S9030000FC
|
Loading…
Reference in New Issue
Block a user