User Tag List

Страница 34 из 43 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя
Показано с 331 по 340 из 429

Тема: Апогей-БК01 и Апогей-БК01Ц: Внешний ROM диск

  1. #331

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BYTEMAN Посмотреть сообщение
    на орионе же есть...
    Орион - это совсем другой компьютер. Цветной графический режим, видеоадаптер на рассыпухе, 128 Кб ОЗУ.

    Тут даже Корвет ближе. У него 64 Кб основной памяти и текстовый режим есть.

    ---------- Post added at 14:35 ---------- Previous post was at 14:28 ----------

    Я вот понять не могу. Образ диска Корвета размером 819200 байт.

    Размер сектора 128 байт.
    20 секторов на дорожке.
    2 зарезервированных дорожки (заняты CP/M)

    128*2*20 = 5120 (1400h)

    Но корневой каталог в образе начинается с адреса 10240 (2800h)

    В самом CP/M зашит формат диска
    Код:
    RAM:DA8B DPBA:           dw 20                   ; SPT - количество секторов (по 128 байт) на дорожку
    RAM:DA8D                 db    4                 ; BSH - количество бит, на которое необходимо сдвинуть размер логического сектора, чтобы получить размер кластера
    RAM:DA8E                 db  0Fh                 ; BLM - маска кластера - (размер_кластера/128)-1
    RAM:DA8F                 db    1                 ; ЕХМ - маска директорной записи : если ЕХМ=0), то максимальный размер, адресуемый одной директорной записью, равен 16К; если ЕХМ=1, то - 32К и т.д.
    RAM:DA8F                                         ; Если DSM < 256, то размер кластера в директорной записи задается байтом, а если DSM > 256, то словом
    RAM:DA90                 dw 0C3h                 ; DSM - количество BLS -1 (не считая системных дорожек)
    RAM:DA92                 dw 7Fh                  ; DRM - количество входов в директорию -1
    RAM:DA94                 db 0C0h ; L             ; AL0 - битовая шкала занятости BLS директорией. Начало шкалы - бит 7 AL0, конец - бит 0 AL1. Количество единиц, заполняющих AL0 (от начала шкалы) - (DRM+BLS/32)/(BLS/32)
    RAM:DA95                 db    0                 ; AL1
    RAM:DA96                 dw 20h                  ; CKS - размер области CSV в DPH. Для сменных дисков - (DRM+1)/4, для не сменных - 0.
    RAM:DA98                 db    2                 ; OFF - количество зарезервированных дорожек на диске (с системой например).
    И сам CP/M последовательно читает:

    дорожка 2, сектор 1
    дорожка 2, сектор 2
    дорожка 2, сектор 3
    дорожка 2, сектор 4
    ..
    дорожка 2, сектор 20
    дорожка 3, сектор 1

    То есть секторов действительно 20. Я поставил пропуск 4-х дорожек, вместо 2-х, что бы читался каталог.
    Последний раз редактировалось vinxru; 09.09.2012 в 14:39.

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

  3. #332

    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Я вот понять не могу. Образ диска Корвета размером 819200 байт.

    Размер сектора 128 байт.
    20 секторов на дорожке.
    У Корвета вроде 5 секторов по 1024 байта на дорожку. Если брать 20 секторов по 128, размер диска будет не 800, а 400 КБ.

  4. #333

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А, всё, понял.

    В бутсекторе записан формат диска

    0000000010: 28 00 04 0F 00 8C 01 7F 00 C0 00 20 00 02

    28 00 - это 40 секторов
    04 - размер кластера

    и дак далее все параметры диска в формате CP/M

    Но все равно читается только первые 2 Кб

    ---------- Post added at 16:38 ---------- Previous post was at 15:49 ----------

    Очепятка в программе была, вот и не читалось.

    Вроде бы работает. Теперь можно писать CP/M BIOS для SD-карты. Только не сегодня.



    Что бы мне было проще, я изменил конфигурацию компьютера в эмуляторе. Добавил еще один порт, в который записывается номер сектора. А через стандартный порт мы читаем сам сектор.

    Код:
    app : K580ww55 {
      portA=romdisk.data
      portB[0-6]=romdisk.addr[0-6]
    }
    
    app2 : K580ww55 {
      portB[0-7]=romdisk.addr[7-E]
      portC[0-7]=romdisk.addr[F-16]
    }
    
    mm : MemMap {
      ...
      map[0][FF00-FFFF].wo=app2.data
    }
    А в CP/M написал

    Код:
    _READ:  ; Отладочная информация
    	; ld c, '('
    	; call 0F809h
            ; ld a, (bios_track)
    	; call 0F815h
            ; ld a, (bios_sector)
    	; call 0F815h
            ; ld c, ')'
    	; call 0F809h
    
    	; Включаем второй порт
    	ld hl, 0FFF3h		
    	ld (hl), 90h 
            
    	; hl = bios_track * 40
            ld a, (bios_track)
    	ld l, a
    	ld h, 0
    	add hl, hl
    	add hl, hl
    	ld bc, hl
    	add hl, hl
    	add hl, hl
    	add hl, bc
    	add hl, hl
    
    	; hl += bios_sector-1
    	ld a, (bios_sector)	
    	dec a
    	ld c, a
    	ld b, 0
    	add hl, bc
    
    	; Пишем номер сектора
    	ld (0FFF1h), hl
    
    	; Загружаем сектор в ОЗУ
    	ld hl, (bios_addr)
    	ex hl, de
    	ld hl, 0
    	ld b, 128
    ll:	ld (0EE01h), hl
    	ld a, (0EE00h)
    	ld (de), a
    	inc hl
    	inc de
    	dec b
    	jp nz, ll
    
    	; Все ок
    	xor a
    	ret

  5. #334

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

    По умолчанию

    опоздал наверное, но
    вот ИСХОДНИКИ корветовских биосов
    https://dl.dropbox.com/u/490774/KORVET-BIOSES.zip
    вот описание дисковой подсистемы
    https://dl.dropbox.com/u/490774/KORVET-DISK.pdf

    а вот и весь текст в KOI8
    https://dl.dropbox.com/u/490774/Korvet-bios.txt

    еще можно поискать книжку по адоптации CP/M

  6. #335

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почитать обязательно надо, и обязательно надо самому поковыряться. Так что не опоздал.

  7. #336

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    В бутсекторе записан формат диска

    0000000010: 28 00 04 0F 00 8C 01 7F 00 C0 00 20 00 02

    28 00 - это 40 секторов
    04 - размер кластера

    и дак далее все параметры диска в формате CP/M
    Чтобы не мучаться в БИОСе с пересчётом номеров сектора и дорожки можно задать в этой таблице (которую ты возвращаешь CP/M-у при выборе диска) количество секторов на дорожке как тебе удобнее. Т.е. не 40, например, а 32 или 64. Например, если задать 256, то номер сектора можно напрямую писать в один порт, а номер дорожки - в другой.

  8. #337

    Регистрация
    18.04.2009
    Адрес
    Москва
    Сообщений
    1,656
    Спасибо Благодарностей отдано 
    208
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    еще можно поискать книжку по адоптации CP/M
    М. Дамке «Операционные системы микроЭВМ»
    http://easyelectronics.ru/m-damke-op...-mikroevm.html

  9. #338

    Регистрация
    28.05.2010
    Адрес
    г. Москва
    Сообщений
    510
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от sergey2b Посмотреть сообщение
    М. Дамке «Операционные системы микроЭВМ»
    http://easyelectronics.ru/m-damke-op...-mikroevm.html
    Вообще непонятно зачем для РК адаптировать СР/М. Уже всё адаптировано. Может я что то пропустил?

  10. #339

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Rokl Посмотреть сообщение
    Вообще непонятно зачем для РК адаптировать СР/М. Уже всё адаптировано. Может я что то пропустил?
    Я делаю BIOS для CP/M, с помощью которого CP/M будет работать с моим контроллером подключенным к РК-86.

    Дайте ссылку на такой BIOS.

  11. #340

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,777
    Спасибо Благодарностей отдано 
    556
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BYTEMAN Посмотреть сообщение
    на орионе же есть...
    В Орионе нету ВГ75

Страница 34 из 43 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Апогей-БК01 и Апогей-БК01Ц: Обсуждение
    от Mick в разделе Радио-86РК
    Ответов: 370
    Последнее: 24.03.2025, 11:20
  2. Апогей-БК01 и Апогей-БК01Ц: Ремонт
    от ROMка в разделе Радио-86РК
    Ответов: 193
    Последнее: 15.11.2023, 15:09
  3. Продам Апогей БК 01
    от PicNov76 в разделе Барахолка (архив)
    Ответов: 27
    Последнее: 15.07.2010, 07:20
  4. Кому Апогей БК-01 в СПб?
    от spoonlite в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 06.10.2009, 22:57
  5. Корпус от Апогей БК01Ц
    от Mick в разделе Барахолка (архив)
    Ответов: 26
    Последнее: 13.12.2007, 12:16

Ваши права

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