Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 10.02.2014 savelij
  3.  
  4. FILE_BROWSER    DI
  5.                 LD IYL,INTERNAL
  6.                 PCALL DEVFIND,P_RST8            ;ПОИСК УСТРОЙСТВ ЕСЛИ НЕ БЫЛИ НАЙДЕНЫ
  7.                 LD A,E
  8.                 AND A
  9.                 JR NZ,FILEBROWSE1
  10. ;ЕСЛИ НИ ОДНОГО УСТРОЙСТВА НЕ НАЙДЕНО, ТО ВЫВОДИМ ОШИБКУ
  11.                 LD IX,DEV_NOTFOUND
  12. ERROR           EVOPORT WIN_A1,P_ADDON1
  13.                 CALL ITWINW
  14.                 CALL ANY_KEYS
  15.                 JP RESTART_MAIN
  16.  
  17. FILEBROWSE1     DI
  18.                 EVOPORT WIN_A1,P_ADDON1
  19.                 LD HL,FILES_EXT_ALL
  20.                 LD DE,EXT4FOUND
  21.                 LD BC,EFILES_EXT-FILES_EXT
  22.                 LDIR                            ;УСТАНОВКА МАСКИ РАСШИРЕНИЙ ДЛЯ ПОИСКА
  23.                 PCALL FIND_FILEITEM,P_RST8      ;ПОИСК
  24.                 LD A,B
  25.                 OR C                            ;ЗДЕСЬ КОЛИЧЕСТВО НАЙДЕННЫХ ОПИСАТЕЛЕЙ В HL
  26.                 JR NZ,SEARCHF1
  27.                 LD IX,NOFILES
  28.                 JR ERROR
  29.  
  30. SEARCHF1        PUSH BC
  31.                 PCALL SORT_FINDFILES,P_RST8
  32.                 EVOPORT WIN_A1,P_ADDON1
  33.                 LD IX,LEGEND_EXT
  34.                 CALL ITWINW
  35.                 POP BC
  36. FBR00           PUSH BC
  37.                 LD IX,FILESBROWSER
  38.                 CALL ITWINW
  39.                 EVOPORT WIN_P3,PAGE_TEMP
  40.                 POP BC
  41.                 BIT 7,(IX+7)
  42.                 JR NZ,FBR02
  43.                 LD (IX+0X0A),C
  44.                 LD (IX+0X0B),B                  ;КОЛИЧЕСТВО ПУНКТОВ
  45.                 LD L,(IX+8)
  46.                 LD H,(IX+9)                     ;ПОЛУЧИЛИ НОМЕР ТЕКУЩЕЙ ПОЗИЦИИ
  47.                 LD E,(IX+7)                     ;ПОЛУЧИЛИ ПОЗИЦИЮ КУРСОРА В ОКНЕ
  48.                 JR FBR06
  49.  
  50. FBR02           LD L,(IX+8)
  51.                 LD H,(IX+9)
  52.                 LD A,(HL)
  53.                 INC HL
  54.                 LD E,(HL)
  55.                 INC HL
  56.                 LD D,(HL)
  57.                 INC HL
  58.                 LD (HL),C
  59.                 INC HL
  60.                 LD (HL),B
  61.                 EX DE,HL
  62.                 LD E,A
  63. FBR06           XOR A
  64.                 LD D,A
  65.                 SBC HL,DE                       ;ВЫЧИСЛИЛИ ПОЗИЦИЮ ФАЙЛА С КОТОРОГО БУДЕМ ВЫВОДИТЬ
  66.                 LD DE,CPU3
  67.                 ADD HL,HL
  68.                 ADD HL,DE
  69.                 LD D,(IX+0)
  70.                 LD E,(IX+1)
  71.                 INC D
  72.                 INC E                           ;ВЫЧИСЛИЛИ ПОЗИЦИЮ ВЫВОДА НА ЭКРАН
  73.                 LD A,C
  74.                 CP V_FILES-2
  75.                 JR C,OTF2
  76.                 LD C,V_FILES-2
  77. OTF2            PUSH BC
  78.                 LD C,(HL)
  79.                 INC HL
  80.                 LD B,(HL)
  81.                 INC HL
  82.                 PUSH HL
  83.                 PUSH DE
  84.                 PCALL POSTF06,P_RST8
  85.                 LD HL,BUF_256
  86.                 PCALL READ_DIR,P_RST8
  87.                 LD DE,SUPPORT_EXT
  88.                 PCALL CP_EXT,P_RST8
  89.                 EX AF,AF'
  90.                 POP DE
  91.                 PUSH DE
  92.                 LD BC,0X0B
  93.                 ADD HL,BC
  94.                 LD A,(HL)
  95.                 SBC HL,BC
  96.                 AND 0X10
  97.                 LD A,BLUE<<3+WHITE+BR_INK
  98.                 LD (OUT_NAME_FILE+1),A          ;ЕСЛИ ДИРЕКТОРИЯ ТО ЦВЕТ БЕЛЫЙ
  99.                 JR NZ,OTF9
  100.                 EX AF,AF'
  101.                 LD L,A
  102.                 INC A
  103.                 JR Z,OTF8
  104.                 LD A,L
  105. OTF8            LD HL,COLOR_EXT
  106.                 ADD A,L
  107.                 LD L,A
  108.                 ADC A,H
  109.                 SUB L
  110.                 LD A,(HL)
  111.                 ADD A,BLUE<<3+BR_INK
  112.                 LD (OUT_NAME_FILE+1),A
  113. OTF9            LD HL,BUF_256
  114.                 PCALL GET_LONGNAME,P_RST8
  115.                 POP DE
  116.                 PUSH DE
  117.                 CALL FILENAME8_3
  118.                 POP DE
  119.                 POP HL
  120.                 POP BC
  121.                 INC E
  122.                 DEC C
  123.                 JR NZ,OTF2
  124.                 EVOPORT WIN_P3,VMODE7_0
  125.                 JP SET_ADR_ATR
  126.  
  127. FILENAME8_3     LD C,A
  128.                 LD B,0
  129.                 EX DE,HL
  130.                 LD (OUT_NAME_FILET),HL
  131.                 LD HL,BUF_256
  132.                 LD A,H_FILES-3
  133.                 CP C
  134.                 JR Z,OTF7
  135.                 JR NC,OTF6
  136.                 EX DE,HL
  137.                 LD HL,H_FILES-3
  138.                 ADD HL,DE
  139.                 LD (HL),">"
  140.                 INC HL
  141.                 LD (HL),0
  142.                 JR OTF7
  143.  
  144. OTF6            SUB C
  145.                 ADD HL,BC
  146.                 LD C,A
  147.                 LD D,H
  148.                 LD E,L
  149.                 INC DE
  150.                 LD (HL)," "
  151.                 LDIR
  152.                 XOR A
  153.                 LD (DE),A
  154. OTF7            LD HL,OUT_NAME_FILE
  155.                 CALL ITPRINT_MESSAGE
  156.                 LD HL,BUF_256
  157.                 JP ITPRINT_MESSAGE
  158.  
  159. ;ВЫБОР ФАЙЛА ИЛИ ХОЖДЕНИЕ ПО ДИРЕКТОРИЯМ
  160. SELECT_FILE     DI
  161.                 EVOPORT WIN_P3,PAGE_TEMP
  162.                 LD L,(IX+8)
  163.                 LD H,(IX+9)                     ;ВЗЯЛИ НОМЕР ФАЙЛА/ДИРЫ ИЛИ АДРЕС ГДЕ ЭТО ЛЕЖИТ
  164.                 BIT 7,(IX+7)
  165.                 JR Z,SELFILES01
  166.                 INC HL
  167.                 LD E,(HL)
  168.                 INC HL
  169.                 LD D,(HL)                       ;ЕСЛИ АДРЕС ТО ИЗВЛЕКЛИ ОТТУДА НОМЕР
  170.                 EX DE,HL
  171. SELFILES01      LD DE,CPU3
  172.                 ADD HL,HL
  173.                 ADD HL,DE
  174.                 LD C,(HL)
  175.                 INC HL
  176.                 LD B,(HL)                       ;ВЗЯЛИ РЕАЛЬНЫЙ НОМЕР ФАЙЛА/ДИРЫ
  177.                 PCALL POSTF06,P_RST8            ;УСТАНОВИЛИ ПОЗИЦИЮ
  178.                 LD HL,BUF_256
  179.                 PCALL READ_DIR,P_RST8           ;ПОЛУЧИЛИ АДРЕС ОТКУДА ОПИСАТЕЛЬ ВЗЯТЬ
  180.                 PUSH HL
  181.                 LD DE,BUF_FILEITEM
  182.                 LD BC,0X20
  183.                 LDIR                            ;ПЕРЕНЕСЛИ ОПИСАТЕЛЬ В БУФЕР
  184.                 POP HL
  185.                 LD DE,0X0B
  186.                 ADD HL,DE
  187.                 LD A,(HL)
  188.                 SBC HL,DE
  189.                 AND 0X10                        ;ПРОВЕРЯЕМ ФАЙЛ ИЛИ ДИРА
  190.                 JP Z,SELFILES03                 ;ВЫБРАН ФАЙЛ ИДЕМ ДАЛЕЕ
  191. ;ВЫБРАНА ДИРА
  192.                 PCALL ENTER_DIR,P_RST8          ;ВХОДИМ В ДИРУ
  193.                 LD HL,BUF_PATH
  194.                 PCALL GET_PATH,P_RST8           ;ПОЛУЧАЕМ ПУТЬ ПОСЛЕ ВХОДА
  195.                 EVOPORT WIN_A1,P_ADDON1
  196.                 LD A,(HL)
  197.                 SUB "E"
  198.                 LD H,A
  199.                 LD L,0
  200.                 SRL H
  201.                 RR L
  202.                 SRL H
  203.                 RR L
  204.                 LD DE,BUF_WINPATH
  205.                 ADD HL,DE
  206.                 LD A,(BUF_FILEITEM)
  207.                 CP "."
  208.                 JP NZ,SELFILES02                ;ВХОД В ДИРЕКТОРИЮ
  209. ;ВЫХОД ИЗ ДИРЕКТОРИИ, ВОССТАНОВЛЕНИЕ УСТАНОВОК ОКНА ПРЕДЫДУЩЕГО УРОВНЯ
  210.                 LD A,(HL)
  211.                 ADD A,A
  212.                 ADD A,(HL)
  213.                 LD C,A
  214.                 LD B,0
  215.                 DEC (HL)                        ;ПЕРЕШЛИ НА ПРЕДЫДУЩУЮ ПОЗИЦИЮ
  216.                 INC HL
  217.                 ADD HL,BC
  218.                 DEC HL
  219.                 LD B,(HL)
  220.                 DEC HL
  221.                 LD C,(HL)
  222.                 DEC HL
  223.                 LD A,(HL)
  224.                 BIT 7,(IX+7)
  225.                 JR NZ,SELFILES04
  226.                 LD (IX+7),A
  227.                 LD (IX+8),C
  228.                 LD (IX+9),B
  229.                 PCALL FIND_FILEITEM,P_RST8
  230.                 LD (IX+0X0A),C
  231.                 LD (IX+0X0B),B
  232.                 JR SELFILES05
  233.  
  234. SELFILES04      LD L,(IX+8)
  235.                 LD H,(IX+9)
  236.                 LD (HL),A
  237.                 INC HL
  238.                 LD (HL),C
  239.                 INC HL
  240.                 LD (HL),B
  241.                 INC HL
  242.                 PUSH HL
  243.                 PCALL FIND_FILEITEM,P_RST8
  244.                 LD B,H
  245.                 LD C,L
  246.                 POP HL
  247.                 LD (HL),C
  248.                 INC HL
  249.                 LD (HL),B
  250. SELFILES05      PUSH BC
  251.                 PCALL SORT_FINDFILES,P_RST8
  252.                 POP BC
  253.                 JP FBR00
  254.  
  255. ;ВХОД В ДИРЕКТОРИЮ, СОХРАНЕНИЕ ТЕКУЩИХ УСТАНОВОК ОКНА
  256. SELFILES02      LD A,(HL)
  257.                 CP 0X10
  258.                 RET NC
  259.                 LD A,(HL)
  260.                 ADD A,A
  261.                 ADD A,(HL)
  262.                 INC (HL)
  263.                 INC HL
  264.                 LD C,A
  265.                 LD B,0
  266.                 ADD HL,BC
  267.                 BIT 7,(IX+7)
  268.                 JR NZ,SELFILES06
  269.                 LD A,(IX+7)
  270.                 LD (HL),A
  271.                 INC HL
  272.                 LD A,(IX+8)
  273.                 LD (HL),A
  274.                 INC HL
  275.                 LD A,(IX+9)
  276.                 LD (HL),A
  277.                 INC HL
  278.                 PCALL FIND_FILEITEM,P_RST8
  279.                 XOR A
  280.                 LD (IX+7),A
  281.                 LD (IX+8),A
  282.                 LD (IX+9),A
  283.                 LD (IX+0X0A),L
  284.                 LD (IX+0X0B),H
  285.                 LD B,H
  286.                 LD C,L
  287.                 JP SELFILES05
  288.  
  289. SELFILES06      LD E,(IX+8)
  290.                 LD D,(IX+9)
  291.                 EX DE,HL
  292.                 LDI
  293.                 LDI
  294.                 LDI
  295.                 PCALL FIND_FILEITEM,P_RST8
  296.                 LD L,(IX+8)
  297.                 LD H,(IX+9)
  298.                 XOR A
  299.                 LD (HL),A
  300.                 INC HL
  301.                 LD (HL),A
  302.                 INC HL
  303.                 LD (HL),A
  304.                 JP SELFILES05
  305.  
  306. SELFILES03      LD HL,BUF_FILEITEM
  307.                 LD DE,SUPPORT_EXT
  308.                 PCALL CP_EXT,P_RST8
  309.                 CP _SPG                         ;ТОЛЬКО ОБРАЗЫ TRD,SCL,FDI,TAP
  310.                 RET NC
  311.                 LD (EXT_TYPE),A
  312.                 CP _TRD
  313.                 JR NZ,LOADIMAGES
  314.                 LD IX,SEL_MOUNT                 ;ВЫВОД МЕНЮ МОНТИРОВАНИЯ ИЛИ ЗАГРУЗКИ В РАМДИСК
  315.                 CALL ITWINW
  316.                 JP SET_ADR_ATR
  317.  
  318. LOADIMAGES      PCALL LOADIMAGE,P_RST8
  319.                 JP C,ERROR
  320.                 JP RESTART_MAIN
  321.  
  322. MOUNT_A         XOR A
  323.                 JR MOUNT_TRD
  324.  
  325. MOUNT_B         LD A,1
  326.                 JR MOUNT_TRD
  327.  
  328. MOUNT_C         LD A,2
  329.                 JR MOUNT_TRD
  330.  
  331. MOUNT_D         LD A,3
  332. MOUNT_TRD       PCALL OPEN_MOUNT_INT,P_RST8
  333.                 JP RESTART_MAIN
  334.  
  335. ;СМЕНА ДИСКА/РАЗДЕЛА
  336. SELECT_DRIVE    DI
  337.                 LD IX,ENMI_SERVICE              ;ОПИСАТЕЛЬ ОКНА ВЫБОРА ДИСКА/РАЗДЕЛА
  338.                 LD HL,SEL_DRIVE
  339.                 LD D,IXH
  340.                 LD E,IXL
  341.                 LD BC,ESEL_DRIVE-SEL_DRIVE
  342.                 LDIR
  343.                 LD BC,0X14-(ESEL_DRIVE-SEL_DRIVE)
  344.                 EX DE,HL
  345.                 ADD HL,BC
  346.                 LD (IX+0X0C),L
  347.                 LD (IX+0X0D),H
  348.                 EX DE,HL
  349.                 LD BC,ETXT_SELDRIVES-TXT_SELDRIVES
  350.                 LDIR
  351.                 LD A,(SETDVOL)                  ;НОМЕР ТЕКУЩЕГО ДИСКА/РАЗДЕЛА
  352.                 LD (IX+7),A
  353.                 LD (IX+8),A
  354.                 LD (IX+9),0
  355.                 LD A,(KOLDVOL)                  ;КОЛИЧЕСТВО РАЗДЕЛОВ
  356.                 LD (IX+0X0A),A
  357.                 LD (IX+0X0B),0
  358.                 LD B,A
  359.                 ADD A,2
  360.                 LD (IX+2),A                     ;УСТАНОВИЛИ ВЫСОТУ ОКНА
  361.                 PUSH DE
  362.                 LD DE,6
  363.                 LD HL,BUF_TABLVOL
  364.                 EXX
  365.                 POP HL
  366.                 EXX
  367. SELECTDRIVE1    EXX
  368.                 LD (HL),0X0D
  369.                 INC HL
  370.                 LD (HL)," "
  371.                 INC HL
  372.                 EXX
  373.                 LD A,(HL)
  374.                 INC HL
  375.                 LD C,(HL)
  376.                 INC HL
  377.                 ADD A,C
  378.                 ADD A,C
  379.                 SUB 4
  380.                 ADD A,A
  381.                 ADD A,A
  382.                 ADD A,A
  383.                 ADD A,A
  384.                 EXX
  385.                 EX DE,HL
  386.                 LD HL,TXT4MENU_DEVICE
  387.                 LD C,A
  388.                 LD B,0
  389.                 ADD HL,BC
  390.                 LD BC,0X10
  391.                 EXX
  392.                 LD A,L
  393.                 EXX
  394.                 RRCA
  395.                 RRCA
  396.                 RRCA
  397.                 AND 0X1F
  398.                 ADD A,"E"
  399.                 LD (DE),A
  400.                 INC DE
  401.                 LDIR
  402.                 EXX
  403.                 LD A,(HL)
  404.                 EXX
  405.                 LD C,A
  406.                 ADD A,A
  407.                 ADD A,A
  408.                 ADD A,C
  409.                 LD HL,TXT4MENU_TYPE
  410.                 LD C,A
  411.                 ADD HL,BC
  412.                 LD C,5
  413.                 LDIR
  414.                 EX DE,HL
  415.                 EXX
  416.                 ADD HL,DE
  417.                 DJNZ SELECTDRIVE1
  418.                 EXX
  419.                 LD (HL),0
  420.                 INC HL
  421.                 LD B,(IX+2)
  422.                 DEC B
  423.                 DEC B
  424.                 LD C,B
  425.                 LD A,"e"
  426.                 LD (IX+0X12),L
  427.                 LD (IX+0X13),H                  ;УСТАНОВКА АДРЕСА ГОРЯЧИХ КЛАВИШ МЕНЮ
  428.                 LD (HL),B
  429.                 INC HL
  430. SELECTDRIVE2    LD (HL),A
  431.                 INC HL
  432.                 INC A
  433.                 DJNZ SELECTDRIVE2
  434.                 LD (IX+0X0E),L
  435.                 LD (IX+0X0F),H                  ;УСТАНОВКА АДРЕСА СПИСКА ПОДПРОГРАММ
  436.                 LD B,C
  437. SELECTDRIVE3    LD (HL),LOW (SELDRIVE)
  438.                 INC HL
  439.                 LD (HL),HIGH (SELDRIVE)
  440.                 INC HL
  441.                 DJNZ SELECTDRIVE3
  442.                 LD A,C
  443.                 EXX
  444.                 DEC A
  445.                 CALL ITWINW
  446.                 JP SET_ADR_ATR
  447.  
  448. SELDRIVE        LD A,(IX+7)
  449.                 PCALL SET_VOL,P_RST8
  450.                 JP FILEBROWSE1
  451.