Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 11.09.2013 savelij
  3.  
  4. DRV_VAR         EQU 0X4000
  5.  
  6.                 PHASE 0
  7.                 LD BC,WIN_A0
  8.                 LD A,P_RST8
  9.                 JR ADR_SEL_ROM
  10.  
  11.                 DUPL ADR_SEL_ROM-$,0XFF
  12.                 OUT (C),A
  13.                 NOP
  14.                 RET
  15.  
  16.                 DUPL 0X0030-$,0XFF
  17.                 JP CALL2PAGE
  18.  
  19.                 DUPL 0X0038-$,0XFF              ;0038
  20.                 PUSH HL
  21.                 LD HL,(ADR_INT)
  22.                 EX (SP),HL
  23.                 RET
  24.  
  25.                 EI
  26.                 RET
  27.  
  28.                 DUPL 0X00FF-$,0XFF
  29.                 DW 0X0038
  30.  
  31. ;============================SD КАРТА УДАЛЕНА============================
  32. SDCARD_LOST     DB 0X08,0X08,0X04,0X10,0X17,0,%00000000,0
  33.                 DW 0,0
  34.                 DW TXT_SDLOST,0,0,0
  35. TXT_SDLOST      DB 0X17,0XFF,0X0D,3,"SD card lost",0X0D,3,"Press RESET",0
  36. ;============================SD КАРТА УДАЛЕНА============================
  37.  
  38. ;========================МЫШИНЫЙ КУРСОР В ДВУХ ВИДАХ=====================
  39. SPRAR           DB 0X3F,0X00,0X1F,0X40,0X0F,0X60,0X07,0X50,0X03,0X48,0X01,0X4C,0X01,0X70,0X07,0X00
  40. SPRAR2          DB 0X3F,0X00,0X1F,0X40,0X0F,0X60,0X07,0X70,0X03,0X78,0X01,0X7C,0X01,0X70,0X07,0X00
  41. ;========================МЫШИНЫЙ КУРСОР В ДВУХ ВИДАХ=====================
  42.  
  43.                 DUPL 0X0200-$,0XFF
  44. CHARS           binclude altstd.bin
  45.  
  46. BUFTSC          DW 0X4000,0X4100,0X4200,0X4300,0X4400,0X4500,0X4600,0X4700
  47.                 DW 0X4020,0X4120,0X4220,0X4320,0X4420,0X4520,0X4620,0X4720
  48.                 DW 0X4040,0X4140,0X4240,0X4340,0X4440,0X4540,0X4640,0X4740
  49.                 DW 0X4060,0X4160,0X4260,0X4360,0X4460,0X4560,0X4660,0X4760
  50.                 DW 0X4080,0X4180,0X4280,0X4380,0X4480,0X4580,0X4680,0X4780
  51.                 DW 0X40A0,0X41A0,0X42A0,0X43A0,0X44A0,0X45A0,0X46A0,0X47A0
  52.                 DW 0X40C0,0X41C0,0X42C0,0X43C0,0X44C0,0X45C0,0X46C0,0X47C0
  53.                 DW 0X40E0,0X41E0,0X42E0,0X43E0,0X44E0,0X45E0,0X46E0,0X47E0
  54.                                                                      
  55.                 DW 0X4800,0X4900,0X4A00,0X4B00,0X4C00,0X4D00,0X4E00,0X4F00
  56.                 DW 0X4820,0X4920,0X4A20,0X4B20,0X4C20,0X4D20,0X4E20,0X4F20
  57.                 DW 0X4840,0X4940,0X4A40,0X4B40,0X4C40,0X4D40,0X4E40,0X4F40
  58.                 DW 0X4860,0X4960,0X4A60,0X4B60,0X4C60,0X4D60,0X4E60,0X4F60
  59.                 DW 0X4880,0X4980,0X4A80,0X4B80,0X4C80,0X4D80,0X4E80,0X4F80
  60.                 DW 0X48A0,0X49A0,0X4AA0,0X4BA0,0X4CA0,0X4DA0,0X4EA0,0X4FA0
  61.                 DW 0X48C0,0X49C0,0X4AC0,0X4BC0,0X4CC0,0X4DC0,0X4EC0,0X4FC0
  62.                 DW 0X48E0,0X49E0,0X4AE0,0X4BE0,0X4CE0,0X4DE0,0X4EE0,0X4FE0
  63.                                                                      
  64.                 DW 0X5000,0X5100,0X5200,0X5300,0X5400,0X5500,0X5600,0X5700
  65.                 DW 0X5020,0X5120,0X5220,0X5320,0X5420,0X5520,0X5620,0X5720
  66.                 DW 0X5040,0X5140,0X5240,0X5340,0X5440,0X5540,0X5640,0X5740
  67.                 DW 0X5060,0X5160,0X5260,0X5360,0X5460,0X5560,0X5660,0X5760
  68.                 DW 0X5080,0X5180,0X5280,0X5380,0X5480,0X5580,0X5680,0X5780
  69.                 DW 0X50A0,0X51A0,0X52A0,0X53A0,0X54A0,0X55A0,0X56A0,0X57A0
  70.                 DW 0X50C0,0X51C0,0X52C0,0X53C0,0X54C0,0X55C0,0X56C0,0X57C0
  71.                 DW 0X50E0,0X51E0,0X52E0,0X53E0,0X54E0,0X55E0,0X56E0,0X57E0
  72.                                                                      
  73. BUFTSC1         DW 0XC000,0XC100,0XC200,0XC300,0XC400,0XC500,0XC600,0XC700
  74.                 DW 0XC020,0XC120,0XC220,0XC320,0XC420,0XC520,0XC620,0XC720
  75.                 DW 0XC040,0XC140,0XC240,0XC340,0XC440,0XC540,0XC640,0XC740
  76.                 DW 0XC060,0XC160,0XC260,0XC360,0XC460,0XC560,0XC660,0XC760
  77.                 DW 0XC080,0XC180,0XC280,0XC380,0XC480,0XC580,0XC680,0XC780
  78.                 DW 0XC0A0,0XC1A0,0XC2A0,0XC3A0,0XC4A0,0XC5A0,0XC6A0,0XC7A0
  79.                 DW 0XC0C0,0XC1C0,0XC2C0,0XC3C0,0XC4C0,0XC5C0,0XC6C0,0XC7C0
  80.                 DW 0XC0E0,0XC1E0,0XC2E0,0XC3E0,0XC4E0,0XC5E0,0XC6E0,0XC7E0
  81.                                                                      
  82.                 DW 0XC800,0XC900,0XCA00,0XCB00,0XCC00,0XCD00,0XCE00,0XCF00
  83.                 DW 0XC820,0XC920,0XCA20,0XCB20,0XCC20,0XCD20,0XCE20,0XCF20
  84.                 DW 0XC840,0XC940,0XCA40,0XCB40,0XCC40,0XCD40,0XCE40,0XCF40
  85.                 DW 0XC860,0XC960,0XCA60,0XCB60,0XCC60,0XCD60,0XCE60,0XCF60
  86.                 DW 0XC880,0XC980,0XCA80,0XCB80,0XCC80,0XCD80,0XCE80,0XCF80
  87.                 DW 0XC8A0,0XC9A0,0XCAA0,0XCBA0,0XCCA0,0XCDA0,0XCEA0,0XCFA0
  88.                 DW 0XC8C0,0XC9C0,0XCAC0,0XCBC0,0XCCC0,0XCDC0,0XCEC0,0XCFC0
  89.                 DW 0XC8E0,0XC9E0,0XCAE0,0XCBE0,0XCCE0,0XCDE0,0XCEE0,0XCFE0
  90.                                                                      
  91.                 DW 0XD000,0XD100,0XD200,0XD300,0XD400,0XD500,0XD600,0XD700
  92.                 DW 0XD020,0XD120,0XD220,0XD320,0XD420,0XD520,0XD620,0XD720
  93.                 DW 0XD040,0XD140,0XD240,0XD340,0XD440,0XD540,0XD640,0XD740
  94.                 DW 0XD060,0XD160,0XD260,0XD360,0XD460,0XD560,0XD660,0XD760
  95.                 DW 0XD080,0XD180,0XD280,0XD380,0XD480,0XD580,0XD680,0XD780
  96.                 DW 0XD0A0,0XD1A0,0XD2A0,0XD3A0,0XD4A0,0XD5A0,0XD6A0,0XD7A0
  97.                 DW 0XD0C0,0XD1C0,0XD2C0,0XD3C0,0XD4C0,0XD5C0,0XD6C0,0XD7C0
  98.                 DW 0XD0E0,0XD1E0,0XD2E0,0XD3E0,0XD4E0,0XD5E0,0XD6E0,0XD7E0
  99.  
  100. ;АДРЕСА НАЧАЛ СТРОК МОНОХРОМА ТЕКСТМОДА (ЛЕВЫЙ, ПРАВЫЙ)
  101. TBUFTSC         DW 0XC1C0,0XD1C0        ;00
  102.                 DW 0XC200,0XD200        ;01
  103.                 DW 0XC240,0XD240        ;02
  104.                 DW 0XC280,0XD280        ;03
  105.                 DW 0XC2C0,0XD2C0        ;04
  106.                 DW 0XC300,0XD300        ;05
  107.                 DW 0XC340,0XD340        ;06
  108.                 DW 0XC380,0XD380        ;07
  109.                 DW 0XC3C0,0XD3C0        ;08
  110.                 DW 0XC400,0XD400        ;09
  111.                 DW 0XC440,0XD440        ;10
  112.                 DW 0XC480,0XD480        ;11
  113.                 DW 0XC4C0,0XD4C0        ;12
  114.                 DW 0XC500,0XD500        ;13
  115.                 DW 0XC540,0XD540        ;14
  116.                 DW 0XC580,0XD580        ;15
  117.                 DW 0XC5C0,0XD5C0        ;16
  118.                 DW 0XC600,0XD600        ;17
  119.                 DW 0XC640,0XD640        ;18
  120.                 DW 0XC680,0XD680        ;19
  121.                 DW 0XC6C0,0XD6C0        ;20
  122.                 DW 0XC700,0XD700        ;21
  123.                 DW 0XC740,0XD740        ;22
  124.                 DW 0XC780,0XD780        ;23
  125.                 DW 0XC7C0,0XD7C0        ;24
  126.  
  127. ;АДРЕСА НАЧАЛ СТРОК ЦВЕТА ТЕКСТМОДА (ЛЕВЫЙ, ПРАВЫЙ)
  128. TBUFTSC_C       DW 0XF1C0,0XE1C1        ;00
  129.                 DW 0XF200,0XE201        ;01
  130.                 DW 0XF240,0XE241        ;02
  131.                 DW 0XF280,0XE281        ;03
  132.                 DW 0XF2C0,0XE2C1        ;04
  133.                 DW 0XF300,0XE301        ;05
  134.                 DW 0XF340,0XE341        ;06
  135.                 DW 0XF380,0XE381        ;07
  136.                 DW 0XF3C0,0XE3C1        ;08
  137.                 DW 0XF400,0XE401        ;09
  138.                 DW 0XF440,0XE441        ;10
  139.                 DW 0XF480,0XE481        ;11
  140.                 DW 0XF4C0,0XE4C1        ;12
  141.                 DW 0XF500,0XE501        ;13
  142.                 DW 0XF540,0XE541        ;14
  143.                 DW 0XF580,0XE581        ;15
  144.                 DW 0XF5C0,0XE5C1        ;16
  145.                 DW 0XF600,0XE601        ;17
  146.                 DW 0XF640,0XE641        ;18
  147.                 DW 0XF680,0XE681        ;19
  148.                 DW 0XF6C0,0XE6C1        ;20
  149.                 DW 0XF700,0XE701        ;21
  150.                 DW 0XF740,0XE741        ;22
  151.                 DW 0XF780,0XE781        ;23
  152.                 DW 0XF7C0,0XE7C1        ;24
  153.  
  154. RD_SET_PAL      LD HL,(ADR_INT)
  155.                 PUSH HL
  156.                 LD HL,EI_RET
  157.                 LD (ADR_INT),HL
  158.                 LD DE,0XAF0F                    ;ДАЛЬШЕ СОХРАНЯЕМ ТЕКУЩУЮ ПАЛИТРУ
  159.                 LD BC,0XBD77
  160.                 OUT (C),D                       ;ВКЛЮЧЕНИЕ ТЕКСТМОДА
  161.                 LD HL,(ADR_PALITRA)
  162.                 LD BC,RD_PALITRA
  163.                 EI
  164.                 HALT
  165.                 DI
  166. NMISERV003      LD A,E
  167.                 BIT 3,E
  168.                 OUT (0XFE),A
  169.                 JR Z,NMISERV004
  170.                 OUT (0XF6),A
  171. NMISERV004      IN A,(C)
  172.                 LD (HL),A
  173.                 INC HL
  174.                 DEC E
  175.                 JP P,NMISERV003                 ;ПАЛИТРУ СОХРАНИЛИ
  176.                 LD HL,MAGIC_PAL
  177.                 LD E,0X0F
  178. SETPAL1         LD A,E
  179.                 BIT 3,E
  180.                 OUT (0XFE),A
  181.                 JR Z,$+4
  182.                 OUT (0XF6),A
  183.                 LD A,(HL)
  184.                 INC HL
  185.                 OR %00001100
  186.                 OUT (0XFF),A
  187.                 DEC E
  188.                 JP P,SETPAL1
  189.                 LD BC,0XFF77
  190.                 OUT (C),D
  191.                 POP HL
  192.                 LD (ADR_INT),HL
  193.                 RET
  194.  
  195. MAGIC_PAL       DB 0X0C,0X2D,0X4E,0X6F,0X9C,0XBD,0XDE,0XFF
  196.                 DB 0XEC,0XED,0XEE,0XEF,0XFC,0XFD,0XFE,0XFF
  197.  
  198. ;ПАЛИТРА ДЛЯ SPECTRUM РЕЖИМА
  199. TRSTPAL         DB 0X00,0X21,0X42,0X63,0X90,0XB1,0XD2,0XF3
  200.                 DB 0XE0,0XE1,0XE2,0XE3,0XF0,0XF1,0XF2,0XF3
  201.  
  202. SETUP_PAL1      LD HL,(RREG_L)
  203.                 LD DE,EXTERN_PAL-CPU2
  204.                 LD BC,0X10
  205.                 PCALL LDIR_BYTES,P_RST8
  206.                 LD HL,EXTERN_PAL
  207.                 JR RESTOREPAL1
  208.  
  209. SETUP_PAL       LD A,(RREG_A)
  210.                 AND A
  211.                 JR NZ,SETUP_PAL1
  212.                 LD HL,TRSTPAL
  213. RESTOREPAL1     LD (ADR_PALITRA),HL
  214. RESTORE_PAL     LD HL,(ADR_INT)
  215.                 PUSH HL
  216.                 LD HL,EI_RET
  217.                 LD (ADR_INT),HL
  218.                 LD HL,(ADR_PALITRA)
  219.                 LD DE,0XAF0F
  220.                 LD BC,0XBD77                    ;ДОСТУП К ПАЛИТРЕ
  221.                 OUT (C),D                       ;вкл.PAL
  222.                 EI
  223.                 HALT
  224.                 DI
  225. SETPAL0         LD A,E
  226.                 BIT 3,E
  227.                 OUT (0XFE),A
  228.                 JR Z,$+4
  229.                 OUT (0XF6),A
  230.                 LD A,(HL)
  231.                 INC HL
  232.                 OR %00001100
  233.                 OUT (0XFF),A
  234.                 DEC E
  235.                 JP P,SETPAL0
  236.                 LD BC,0XFF77
  237.                 OUT (C),D
  238.                 POP HL
  239.                 LD (ADR_INT),HL
  240.                 RET
  241.  
  242. PRINT_REGS      LD E,(IX)
  243.                 INC IX
  244.                 LD D,(IX)
  245.                 INC IX
  246. PRTT_HL_        LD A,H
  247.                 CALL PRTT_A
  248.                 LD A,L
  249. PRTT_A          PUSH AF
  250.                 RRCA
  251.                 RRCA
  252.                 RRCA
  253.                 RRCA
  254.                 CALL PRTT_A_1
  255.                 POP AF
  256. PRTT_A_1        AND 0X0F
  257.                 CP 0X0A
  258.                 CCF
  259.                 ADC A,"0"
  260.                 DAA
  261.                 AND 0X7F
  262.                 JP PRTT_A_;PCALL PRTT_A_,P_ADDONS
  263. ;               RET
  264.  
  265. PRINT_REG       LD E,(IX)
  266.                 INC IX
  267.                 LD D,(IX)
  268.                 INC IX
  269.                 JR PRTT_A
  270.  
  271. COORDINAT_REGS  DW Y_OFFSET+1+(X_OFFSET+3)*0X100        ;SP
  272.                 DW Y_OFFSET+1+(X_OFFSET+3+9)*0X100      ;PC
  273.                 DW Y_OFFSET+2+(X_OFFSET+3)*0X100        ;IR
  274.                 DW Y_OFFSET+3+(X_OFFSET+3)*0X100        ;AF
  275.                 DW Y_OFFSET+3+(X_OFFSET+3+9)*0X100      ;AF'
  276.                 DW Y_OFFSET+4+(X_OFFSET+3)*0X100        ;BC
  277.                 DW Y_OFFSET+4+(X_OFFSET+3+9)*0X100      ;BC'
  278.                 DW Y_OFFSET+5+(X_OFFSET+3)*0X100        ;DE
  279.                 DW Y_OFFSET+5+(X_OFFSET+3+9)*0X100      ;DE'
  280.                 DW Y_OFFSET+6+(X_OFFSET+3)*0X100        ;HL
  281.                 DW Y_OFFSET+6+(X_OFFSET+3+9)*0X100      ;HL'
  282.                 DW Y_OFFSET+7+(X_OFFSET+3)*0X100        ;IX
  283.                 DW Y_OFFSET+7+(X_OFFSET+3+9)*0X100      ;IY
  284.                 DW Y_OFFSET+0X0A+(X_OFFSET+6)*0X100     ;CPU3 MAP0
  285.                 DW Y_OFFSET+0X0A+(X_OFFSET+6+3)*0X100   ;CPU3 MAP1
  286.                 DW Y_OFFSET+0X0B+(X_OFFSET+6)*0X100     ;CPU2 MAP0
  287.                 DW Y_OFFSET+0X0B+(X_OFFSET+6+3)*0X100   ;CPU2 MAP1
  288.                 DW Y_OFFSET+0X0C+(X_OFFSET+6)*0X100     ;CPU1 MAP0
  289.                 DW Y_OFFSET+0X0C+(X_OFFSET+6+3)*0X100   ;CPU1 MAP1
  290.                 DW Y_OFFSET+0X0D+(X_OFFSET+6)*0X100     ;CPU0 MAP0
  291.                 DW Y_OFFSET+0X0D+(X_OFFSET+6+3)*0X100   ;CPU0 MAP1
  292.                 DW Y_OFFSET+0X0F+(X_OFFSET+5)*0X100     ;PORT 7FFD
  293.                 DW Y_OFFSET+0X10+(X_OFFSET+5)*0X100     ;PORT EFF7
  294.                 DW Y_OFFSET+0X11+(X_OFFSET+0)*0X100     ;PORT XX77
  295.                 DW Y_OFFSET+0X11+(X_OFFSET+0+5)*0X100   ;BYTE IN PORT XX77
  296.                 DW Y_OFFSET+0X12+(X_OFFSET+5)*0X100     ;PORT BF
  297.                 DW Y_OFFSET+0X14+(X_OFFSET+11)*0X100    ;BIT DOS ENABLE
  298.  
  299. PRT_PORTREGS    LD A,MAGIC_COLOR
  300.                 LD (TXT_COLOR),A
  301.                 LD IX,COORDINAT_REGS
  302.                 LD HL,(NMI_SAVE_SP)
  303.                 CALL PRINT_REGS                 ;SP
  304.                 LD HL,(NADRRET_L)
  305.                 CALL PRINT_REGS                 ;PC
  306.                 LD A,(NREG_I)
  307.                 LD H,A
  308.                 LD A,(NREG_R)
  309.                 LD L,A
  310.                 CALL PRINT_REGS                 ;IR
  311.                 LD HL,(NREG_F)
  312.                 CALL PRINT_REGS                 ;AF
  313.                 LD HL,(NREG_FF)
  314.                 CALL PRINT_REGS                 ;AF'
  315.                 LD HL,(NREG_C)
  316.                 CALL PRINT_REGS                 ;BC
  317.                 LD HL,(NREG_CC)
  318.                 CALL PRINT_REGS                 ;BC'
  319.                 LD HL,(NREG_E)
  320.                 CALL PRINT_REGS                 ;DE
  321.                 LD HL,(NREG_EE)
  322.                 CALL PRINT_REGS                 ;DE'
  323.                 LD HL,(NREG_L)
  324.                 CALL PRINT_REGS                 ;HL
  325.                 LD HL,(NREG_LL)
  326.                 CALL PRINT_REGS                 ;HL'
  327.                 LD HL,(NREG_IXL)
  328.                 CALL PRINT_REGS                 ;IX
  329.                 LD HL,(NREG_IYL)
  330.                 CALL PRINT_REGS                 ;IY
  331.                 LD A,(B0_CPU3)
  332.                 CALL PRINT_REG                  ;CPU3 MAP0
  333.                 LD A,(B1_CPU3)
  334.                 CALL PRINT_REG                  ;CPU3 MAP1
  335.                 LD A,(B0_CPU2)
  336.                 CALL PRINT_REG                  ;CPU2 MAP0
  337.                 LD A,(B1_CPU2)
  338.                 CALL PRINT_REG                  ;CPU2 MAP1
  339.                 LD A,(B0_CPU1)
  340.                 CALL PRINT_REG                  ;CPU1 MAP0
  341.                 LD A,(B1_CPU1)
  342.                 CALL PRINT_REG                  ;CPU1 MAP1
  343.                 LD A,(B0_CPU0)
  344.                 CALL PRINT_REG                  ;CPU0 MAP0
  345.                 LD A,(B1_CPU0)
  346.                 CALL PRINT_REG                  ;CPU0 MAP1
  347.                 LD A,(N_7FFD)
  348.                 CALL PRINT_REG                  ;PORT 7FFD
  349.                 LD A,(N_EFF7)
  350.                 CALL PRINT_REG                  ;PORT EFF7
  351.                 LD A,(N_77)
  352.                 AND %11100000
  353.                 RRCA
  354.                 LD B,A
  355.                 RRCA
  356.                 RRCA
  357.                 RRCA
  358.                 RRCA
  359.                 OR B
  360.                 OR 0XBC
  361.                 CALL PRINT_REG                  ;PORT XX77
  362.                 LD A,(N_77)
  363.                 AND 0X0F
  364.                 CALL PRINT_REG                  ;BYTE IN PORT XX77
  365.                 LD A,(N_BF)
  366.                 CALL PRINT_REG                  ;PORT BF
  367.                 LD E,(IX)
  368.                 INC IX
  369.                 LD D,(IX)
  370.                 LD A,(N_77)
  371.                 AND 0X10
  372.                 RRCA
  373.                 RRCA
  374.                 RRCA
  375.                 RRCA
  376.                 ADD A,"0"
  377.                 JP PRTT_A_;PCALL PRTT_A_,P_ADDONS               ;BIT DOS ENABLE
  378. ;               RET
  379.  
  380. ;УСТАНОВКА РЕЖИМОВ
  381. SET_MODE        LD A,(RREG_A)
  382. ISET_MODE       AND A
  383.                 JR Z,SET_MODE4
  384.                 LD E,A
  385.                 LD (TEK_MODES),A                ;СОХРАНИЛИ УСТАНАВЛИВАЕМЫЕ РЕЖИМЫ
  386.                 AND 0X0F                        ;ВЫДЕЛИЛИ БИТЫ РЕЖИМА ЭКРАНА
  387.                 JR Z,SET_MODE2
  388. ;УСТАНОВКА РЕЖИМОВ ЭКРАНА
  389.                 DEC A
  390.                 LD D,3                          ;ZX SCREEN
  391.                 JR Z,SET_MODE3                  ;ЕСЛИ 0 ТО РЕЖИМ ЭКРАНА НЕ МЕНЯЕМ
  392.                 DEC A
  393.                 LD D,7                          ;TEXTMOD В ОДНОЙ СТРАНИЦЕ
  394.                 JR NZ,SET_MODE2
  395. SET_MODE3       LD A,(B_PORT77)
  396.                 AND 0XF8
  397.                 OR D
  398.                 LD (B_PORT77),A                 ;УСТАНОВИЛИ ВИДЕО РЕЖИМ В ПОРТУ 77
  399. SET_MODE2       LD A,E
  400.                 RRCA
  401.                 RRCA
  402.                 RRCA
  403.                 RRCA
  404.                 LD E,A                          ;СЕЙЧАС БИТЫ 1-0 СОДЕРЖАТ ТУРБО РЕЖИМ
  405.                 AND 3                           ;ВЗЯЛИ БИТЫ ТУРБОРЕЖИМА
  406.                 JR Z,SET_MODE1                  ;ЕСЛИ 0 ТО РЕЖИМ ТУРБО НЕ МЕНЯЕМ
  407. ;СМЕНА ТУРБОРЕЖИМА
  408.                 LD D,A
  409.                 EXX
  410.                 DEC A                           ;1
  411.                 LD HL,0X0010                    ;TURBO 3,5 MHZ
  412.                 LD DE,0X0080
  413.                 JR Z,SET_MODE5
  414.                 DEC A                           ;2
  415.                 LD HL,0X0000                    ;TURBO 7,0 MHZ
  416.                 LD DE,0X0000
  417.                 JR Z,SET_MODE5
  418.                 LD HL,0X0800                    ;3
  419.                 LD DE,0X8000                    ;TURBO 14 MHZ
  420. SET_MODE5       LD A,(R_EFF7)
  421.                 AND %11101111
  422.                 OR L
  423.                 LD (R_EFF7),A                   ;УСТАНОВИЛИ ТУРБО ДЛЯ ПОРТА EFF7
  424.                 LD A,(B_PORT77)
  425.                 AND %11110111
  426.                 OR H
  427.                 LD (B_PORT77),A                 ;УСТАНОВИЛИ ТУРБО РЕЖИМ ДЛЯ ПОРТА 77
  428.                 LD H,CMOS_BYTE_01
  429.                 CALL READCMOS
  430.                 AND %01111100
  431.                 OR E
  432.                 LD L,A
  433.                 CALL IWRITECMOS
  434.                 LD H,CMOS_BYTE_00
  435.                 CALL READCMOS
  436.                 OR D
  437.                 LD L,A
  438.                 CALL IWRITECMOS
  439.                 EXX
  440. SET_MODE1       LD A,E
  441.                 RRCA
  442.                 RRCA
  443.                 AND 3                           ;ВЫДЕЛИЛИ БИТЫ РЕЖИМА ПАМЯТИ
  444.                 JR Z,SET_MODE4                  ;ЕСЛИ 0 ТО РЕЖИМ ПАМЯТИ НЕ МЕНЯЕМ
  445. ;СМЕНА РЕЖИМА ПАМЯТИ
  446.                 DEC A
  447.                 LD D,A
  448.                 LD H,CMOS_BYTE_01
  449.                 CALL READCMOS
  450.                 AND 0XFC
  451.                 OR D
  452.                 LD L,A
  453.                 JP IWRITECMOS
  454.  
  455. SET_MODE4       LD A,(TEK_MODES)
  456.                 LD (RREG_A),A
  457.                 RET
  458.  
  459. ;ДЕФОЛТНЫЕ ЗНАЧЕНИЯ ДЛЯ В КМОС
  460. CMOS_DEFAULT    DB 0X00,0X02,0X00
  461. ECMOS_DEFAULT
  462.  
  463.                 include tape.a80
  464.                 include ay_printer.a80
  465.                 include txtmode_proc.a80
  466.                 include window.a80
  467.                 include selector.a80
  468.                 include input_keys.a80
  469.                 include mouse.a80
  470.                 include file_browser.a80
  471.                 include call_cmos.a80
  472.  
  473.                 DUPL 0X3FF8-$,0XFF
  474.                 DB "ADDONS"
  475.                 DW DATA_VERS
  476.                 DEPHASE
  477.