Subversion Repositories pentevo

Rev

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

  1.  
  2. ; LAST UPDATE: 23.10.2022 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 +  1 ) * 0x100 ; ADR BREAK
  321.  
  322. PRT_PORTREGS    LD A,MAGIC_COLOR
  323.                 LD (TXT_COLOR),A
  324.                 LD IX,COORDINAT_REGS
  325.                 LD HL,(NMI_SAVE_SP)
  326.                 CALL PRINT_REGS                 ; SP
  327.                 LD HL,(NADRRET_L)
  328.                 CALL PRINT_REGS                 ; PC
  329.                 LD A,(NREG_I)
  330.                 LD H,A
  331.                 LD A,(NREG_R)
  332.                 LD L,A
  333.                 CALL PRINT_REGS                 ; IR
  334.                 LD HL,(NREG_F)
  335.                 CALL PRINT_REGS                 ; AF
  336.                 LD HL,(NREG_FF)
  337.                 CALL PRINT_REGS                 ; AF'
  338.                 LD HL,(NREG_C)
  339.                 CALL PRINT_REGS                 ; BC
  340.                 LD HL,(NREG_CC)
  341.                 CALL PRINT_REGS                 ; BC'
  342.                 LD HL,(NREG_E)
  343.                 CALL PRINT_REGS                 ; DE
  344.                 LD HL,(NREG_EE)
  345.                 CALL PRINT_REGS                 ; DE'
  346.                 LD HL,(NREG_L)
  347.                 CALL PRINT_REGS                 ; HL
  348.                 LD HL,(NREG_LL)
  349.                 CALL PRINT_REGS                 ; HL'
  350.                 LD HL,(NREG_IXL)
  351.                 CALL PRINT_REGS                 ; IX
  352.                 LD HL,(NREG_IYL)
  353.                 CALL PRINT_REGS                 ; IY
  354.                 LD A,(INT_MODE)
  355.                 ADD A,"0"
  356.                 CALL PRINT_1NUM                 ; INT ON/OFF
  357.                 LD A,(NUM_IM)
  358.                 ADD A,"1"
  359.                 CALL PRINT_1NUM                 ; IM 1/2
  360.                 LD A,(B0_CPU3)
  361.                 CALL PRINT_REG                  ; CPU3 MAP0
  362.                 LD A,(B1_CPU3)
  363.                 CALL PRINT_REG                  ; CPU3 MAP1
  364.                 LD A,(B0_CPU2)
  365.                 CALL PRINT_REG                  ; CPU6 MAP0
  366.                 LD A,(B1_CPU2)
  367.                 CALL PRINT_REG                  ; CPU6 MAP1
  368.                 LD A,(B0_CPU1)
  369.                 CALL PRINT_REG                  ; CPU5 MAP0
  370.                 LD A,(B1_CPU1)
  371.                 CALL PRINT_REG                  ; CPU5 MAP1
  372.                 LD A,(B0_CPU0)
  373.                 CALL PRINT_REG                  ; CPU0 MAP0
  374.                 LD A,(B1_CPU0)
  375.                 CALL PRINT_REG                  ; CPU0 MAP1
  376.         READ_7FFD
  377.                 CALL PRINT_REG                  ; PORT 7FFD
  378.                 LD A,(N_EFF7)
  379.                 CALL PRINT_REG                  ; PORT EFF7
  380.                 LD A,(N_77)
  381.                 AND %11100000
  382.                 RRCA
  383.                 LD B,A
  384.                 RRCA
  385.                 RRCA
  386.                 RRCA
  387.                 RRCA
  388.                 OR B
  389.                 OR 0xBC
  390.                 CALL PRINT_REG                  ; PORT XX77
  391.                 LD A,(N_77)
  392.                 AND 0x0F
  393.                 CALL PRINT_REG                  ; BYTE IN PORT XX77
  394.                 LD A,(N_BF)
  395.                 CALL PRINT_REG                  ; PORT BF
  396.                 LD A,(N_77)
  397.                 AND 0x10
  398.                 RRCA
  399.                 RRCA
  400.                 RRCA
  401.                 RRCA
  402.                 ADD A,"0"
  403.                 CALL PRINT_1NUM
  404.                 IN A,(0xFF)
  405.                 AND %00111111
  406.                 CALL PRINT_REG
  407.                 IN A,(0x7F)
  408.                 CALL PRINT_REG
  409.                 IN A,(0x5F)
  410.                 CALL PRINT_REG
  411.                 IN A,(0x3F)
  412.                 CALL PRINT_REG
  413.                 IN A,(0x1F)
  414.                 CALL PRINT_REG
  415.                 LD BC,BREAK_HIGH
  416.                 IN H,(C)
  417.                 LD B,HIGH (BREAK_LOW)
  418.                 IN L,(C)
  419.                 JP PRINT_REGS
  420.  
  421. PRINT_1NUM      LD E,(IX)
  422.                 INC IX
  423.                 LD D,(IX)
  424.                 INC IX
  425.                 JP PRTT_A_
  426.  
  427. ; установка режимов
  428. SET_MODE        LD A,(RREG_A)
  429. ISET_MODE       AND A
  430.                 JR Z,SET_MODE4
  431.                 LD E,A
  432.                 LD (TEK_MODES),A                ; сохранили устанавливаемые режимы
  433.                 AND A                           ; если 0 то получение режима
  434.                 JR Z,SET_MODE4;2
  435.                 BIT 3,A
  436.                 JR Z,.L4
  437. ; установка номера экрана
  438.                 AND %00000111
  439.                 LD D,A
  440.                 LD A,(B_PORT77)
  441.                 AND %11111000
  442.                 OR D
  443.                 LD (B_PORT77),A                 ; установили видео режим в порту xx77
  444. .L4             LD A,E
  445.                 RRCA
  446.                 RRCA
  447.                 RRCA
  448.                 RRCA
  449.                 LD E,A                          ; сейчас биты 1-0 содержат турбо режим
  450.                 RRCA
  451.                 RRCA
  452.                 AND 3                           ; взяли биты турборежима
  453.                 JR Z,.L3                        ; если 0 то режим турбо не меняем
  454. ; смена турборежима
  455.                 EXX
  456.                 DEC A                           ; 1
  457.                 LD HL,0x0010                    ; TURBO 3,5 MHZ
  458.                 JR Z,.L2
  459.                 DEC A                           ; 2
  460.                 LD HL,0x0000                    ; TURBO 7,0 MHZ
  461.                 JR Z,.L2
  462.                 LD HL,0x0800                    ; TURBO 14 MHZ
  463. .L2             LD A,(R_EFF7)
  464.                 AND %11101111
  465.                 OR L
  466.                 LD (R_EFF7),A                   ; установили турбо для порта EFF7
  467.                 LD A,(B_PORT77)
  468.                 AND %11110111
  469.                 OR H
  470.                 LD (B_PORT77),A                 ; установили турбо режим для порта xx77
  471.                 EXX
  472. .L3             LD A,E
  473.                 AND 3                           ; выделили биты режима памяти
  474.                 JR Z,SET_MODE4                  ; если 0 то режим памяти не меняем
  475. ; смена режима памяти
  476.                 DEC A
  477.                 LD HL,0x0000                    ; память 1024К
  478.                 JR Z,.L1
  479.                 DEC A
  480.                 LD HL,0x2004                    ; память 48К
  481.                 JR Z,.L1
  482.                 LD HL,0x0004                    ; память 128К
  483. .L1             LD A,(R_7FFD)
  484.                 AND %11011111
  485.                 OR H
  486.                 LD (R_7FFD),A
  487.                 LD A,(R_EFF7)
  488.                 AND %11111011
  489.                 OR L
  490.                 LD (R_EFF7),A
  491.                 RET
  492.  
  493. SET_MODE4       LD A,(TEK_MODES)
  494.                 LD (RREG_A),A
  495.                 RET
  496.  
  497. ; дефолтные значения для кмос
  498. ;                   ED   EC   EB   EA   E9   E8
  499. CMOS_DEFAULT    DB 0x04,0x82,0x00,0x00,0x00,0x00
  500. ECMOS_DEFAULT
  501.  
  502. INST_SONGLN     LD HL,SONGLNBIN
  503.                 LD DE,0xC000
  504.                 JP UNPACK
  505.  
  506. SONGLNBIN       binclude songln_pack.bin
  507.                 include tape.a80
  508.                 include ay_printer.a80
  509.                 include txtmode_proc.a80
  510.                 include window.a80
  511.                 include selector.a80
  512.                 include input_keys.a80
  513.                 include mouse.a80
  514.                 include file_browser.a80
  515.                 include call_trdos.a80
  516.                 include call_cmos.a80
  517.  
  518.                 PHASE $+CPU3
  519. UNPACK_DOS_FE   LD HL,PACK_DOS_FE
  520.                 LD DE,CPU2
  521.                 JP UNPACK+CPU3
  522.  
  523. PACK_DOS_FE     binclude ../../page1/dos_fe_pack.rom
  524.                 DEPHASE
  525.  
  526. FREE_ADDONS     EQU 0x3FF6-$
  527.  
  528.                 DUPL FREE_ADDONS,0xFF
  529.                 DW FREE_ADDONS                  ; размер свободного места
  530.                 DB "ADDONS"
  531.                 DW DATA_VERS
  532.                 DEPHASE
  533.