Subversion Repositories pentevo

Rev

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

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