User Tag List

Страница 8 из 32 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя
Показано с 71 по 80 из 318

Тема: ПК8000 - загрузка с внешних носителей

  1. #71

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не прошло и года В общем сорсы пока нет смысла выкладывать, где-то непонятная ошибка, плюс на выходные планирую их доработаь до товарного вида.
    Пытаюсь записать файлы по команде SAVE. То пишет, то ошибку выдает. Зависимости от размера блока не заметил. Самое интересное, что ошибка только на диске малого объема, с кластером 1Кб. На диск в 8Мб, с кластером в 4Кб, пишется без проблем. Возможно все-таки блок параметров неверно расчитываю.
    В архиве файлы для эмулятора:
    hdd.rar
    В папке FRM утилитка для "форматирования" винта. Натравливается на образ винта, разбитого FDISK'ом на логические диски. Активный загрузочный раздел игнорируется, остальные преобразуются в CP/M. Параметр '-A' задает размер таблицы свободных блоков, пока нужно использовать только 256. Параметр '-D' - это количество отведенных под директорий кластеров. По умолчанию отводится 2 штуки. Сорс под DOS пришлось править, но времени протестировать не было. Завтра.
    Большая просьба к тем, кто разбирается. Гляньте сорсы, правильно ли я расчитываю параметры дисков?
    Ну и образ винта: http://myfolder.ru/files/40619284
    На нем только SV.COM. Поначалу работала. После перезагрузки эмулятора перестала
    Нажмите на изображение для увеличения. 

Название:	SV1.jpg 
Просмотров:	483 
Размер:	25.2 Кб 
ID:	47802
    Нажмите на изображение для увеличения. 

Название:	SV2.jpg 
Просмотров:	444 
Размер:	35.4 Кб 
ID:	47803

  2. #72

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Разобрался. Проблема с переносом файлов. Никак не найду вменяемой инфы по файловой структуре.
    Последний раз редактировалось DemonId7; 06.05.2014 в 19:12.

  3. #73

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что-то в теме тишина. Интерес еще не пропал? Выкладывать результат? Все работает и недописана лишь утилитка копирования файлов на винт из под доса.

  4. #74

    Регистрация
    03.08.2010
    Адрес
    Ставрополь
    Сообщений
    286
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Конечно выкладывайте!!!

  5. #75

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все в архиве:
    \emul - это для эмулятора, плюс исправленный образ винта: cf.rar
    \util\f8000w - "формат" файла образа винта, предварительно разбитого на логические диски. Этим редактировался образ в архиве. Разумеется под винду.
    \util\f8000d - то же самое, но работает из под DOS с реальным хардом.
    Параметр /a задает желаемый размер таблицы занятости блоков и позволяет косвенно управлять размером кластера, чем больше значение параметра, тем меньше размер кластера.
    Параметр /d задает количество кластеров, отводимых под директорные записи. Количество записей зависит от размера кластера и составляет (размер_кластера / 32). Слишком большие значения заставляют комп "задуматься" при выборе диска, так как ему приходится считывать большие массивы данных с оглавления, для составления карты занятых блоков.
    Параметр /t резервирует заданное количество треков. В утилитах реализовано, а вот в системе не стал, не вижу смысла в этой возможности. Так что не использовать, последствия будут непредсказуемы.
    Параметр /h или /? даст дополнительные подробности.
    Если винт содержит несколько логических дисков разной длины, то можно "форматировать" его в несколько проходов, задавая оптимальный параметр /a и /d для каждой группы дисков. Загрузчик умеет адаптироваться под разные диски, выделяя каждому памяти ровно столько, сколько необходимо. Поэтому можно подключить как 12 дисков по 1-2 Мб, так и 4 по 32 Мб, насколько хватит памяти. Для облегчения выводится подробная инфа по отформатированному диску, типа такого:
    Format for PK8000.
    Код:
    >Select drive:
    [0] Prim. master: WDC AC11600L      Size:  1586592Kb	CHS: 3148/16/63
    [1] Prim. slave : none
    [2] Sec.  master: KTC CF            Size:   126504Kb	CHS: 251/16/63
    [3] Sec.  slave : none
       -skip primary DOS partion.
       -found disk: type 0x1,  size:      2992Kb	format drive? (Yes/No) y
              Sector        : 152df
              Block size    : 2048
              BSH           : 4
              BLM           : f
              EXM           : 0
              Max block     : 1495
              Directory max : 383
              AL0           : fc
              AL1           : 0
    Интерес представляет размер кластера (Block size) и макс. количество записей в оглавлении диска (Directory max). Если не устраивает, то при повторном запуске программа предложит сделать unformat, а затем снова форматнуть с более подходящими параметрами.

    \system - здесь система с компилятором. В файле const.i80 в первых трех строках параметры компиляции:
    BIOS_SIZE - размер скомпилированного модуля BIOS.M80.
    SLAVE_ENABLE - если не равна нулю, то будут искаться все доступные винты (master и slave). При обнулении ищется только master, что ускоряет загрузку системы.
    NDISK - максимально возможное количество дисков. Думаю 12-ти хватит.

    Если при загрузке держать нажатой ПРФ, то произойдет выход в бейсик. Сделано для удобства, чтобы не тревожить лишний раз разъем с винтом.

    Программа переноса файлов на винты CP/M будет готова в ближайшее время. Все равно нужно еще ПЗУшку приделать, для полноценного тестирования на железе. Я использовал эмулятор для записи файлов, а затем образ переносил на винт с помощью diskedit из нортон-утилит. Долго, зато опробовал на реальном железе. На фото. Пока все.

    PS: Пора бы подумать и о разводке платы под это дело. Я в этом деле не силен и в лучшем случае смогу родить безобразие на фото (на котором и проводил все испытания)
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	12052014918.jpg 
Просмотров:	256 
Размер:	43.1 Кб 
ID:	47896   Нажмите на изображение для увеличения. 

