Subversion Repositories pentevo

Rev

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

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