Page 57 of 77

Re: Помогите новичку

Posted: Sat Sep 21, 2013 8:01 pm
by 0CodErr
У меня вопрос по поводу папок с именем "..".
Нормально ли их существование и возможность их создания, ведь большинство ФМ не хотят в них заходить:
Spoiler:
22.PNG
22.PNG (60.2 KiB)
Viewed 4783 times

Re: Помогите новичку

Posted: Sat Sep 21, 2013 8:21 pm
by Mario_r4
И правильно делают - не надо их создавать, обычно они уже есть и это выход на предыдущий уровень пути.

Re: Помогите новичку

Posted: Sat Sep 21, 2013 8:57 pm
by 0CodErr
Mario_r4, я согласен, что это должен быть выход на предыдущий уровень.
Вот я зашёл на раздел XFS:
Spoiler:
11111.PNG
11111.PNG (22.03 KiB)
Viewed 4771 times
UPD:

А вот Shell вылетела, хотя папка ".." там была:
Spoiler:
11111.PNG
11111.PNG (35.4 KiB)
Viewed 4764 times

Re: Помогите новичку

Posted: Sat Sep 21, 2013 9:39 pm
by Mario_r4
0CodErr wrote: Вот я зашёл на раздел XFS:
Spoiler:
11111.PNG
Насчет XFS может быть и багом драйвера - все же новый неоттестированный полностью код.
0CodErr wrote: А вот Shell вылетела, хотя папка ".." там была:
Spoiler:
11111.PNG
А вот тут было бы неплохо подробно описать весь процесс пошагово, а то я плохо понимаю при каких условиях получается.

Re: Помогите новичку

Posted: Sat Sep 21, 2013 9:52 pm
by 0CodErr
Mario_r4 wrote:А вот тут было бы неплохо подробно описать весь процесс пошагово
Ну я просто запустил Shell, написал там как на скриншоте "cd /rd/1/3d/.." и нажал Enter. Это было в VirtualBox.
А вот в Qemu, кажется, оно зависло:
Spoiler:
Q.PNG
Q.PNG (22.03 KiB)
Viewed 4755 times

Re: Помогите новичку

Posted: Sat Sep 21, 2013 10:00 pm
by Albom
Что-то мне поведение Shell при работе с ФС после вчерашней правки не нравится...

0CodErr
Можешь проделать описанные тобой действия в Shell 0.6.2?

Re: Помогите новичку

Posted: Sat Sep 21, 2013 10:12 pm
by 0CodErr
Проверил Shell 0.6.2 вместе с svn3921-img в VirtualBox:
Spoiler:
SH.PNG
SH.PNG (41.87 KiB)
Viewed 4747 times

Re: Помогите новичку

Posted: Sat Sep 21, 2013 10:15 pm
by Albom
0CodErr
Спасибо!

Re: Помогите новичку

Posted: Sat Sep 21, 2013 10:38 pm
by punk_joker
0CodErr wrote:Проверил Shell 0.6.2 вместе с svn3921-img в VirtualBox:
Spoiler:
SH.PNG
какова причина ошибки на скрине?

Re: Помогите новичку

Posted: Sat Sep 28, 2013 11:08 am
by 0CodErr
Тут на картинке показано, как при перемещении окна Calc, не выходящего за пределы окна KPack, также перерисовывается Debugger, окно которого находится ниже окна KPack:
Spoiler:
1.gif
1.gif (106.36 KiB)
Viewed 4702 times
Подобное происходит и с другими приложениями. Так ведь не должно быть?

Re: Помогите новичку

Posted: Sat Sep 28, 2013 3:28 pm
by Mario_r4
0CodErr wrote:Подобное происходит и с другими приложениями. Так ведь не должно быть?
Да, ты прав и нужно выяснить с какой ревизии это произошло.

Re: Помогите новичку

Posted: Sat Sep 28, 2013 7:50 pm
by Mario_r4
0CodErr
Хотя я ошибся - это всегда так было. Алгоритм пересчета тупо заставляет перерисовываться все окна поверх которых произошло изменение. Не самый лучший вариант разумеется. На приложениях где вывод организован более рационально (к примеру, KFAR) этот эффект не заметен визуально, хотя окно перерисовывается так же как и у других приложений.

Re: Помогите новичку

Posted: Sun Sep 29, 2013 6:45 am
by Mario_r4
0CodErr wrote:Тут на картинке показано, как при перемещении окна Calc, не выходящего за пределы окна KPack, также перерисовывается Debugger, окно которого находится ниже окна KPack:
Spoiler:
1.gif
Подобное происходит и с другими приложениями. Так ведь не должно быть?
Исправлено в SVN r. 3936.

Re: Помогите новичку

Posted: Sun Sep 29, 2013 4:11 pm
by dunkaist
0CodErr wrote:Mario_r4, я согласен, что это должен быть выход на предыдущий уровень.
Вот я зашёл на раздел XFS:
Spoiler:
11111.PNG
Вот я зашёл на раздел XFS в линуксе:

Code: Select all

[dunkaist@ddesk ~]$ cd /
[dunkaist@ddesk /]$ ls
bin  boot  dev	etc  home  lib	lib64  mnt  opt  proc  root  run  sbin	srv  sys  tmp  usr  var
[dunkaist@ddesk /]$ cd ..
[dunkaist@ddesk /]$ ls
bin  boot  dev	etc  home  lib	lib64  mnt  opt  proc  root  run  sbin	srv  sys  tmp  usr  var
[dunkaist@ddesk /]$ cd ../../../../../././././././../../..
[dunkaist@ddesk /]$ ls
bin  boot  dev	etc  home  lib	lib64  mnt  opt  proc  root  run  sbin	srv  sys  tmp  usr  var
Т.е. по факту поддиректории '.' и '..' есть в каждой директории, включая корневую. Только в корневой '..' указывает на себя.
В колибри '..' и '.' в корне не разрешены, как ты цитировал документацию в теме XFS. Это не самая страшная проблема с XFS на сегодня, но я буду иметь в виду.

