Subversion Repositories pentevo

Rev

Rev 889 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
507 savelij 1
 
680 savelij 2
;LAST UPDATE: 01.12.2014 savelij
507 savelij 3
 
573 savelij 4
;  :
5
;HL-   
6
;BCDE-32-   
7
;A-  (=512 )
8
;   /
507 savelij 9
 
573 savelij 10
;   :
11
;A=0-  
12
;A=1-     
507 savelij 13
 
14
;      SD
15
COMSDZ          EX AF,AF'
16
                LD A,IYL
17
                AND A
18
                LD A,(NEXTBYTERST8)
19
                JR Z,COMSDZ1
20
                EX (SP),HL
21
                LD A,(HL)
22
                INC HL
23
                EX (SP),HL
24
COMSDZ1         ADD A,A
25
                PUSH HL
26
                LD HL,RET4SDZ
27
                EX (SP),HL
28
                PUSH HL
29
                LD HL,TABLSDZ
30
                ADD A,L
31
                LD L,A
32
                ADC A,H
33
                SUB L
34
                LD H,A
761 savelij 35
                PEC_OFF M_SHADOW_BF
507 savelij 36
                LD A,(HL)
37
                INC HL
38
                LD H,(HL)
39
                LD L,A
40
                EX AF,AF'
41
                EX (SP),HL
42
                RET
43
 
44
RET4SDZ         PUSH AF
45
                LD A,IYL
46
                AND A
47
                JR NZ,RET4SD1
553 savelij 48
                LD (RREG_L),HL
507 savelij 49
                EX (SP),HL
553 savelij 50
                LD (RREG_F),HL
507 savelij 51
                EX (SP),HL
761 savelij 52
RET4SD1         PEC_ON M_SHADOW_BF
507 savelij 53
                POP AF
54
                RET
55
 
573 savelij 56
TABLSDZ         DW SD_INIT                      ;0   ,   A
57
                                                ;   2 
585 savelij 58
                DW SD_CMP                       ;1   SD 
573 savelij 59
                DW RDMULTI                      ;2  , -  "A"
60
                DW WRMULTI                      ;3  
507 savelij 61
 
62
SD_INIT         CALL CS_HIGH
63
                LD BC,P_DATA
64
                LD DE,0X10FF
65
                OUT (C),E
66
                DEC D
67
                JR NZ,$-3
68
                XOR A
69
                EX AF,AF'
70
ZAW001          LD HL,CMD00
71
                CALL OUTCOM
72
                CALL IN_OOUT
73
                EX AF,AF'
74
                DEC A
75
                JR Z,ZAW003
76
                EX AF,AF'
77
                DEC A
78
                JR NZ,ZAW001
79
                LD HL,CMD08
80
                CALL OUTCOM
81
                CALL IN_OOUT
82
                IN H,(C)
83
                NOP
84
                IN H,(C)
85
                NOP
86
                IN H,(C)
87
                NOP
88
                IN H,(C)
89
                LD HL,0
90
                BIT 2,A
91
                JR NZ,ZAW006
92
                LD H,0X40
93
ZAW006          LD A,CMD_55
94
                CALL OUT_COM
95
                CALL IN_OOUT
890 DimkaM 96
                in (c) ;in f,(c)
97
                in (c) ;in f,(c)
507 savelij 98
                LD A,ACMD_41
99
                OUT (C),A
100
                NOP
101
                OUT (C),H
102
                NOP
103
                OUT (C),L
104
                NOP
105
                OUT (C),L
106
                NOP
107
                OUT (C),L
108
                LD A,0XFF
109
                OUT (C),A
110
                CALL IN_OOUT
111
                AND A
112
                JR NZ,ZAW006
113
ZAW004          LD A,CMD_59
114
                CALL OUT_COM
115
                CALL IN_OOUT
116
                AND A
117
                JR NZ,ZAW004
118
ZAW005          LD HL,CMD16
119
                CALL OUTCOM
120
                CALL IN_OOUT
121
                AND A
122
                JR NZ,ZAW005
123
CS_HIGH         PUSH AF
124
                LD A,3
125
                OUT (P_CONF),A
126
                XOR A
127
                OUT (P_DATA),A
128
                POP AF
129
                RET
130
 
131
ZAW003          CALL SD__OFF
132
                INC A
133
                RET
134
 
135
SD__OFF         XOR A
136
                OUT (P_CONF),A
137
                OUT (P_DATA),A
138
                RET
139
 
140
CS__LOW         PUSH AF
141
                LD A,1
142
                OUT (P_CONF),A
143
                POP AF
144
                RET
145
 
146
OUTCOM          CALL CS__LOW
147
                PUSH BC
148
                LD BC,0X0600+P_DATA
149
                OTIR
150
                POP BC
151
                RET
152
 
153
OUT_COM         PUSH BC
154
                CALL CS__LOW
155
                LD BC,P_DATA
890 DimkaM 156
                in (c) ;in f,(c)
157
                in (c) ;in f,(c)
507 savelij 158
                OUT (C),A
159
                XOR A
160
                OUT (C),A
161
                NOP
162
                OUT (C),A
163
                NOP
164
                OUT (C),A
165
                NOP
166
                OUT (C),A
167
                DEC A
168
                OUT (C),A
169
                POP BC
170
                RET
171
 
585 savelij 172
SD_CMP          LD A,CMD_58
173
                LD BC,P_DATA
174
                CALL OUT_COM
175
                CALL IN_OOUT
