Subversion Repositories pentevo

Rev

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

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