Rev 890 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 507 | savelij | 1 | |
| 1186 | savelij | 2 | ; LAST UPDATE: 06.02.2025 savelij |
| 507 | savelij | 3 | |
| 1186 | savelij | 4 | ; 室 ࠬ 騥: |
| 5 | ; HL- 㧪 |
||
| 6 | ; BCDE-32- ᥪ |
||
| 7 | ; A-⢮ (=512 ) |
||
| 8 | ; ⮫쪮 筮 /⥭ |
||
| 507 | savelij | 9 | |
| 1186 | savelij | 10 | ; 訡 뤠 室: |
| 11 | ; A=0-樠 諠 ᯥ譮 |
||
| 12 | ; A=1- ⢥⨫ |
||
| 507 | savelij | 13 | |
| 1186 | savelij | 14 | ; 窠 室 ࠡ SD |
| 507 | savelij | 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 |
||
| 1186 | 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 |
| 1186 | savelij | 52 | RET4SD1 |
| 53 | PEC_ON M_SHADOW_BF |
||
| 507 | savelij | 54 | POP AF |
| 55 | RET |
||
| 56 | |||
| 1186 | savelij | 57 | TABLSDZ DW SD_INIT ; 0 ࠬ ॡ, 室 'A' |
| 58 | ; ᬮ 2 祭 |
||
| 59 | DW SD_CMP ; 1 ઠ SD |
||
| 60 | DW RDMULTI ; 2 ⥭ ᥪ, - 'A' |
||
| 61 | DW WRMULTI ; 3 ᥪ, - 'A' |
||
| 507 | savelij | 62 | |
| 63 | SD_INIT CALL CS_HIGH |
||
| 64 | LD BC,P_DATA |
||
| 1186 | savelij | 65 | LD DE,0x10FF |
| 507 | savelij | 66 | OUT (C),E |
| 67 | DEC D |
||
| 68 | JR NZ,$-3 |
||
| 69 | XOR A |
||
| 70 | EX AF,AF' |
||
| 71 | ZAW001 LD HL,CMD00 |
||
| 72 | CALL OUTCOM |
||
| 73 | CALL IN_OOUT |
||
| 74 | EX AF,AF' |
||
| 75 | DEC A |
||
| 76 | JR Z,ZAW003 |
||
| 77 | EX AF,AF' |
||
| 78 | DEC A |
||
| 79 | JR NZ,ZAW001 |
||
| 80 | LD HL,CMD08 |
||
| 81 | CALL OUTCOM |
||
| 82 | CALL IN_OOUT |
||
| 83 | IN H,(C) |
||
| 84 | NOP |
||
| 85 | IN H,(C) |
||
| 86 | NOP |
||
| 87 | IN H,(C) |
||
| 88 | NOP |
||
| 89 | IN H,(C) |
||
| 90 | LD HL,0 |
||
| 91 | BIT 2,A |
||
| 92 | JR NZ,ZAW006 |
||
| 1186 | savelij | 93 | LD H,0x40 |
| 507 | savelij | 94 | ZAW006 LD A,CMD_55 |
| 95 | CALL OUT_COM |
||
| 96 | CALL IN_OOUT |
||
| 890 | DimkaM | 97 | in (c) ;in f,(c) |
| 98 | in (c) ;in f,(c) |
||
| 507 | savelij | 99 | LD A,ACMD_41 |
| 100 | OUT (C),A |
||
| 101 | NOP |
||
| 102 | OUT (C),H |
||
| 103 | NOP |
||
| 104 | OUT (C),L |
||
| 105 | NOP |
||
| 106 | OUT (C),L |
||
| 107 | NOP |
||
| 108 | OUT (C),L |
||
| 1186 | savelij | 109 | LD A,0xFF |
| 507 | savelij | 110 | OUT (C),A |
| 111 | CALL IN_OOUT |
||
| 112 | AND A |
||
| 113 | JR NZ,ZAW006 |
||
| 114 | ZAW004 LD A,CMD_59 |
||
| 115 | CALL OUT_COM |
||
| 116 | CALL IN_OOUT |
||
| 117 | AND A |
||
| 118 | JR NZ,ZAW004 |
||
| 119 | ZAW005 LD HL,CMD16 |
||
| 120 | CALL OUTCOM |
||
| 121 | CALL IN_OOUT |
||
| 122 | AND A |
||
| 123 | JR NZ,ZAW005 |
||
| 124 | CS_HIGH PUSH AF |
||
| 125 | LD A,3 |
||
| 126 | OUT (P_CONF),A |
||
| 127 | XOR A |
||
| 128 | OUT (P_DATA),A |
||
| 129 | POP AF |
||
| 130 | RET |
||
| 131 | |||
| 132 | ZAW003 CALL SD__OFF |
||
| 133 | INC A |
||
| 134 | RET |
||
| 135 | |||
| 136 | SD__OFF XOR A |
||
| 137 | OUT (P_CONF),A |
||
| 138 | OUT (P_DATA),A |
||
| 139 | RET |
||
| 140 | |||
| 141 | CS__LOW PUSH AF |
||
| 142 | LD A,1 |
||
| 143 | OUT (P_CONF),A |
||
| 144 | POP AF |
||
| 145 | RET |
||
| 146 | |||
| 147 | OUTCOM CALL CS__LOW |
||
| 148 | PUSH BC |
||
| 1186 | savelij | 149 | LD BC,0x0600+P_DATA |
| 507 | savelij | 150 | OTIR |
| 151 | POP BC |
||
| 152 | RET |
||
| 153 | |||
| 154 | OUT_COM PUSH BC |
||
| 155 | CALL CS__LOW |
||
| 156 | LD BC,P_DATA |
||
| 890 | DimkaM | 157 | in (c) ;in f,(c) |
| 158 | in (c) ;in f,(c) |
||
| 507 | savelij | 159 | OUT (C),A |
| 160 | XOR A |
||
| 161 | OUT (C),A |
||
| 162 | NOP |
||
| 163 | OUT (C),A |
||
| 164 | NOP |
||
| 165 | OUT (C),A |
||
| 166 | NOP |
||
| 167 | OUT (C),A |
||
| 168 | DEC A |
||
| 169 | OUT (C),A |
||
| 170 | POP BC |
||
| 171 | RET |
||
| 172 | |||
| 585 | savelij | 173 | SD_CMP LD A,CMD_58 |
| 174 | LD BC,P_DATA |
||
| 175 | CALL OUT_COM |
||
| 176 | CALL IN_OOUT |
||
| 177 | IN H,(C) |
||
| 178 | NOP |
||
| 179 | IN H,(C) |
||
| 180 | NOP |
||
| 181 | IN H,(C) |
||
| 182 | NOP |
||
| 183 | IN H,(C) |
||
| 184 | RET |
||
| 185 | |||
| 507 | savelij | 186 | SECM200 PUSH HL |
| 187 | PUSH DE |
||
| 188 | PUSH BC |
||
| 189 | PUSH AF |
||
| 190 | PUSH BC |
||
| 191 | LD A,CMD_58 |
||
| 192 | LD BC,P_DATA |
||
| 193 | CALL OUT_COM |
||
| 194 | CALL IN_OOUT |
||
| 195 | IN A,(C) |
||
| 196 | NOP |
||
| 197 | IN H,(C) |
||
| 198 | NOP |
||
| 199 | IN H,(C) |
||
| 200 | NOP |
||
| 201 | IN H,(C) |
||
| 585 | savelij | 202 | INC A |
| 203 | JP Z,SD_CARD_LOST |
||
| 204 | DEC A |
||
| 507 | savelij | 205 | BIT 6,A |
| 206 | POP HL |
||
| 207 | JR NZ,SECN200 |
||
| 208 | EX DE,HL |
||
| 209 | ADD HL,HL |
||
| 210 | EX DE,HL |
||
| 211 | ADC HL,HL |
||
| 212 | LD H,L |
||
| 213 | LD L,D |
||
| 214 | LD D,E |
||
| 215 | LD E,0 |
||
| 216 | SECN200 POP AF |
||
| 890 | DimkaM | 217 | in (c) ;in f,(c) |
| 218 | in (c) ;in f,(c) |
||
| 507 | savelij | 219 | LD BC,P_DATA |
| 220 | OUT (C),A |
||
| 221 | NOP |
||
| 222 | OUT (C),H |
||
| 223 | NOP |
||
| 224 | OUT (C),L |
||
| 225 | NOP |
||
| 226 | OUT (C),D |
||
| 227 | NOP |
||
| 228 | OUT (C),E |
||
| 1186 | savelij | 229 | LD A,0xFF |
| 507 | savelij | 230 | OUT (C),A |
| 231 | POP BC |
||
| 232 | POP DE |
||
| 233 | POP HL |
||
| 234 | RET |
||
| 235 | |||
| 236 | IN_OOUT PUSH DE |
||
| 1186 | savelij | 237 | LD DE,0x30FF |
| 507 | savelij | 238 | IN_WAIT IN A,(P_DATA) |
| 239 | CP E |
||
| 240 | JR NZ,IN_EXIT |
||
| 241 | IN_NEXT DEC D |
||
| 242 | JR NZ,IN_WAIT |
||
| 243 | IN_EXIT POP DE |
||
| 244 | RET |
||
| 245 | |||
| 1186 | savelij | 246 | CMD00 DB 0x40,0x00,0x00,0x00,0x00,0x95 ;GO_IDLE_STATE |
| 247 | CMD08 DB 0x48,0x00,0x00,0x01,0xAA,0x87 ;SEND_IF_COND |
||
| 248 | CMD16 DB 0x50,0x00,0x00,0x02,0x00,0xFF ;SET_BLOCKEN |
||
| 507 | savelij | 249 | |
| 250 | RD_SECT PUSH BC |
||
| 573 | savelij | 251 | LD A,IYL |
| 252 | BIT 1,A |
||
| 588 | savelij | 253 | JR NZ,RD_SECT3 ; |
| 573 | savelij | 254 | AND A |
| 255 | JR NZ,RD_SECT2 |
||
| 680 | savelij | 256 | RD_SECT3 |
| 1186 | savelij | 257 | READ_7FFD |
| 573 | savelij | 258 | LD BC,(B0_CPU2) |
| 259 | JR Z,RD_SECT1 |
||
| 260 | LD BC,(B1_CPU2) |
||
| 1186 | savelij | 261 | RD_SECT1 |
| 262 | PEC_ON M_SHADOW_BF |
||
| 573 | savelij | 263 | LD A,B |
| 1186 | savelij | 264 | OR 0x37 |
| 573 | savelij | 265 | LD B,A |
| 266 | LD A,C |
||
| 267 | LD C,LOW (WIN_A0) |
||
| 268 | OUT (C),A |
||
| 1186 | savelij | 269 | PEC_OFF M_SHADOW_BF |
| 573 | savelij | 270 | RD_SECT2 LD BC,P_DATA |
| 507 | savelij | 271 | INIR |
| 272 | NOP |
||
| 273 | INIR |
||
| 274 | NOP |
||
| 275 | IN A,(C) |
||
| 276 | NOP |
||
| 277 | IN A,(C) |
||
| 1186 | savelij | 278 | PEC_ON M_SHADOW_BF |
| 279 | LD BC,WIN_P2 |
||
| 573 | savelij | 280 | XOR A |
| 281 | OUT (C),A |
||
| 1186 | savelij | 282 | PEC_OFF M_SHADOW_BF |
| 507 | savelij | 283 | POP BC |
| 284 | RET |
||
| 285 | |||
| 573 | savelij | 286 | WR_SECT PUSH BC |
| 287 | LD BC,P_DATA |
||
| 288 | OUT (C),A |
||
| 289 | OTIR |
||
| 290 | NOP |
||
| 291 | OTIR |
||
| 1186 | savelij | 292 | LD A,0xFF |
| 573 | savelij | 293 | OUT (C),A |
| 294 | NOP |
||
| 295 | OUT (C),A |
||
| 296 | POP BC |
||
| 297 | RET |
||
| 298 | |||
| 507 | savelij | 299 | RDMULTI EX AF,AF' |
| 300 | LD A,CMD_18 |
||
| 301 | CALL SECM200 |
||
| 302 | EX AF,AF' |
||
| 303 | RDMULT1 EX AF,AF' |
||
| 304 | CALL IN_OOUT |
||
| 1186 | savelij | 305 | CP 0xFE |
| 507 | savelij | 306 | JR NZ,$-5 |
| 307 | CALL RD_SECT |
||
| 308 | EX AF,AF' |
||
| 309 | DEC A |
||
| 310 | JR NZ,RDMULT1 |
||
| 311 | LD A,CMD_12 |
||
| 312 | CALL OUT_COM |
||
| 313 | CALL IN_OOUT |
||
| 314 | INC A |
||
| 315 | JR NZ,$-4 |
||
| 316 | JP CS_HIGH |
||
| 317 | |||
| 573 | savelij | 318 | WRMULTI EX AF,AF' |
| 319 | LD A,CMD_25 |
||
| 507 | savelij | 320 | CALL SECM200 |
| 321 | CALL IN_OOUT |
||
| 573 | savelij | 322 | INC A |
| 323 | JR NZ,$-4 |
||
| 324 | EX AF,AF' |
||
| 325 | WRMULT1 EX AF,AF' |
||
| 1186 | savelij | 326 | LD A,0xFC |
| 573 | savelij | 327 | CALL WR_SECT |
| 507 | savelij | 328 | CALL IN_OOUT |
| 329 | INC A |
||
| 330 | JR NZ,$-4 |
||
| 573 | savelij | 331 | EX AF,AF' |
| 332 | DEC A |
||
| 333 | JR NZ,WRMULT1 |
||
| 334 | LD C,P_DATA |
||
| 1186 | savelij | 335 | LD A,0xFD |
| 573 | savelij | 336 | OUT (C),A |
| 337 | CALL IN_OOUT |
||
| 338 | INC A |
||
| 339 | JR NZ,$-4 |
||
| 507 | savelij | 340 | JP CS_HIGH |