176
                IN H,(C)
177
                NOP
178
                IN H,(C)
179
                NOP
180
                IN H,(C)
181
                NOP
182
                IN H,(C)
183
                RET
184
 
507 savelij 185
SECM200         PUSH HL
186
                PUSH DE
187
                PUSH BC
188
                PUSH AF
189
                PUSH BC
190
                LD A,CMD_58
191
                LD BC,P_DATA
192
                CALL OUT_COM
193
                CALL IN_OOUT
194
                IN A,(C)
195
                NOP
196
                IN H,(C)
197
                NOP
198
                IN H,(C)
199
                NOP
200
                IN H,(C)
585 savelij 201
                INC A
202
                JP Z,SD_CARD_LOST
203
                DEC A
507 savelij 204
                BIT 6,A
205
                POP HL
206
                JR NZ,SECN200
207
                EX DE,HL
208
                ADD HL,HL
209
                EX DE,HL
210
                ADC HL,HL
211
                LD H,L
212
                LD L,D
213
                LD D,E
214
                LD E,0
215
SECN200         POP AF
890 DimkaM 216
                in (c) ;in f,(c)
217
                in (c) ;in f,(c)
507 savelij 218
                LD BC,P_DATA
219
                OUT (C),A
220
                NOP
221
                OUT (C),H
222
                NOP
223
                OUT (C),L
224
                NOP
225
                OUT (C),D
226
                NOP
227
                OUT (C),E
228
                LD A,0XFF
229
                OUT (C),A
230
                POP BC
231
                POP DE
232
                POP HL
233
                RET
234
 
235
IN_OOUT         PUSH DE
585 savelij 236
                LD DE,0X30FF
507 savelij 237
IN_WAIT         IN A,(P_DATA)
238
                CP E
239
                JR NZ,IN_EXIT
240
IN_NEXT         DEC D
241
                JR NZ,IN_WAIT
242
IN_EXIT         POP DE
243
                RET
244
 
245
CMD00           DB 0X40,0X00,0X00,0X00,0X00,0X95                ;GO_IDLE_STATE
246
CMD08           DB 0X48,0X00,0X00,0X01,0XAA,0X87                ;SEND_IF_COND
247
CMD16           DB 0X50,0X00,0X00,0X02,0X00,0XFF                ;SET_BLOCKEN
248
 
249
RD_SECT         PUSH BC
573 savelij 250
                LD A,IYL
251
                BIT 1,A
588 savelij 252
                JR NZ,RD_SECT3                  ;  
573 savelij 253
                AND A
254
                JR NZ,RD_SECT2
680 savelij 255
RD_SECT3       
256
;               LD A,(R_7FFD)
257
                READ_7FFD
573 savelij 258
                LD BC,(B0_CPU2)
259
                JR Z,RD_SECT1
260
                LD BC,(B1_CPU2)
761 savelij 261
RD_SECT1        PEC_ON M_SHADOW_BF
573 savelij 262
                LD A,B
588 savelij 263
                OR 0X37
573 savelij 264
                LD B,A
265
                LD A,C
266
                LD C,LOW (WIN_A0)
267
                OUT (C),A
761 savelij 268
                PEC_OFF M_SHADOW_BF
573 savelij 269
RD_SECT2        LD BC,P_DATA
507 savelij 270
                INIR
271
                NOP
272
                INIR
273
                NOP
274
                IN A,(C)
275
                NOP
276
                IN A,(C)
761 savelij 277
                PEC_ON M_SHADOW_BF
643 savelij 278
                LD BC,WIN_P6
573 savelij 279
                XOR A
280
                OUT (C),A
761 savelij 281
                PEC_OFF M_SHADOW_BF
507 savelij 282
                POP BC
283
                RET
284
 
573 savelij 285
WR_SECT         PUSH BC
286
                LD BC,P_DATA
287
                OUT (C),A
288
                OTIR
289
                NOP
290
                OTIR
291
                LD A,0XFF
292
                OUT (C),A
293
                NOP
294
                OUT (C),A
295
                POP BC
296
                RET
297
 
507 savelij 298
RDMULTI         EX AF,AF'
299
                LD A,CMD_18
300
                CALL SECM200
301
                EX AF,AF'
302
RDMULT1         EX AF,AF'
303
                CALL IN_OOUT
304
                CP 0XFE
305
                JR NZ,$-5
306
                CALL RD_SECT
307
                EX AF,AF'
308
                DEC A
309
                JR NZ,RDMULT1
310
                LD A,CMD_12
311
                CALL OUT_COM
312
                CALL IN_OOUT
313
                INC A
314
                JR NZ,$-4
315
                JP CS_HIGH
316
 
573 savelij 317
WRMULTI         EX AF,AF'
318
                LD A,CMD_25
507 savelij 319
                CALL SECM200
320
                CALL IN_OOUT
573 savelij 321
                INC A
322
                JR NZ,$-4
323
                EX AF,AF'
324
WRMULT1         EX AF,AF'
325
                LD A,0XFC
326
                CALL WR_SECT
507 savelij 327
                CALL IN_OOUT
328
                INC A
329
                JR NZ,$-4
573 savelij 330
                EX AF,AF'
331
                DEC A
332
                JR NZ,WRMULT1
333
                LD C,P_DATA
334
                LD A,0XFD
335
                OUT (C),A
336
                CALL IN_OOUT
337
                INC A
338
                JR NZ,$-4
507 savelij 339
                JP CS_HIGH