Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 20.01.2013 savelij
  3.  
  4.                 PHASE CPU0
  5.                 JP $
  6.  
  7.                 DUPL 0X0008-$,0XFF
  8.                 JP $
  9.  
  10.                 DUPL 0X0010-$,0XFF
  11.                 JP $
  12.  
  13.                 DUPL ADR_SEL_ROM-$,0XFF
  14.                 OUT (C),A                       ;0014
  15.                 NOP
  16.                 RET
  17.  
  18.                 DUPL 0X0018-$,0XFF
  19.                 JP $
  20.  
  21.                 DUPL 0X0020-$,0XFF
  22.                 JP $
  23.  
  24.                 DUPL 0X0028-$,0XFF
  25.                 JP $
  26.  
  27.                 DUPL 0X0030-$,0XFF
  28.                 JP CALL2PAGE
  29.  
  30.                 DUPL 0X0038-$,0XFF              ;0038
  31. ;               PUSH HL
  32. ;               LD HL,(ADR_INT)
  33. ;               EX (SP),HL
  34. ;               RET
  35.  
  36.                 EI
  37.                 RET
  38.  
  39.                 DUPL 0X0040-$,0XFF
  40.                 JP INSTALL_NMIRST               ;УСТАНОВКА ОБРАБОТЧИКОВ NMI И RST
  41.                 JP UNP_MICRO_BOOT               ;РАСПАКОВКА ЗАПУСКАЛКИ HOBETA И SPG ФАЙЛОВ
  42.  
  43.                 DUPL 0X0080-$,0XFF
  44.                 binclude ../../dec40.bin
  45.  
  46.                 DUPL 0X00FF-$,0XFF
  47.                 DW 0X0038
  48.  
  49. PRTT_HL_        LD A,H
  50.                 CALL PRTT_A
  51.                 LD A,L
  52. PRTT_A          PUSH AF
  53.                 RRCA
  54.                 RRCA
  55.                 RRCA
  56.                 RRCA
  57.                 CALL PRTT_A_1
  58.                 POP AF
  59. PRTT_A_1        AND 0X0F
  60.                 CP 0X0A
  61.                 CCF
  62.                 ADC A,"0"
  63.                 DAA
  64.                 AND 0X7F
  65.                 PCALL PRTT_A_,P_ADDONS
  66.                 RET
  67.  
  68. COORDINAT_REGS  DW Y_OFFSET+1+(X_OFFSET+3)*0X100        ;SP
  69.                 DW Y_OFFSET+1+(X_OFFSET+3+9)*0X100      ;PC
  70.                 DW Y_OFFSET+2+(X_OFFSET+3)*0X100        ;IR
  71.                 DW Y_OFFSET+3+(X_OFFSET+3)*0X100        ;AF
  72.                 DW Y_OFFSET+3+(X_OFFSET+3+9)*0X100      ;AF'
  73.                 DW Y_OFFSET+4+(X_OFFSET+3)*0X100        ;BC
  74.                 DW Y_OFFSET+4+(X_OFFSET+3+9)*0X100      ;BC'
  75.                 DW Y_OFFSET+5+(X_OFFSET+3)*0X100        ;DE
  76.                 DW Y_OFFSET+5+(X_OFFSET+3+9)*0X100      ;DE'
  77.                 DW Y_OFFSET+6+(X_OFFSET+3)*0X100        ;HL
  78.                 DW Y_OFFSET+6+(X_OFFSET+3+9)*0X100      ;HL'
  79.                 DW Y_OFFSET+7+(X_OFFSET+3)*0X100        ;IX
  80.                 DW Y_OFFSET+7+(X_OFFSET+3+9)*0X100      ;IY
  81.                 DW Y_OFFSET+0X0A+(X_OFFSET+6)*0X100     ;CPU3 MAP0
  82.                 DW Y_OFFSET+0X0A+(X_OFFSET+6+3)*0X100   ;CPU3 MAP1
  83.                 DW Y_OFFSET+0X0B+(X_OFFSET+6)*0X100     ;CPU2 MAP0
  84.                 DW Y_OFFSET+0X0B+(X_OFFSET+6+3)*0X100   ;CPU2 MAP1
  85.                 DW Y_OFFSET+0X0C+(X_OFFSET+6)*0X100     ;CPU1 MAP0
  86.                 DW Y_OFFSET+0X0C+(X_OFFSET+6+3)*0X100   ;CPU1 MAP1
  87.                 DW Y_OFFSET+0X0D+(X_OFFSET+6)*0X100     ;CPU0 MAP0
  88.                 DW Y_OFFSET+0X0D+(X_OFFSET+6+3)*0X100   ;CPU0 MAP1
  89.                 DW Y_OFFSET+0X0F+(X_OFFSET+5)*0X100     ;PORT 7FFD
  90.                 DW Y_OFFSET+0X10+(X_OFFSET+5)*0X100     ;PORT EFF7
  91.                 DW Y_OFFSET+0X11+(X_OFFSET+0)*0X100     ;PORT XX77
  92.                 DW Y_OFFSET+0X11+(X_OFFSET+0+5)*0X100   ;BYTE IN PORT XX77
  93.                 DW Y_OFFSET+0X12+(X_OFFSET+5)*0X100     ;PORT BF
  94.                 DW Y_OFFSET+0X14+(X_OFFSET+11)*0X100    ;BIT DOS ENABLE
  95.  
  96. PRINT_REGS      LD E,(IX)
  97.                 INC IX
  98.                 LD D,(IX)
  99.                 INC IX
  100.                 JP PRTT_HL_
  101.  
  102. PRINT_REG       LD E,(IX)
  103.                 INC IX
  104.                 LD D,(IX)
  105.                 INC IX
  106.                 JP PRTT_A
  107.  
  108. PRT_PORTREGS    LD A,MAGIC_COLOR
  109.                 LD (TXT_COLOR),A
  110.                 LD IX,COORDINAT_REGS
  111.                 LD HL,(NMI_SAVE_SP)
  112.                 CALL PRINT_REGS                 ;SP
  113.                 LD HL,(NADRRET_L)
  114.                 CALL PRINT_REGS                 ;PC
  115.                 LD A,(NREG_I)
  116.                 LD H,A
  117.                 LD A,(NREG_R)
  118.                 LD L,A
  119.                 CALL PRINT_REGS                 ;IR
  120.                 LD HL,(NREG_F)
  121.                 CALL PRINT_REGS                 ;AF
  122.                 LD HL,(NREG_FF)
  123.                 CALL PRINT_REGS                 ;AF'
  124.                 LD HL,(NREG_C)
  125.                 CALL PRINT_REGS                 ;BC
  126.                 LD HL,(NREG_CC)
  127.                 CALL PRINT_REGS                 ;BC'
  128.                 LD HL,(NREG_E)
  129.                 CALL PRINT_REGS                 ;DE
  130.                 LD HL,(NREG_EE)
  131.                 CALL PRINT_REGS                 ;DE'
  132.                 LD HL,(NREG_L)
  133.                 CALL PRINT_REGS                 ;HL
  134.                 LD HL,(NREG_LL)
  135.                 CALL PRINT_REGS                 ;HL'
  136.                 LD HL,(NREG_IXL)
  137.                 CALL PRINT_REGS                 ;IX
  138.                 LD HL,(NREG_IYL)
  139.                 CALL PRINT_REGS                 ;IY
  140.                 LD A,(B0_CPU3)
  141.                 CALL PRINT_REG                  ;CPU3 MAP0
  142.                 LD A,(B1_CPU3)
  143.                 CALL PRINT_REG                  ;CPU3 MAP1
  144.                 LD A,(B0_CPU2)
  145.                 CALL PRINT_REG                  ;CPU2 MAP0
  146.                 LD A,(B1_CPU2)
  147.                 CALL PRINT_REG                  ;CPU2 MAP1
  148.                 LD A,(B0_CPU1)
  149.                 CALL PRINT_REG                  ;CPU1 MAP0
  150.                 LD A,(B1_CPU1)
  151.                 CALL PRINT_REG                  ;CPU1 MAP1
  152.                 LD A,(B0_CPU0)
  153.                 CALL PRINT_REG                  ;CPU0 MAP0
  154.                 LD A,(B1_CPU0)
  155.                 CALL PRINT_REG                  ;CPU0 MAP1
  156.                 LD A,(N_7FFD)
  157.                 CALL PRINT_REG                  ;PORT 7FFD
  158.                 LD A,(N_EFF7)
  159.                 CALL PRINT_REG                  ;PORT EFF7
  160.                 LD A,(N_77)
  161.                 AND %11100000
  162.                 RRCA
  163.                 LD B,A
  164.                 RRCA
  165.                 RRCA
  166.                 RRCA
  167.                 RRCA
  168.                 OR B
  169.                 OR 0XBC
  170.                 CALL PRINT_REG                  ;PORT XX77
  171.                 LD A,(N_77)
  172.                 AND 0X0F
  173.                 CALL PRINT_REG                  ;BYTE IN PORT XX77
  174.                 LD A,(N_BF)
  175.                 CALL PRINT_REG                  ;PORT BF
  176.                 LD E,(IX)
  177.                 INC IX
  178.                 LD D,(IX)
  179.                 LD A,(N_77)
  180.                 AND 0X10
  181.                 RRCA
  182.                 RRCA
  183.                 RRCA
  184.                 RRCA
  185.                 ADD A,"0"
  186.                 PCALL PRTT_A_,P_ADDONS          ;BIT DOS ENABLE
  187.                 RET
  188.  
  189.                 PHASE CPU1+$
  190.  
  191.                 include rst8_data.a80
  192.  
  193.                 PHASE $-CPU1
  194.  
  195. UNP_MICRO_BOOT  LD HL,MICRO_BOOT
  196.                 LD DE,DRV_VAR+0X300
  197.                 CALL UNPACK                     ;РАСПАКОВАЛИ FAT BOOT
  198.                 LD HL,BUF_TEKVOL
  199.                 LD DE,(RREG_L)
  200.                 LD BC,0X100
  201.                 LDIR                            ;СКОПИРОВАЛИ ПЕРЕМЕННЫЕ FAT ДРАЙВЕРА ВЫБРАННОГО РАЗДЕЛА
  202.                 RET
  203.  
  204. ; БЫСТРАЯ (ТАБЛИЧНАЯ) ФУНКЦИЯ ПОДСЧЁТА CRC-16,
  205. ; IX=*DATA, HL=SIZE
  206. ; НА ВЫХОДЕ -> HL=ПОДСЧИТАННОЕ ЗНАЧЕНИЕ
  207. CRC16_FAST      LD B,H
  208.                 LD C,L
  209.                 LD HL,0XFFFF
  210.                 EXX
  211.                 PUSH HL
  212.                 LD DE,BUF_CRC16_TABL
  213.                 LD C,0
  214.                 EXX
  215. CRC16F0         LD A,(IX)
  216.                 XOR H
  217.                 INC IX
  218.                 EXX
  219.                 LD L,A
  220.                 LD H,C
  221.                 ADD HL,DE
  222.                 LD A,(HL)
  223.                 INC H
  224.                 EXX
  225.                 XOR L
  226.                 LD H,A
  227.                 EXX
  228.                 LD A,(HL)
  229.                 EXX
  230.                 LD L,A
  231.                 DEC BC
  232.                 LD A,B
  233.                 OR C
  234.                 JP NZ,CRC16F0
  235.                 EXX
  236.                 POP HL
  237.                 EXX
  238.                 RET
  239.  
  240. ;УСТАНОВКА ОБРАБОТЧИКОВ RST 8 И NMI, ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ
  241. INSTALL_NMIRST  LD BC,WIN_P2
  242.                 XOR A
  243.                 OUT (C),A                       ;ВКЛЮЧИЛИ СТРАНИЦУ ПЕРЕМЕННЫХ
  244.                 LD A,0XEF
  245.                 IN A,(0XFE)
  246.                 RRCA
  247.                 JR NC,INSTALLNMIRST2
  248.                 LD IX,CPU2+ADR_SEL_ROM+4
  249.                 LD HL,ADR_MAGIC-ADR_SEL_ROM-4
  250.                 CALL CRC16_FAST                 ;СЧИТАЕМ CRC НА МЕСТЕ ОБРАБОТЧИКА
  251.                 PUSH HL                         ;СОХРАНИЛИ CRC
  252.                 LD IX,CODE_NMIRST+4
  253.                 LD HL,ADR_MAGIC-ADR_SEL_ROM-4
  254.                 CALL CRC16_FAST
  255.                 POP BC                          ;ВЕРНУЛИ РАНЕЕ ПОСЧИТАННОЕ CRC
  256.                 XOR A
  257.                 SBC HL,BC                       ;СРАВНИЛИ
  258.                 JR Z,INSTALLNMIRST1             ;ЕСЛИ СОВПАЛО БОЛЬШЕ НИЧЕГО НЕ ДЕЛАЕМ
  259. INSTALLNMIRST2  LD HL,CPU2
  260.                 LD DE,CPU2+1
  261.                 LD BC,CPU3-CPU2-1
  262.                 LD (HL),0
  263.                 LDIR                            ;ОЧИСТКА ПОСЛЕДНЕЙ СТРАНИЦЫ RAM
  264.                 LD HL,CODE_NMIRST
  265.                 LD DE,CPU2+ADR_SEL_ROM
  266.                 LD BC,ENMI_SERVICE-ADR_SEL_ROM-CPU2
  267.                 LDIR                            ;УСТАНОВИЛИ ОБРАБОТЧИКИ
  268.                 LD (BUF_TABLVOL+0XFE),BC        ;СБРОС CRC ТАБЛИЦЫ НАЙДЕННЫХ РАЗДЕЛОВ
  269.                 LD BC,WIN_P1                    ;НЕ СОВПАЛО, ПЕРВЫЙ ЗАПУСК ПОСЛЕ ВКЛЮЧЕНИЯ ПИТАНИЯ
  270.                 LD A,PAGE_MOUNTER               ;ИЛИ ОБРАБОТЧИКИ БЫЛИ ИСПОРЧЕНЫ
  271.                 OUT (C),A                       ;ВКЛЮЧИЛИ СТРАНИЦУ МОНТИРОВЩИКА ОБРАЗОВ
  272.                 XOR A
  273.                 LD HL,CPU1
  274.                 LD DE,CPU1+1
  275.                 LD BC,CPU1-1
  276.                 LD (HL),A
  277.                 LDIR
  278.                 LD (CPU2+DEBUG_ONOFF),A         ;0-DEBUGGER OFF
  279.                 LD (FLAGS_DRV),A                ;СБРОС ФЛАГОВ ДРАЙВЕРОВ
  280.                 DEC A
  281.                 LD (SETDVOL),A                  ;ПРИ ИНИТЕ FAT РАЗДЕЛОВ БУДЕТ ВЫБРАН ПОСЛЕДНИЙ НАЙДЕННЫЙ
  282.                 LD (INTERNAL_SP),SP
  283.                 LD SP,CPU2+STACK_RST
  284.                 PCALL UNPACK_STS,P_ADDON2
  285.                 LD SP,(INTERNAL_SP)
  286.                 LD BC,WIN_A1
  287.                 LD A,0X7A
  288.                 OUT (C),A
  289. INSTALLNMIRST1  CALL SET4RESETFONT
  290. ;               PEC_ON FONT_BF
  291. ;               IN A,(PEVO_CONF)
  292. ;               SET 2,A
  293. ;               OUT (PEVO_CONF),A
  294.  
  295. ;               LD HL,SYM00
  296. ;               LD DE,0
  297. ;               LD BC,0X20*8
  298. ;               LDIR
  299.  
  300. ;               PEC_OFF FONT_BF
  301. ;               RES 2,A
  302. ;               OUT (PEVO_CONF),A
  303.                 LD HL,STEK_PAGES
  304.                 LD (TEKPAGE),HL
  305.                 LD HL,READ_KEYS
  306.                 LD (ADR_INT),HL
  307.                 LD BC,WIN_A0
  308.                 XOR A
  309.                 LD (CPU2+FOR_RET),A
  310.                 JP ADR_SEL_ROM
  311.  
  312. SET4RESETFONT   LD A,CMOS_BYTE_00
  313.                 LD BC,CMOSD_SET_ADR
  314.                 OUT (C),A
  315.                 LD BC,CMOSD_RD_WR
  316.                 IN A,(C)
  317.                 LD L,A
  318.                 AND RELOAD_FONT
  319.                 RET NZ                          ;ЕСЛИ 1, ТО ШРИФТ НЕ ПЕРЕЗАГРУЖАЕМ
  320.                 LD A,L
  321. LD_SET_FONT     AND TYPE_FONT                   ;ОПРЕДЕЛЕНИЕ ВЫБРАННОГО ШРИФТА
  322.                 LD HL,ATM_FONT                  ;0=ШРИФТ ATM
  323.                 JR NZ,SET_FONT1
  324.                 LD HL,CP866_FONT                ;1=ШРИФТ CP866
  325. SET_FONT1       LD DE,OFFSET_BUFSYM
  326.                 PUSH DE
  327.                 CALL UNPACK
  328.                 POP HL
  329.                 LD BC,0X0800
  330.                 LD D,C
  331.                 LD E,C
  332.                 PEC_ON SHADOW_BF+FONT_BF
  333.                 LDIR
  334.                 PEC_OFF FONT_BF
  335.                 RET
  336.  
  337. ;УСТАНОВКА РЕЖИМОВ
  338. SET_MODE        LD A,(RREG_A)
  339. ISET_MODE       AND A
  340.                 JR Z,SET_MODE4
  341.                 LD E,A
  342.                 LD (TEK_MODES),A                ;СОХРАНИЛИ УСТАНАВЛИВАЕМЫЕ РЕЖИМЫ
  343.                 AND 0X0F                        ;ВЫДЕЛИЛИ БИТЫ РЕЖИМА ЭКРАНА
  344.                 JR Z,SET_MODE2
  345. ;УСТАНОВКА РЕЖИМОВ ЭКРАНА
  346.                 DEC A
  347.                 LD D,3                          ;ZX SCREEN
  348.                 JR Z,SET_MODE3                  ;ЕСЛИ 0 ТО РЕЖИМ ЭКРАНА НЕ МЕНЯЕМ
  349.                 DEC A
  350.                 LD D,7                          ;TEXTMOD В ОДНОЙ СТРАНИЦЕ
  351.                 JR NZ,SET_MODE2
  352. SET_MODE3       LD A,(B_PORT77)
  353.                 AND 0XF8
  354.                 OR D
  355.                 LD (B_PORT77),A                 ;УСТАНОВИЛИ ВИДЕО РЕЖИМ В ПОРТУ 77
  356. SET_MODE2       LD A,E
  357.                 RRCA
  358.                 RRCA
  359.                 RRCA
  360.                 RRCA
  361.                 LD E,A                          ;СЕЙЧАС БИТЫ 1-0 СОДЕРЖАТ ТУРБО РЕЖИМ
  362.                 AND 3                           ;ВЗЯЛИ БИТЫ ТУРБОРЕЖИМА
  363.                 JR Z,SET_MODE1                  ;ЕСЛИ 0 ТО РЕЖИМ ТУРБО НЕ МЕНЯЕМ
  364. ;СМЕНА ТУРБОРЕЖИМА
  365.                 LD D,A
  366.                 EXX
  367.                 DEC A                           ;1
  368.                 LD HL,0X0010                    ;TURBO 3,5 MHZ
  369.                 LD DE,0X0080
  370.                 JR Z,SET_MODE5
  371.                 DEC A                           ;2
  372.                 LD HL,0X0000                    ;TURBO 7,0 MHZ
  373.                 LD DE,0X0000
  374.                 JR Z,SET_MODE5
  375.                 LD HL,0X0800                    ;3
  376.                 LD DE,0X8000                    ;TURBO 14 MHZ
  377. SET_MODE5       LD A,(R_EFF7)
  378.                 AND %11101111
  379.                 OR L
  380.                 LD (R_EFF7),A                   ;УСТАНОВИЛИ ТУРБО ДЛЯ ПОРТА EFF7
  381.                 LD A,(B_PORT77)
  382.                 AND %11110111
  383.                 OR H
  384.                 LD (B_PORT77),A                 ;УСТАНОВИЛИ ТУРБО РЕЖИМ ДЛЯ ПОРТА 77
  385.                 LD H,TURBO_MEMORY
  386.                 CALL READCMOS
  387.                 OR E
  388.                 LD L,A
  389.                 CALL IWRITECMOS
  390.                 LD H,CMOS_BYTE_00
  391.                 CALL READCMOS
  392.                 OR D
  393.                 LD L,A
  394.                 CALL IWRITECMOS
  395.                 EXX
  396. SET_MODE1       LD A,E
  397.                 RRCA
  398.                 RRCA
  399.                 AND 3                           ;ВЫДЕЛИЛИ БИТЫ РЕЖИМА ПАМЯТИ
  400.                 JR Z,SET_MODE4                  ;ЕСЛИ 0 ТО РЕЖИМ ПАМЯТИ НЕ МЕНЯЕМ
  401. ;СМЕНА РЕЖИМА ПАМЯТИ
  402.                 DEC A
  403.                 LD D,A
  404.                 LD H,TURBO_MEMORY
  405.                 CALL READCMOS
  406.                 AND 0XFC
  407.                 OR D
  408.                 LD L,A
  409.                 JP IWRITECMOS
  410.  
  411. SET_MODE4       LD A,(TEK_MODES)
  412.                 LD (RREG_A),A
  413.                 RET
  414.  
  415. ;СОРТИРОВКА СПИСКА НАЙДЕННЫХ ДИРЕКТОРИЙ/ФАЙЛОВ
  416. SORT_FINDFILES  LD HL,(KOL_FOUNDED)
  417.                 LD A,H
  418.                 OR L
  419.                 RET Z                           ;ВЫХОД ЕСЛИ НИЧЕГО НЕ НАЙДЕНО
  420.                 DEC HL
  421.                 LD A,H
  422.                 OR L
  423.                 RET Z                           ;ВЫХОД ЕСЛИ ДИРЕКТОРИЯ/ФАЙЛ ТОЛЬКО 1
  424.                 LD BC,WIN_P3
  425.                 LD A,PAGE_TEMP
  426.                 OUT (C),A
  427.                 LD HL,CPU3+0X1000               ;АДРЕС ПЕРВЫХ СИМВОЛОВ
  428.                 LD DE,0X1000
  429.                 LD BC,SYMS4SORT
  430.                 EXX
  431.                 LD HL,CPU3+0X2000               ;АДРЕС КУДА СКЛАДИРОВАТЬ СОРТИРОВАННОЕ
  432.                 LD BC,(KOLFIND)
  433.                 EXX
  434. ;ПЕРВЫЙ ПРОХОД ДЛЯ ДИРЕКТОРИЙ
  435. SORTIR03        LD A,(HL)
  436.                 AND 0X10
  437.                 JR Z,SORTIR01
  438.                 INC HL
  439.                 LD A,(BC)
  440.                 CP (HL)
  441.                 DEC HL
  442.                 JR NZ,SORTIR01
  443.                 SBC HL,DE                       ;ПЕРЕХОД К НОМЕРАМ
  444.                 LD A,(HL)
  445.                 INC HL
  446.                 EXX
  447.                 LD (HL),A
  448.                 INC HL
  449.                 EXX
  450.                 LD A,(HL)
  451.                 INC HL
  452.                 EXX
  453.                 LD (HL),A
  454.                 INC HL
  455.                 DEC BC
  456.                 LD A,B
  457.                 OR C
  458.                 EXX
  459.                 JR Z,SORTIR05                   ;ЕСЛИ КОНЧИЛОСЬ ТО ТОЖЕ САМОЕ ДЛЯ ФАЙЛОВ
  460.                 ADD HL,DE                       ;ВОЗВРАТ К ФЛАГАМ И ИМЕНАМ
  461.                 JR SORTIR03
  462.  
  463. ;НЕ ДИРЕКТОРИЯ, СЛЕДУЮЩАЯ ПАРА
  464. SORTIR01        INC HL
  465.                 INC HL
  466.                 EXX
  467.                 DEC BC
  468.                 LD A,B
  469.                 OR C
  470.                 EXX
  471.                 JR NZ,SORTIR03
  472. SORTIR05        EXX
  473.                 LD BC,(KOLFIND)
  474.                 EXX
  475.                 LD HL,CPU3+0X1000
  476.                 INC BC
  477.                 LD A,(BC)
  478.                 AND A
  479.                 JR NZ,SORTIR03
  480.                 LD BC,SYMS4SORT
  481.                 LD HL,CPU3+0X1000
  482. ;ВТОРОЙ ПРОХОД ДЛЯ ФАЙЛОВ
  483. SORTIR02        LD A,(HL)
  484.                 AND 0X10
  485.                 JR NZ,SORTIR04
  486.                 INC HL
  487.                 LD A,(BC)
  488.                 CP (HL)
  489.                 DEC HL
  490.                 JR NZ,SORTIR04
  491.                 SBC HL,DE
  492.                 LD A,(HL)
  493.                 INC HL
  494.                 EXX
  495.                 LD (HL),A
  496.                 INC HL
  497.                 EXX
  498.                 LD A,(HL)
  499.                 INC HL
  500.                 EXX
  501.                 LD (HL),A
  502.                 INC HL
  503.                 DEC BC
  504.                 LD A,B
  505.                 OR C
  506.                 EXX
  507.                 JR Z,SORTIR07
  508.                 ADD HL,DE
  509.                 JR SORTIR02
  510.  
  511. SORTIR04        INC HL
  512.                 INC HL
  513.                 EXX
  514.                 DEC BC
  515.                 LD A,B
  516.                 OR C
  517.                 EXX
  518.                 JR NZ,SORTIR02
  519. SORTIR07        EXX
  520.                 LD BC,(KOLFIND)
  521.                 EXX
  522.                 LD HL,CPU3+0X1000
  523.                 INC BC
  524.                 LD A,(BC)
  525.                 AND A
  526.                 JR NZ,SORTIR02
  527.                 LD HL,CPU3+0X2000
  528.                 LD DE,CPU3
  529.                 LD BC,0X1000
  530.                 LDIR
  531.                 RET
  532.  
  533. STORE_AY        LD HL,AY_REGS
  534.                 LD DE,0XFFC0
  535.                 LD C,0XFD
  536.                 LD A,0X0D
  537. STORE_AY1       LD B,D
  538.                 OUT (C),A
  539.                 LD B,E
  540.                 INI
  541.                 DEC A
  542.                 JP P,STORE_AY1
  543.                 DEC E
  544.                 LD H,0
  545.                 LD A,0X0D
  546. STORE_AY2       LD B,D
  547.                 OUT (C),A
  548.                 LD B,E
  549.                 OUT (C),H
  550.                 DEC A
  551.                 JP P,STORE_AY2
  552.                 RET
  553.  
  554. RESTORE_AY      LD HL,AY_REGS
  555.                 LD DE,0XFFC0
  556.                 LD C,0XFD
  557.                 LD A,0X0D
  558. RESTORE_AY1     LD B,D
  559.                 OUT (C),A
  560.                 LD B,E
  561.                 OUTI
  562.                 DEC A
  563.                 JP P,RESTORE_AY1
  564.                 RET
  565.  
  566. SYMS4SORT       DB ".!#$%&'()-0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`{}~",0X7F
  567.                 DB "АБВГДЕЖЗИЙКЛЬНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁ",0
  568.  
  569. ;ДЕФОЛТНЫЕ ЗНАЧЕНИЯ ДЛЯ В КМОС
  570. CMOS_DEFAULT    DB 0X00,0X00,0X00,0XAA,0X00,0X00
  571. ECMOS_DEFAULT
  572.  
  573.                 include fontread.a80
  574.                 include call_cmos.a80
  575.                 include tape.a80
  576.                 include ay_printer.a80
  577.  
  578. CP866_UTL       binclude 8x8_ar_pack.bin  
  579. CP866_FONT      binclude 866_code_pack.bin
  580. ATM_FONT        binclude atm_code_pack.bin
  581.  
  582. MICRO_BOOT      binclude ../../fat_boot/source/micro_boot_fat_pack.rom
  583.  
  584.                 DUPL (HIGH ($)+1)*0X100-$,0XFF
  585. BUF_CRC16_TABL  DB 0X00,0X10,0X20,0X30,0X40,0X50,0X60,0X70,0X81,0X91,0XA1,0XB1,0XC1,0XD1,0XE1,0XF1
  586.                 DB 0X12,0X02,0X32,0X22,0X52,0X42,0X72,0X62,0X93,0X83,0XB3,0XA3,0XD3,0XC3,0XF3,0XE3
  587.                 DB 0X24,0X34,0X04,0X14,0X64,0X74,0X44,0X54,0XA5,0XB5,0X85,0X95,0XE5,0XF5,0XC5,0XD5
  588.                 DB 0X36,0X26,0X16,0X06,0X76,0X66,0X56,0X46,0XB7,0XA7,0X97,0X87,0XF7,0XE7,0XD7,0XC7
  589.                 DB 0X48,0X58,0X68,0X78,0X08,0X18,0X28,0X38,0XC9,0XD9,0XE9,0XF9,0X89,0X99,0XA9,0XB9
  590.                 DB 0X5A,0X4A,0X7A,0X6A,0X1A,0X0A,0X3A,0X2A,0XDB,0XCB,0XFB,0XEB,0X9B,0X8B,0XBB,0XAB
  591.                 DB 0X6C,0X7C,0X4C,0X5C,0X2C,0X3C,0X0C,0X1C,0XED,0XFD,0XCD,0XDD,0XAD,0XBD,0X8D,0X9D
  592.                 DB 0X7E,0X6E,0X5E,0X4E,0X3E,0X2E,0X1E,0X0E,0XFF,0XEF,0XDF,0XCF,0XBF,0XAF,0X9F,0X8F
  593.                 DB 0X91,0X81,0XB1,0XA1,0XD1,0XC1,0XF1,0XE1,0X10,0X00,0X30,0X20,0X50,0X40,0X70,0X60
  594.                 DB 0X83,0X93,0XA3,0XB3,0XC3,0XD3,0XE3,0XF3,0X02,0X12,0X22,0X32,0X42,0X52,0X62,0X72
  595.                 DB 0XB5,0XA5,0X95,0X85,0XF5,0XE5,0XD5,0XC5,0X34,0X24,0X14,0X04,0X74,0X64,0X54,0X44
  596.                 DB 0XA7,0XB7,0X87,0X97,0XE7,0XF7,0XC7,0XD7,0X26,0X36,0X06,0X16,0X66,0X76,0X46,0X56
  597.                 DB 0XD9,0XC9,0XF9,0XE9,0X99,0X89,0XB9,0XA9,0X58,0X48,0X78,0X68,0X18,0X08,0X38,0X28
  598.                 DB 0XCB,0XDB,0XEB,0XFB,0X8B,0X9B,0XAB,0XBB,0X4A,0X5A,0X6A,0X7A,0X0A,0X1A,0X2A,0X3A
  599.                 DB 0XFD,0XED,0XDD,0XCD,0XBD,0XAD,0X9D,0X8D,0X7C,0X6C,0X5C,0X4C,0X3C,0X2C,0X1C,0X0C
  600.                 DB 0XEF,0XFF,0XCF,0XDF,0XAF,0XBF,0X8F,0X9F,0X6E,0X7E,0X4E,0X5E,0X2E,0X3E,0X0E,0X1E
  601.                 DB 0X00,0X21,0X42,0X63,0X84,0XA5,0XC6,0XE7,0X08,0X29,0X4A,0X6B,0X8C,0XAD,0XCE,0XEF
  602.                 DB 0X31,0X10,0X73,0X52,0XB5,0X94,0XF7,0XD6,0X39,0X18,0X7B,0X5A,0XBD,0X9C,0XFF,0XDE
  603.                 DB 0X62,0X43,0X20,0X01,0XE6,0XC7,0XA4,0X85,0X6A,0X4B,0X28,0X09,0XEE,0XCF,0XAC,0X8D
  604.                 DB 0X53,0X72,0X11,0X30,0XD7,0XF6,0X95,0XB4,0X5B,0X7A,0X19,0X38,0XDF,0XFE,0X9D,0XBC
  605.                 DB 0XC4,0XE5,0X86,0XA7,0X40,0X61,0X02,0X23,0XCC,0XED,0X8E,0XAF,0X48,0X69,0X0A,0X2B
  606.                 DB 0XF5,0XD4,0XB7,0X96,0X71,0X50,0X33,0X12,0XFD,0XDC,0XBF,0X9E,0X79,0X58,0X3B,0X1A
  607.                 DB 0XA6,0X87,0XE4,0XC5,0X22,0X03,0X60,0X41,0XAE,0X8F,0XEC,0XCD,0X2A,0X0B,0X68,0X49
  608.                 DB 0X97,0XB6,0XD5,0XF4,0X13,0X32,0X51,0X70,0X9F,0XBE,0XDD,0XFC,0X1B,0X3A,0X59,0X78
  609.                 DB 0X88,0XA9,0XCA,0XEB,0X0C,0X2D,0X4E,0X6F,0X80,0XA1,0XC2,0XE3,0X04,0X25,0X46,0X67
  610.                 DB 0XB9,0X98,0XFB,0XDA,0X3D,0X1C,0X7F,0X5E,0XB1,0X90,0XF3,0XD2,0X35,0X14,0X77,0X56
  611.                 DB 0XEA,0XCB,0XA8,0X89,0X6E,0X4F,0X2C,0X0D,0XE2,0XC3,0XA0,0X81,0X66,0X47,0X24,0X05
  612.                 DB 0XDB,0XFA,0X99,0XB8,0X5F,0X7E,0X1D,0X3C,0XD3,0XF2,0X91,0XB0,0X57,0X76,0X15,0X34
  613.                 DB 0X4C,0X6D,0X0E,0X2F,0XC8,0XE9,0X8A,0XAB,0X44,0X65,0X06,0X27,0XC0,0XE1,0X82,0XA3
  614.                 DB 0X7D,0X5C,0X3F,0X1E,0XF9,0XD8,0XBB,0X9A,0X75,0X54,0X37,0X16,0XF1,0XD0,0XB3,0X92
  615.                 DB 0X2E,0X0F,0X6C,0X4D,0XAA,0X8B,0XE8,0XC9,0X26,0X07,0X64,0X45,0XA2,0X83,0XE0,0XC1
  616.                 DB 0X1F,0X3E,0X5D,0X7C,0X9B,0XBA,0XD9,0XF8,0X17,0X36,0X55,0X74,0X93,0XB2,0XD1,0XF0
  617.  
  618.                 include nmi_service.a80
  619.  
  620.                 DUPL 0X3BFF-$,0XFF
  621.                 DW 0X0038
  622.  
  623.                 DUPL 0X3FF8-$,0XFF
  624.                 DB "ADDON1"
  625.                 DW DATA_VERS
  626.                 DEPHASE
  627.