Subversion Repositories pentevo

Rev

Rev 1120 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ; LAST UPDATE: 14.02.2025 savelij
  3.  
  4.         TITLE "addons.a80 ROM_RST82"
  5.  
  6. DRV_VAR         EQU 0x4000
  7.  
  8.         PHASE 0
  9.                 JP $
  10.  
  11.                 DB ADR_SEL_ROM-$ DUP 0xFF
  12.                 OUT (C),A
  13.                 NOP
  14.                 RET
  15.  
  16.                 DB 0x0030-$ DUP 0xFF
  17.                 JP CALL2PAGE
  18.  
  19.                 DB 0x0038-$ DUP 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.                 DB 0x0080-$ DUP 0xFF
  32.                 binclude ../../dec40.bin
  33.  
  34.                 DB 0x00FF-$ DUP 0xFF
  35.                 DW 0x0038
  36.  
  37. ; ============================SD карта удалена============================
  38. SDCARD_LOST
  39.  WINHDR 0x08,0x08,0x04,0x10,0x17,0,%00000000,0, \
  40.         0,0,.TXT_SDLOST,0,0,0
  41.  
  42. .TXT_SDLOST     DB "\x17\xFF\r\x03SD card lost\r\x03Press RESET",0
  43. ; ============================SD карта удалена============================
  44.  
  45. ; ========================мышиный курсор в двух видах=====================
  46. SPRAR           DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x50,0x03,0x48,0x01,0x4C,0x01,0x70,0x07,0x00
  47. SPRAR2          DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x70,0x03,0x78,0x01,0x7C,0x01,0x70,0x07,0x00
  48. ; ========================мышиный курсор в двух видах=====================
  49.  
  50.                 DB 0x0200-$ DUP 0xFF
  51. CHARS           binclude altstd.bin
  52.  
  53. BUFTSC          DW 0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700
  54.                 DW 0x4020,0x4120,0x4220,0x4320,0x4420,0x4520,0x4620,0x4720
  55.                 DW 0x4040,0x4140,0x4240,0x4340,0x4440,0x4540,0x4640,0x4740
  56.                 DW 0x4060,0x4160,0x4260,0x4360,0x4460,0x4560,0x4660,0x4760
  57.                 DW 0x4080,0x4180,0x4280,0x4380,0x4480,0x4580,0x4680,0x4780
  58.                 DW 0x40A0,0x41A0,0x42A0,0x43A0,0x44A0,0x45A0,0x46A0,0x47A0
  59.                 DW 0x40C0,0x41C0,0x42C0,0x43C0,0x44C0,0x45C0,0x46C0,0x47C0
  60.                 DW 0x40E0,0x41E0,0x42E0,0x43E0,0x44E0,0x45E0,0x46E0,0x47E0
  61.                                                                      
  62.                 DW 0x4800,0x4900,0x4A00,0x4B00,0x4C00,0x4D00,0x4E00,0x4F00
  63.                 DW 0x4820,0x4920,0x4A20,0x4B20,0x4C20,0x4D20,0x4E20,0x4F20
  64.                 DW 0x4840,0x4940,0x4A40,0x4B40,0x4C40,0x4D40,0x4E40,0x4F40
  65.                 DW 0x4860,0x4960,0x4A60,0x4B60,0x4C60,0x4D60,0x4E60,0x4F60
  66.                 DW 0x4880,0x4980,0x4A80,0x4B80,0x4C80,0x4D80,0x4E80,0x4F80
  67.                 DW 0x48A0,0x49A0,0x4AA0,0x4BA0,0x4CA0,0x4DA0,0x4EA0,0x4FA0
  68.                 DW 0x48C0,0x49C0,0x4AC0,0x4BC0,0x4CC0,0x4DC0,0x4EC0,0x4FC0
  69.                 DW 0x48E0,0x49E0,0x4AE0,0x4BE0,0x4CE0,0x4DE0,0x4EE0,0x4FE0
  70.                                                                      
  71.                 DW 0x5000,0x5100,0x5200,0x5300,0x5400,0x5500,0x5600,0x5700
  72.                 DW 0x5020,0x5120,0x5220,0x5320,0x5420,0x5520,0x5620,0x5720
  73.                 DW 0x5040,0x5140,0x5240,0x5340,0x5440,0x5540,0x5640,0x5740
  74.                 DW 0x5060,0x5160,0x5260,0x5360,0x5460,0x5560,0x5660,0x5760
  75.                 DW 0x5080,0x5180,0x5280,0x5380,0x5480,0x5580,0x5680,0x5780
  76.                 DW 0x50A0,0x51A0,0x52A0,0x53A0,0x54A0,0x55A0,0x56A0,0x57A0
  77.                 DW 0x50C0,0x51C0,0x52C0,0x53C0,0x54C0,0x55C0,0x56C0,0x57C0
  78.                 DW 0x50E0,0x51E0,0x52E0,0x53E0,0x54E0,0x55E0,0x56E0,0x57E0
  79.                                                                      
  80. BUFTSC1         DW 0xC000,0xC100,0xC200,0xC300,0xC400,0xC500,0xC600,0xC700
  81.                 DW 0xC020,0xC120,0xC220,0xC320,0xC420,0xC520,0xC620,0xC720
  82.                 DW 0xC040,0xC140,0xC240,0xC340,0xC440,0xC540,0xC640,0xC740
  83.                 DW 0xC060,0xC160,0xC260,0xC360,0xC460,0xC560,0xC660,0xC760
  84.                 DW 0xC080,0xC180,0xC280,0xC380,0xC480,0xC580,0xC680,0xC780
  85.                 DW 0xC0A0,0xC1A0,0xC2A0,0xC3A0,0xC4A0,0xC5A0,0xC6A0,0xC7A0
  86.                 DW 0xC0C0,0xC1C0,0xC2C0,0xC3C0,0xC4C0,0xC5C0,0xC6C0,0xC7C0
  87.                 DW 0xC0E0,0xC1E0,0xC2E0,0xC3E0,0xC4E0,0xC5E0,0xC6E0,0xC7E0
  88.                                                                      
  89.                 DW 0xC800,0xC900,0xCA00,0xCB00,0xCC00,0xCD00,0xCE00,0xCF00
  90.                 DW 0xC820,0xC920,0xCA20,0xCB20,0xCC20,0xCD20,0xCE20,0xCF20
  91.                 DW 0xC840,0xC940,0xCA40,0xCB40,0xCC40,0xCD40,0xCE40,0xCF40
  92.                 DW 0xC860,0xC960,0xCA60,0xCB60,0xCC60,0xCD60,0xCE60,0xCF60
  93.                 DW 0xC880,0xC980,0xCA80,0xCB80,0xCC80,0xCD80,0xCE80,0xCF80
  94.                 DW 0xC8A0,0xC9A0,0xCAA0,0xCBA0,0xCCA0,0xCDA0,0xCEA0,0xCFA0
  95.                 DW 0xC8C0,0xC9C0,0xCAC0,0xCBC0,0xCCC0,0xCDC0,0xCEC0,0xCFC0
  96.                 DW 0xC8E0,0xC9E0,0xCAE0,0xCBE0,0xCCE0,0xCDE0,0xCEE0,0xCFE0
  97.                                                                      
  98.                 DW 0xD000,0xD100,0xD200,0xD300,0xD400,0xD500,0xD600,0xD700
  99.                 DW 0xD020,0xD120,0xD220,0xD320,0xD420,0xD520,0xD620,0xD720
  100.                 DW 0xD040,0xD140,0xD240,0xD340,0xD440,0xD540,0xD640,0xD740
  101.                 DW 0xD060,0xD160,0xD260,0xD360,0xD460,0xD560,0xD660,0xD760
  102.                 DW 0xD080,0xD180,0xD280,0xD380,0xD480,0xD580,0xD680,0xD780
  103.                 DW 0xD0A0,0xD1A0,0xD2A0,0xD3A0,0xD4A0,0xD5A0,0xD6A0,0xD7A0
  104.                 DW 0xD0C0,0xD1C0,0xD2C0,0xD3C0,0xD4C0,0xD5C0,0xD6C0,0xD7C0
  105.                 DW 0xD0E0,0xD1E0,0xD2E0,0xD3E0,0xD4E0,0xD5E0,0xD6E0,0xD7E0
  106.  
  107. ; адреса начал строк монохрома текстмода (левый, правый)
  108. TBUFTSC         DW 0xC1C0,0xD1C0        ; 00
  109.                 DW 0xC200,0xD200        ; 01
  110.                 DW 0xC240,0xD240        ; 02
  111.                 DW 0xC280,0xD280        ; 03
  112.                 DW 0xC2C0,0xD2C0        ; 04
  113.                 DW 0xC300,0xD300        ; 05
  114.                 DW 0xC340,0xD340        ; 06
  115.                 DW 0xC380,0xD380        ; 07
  116.                 DW 0xC3C0,0xD3C0        ; 08
  117.                 DW 0xC400,0xD400        ; 09
  118.                 DW 0xC440,0xD440        ; 10
  119.                 DW 0xC480,0xD480        ; 11
  120.                 DW 0xC4C0,0xD4C0        ; 12
  121.                 DW 0xC500,0xD500        ; 13
  122.                 DW 0xC540,0xD540        ; 14
  123.                 DW 0xC580,0xD580        ; 15
  124.                 DW 0xC5C0,0xD5C0        ; 16
  125.                 DW 0xC600,0xD600        ; 17
  126.                 DW 0xC640,0xD640        ; 18
  127.                 DW 0xC680,0xD680        ; 19
  128.                 DW 0xC6C0,0xD6C0        ; 20
  129.                 DW 0xC700,0xD700        ; 21
  130.                 DW 0xC740,0xD740        ; 22
  131.                 DW 0xC780,0xD780        ; 23
  132.                 DW 0xC7C0,0xD7C0        ; 24
  133.  
  134. ; адреса начал строк цвета текстмода (левый, правый)
  135. TBUFTSC_C       DW 0xF1C0,0xE1C1        ; 00
  136.                 DW 0xF200,0xE201        ; 01
  137.                 DW 0xF240,0xE241        ; 02
  138.                 DW 0xF280,0xE281        ; 03
  139.                 DW 0xF2C0,0xE2C1        ; 04
  140.                 DW 0xF300,0xE301        ; 05
  141.                 DW 0xF340,0xE341        ; 06
  142.                 DW 0xF380,0xE381        ; 07
  143.                 DW 0xF3C0,0xE3C1        ; 08
  144.                 DW 0xF400,0xE401        ; 09
  145.                 DW 0xF440,0xE441        ; 10
  146.                 DW 0xF480,0xE481        ; 11
  147.                 DW 0xF4C0,0xE4C1        ; 12
  148.                 DW 0xF500,0xE501        ; 13
  149.                 DW 0xF540,0xE541        ; 14
  150.                 DW 0xF580,0xE581        ; 15
  151.                 DW 0xF5C0,0xE5C1        ; 16
  152.                 DW 0xF600,0xE601        ; 17
  153.                 DW 0xF640,0xE641        ; 18
  154.                 DW 0xF680,0xE681        ; 19
  155.                 DW 0xF6C0,0xE6C1        ; 20
  156.                 DW 0xF700,0xE701        ; 21
  157.                 DW 0xF740,0xE741        ; 22
  158.                 DW 0xF780,0xE781        ; 23
  159.                 DW 0xF7C0,0xE7C1        ; 24
  160.  
  161. RD_SET_PAL      IN A,(0xFF)
  162.                 AND %00111111
  163.                 PUSH AF
  164.                 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. .L3             LD A,E
  177.                 BIT 3,E
  178.                 OUT (0xFE),A
  179.                 JR Z,.L4
  180.                 OUT (0xF6),A
  181. .L4             IN A,(C)
  182.                 LD (HL),A
  183.                 INC HL
  184.                 DEC E
  185.                 JP P,.L3                        ; палитру сохранили
  186.                 LD HL,MAGIC_PAL
  187.                 LD E,0x0F
  188. .L1             LD A,E
  189.                 BIT 3,E
  190.                 OUT (0xFE),A
  191.                 JR Z,.L2
  192.                 OUT (0xF6),A
  193. .L2             LD A,(HL)
  194.                 INC HL
  195.                 OR %00001100
  196.                 OUT (0xFF),A
  197.                 DEC E
  198.                 JP P,.L1
  199.                 LD BC,0xFF77
  200.                 OUT (C),D
  201.                 POP HL
  202.                 LD (ADR_INT),HL
  203.                 POP AF
  204.                 OUT (0xFF),A
  205.                 RET
  206.  
  207. MAGIC_PAL       DB 0x0C,0x2D,0x4E,0x6F,0x9C,0xBD,0xDE,0xFF
  208.                 DB 0xEC,0xED,0xEE,0xEF,0xFC,0xFD,0xFE,0xFF
  209.  
  210. ; палитра для SPECTRUM режима
  211. TRSTPAL         DB 0x00,0x21,0x42,0x63,0x90,0xB1,0xD2,0xF3
  212.                 DB 0xE0,0xE1,0xE2,0xE3,0xF0,0xF1,0xF2,0xF3
  213.  
  214. SETUP_PAL1      LD HL,(RREG_L)
  215.                 LD DE,EXTERN_PAL-CPU2
  216.                 LD BC,0x10
  217.         ROMCALL LDIR_BYTES,ROM_RST83
  218.                 LD HL,EXTERN_PAL
  219.                 JR RESTOREPAL1
  220.  
  221. SETUP_PAL       LD A,(RREG_A)
  222.                 AND A
  223.                 JR NZ,SETUP_PAL1
  224.                 LD HL,TRSTPAL
  225. RESTOREPAL1     LD (ADR_PALITRA),HL
  226. RESTORE_PAL     IN A,(0xFF)
  227.                 AND %00111111
  228.                 PUSH AF
  229.                 LD HL,(ADR_INT)
  230.                 PUSH HL
  231.                 LD HL,EI_RET
  232.                 LD (ADR_INT),HL
  233.                 LD HL,(ADR_PALITRA)
  234.                 LD DE,0xAF0F
  235.                 LD BC,0xBD77                    ; доступ к палитре
  236.                 OUT (C),D                       ; вкл.PAL
  237.                 EI
  238.                 HALT
  239.                 DI
  240. .L1             LD A,E
  241.                 BIT 3,E
  242.                 OUT (0xFE),A
  243.                 JR Z,$+4
  244.                 OUT (0xF6),A
  245.                 LD A,(HL)
  246.                 INC HL
  247.                 OR %00001100
  248.                 OUT (0xFF),A
  249.                 DEC E
  250.                 JP P,.L1
  251.                 LD BC,0xFF77
  252.                 OUT (C),D
  253.                 POP HL
  254.                 LD (ADR_INT),HL
  255.                 POP AF
  256.                 OUT (0xFF),A
  257.                 RET
  258.  
  259. PRINT_REGS      LD E,(IX)
  260.                 INC IX
  261.                 LD D,(IX)
  262.                 INC IX
  263. PRTT_HL_        LD A,H
  264.                 CALL PRTT_A
  265.                 LD A,L
  266. PRTT_A          PUSH AF
  267.                 RRCA
  268.                 RRCA
  269.                 RRCA
  270.                 RRCA
  271.                 CALL PRTT_A_1
  272.                 POP AF
  273. PRTT_A_1        AND 0x0F
  274.                 CP 0x0A
  275.                 CCF
  276.                 ADC A,"0"
  277.                 DAA
  278.                 AND 0x7F
  279.                 JP PRTT_A_
  280.  
  281. PRINT_REG       LD E,(IX)
  282.                 INC IX
  283.                 LD D,(IX)
  284.                 INC IX
  285.                 JR PRTT_A
  286.  
  287. COORDINAT_REGS  DW Y_OFFSET +  1 + (X_OFFSET + 3      ) * 0x100 ; SP
  288.                 DW Y_OFFSET +  1 + (X_OFFSET + 3 +  9 ) * 0x100 ; PC
  289.                 DW Y_OFFSET +  2 + (X_OFFSET + 3      ) * 0x100 ; IR
  290.                 DW Y_OFFSET +  3 + (X_OFFSET + 3      ) * 0x100 ; AF
  291.                 DW Y_OFFSET +  3 + (X_OFFSET + 3 +  9 ) * 0x100 ; AF'
  292.                 DW Y_OFFSET +  4 + (X_OFFSET + 3      ) * 0x100 ; BC
  293.                 DW Y_OFFSET +  4 + (X_OFFSET + 3 +  9 ) * 0x100 ; BC'
  294.                 DW Y_OFFSET +  5 + (X_OFFSET + 3      ) * 0x100 ; DE
  295.                 DW Y_OFFSET +  5 + (X_OFFSET + 3 +  9 ) * 0x100 ; DE'
  296.                 DW Y_OFFSET +  6 + (X_OFFSET + 3      ) * 0x100 ; HL
  297.                 DW Y_OFFSET +  6 + (X_OFFSET + 3 +  9 ) * 0x100 ; HL'
  298.                 DW Y_OFFSET +  7 + (X_OFFSET + 3      ) * 0x100 ; IX
  299.                 DW Y_OFFSET +  7 + (X_OFFSET + 3 +  9 ) * 0x100 ; IY
  300.                 DW Y_OFFSET +  8 + (X_OFFSET + 5      ) * 0x100 ; INT EI/DI
  301.                 DW Y_OFFSET +  8 + (X_OFFSET + 3 + 10 ) * 0x100 ; INT IM 1/2
  302.                 DW Y_OFFSET + 11 + (X_OFFSET + 6      ) * 0x100 ; CPU3 MAP0
  303.                 DW Y_OFFSET + 11 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU3 MAP1
  304.                 DW Y_OFFSET + 12 + (X_OFFSET + 6      ) * 0x100 ; CPU2 MAP0
  305.                 DW Y_OFFSET + 12 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU2 MAP1
  306.                 DW Y_OFFSET + 13 + (X_OFFSET + 6      ) * 0x100 ; CPU5 MAP0
  307.                 DW Y_OFFSET + 13 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU5 MAP1
  308.                 DW Y_OFFSET + 14 + (X_OFFSET + 6      ) * 0x100 ; CPU0 MAP0
  309.                 DW Y_OFFSET + 14 + (X_OFFSET + 6 +  3 ) * 0x100 ; CPU0 MAP1
  310.                 DW Y_OFFSET + 16 + (X_OFFSET + 5      ) * 0x100 ; PORT 7FFD
  311.                 DW Y_OFFSET + 17 + (X_OFFSET + 5      ) * 0x100 ; PORT EFF7
  312.                 DW Y_OFFSET + 18 + (X_OFFSET + 0      ) * 0x100 ; PORT XX77
  313.                 DW Y_OFFSET + 18 + (X_OFFSET + 0 +  5 ) * 0x100 ; BYTE IN PORT XX77
  314.                 DW Y_OFFSET + 19 + (X_OFFSET + 5      ) * 0x100 ; PORT BF
  315.                 DW Y_OFFSET + 20 + (X_OFFSET + 5      ) * 0x100 ; BIT DOS ENABLE
  316.                 DW Y_OFFSET + 16 + (X_OFFSET + 5 +  6 ) * 0x100 ; FF
  317.                 DW Y_OFFSET + 17 + (X_OFFSET + 5 +  6 ) * 0x100 ; 7F
  318.                 DW Y_OFFSET + 18 + (X_OFFSET + 5 +  6 ) * 0x100 ; 5F
  319.                 DW Y_OFFSET + 19 + (X_OFFSET + 5 +  6 ) * 0x100 ; 3F
  320.                 DW Y_OFFSET + 20 + (X_OFFSET + 5 +  6 ) * 0x100 ; 1F
  321.                 DW Y_OFFSET + 21 + (X_OFFSET + 5 +  2 ) * 0x100 ; ADR BREAK
  322.                 DW Y_OFFSET + 22 + (X_OFFSET + 5 +  2 ) * 0x100 ; TURBO CURRENT
  323.  
  324. PRT_PORTREGS    LD A,MAGIC_COLOR
  325.                 LD (TXT_COLOR),A
  326.                 LD IX,COORDINAT_REGS
  327.                 LD HL,(NMI_SAVE_SP)
  328.                 CALL PRINT_REGS                 ; SP
  329.                 LD HL,(NADRRET_L)
  330.                 CALL PRINT_REGS                 ; PC
  331.                 LD A,(NREG_I)
  332.                 LD H,A
  333.                 LD A,(NREG_R)
  334.                 LD L,A
  335.                 CALL PRINT_REGS                 ; IR
  336.                 LD HL,(NREG_F)
  337.                 CALL PRINT_REGS                 ; AF
  338.                 LD HL,(NREG_FF)
  339.                 CALL PRINT_REGS                 ; AF'
  340.                 LD HL,(NREG_C)
  341.                 CALL PRINT_REGS                 ; BC
  342.                 LD HL,(NREG_CC)
  343.                 CALL PRINT_REGS                 ; BC'
  344.                 LD HL,(NREG_E)
  345.                 CALL PRINT_REGS                 ; DE
  346.                 LD HL,(NREG_EE)
  347.                 CALL PRINT_REGS                 ; DE'
  348.                 LD HL,(NREG_L)
  349.                 CALL PRINT_REGS                 ; HL
  350.                 LD HL,(NREG_LL)
  351.                 CALL PRINT_REGS                 ; HL'
  352.                 LD HL,(NREG_IXL)
  353.                 CALL PRINT_REGS                 ; IX
  354.                 LD HL,(NREG_IYL)
  355.                 CALL PRINT_REGS                 ; IY
  356.                 LD A,(INT_MODE)
  357.                 ADD A,'0'
  358.                 CALL PRINT_1NUM                 ; INT ON/OFF
  359.                 LD A,(NUM_IM)
  360.                 ADD A,'1'
  361.                 CALL PRINT_1NUM                 ; IM 1/2
  362.                 LD A,(B0_CPU3)
  363.                 CALL PRINT_REG                  ; CPU3 MAP0
  364.                 LD A,(B1_CPU3)
  365.                 CALL PRINT_REG                  ; CPU3 MAP1
  366.                 LD A,(B0_CPU2)
  367.                 CALL PRINT_REG                  ; CPU2 MAP0
  368.                 LD A,(B1_CPU2)
  369.                 CALL PRINT_REG                  ; CPU2 MAP1
  370.                 LD A,(B0_CPU1)
  371.                 CALL PRINT_REG                  ; CPU5 MAP0
  372.                 LD A,(B1_CPU1)
  373.                 CALL PRINT_REG                  ; CPU5 MAP1
  374.                 LD A,(B0_CPU0)
  375.                 CALL PRINT_REG                  ; CPU0 MAP0
  376.                 LD A,(B1_CPU0)
  377.                 CALL PRINT_REG                  ; CPU0 MAP1
  378.         READ_7FFD
  379.                 CALL PRINT_REG                  ; PORT 7FFD
  380.                 LD A,(N_EFF7)
  381.                 CALL PRINT_REG                  ; PORT EFF7
  382.                 LD A,(N_77)
  383.                 AND %11100000
  384.                 RRCA
  385.                 LD B,A
  386.                 RRCA
  387.                 RRCA
  388.                 RRCA
  389.                 RRCA
  390.                 OR B
  391.                 OR 0xBC
  392.                 CALL PRINT_REG                  ; PORT XX77
  393.                 LD A,(N_77)
  394.                 AND 0x0F
  395.                 CALL PRINT_REG                  ; BYTE IN PORT XX77
  396.                 LD A,(N_BF)
  397.                 CALL PRINT_REG                  ; PORT BF
  398.                 LD A,(N_77)
  399.                 AND 0x10
  400.                 RRCA
  401.                 RRCA
  402.                 RRCA
  403.                 RRCA
  404.                 ADD A,'0'
  405.                 CALL PRINT_1NUM
  406.                 IN A,(0xFF)
  407.                 AND %00111111
  408.                 CALL PRINT_REG
  409.                 IN A,(0x7F)
  410.                 CALL PRINT_REG
  411.                 IN A,(0x5F)
  412.                 CALL PRINT_REG
  413.                 IN A,(0x3F)
  414.                 CALL PRINT_REG
  415.                 IN A,(0x1F)
  416.                 CALL PRINT_REG
  417.                 LD BC,BREAK_HIGH
  418.                 IN H,(C)
  419.                 LD B,HIGH (BREAK_LOW)
  420.                 IN L,(C)
  421.                 CALL PRINT_REGS
  422.                 LD BC,5
  423.                 LD A,(N_77)
  424.                 BIT 3,A
  425.                 LD HL,TXT_FREQ
  426.                 JR NZ,.L1
  427.                 ADD HL,BC
  428.                 LD A,(N_EFF7)
  429.                 BIT 4,A
  430.                 JR Z,.L1
  431.                 ADD HL,BC
  432. .L1             LD E,(IX)
  433.                 INC IX
  434.                 LD D,(IX)
  435.                 INC IX
  436.                 JP PRTT_MSG
  437.  
  438. PRINT_1NUM      LD E,(IX)
  439.                 INC IX
  440.                 LD D,(IX)
  441.                 INC IX
  442.                 JP PRTT_A_
  443.  
  444. ; установка режимов
  445. SET_MODE        LD A,(RREG_A)
  446. ISET_MODE       AND A
  447.                 JR Z,.L5                        ; если 0 то получение режима
  448.                 LD E,A
  449.                 LD (TEK_MODES),A                ; сохранили устанавливаемые режимы
  450.                 AND %00000111
  451.                 JR Z,.L4
  452. ; установка номера экрана
  453.                 LD D,A
  454.                 LD A,(B_PORT77)
  455.                 AND %11111000
  456.                 OR D
  457.                 LD (B_PORT77),A                 ; установили видео режим в порту xx77
  458. .L4             LD A,E
  459.                 RRCA
  460.                 RRCA
  461.                 RRCA
  462.                 RRCA
  463.                 LD E,A                          ; сейчас биты 1-0 содержат турбо режим
  464.                 AND 3                           ; взяли биты турборежима
  465.                 JR Z,.L3                        ; если 0 то режим турбо не меняем
  466. ; смена турборежима
  467.                 EXX
  468.                 DEC A                           ; 1
  469.                 LD HL,0x0010                    ; TURBO 3,5 MHZ
  470.                 JR Z,.L2
  471.                 DEC A                           ; 2
  472.                 LD HL,0x0000                    ; TURBO 7,0 MHZ
  473.                 JR Z,.L2
  474.                 LD HL,0x0800                    ; TURBO 14 MHZ
  475. .L2             LD A,(R_EFF7)
  476.                 AND %11101111
  477.                 OR L
  478.                 LD (R_EFF7),A                   ; установили турбо для порта EFF7
  479.                 LD A,(B_PORT77)
  480.                 AND %11110111
  481.                 OR H
  482.                 LD (B_PORT77),A                 ; установили турбо режим для порта xx77
  483.                 EXX
  484. .L3             LD A,E
  485.                 RRCA
  486.                 RRCA
  487.                 AND 3                           ; выделили биты режима памяти
  488.                 JR Z,.L5                        ; если 0 то режим памяти не меняем
  489. ; смена режима памяти
  490.                 DEC A
  491.                 LD HL,0x0000                    ; память 1024К
  492.                 JR Z,.L1
  493.                 DEC A
  494.                 LD HL,0x2004                    ; память 48К
  495.                 JR Z,.L1
  496.                 LD HL,0x0004                    ; память 128К
  497. .L1             LD A,(R_7FFD)
  498.                 AND %11011111
  499.                 OR H
  500.                 LD (R_7FFD),A
  501.                 LD A,(R_EFF7)
  502.                 AND %11111011
  503.                 OR L
  504.                 LD (R_EFF7),A
  505.                 RET
  506.  
  507. .L5             LD A,(TEK_MODES)
  508.                 LD (RREG_A),A
  509.                 RET
  510.  
  511. ; дефолтные значения для кмос
  512. ;                   ED   EC   EB   EA   E9   E8
  513. CMOS_DEFAULT    DB 0x04,0x82,0x00,0x00,0x00,0x00
  514. ECMOS_DEFAULT
  515.  
  516. INST_SONGLN     LD HL,SONGLNBIN
  517.                 LD DE,0xC000
  518.                 JP UNPACK
  519.  
  520. SONGLNBIN       binclude songln_pack.bin
  521.                 include tape.a80
  522.                 include ay_printer.a80
  523.                 include txtmode_proc.a80
  524.                 include window.a80
  525.                 include selector.a80
  526.                 include input_keys.a80
  527.                 include mouse.a80
  528.                 include file_browser.a80
  529.                 include call_trdos.a80
  530.                 include call_cmos.a80
  531.  
  532.         PHASE $+CPU3
  533. UNPACK_DOS_FE   LD HL,PACK_DOS_FE
  534.                 LD DE,CPU2
  535.                 JP UNPACK+CPU3
  536.  
  537. PACK_DOS_FE     binclude ../../page1/dos_fe_pack.rom
  538.         DEPHASE
  539.  
  540. FREE_ADDONS     EQU 0x3FF6-$
  541.  
  542.                 DB FREE_ADDONS DUP 0xFF
  543.                 DW FREE_ADDONS                  ; размер свободного места
  544.                 DB "ADDONS"
  545.                 DW DATA_VERS
  546.         DEPHASE
  547.