Rev 1120 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
801 | savelij | 1 | |
1186 | savelij | 2 | ; LAST UPDATE: 13.11.2024 savelij |
801 | savelij | 3 | |
1120 | savelij | 4 | VIEW_CHS EQU 1 |
952 | savelij | 5 | |
801 | savelij | 6 | HDD_DETECTOR LD IX,.HDDDETECT |
1186 | savelij | 7 | RST8 _WINW |
801 | savelij | 8 | LD HL,ADR_CAT |
1186 | savelij | 9 | RST8 _COM_DEV,_COMHDDN,_DEV_INIT |
801 | savelij | 10 | LD A,H |
11 | AND A |
||
12 | JR Z,.MASTER_FOUND |
||
13 | DEC A |
||
14 | CALL Z,.CDDVDFOUNDM |
||
15 | JR Z,.SLAVE |
||
16 | PUSH HL |
||
17 | LD HL,.MASTERNONE |
||
1186 | savelij | 18 | RST8 _PRINT_MESSAGE |
801 | savelij | 19 | POP HL |
20 | JR .SLAVE |
||
21 | |||
22 | .MASTER_FOUND LD C,1 |
||
23 | CALL .HDD_INFO |
||
24 | .SLAVE LD A,L |
||
25 | AND A |
||
26 | JR Z,.SLAVE_FOUND |
||
27 | DEC A |
||
28 | CALL Z,.CDDVDFOUNDS |
||
29 | JP Z,.ENDTEST |
||
30 | LD HL,.SLAVENONE |
||
1186 | savelij | 31 | RST8 _PRINT_MESSAGE |
32 | JR .ENDTEST;.SD_TEST |
||
801 | savelij | 33 | |
34 | .SLAVE_FOUND LD C,2 |
||
35 | CALL .HDD_INFO |
||
1186 | savelij | 36 | |
37 | ;.SD_TEST CALL .GET_SD_INFO |
||
38 | |||
801 | savelij | 39 | .ENDTEST LD HL,.TXTANYKEY |
1186 | savelij | 40 | RST8 _PRINT_MESSAGE |
801 | savelij | 41 | .WAITENTER EI |
42 | HALT |
||
43 | BIT 5,(IY+1) |
||
44 | JR Z,.WAITENTER |
||
45 | LD A,(LAST_K) |
||
46 | CP 0X0D |
||
47 | JR NZ,.WAITENTER |
||
48 | JP RESTART |
||
49 | |||
50 | .HDD_INFO PUSH HL |
||
51 | DEC C |
||
52 | LD HL,.MASTERFOUND |
||
53 | JR Z,.HDDI1 |
||
54 | LD HL,.SLAVEFOUND |
||
1186 | savelij | 55 | .HDDI1 |
56 | RST8 _PRINT_MESSAGE |
||
801 | savelij | 57 | LD A,C |
58 | EX AF,AF' |
||
59 | LD HL,ADR_CAT |
||
1186 | savelij | 60 | RST8 _COM_DEV,_COMHDDN,_DEV_READID |
952 | savelij | 61 | LD HL,ADR_CAT+46 |
801 | savelij | 62 | PUSH HL |
63 | LD B,0X18 |
||
64 | .MF01 LD A,(HL) |
||
65 | INC HL |
||
66 | LD E,(HL) |
||
67 | DEC HL |
||
68 | LD (HL),E |
||
69 | INC HL |
||
70 | LD (HL),A |
||
71 | INC HL |
||
72 | DJNZ .MF01 |
||
952 | savelij | 73 | LD HL,ADR_CAT+46+42 |
74 | IF VIEW_CHS |
||
801 | savelij | 75 | LD (HL),"\r" |
76 | INC HL |
||
952 | savelij | 77 | ENDIF |
801 | savelij | 78 | LD (HL),0 |
79 | POP HL |
||
1186 | savelij | 80 | RST8 _PRINT_MESSAGE ; |
952 | savelij | 81 | IF VIEW_CHS |
801 | savelij | 82 | LD HL,.CHS |
1186 | savelij | 83 | RST8 _PRINT_MESSAGE |
801 | savelij | 84 | LD HL,ADR_CAT+0X200 |
952 | savelij | 85 | LD DE,(ADR_CAT + 1 * WORD) ;⢮ 樫 |
1186 | savelij | 86 | RST8 _MATH,_HEX2DECTXT |
87 | RST8 _PRINT_MESSAGE |
||
801 | savelij | 88 | LD A,"/" |
1186 | savelij | 89 | RST8 _PRINT_A |
952 | savelij | 90 | LD DE,(ADR_CAT + 3 * WORD) ;⢮ |
1186 | savelij | 91 | RST8 _MATH,_HEX1DECTXT |
92 | RST8 _PRINT_MESSAGE |
||
801 | savelij | 93 | LD A,"/" |
1186 | savelij | 94 | RST8 _PRINT_A |
952 | savelij | 95 | LD DE,(ADR_CAT + 6 * WORD) ;⢮ ᥪ |
1186 | savelij | 96 | RST8 _MATH,_HEX1DECTXT |
97 | RST8 _PRINT_MESSAGE |
||
952 | savelij | 98 | ENDIF |
99 | LD HL,.TXTSIZE |
||
1186 | savelij | 100 | RST8 _PRINT_MESSAGE |
952 | savelij | 101 | LD IXL,0 ; ⥪ "MB" |
801 | savelij | 102 | ; LD HL,.NEWLINE |
103 | ; RST8 _PRINT_MESSAGE |
||
952 | savelij | 104 | ; ઠ প LBA48 |
105 | LD HL,(ADR_CAT + 83 * WORD) |
||
106 | LD A,H |
||
107 | AND %00000100 ; 10 83 |
||
108 | JR Z,.LBA28 |
||
109 | ; LBA48 |
||
1186 | savelij | 110 | .LBA48 LD HL,(ADR_CAT + 100 * WORD + 1); ࠧ ᥪ /256 |
952 | savelij | 111 | LD DE,(ADR_CAT + 101 * WORD + 1) |
112 | LD BC,(ADR_CAT + 102 * WORD + 1) |
||
113 | LD B,3 |
||
114 | CALL .DIV_LBA |
||
115 | LD A,C |
||
116 | AND A |
||
117 | JR Z,.L3 |
||
118 | LD IXL,1 ; ⥪ "GB" |
||
119 | LD B,2 |
||
120 | LD L,H |
||
121 | LD H,E |
||
122 | LD E,D |
||
123 | LD D,C |
||
124 | LD C,0 |
||
125 | CALL .DIV_LBA |
||
126 | JR .L3 |
||
127 | |||
128 | ; LBA28 |
||
129 | .LBA28 |
||
130 | LD HL,(ADR_CAT + 60 * WORD + 1) |
||
131 | LD DE,(ADR_CAT + 61 * WORD + 1) ; ࠧ LBA ᥪ |
||
132 | LD BC,3 << 8 + 0 |
||
133 | CALL .DIV_LBA |
||
134 | .L3 LD B,D |
||
135 | LD C,E |
||
136 | EX DE,HL |
||
801 | savelij | 137 | LD HL,ADR_CAT+0X200 |
1186 | savelij | 138 | RST8 _MATH,_HEX4DECTXT |
139 | RST8 _PRINT_MESSAGE |
||
952 | savelij | 140 | LD A,IXL |
141 | AND A |
||
801 | savelij | 142 | LD HL,.TXTMB |
952 | savelij | 143 | JR Z,.L4 |
144 | LD HL,.TXTGB |
||
1186 | savelij | 145 | .L4 |
146 | RST8 _PRINT_MESSAGE |
||
801 | savelij | 147 | POP HL |
148 | RET |
||
149 | |||
952 | savelij | 150 | .DIV_LBA |
151 | .L1 SRL C |
||
152 | RR D |
||
153 | RR E |
||
154 | RR H |
||
155 | RR L |
||
156 | DJNZ .L1 |
||
157 | RET |
||
158 | |||
801 | savelij | 159 | .CDDVDFOUNDS PUSH HL |
160 | LD HL,.SLAVECDDVD |
||
161 | JR .CDDVDFOUND |
||
162 | |||
163 | .CDDVDFOUNDM PUSH HL |
||
164 | LD HL,.MASTERCDDVD |
||
165 | .CDDVDFOUND PUSH AF |
||
1186 | savelij | 166 | RST8 _PRINT_MESSAGE |
801 | savelij | 167 | POP AF |
168 | POP HL |
||
169 | RET |
||
170 | |||
1186 | savelij | 171 | .GET_SD_INFO |
172 | RST8 _COM_DEV,_CONTROL_SD |
||
173 | AND A |
||
174 | JR Z,.GSI01 |
||
175 | ; SD |
||
176 | LD HL,.SD_NOT_FOUND |
||
177 | RST8 _PRINT_MESSAGE |
||
178 | RET |
||
179 | |||
180 | .GSI01 |
||
181 | RET |
||
182 | |||
801 | savelij | 183 | .HDDDETECT DB 0,0,24,32,0X07,0X1F,%01010000,0 |
184 | DW 0,0,.TXTHDDDET,0,0,0 |
||
185 | |||
1186 | savelij | 186 | .TXTHDDDET DZ "\1\x17\XFF\3Device detector\r" |
801 | savelij | 187 | |
1186 | savelij | 188 | .TXTSIZE DZ "\rSize:" |
189 | .TXTMB DZ " MB\r" |
||
190 | .TXTGB DZ " GB\r" |
||
191 | .MASTERFOUND DZ "\rHDD master found\r" |
||
192 | .SLAVEFOUND DZ "\rHDD slave found\r" |
||
193 | .MASTERNONE DZ "\rHDD master not found\r" |
||
194 | .SLAVENONE DZ "\rHDD slave not found\r" |
||
195 | .MASTERCDDVD DZ "\rCD/DVD-ROM master found\r" |
||
196 | .SLAVECDDVD DZ "\rCD/DVD-ROM slave found\r" |
||
197 | .CHS DZ "C/H/S: " |
||
198 | .SD_NOT_FOUND DZ "SD Card not found\r" |
||
199 | .NEWLINE DZ "\r" |
||
200 | .TXTANYKEY DZ "\x16\x17\0\3Press ENTER to main menu" |
||
201 | |||
202 | IF 0 |
||
203 | ;[祭 ࠧ ᥪ] |
||
204 | GET_SD_SIZE PUSH IX |
||
205 | PEC_OFF M_SHADOW_BF |
||
206 | IFDEF UNREAL |
||
207 | LD BC,0X3C;0 |
||
208 | LD DE,0X1800;29120 |
||
209 | ELSE |
||
210 | PUSH HL |
||
211 | PUSH HL |
||
212 | LD A,CMD_09 |
||
213 | CALL OUT_COM |
||
214 | CALL IN_OOUT |
||
215 | CP 0XFE |
||
216 | JR NZ,$-5 |
||
217 | LD BC,P_DATA |
||
218 | POP HL |
||
219 | POP IX |
||
220 | LD B,0X14 |
||
221 | INIR |
||
222 | BIT 6,(IX+0) |
||
223 | JR Z,SDVERS_10 |
||
224 | ;ᯥ䨪 2.0 |
||
225 | ;C_SIZE (22 bit) 69:48 0x45:30 |
||
226 | ;00 01 02 03 04 05 06 07 08 09 |
||
227 | ;xx xx xx xx xx xxxx1111 xxxxxxxx xx111111 11111111 11111111 |
||
228 | LD BC,1 |
||
229 | LD L,(IX+9) |
||
230 | LD H,(IX+8) |
||
231 | LD A,(IX+7) |
||
232 | AND %00111111 |
||
233 | LD E,A |
||
234 | LD D,B ;DEHL=C_SIZE (22 ) |
||
235 | ADD HL,BC |
||
236 | EX DE,HL |
||
237 | LD C,B |
||
238 | ADC HL,BC |
||
239 | EX DE,HL |
||
240 | REPT 2 |
||
241 | ADD HL,HL |
||
242 | EX DE,HL |
||
243 | ADC HL,HL |
||
244 | EX DE,HL |
||
245 | ENDM |
||
246 | LD B,H |
||
247 | LD C,L ;BCDE=⢮ ᥪ |
||
248 | CALL EXIT_SDREAD |
||
249 | POP IX |
||
250 | RET |
||
251 | |||
252 | ;ᯥ䨪 1.0 |
||
253 | ;C_SIZE (12 bit) 73:62 0x49:3E |
||
254 | ;C_SIZE_MULT (3 bit) 49:47 0x31:2F |
||
255 | ;00 01 02 03 04 05 06 07 08 09 0A |
||
256 | ;xx xx xx xx xx xxxx1111 xxxxxx11 11111111 11xxxxxx xxxxxx11 1xxxxxxx |
||
257 | SDVERS_10 LD L,(IX+7) |
||
258 | LD A,(IX+6) |
||
259 | AND %00000011 |
||
260 | LD H,A |
||
261 | ADD HL,HL |
||
262 | ADD HL,HL |
||
263 | LD A,(IX+8) |
||
264 | RLCA |
||
265 | RLCA |
||
266 | AND %00000011 |
||
267 | OR L |
||
268 | LD L,A |
||
269 | EX DE,HL ;DE=C_SIZE |
||
270 | LD L,(IX+10) |
||
271 | LD H,(IX+9) |
||
272 | ADD HL,HL |
||
273 | LD A,H |
||
274 | AND %00000111 |
||
275 | ADD A,2 |
||
276 | LD B,A ;B=C_SIZE_MULT+2 |
||
277 | LD HL,1 |
||
278 | ADD HL,HL |
||
279 | DJNZ $-1 |
||
280 | INC DE |
||
281 | LD B,H |
||
282 | LD C,L |
||
283 | CALL MULTIPLY |
||
284 | LD B,H |
||
285 | LD C,L ;⢮ ᥪ |
||
286 | ENDIF |
||
287 | CALL EXIT_SDREAD |
||
288 | POP IX |
||
289 | RET |
||
290 | ENDIF |