Rev 627 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 627 | savelij | 1 | |
| 736 | savelij | 2 | ;LAST UPDATE: 31.12.2016 savelij |
| 627 | savelij | 3 | |
| 4 | ; MAIN "DOSI*",0XC6 |
||
| 5 | ; ORG 0X321C |
||
| 6 | SETERRAD |
||
| 7 | ;call из 0X246 |
||
| 8 | ;вместо 0X21D |
||
| 9 | LD A,0X0D |
||
| 10 | LD (0X5D20),A |
||
| 11 | JP 0X21D |
||
| 12 | POSIT |
||
| 13 | ;call из 0X20CC |
||
| 14 | ;вместо 0X3E44 |
||
| 15 | PUSH HL |
||
| 16 | PUSH BC |
||
| 17 | PUSH AF |
||
| 18 | PUSH DE |
||
| 19 | LD A,0XED |
||
| 20 | LD (0X5C86),A |
||
| 21 | LD A,0X0C |
||
| 22 | LD (0X5C8A),A |
||
| 23 | LD A,E |
||
| 24 | JR LL323d |
||
| 25 | LL3235 |
||
| 26 | LD A,(HL) |
||
| 27 | CP 0XFF |
||
| 28 | RET Z |
||
| 29 | RST 0X10 |
||
| 30 | INC HL |
||
| 31 | JR LL3235 |
||
| 32 | LL323d |
||
| 33 | LD B,"0" |
||
| 34 | LL323f SUB 10 |
||
| 35 | JR C,LL3246 |
||
| 36 | INC B |
||
| 37 | JR LL323f |
||
| 38 | LL3246 |
||
| 39 | PUSH AF |
||
| 40 | LD A,B |
||
| 41 | RST 0X10 |
||
| 42 | POP AF |
||
| 43 | ADD A,0X30+10; ADD A,"0"+10 |
||
| 44 | RST 0X10 |
||
| 45 | POP DE |
||
| 46 | POP AF |
||
| 47 | POP BC |
||
| 48 | POP HL |
||
| 49 | EI |
||
| 50 | JP 0X3E44 ;позиционирование |
||
| 51 | |||
| 52 | ;DS 3,0XFF |
||
| 53 | |||
| 54 | TFormTS |
||
| 55 | DB "Format track Side",0 |
||
| 56 | |||
| 57 | ;DS 3,0XFF |
||
| 58 | |||
| 59 | TFile |
||
| 60 | DB 0X16,0,0 |
||
| 61 | DB "File ",34 |
||
| 62 | DB 0X13,1,0XFF |
||
| 63 | TExists |
||
| 64 | DB 0X13,0 |
||
| 65 | DB 34,0XD |
||
| 66 | ;DB "Exists... Over write?(Y/N)" |
||
| 67 | DB "Exists!Overwrite?(Y/N/Add)" |
||
| 68 | DB 0XFF |
||
| 69 | TComplete |
||
| 70 | DB "Complete" |
||
| 71 | DB 0XD |
||
| 72 | DB "Name:",0 |
||
| 73 | TFORMAT |
||
| 74 | DB "FORMAT: 1 - Normal " |
||
| 75 | DB 0XD,0X17,0XA |
||
| 76 | DB " 2 - Turbo" |
||
| 77 | DB 0XD,0X17,0XA |
||
| 78 | DB " 3 - Fast turbo" |
||
| 79 | DB 0 |
||
| 80 | |||
| 81 | ;DS 6,0XFF |
||
| 82 | CHECKON |
||
| 83 | ;call из 0X20C1 |
||
| 84 | ;вместо XOR A:INC HL:LD (HL),A ;0X5CD8 |
||
| 85 | INC HL |
||
| 86 | LD A,(0X5CE8) |
||
| 87 | LD (HL),A |
||
| 88 | XOR A |
||
| 89 | RET |
||
| 90 | PRHD1 |
||
| 91 | ;call из 0X20DE |
||
| 92 | ;вместо 0X330F |
||
| 93 | PUSH AF |
||
| 94 | LD A,"1" |
||
| 95 | JR LL32f9 |
||
| 96 | PRHD0 |
||
| 97 | ;call из 0X20D2 |
||
| 98 | ;вместо 0X32DD |
||
| 99 | PUSH AF |
||
| 100 | LD A,"0" |
||
| 101 | LL32f9 |
||
| 102 | PUSH AF |
||
| 103 | LD A,0XF8 |
||
| 104 | LD (0X5C86),A |
||
| 105 | LD A,0X17 |
||
| 106 | LD (0X5C8A),A |
||
| 107 | POP AF |
||
| 108 | RST 0X10 |
||
| 109 | POP AF |
||
| 110 | JP 0X1FFD ;форматирование дорожки |
||
| 111 | LL330a |
||
| 112 | ;кнопка для Overwrite |
||
| 113 | CALL 0X1D9F ;очистка низа экрана |
||
| 114 | LD HL,TFile |
||
| 115 | CALL LL3235 |
||
| 116 | CALL LL3329 |
||
| 117 | LD HL,TExists |
||
| 118 | CALL LL3235 |
||
| 119 | LD HL,0X4000 |
||
| 120 | LL331f DEC HL |
||
| 121 | LD A,H |
||
| 122 | OR L |
||
| 123 | JR NZ,LL331f |
||
| 124 | CALL 0X1052 ;ввод клавиши с ожиданием |
||
| 125 | JR LL3338 |
||
| 126 | LL3329 |
||
| 127 | LD A,(0X5CF6) |
||
| 128 | ADD A,"A" |
||
| 129 | RST 0X10 |
||
| 130 | LD A,":" |
||
| 131 | RST 0X10 |
||
| 132 | LD HL,0X5CDD ;адрес имени |
||
| 133 | JP 0X2938 ;печать имени с расширением |
||
| 134 | LL3338 |
||
| 135 | PUSH AF |
||
| 136 | CALL 0X1D9F ;очистка низа экрана |
||
| 137 | POP AF |
||
| 138 | CP "Y" |
||
| 139 | RET Z |
||
| 140 | CP "A";0XD |
||
| 141 | RET |
||
| 142 | LL3343 |
||
| 143 | ;если при записи есть такой файл |
||
| 144 | ;из 1AC1, SVNASTRDSK |
||
| 145 | CALL 0X165D ;перенос описателя из буфера в память |
||
| 146 | LD HL,0X5CE5 |
||
| 147 | SET 7,(HL) ;включает overwrite=ON |
||
| 148 | RET |
||
| 149 | FORMDISK |
||
| 150 | ;call из 0X1F1B |
||
| 151 | ;вместо 0X20BD |
||
| 152 | CALL 0X1D9F ;очистка низа экрана |
||
| 153 | LD HL,TFormTS |
||
| 154 | RST 0X18 |
||
| 155 | CALL 0X20BD ;форматирование диска |
||
| 156 | CALL 0X1D9F ;очистка низа экрана |
||
| 157 | LD HL,TComplete |
||
| 158 | RST 0X18 |
||
| 159 | RET |
||
| 160 | TPressR |
||
| 161 | ;для ASKREPFORM |
||
| 162 | DB "Press R to repeat";,"."+0X80,0 |
||
| 163 | DC "." |
||
| 164 | DB 0 |
||
| 165 | SAVEFIL |
||
| 166 | ;jp из 0X290C |
||
| 167 | ;еще jr ниже |
||
| 168 | ;вместо 0X1B53 |
||
| 169 | CALL 0X1D9F ;очистка низа экрана |
||
| 170 | CALL 0X3E11 ;выборка типа дисковода |
||
| 171 | RET |
||
| 172 | SELFORMAT |
||
| 173 | ;call из 0X1EDD |
||
| 174 | ;вместо 0X3200 |
||
| 175 | CALL 0X1D9F ;очистка низа экрана |
||
| 176 | LD HL,TFORMAT |
||
| 177 | RST 0X18 |
||
| 178 | LL337f CALL 0X1052 ;ввод клавиши с ожиданием |
||
| 179 | CP 0X11 |
||
| 180 | JR Z,LL3395 |
||
| 181 | CP 0X12 |
||
| 182 | JR Z,LL33a1 |
||
| 183 | CP 0X13 |
||
| 184 | JR Z,LL33a6 |
||
| 185 | CP 0 |
||
| 186 | JP Z,0X01D3 ;п/п завершения |
||
| 187 | JR LL337f |
||
| 188 | LL3395 |
||
| 189 | LD HL,0X1FB9 ;табл.секторов SLOW диска |
||
| 190 | LL3398 XOR A |
||
| 191 | LL3399 LD (0X5CE8),A |
||
| 192 | LD (0X5CE6),HL |
||
| 193 | JR SAVEFIL |
||
| 194 | LL33a1 |
||
| 195 | LD HL,LL33ad ;табл.сект.FAST |
||
| 196 | JR LL3398 |
||
| 197 | LL33a6 |
||
| 198 | LD A,0X01 |
||
| 199 | LD HL,LL33ad ;табл.сект.FAST |
||
| 200 | JR LL3399 |
||
| 201 | LL33ad |
||
| 202 | ;надо 0X325A |
||
| 203 | DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1 |
||
| 204 | SUB14 |
||
| 205 | LD A,L |
||
| 206 | SUB 0X0E |
||
| 207 | LD L,A |
||
| 208 | RET NC |
||
| 209 | DEC H |
||
| 210 | RET |
||
| 211 | |||
| 212 | ;DS 9,0XFF |
||
| 213 | |||
| 214 | PARAMZAG |
||
| 215 | ;call из 0X18AB |
||
| 216 | ;вместо a,(0X5CD6) |
||
| 217 | ;якобы фикс PEEK, но заглючивает Wolfed |
||
| 218 | LD A,(0X5CE5) |
||
| 219 | CP "B" |
||
| 220 | JR Z,LL33e2 |
||
| 221 | CP "D" |
||
| 222 | JR Z,LL33e2 |
||
| 223 | CP "#" |
||
| 224 | JR Z,LL33e2 |
||
| 225 | LD A,"C" |
||
| 226 | ;LD (0X5CE5),A ;зачем??? |
||
| 227 | LL33e2 LD A,(0X5CD6) |
||
| 228 | RET |
||
| 229 | SVNASTRDSK |
||
| 230 | CALL 0X1CF0 ;поиск файла |
||
| 231 | CALL Z,LL3343 ;перенос опис.из буф.в пам.и вкл.Overwr=ON |
||
| 232 | LL33ec CALL 0X0405 ;настр.на диск.Меняет перем-ю с типом диск-да |
||
| 233 | CALL 0X1AC4 ;проверка =128 файлов |
||
| 234 | JP 0X1B53 ;запись файла и инфы о нем |
||
| 235 | SAVER |
||
| 236 | ;call из 0X1B53 |
||
| 237 | ;было 0X1B59 |
||
| 238 | LD HL,0X5CE5 ;тип файла + "file exist" flag |
||
| 239 | BIT 7,(HL) |
||
| 240 | RES 7,(HL) |
||
| 241 | ;JR NZ,LL33ff |
||
| 242 | JP Z,0X1B59 |
||
| 243 | LL33ff |
||
| 244 | CALL LL330a ;Y/N |
||
| 245 | JP NZ,0X01D3 ;п/п завершения |
||
| 246 | CP "A" |
||
| 247 | JP Z,0X1B59 |
||
| 248 | LD DE,(0X5CD9) |
||
| 249 | DEC DE |
||
| 250 | INC D |
||
| 251 | ;LD A,E |
||
| 252 | ;OR A |
||
| 253 | ;JR Z,$+3 |
||
| 254 | ;INC D |
||
| 255 | LD A,(0X5CEA) |
||
| 256 | CP D |
||
| 257 | JR Z,LL341b |
||
| 258 | CALL 0X2926 ;стирание файла |
||
| 259 | JR LL33ec |
||
| 260 | |||
| 261 | LL341b LD B,D |
||
| 262 | LD HL,(0X5C59) |
||
| 263 | LD (HL),0XAA |
||
| 264 | INC HL |
||
| 265 | LD DE,(0X5CD1) |
||
| 266 | LD (HL),E |
||
| 267 | INC HL |
||
| 268 | LD (HL),D |
||
| 269 | LD C,0X06 |
||
| 270 | LD HL,(0X5CDB) |
||
| 271 | LD (0X5CE8),HL |
||
| 272 | LD HL,(0X5CD7) |
||
| 273 | LD (0X5CE6),HL |
||
| 274 | LD DE,(0X5CEB) |
||
| 275 | CALL 0X1E4D |
||
| 276 | LD BC,(0X5D1E) |
||
| 277 | CALL 0X1BBF |
||
| 278 | CALL 0X1665 |
||
| 279 | RET |
||
| 280 | OBROSH |
||
| 281 | ;jp из 0X3D17 |
||
| 282 | ;вместо 0X2F69 |
||
| 283 | EI |
||
| 284 | JP 0X2F69 |
||
| 285 | |||
| 286 | IF 0; IFN 0 |
||
| 287 | bootkus2 |
||
| 288 | ; DISP bootst2 |
||
| 289 | NOP ;посл.байт DEC (IX) |
||
| 290 | LD A,(IX+0X00) |
||
| 291 | CP 0XFF |
||
| 292 | JR NZ,LL345b |
||
| 293 | LD A,(0XF86F) |
||
| 294 | LD (IX+0X00),A |
||
| 295 | LL345b CALL 0XF7FA |
||
| 296 | CALL 0XF816 |
||
| 297 | JP 0XF646 |
||
| 298 | |||
| 299 | CALL 0XF870 |
||
| 300 | CALL 0XF826 |
||
| 301 | INC (IX+0X00) |
||
| 302 | LD A,(0XF86F) |
||
| 303 | INC A |
||
| 304 | CP (IX+0X00) |
||
| 305 | LD A,(IX+0X00) |
||
| 306 | JR NZ,LL347d |
||
| 307 | XOR A |
||
| 308 | LD (IX+0X00),A |
||
| 309 | LL347d CALL 0XF7FA |
||
| 310 | CALL 0XF816 |
||
| 311 | JP 0XF646 |
||
| 312 | |||
| 313 | CALL 0XF870 |
||
| 314 | CALL 0XF826 |
||
| 315 | DEC (IX+0X00) |
||
| 316 | DEC (IX+0X00) |
||
| 317 | DEC (IX+0X00) |
||
| 318 | BIT 7,(IX+0X00) |
||
| 319 | LD A,(IX+0X00) |
||
| 320 | JR Z,LL34b3 |
||
| 321 | LL349e LD B,0X03 |
||
| 322 | ADD A,B |
||
| 323 | LD B,A |
||
| 324 | PUSH BC |
||
| 325 | LD A,(0XF86F) |
||
| 326 | SUB B |
||
| 327 | JR C,LL34ac |
||
| 328 | POP AF |
||
| 329 | JR LL349e |
||
| 330 | LL34ac |
||
| 331 | POP AF |
||
| 332 | DEC A |
||
| 333 | DEC A |
||
| 334 | DEC A |
||
| 335 | LD (IX+0X00),A |
||
| 336 | LL34b3 CALL 0XF7FA |
||
| 337 | CALL 0XF816 |
||
| 338 | JP 0XF646 |
||
| 339 | |||
| 340 | CALL 0XF870 |
||
| 341 | CALL 0XF826 |
||
| 342 | INC (IX+0X00) |
||
| 343 | INC (IX+0X00) |
||
| 344 | INC (IX+0X00) |
||
| 345 | LD A,(0XF86F) |
||
| 346 | SBC A,(IX+0X00) |
||
| 347 | LD A,(IX+0X00) |
||
| 348 | JR NC,LL34e1 |
||
| 349 | LD B,0X03 |
||
| 350 | LL34d8 SUB B |
||
| 351 | JR NC,LL34d8 |
||
| 352 | INC A |
||
| 353 | INC A |
||
| 354 | INC A |
||
| 355 | LD (IX+0X00),A |
||
| 356 | LL34e1 CALL 0XF7FA |
||
| 357 | CALL 0XF816 |
||
| 358 | JP 0XF646 |
||
| 359 | |||
| 360 | CALL 0X0D6B |
||
| 361 | LD A,0X03 |
||
| 362 | CALL 0XF8CB |
||
| 363 | JP 0XF556 |
||
| 364 | |||
| 365 | LD BC,0XFFFD |
||
| 366 | LD A,0X07 |
||
| 367 | OUT (C),A |
||
| 368 | LD B,0XBF |
||
| 369 | LD A,0XFF |
||
| 370 | OUT (C),A ;глушит AY |
||
| 371 | CALL 0XF870 |
||
| 372 | LD A,0X07 |
||
| 373 | LD (0X5C48),A |
||
| 374 | LD (0X5C8D),A |
||
| 375 | CPL |
||
| 376 | LD (0X5D3B),A |
||
| 377 | LD HL,0X3C00 |
||
| 378 | LD (0X5C36),HL |
||
| 379 | LD L,(IX+0X00) |
||
| 380 | LD H,0X00 |
||
| 381 | ADD HL,HL |
||
| 382 | ADD HL,HL |
||
| 383 | ADD HL,HL |
||
| 384 | LD DE,0XA000 |
||
| 385 | ADD HL,DE |
||
| 386 | LD DE,0XF7F0 |
||
| 387 | LD BC,0X0008 |
||
| 388 | LDIR |
||
| 389 | LD HL,(0XF632) |
||
| 390 | LD (0X5C3D),HL |
||
| 391 | LD HL,0XF7EC |
||
| 392 | LD (0X5C5D),HL |
||
| 393 | CALL 0X0D6B |
||
| 394 | DI |
||
| 395 | POP HL |
||
| 396 | EXX |
||
| 397 | POP BC |
||
| 398 | POP DE |
||
| 399 | POP HL |
||
| 400 | POP AF |
||
| 401 | CALL 0X3D03 |
||
| 402 | JP PE,0XF73A |
||
| 403 | LD (0X6F62),HL |
||
| 404 | LD L,A |
||
| 405 | LD (HL),H |
||
| 406 | JR NZ,LL356e |
||
| 407 | JR NZ,LL3570 |
||
| 408 | LD (0XD50D),HL |
||
| 409 | INC A |
||
| 410 | LD HL,0X5802 |
||
| 411 | LD DE,0X000A |
||
| 412 | LL355a DEC A |
||
| 413 | JR Z,LL356c |
||
| 414 | ADD HL,DE |
||
| 415 | DEC A |
||
| 416 | JR Z,LL356c |
||
| 417 | ADD HL,DE |
||
| 418 | DEC A |
||
| 419 | JR Z,LL356c |
||
| 420 | INC DE |
||
| 421 | INC DE |
||
| 422 | ADD HL,DE |
||
| 423 | DEC DE |
||
| 424 | DEC DE |
||
| 425 | JR LL355a |
||
| 426 | LL356c |
||
| 427 | POP DE |
||
| 428 | RET |
||
| 429 | LL356e |
||
| 430 | PUSH HL |
||
| 431 | EXX |
||
| 432 | LL3570 POP HL |
||
| 433 | LD A,0X70 |
||
| 434 | PUSH HL |
||
| 435 | POP DE |
||
| 436 | INC DE |
||
| 437 | LD BC,0X0007 |
||
| 438 | LD (HL),A |
||
| 439 | LDIR |
||
| 440 | EXX |
||
| 441 | RET |
||
| 442 | |||
| 443 | PUSH HL |
||
| 444 | EXX |
||
| 445 | POP HL |
||
| 446 | LD A,0X42 |
||
| 447 | PUSH HL |
||
| 448 | POP DE |
||
| 449 | INC DE |
||
| 450 | LD BC,0X0007 |
||
| 451 | LD (HL),A |
||
| 452 | LDIR |
||
| 453 | EXX |
||
| 454 | RET |
||
| 455 | |||
| 456 | PUSH HL |
||
| 457 | PUSH DE |
||
| 458 | SBC HL,DE |
||
| 459 | LD A,(HL) |
||
| 460 | LD B,0X20 |
||
| 461 | SBC A,B |
||
| 462 | JR C,LL35c3 |
||
| 463 | LD IX,0XF981 |
||
| 464 | PUSH HL |
||
| 465 | LD BC,0X0800 |
||
| 466 | LL35a0 LD A,(HL) |
||
| 467 | CP (IX+0X00) |
||
| 468 | JR NZ,LL35a7 |
||
| 469 | INC C |
||
| 470 | LL35a7 INC HL |
||
| 471 | INC IX |
||
| 472 | DJNZ LL35a0 |
||
| 473 | LD A,C |
||
| 474 | CP 0X08 |
||
| 475 | JR NZ,LL35b4 |
||
| 476 | POP HL |
||
| 477 | JR LL35c3 |
||
| 478 | LL35b4 |
||
| 479 | EXX |
||
| 480 | POP HL |
||
| 481 | LD BC,0X0008 |
||
| 482 | LDIR |
||
| 483 | EXX |
||
| 484 | LD A,(0XF86E) |
||
| 485 | INC A |
||
| 486 | LD (0XF86E),A |
||
| 487 | LL35c3 POP DE |
||
| 488 | POP HL |
||
| 489 | RET |
||
| 490 | |||
| 491 | NOP |
||
| 492 | NOP |
||
| 493 | |||
| 494 | PUSH AF |
||
| 495 | PUSH BC |
||
| 496 | LD B,0XD2 |
||
| 497 | LL35cc PUSH BC |
||
| 498 | XOR A |
||
| 499 | OUT (0XFE),A |
||
| 500 | RR B |
||
| 501 | LL35d2 DJNZ LL35d2 |
||
| 502 | SET 4,A |
||
| 503 | OUT (0XFE),A |
||
| 504 | POP BC |
||
| 505 | DEC B |
||
| 506 | DJNZ LL35cc |
||
| 507 | POP BC |
||
| 508 | POP AF |
||
| 509 | RET |
||
| 510 | |||
| 511 | XOR A |
||
| 512 | CP (IY+0X47) |
||
| 513 | JP NZ,0XF556 |
||
| 514 | CALL 0X0D6E |
||
| 515 | LD A,0X02 |
||
| 516 | CALL 0X1601 |
||
| 517 | XOR A |
||
| 518 | CALL 0XF8CB |
||
| 519 | LD A,0X01 |
||
| 520 | CALL 0X1601 |
||
| 521 | LD (IY+0X47),0XFE |
||
| 522 | JP 0XF795 |
||
| 523 | |||
| 524 | XOR A |
||
| 525 | CP (IY+0X47) |
||
| 526 | JP NZ,0XF556 |
||
| 527 | CALL 0X0D6E |
||
| 528 | LD A,0X02 |
||
| 529 | CALL 0X1601 |
||
| 530 | LD A,0X01 |
||
| 531 | CALL 0XF8CB |
||
| 532 | LD A,0X3F |
||
| 533 | LD (0XF86E),A |
||
| 534 | LD BC,0XFFFF |
||
| 535 | LL361a NOP |
||
| 536 | DJNZ LL361a |
||
| 537 | DEC C |
||
| 538 | JR NZ,LL361a |
||
| 539 | JP 0XF5B4 |
||
| 540 | |||
| 541 | LD DE,0XF8D1 |
||
| 542 | JP 0X0C0A |
||
| 543 | |||
| 544 | DB 0X80 |
||
| 545 | DB 0X16,0X0A,0X05 |
||
| 546 | DB "!!! NO PROGRAMS !!!" |
||
| 547 | DC " "; DB " "+0X80 |
||
| 548 | |||
| 549 | DB 0X16,0X0A,0X03,0X10,0X04 |
||
| 550 | DB "MORE THAN 63 BASIC FILES" |
||
| 551 | ;than!!! |
||
| 552 | DC " "; DB " "+0X80 |
||
| 553 | |||
| 554 | DB 0X11,0X00,0X10,0X04,0X13,0X01 |
||
| 555 | DB " -=New ROM boot v1.06=-" |
||
| 556 | DB 0X06 |
||
| 557 | DB "Remix by CompoWellcome 05.02.99" |
||
| 558 | DC "."; DB "."+0X80 |
||
| 559 | |||
| 560 | DB 0X10,0X02,0X13,0X01 |
||
| 561 | DB " INSERT NEW DISK" |
||
| 562 | DB 0X06 |
||
| 563 | DB " FOR READING CATALOGUE." |
||
| 564 | ;catalogue! |
||
| 565 | DC " "; DB " "+0X80 |
||
| 566 | |||
| 567 | DB "boot " |
||
| 568 | |||
| 569 | LD HL,0X5AE1 |
||
| 570 | PUSH HL |
||
| 571 | POP DE |
||
| 572 | DEC DE |
||
| 573 | LD BC,0X001F |
||
| 574 | LDIR |
||
| 575 | LD HL,0X5AFF |
||
| 576 | LD A,(0XF9BA) |
||
| 577 | OR A |
||
| 578 | JR Z,LL3703 |
||
| 579 | LD A,(HL) |
||
| 580 | AND 0X07 |
||
| 581 | INC A |
||
| 582 | CP 0X08 |
||
| 583 | JR NZ,LL3710 |
||
| 584 | XOR A |
||
| 585 | LD (0XF9BA),A |
||
| 586 | LD A,0X07 |
||
| 587 | LL3703 LD A,(HL) |
||
| 588 | AND 0X07 |
||
| 589 | DEC A |
||
| 590 | OR A |
||
| 591 | JR NZ,LL3710 |
||
| 592 | CPL |
||
| 593 | LD (0XF9BA),A |
||
| 594 | LD A,0X01 |
||
| 595 | LL3710 LD (HL),A |
||
| 596 | RET |
||
| 597 | LL3712 |
||
| 598 | NOP |
||
| 599 | LD A,0XC3 |
||
| 600 | LD (0X5CC2),A |
||
| 601 | LD HL,0XF9E6 |
||
| 602 | LD (0X5CC3),HL |
||
| 603 | LD IX,0X2FC1 |
||
| 604 | CALL 0XFA20 |
||
| 605 | LD A,0X08 |
||
| 606 | LD C,0X1F |
||
| 607 | LD IX,0X2A53 |
||
| 608 | CALL 0XFA20 |
||
| 609 | LD (0XF9E7),SP |
||
| 610 | LD DE,0X0000 |
||
| 611 | LD IX,0X2740 |
||
| 612 | CALL 0XFA20 |
||
| 613 | LD SP,0X0000 |
||
| 614 | LD IX,0X1FF3 |
||
| 615 | CALL 0XFA20 |
||
| 616 | LD IX,0X1FEB |
||
| 617 | CALL 0XFA20 |
||
| 618 | LD IX,0X2FC1 |
||
| 619 | CALL 0XFA20 |
||
| 620 | LD A,0XC9 |
||
| 621 | LD (0X5CC2),A |
||
| 622 | LD A,(0X5CCD) |
||
| 623 | AND 0X40 |
||
| 624 | RET |
||
| 625 | LL3761 |
||
| 626 | LD A,0X30 |
||
| 627 | INC A |
||
| 628 | CP 0X33 |
||
| 629 | LD (0XFA0A),A |
||
| 630 | JP NZ,0XF6D0 |
||
| 631 | LD A,0X30 |
||
| 632 | LD (0XFA0A),A |
||
| 633 | JR LL3761 |
||
| 634 | |||
| 635 | DI |
||
| 636 | LD IX,0X0000 |
||
| 637 | PUSH IX |
||
| 638 | JP 0X3D2F |
||
| 639 | DUPL 3,0XFF; DS 3,0XFF |
||
| 640 | bootln2 := $-bootst2 |
||
| 641 | ; ENT |
||
| 642 | ; ORG ROM |
||
| 643 | ; DISP 0 |
||
| 644 | ; ORG bootkus2+bootln2 |
||
| 645 | ENDIF |
||
| 646 | POSITPP |
||
| 647 | ;jp из 0X3E4E |
||
| 648 | PUSH AF |
||
| 649 | LD A,(0X5CCE) ;0=READ,0XFF=WRITE |
||
| 650 | OR A |
||
| 651 | JR Z,POSppRD |
||
| 652 | POP AF |
||
| 653 | PUSH BC |
||
| 654 | LD B,A |
||
| 655 | IN A,(0X3F) |
||
| 656 | CP B ;в 0X3E52 это уже есть! |
||
| 657 | POP BC |
||
| 658 | JP POSITCONT;0X3E54 |
||
| 659 | POSppRD |
||
| 660 | POP AF |
||
| 661 | IN A,(0X1F) |
||
| 662 | AND 0X80 |
||
| 663 | JP POSITCONT;0X3E54 |
||
| 664 | ;DB 0XFF |
||
| 665 | |||
| 666 | IF resident=1; IFN resident |
||
| 667 | PPNORESC000 |
||
| 668 | ;если нет резидента 0XC000 |
||
| 669 | ;jp из 0X3C48 |
||
| 670 | ;проверка резидента 0XFFF0 |
||
| 671 | LD HL,0XFFF0 |
||
| 672 | XOR A |
||
| 673 | LL379e XOR (HL) |
||
| 674 | ADC A,H |
||
| 675 | INC L |
||
| 676 | JR NZ,LL379e |
||
| 677 | CP 0X06 ;"RESIDENTPRESENT!" |
||
| 678 | ;идиотизм - опять 8bit! |
||
| 679 | JP Z,0XC000 |
||
| 680 | IF atm-3 |
||
| 681 | JP 9 |
||
| 682 | ELSE |
||
| 683 | XOR A |
||
| 684 | CALL MEMDRV_ |
||
| 685 | ;проверка недокументированного резидента 0X5B00 |
||
| 686 | LD B,0X13 |
||
| 687 | LD H,0X5B |
||
| 688 | XOR A |
||
| 689 | LL37b1 XOR (HL) |
||
| 690 | ADC A,L |
||
| 691 | ADC A,(HL) |
||
| 692 | INC L |
||
| 693 | DJNZ LL37b1 |
||
| 694 | CP 0X68 |
||
| 695 | ;идиотизм - опять 8bit! |
||
| 696 | ;JP NZ,A7JP9;0X3C4B |
||
| 697 | LD A,7 |
||
| 698 | JP NZ,9 |
||
| 699 | XOR A |
||
| 700 | LD (0X5B04),A |
||
| 701 | LD (0X5B0D),A |
||
| 702 | IF madrom=1; IFN madrom |
||
| 703 | LD HL,0XFE00 |
||
| 704 | ELSE |
||
| 705 | LD HL,0X00C7 |
||
| 706 | ENDIF |
||
| 707 | LD (0X5B11),HL |
||
| 708 | JP 0X5B00 |
||
| 709 | ENDIF ;~atm3 |
||
| 710 | ENDIF ;resident |
||
| 711 | |||
| 712 | ;DB 0XFF |
||
| 713 | |||
| 714 | USEmovSPD |
||
| 715 | ;call из 0X3EBF |
||
| 716 | ;вместо 0X3E44 |
||
| 717 | PUSH HL |
||
| 718 | PUSH AF |
||
| 719 | CALL 0X3E08 ;взять время перемещ.головки тек.дисковода |
||
| 720 | LD B,A |
||
| 721 | POP AF |
||
| 722 | POP HL |
||
| 723 | JP 0X3E44 |
||
| 724 | NEWER |
||
| 725 | ;вместо 0X1DCD |
||
| 726 | LD HL,(0X5D11) |
||
| 727 | INC HL |
||
| 728 | LD A,(HL) |
||
| 729 | CP 0XD |
||
| 730 | JR Z,NEWRel |
||
| 731 | CALL 0X1DCD ;NEW new,old |
||
| 732 | JP L53D |
||
| 733 | NEWRel |
||
| 734 | LD HL,TRel |
||
| 735 | RST 0X18 |
||
| 736 | JP 0X01D3 ;п/п завершения |
||
| 737 | TRel |
||
| 738 | ;DB "Rel: 08.10.99",0XD,0 |
||
| 739 | DB "Rel: 10.04.06",0XD,0 |
||
| 740 | |||
| 741 | ;DS 0X3800-$,0XFF |
||
| 742 | ;ORG 0X3800 |
||
| 743 | TCH1 |
||
| 744 | ;1-ая основная точка входа |
||
| 745 | LD A,(0X5CF6) |
||
| 746 | CP 0X03 |
||
| 747 | JR Z,L1 |
||
| 748 | LD A,(0X5CCE) |
||
| 749 | CALL 0X1E36 ;загрузка регистра дорожки |
||
| 750 | JP TCH1Q;0X1E70 |
||
| 751 | L1 |
||
| 752 | PUSH DE |
||
| 753 | CALL TEST_R |
||
| 754 | JP NZ,0X3EE1;NO DISK |
||
| 755 | POP DE |
||
| 756 | POP HL |
||
| 757 | POP BC |
||
| 758 | XOR A |
||
| 759 | OR B |
||
| 760 | RET Z |
||
| 761 | RD_SV |
||
| 762 | PUSH BC |
||
| 763 | PUSH HL |
||
| 764 | CALL SECTR |
||
| 765 | POP HL |
||
| 766 | INC H |
||
| 767 | PUSH HL |
||
| 768 | LD HL,0X5CF4 |
||
| 769 | LD A,0X10 |
||
| 770 | INC (HL) |
||
| 771 | CP (HL) |
||
| 772 | JR NZ,LL3838 |
||
| 773 | LD (HL),0X00 |
||
| 774 | INC HL |
||
| 775 | INC (HL) |
||
| 776 | LL3838 POP HL |
||
| 777 | POP BC |
||
| 778 | DJNZ RD_SV |
||
| 779 | RET |
||
| 780 | |||
| 781 | ;Тест наличия Ram-Disk'а |
||
| 782 | ;точнее, памяти под него |
||
| 783 | ;для 128K - вроде как дисковод D |
||
| 784 | TEST_R |
||
| 785 | DI |
||
| 786 | IF atm=0 |
||
| 787 | LD HL,0XFF10 |
||
| 788 | CALL FPG |
||
| 789 | OUT (C),L |
||
| 790 | LD D,(HL) |
||
| 791 | LD (HL),H |
||
| 792 | LD A,0X90 |
||
| 793 | OUT (C),A |
||
| 794 | LD E,(HL) |
||
| 795 | LD (HL),L |
||
| 796 | OUT (C),L |
||
| 797 | LD B,H |
||
| 798 | LD A,B |
||
| 799 | CP (HL) |
||
| 800 | JR NZ,L2 |
||
| 801 | LD B,0X7F |
||
| 802 | LD (HL),D |
||
| 803 | LD A,0X90 |
||
| 804 | OUT (C),A |
||
| 805 | LD (HL),E |
||
| 806 | OUT (C),L |
||
| 807 | ENDIF |
||
| 808 | LD A,0X08 |
||
| 809 | LD B,0X83 |
||
| 810 | L2 |
||
| 811 | PUSH AF |
||
| 812 | LD (0X5CFD),A |
||
| 813 | LD A,B |
||
| 814 | LD (0X5CCB),A |
||
| 815 | XOR A |
||
| 816 | OUT (0XFF),A |
||
| 817 | LD A,(0X5CF6) |
||
| 818 | ADD A,0X3C |
||
| 819 | LD (0X5D16),A |
||
| 820 | OUT (0XFF),A |
||
| 821 | LD A,0XD0 |
||
| 822 | OUT (0X1F),A |
||
| 823 | IF atm=0 |
||
| 824 | LD A,(F_PAGE) |
||
| 825 | LD BC,0X7FFD |
||
| 826 | OUT (C),A |
||
| 827 | ENDIF |
||
| 828 | POP AF |
||
| 829 | RET |
||
| 830 | SECTR |
||
| 831 | LD DE,(0X5CF4) |
||
| 832 | LD A,H |
||
| 833 | CP 0XBF |
||
| 834 | JR C,RED_SAV |
||
| 835 | LD A,0XFF |
||
| 836 | CALL LL38A6 |
||
| 837 | LD A,(0X5CCE) |
||
| 838 | AND A |
||
| 839 | JR Z,LL38C0 |
||
| 840 | LD DE,0X5D25 |
||
| 841 | LD BC,0X0100 |
||
| 842 | LDIR |
||
| 843 | LD HL,0X5D25 |
||
| 844 | LD DE,(0X5CF4) |
||
| 845 | CALL RED_SAV |
||
| 846 | LL38A4 LD A,0X00 |
||
| 847 | LL38A6 EX AF,AF'; EXA |
||
| 848 | LD A,(0X5CCE) |
||
| 849 | EX AF,AF'; EXA |
||
| 850 | LD (0X5CCE),A |
||
| 851 | PUSH HL |
||
| 852 | PUSH DE |
||
| 853 | LD HL,0X5D25 |
||
| 854 | LD DE,0X000F |
||
| 855 | CALL RED_SAV |
||
| 856 | POP DE |
||
| 857 | POP HL |
||
| 858 | EX AF,AF' |
||
| 859 | LD (0X5CCE),A |
||
| 860 | RET |
||
| 861 | LL38C0 |
||
| 862 | PUSH HL |
||
| 863 | LD HL,0X5D25 |
||
| 864 | CALL RED_SAV |
||
| 865 | LD HL,0X5D25 |
||
| 866 | POP DE |
||
| 867 | LD BC,0X0100 |
||
| 868 | LDIR |
||
| 869 | JR LL38A4 |
||
| 870 | |||
| 871 | ;Собственно чтение-запись из/в RAM-DISK |
||
| 872 | RED_SAV |
||
| 873 | DI |
||
| 874 | CALL FPG ;ищем тек.страницу на каждом секторе... |
||
| 875 | ;BC=7ffd (для ATM BC=fff7) |
||
| 876 | LD A,D ;лог.дорожка |
||
| 877 | ;---Если RD расположен в верхних 512К--- |
||
| 878 | IF 0; IFN 0 |
||
| 879 | CPL ;растет сверху |
||
| 880 | RLCA |
||
| 881 | AND 0XC0 |
||
| 882 | LD C,A |
||
| 883 | LD A,D |
||
| 884 | RRCA |
||
| 885 | RRCA |
||
| 886 | AND 0X07 |
||
| 887 | OR 0X30 |
||
| 888 | OR C |
||
| 889 | LD C,0XFD |
||
| 890 | OUT (C),A |
||
| 891 | ENDIF |
||
| 892 | ;----Если RD расположен во всех 896К---- |
||
| 893 | IF 1; IFN 1 |
||
| 894 | ; IF atm=1; IFN atm |
||
| 895 | IF atm=3 |
||
| 896 | RRCA |
||
| 897 | RRCA |
||
| 898 | AND 0X3F |
||
| 736 | savelij | 899 | ADD A,RAM_DATARAMD;9 ;Savelij RAMDISK |
| 627 | savelij | 900 | ;OR 64 ;ОЗУ, не 7ffd |
| 901 | OUT (C),A |
||
| 902 | LD B,0XF7 |
||
| 903 | OUT (C),A |
||
| 904 | ELSE ;atm2 |
||
| 905 | RRCA |
||
| 906 | RRCA |
||
| 907 | AND 0X3F |
||
| 908 | OR 64 ;ОЗУ, не 7ffd |
||
| 909 | OUT (C),A |
||
| 910 | ENDIF |
||
| 911 | ELSE |
||
| 912 | CPL ;растет сверху |
||
| 913 | RRCA |
||
| 914 | RRCA |
||
| 915 | AND 0X3F |
||
| 916 | ;ADD A,8 |
||
| 917 | PUSH AF |
||
| 918 | AND 0X27 |
||
| 919 | OR 0X10 |
||
| 920 | LD C,A |
||
| 921 | POP AF |
||
| 922 | RLCA |
||
| 923 | RLCA |
||
| 924 | RLCA |
||
| 925 | AND 0XC0 |
||
| 926 | OR C |
||
| 927 | LD C,0XFD |
||
| 928 | OUT (C),A |
||
| 929 | ENDIF |
||
| 930 | ; ENDIF |
||
| 931 | ;----Если RD размером 384К (при 512К)--- |
||
| 932 | IF 0; IFN 0 |
||
| 933 | RRCA |
||
| 934 | RRCA |
||
| 935 | AND 0X3F |
||
| 936 | ADD A,8 |
||
| 937 | LD C,A |
||
| 938 | OR 0X10 |
||
| 939 | SLA C |
||
| 940 | SLA C |
||
| 941 | SLA C |
||
| 942 | OR C |
||
| 943 | AND 0XD7 |
||
| 944 | LD C,0XFD |
||
| 945 | OUT (C),A |
||
| 946 | ENDIF |
||
| 947 | ;--------------------------------------- |
||
| 948 | |||
| 949 | LD A,D |
||
| 950 | RLCA |
||
| 951 | RLCA |
||
| 952 | RLCA |
||
| 953 | RLCA |
||
| 954 | AND 0X30 |
||
| 955 | ADD A,E |
||
| 956 | OR 0XC0 |
||
| 957 | LD D,A |
||
| 958 | LD E,0X00 |
||
| 959 | LD A,(0X5CCE) |
||
| 960 | AND A |
||
| 961 | JR NZ,LL38F9 |
||
| 962 | EX DE,HL |
||
| 963 | LL38F9 LD BC,0X0100 |
||
| 964 | LDIR |
||
| 965 | ; IF atm=1; IFN atm |
||
| 966 | IF atm=3 |
||
| 967 | ;адресация по 7FFD (FFF7, F7F7 неизвестно как восстановить) |
||
| 968 | LD A,0XFF ;7ffd used |
||
| 969 | LD BC,0XFFF7 |
||
| 970 | OUT (C),A |
||
| 971 | LD A,(F_PAGE) |
||
| 972 | LD BC,0X7FFD |
||
| 973 | OUT (C),A |
||
| 974 | ELSE ;atm2 |
||
| 975 | LD A,(F_PAGE) |
||
| 976 | AND 0XF |
||
| 977 | OR 0X10 |
||
| 978 | LD BC,0X7FFD |
||
| 979 | OUT (C),A |
||
| 980 | LD A,(F_PAGE) |
||
| 981 | AND 0XE0 ;5,7,6 |
||
| 982 | LD C,A |
||
| 983 | RRA |
||
| 984 | RRA |
||
| 985 | RRA |
||
| 986 | OR C |
||
| 987 | AND 0X38 ;5,4,3 |
||
| 988 | CPL ;7ffd used |
||
| 989 | LD BC,0XFFF7 |
||
| 990 | OUT (C),A |
||
| 991 | ENDIF |
||
| 992 | ; ELSE |
||
| 993 | ; LD A,(F_PAGE) |
||
| 994 | ; LD BC,0X7FFD |
||
| 995 | ; OUT (C),A |
||
| 996 | ; ENDIF |
||
| 997 | EI |
||
| 998 | RET |
||
| 999 | |||
| 1000 | IF resident=1; IFN resident |
||
| 1001 | MEMDRV_ |
||
| 1002 | ;Драйвер памяти (используется HONEY резидентом /и не только/) |
||
| 1003 | ;6.05 %00abcdef |
||
| 1004 | ;6.11 %bca0?def (7FFD) |
||
| 1005 | IF atm=1; IFN atm |
||
| 1006 | IF atm-3 |
||
| 1007 | XOR 0X7F |
||
| 1008 | LD BC,0XFFF7 |
||
| 1009 | OUT (C),A ;7ffd off |
||
| 1010 | ;а кто будет включать 7ffd обратно? |
||
| 1011 | ELSE ;atm2 |
||
| 1012 | PUSH AF |
||
| 1013 | AND 0XF |
||
| 1014 | OR 0X10 |
||
| 1015 | LD BC,0X7FFD |
||
| 1016 | OUT (C),A |
||
| 1017 | POP AF |
||
| 1018 | AND 0XE0 ;5,7,6 |
||
| 1019 | LD C,A |
||
| 1020 | RRA |
||
| 1021 | RRA |
||
| 1022 | RRA |
||
| 1023 | OR C |
||
| 1024 | AND 0X38 ;5,4,3 |
||
| 1025 | CPL ;7ffd used |
||
| 1026 | LD BC,0XFFF7 |
||
| 1027 | OUT (C),A |
||
| 1028 | ENDIF |
||
| 1029 | ELSE |
||
| 1030 | ;AND 0XDF ;Если памяти полметра. |
||
| 1031 | OR 0X10 |
||
| 1032 | LD BC,0X7FFD |
||
| 1033 | OUT (C),A |
||
| 1034 | ENDIF |
||
| 1035 | RET |
||
| 1036 | ENDIF |
||
| 1037 | |||
| 1038 | TCH2 |
||
| 1039 | ;2-ая точка входа - инициализация |
||
| 1040 | LD (0X5CF6),A |
||
| 1041 | CP 0X03 |
||
| 1042 | JP NZ,TCH2Q;0X3DCE |
||
| 1043 | CALL TEST_R |
||
| 1044 | JP NZ,0X3EE1 ;ошибку игнорировать?etc |
||
| 1045 | RET |
||
| 1046 | |||
| 1047 | TCH3 |
||
| 1048 | ;3-я точка входа - форматирование |
||
| 1049 | CALL 0X1C57 ;установка имени файла |
||
| 1050 | LD A,(0X5CF6) |
||
| 1051 | CP 0X03 |
||
| 1052 | RET NZ |
||
| 1053 | POP AF |
||
| 1054 | CALL FILL |
||
| 1055 | LD DE,0X0000 |
||
| 1056 | LD (0X5CF4),DE |
||
| 1057 | LD BC,0X0010 |
||
| 1058 | FORMT |
||
| 1059 | PUSH BC |
||
| 1060 | LD A,0XFF |
||
| 1061 | LD (0X5CCE),A |
||
| 1062 | LD HL,0X5D25 |
||
| 1063 | LD B,0X01 |
||
| 1064 | CALL RD_SV |
||
| 1065 | POP BC |
||
| 1066 | DEC BC |
||
| 1067 | LD A,B |
||
| 1068 | OR C |
||
| 1069 | JR NZ,FORMT |
||
| 1070 | ;free=... |
||
| 1071 | ;LD HL,0X05F0 ;для 384К |
||
| 1072 | LD HL,0X07F0 ;для 512К |
||
| 1073 | ;LD HL,0X0DF0 ;для 896К |
||
| 1074 | |||
| 1075 | LD A,0X16 |
||
| 1076 | JP 0X1F55 ;продолж.FORMAT после LD HL,2544 |
||
| 1077 | FILL |
||
| 1078 | LD HL,0X5D25 |
||
| 1079 | LD DE,0X5D26 |
||
| 1080 | LD BC,0X00FF |
||
| 1081 | LD (HL),B |
||
| 1082 | LDIR |
||
| 1083 | RET |
||
| 1084 | |||
| 1085 | FPG |
||
| 1086 | ;Определение текущей PAGE 0-31 памяти |
||
| 1087 | IF 0; IFN 0 |
||
| 1088 | PUSH DE |
||
| 1089 | PUSH HL |
||
| 1090 | LD DE,(0XC000) |
||
| 1091 | LD BC,0X7FFD |
||
| 1092 | LD (0XC000),BC |
||
| 1093 | LD A,0XD7 |
||
| 1094 | FPG1 INC A |
||
| 1095 | BIT 3,A |
||
| 1096 | JR Z,$+4 |
||
| 1097 | ADD A,0X38 |
||
| 1098 | OUT (C),A |
||
| 1099 | LD HL,(0XC000) |
||
| 1100 | AND A |
||
| 1101 | SBC HL,BC |
||
| 1102 | JR NZ,FPG1 |
||
| 1103 | LD (0XC000),DE |
||
| 1104 | LD (F_PAGE),A |
||
| 1105 | POP HL |
||
| 1106 | POP DE |
||
| 1107 | RET |
||
| 1108 | ELSE |
||
| 1109 | PUSH DE |
||
| 1110 | PUSH HL |
||
| 1111 | LD DE,(0XC000) |
||
| 1112 | LD HL,(0XFFFD) |
||
| 1113 | PUSH HL |
||
| 1114 | IF atm=3; IFN atm |
||
| 1115 | LD BC,0XFFF7 |
||
| 1116 | ELSE |
||
| 1117 | LD BC,0X7FFD |
||
| 1118 | ENDIF |
||
| 1119 | LD (0XC000),BC |
||
| 1120 | LD (0XFFFD),BC |
||
| 1121 | IF atm=3; IFN atm |
||
| 1122 | LD A,0X7F+1 ;D6=1 (ОЗУ), D7=0 (no 7ffd) |
||
| 1123 | ELSE |
||
| 1124 | XOR A |
||
| 1125 | ENDIF |
||
| 1126 | FPG1 |
||
| 1127 | IF atm=3; IFN atm |
||
| 1128 | DEC A |
||
| 1129 | OR A ;CY=0 |
||
| 1130 | ELSE |
||
| 1131 | AND 0XC7 |
||
| 1132 | DEC A |
||
| 1133 | AND 0XC7 |
||
| 1134 | OR 16 |
||
| 1135 | ENDIF |
||
| 1136 | OUT (C),A |
||
| 1137 | LD HL,(0XC000) |
||
| 1138 | SBC HL,BC |
||
| 1139 | JR NZ,FPG1 |
||
| 1140 | LD HL,(0XFFFD) |
||
| 1141 | SBC HL,BC |
||
| 1142 | JR NZ,FPG1 |
||
| 1143 | LD (0XC000),DE |
||
| 1144 | POP HL |
||
| 1145 | LD (0XFFFD),HL |
||
| 1146 | IF atm=3; IFN atm |
||
| 1147 | ;%01abcdef (abcdef inverted) |
||
| 1148 | ;надо %bca10def |
||
| 1149 | CPL ;7ffd used |
||
| 1150 | LD L,A |
||
| 1151 | AND 0X38 ;5,4,3 |
||
| 1152 | LD H,A |
||
| 1153 | RLA |
||
| 1154 | RLA |
||
| 1155 | RLA |
||
| 1156 | OR H |
||
| 1157 | XOR L |
||
| 1158 | AND 0XE0 ;5,7,6 |
||
| 1159 | XOR L |
||
| 1160 | AND 0XE7 |
||
| 1161 | OR 0X10 |
||
| 1162 | ENDIF |
||
| 1163 | LD (F_PAGE),A |
||
| 1164 | POP HL |
||
| 1165 | POP DE |
||
| 1166 | RET |
||
| 1167 | ENDIF |
||
| 1168 | |||
| 1169 | TCH4 |
||
| 1170 | ;Установка типов дисководов 80DS (а-ля 5.04) |
||
| 1171 | ;Убрать,если необходимо автоопределение (а-ля 5.03) |
||
| 1172 | LD HL,0X8383 |
||
| 1173 | LD (0X5CC8),HL |
||
| 1174 | LD (0X5CCA),HL |
||
| 1175 | |||
| 1176 | ;Выбор дисковода при сбросе |
||
| 1177 | LD A,0XF7 |
||
| 1178 | IN A,(0XFE) |
||
| 1179 | LD B,0 |
||
| 1180 | RRA |
||
| 1181 | JR NC,DRV11 |
||
| 1182 | INC B |
||
| 1183 | RRA |
||
| 1184 | JR NC,DRV11 |
||
| 1185 | INC B |
||
| 1186 | RRA |
||
| 1187 | JR NC,DRV11 |
||
| 1188 | INC B |
||
| 1189 | RRA |
||
| 1190 | JR NC,DRV11 |
||
| 1191 | IF cmos=1; IFN cmos |
||
| 1192 | LD BC,0XEFF7 |
||
| 1193 | ;IN A,(C) ;если есть чтение из EFF7 |
||
| 1194 | ;PUSH AF |
||
| 1195 | LD A,0X80 |
||
| 1196 | OUT (C),A |
||
| 1197 | LD B,0XDF,A,0X10 |
||
| 1198 | OUT (C),A |
||
| 1199 | LD B,0XBF |
||
| 1200 | IN A,(C) |
||
| 1201 | EX AF,AF'; EXA |
||
| 1202 | LD B,0XEF |
||
| 1203 | XOR A |
||
| 1204 | ;POP AF |
||
| 1205 | OUT (C),A |
||
| 1206 | EX AF,AF'; EXA |
||
| 1207 | LD B,A |
||
| 1208 | ELSE |
||
| 1209 | JR L3 |
||
| 1210 | ENDIF |
||
| 1211 | DRV11 |
||
| 1212 | LD A,B |
||
| 1213 | LD (0X5CF6),A |
||
| 1214 | LD (0X5D19),A |
||
| 1215 | OR 0X3C |
||
| 1216 | LD (0X5D16),A |
||
| 1217 | OUT (0XFF),A |
||
| 1218 | L3 JP 0X106E ;вывод цветных полос для заставки |
||
| 1219 | IF 0; IFN 0 |
||
| 1220 | DUPL 0X3ADB-$,0XFF; DS 0X3ADB-$,0XFF |
||
| 1221 | ; ORG 0X3ADB |
||
| 1222 | BOOTER |
||
| 1223 | ;выполнялка ком."8" |
||
| 1224 | ;вместо 0X29AE |
||
| 1225 | LD BC,0XF4FF |
||
| 1226 | RST 0X20 |
||
| 1227 | DW 0X1EAF ;CLEAR_RUN |
||
| 1228 | LD A,1 |
||
| 1229 | RST 0X20 |
||
| 1230 | ;DW 0X229C ;нет такой точки! |
||
| 1231 | DW 0X229B ;border и 23624 |
||
| 1232 | DI |
||
| 1233 | LD HL,bootkus1;0XE00 |
||
| 1234 | LD DE,0XF500 |
||
| 1235 | LD BC,bootln1;0X1F5 |
||
| 1236 | PUSH DE |
||
| 1237 | LDIR |
||
| 1238 | LD HL,bootkus2;0X344D |
||
| 1239 | LD BC,$;bootln2+1;0X334 |
||
| 1240 | LDIR |
||
| 1241 | SET 3,(IY+0X01) |
||
| 1242 | RET |
||
| 1243 | ENDIF |
||
| 1244 | MOVEPP |
||
| 1245 | LD HL,(0X5CE1) |
||
| 1246 | LL3b03 LD A,(HL) |
||
| 1247 | CP 0X00 |
||
| 1248 | RET Z |
||
| 1249 | CP 0X01 |
||
| 1250 | JR Z,LL3b0e |
||
| 1251 | CALL LL3b14 |
||
| 1252 | LL3b0e LD DE,0X0010 |
||
| 1253 | ADD HL,DE |
||
| 1254 | JR LL3b03 |
||
| 1255 | LL3b14 PUSH HL |
||
| 1256 | LD DE,0X000D |
||
| 1257 | ADD HL,DE |
||
| 1258 | LD C,(HL) |
||
| 1259 | INC HL |
||
| 1260 | LD E,(HL) |
||
| 1261 | INC HL |
||
| 1262 | LD D,(HL) |
||
| 1263 | LD HL,(0X5CD7) |
||
| 1264 | AND A |
||
| 1265 | SBC HL,DE |
||
| 1266 | ADD HL,DE |
||
| 1267 | JR Z,LL3b56 |
||
| 1268 | LD (0X5CD5),DE |
||
| 1269 | LD A,C |
||
| 1270 | LD (0X5CD3),A |
||
| 1271 | CALL 0X17A5 ;перемещение файла |
||
| 1272 | LL3b32 POP HL |
||
| 1273 | PUSH HL |
||
| 1274 | LD DE,(0X5CDF) |
||
| 1275 | LD BC,0X0010 |
||
| 1276 | LDIR |
||
| 1277 | LD (0X5CDF),DE |
||
| 1278 | EX DE,HL; EXD |
||
| 1279 | LD DE,(0X5CDD) |
||
| 1280 | DEC HL |
||
| 1281 | LD (HL),D |
||
| 1282 | DEC HL |
||
| 1283 | LD (HL),E |
||
| 1284 | LD HL,(0X5CD7) |
||
| 1285 | LD (0X5CDD),HL |
||
| 1286 | LD HL,0X5CE3 |
||
| 1287 | INC (HL) |
||
| 1288 | POP HL |
||
| 1289 | RET |
||
| 1290 | LL3b56 |
||
| 1291 | LD A,C |
||
| 1292 | AND 0X0F |
||
| 1293 | ADD A,E |
||
| 1294 | BIT 4,A |
||
| 1295 | RES 4,A |
||
| 1296 | LD E,A |
||
| 1297 | JR Z,$+3 |
||
| 1298 | INC D |
||
| 1299 | LD A,C |
||
| 1300 | |||
| 1301 | ; RRC A |
||
| 1302 | ; RRC A |
||
| 1303 | ; RRC A |
||
| 1304 | ; RRC A |
||
| 1305 | REPT 4 |
||
| 1306 | DB 0XCB |
||
| 1307 | RRCA |
||
| 1308 | ENDM |
||
| 1309 | |||
| 1310 | AND 0X0F |
||
| 1311 | ADD A,D |
||
| 1312 | LD D,A |
||
| 1313 | LD (0X5CD7),DE |
||
| 1314 | JR LL3b32 |
||
| 1315 | |||
| 1316 | ;DS 0X3B80-$,0XFF |
||
| 1317 | GETCOM |
||
| 1318 | ;jp из 0X2154 |
||
| 1319 | ;вместо 0X1D90 - зачем??? |
||
| 1320 | RES 5,(IY+0X01) |
||
| 1321 | RST 0X20 |
||
| 1322 | DW 0X15D4 ;WAIT_KEY |
||
| 1323 | CP 7 |
||
| 1324 | JR NZ,LL3bad |
||
| 1325 | LD HL,0X00C8 |
||
| 1326 | LD D,H |
||
| 1327 | LD E,(IY-0X01) |
||
| 1328 | RST 0X20 |
||
| 1329 | DW 0X3B5 ;beep |
||
| 1330 | CALL 0X212A ;восстановление командной строки |
||
| 1331 | LD HL,(0X5C59) |
||
| 1332 | LD A,0X0D |
||
| 1333 | LD BC,0 |
||
| 1334 | CPIR |
||
| 1335 | DEC HL |
||
| 1336 | LD (0X5C5B),HL |
||
| 1337 | INC HL |
||
| 1338 | INC HL |
||
| 1339 | LD (HL),0X80 |
||
| 1340 | LL3baa RST 0X20 |
||
| 1341 | DW 0X15D4 ;WAIT_KEY |
||
| 1342 | LL3bad |
||
| 1343 | PUSH AF |
||
| 1344 | LD HL,0X00C8 |
||
| 1345 | LD D,H |
||
| 1346 | LD E,(IY-0X01) |
||
| 1347 | RST 0X20 |
||
| 1348 | DW 0X3B5 ;beep |
||
| 1349 | POP AF |
||
| 1350 | CP 0X18 |
||
| 1351 | JR NC,LL3bca |
||
| 1352 | CP 0X07 |
||
| 1353 | JR C,LL3bca |
||
| 1354 | CP 0X10 |
||
| 1355 | JR C,LL3bcf |
||
| 1356 | RST 0X20 |
||
| 1357 | DW 0XF58 ;в ED_LOOP: sym>=16 |
||
| 1358 | JR LL3baa |
||
| 1359 | LL3bca |
||
| 1360 | RST 0X20 |
||
| 1361 | DW 0XF81 ;ADD_CHAR |
||
| 1362 | JR LL3baa |
||
| 1363 | LL3bcf |
||
| 1364 | CP 0X07 |
||
| 1365 | JR Z,LL3baa |
||
| 1366 | CP 0X0D |
||
| 1367 | RET Z |
||
| 1368 | CP 0X0A |
||
| 1369 | JR Z,LL3baa |
||
| 1370 | CP 0X0B |
||
| 1371 | JR Z,LL3baa |
||
| 1372 | RST 0X20 |
||
| 1373 | DW 0XF92 ;ED_KEYS |
||
| 1374 | JR LL3baa |
||
| 1375 | |||
| 1376 | ;DS 0X3BF0-$,0XFF |
||
| 1377 | WHOD |
||
| 1378 | ;вход в TR-DOS |
||
| 1379 | ;jp из 0X3D35 |
||
| 1380 | ;вместо 0X239 |
||
| 1381 | CALL 0X1D9F ;очистка низа экрана |
||
| 1382 | JP 0X239 ;вход в командный процессор |
||
| 1383 | |||
| 1384 | ;DS 0X3C00-$,0XFF |
||
| 1385 | ;тут стоят дубли 0X3D00/3D03 |
||
| 1386 | ;дубля 0X3D13 нет и не было |
||
| 1387 | ;ORG 0X3C10 |
||
| 1388 | OUTDE |
||
| 1389 | LD C,D |
||
| 1390 | OUT (C),E |
||
| 1391 | RET |
||
| 1392 | INED |
||
| 1393 | LD C,D |
||
| 1394 | IN E,(C) |
||
| 1395 | RET |
||
| 1396 | JPWRITE |
||
| 1397 | LD C,0X7F |
||
| 1398 | JP 16314 |
||
| 1399 | JPREAD |
||
| 1400 | LD C,0X7F |
||
| 1401 | JP 16341 |