Subversion Repositories pentevo

Rev

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

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