Subversion Repositories pentevo

Rev

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

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