Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 03.09.2017 savelij
  3.  
  4. X4DUMP          EQU 0X0C
  5. Y4DUMP          EQU 0X05
  6.  
  7. EDIT_CMOS       DI
  8.                 LD A,%01001111
  9.                 CALL CLEAR_TXTSCR
  10.                 LD H,CMOS_BYTE_00
  11.                 CALL READCMOS
  12.                 AND M_TYPE_FONT
  13.                 LD (TYPEFONT),A
  14.                 LD DE,0
  15.                 LD BC,0X5019
  16.                 CALL RAMKA4TXTSCR
  17.                 LD DE,0X2201
  18.                 LD HL,TXT_EDITCMOS2
  19.                 CALL PRTT_MSG
  20.                 LD DE,0X1217
  21.                 LD HL,TXT_EDITCMOS1
  22.                 CALL PRTT_MSG
  23.                 LD IX,0
  24.                 CALL INVERS_CUR
  25. EC02            CALL LOAD_CMOS
  26.                 CALL PRINT_DUMP
  27.                 CALL HELP_REG
  28.                 CALL TXTMODE_ON
  29. EC01            EI
  30.                 HALT
  31.                 LD H,0X0C
  32.                 CALL READCMOS
  33.                 BIT 4,A
  34.                 CALL NZ,PRINT0STROKA
  35.                 BIT 5,(IY+1)
  36.                 JP Z,EC01
  37.                 RES 5,(IY+1)
  38.                 LD A,(0X5C08)
  39.                 CP "l"
  40.                 JR Z,EC02
  41.                 CP "x"
  42.                 JR Z,EC06
  43.                 CP "s"
  44.                 JR NZ,EC03
  45.                 CALL SAVE_CMOS
  46.                 JR EC01
  47.  
  48. EC03            CP 9
  49.                 CALL Z,CUR_RIGHT
  50.                 CP 8
  51.                 CALL Z,CUR_LEFT
  52.                 CP 0X0B
  53.                 CALL Z,CUR_UP
  54.                 CP 0X0A
  55.                 CALL Z,CUR_DOWN
  56.                 CP "0"
  57.                 JR C,EC01
  58.                 CP ":"
  59.                 JR C,EC05
  60.                 RES 5,A
  61. EC04            CP "A"
  62.                 JR C,EC01
  63.                 CP "G"
  64.                 JR NC,EC01
  65. EC05            CALL INPUT_HALFBYTE
  66.                 JR EC01
  67.  
  68. EC06            CALL TXTMODE_OFF
  69.                 LD A,0X10
  70.                 CALL SET_7FFD
  71.                 JP RESTART
  72.  
  73. ;РИСОВАНИЕ ДВОЙНОЙ РАМКИ ОКНА В ТЕКСТМОДЕ
  74. ;D-X E-Y B-H C-V
  75. RAMKA4TXTSCR    DEC B
  76.                 DEC B
  77.                 DEC C
  78.                 DEC C
  79.                 PUSH DE
  80.                 PUSH BC
  81.                 LD A,"╔"
  82.                 CALL PRTSYMTXTMODE
  83. R4TXTS1         LD A,"═"
  84.                 CALL PRTSYMTXTMODE
  85.                 DJNZ R4TXTS1
  86.                 LD A,"╗"
  87.                 CALL PRTSYMTXTMODE
  88.                 DEC D
  89.                 INC E
  90. R4TXTS2         LD A,"║"
  91.                 CALL PRTSYMTXTMODE
  92.                 DEC D
  93.                 INC E
  94.                 DEC C
  95.                 JR NZ,R4TXTS2
  96.                 POP BC
  97.                 POP DE
  98.                 INC E
  99. R4TXTS3         LD A,"║"
  100.                 CALL PRTSYMTXTMODE
  101.                 DEC D
  102.                 INC E
  103.                 DEC C
  104.                 JR NZ,R4TXTS3
  105.                 LD A,"╚"
  106.                 CALL PRTSYMTXTMODE
  107. R4TXTS4         LD A,"═"
  108.                 CALL PRTSYMTXTMODE
  109.                 DJNZ R4TXTS4
  110.                 LD A,"╝"
  111.                 JP PRTSYMTXTMODE
  112.  
  113. INPUT_HALFBYTE  SUB "0"
  114.                 CP 0X0A
  115.                 JR C,IHB1
  116.                 SUB 7
  117. IHB1            LD E,A
  118.                 LD A,IXH
  119.                 LD L,A
  120.                 LD H,0XC0
  121.                 LD A,IXL
  122.                 AND A
  123.                 JR NZ,LOW_HALF
  124.                 LD A,(HL)
  125.                 AND 0X0F
  126.                 LD D,A
  127.                 LD A,E
  128.                 RRCA
  129.                 RRCA
  130.                 RRCA
  131.                 RRCA
  132.                 OR D
  133.                 JR LOW_HALF1
  134.  
  135. LOW_HALF        LD A,(HL)
  136.                 AND 0XF0
  137.                 OR E
  138. LOW_HALF1       LD (HL),A
  139.                 LD A,L
  140.                 PUSH AF
  141.                 LD D,A
  142.                 LD E,(HL)
  143.                 EX DE,HL
  144.                 CALL WRITECMOS
  145.                 POP AF
  146.                 CALL PRINT_STROKA
  147.                 JP CUR_RIGHT
  148.  
  149. CUR_UP          PUSH AF
  150.                 CALL INVERS_CUR
  151.                 LD A,IXH
  152.                 SUB 0X10
  153.                 CP 0XF0
  154.                 JR C,CUR_UP1
  155.                 AND 0X0F
  156.                 OR 0XE0
  157. CUR_UP1         LD IXH,A
  158.                 JR ECUR_RIGHT
  159.  
  160. CUR_DOWN        PUSH AF
  161.                 CALL INVERS_CUR
  162.                 LD A,IXH
  163.                 ADD A,0X10
  164.                 CP 0XF0
  165.                 JR C,CUR_DOWN1
  166.                 AND 0X0F
  167. CUR_DOWN1       LD IXH,A
  168.                 JR ECUR_RIGHT
  169.  
  170. CUR_RIGHT       PUSH AF
  171.                 CALL INVERS_CUR
  172.                 INC IXL
  173.                 LD A,IXL
  174.                 CP 2
  175.                 JR C,ECUR_RIGHT
  176.                 INC IXH
  177.                 LD A,IXH
  178.                 CP 0XF0
  179.                 JR C,CUR_RIGHT1
  180.                 LD IXH,0
  181. CUR_RIGHT1      LD IXL,0
  182. ECUR_RIGHT      CALL HELP_REG
  183.                 CALL INVERS_CUR
  184.                 POP AF
  185.                 RET
  186.  
  187. CUR_LEFT        PUSH AF
  188.                 CALL INVERS_CUR
  189.                 DEC IXL
  190.                 JP P,ECUR_RIGHT
  191.                 LD IXL,1
  192.                 DEC IXH
  193.                 LD A,IXH
  194.                 CP 0XF0
  195.                 JR C,ECUR_RIGHT
  196.                 LD IX,CRCCMOSHIGH*0X100+1
  197.                 JR ECUR_RIGHT
  198.  
  199. HELP_REG        LD A,IXH
  200.                 LD HL,EMPTY_STROKA
  201.                 CP 0X12
  202.                 JR NC,HELP_REG1
  203.                 LD L,A
  204.                 LD H,0
  205.                 ADD HL,HL
  206.                 ADD HL,HL
  207.                 ADD HL,HL
  208.                 ADD HL,HL
  209.                 ADD HL,HL
  210.                 LD DE,TXT_HELPREG
  211.                 ADD HL,DE
  212. HELP_REG1       LD DE,0X1203
  213.                 JP PRTT_MSG
  214.  
  215. INVERS_CUR      LD A,0X1B
  216.                 CALL SET_7FFD
  217.                 LD A,IXH
  218.                 AND 0XF0
  219.                 RRCA
  220.                 RRCA
  221.                 RRCA
  222.                 RRCA
  223.                 ADD A,Y4DUMP
  224.                 LD L,A
  225.                 LD H,0
  226.                 LD D,H
  227.                 REPT 6
  228.                 ADD HL,HL
  229.                 ENDM
  230.                 LD A,IXH
  231.                 AND 0X0F
  232.                 LD E,A
  233.                 ADD A,A
  234.                 ADD A,E
  235.                 LD E,A
  236.                 LD A,IXL
  237.                 ADD A,X4DUMP+7
  238.                 ADD A,E
  239.                 LD E,A
  240.                 SRL E
  241.                 ADD HL,DE
  242.                 AND 1
  243.                 RRCA
  244.                 RRCA
  245.                 RRCA
  246.                 OR 0XC1
  247.                 LD D,A
  248.                 LD E,0XC0
  249.                 ADD HL,DE
  250.                 LD A,(HL)
  251.                 XOR %00000100
  252.                 LD (HL),A
  253.                 LD A,0X1F
  254.                 JP SET_7FFD
  255.  
  256. ;ОЧИСТКА ТЕКСТМОДНОГО ЭКРАНА
  257. CLEAR_TXTSCR    PUSH AF
  258.                 LD A,0X1F
  259.                 CALL SET_7FFD
  260.                 LD HL,0XC1C0
  261.                 LD A," "
  262.                 CALL CLS_TXTSCR
  263.                 LD HL,0XE1C0
  264.                 CALL CLS_TXTSCR
  265.                 LD A,0X1B
  266.                 CALL SET_7FFD
  267.                 LD HL,0XC1C0
  268.                 POP AF
  269.                 CALL CLS_TXTSCR
  270.                 LD HL,0XE1C0
  271.                 CALL CLS_TXTSCR
  272.                 LD A,0X1F
  273.                 JP SET_7FFD
  274.  
  275. ;ОЧИСТКА КУСОЧКА ТЕКСТМОДНОГО ЭКРАНА
  276. CLS_TXTSCR      LD D,H
  277.                 LD E,L
  278.                 LD BC,0X63F
  279.                 LD (HL),A
  280.                 INC DE
  281.                 LDIR
  282.                 RET
  283.  
  284. ;ПЕЧАТЬ ТЕКСТОВОЙ СТРОКИ НА ТЕСТМОДНОМ ЭКРАНЕ
  285. PRTT_MSG        LD A,(HL)
  286.                 INC HL
  287.                 AND A
  288.                 RET Z
  289.                 CALL PRTSYMTXTMODE
  290.                 JR PRTT_MSG
  291.  
  292. PRINT0STROKA    LD H,0
  293.                 CALL READCMOS
  294.                 LD (0XC000),A
  295.                 LD H,2
  296.                 CALL READCMOS
  297.                 LD (0XC002),A
  298.                 LD H,4
  299.                 CALL READCMOS
  300.                 LD (0XC004),A
  301.                 XOR A
  302.                 LD L,A
  303.                 PUSH IX
  304.                 LD IX,0
  305.                 CALL PRINT_STROKA1
  306.                 POP IX
  307.                 RET
  308.  
  309. PRINT_STROKA    LD A,IXH
  310.                 AND 0XF0
  311.                 LD L,A
  312. PRINT_STROKA1   LD B,1
  313.                 LD H,0
  314.                 RRCA
  315.                 RRCA
  316.                 RRCA
  317.                 RRCA
  318.                 ADD A,Y4DUMP
  319.                 LD E,A
  320.                 LD D,X4DUMP
  321.                 JR PRINT1STROKA
  322.  
  323. PRINT_DUMP     
  324. ;               LD DE,(X4DUMP+6)*0X100+Y4DUMP-2
  325. ;               XOR A
  326. ;               LD B,0X10
  327. ;PRT_ADRB       PUSH AF
  328. ;               CALL PRTT_A_
  329. ;               LD A," "
  330. ;               CALL PRTSYMTXTMODE
  331. ;               POP AF
  332. ;               DJNZ PRT_ADRB
  333.                 LD B,0X0F
  334.                 LD DE,X4DUMP*0X100+Y4DUMP
  335.                 LD HL,0
  336. PRINT1STROKA    CALL PRTT_SMESH
  337.                 LD A,0XC0
  338.                 OR H
  339.                 LD H,A
  340.                 CALL PRTT_STROKA
  341.                 LD A,H
  342.                 AND 0X3F
  343.                 LD H,A
  344.                 INC E
  345.                 LD D,X4DUMP
  346.                 DJNZ PRINT1STROKA
  347.                 RET
  348.  
  349. PRTT_STROKA     LD C,0X10
  350. PRTT_STROKA1    LD A,(HL)
  351.                 INC HL
  352.                 CALL PRTT_A_
  353.                 LD A," "
  354.                 CALL PRTSYMTXTMODE
  355.                 DEC C
  356.                 JR NZ,PRTT_STROKA1
  357.                 RET
  358.  
  359. PRTT_SMESH      CALL PRTT_HL_
  360.                 LD A,":"
  361.                 CALL PRTSYMTXTMODE
  362.                 LD A," "
  363.                 JR PRTSYMTXTMODE
  364.  
  365. PRTT_HL_        LD A,H
  366.                 CALL PRTT_A_
  367.                 LD A,L
  368. PRTT_A_         PUSH AF
  369.                 RRCA
  370.                 RRCA
  371.                 RRCA
  372.                 RRCA
  373.                 CALL PRTT_A_1
  374.                 POP AF
  375. PRTT_A_1        AND 0X0F
  376.                 CP 0X0A
  377.                 CCF
  378.                 ADC A,"0"
  379.                 DAA
  380.                 AND 0X7F
  381. ;ПЕЧАТЬ СИМВОЛА НА ТЕКСТМОДНОМ ЭКРАНЕ
  382. ;D-X E-Y
  383. PRTSYMTXTMODE   PUSH DE
  384.                 PUSH HL
  385.                 LD L,A
  386.                 LD A,0
  387. TYPEFONT        EQU $-1
  388.                 AND A
  389.                 LD A,L
  390.                 JR NZ,.LOOP
  391.                 CP 0X80
  392.                 JR C,.LOOP
  393.                 LD HL,CONV_CP866_ATM
  394.                 PUSH BC
  395.                 RES 7,A
  396.                 LD B,0
  397.                 LD C,A
  398.                 ADD HL,BC
  399.                 LD A,(HL)
  400.                 POP BC
  401. .LOOP           PUSH AF
  402.                 LD L,E
  403.                 LD A,D
  404.                 LD H,0
  405.                 LD D,H
  406.                 ADD HL,HL
  407.                 ADD HL,HL
  408.                 ADD HL,HL
  409.                 ADD HL,HL
  410.                 ADD HL,HL
  411.                 ADD HL,HL
  412.                 LD E,A
  413.                 SRL E
  414.                 ADD HL,DE
  415.                 AND 1
  416.                 RRCA
  417.                 RRCA
  418.                 RRCA
  419.                 OR 0XC1
  420.                 LD D,A
  421.                 LD E,0XC0
  422.                 ADD HL,DE
  423.                 POP AF
  424.                 LD (HL),A
  425.                 POP HL
  426.                 POP DE
  427.                 INC D
  428.                 RET
  429.  
  430. SET_C_A         OUT (C),A
  431.                 RET
  432.  
  433. LOAD_CMOS       LD HL,0XC000
  434.                 LD D,0
  435. EDITCMOS1       EX DE,HL
  436.                 CALL READCMOS
  437.                 EX DE,HL
  438.                 LD (HL),E
  439.                 INC HL
  440.                 INC D
  441.                 LD A,0XF0
  442.                 CP D
  443.                 JR NZ,EDITCMOS1
  444.                 RET
  445.  
  446. SAVE_CMOS       LD HL,0XC000
  447.                 LD D,0
  448. SAVECMOS1       LD E,(HL)
  449.                 EX DE,HL
  450.                 CALL WRITECMOS
  451.                 EX DE,HL
  452.                 INC HL
  453.                 INC D
  454.                 LD A,0XF0
  455.                 CP D
  456.                 JR NZ,SAVECMOS1
  457.                 RET
  458.  
  459. ;НА ВХОДЕ: H-АДРЕС ЯЧЕЙКИ
  460. ;          L-ПРОЧИТАННОЕ ЗНАЧЕНИЕ
  461. READCMOS        DI
  462.                 PUSH BC
  463.                 LD BC,PENT_CONF
  464.                 LD A,CMOS_ON                    ;РАЗРЕШЕНИЕ ДОСТУПА К КМОСУ
  465.                 OUT (C),A
  466.                 LD B,HIGH (CMOS_SET_ADR)
  467.                 OUT (C),H
  468.                 LD B,HIGH (CMOS_RD_WR)
  469.                 IN L,(C)
  470.                 LD A,CMOS_OFF                   ;ЗАПРЕТ ДОСТУПА К КМОСУ
  471.                 LD B,HIGH (PENT_CONF)
  472.                 OUT (C),A
  473.                 POP BC
  474.                 LD A,L
  475.                 AND A
  476.                 RET
  477.  
  478. ;НА ВХОДЕ: H-АДРЕС ЯЧЕЙКИ
  479. ;          L-ЧТО ТУДА ЗАПИСАТЬ
  480. WRITECMOS       RST8 _CMOS_RW,_WRITE_CMOS
  481.                 RET
  482.  
  483. ;ЧТЕНИЕ ВЕРСИИ FPGA ИЛИ BOOTLOADER, ЕСЛИ ЭТО ПЕНТЕВА
  484. GET_VERS_EVO    LD C,L
  485.                 LD H,0XF0
  486.                 CALL WRITECMOS                  ;ПИШЕМ В АДРЕС 0XF0 ДЛЯ ПОЛУЧЕНИЯ ВЕРСИИ
  487.                 CALL READCMOS                   ;ЧИТАЕМ ОТВЕТ
  488.                 CP C                            ;СОВПАЛО С ТЕМ ЧТО ЗАПИСАНО, НЕ ПОДДЕРЖИВАЕТСЯ
  489.                 RET Z                           ;И ЭТО НЕ ПЕНТЕВА (ИЛИ ВЕРСИЯ FPGA СТАРАЯ). ВЫХОДИМ
  490.                 INC A                           ;ПРИШЕЛ 0XFF, ЗНАЧИТ ЧАСОВ НЕТУ
  491.                 RET Z                           ;ВЫХОДИМ
  492.                 DI
  493.                 DEC A                           ;ВОЗВРАЩАЕМ СЧИТАННОЕ ЗНАЧЕНИЕ
  494.                 PUSH DE
  495.                 LD (DE),A                       ;ПОЛОЖИЛИ В БУФЕР УЖЕ ПРОЧИТАННЫЙ БАЙТ
  496.                 INC DE
  497.                 LD B,0X0F                       ;ОСТАЛОСЬ ПРОЧИТАТЬ ОСТАЛЬНЫЕ ЕЩЕ 15 БАЙТ
  498. GVE1            INC H
  499.                 CALL READCMOS                   ;ЧИТАЕМ БАЙТ
  500.                 LD (DE),A
  501.                 INC DE
  502.                 DJNZ GVE1                       ;ЧИТАЕМ ПОКА ВСЕ БАЙТЫ НЕ КОНЧАТСЯ
  503.                 POP DE                          ;ПРОВЕРЯМ В БУФЕРЕ 12 БАЙТ ТЕКСТА
  504.                 LD H,D
  505.                 LD L,E
  506.                 LD B,0X0C                       ;ЕСЛИ ТЕКСТ КОРОЧЕ ИЩЕМ БАЙТ 0 (ПРИЗНАК КОНЦА ТЕКСТА)
  507. GVE2            LD A,(DE)
  508.                 AND A
  509.                 JR Z,GVE3
  510.                 INC DE
  511.                 DJNZ GVE2
  512. GVE3            LD BC,0X0C                      ;ЗАБРАЛИ ИЗ БУФЕРА 2 БАЙТА ДАТЫ В СПЕЦФОРМАТЕ
  513.                 ADD HL,BC
  514.                 LD C,(HL)
  515.                 INC HL
  516.                 LD B,(HL)
  517.                 EX DE,HL
  518.                 LD (HL)," "                     ;ДОБАВЛЯЕМ К ТЕКСТУ ПРОБЕЛ-РАЗДЕЛИТЕЛЬ
  519.                 INC HL
  520.  
  521. ;РАСПАКОВЩИК ДАТЫ
  522. UNVERS          LD A,C
  523.                 AND 0X1F                        ;НУЖНЫ 5 БИТ-ЧИСЛО МЕСЯЦА
  524.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА ДАТЫ
  525.                 SRL B
  526.                 RR C                            ;СДВИНУЛИ ДЛЯ ЦЕЛОСТНОСТИ НОМЕРА МЕСЯЦА
  527.                 LD A,C                          ;ВЗЯЛИ БИТЫ МЕСЯЦА
  528.                 RRCA
  529.                 RRCA
  530.                 RRCA
  531.                 RRCA                            ;СДВИНУЛИ В МЛАДШИЕ БИТЫ
  532.                 AND 0X0F                        ;НАМ НУЖНЫ ТОЛЬКО 4 БИТА МЕСЯЦА
  533.                 LD (HL),"."                     ;РАЗДЕЛИТЕЛЬНАЯ ТОЧКА
  534.                 INC HL
  535.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА МЕСЯЦА
  536.                 LD (HL),"."                     ;РАЗДЕЛИТЕЛЬНАЯ ТОЧКА
  537.                 INC HL
  538.                 LD (HL),"2"
  539.                 INC HL
  540.                 LD (HL),"0"                     ;ДОБАВИЛИ К ГОДУ ДВЕ ЦИФЕРКИ
  541.                 INC HL
  542.                 LD A,B                          ;ВЗЯЛИ НОМЕР ГОДА
  543.                 AND 0X3F                        ;НУЖНЫ ТОЛЬКО 6 БИТ
  544.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА ГОДА
  545.                 BIT 6,B                         ;ЕСЛИ БИТ 6 (СДВИНУТЫЙ БИТ 7) УСТАНОВЛЕН
  546.                 RET NZ  ;JR NZ,GVE4             ;ТО ЗАВЕРШАЕМ СТРОКУ
  547.                 EX DE,HL                        ;ИНАЧЕ ВЕРСИЯ БЕТА, О ЧЕМ ДОБАВЛЯЕМ ТЕКСТ В БУФЕР
  548.                 LD HL,TXT_BETA
  549.                 LD BC,5
  550.                 LDIR
  551.                 EX DE,HL
  552.                 RET
  553.  
  554. ;РАСПЕЧАТКА НА ЭКРАНЕ ВРЕМЕНИ, ДАТЫ И ДНЯ НЕДЕЛИ
  555. PRINTTIME       LD A,(ERS_FLAGS)
  556.                 AND M_CLOCK_ON
  557.                 RET Z                           ;ЧАСЫ НЕ ОБНАРУЖЕНЫ, ВЫХОДИМ НИЧЕГО НЕ ВЫВОДЯ
  558.                 LD H,0X0C
  559.                 CALL READCMOS
  560.                 AND 0X10
  561.                 RET Z                           ;ЕСЛИ ВРЕМЯ ЕЩЕ НЕ ОБНОВИЛОСЬ, ВЫХОДИМ НИЧЕГО НЕ ВЫВОДЯ
  562.                 LD H,CMOS_BYTE_01
  563.                 CALL READCMOS
  564.                 AND M_CLOCK_VIEW
  565.                 JR NZ,VIDEOMODE                 ;ОТОБРАЖЕНИЕ ВЫКЛЮЧЕНО, ВЫХОДИМ НИЧЕГО НЕ ВЫВОДЯ
  566.                 DI
  567.                 EXX
  568.                 LD BC,TXT_TIME                  ;ЧТЕНИЕ И ПРЕОБРАЗОВАНИЕ ВРЕМЕНИ
  569.                 LD H,4
  570.                 CALL READCMOS                   ;ПРОЧИТАЛИ ЧАСЫ
  571.                 CALL BYTE2TXT                   ;СКОНВЕРТИЛИ ЧАСЫ С УКЛАДКОЙ В БУФЕР
  572.                 LD A,(BC)
  573.                 XOR ':'-' '                     ;КОНВЕРСИЯ МИГАЮЩЕГО ДВОЕТОЧИЯ
  574.                 LD (BC),A
  575.                 INC BC
  576.                 LD H,2
  577.                 CALL READCMOS                   ;ПРОЧИТАЛИ МИНУТЫ
  578.                 CALL BYTE2TXT                   ;СКОНВЕРТИЛИ ЧАСЫ С УКЛАДКОЙ В БУФЕР
  579.                 LD A,(BC)
  580.                 XOR ':'-' '                     ;КОНВЕРСИЯ МИГАЮЩЕГО ДВОЕТОЧИЯ
  581.                 LD (BC),A
  582.                 INC BC
  583.                 LD H,0
  584.                 CALL READCMOS                   ;ПРОЧИТАЛИ СЕКУНДЫ
  585.                 CALL BYTE2TXT
  586.                 LD BC,TXT_DATA                  ;ДАЛЕЕ ЧТЕНИЕ И ПРЕОБРАЗОВАНИЕ ДАТЫ
  587.                 LD H,7
  588.                 CALL READCMOS
  589.                 CALL BYTE2TXT
  590.                 INC BC
  591.                 LD H,8
  592.                 CALL READCMOS
  593.                 CALL BYTE2TXT
  594.                 INC BC
  595.                 LD H,9
  596.                 CALL READCMOS
  597.                 CALL BYTE2TXT
  598.                 LD HL,BUFF_TIME                 ;ПЕЧАТЕМ ВРЕМЯ ИЗ БУФЕРА
  599.                 RST8 _PRINT_MESSAGE
  600.                 EXX
  601.  
  602. VIDEOMODE       DI
  603.                 LD HL,0XF003
  604.                 LD BC,PENT_CONF
  605.                 LD A,CMOS_ON                    ;РАЗРЕШЕНИЕ ДОСТУПА К КМОСУ
  606.                 OUT (C),A
  607.                 LD B,HIGH (CMOS_SET_ADR)
  608.                 OUT (C),H
  609.                 LD B,HIGH (CMOS_RD_WR)
  610.                 OUT (C),L
  611.                 LD A,CMOS_OFF                   ;ЗАПРЕТ ДОСТУПА К КМОСУ
  612.                 LD B,HIGH (PENT_CONF)
  613.                 OUT (C),A
  614.                 CALL READCMOS
  615.                 LD DE,TV_VGA
  616.                 PUSH AF
  617.                 AND %00110000
  618.                 RRCA
  619.                 RRCA
  620.                 LD C,A
  621.                 LD B,0
  622.                 LD HL,TXT_HZ
  623.                 ADD HL,BC
  624.                 LDI
  625.                 LDI
  626.                 LDI
  627.                 LDI
  628.                 INC DE
  629.                 POP AF
  630.                 BIT 0,A
  631.                 LD HL,TXT_TVVGA
  632.                 JR Z,VMODE1
  633.                 INC HL
  634.                 INC HL
  635.                 INC HL
  636. VMODE1          LDI
  637.                 LDI
  638.                 LDI
  639.                 LD HL,TXT_VMODE                 ;ПЕЧАТЕМ ТЕКУЩИЙ ВИДЕО РЕЖИМ
  640.                 RST8 _PRINT_MESSAGE
  641.                 RET
  642.  
  643. ;ПЕРЕВОД "A" В ДЕСЯТИЧКУ И В ТЕКСТ
  644. A2TXT           PUSH HL
  645.                 LD L,A
  646.                 LD H,0
  647.                 LD DE,10
  648.                 XOR A
  649.                 DEC A
  650.                 INC A
  651.                 SBC HL,DE
  652.                 JR NC,$-3
  653.                 ADD HL,DE
  654.                 ADD A,"0"
  655.                 LD D,A
  656.                 LD A,L
  657.                 ADD A,"0"
  658.                 POP HL
  659.                 LD (HL),D
  660.                 INC HL
  661.                 LD (HL),A
  662.                 INC HL
  663.                 RET
  664.  
  665. BYTE2TXT        LD L,A
  666.                 LD H,"0"
  667.                 RRCA
  668.                 RRCA
  669.                 RRCA
  670.                 RRCA
  671.                 AND 0X0F
  672.                 ADD A,H
  673.                 LD (BC),A
  674.                 INC BC
  675.                 LD A,L
  676.                 AND 0X0F
  677.                 ADD A,H
  678.                 LD (BC),A
  679.                 INC BC
  680.                 RET
  681.  
  682. TXTMODE_ON      PEC_ON M_SHADOW_BF
  683.                 LD BC,0XFF77
  684.                 LD A,0XA6
  685.                 CALL SET_C_A
  686.                 PEC_OFF M_SHADOW_BF
  687.                 RET
  688.  
  689. TXTMODE_OFF     PEC_ON M_SHADOW_BF
  690.                 LD BC,0XFF77
  691.                 LD A,0XA3
  692.                 CALL SET_C_A
  693.                 PEC_OFF M_SHADOW_BF
  694.                 RET
  695.