На мой взгляд, запрет как минимум '.' директории в корне излишен. Корень ведь существует. Но пока есть хоть какая-то документация, буду стараться ей следовать.

Re: Помогите новичку

Posted: Mon Oct 07, 2013 9:39 pm
by 0CodErr
Запустил сейчас снова тот свой код viewtopic.php?p=44424#p44424
Но теперь вместо «файл не найден» возвращается «успешно».
Ради интереса попробовал ещё другие пути(со слэшами и без) — тоже всегда «успешно».
Вот изменённый исходник:
Spoiler:

Code: Select all

ORG 0
BITS 32
; ---------------------------------------------------------------------------- ;
STACK_SIZE         equ 256
; ---------------------------------------------------------------------------- ;
MENUET01           db 'MENUET01'
version            dd 1
program.start      dd start_
program.end        dd end_
program.memory     dd end_ + STACK_SIZE
program.stack      dd end_ + STACK_SIZE
program.params     dd 0
program.path       dd 0
; ---------------------------------------------------------------------------- ;
start_:
        call   on_redraw
wait.event:
        mov    eax, 10
        int    64
        cmp    eax, 1
        jne    key?
        call   on_redraw
        jmp    wait.event
key?:
        cmp    eax, 2
        jne    program.terminate
        ; get.key.code
        ; mov eax, 2
        int    64
        jmp    wait.event
program.terminate:
        or     eax, -1
        int    64
on_redraw:
; redraw.start
        mov    eax, 12
        mov    ebx, 1
        int    64
; draw.window
        xor    eax, eax
        mov    ebx, 444
        mov    ecx, 444
        mov    edx, 33CCDDEEh
        xor    edi, edi
        int    64

        mov    edi, (FolderNames.end - FolderNames) / 4
; ---------------------------------------------------------------------------- ;
next:
        mov    eax, [edi * 4 + FolderNames - 4]
        mov    [read.file_info.Folder], eax
; read.folder
        mov    eax, 70
        mov    ebx, read.file_info
        int    64
; draw.text
        mov    edx, [eax * 4 + errors]
        mov    eax, 4
        lea    ebx, [edi * 4 + edi]
        shl    ebx, 1
        add    ebx, (80 + 10) << 16
        mov    ecx, 90090900h
        int    64
; draw.text
        mov    edx, [edi * 4 + FolderNames - 4]
        sub    ebx, 80 << 16
        int    64

        dec    edi
        jnz    next
; ---------------------------------------------------------------------------- ;
; redraw.finish
        mov    eax, 12
        mov    ebx, 2
        int    64
        ret
; ---------------------------------------------------------------------------- ;
read.file_info:
        dd      1
        dd      0
        dd      0
        dd      0
        dd      .buffer
        db      0
.Folder dd      0
.buffer resb    32
; ---------------------------------------------------------------------------- ;
FolderNames:
        dd     .0
        dd     .1
        dd     .2
        dd     .3
        dd     .4
        dd     .5
        dd     .6
        dd     .7
        dd     .8
        dd     .9
        dd     .10
        dd     .11
        dd     .12
        dd     .13
        dd     .14
        dd     .15
        dd     .16
        dd     .17
        dd     .18
        dd     .19
        dd     .20
        dd     .21
        dd     .22
        dd     .23
.end:
; ---------------------------------------------------------------------------- ;
.0      db     "",0
.1      db     "/",0
.2      db     "/bd0",0
.3      db     "/bd0/",0
.4      db     "/bd0/1",0
.5      db     "/bd0/1/",0
.6      db     "/hd0",0
.7      db     "/hd0/",0
.8      db     "/hd0/1",0
.9      db     "/hd0/1/",0
.10     db     "/cd2",0
.11     db     "/cd2/",0
.12     db     "/cd2/1",0
.13     db     "/cd2/1/",0
.14     db     "/rd",0
.15     db     "/rd/",0
.16     db     "/rd/1",0
.17     db     "/rd/1/",0
.18     db     "/tmp1",0
.19     db     "/tmp1/",0
.20     db     "/tmp1/1",0
.21     db     "/tmp1/1/",0
.22     db     "/sys",0
.23     db     "/sys/",0
; ---------------------------------------------------------------------------- ;
errors:
        dd     .0
        dd     .1
        dd     .2
        dd     .3
        dd     .4
        dd     .5
        dd     .6
        dd     .7
        dd     .8
        dd     .9
        dd     .10
        dd     .11
; ---------------------------------------------------------------------------- ;
.0      db     "0 = успешно",0
.1      db     "1 = не определена база и/или раздел жёсткого диска" ,0
.2      db     "2 = функция не поддерживается для данной файловой системы",0
.3      db     "3 = неизвестная файловая система",0
.4      db     "4 = зарезервировано, никогда не возвращается в текущей реализации",0
.5      db     "5 = файл не найден",0
.6      db     "6 = файл закончился",0
.7      db     "7 = указатель вне памяти приложения",0
.8      db     "8 = диск заполнен",0
.9      db     "9 = таблица FAT разрушена",0
.10     db     "10 = доступ запрещён",0
.11     db     "11 = ошибка устройства",0
; ---------------------------------------------------------------------------- ;
end_:
Что, интересно, изменилось с того времени?