Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: Орион - Вопросы и ответы.

  1. #1
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Орион - Вопросы и ответы.

    Предлагаю задавать вопросы в этом треде, полезное каталогизировать в формате FAQ.

    Программная часть

    1. Утилиты для обработки образов Fdd-дисков *.odi и hdd(sd)-дисков *.ohi,
      .
      {Q} Каким образом на ПЦ можно добавлять/удалять файлы в образе .ohi?
      {A} В составе эмулятора распространяются плагины для TotalCommander и Far, которые могут быть подключены как архиваторные плагины этих файловых менеджеров и обеспечить в этих файловых менеджерах пофайловое копирование из/в образ диска *.odi, *.ohi работая с образом диска как с обычными подкаталогами ("входить" в образ как в подкаталог).
      Установка odi.wcx:
      Код:
         How to install this plugin (32 bit only) in TotalCommander:       
                1. Unzip odi.wcx, system.bin to any directory              
                      (usually c:\wincmd\Plugins)                          
                2. In Windows Commander 5.5 (or newer), choose             
                      Configuration - Options                              
                3. Open the 'Packer' page                                  
                4. Click 'Configure packer extension DLLs'                 
                5. type the "ODI" extension                                
                6. Click 'new type', and select the  odi.wcx               
                7. Click OK.  Click OK                                     
                8. Repeat steps 2-7 for other supported (specified in      
                     ODI.INI) formats - such as TRD, DSK, etc.             
                                                                           
         How to install this plugin (32 bit only) in Far Manager:          
                0. Install wcx.dll (plugin allowing TC WCX-plugins usage   
                   in Far) to                                              
                         {FAR_DIR}\Plugins\Multiarc\Formats\WCX\           
                   Install wcx.fmt to                                      
                         {FAR_DIR}\Plugins\Multiarc\Formats\               
                1. Unzip odi.wcx, system.bin to                            
                         {FAR_DIR}\Plugins\Multiarc\Formats\WCX\           
                1.2. To Support any other CP/M format (specified in INI),  
                     just copy ODI.WCX, ODI.INI to files with              
                     file name corresponding to format extension (for      
                     example:  DSK.WCX, DSK.INI ;  TRD.WCX, TRD.INI) to    
                         {FAR_DIR}\Plugins\Multiarc\Formats\WCX\           
                2. Restart Far
      ohi.wcx устанавливается полностью аналогично. Только тип (расширение) в пункте 5 указываем не "ODI", а "OHI", в пункте 6 выбираем ohi.wcx, а пункта 8 не будет вообще. Небольшой неприятный ньюанс. Т.к. при обработке *.ohi для простоты реализации в качестве обработчика файловой системы CP/M используется odi.wcx (которая есть DLL) и винда ее кэшируетс вместе с сегментом данных, то единожды открыв один ohi-образ можно работать только с ним. Корректно обрабатывать другой образ можно только перезапустив TC/Far. Возможно позже плагин будет переписан для работы без odi.wcx - тогда этого эффекта не будет.
      .
      .
    2. Altair-DOS V3.x
      .
      .
      {Q} Как "сшить" ранее выложенный образ SD (или IDE) c новым образом (установить на системные дорожки операционную систему)?
      {A} Операционная система (ОС) устанавливается из файла с кодом ОС. Теоретически, записать код ОС на системные дорожки можно при помощи утилиты POWER, но тогда потеряются контрольные суммы спецобластей AltairDOS (символьные имена USER-ов, даты файлов), что неудобно. Чтоб это обойти, рекомендую такую последовательность действий:
      • запустить под Altair-DOS V3.x драйвер низкоуровневого доступа IDEBDOS.COM. Для варианта SD-карты использовать IDEBDOS.COM версии не ниже 1.3 и запускать его с параметром "sd" (по-умолчанию, т.е. без параметра "sd", работа идет с IDE по схеме на i8255):

        Код:
        C:\>idebdos sd
        
        IDEBDOS V1.3. (c) 2010 Serge.  ?=HELP  Port: F762
        
        Begin devices autodetect (less then 20sec per device)... be patient!
        Detected Altair DOS 3.x or higher.
        
        SD-card: MSX v1 scheme
        
        Model: FILE      Rev:   1.0,  Total:      32Mb
        
        C:\>
      • Запустить программу FDISK.COM (следите чтобы fdisk был той же версии, что и idebdos - разноверсионные варианты могут быть несовместимы):

        Код:
        C:\>fdisk
        Код:
          FDISK v1.3 - Fixed Disks Partition Manager. Type 'FDISK -?' for help
                           Public Domain Software by Serge.
        
        Current drive: 0 (Master, Total 32M, Free 0K). UPCASE=active partition
        
        +-+---------------------------------------------------------------------------+
        |m|ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc|
        +-+---------------------------------------------------------------------------+
           32M
         [m]-MBR, [e]-empty; partitions: [f]-FAT, [c]-CP/M, [u]-UZIX, [o]-other
        
                                     FDISK Options
        
            Choose one of the following:
        
            1. Create partition
            2. Set Active partition
            3. Delete partition
            4. MBR Maintenance
        
            Enter choice (1..4, A,Q=Abort=Quit):
      • Выбрать пункт 1 - "Create partition" (нажать кнопку "1"), затем пункт 5 "Sysgen CPM from the file", ввести порядковый номер партиции куда из файла будем копировать код ОС (ввод завершаем кнопкой "Enter"), ввести имя файла (файл должен быть на текущем диске в текущем USER или в USER-по_умолчению, настроенному в config.sys переменной PATH. Ввод завершаем кнопкой "Enter"). Fdisk запишет код ОС на системные дорожки:
        Код:
          FDISK v1.3 - Fixed Disks Partition Manager. Type 'FDISK -?' for help
                           Public Domain Software by Serge.
        
        Current drive: 0 (Master, Total 32M, Free 0K). UPCASE=active partition
        
        +-+---------------------------------------------------------------------------+
        |m|ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc|
        +-+---------------------------------------------------------------------------+
           32M
         [m]-MBR, [e]-empty; partitions: [f]-FAT, [c]-CP/M, [u]-UZIX, [o]-other
        
        
            Enter name of file containig Altair DOS code: dos.bin
        bootsector..usernames..filedates..code.......................................
        Operation `Sysgen CPM from the file` with partition 1 completed. Press any key
        Код ОС записан, при перезагрузке он начнет выполняться.
        ВНИМАНИЕ! Выполнение кода ОС зависит от параметров, передаваемых из MBR (Master Boot Record) при загрузке. Желательно также переписать на подготавливаемый диск (куда уже записали код ОС) и MBR (со старым, несоответствующим MBR возможны глюки при загрузке).
        Записать MBR можно опять же при помощи fdisk.com. Сначала с образцового диска нужно записать код MBR в файл (FDISK: 4. MBR Maintenance -> 3. Save the MBR to a file), затем на целевом диске записать MBR из этого файла (FDISK: 4. MBR Maintenance -> 2. Copy MBR boot code from file).
        Можно поступить проще, в один шаг: записать на целевой диск образцовый MBR из тела FDISK (FDISK: 4. MBR Maintenance -> 1. Create ZBootLoader MBR). В FDISK версии 1.3 находится последний на настоящий момент MBR, но это не всегда будет так, поэтому этот более простой шаг потенциально небезопасен.
        Примечание: если на диске (IDE-устройстве, SD-карте) несколько загрузочных разделов, то при старте можно выбрать с какого из разделов загружаться. Для этого выводится меню, в каждый пункт которого выводится метка диска соответствующих разделов (до 16 символов длиной). Настроить метку диска можно командой VOL операционной системы или в одном из пунктов PullDown меню оболочки NC.COM.

      .
      .
      {Q} У меня нет файла с кодом ОС. Можно ли "взять" код ОС в файл с работающего диска?
      {A} Это можно сделать при помощи утилиты POWER.COM
      Код:
      C:\USER_2>power
      
              POWER 3.03 on CP/M 2.22 1/2
      
        Copyright (c) 1981, 1982 by PAVEL BREDER
              All rights reserved. 01/03/83
      
      C2=read 0 1 5000 160
      G=----:-- T=0000 S=001 PS=001 At:5000-507F
      G=----:-- T=0000 S=002 PS=002 At:5080-50FF
      .......
      G=----:-- T=0000 S=160 PS=160 At:9F80-9FFF
      C2=
      C2=save dos.bin 5000 160
      C2=
      C2=exit
      C:\USER_2>
      C:\USER_2>dir
      Volume: Altair DOS v3.4t
      dos     .bin
              Total size:32736k          Free size:31264k
      C:\USER_2>
      .
      .
    Последний раз редактировалось Error404; 18.05.2010 в 10:55.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. Этот пользователь поблагодарил Error404 за это полезное сообщение:
    Ewgeny7 (01.05.2010)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    9,451
    Благодарностей: 3797
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Утилиты, разное
    • IDE, SD, Hddutil.exe
      .
      {Q} Совсем не нашел, как готовить CP/M флешки. Существует ли описание?

      {A} Пока описания нет, но планируется. В качестве первоначального, цитаты с форума:
      .
      Цитата Сообщение от Mick
      Привет, скажи а какая у тебя поддержка под винт есть для Ориона, разбиение, форматирование - софт.
      На Орионе пока сделано так: винт разбивается на стандартные MBR-партиции - как в винде. Поддерживается 4 стандартных master-партиции. И разбитый так винт можно подключать как к PC с виндой (винда работает со своей FAT-партицией, плюс утилитами можно сдампить в образ и обратно и CP/M-партицию), так и к Ориону, который живет (грузится) в своей CP/M партиции и может монтировать другие CP/M партиции этого или второго винта. Размер CP/M партиции меняется от версии к версии (сейчас максимум 100M, хотя CP/M 2.2 позволяет до 512M), и разноразмерных партиций может быть несколько, и не только CPM, но и к примеру, FAT на этом же диске (флешке). Каждая партиция имеет свой тип (CPM=52).
      .
      Под CP/M для Ориона для работы с партициями написана утилита fdisk.com, которая в этом стандарте (MBR-партиции) создает/удаляет партиции и файловые системы CP/M (пример вида fdisk.com см. тут).
      .
      Также портирована библиотека работы с FAT(12/16/32), написана для нее оболочка fat.com (командный режим), и на Орионе из-под CP/M можно в обе стороны пофайлово обмениваться данными с FAT-партициями винды. В отличие от fdisk.com, fat.com понимает extended партиции, т.к. WinXP для FAT-партиций более 32G по дефолту лепит extended-партицию.
      .
      И fat.com, и fdisk.com написаны абстрактно на языке С - они не лезут напрямую ни в экран (работа идет стандартным VT-52), ни к контроллеру IDE - низкоуровневая запись/чтение 512b-блоков вынесены в отдельный драйвер (в моем случае - это IDEBDOS.COM, написанный на asm)
      .
      Варианты загрузки с IDE на i8255 (580вв55) и SD по двум схемам подключения на Орионе:
      - IDE при помощи ПЗУ F800 (один из: M35ZMSH.BIN, M35ZRKH.BIN, M36ZMSH.BIN, M36ZRKH.BIN). ПЗУ при включении питания вместо ORDOS сразу грузит MBR-сектор с master-IDE в ОЗУ по адресу 1:0000 (т.е. с начала второй физической страницы памяти) и передает туда управление. M35* работают с IDE с портoм 0F500h, M36* - с портoм 0F600h. Суффикс *RK* обозначает прошивку для клавиатуры RK-86, *MS* - для клавиатуры МС7007 по лениградской схеме.
      .
      - SD при помощи ПЗУ F800:
      Код:
      M35zmsc.bin - Монитор 3.5, по включению питания загружающийся с SD-карты, подключеной по схеме N8VEM. Клавиатура MS7007 (Лениград).
      M35ZMSS.BIN - Монитор 3.5, по включению питания загружающийся с SD-карты, подключеной по схеме MSX. Клавиатура MS7007 (Лениград).
      M35ZRKC.BIN - Монитор 3.5, по включению питания загружающийся с SD-карты, схема N8VEM. Клавиатура РК-86.
      M35ZRKS.BIN - Монитор 3.5, по включению питания загружающийся с SD-карты, схема MSX. Клавиатура РК-86.
      Поддерживаются оба вида схем подключения SD-карт: N8VEM и MSX.
      Программно пока поддерживаются только SDC-карты (размером до 2Gb). SDHC (4 и более GB) не поддерживаются. Скачать мониторы-SD тут
      .
      - Вариант загрузки из ORDOS. ПЗУ F800 при этом может быть любым. ПЗУ F800 грузит ORDOS и передает ей управление. Под ORDOS используйте утилиту MBOOT$.ord (ее можно прошить в ROM-DISK), которая использует загрузчик, полностью аналогичный Мониторам, но корректирующий в загружаемом с IDE/SD коде MBR-загрузчика и BOOT-сектора CPM все вызовы адреса 0F834h (это подпрограмма чтения с IDE 512-байтного сектора в Мониторах М3*H.BIN) на вызов своей подпрограммы.
      Код:
      MBOOT.ORD - утилита для ORDOS для загрузки с SD-карты (обе схемы, автодетект), IDE (Master и Slave, порт F600), Floppy0 (дисковод А). Монитор - любой.
      .
      В считанном MBR выполняется проверка на наличие кодов AA55h (MBR/boot flag) и C3h (JMP) находящиеся по адресам (от начала бутсектора) 1FEh, 0h соответственно.
      .
      Дальнейшая загрузка происходит так, как написан MBR (в настоящее время он позволяет грузиться по выбору с любого из 4-х primary разделов master-HDD (SD-карты), где есть загрузочный образ CPM. Выводится меню - список меток_дисков [offset +20h] соотвествующих разделов). MBR (а далее и BOOT-сектор раздела) используют п/п 0F834h (или п\п предоставляемую MBOOT$.ord), которая в числе прочих параметров возвращает и базовый адрес ППА IDE / порт SD. Далее этот адрес передается в CPM как базовый адрес порта IDE/SD (F500/F600/F762...) и ядро CPM само себя соответствующе корректирует. Т.е. не важно какой адрес порта IDE/SD будет передан из MBR\BOOT (он может даже не быть F500/F600, а быть, к примеру, F567).

      В качестве образа диска для загрузки с IDE/SD рекомендую диск с игрушками (на нем более-менее свежая версия ОС с поддержкой IDE/SD, в архиве есть readme). Образ уже с размеченными партициями (заливай да пей! ), да и лучшего теста для Z80CardII чем игры - не придумать :
      http://orion-z.mylivepage.ru/file/335/5706_GAMES-sd.zip

      В силу вышеописанного алгоритма работы, корректировать ОС для работы на порту, отличном от F500 (IDE) или F762(SD) не надо, все корректировки адреса ППА IDE надо делать только в Мониторе (ПЗУ F800) или MBOOT$.ord. Некоторые CP/M утилиты, к примеру fat.com, fdisk.com, которым необходимо лезть к IDE "напрямую", т.е. мимо CPM, работают с IDE через драйвер IDEBDOS.COM. Этому драйверу при старте можно в командной строке передать параметры, в т.ч. и номер порта IDE. Например:
      IDEBDOS port:f600

      Залить образ HDD на реальный IDE-диск под Windows можно утилитой HddUtil.exe:
      http://orion-z.hoter.ru/file/355/4538_HddUtil.zip

      Утилита консольная (т.е. запускать из CMD - оно напишет подсказку). Команды - на любой вкус, например можно считать/записать один (к примеру, первый) сектор c параметром /с=1. Утилита тестировалась на чтении/заливке образов с/на как реальных винтов (подключенных к IDE материнской платы), так и для CompactFlash в обычном китайском USB-адаптере (CardReader).

      Сначала выполняем hddutil /list и смотрим какими приводами (с какими номерами) можно оперировать. По косвенным (серийник - если есть, размер карты/диска, наличие и тип партиций) определяем привод куда/откуда заливать образ.

      Заливаем образ. Например, чтобы записать образ GAMES.OHI на hdd, установленный в системе вторым, надо выполнить примерно такое:
      hddutil c:\temp\games.ohi 1: /c=131072

      Если ключ /c не указан, утилита обругается, что размер образа не соответствует размеру диска (защита от дурака - чтобы не ошибиться: не записывать на диск не соотвествующие по размеру образы), и напишет, что если образ не соответствует. В этом случае надо указывать сколько секторов писать (утилита, обругав, укажет требуемое число), например - "/c=12345678". Указываем его. На вопрос о записи ответить "Yes". После завершения счетчика записанных секторов hddutil сообщит "Complete", что означает, что все записалось.

      После записи образа, команда
      hddutil /list
      для привода 1: должна показывать наличие двух СРМ партиций
      .
    • Дубль два

      Цитата Сообщение от ewgeny7 Посмотреть сообщение
      Error404, я у тебя уже спрашивал... Объясни еще раз, пожалуйста. У меня приготовлен винт на 100Мб. Я его подключу как диск D на ПЦ. Отформатирую (FAT32?). Образ с твоего сайта у меня есть. Сижу под ХР.
      Какой утилиткой заливать? Какая командная строка для утилиты?
      Ничего форматировать не надо, файловая система все равно будет другая. Если винт исправен, то он уже отформатирован (размечен для работы с 512-байтными секторами), надо просто образ диска залить на винт. Но винт должен уметь работать в LBA-режиме (это умеют все современные винты, даты выпуска примерно от 1994г. и новее). 100Мб это может быть очень старый винт, который "только-CHS".

      Делать надо так:
      - Качаем образ диска в каталог C:\tmp:
      http://orion-z.mylivepage.ru/file/335/5706_GAMES-sd.zip
      распаковываем

      - Качаем утилиту в каталог C:\tmp:
      http://orion-z.hoter.ru/file/355/4538_HddUtil.zip
      распаковываем
      Утилита консольная, поэтому переходим в cmd (коммандный режим винды, в тот каталог где лежит образ и hddutil, ну или в противном случае надо будет указывать полные пути к файлам)
      Из-под cmd запускаем hddutil.exe без параметров и читаем справку

      - Подключаем диск, куда писать образ, к PC, проверяем\ищем его индекс (номер) в системе командой:
      C:\tmp\hddutil.exe /list
      допустим, это номер 1 (т.к. номер 0 скорее всего это "c:")

      - Пишем наш образ на реальный диск:
      C:\tmp\hddutil.exe C:\tmp\games.ohi 1:
      Оно обругается, что размер образа не соответствует размеру диска (защита от дурака), и напишет, что если образ не соответствует, надо указывать сколько секторов писать - "/c=12345678" (к примеру!), ну и указываем:
      C:\tmp\hddutil.exe C:\tmp\games.ohi 1: /c=12345678
      Начинается запись. Когда счетчик дойдет до 12345678, образ записан.
      Выполняем:
      C:\tmp\hddutil.exe /list
      должно показать, что на диске теперь 2 партиции (раздела)
      .
      Винда в диск-манагере тоже должна видеть 2 партиции + пустое место, но партиции она не распoзнает (unknown)
      .
      Примечание: в качестве утилиты для записи образа HDD на диск/карту можно применить любую другую утилиту, умеющую писать образ на диск "один-в-один" (посекторно).
    Последний раз редактировалось Error404; 14.07.2010 в 10:02.
    Scorpion ZS 1024 turbo+/ZXMC 2.6/SD-HDD/FDD/AT-Keyb/Mouse/SMUC 2.0/ProfROMse/VGA 3.0/NeoGS
    ZX-Evolution 4096 rev.B

    Сайт с документацией к "Scorpion ZS 256"

  5. Этот пользователь поблагодарил Ewgeny7 за это полезное сообщение:
    sergey_sitnik (13.11.2015)

  6. #3
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Программная часть, разное


    1. Программирование
      .
      .
      {Q} Каким методом ты очищаешь экран при старте программ?

      {A} Очистка экрана, очистка строки справа от курсора, позиционирование курсора - все это обычно делаю при помощи управляющих символов Монитора (или CP/M), которые добавлены к строкам выводимым на экран. Монитор их парсит и сам выполняет LDIR нужной области экрана, или позиционирование курсора:
      Код:
      драйвер дисплея игнорирует символы с кодами 00-1FH, вернее интерпретирует их как пробел. Исключение составляют коды 
      управления работой дисплея:
        08Н - перемещение курсора на одну позицию влево. 
        09Н - горизонтальная табуляция. Установка курсора в ближайшую позицию в 
        строке, кратную четырем. 
        0АН - перемещение курсора вниз на одну строку в той же позиции. Если такой 
        переход происходит в самой нижней строке, то включается режим “Скроллинг” 
        (смещение всего изображения экрана на одну строку вверх). 
        0СН - установка курсора в левый верхний угол экрана. 
        0DH - установка курсора в первую позицию строки. 
        18Н-перемещение курсора на одну позицию вправо. 
        19Н - перемещение курсора на одну позицию вверх. 
        1АН - перемещение курсора на одну позицию вниз. 
        1FH - стирание экрана, курсор установить в верхний левый угол. 
        7FH - переключение вывода символов на экран дисплея в инверсном виде (белый 
        фон, черные символы). Выключение - повторный ввод кода 7FH. 
      МОНИТОР-2 имеет расширенный набор функций, вызываемых с помощью управляющего кода 1ВН (АР2). В программе МОНИТОР-1 эти функции отсутствуют:
        1ВН+41Н - сместить курсор на одну позицию вверх. 
        1ВН+42Н - сместить курсор на одну позицию вниз. 
        1ВН+43Н - сместить курсор на одну позицию вправо. 
        1ВН+44Н - сместить курсор на одну позицию влево. 
        1ВН+45Н - стирание экрана. 
        1ВН+48Н - установить курсор в верхний левый угол. 
        1BH+4AH - стирание экрана нг, с курсора. 
        1ВН+4ВН — стирание строки правее курсора. 
        1BH+59H+(X+20H)+(Y+20H) - установить курсор в позицию Х (номер строки - 
        0-19Н), Y (номер позиции - 0-3FH). 
      Драйвер дисплея использует несколько установочных констант, которые хранятся в области служебных ячеек и поэтому доступных для оперативного изменения.
      0F3CFH - старший байт адреса начала строки. При инициализации МОНИТОР заносит значение 0С0Н (0С000Н - начальный адрес области ОЗУ экрана №1 ). Если записывать промежуточные значения (0С0-0Е0Н), то будет происходить смещение начала строки 
      вправо. Для включения экранов №2, №3 и №4 заносят (помимо соответствующего кода в системный порт №3) соответственно коды 80Н, 40Н, 00Н. Данная константа влияет на начальную позицию первого символа в строке. 0F3D0H - ширина поля, в котором производятся операции “Скроллинг” и гашение экрана. Исходное значение З0Н, т. е. 48 байт в строке (не символов). Программно сдвигая экран вправо, необходимо пропорционально укорачивать эту константу, в 
      противном случае функции гашение экрана и “Скроллинг” будут “влезать” в служебную область МОНИТОРА (для экрана №1) - поле знакогенератора. На длину символьной строки данная константа не влияет.
      0F3D4H - номер строки, с которой действуют функции стирания экрана, а также “Скроллинг”. Отсчет ведется от верхней строки. Если в ячейку занести код 05Н, к примеру, то верхние пять строк не будут стираться по коду 1FH (или 1ВН+45Н) и не  попадут под действие режима “Скроллинг”. Для возврата в исходное состояние, необходимо восстановить начальное значение констант.
      
      Сугоняко, В. Сафронов, К. Коненков. Персональный радиолюбительский компьютер “Орион-128”. Программное обеспечение. - Радио, 1990, № 2, с. 46.
      .
      .
      {Q}
      {A}
      .
      .
    Последний раз редактировалось Error404; 17.05.2010 в 15:45.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  7. #4
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    А в данном случае как должно быть?
    Я не силен в таких тонких материях, мне кажется что МБР должен быть только один, перед всеми партициями. Соответственно бутлодер также должен быть один, размещен всё равно где, но видящий все партиции. Отсюдова делаю вывод, что создав партицию на диске, она автоматом "покроет" уже находящийся на диске образ (в нашем случае TTY-SD.OHI). Создав новый бутлоадер в FDISK, я рассчитываю что он не совсем дурак, и зная количество партиций просмотрит каталоги и создаст соответствующие строчки-ссылки при запуске.
    Не, бутлоадер в этой терминологии - совсем дурак.
    Он отработает только то, что описано в таблице разделов (массив 4х16=64 байт со смещением 446 байт от начала образа). Вторичные партиции не поддерживаются - обрабатываются только 4 первичные партиции. Причем, формируя меню, он по некоторым критериям определяет что есть в бутсекторе (первый сектор) каждой партиции (загрузочная партиция или нет, есть метка диска или нет и т.п.).
    .
    Ты слил один за другим 2 образа и создал третью партицию, соответственно, в третьей партиции у тебя в лучшем случае - MBR второго образа, а не CP/M-бутсектор каковой там должен быть (в котором находится метка диска, она же - строка меню бутлоадера).
    .
    Причем это будет так только в том случае, если обе уже существовавшие партиции (первая и вторая) занимали весь образ диска (и третья партиция начинается сразу после окончания второй). А для диска с играми (как раз это и есть худший случай) это не так - я там специально сделал 2 партиции + свободное место (чтобы людям было где попрактиковаться в создании разделов). Поэтому третья партиция своими координатами в MBR вообще никак не попадает на реальное содержание второго образа подлитого в конец первого.
    .
    Сегодня я копал грядки, а вчера на сон грядущий проделал всю цепочку как это делал бы я. Вкратце: склеиваем tty-sd.ohi + games-sd.ohi (в такой последовательности, а не наоборот, чтобы не было "пустот", т.к. первый образ полностью занят партицией, а второй занят партициями не до конца).
    .
    Затем под виндой в HEX-редакторе (просмотрщике) смотрим MBR в обоих исходных образах и уже в CP/M при помощи командного режима fdisk (он умеет больше чем итерактивный режим) правим таблицу MBR так, чтобы первую партицию увеличить на 1 сектор (накрыть MBR второго образа чтобы он не мешался и не был "дыркой" между партициями), и прописываем LBA-координаты второй и третьей партиции.
    .
    Все. Можно грузиться. Но во второй и третьей партициях еще надо будет (при желании) потом поправить директивы ASSIGN в файлах config.sys - там монтируются первый и второй разделы, а они у нас сдвинулись и стали вторым и третьим соответственно.
    .
    Напоминалка: при загрузке ОС можно удержать кнопку F4 (ctrl+С) и выполнять config.sys пошагово (пропустить ASSIGN), или кнопку F5 (ctrl+D) и вообще не выполнять config.sys.

    А вот пример моих вчерашних действий:

    Под виндой:
    Код:
    copy /b tty-sd.OHI + games-sd.ohi ttygames.ohi
    Под CP/M (загрузившись с образа ttygames.ohi):
    Код:
    C:\>idebdos sd
    
    IDEBDOS V1.3. (c) 2010 Serge.  ?=HELP  Port: F762
    
    Begin devices autodetect (less then 20sec per device)... be patient!
    Detected Altair DOS 3.x or higher.
    
    SD-card: MSX v1 scheme
    
    Model: FILE      Rev:   1.0,  Total:      96Mb
    
    C:\>
    C:\>fdisk -p 0:
    
    0 : 00 000000 52 000000 01000000 FFFF0000
    2 : 00 000000 00 000000 00000000 00000000
    4 : 00 000000 00 000000 00000000 00000000
    6 : 00 000000 00 000000 00000000 00000000
    
    Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65535
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 2 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 3 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    C:\>
    C:\>fdisk -l 0: 1 1 65536
    
    Partition 1 of 0: LBA parameters have been changed to:
    
           Starting LBA: 1
           LBA Size:     65536
    
    
    C:\>
    C:\>fdisk -p 0:
    
    0 : 00 000000 52 000000 01000000 00000100
    2 : 00 000000 00 000000 00000000 00000000
    4 : 00 000000 00 000000 00000000 00000000
    6 : 00 000000 00 000000 00000000 00000000
    
    Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65536
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 2 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 3 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    C:\>
    C:\>
    C:\>fdisk -l 0: 2 65537 65535
    
    Partition 2 of 0: LBA parameters have been changed to:
    
           Starting LBA: 65537
           LBA Size:     65535
    
    
    C:\>
    C:\>
    C:\>fdisk -m 0: 2 82
    
    Partition 2 of 0: type has been changed to: 82.
    
    
    C:\>
    C:\>fdisk -p 0:
    
    0 : 00 000000 52 000000 01000000 00000100
    2 : 00 000000 52 000000 01000100 FFFF0000
    4 : 00 000000 00 000000 00000000 00000000
    6 : 00 000000 00 000000 00000000 00000000
    
    Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65536
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 2 nonactive=00, type 52=CP/M, LBA start 65537 and LBA size 65535
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 3 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    C:\>
    C:\>
    C:\>fdisk -l 0: 3 131072 4000
    
    Partition 3 of 0: LBA parameters have been changed to:
    
           Starting LBA: 131072
           LBA Size:     4000
    
    
    C:\>
    C:\>fdisk -m 0: 3 82
    
    Partition 3 of 0: type has been changed to: 82.
    
    
    C:\>
    C:\>fdisk -p 0:
    
    0 : 00 000000 52 000000 01000000 00000100
    2 : 00 000000 52 000000 01000100 FFFF0000
    4 : 00 000000 52 000000 00000200 A00F0000
    6 : 00 000000 00 000000 00000000 00000000
    
    Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65536
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 2 nonactive=00, type 52=CP/M, LBA start 65537 and LBA size 65535
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 3 nonactive=00, type 52=CP/M, LBA start 131072 and LBA size 4000
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
            Beginning:    0 cylinder,   0 head,  0 sector
            Ending:       0 cylinder,   0 head,  0 sector
    
    C:\>
    Последний раз редактировалось Error404; 02.05.2010 в 17:45.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  8. #5
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Спасибо, получилось
    Почти.
    Что такое "ALV not found" (ZX-Games) и "D: BDOS Error (вроде бы)" на Old-Games.

    Посмотрев примеры понял нужную вещь (к сожалению, не разжеванную в твоих письменах) - FDISK -l (редактирование) 0: (диска 0) 2 (номер партиции) 65536 (начало партиции в блоках по 512кб) 65535 (длина партиции в блоках)
    FDISK -m (mode, режим "существования" партиции) 0: (для диска 0) 3 (партиция 3) 82 (установить режим 82, СР/М).
    Кстати, почему ставим 82, а получаем 52 по fdisk -p 0: ?
    Если вызвать FDISK с какими-то непонятными ему параметрами или ключем "-?", он выводит подсказку, в которой описано назначение ключей и параметров. Поэтому я не описывал через чур подробно.
    .
    С "ALV not found" все просто: в CP/M есть буфер ALV, который содержит битовое отображение занятых/свободных логических блоков. Этот буфер не безграничен. В AltairDOS для IDE/SD разделов сумммарный объем всех смонтированных партиций - 6400 логических блоков (этот буфер ALV займет в памяти 800 байт), что при размере блока в 8к (как он и есть в имиджах tty-dos и games-sd - задается при создании файловой системы) составляет суммарный максисмум объема всех партиций в 50Mb. Если увеличить размер лог. блока до максимальных для CP/M 16 килобайт, то это ограничение будет 100Мб. Конечно, буфер можно сделать и более чем 800 байт, но урезать TPA - сердце кровью обливается. ИМХО большая ТРА важнее.
    Я уже писал об этом тут (в release notes): http://zx.pk.ru/showpost.php?p=275608&postcount=851
    "ALV not found" - Для монтируемой файловой системы требуется буфер ALV, который с
    учетом других уже смонтированных партиций не помещается в текущий
    буфер CPM. Размер буфера ALV пропорционален размеру файловой системы
    (то самое ограничение 100Мб).
    Решение: умерить аппетиты при создании файловой системы
    программой FDISK.COM.
    .
    В config.sys разделов с игрушками к символам дисков C и D монтируются партиции 0 и 1. В дисках с игрушками это были партиции размером 30Mб и 2Мб. Сейчас эти партиции сместились на одну, а первой добавилась партиция в 30Мб. Соответственно партиции 0 и 1 стали равны 30Мб и 30Мб соответственно, что суммарно превышает размер буфера ALV.

    Ожидая чего-то подобного, во вчерашнем посте я писал:
    Цитата Сообщение от Error404 Посмотреть сообщение
    Но во второй и третьей партициях еще надо будет (при желании) потом поправить директивы ASSIGN в файлах config.sys - там монтируются первый и второй разделы, а они у нас сдвинулись и стали вторым и третьим соответственно.
    .
    Напоминалка: при загрузке ОС можно удержать кнопку F4 (ctrl+С) и выполнять config.sys пошагово (пропустить ASSIGN), или кнопку F5 (ctrl+D) и вообще не выполнять config.sys.
    Если в config.sys пропустить все диррективы ASSIGN, то после загрузки смонтированной к диску "С" будет только та партиция, с которой загрузились (и в ней можно спокойно поправить config.sys).
    Последний раз редактировалось Error404; 03.05.2010 в 15:10.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. Этот пользователь поблагодарил Error404 за это полезное сообщение:
    Ewgeny7 (03.05.2010)

  10. #6
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Аппаратная часть

    1. Орион-128
      .
      .
      {Q} Как сделать замену РФ2 ром-диска на флеш?
      {A} Я не делал такой замены, но навскидку это делается просто: с ВВ55 на Ром-диск выходит 16 адресных ног и 8 ног для данных. Берем 27с512 (EEPROM 64k) или похожую, прошиваем туда содержимое ром-диска и подключаем согласно распиновке адресных ног и ног данных по даташиту. Чипселект (/OE, /CE) на землю (чтобы было "всегда выбрано"), /WE на +5V (всегда чтение).
      .
      .
    2. Orion-Pro
      .
      .
      {Q}
      {A}
      .
      .
      .
    3. Orion-2010
      .
      .
      {Q}
      {A}
      .
      .
    4. Разное
      .
      .
      {Q} Какого объема лучше использовать SD и CF карты с Орионом?
      {A} Пока статистики практически нет. Общий принцип - чем меньшего размера и меньшей скорости карта, там лучше. Лично пока пробовал только CF 64Mb Transcend и CF 1Gb Kingston. SD пока не применял (может по моделям ewgeny7 подскажет)? Программно пока поддерживаются только карты SDC (т.е. non-SDHC, размером до 2Gb).

      Подсказывает ewgeny7 Применял микро-SD карточки Kingston, 512мб и две по 1Гб. Прекрасно работают все три штуки.
      .
      Error404: не работает SD-карточка Kingston micro-sd SDC/2G. Может, не работает оттого, что на ней написано "N0214-001.ADOLF"? Карточка Transcend 1G работает нормально.
      UPD 23.08.2010: А вот mini-SD карточка от того же Kingston и тоже на 2G работает нормально. В-общем, не угадаешь...
      .
      .
      {Q} На каком порту висит AY\YM (музыкальный сопроцессор), есть дока по подключению?
      {A} Подключение AY абсолютно одинаковое с ZX-Спектрум. Порты BFFD/FFFD. Конкретно как оно у меня подключено к Ориону можно посмотреть здесь:
      http://orion-z.mylivepage.ru/file/35...Y_kempston.rar
      .
      .
    Последний раз редактировалось Error404; 11.06.2012 в 13:20.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #7
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию как открыть odi с cp/m

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение
    как открыть odi с cp/m и вывалиться в ее консоль?
    Если речь о том как это сделать в моем эмуляторе, то алгоритм примерно такой:
    Загружаем орионовский загрузочный (содержащий CP/M на системных дорожках) образ диска, к примеру, некий disk.odi
    в, к примеру, каталог c:\temp

    Запускаем эмулятор.
    В панели инструментов эмулятора есть 2 кнопки с символом дисковода и красными буквами "А" и "В" - это эмулируемые дисковые приводы 0 и 1. При нажатии на кнопку "А" (все загрузчики - о них ниже - грузят ОС с дисковода A) отобразится меню, в котором нужно выбрать "browse for files" и выбрать файл c:\temp\disk.odi.

    Образ диска с приводом сопоставлен (теперь он подсвечивается как hint на соответствующей кнопке дисковода панели инструментов), теперь нужно с него загрузиться. Если используется загрузка из ОРДОС (Монитор вываливается в Ордос), то нужно пользоваться загрузчиком DOS$ для CPM фирмы Орион-Софт (они называли их OSDOS v 2.4, 3.6) или загрузчиками BOOT$, MBOOT$ для прочих вариантов орионовских CPM.

    Можно использовать Монитор (ROM-BIOS F800) такой, чтобы он по включению питания или RESET сразу грузился с дисковода А, без Ордос (будет грузить все версии орионовских CPM кроме упомянутых OSDOS). Для этого в окне настроек на закладке ROM нужно выбрать имя файла Монитора содержащего в суффиксе имени файла символ "D". Также нужно учитывать тип клавиатуры и выбирать соответствующий тип Монитора (в имени будут суффиксы "RK" или "MS"). Пример: M35zrkd.bin - Монитор версии 3.5, работает только на Z80, клавиатура RK-86, встроен загрузчик с дисковода.
    Последний раз редактировалось Error404; 15.11.2010 в 12:17.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  12. #8
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Имеем в своем распоряжении модуль SD-MSX на Орион-2010 и исходники модуля BIOSSD.MAC.
    Горим жутким желанием прочитать/записать группу секторов.
    К примеру, с адреса 1000Н по 8FFFН имеем 32 кб данных (64 сектора SD). Нужно запихнуть их на SD в сектора с 0012_76DE и далее.
    Убив моск на исходниках test2sd.mac пишем сюда
    Может ли уважаемый гуру Ориона набросать соответствующие вызовы процедур из BIOSSD для решения сих несложных вопросов?

    ---------- Post added at 13:25 ---------- Previous post was at 13:22 ----------

    К примеру, используя модуль ZControllera с драйвером от него, запись выглядит так:

    LD HL,1000H
    LD BC,0012H
    LD DE,76DEH
    LD A,64
    CALL COM_SD
    DB 5

    Инициализация карты выглядит так:
    CALL COM_SD
    DB 0

    При чтении DB 5 просто меняем на DB 3. Усё.
    А как это делается на BIOSSD.MAC?
    Инициализация при помощи подпрограммы sd_init, без параметров.


    Запись при помощи подпрограммы sd_write_block - пишет один 512-байтный блок из буфера. Параметры:
    ;
    ; INP: DEHL=data position, BC: buffer address
    ; byte offset in dehl
    ; OUT: z return if ok, or error code in a
    ;

    DEHL - 32-битный адрес (offsef от начала SD-карты) в байтах ( L - младший байт). Для перевода номера сектора в байты (offset) тебе надо будет LBA-номер сектора (т.е. считаемого с нуля) умножить на 512 (сдвинуть влево 9 раз).

    Подпрограмму, понятно дело, надо в цикле вызвать N раз, меняя значения входных параметров. И готовность карты проверять (кусок подпрограммы sd_setup).

    Как-то так...

    Еще есть такая подпрограмма, наверное она будет удобнее (готовность проверяет сама и больше похожа на п\п Z-controller-а):

    sd_write:
    ;
    ; Input: HL=DriveInfo_array+8, d: 1=SDC, 3=SDHC
    ;

    Регистр D всегда выставляй в 1 (SDHC не поддерживается).
    HL указывает на последний (так исторически сложилось - чтобы съэкономить 3 байта в Мониторе ) элемент массива вида

    Код:
    DevMsk0:ds      1       ; 0 for Master device
    ISLBA0: ds      1       ; 0=work in CHS mode, !0(2)=Work in LBA mode  
    bbank0: ds      1       ; caller (buffer) bank
    Buffer0:dw      buffer  ; 512bytes buffer address
    lba0:   ds      1       ;   sec        28bit Logical Block Address  
            ds      1       ;   cyl_low
            ds      1       ;   cyl_high    
            ds      1       ;   head
    Пример структурки для SD (для нее первые 3 байта безразличны) для LBA-номера 001276DEh и буфера с 1000h:
    Код:
    DevMsk0:ds      1       ; 0 for Master device
    ISLBA0: ds      1       ; 0=work in CHS mode, !0(2)=Work in LBA mode  
    bbank0: ds      1       ; caller (buffer) bank
    	defw	1000h	
    	defb 	0DEh		;
    	defb 	076h
    	defb 	012h
    addr:	defb 	000h
    Никакие из п\п опций чтения нескольких последовательных блоков не имеют, т.к. для CP/M это бессмысленно, и соответственно не делалось.
    Последний раз редактировалось Error404; 10.12.2010 в 20:35.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  13. Этот пользователь поблагодарил Error404 за это полезное сообщение:
    Ewgeny7 (10.12.2010)

  14. #9
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    m80n при компиляции BIOSSD.MAC нашел 209 fatall error, не считая 22 варнингов
    Бывает.
    Где-нить лишнюю запятую поставил.

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Частенько вываливается надпись "Directory full". Суммарный объем файлов в каталоге чем-то ограничен? Для партиции размером в 32 метра это как-то стрянно...
    Ну, это ж не FAT.
    Размер каталога задается, сейчас в образах он 8192 байт, т.е. 256 файловых описателей. Можно было бы сделать больше, но большинство орионовских коммандеров не поддерживают более 128 файлов в каталоге (как оно было по дефолту на корветовских дискетках), а для NC предел 256 файлов. Поэтому я обрезал каталог до 256 файлов чтобы не разбираться что там заработает, а что заглючит.

    Вообще, ограничение по количеству файлов - больное место CPM, т.к. даже самый маленький файл занимает такой же описатель как файл большого размера, т.е. можно записать 100 файлов и занять всю партицию и еще место в каталоге останется, а можно записать 256 маленьких файлов, занять 256кб из 32М и больше туда уже ничего не впихнёшь. В CPM 3.x было даже специальное решение - вместо подкаталогов использовались LBR-файлы (архивы типа как tar на UNIX), c которыми CCP работал напрямую (запускал оттуда файлы). Это позволяло кучу мелочи хранить в одном большом архиве.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  15. Этот пользователь поблагодарил Error404 за это полезное сообщение:
    Ewgeny7 (11.12.2010)

  16. #10
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    3,750
    Благодарностей: 1014
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    у меня кагбэ в каталоге два файла, но directory full...
    Или это подразумевается 256 файлов на всю партицию СР/М?
    Да.

    Каталог в понимании не поддирректории (юзер), а "системные дорожки - каталог - данные". Большие файлы (более 64к) занимают 2 и более записей в каталоге (1 запись покрывает 64к). Всего максимум 256 таких записей (это не предел CPM, а так были отформатированы файловые системы под игрушки).
    Последний раз редактировалось Error404; 11.12.2010 в 20:22.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  17. Этот пользователь поблагодарил Error404 за это полезное сообщение:
    Ewgeny7 (11.12.2010)

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. YM2149F-вопросы и ответы
    от Gryphon в разделе Музыка
    Ответов: 10
    Последнее: 14.02.2009, 10:53
  2. Ответов: 73
    Последнее: 18.09.2008, 03:35
  3. Вопросы и ответы
    от Addison в разделе ZX Концепции
    Ответов: 31
    Последнее: 28.11.2007, 11:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •