Subversion Repositories pentevo

Rev

Rev 643 | Rev 705 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ;LAST UPDATE: 04.07.2014 savelij
  3.  
  4. TAPE_EMUL       LD H,CMOS_BYTE_00
  5.                 CALL READCMOS
  6.                 AND EMUL_TAPE
  7.                 JR NZ,EMULOADTAP
  8.                 LD A,(RREG_A)
  9.                 LD (RREG_C),A
  10.                 CP A
  11.                 PUSH AF
  12.                 POP HL
  13.                 LD (RREG_F),HL
  14.                 RET
  15.  
  16. EMULOADTAP      LD A,(CPU6+2)                   ;НОМЕР СТРАНИЦЫ ГДЕ НАЧИНАЕТСЯ СЛЕДУЮЩИЙ БЛОК
  17.                 LD IYL,A
  18.                 ADD A,PAGE4TAP
  19.                 LD BC,WIN_P5
  20.                 OUT (C),A                       ;РЕАЛЬНАЯ СТРАНИЦА ОТКУДА БРАТЬ
  21.                 LD HL,(CPU6)                    ;СМЕЩЕНИЕ В СТРАНИЦЕ
  22.                 LD DE,(RREG_IXL)                ;АДРЕС КУДА ЛОЖИТЬ
  23.                 LD A,D
  24.                 EXX
  25.                 LD BC,WIN_P6
  26.                 CP 0X80
  27.                 LD A,0XFA                       ;ДЛЯ ДИАПАЗОНА АДРЕСОВ ЗАГРУЗКИ 4000-7FFF
  28.                 JR C,ELT01
  29.                 LD A,0XFD                       ;ДЛЯ ДИАПАЗОНА АДРЕСО ЗАГРУЗКИ 8000 И ВЫШЕ
  30. ELT01           OUT (C),A
  31.                 LD IYH,A                        ;НОМЕР СТРАНИЦЫ В КОТОРУЮ ПЕРЕНОСИМ
  32.                 EXX
  33.                 LD A,0X40                       ;ДЛЯ ДИАПАЗОНА АДРЕСОВ 4000-7FFF ГРУЗИМ НА 4000 ВЫШЕ
  34.                 JR C,ELT02
  35.                 LD A,0                          ;ДЛЯ ДИАПАЗОНА АДРЕСОВ 8000 И ВЫШЕ АДРЕС ЗАГРУЗКИ НЕ МЕНЯЕМ
  36. ELT02           ADD A,D
  37.                 LD D,A                          ;РЕАЛЬНЫЙ АДРЕС УКЛАДКИ
  38.                 SET 6,H
  39.                 LD C,(HL)
  40.                 INC HL
  41.                 LD B,(HL)                       ;ВЗЯЛИ РАЗМЕР БЛОКА ДЛЯ ЗАГРУЗКИ
  42.                 INC HL
  43.                 INC HL                          ;ПРОПУСКАЕМ ФЛАГОВЫЙ БАЙТ
  44.                 DEC BC                          ;ГРУЗИТЬ НА 2 БАЙТА МЕНЬШЕ (МИНУС ФЛАГОВЫЙ БАЙТ И CRC)
  45. ELT07           LDI
  46.                 JP PO,ELT05
  47.                 LD A,D
  48.                 CP 0XC0
  49.                 JR C,ELT06
  50.                 LD A,IYH
  51.                 CP 0XFA
  52.                 JR NZ,ELT06
  53.                 LD A,0XFD
  54.                 LD IYH,A
  55.                 EXX
  56.                 LD B,HIGH (WIN_P6)
  57.                 OUT (C),A
  58.                 EXX
  59.                 LD D,0X80
  60. ELT06           LD A,H
  61.                 CP 0X80
  62.                 JR C,ELT07
  63.                 INC IYL
  64.                 LD A,IYL
  65.                 ADD A,PAGE4TAP
  66.                 EXX
  67.                 LD B,HIGH (WIN_P5)
  68.                 OUT (C),A
  69.                 EXX
  70.                 LD H,0X40
  71.                 JR ELT07
  72.                
  73. ELT05           RES 6,H
  74.                 EVOPORT WIN_P5,0XFA             ;ВЕРНУЛИ СТРАНИЦУ В 1 ОКНЕ ПРОЕЦИРОВАНИЯ
  75.                 LD B,HIGH (WIN_P6)
  76.                 XOR A
  77.                 OUT (C),A                       ;ВКЛЮЧИЛИ ПОСЛЕДНЮЮ СТРАНИЦУ
  78.                 LD (CPU6),HL                    ;ВЕРНУЛИ СМЕЩЕНИЕ В СТРАНИЦЕ ДЛЯ ЗАГРУЗКИ
  79.                 LD A,IYL
  80.                 LD (CPU6+2),A                   ;ВЕРНУЛИ В ПЕРЕМЕННУЮ НОМЕР ТЕКУЩЕЙ СТРАНИЦЫ ЗАГРУЗКИ
  81.                 LD HL,(RREG_IXL)
  82.                 LD DE,(RREG_E)
  83.                 ADD HL,DE
  84.                 LD (RREG_IXL),HL
  85.                 LD HL,0
  86.                 LD (RREG_E),HL
  87.                 LD HL,RREG_F
  88.                 RES 6,(HL)
  89.                 SET 0,(HL)
  90.                 RET
  91.  
  92. TAPE_INIT       XOR A
  93.                 LD HL,CPU6
  94.                 LD (HL),A
  95.                 INC L
  96.                 LD (HL),A
  97.                 INC L
  98.                 LD (HL),A
  99.                 RET
  100.