Subversion Repositories pentevo

Rev

Rev 1031 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ; LAST UPDATE: 12.02.2024 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      IN A,(0xFF)
  161.                 AND %00111111
  162.                 PUSH AF
  163.                 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. .L3             LD A,E
  176.                 BIT 3,E
  177.                 OUT (0xFE),A
  178.                 JR Z,.L4
  179.                 OUT (0xF6),A
  180. .L4             IN A,(C)
  181.                 LD (HL),A
  182.                 INC HL
  183.                 DEC E
  184.                 JP P,.L3                        ; палитру сохранили
  185.                 LD HL,MAGIC_PAL
  186.                 LD E,0x0F
  187. .L1             LD A,E
  188.                 BIT 3,E
  189.                 OUT (0xFE),A
  190.                 JR Z,.L2
  191.                 OUT (0xF6),A
  192. .L2             LD A,(HL)
  193.                 INC HL
  194.                 OR %00001100
  195.                 OUT (0xFF),A
  196.                 DEC E
  197.                 JP P,.L1
  198.                 LD BC,0xFF77
  199.                 OUT (C),D
  200.                 POP HL
  201.                 LD (ADR_INT),HL
  202.                 POP AF
  203.                 OUT (0xFF),A
  204.                 RET
  205.  
  206. MAGIC_PAL       DB 0x0C,0x2D,0x4E,0x6F,0x9C,0xBD,0xDE,0xFF
  207.                 DB 0xEC,0xED,0xEE,0xEF,0xFC,0xFD,0xFE,0xFF
  208.  
  209. ; палитра для SPECTRUM режима
  210. TRSTPAL         DB 0x00,0x21,0x42,0x63,0x90,0xB1,0xD2,0xF3
  211.                 DB 0xE0,0xE1,0xE2,0xE3,0xF0,0xF1,0xF2,0xF3
  212.  
  213. SETUP_PAL1      LD HL,(RREG_L)
  214.                 LD DE,EXTERN_PAL-CPU6
  215.                 LD BC,0x10
  216.         ROMCALL LDIR_BYTES,ROM_RST83
  217.                 LD HL,EXTERN_PAL
  218.                 JR RESTOREPAL1
  219.  
  220. SETUP_PAL       LD A,(RREG_A)
  221.                 AND A
  222.                 JR NZ,SETUP_PAL1
  223.                 LD HL,TRSTPAL
  224. RESTOREPAL1     LD (ADR_PALITRA),HL
  225. RESTORE_PAL     IN A,(0xFF)
  226.                 AND %00111111
  227.                 PUSH AF
  228.                 LD HL,(ADR_INT)
  229.                 PUSH HL
  230.                 LD HL,EI_RET
  231.                 LD (ADR_INT),HL
  232.                 LD HL,(ADR_PALITRA)
  233.                 LD DE,0xAF0F
  234.                 LD BC,0xBD77                    ; доступ к палитре
  235.                 OUT (C),D                       ; вкл.PAL
  236.                 EI
  237.                 HALT
  238.                 DI
  239. .L1             LD A,E
  240.                 BIT 3,E
  241.                 OUT (0xFE),A
  242.                 JR Z,$+4
  243.                 OUT (0xF6),A
  244.                 LD A,(HL)
  245.                 INC HL
  246.                 OR %00001100
  247.                 OUT (0xFF),A
  248.                 DEC E
  249.                 JP P,.L1
  250.                 LD BC,0xFF77
  251.                 OUT (C),D
  252.                 POP HL
  253.                 LD (ADR_INT),HL
  254.                 POP AF
  255.                 OUT (0xFF),A
  256.                 RET
  257.  
  258. PRINT_REGS      LD E,(IX)
  259.                 INC IX
  260.                 LD D,(IX)
  261.                 INC IX
  262. PRTT_HL_        LD A,H
  263.                 CALL PRTT_A
  264.                 LD A,L
  265. PRTT_A          PUSH AF
  266.                 RRCA
  267.                 RRCA
  268.                 RRCA
  269.                 RRCA
  270.                 CALL PRTT_A_1
  271.                 POP AF
  272. PRTT_A_1        AND 0x0F
  273.                 CP 0x0A
  274.                 CCF
  275.                 ADC A,"0"
  276.                 DAA
  277.                 AND 0x7F
  278.                 JP PRTT_A_
  279.  
  280. PRINT_REG       LD E,(IX)
  281.                 INC IX
  282.                 LD D,(IX)
  283.                 INC IX
  284.                 JR PRTT_A
  285.  
  286. COORDINAT_REGS  DW Y_OFFSET +  1 + (X_OFFSET + 3      ) * 0x100 ; SP
  287.                 DW Y_OFFSET +  1 + (X_OFFSET + 3 +  9 ) * 0x100 ; PC
  288.                 DW Y_OFFSET +  2 + (X_OFFSET + 3      ) * 0x100 ; IR
  289.                 DW Y_OFFSET +  3 + (X_OFFSET + 3      ) * 0x100 ; AF
  290.                 DW Y_OFFSET +  3 + (X_OFFSET + 3 +  9 ) * 0x100 ; AF'
  291.                 DW Y_OFFSET +  4 + (X_OFFSET + 3      ) * 0x100 ; BC
  292.                 DW Y_OFFSET +  4 + (X_OFFSET + 3 +  9 ) * 0x100 ; BC'
  293.                 DW Y_OFFSET +  5 + (X_OFFSET + 3      ) * 0x100 ; DE
  294.                 DW Y_OFFSET +  5 + (X_OFFSET + 3 +  9 ) * 0x100 ; DE'
  295.                 DW Y_OFFSET +  6 + (X_OFFSET + 3      ) * 0x100 ; HL
  296.                 DW Y_OFFSET +  6 + (X_OFFSET + 3 +  9 ) * 0x100 ; HL'
  297.                 DW Y_OFFSET +  7 + (X_OFFSET + 3      ) * 0x100 ; IX
  298.                 DW Y_OFFSET +  7 + (X_OFFSET + 3 +  9 ) * 0x100 ; IY
  299.                 DW Y_OFFSET +  8 + (X_OFFSET + 5      ) * 0x100 ; INT EI/DI
  300.                 DW Y_OFFSET +  8 + (X_OFFSET + 3 + 10 ) * 0x100 ; INT IM 1/2
  301.                 DW Y_OFFSET + 11 + (X_OFFSET + 6      ) * 0x100 ; CPU3 MAP0
  302.                 DW Y_OFFSET + 11 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU3 MAP1
  303.                 DW Y_OFFSET + 12 + (X_OFFSET + 6      ) * 0x100 ; CPU6 MAP0
  304.                 DW Y_OFFSET + 12 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU6 MAP1
  305.                 DW Y_OFFSET + 13 + (X_OFFSET + 6      ) * 0x100 ; CPU5 MAP0
  306.                 DW Y_OFFSET + 13 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU5 MAP1
  307.                 DW Y_OFFSET + 14 + (X_OFFSET + 6      ) * 0x100 ; CPU0 MAP0
  308.                 DW Y_OFFSET + 14 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU0 MAP1
  309.                 DW Y_OFFSET + 16 + (X_OFFSET + 5      ) * 0x100 ; PORT 7FFD
  310.                 DW Y_OFFSET + 17 + (X_OFFSET + 5      ) * 0x100 ; PORT EFF7
  311.                 DW Y_OFFSET + 18 + (X_OFFSET + 0      ) * 0x100 ; PORT XX77
  312.                 DW Y_OFFSET + 18 + (X_OFFSET + 0 +  5 ) * 0x100 ; BYTE IN PORT XX77
  313.                 DW Y_OFFSET + 19 + (X_OFFSET + 5      ) * 0x100 ; PORT BF
  314.                 DW Y_OFFSET + 20 + (X_OFFSET + 5      ) * 0x100 ; BIT DOS ENABLE
  315.                 DW Y_OFFSET + 16 + (X_OFFSET + 5 +  6 ) * 0x100 ; FF
  316.                 DW Y_OFFSET + 17 + (X_OFFSET + 5 +  6 ) * 0x100 ; 7F
  317.                 DW Y_OFFSET + 18 + (X_OFFSET + 5 +  6 ) * 0x100 ; 5F
  318.                 DW Y_OFFSET + 19 + (X_OFFSET + 5 +  6 ) * 0x100 ; 3F
  319.                 DW Y_OFFSET + 20 + (X_OFFSET + 5 +  6 ) * 0x100 ; 1F
  320.                 DW Y_OFFSET + 21 + (X_OFFSET + 5 +  2 ) * 0x100 ; ADR BREAK
  321.                 DW Y_OFFSET + 22 + (X_OFFSET + 5 +  2 ) * 0x100 ; TURBO CURRENT
  322.  
  323. PRT_PORTREGS    LD A,MAGIC_COLOR
  324.                 LD (TXT_COLOR),A
  325.                 LD IX,COORDINAT_REGS
  326.                 LD HL,(NMI_SAVE_SP)
  327.                 CALL PRINT_REGS                 ; SP
  328.                 LD HL,(NADRRET_L)
  329.                 CALL PRINT_REGS                 ; PC
  330.                 LD A,(NREG_I)
  331.                 LD H,A
  332.                 LD A,(NREG_R)
  333.                 LD L,A
  334.                 CALL PRINT_REGS                 ; IR
  335.                 LD HL,(NREG_F)
  336.                 CALL PRINT_REGS                 ; AF
  337.                 LD HL,(NREG_FF)
  338.                 CALL PRINT_REGS                 ; AF'
  339.                 LD HL,(NREG_C)
  340.                 CALL PRINT_REGS                 ; BC
  341.                 LD HL,(NREG_CC)
  342.                 CALL PRINT_REGS                 ; BC'
  343.                 LD HL,(NREG_E)
  344.                 CALL PRINT_REGS                 ; DE
  345.                 LD HL,(NREG_EE)
  346.                 CALL PRINT_REGS                 ; DE'
  347.                 LD HL,(NREG_L)
  348.                 CALL PRINT_REGS                 ; HL
  349.                 LD HL,(NREG_LL)
  350.                 CALL PRINT_REGS                 ; HL'
  351.                 LD HL,(NREG_IXL)
  352.                 CALL PRINT_REGS                 ; IX
  353.                 LD HL,(NREG_IYL)
  354.                 CALL PRINT_REGS                 ; IY
  355.                 LD A,(INT_MODE)
  356.                 ADD A,"0"
  357.                 CALL PRINT_1NUM                 ; INT ON/OFF
  358.                 LD A,(NUM_IM)
  359.                 ADD A,"1"
  360.                 CALL PRINT_1NUM                 ; IM 1/2
  361.                 LD A,(B0_CPU3)
  362.                 CALL PRINT_REG                  ; CPU3 MAP0
  363.                 LD A,(B1_CPU3)
  364.                 CALL PRINT_REG                  ; CPU3 MAP1
  365.                 LD A,(B0_CPU2)
  366.                 CALL PRINT_REG                  ; CPU6 MAP0
  367.                 LD A,(B1_CPU2)
  368.                 CALL PRINT_REG                  ; CPU6 MAP1
  369.                 LD A,(B0_CPU1)
  370.                 CALL PRINT_REG                  ; CPU5 MAP0
  371.                 LD A,(B1_CPU1)
  372.                 CALL PRINT_REG                  ; CPU5 MAP1
  373.                 LD A,(B0_CPU0)
  374.                 CALL PRINT_REG                  ; CPU0 MAP0
  375.                 LD A,(B1_CPU0)
  376.                 CALL PRINT_REG                  ; CPU0 MAP1
  377.         READ_7FFD
  378.                 CALL PRINT_REG                  ; PORT 7FFD
  379.                 LD A,(N_EFF7)
  380.                 CALL PRINT_REG                  ; PORT EFF7
  381.                 LD A,(N_77)
  382.                 AND %11100000
  383.                 RRCA
  384.                 LD B,A
  385.                 RRCA
  386.                 RRCA
  387.                 RRCA
  388.                 RRCA
  389.                 OR B
  390.                 OR 0xBC
  391.                 CALL PRINT_REG                  ; PORT XX77
  392.                 LD A,(N_77)
  393.                 AND 0x0F
  394.                 CALL PRINT_REG                  ; BYTE IN PORT XX77
  395.                 LD A,(N_BF)
  396.                 CALL PRINT_REG                  ; PORT BF
  397.                 LD A,(N_77)
  398.                 AND 0x10
  399.                 RRCA
  400.                 RRCA
  401.                 RRCA
  402.                 RRCA
  403.                 ADD A,"0"
  404.                 CALL PRINT_1NUM
  405.                 IN A,(0xFF)
  406.                 AND %00111111
  407.                 CALL PRINT_REG
  408.                 IN A,(0x7F)
  409.                 CALL PRINT_REG
  410.                 IN A,(0x5F)
  411.                 CALL PRINT_REG
  412.                 IN A,(0x3F)
  413.                 CALL PRINT_REG
  414.                 IN A,(0x1F)
  415.                 CALL PRINT_REG
  416.                 LD BC,BREAK_HIGH
  417.                 IN H,(C)
  418.                 LD B,HIGH (BREAK_LOW)
  419.                 IN L,(C)
  420.                 CALL PRINT_REGS
  421.                 LD BC,5
  422.                 LD A,(N_77)
  423.                 BIT 3,A
  424.                 LD HL,TXT_FREQ
  425.                 JR NZ,.L1
  426.                 ADD HL,BC
  427.                 LD A,(N_EFF7)
  428.                 BIT 4,A
  429.                 JR Z,.L1
  430.                 ADD HL,BC
  431. .L1             LD E,(IX)
  432.                 INC IX
  433.                 LD D,(IX)
  434.                 INC IX
  435.                 JP PRTT_MSG
  436.  
  437. PRINT_1NUM      LD E,(IX)
  438.                 INC IX
  439.                 LD D,(IX)
  440.                 INC IX
  441.                 JP PRTT_A_
  442.  
  443. ; установка режимов
  444. SET_MODE        LD A,(RREG_A)
  445. ISET_MODE       AND A
  446.                 JR Z,SET_MODE4                  ; если 0 то получение режима
  447.                 LD E,A
  448.                 LD (TEK_MODES),A                ; сохранили устанавливаемые режимы
  449.                 AND %00000111
  450.                 JR Z,.L4
  451. ; установка номера экрана
  452.                 LD D,A
  453.                 LD A,(B_PORT77)
  454.                 AND %11111000
  455.                 OR D
  456.                 LD (B_PORT77),A                 ; установили видео режим в порту xx77
  457. .L4             LD A,E
  458.                 RRCA
  459.                 RRCA
  460.                 RRCA
  461.                 RRCA
  462.                 LD E,A                          ; сейчас биты 1-0 содержат турбо режим
  463.                 AND 3                           ; взяли биты турборежима
  464.                 JR Z,.L3                        ; если 0 то режим турбо не меняем
  465. ; смена турборежима
  466.                 EXX
  467.                 DEC A                           ; 1
  468.                 LD HL,0x0010                    ; TURBO 3,5 MHZ
  469.                 JR Z,.L2
  470.                 DEC A                           ; 2
  471.                 LD HL,0x0000                    ; TURBO 7,0 MHZ
  472.                 JR Z,.L2
  473.                 LD HL,0x0800                    ; TURBO 14 MHZ
  474. .L2             LD A,(R_EFF7)
  475.                 AND %11101111
  476.                 OR L
  477.                 LD (R_EFF7),A                   ; установили турбо для порта EFF7
  478.                 LD A,(B_PORT77)
  479.                 AND %11110111
  480.                 OR H
  481.                 LD (B_PORT77),A                 ; установили турбо режим для порта xx77
  482.                 EXX
  483. .L3             LD A,E
  484.                 RRCA
  485.                 RRCA
  486.                 AND 3                           ; выделили биты режима памяти
  487.                 JR Z,SET_MODE4                  ; если 0 то режим памяти не меняем
  488. ; смена режима памяти
  489.                 DEC A
  490.                 LD HL,0x0000                    ; память 1024К
  491.                 JR Z,.L1
  492.                 DEC A
  493.                 LD HL,0x2004                    ; память 48К
  494.                 JR Z,.L1
  495.                 LD HL,0x0004                    ; память 128К
  496. .L1             LD A,(R_7FFD)
  497.                 AND %11011111
  498.                 OR H
  499.                 LD (R_7FFD),A
  500.                 LD A,(R_EFF7)
  501.                 AND %11111011
  502.                 OR L
  503.                 LD (R_EFF7),A
  504.                 RET
  505.  
  506. SET_MODE4       LD A,(TEK_MODES)
  507.                 LD (RREG_A),A
  508.                 RET
  509.  
  510. ; дефолтные значения для кмос
  511. ;                   ED   EC   EB   EA   E9   E8
  512. CMOS_DEFAULT    DB 0x04,0x82,0x00,0x00,0x00,0x00
  513. ECMOS_DEFAULT
  514.  
  515. INST_SONGLN     LD HL,SONGLNBIN
  516.                 LD DE,0xC000
  517.                 JP UNPACK
  518.  
  519. SONGLNBIN       binclude songln_pack.bin
  520.                 include tape.a80
  521.                 include ay_printer.a80
  522.                 include txtmode_proc.a80
  523.                 include window.a80
  524.                 include selector.a80
  525.                 include input_keys.a80
  526.                 include mouse.a80
  527.                 include file_browser.a80
  528.                 include call_trdos.a80
  529.                 include call_cmos.a80
  530.  
  531.                 PHASE $+CPU3
  532. UNPACK_DOS_FE   LD HL,PACK_DOS_FE
  533.                 LD DE,CPU2
  534.                 JP UNPACK+CPU3
  535.  
  536. PACK_DOS_FE     binclude ../../page1/dos_fe_pack.rom
  537.                 DEPHASE
  538.  
  539. FREE_ADDONS     EQU 0x3FF6-$
  540.  
  541.                 DUPL FREE_ADDONS,0xFF
  542.                 DW FREE_ADDONS                  ; размер свободного места
  543.                 DB "ADDONS"
  544.                 DW DATA_VERS
  545.                 DEPHASE
  546.