Название:	12052014920.jpg 
Просмотров:	243 
Размер:	51.8 Кб 
ID:	47897   Нажмите на изображение для увеличения. 

Название:	12052014924.jpg 
Просмотров:	233 
Размер:	60.4 Кб 
ID:	47905  
    Вложения Вложения

  6. #76

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,395
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DemonId7, круто.

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

  8. #77

    Регистрация
    03.08.2010
    Адрес
    Ставрополь
    Сообщений
    286
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Круто - это еще мягко сказано как щас говорят - респект и уважуха!

  9. #78

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да ладно, это Дмитрию нужно сказать спасибо за прекрасный эмулятор, очень помогший в отладке и авторам МДОС, чьи дизассемблированные наработки легли в основу модуля bios. Если будет время и желание, то можно вообще оригинальный МДОС перенести на винт, все равно пракически весь код bios'а реверсировал Судя по малость "нестандартной" реализации функций boot там имеются какие-то отличия от оригинальной CP/M.

  10. #79

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    микродос эт расширение cp/m
    как понял кое-что там от cp/m 3
    а что-то своё, там есть действительно полезные функции
    но местами там странное
    есть например функция, которой передаётся адрес блока
    в котором есть номер расширенной функции и его параметры

    единственная дока которуя я нашел profi dos http://zxpress.ru/book.php?id=167

    у микродоса как я понял есть два так сказать "биоса"
    печатной инфы не видел, только копался в корветовских микродосах

    есть "стандартная" cp/m табличка биоса

    она использует "второй" bios

    есть исходники "биосов" от вектора, и можно сказать корвета

    Код:
    RAM:E400          INIT_HW:                                
    RAM:E400 C3 00 E6                 jp      j_int_hw
    RAM:E403          INITBIOS:                               
    RAM:E403 C3 03 E6                 jp      j_init_bios
    RAM:E406          j_GRSTATUS:                             
    RAM:E406 C3 20 E4                 jp      GRSTATUS
    RAM:E409          j_GRINPUT:                              
    RAM:E409 C3 29 E4                 jp      GRINPUT
    RAM:E40C          j_GROUTPUT:                             
    RAM:E40C C3 32 E4                 jp      GROUTPUT
    RAM:E40F          j_ADRDPH:                               
    RAM:E40F C3 6B E4                 jp      ADRDPH
    RAM:E412          j_RWDISK:                               
    RAM:E412 C3 6E E4                 jp      RWDISK
    RAM:E415          j_getErrMsgTAB:                         
    RAM:E415 C3 A7 E4                 jp      getErrMsgTAB
    RAM:E418          exec09:                                 
    RAM:E418 C3 3B E4                 jp      j_exec09
    RAM:E41B          jCLEARCDISK:
    RAM:E41B C3 30 E6                 jp      CLEARCDISK
    а для функций ввода вывода в биос передаётся в регистре тип устройства куда выводить
    консоль или aux там ..

    Код:
    RAM:E420          GRSTATUS:                               
    RAM:E420 CD 3C E4                 call    CASEfrom3
    RAM:E423 56 E4                    dw jconST
    RAM:E425 62 E4                    dw jstatLPT
    RAM:E427 43 E4                    dw j_ret0
    RAM:E429          GRINPUT:                                
    RAM:E429 CD 3C E4                 call    CASEfrom3
    RAM:E42C 59 E4                    dw j_conIN
    RAM:E42E 43 E4                    dw j_ret0
    RAM:E430 65 E4                    dw j_AuxIn
    RAM:E432          GROUTPUT:                               
    RAM:E432 CD 3C E4                 call    CASEfrom3
    RAM:E435 5C E4                    dw j_putCHR
    RAM:E437 5F E4                    dw j_LSTPUT
    RAM:E439 68 E4                    dw j_AUXPUT
    
    RAM:E43C          CASEfrom3:                              
    ...
    RAM:E449 E9                       jp      (hl)
    exec09: Это реализация "пользовательских" консольных комманд 0 .. 9
    эт если надо что-то машин специфик запихать
    в корвете например (в одном из микродосов), это переключение кодировки экрана
    koi-8, alt

    в векторе там куча всего накручено, куча комманд с параметрами
    https://code.google.com/p/vector06cc...icroDOS_manual
    "4.5. Дополнительные команды"

    getErrMsgTAB - возвращает адресс тамблицы ошибок
    зачем надо я так и не понял.

    в общем если у кого есть доки - поделитесь
    Последний раз редактировалось esl; 13.05.2014 в 13:00.

  11. #80

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    esl, я так сильно не углублялся, только модуль bios. Сегодня внимательнее глянул. Все отличия:
    - инициализация rst 1 - rst 6 на подпрограмму warmboot, а rst 4 - на подпрограмму сравнения двух 16-битных чисел (равно/не равно).
    - rst 7 указывает на подпрограмму вызова оригинального обработчика.
    В аттаче то, что дизассемблировал. Кто-то хотел заняться досом вплотную, может пригодится, все же не с нуля начинать

    С копированием файлов покончено. На днях спаяю ПЗУ'шку и опробую на реале всю систему в сборе. Тогда и выложу окончательные варианты утилит.
    Вложения Вложения
    • Тип файла: rar mdos.rar (77.3 Кб, Просмотров: 116)

Страница 8 из 32 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. ПК8000 - Клавиатура
    от Mick в разделе ПК8000
    Ответов: 67
    Последнее: 18.08.2024, 18:49
  2. ПК8000 - Ремонт
    от Mifody в разделе ПК8000
    Ответов: 106
    Последнее: 09.03.2023, 01:20
  3. Набор платок внешних периферийных устройств для спектрума.
    от zorel в разделе Несортированное железо
    Ответов: 70
    Последнее: 31.08.2015, 23:02
  4. куплю пк8000
    от omaxlab в разделе Барахолка (архив)
    Ответов: 26
    Последнее: 02.07.2012, 21:44
  5. Тул для конвертации образов носителей
    от Alex Rider в разделе Утилиты
    Ответов: 22
    Последнее: 05.05.2012, 16:25

Ваши права

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