Subversion Repositories pentevo

Rev

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

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