На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Кто знает как читать с CD без MSCDEX?
    Пиплы, занялся тут написанием проги-шелла, с поддержкой длинных имён в чистом ДОСе, но не знаю как читать инфу с компакта (по секторам !?!). Подскажите плз...
      *** Эх, и геморройным делом ты решил заняться!!! ***
      Чем тебе MSCDEX не нравится? У MSCDEX есть функция чтения секторов... Только вот, файловая система (и начальный сектор) на CD-ROM несколько другая. Да и сектор занимает не 512 байт, а 2048 (хотя, если точнее, то 2560, но в немузыкальных дисках используется только 2048 :) !!! Если не использовать MSCDEX, то скорее всего придётся работать через порты (хотя, возможно, я ошибаюсь, но уж никак ни через INT 13/25/26), а отсюда поползут проблемы, связанные с многообразием контроллеров...
      А если уж ОООЧЕНЬ хочется узнать, как это делается, запусти функцию MSCDEX и проследи её отладчиком :)))...
      ExpandedWrap disabled
        Var
           FirstCDROM: Word;    { Номер первого устройства 0=A, 1=B... }
           CDROMsNumber: Word;  { Количество устройств }
           CDROMResult: Word;   { Код ошибки }
        Function GetCDROMInfo; assembler;
        Asm
           mov ax,1500h
           xor bx,bx
           xor cx,cx
           int 2Fh
           xor al,al
           or bx,bx
           jz @Error
           inc ax
           mov FirstCDROM,cx
           mov CDROMsNumber,bx
         @Error:
        End;
        Procedure ReadCDROMSectors(Drive: Word; Sec: Longint; Count: Word; var Buf); assembler;
        { Sec >=16 . Музыкальные диски не читаются вообще :( }
        Asm
           mov ax,1508h
           mov cx,Drive
           mov dx,Count
           mov si,word ptr Sec+2
           mov di,word ptr Sec
           les bx,Buf
           int 2Fh
           mov CDROMResult,ax
        End;

      Если нужна дока по MSCDEX (по которой всё это писалось), напиши мне на мыло...
      Удачи! ;)))
        to 7in:
        Как распознать по исходнику, использует ли прога МсцДекс, если в описании этого явно не сказано? При этом видно, что в тексте используется Int 2Fh/15xxh.
          Valery Votintsev: Скорее всего использует, потому что Int 2Fh/15xxh кроме MSCDEX используют только старые версии Graphics.com и какой-то CDBLITZ (и то при BX=1234h и CH=9xh).
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0273 ]   [ 16 queries used ]   [ Generated: 28.03.24, 08:56 GMT ]