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

User Tag List

Страница 16 из 34 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 331

Тема: Микроша: Обсуждение

  1. #151
    Junior
    Регистрация
    25.12.2012
    Адрес
    г. Торонто, Канада
    Сообщений
    26
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Судя по формату, этот контроллер на фотографии - для Агата.
    Для контроллеров Микроши был в два раза более низкий корпус.

    Я никогда не работал в цехе 40. Рогинский тогда работал руководителем группы в ОГК в отделе товаров народного потребления у Судиловского. Этот отдел и занимался подготовкой и сопровождением производства Микроши. Там я и работал с самого начала. Общались с Сергеем Поповым, он сначала к нам часто приезжал. Вся разработка Микроши и оборудования делалась нами. Поэтому я точно знаю (насколько помню ), какое оборудование выпускалось.

    Очень прискорбно слышать об уходе Суханова. Я с ним побывал на целом ряде выставок, даже на съемках передачи "Это вы можете" в Останкино. В то время он работал в отделе АСУ(ТП?) который находился на 2м этаже 3х-этажного здания напротив входа в цех 40. Нашу группу уже потом перевели туда на 3й этаж.

    по поводу ленивого чтения, я думаю, так: Если ДОС читает сектора в порядке, указанном в описателе файла - это и есть ленивое, он тратит время на копирование, потом ждет пследующего сектора. А если он читает первый встретившийся на треке сектор из нужных- это оптимальное чтение.

    О ДОС2.9 - снача у меня не было проблемы с местом в ПЗУ. Но потом действительно пришлось ужимать все. Вплоть до переписывания кода с заменой на более компактные алгоритмы. Но чтение там оптимальное. Просто так одинарная плотность записи, поэтому и сектора читаются в 2 раза медленнее чем у Агата. Кстати, и размер сектора 512 байт - в 2 раза больше, чем у агата. Поэтому щелчки при чтении секторов в 4 раза более редкие.

    Номер у контроллера был, и он выпускался серийно. Сначала мы запустили его как вспомогательное стендовое оборудование. Например, для автоматизированной записи программ на аудио кассеты. Потому что сначала сидел человек и делал это вручную с Микроши. Потом мы сделали ПЗУ, потом диск.

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

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

    По умолчанию

    Цитата Сообщение от SEA Посмотреть сообщение
    по поводу ленивого чтения, я думаю, так: Если ДОС читает сектора в порядке, указанном в описателе файла - это и есть ленивое, он тратит время на копирование, потом ждет пследующего сектора. А если он читает первый встретившийся на треке сектор из нужных- это оптимальное чтение.
    такое определение мне более понятно, спасибо

    а код там красив

  4. #153
    Activist Аватар для GARNIZON
    Регистрация
    12.02.2008
    Адрес
    S-Posad
    Сообщений
    472
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    >Судя по формату, этот контроллер на фотографии - для Агата.
    >Для контроллеров Микроши был в два раза более низкий корпус.

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

    Только ради показать значек НТК "СПРАЙТ"


    >В то время он работал в отделе АСУ(ТП?)

    АСУТП. Формально да, по сути - нет. Грубо, он руководитель другого уровня, научного, а не коммерческого.

    >по поводу ленивого чтения, я думаю, так: Если ДОС читает сектора в
    >порядке, указанном в описателе файла - это и есть ленивое, он тратит
    >время на копирование, потом ждет пследующего сектора. А если он
    >читает первый встретившийся на треке сектор из нужных- это
    >оптимальное чтение.

    НЕТ КОНЕЧНО!!!! ДАЖЕ РЯДОМ НЕТ!!! я подробно написал что такое ленивое где-то в этом топике. Лень повотрять.


    >Просто так одинарная плотность записи, поэтому и сектора читаются в 2
    >раза медленнее чем у Агата.

    Агат читает в 4-5 раз быстрее чем ВГ93, значит (судя по данным про микрошу) во столько же быстрее чем указанный контроллер. А плотность, ну да, добавляет немного, но конечно не 2 раза. Если агатом отформатить диск на одинарную плотность, он так же быстро по нему шуршит, загрузить заставку+дос+бейсик+прогу на бейсике - едвали дольше чем ничего.

    >Кстати, и размер сектора 512 байт - в 2 раза больше, чем у агата.
    >Поэтому щелчки при чтении секторов в 4 раза более редкие.

    Про щелчки не понял...
    Да агату далеко наплевать, размер сектора, для него это понятие меняемое на ходу. Скажем в некоторых ос, на одном диске есть части с разными по этому показателю сектора ( и 256 и 512). Это все меняемо (у агат). 840 кб это штатное форматирование, надо больше - плиз, рамер агатовского образа диска AIM 2020 кб не случайно.


    Но все это лирика, интересно только одно: использовали НТК спрайт вашу схему с другой прошивкой или то что я видел это другое совсем? Вроде по логике - первое, раз ваше устройство было серийным... хотя могли и заново чего-то замутить, раз плату с другой лейблой делали.
    Тогда мы этого не выяснили, но Андрей и к микроше отношения не имел, он просто видимо его (микрошу с причендалами)
    после пожара на ЛЭМЗ не выкинул а принес домой.

    Напоминаю, диски от того микрошеного контроллера и файловую систему, агат распознал. Причем сам микроша шуршал по диску как молния.
    Последний раз редактировалось GARNIZON; 20.12.2013 в 17:48.

  5. #154
    Activist Аватар для GARNIZON
    Регистрация
    12.02.2008
    Адрес
    S-Posad
    Сообщений
    472
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поразбирался с контроллером микроши, и появились мысли:

    Цитата Сообщение от SEA Посмотреть сообщение
    по поводу ленивого чтения, я думаю, так: Если ДОС читает сектора в порядке, указанном в описателе файла - это и есть ленивое, он тратит время на копирование, потом ждет пследующего сектора. А если он читает первый встретившийся на треке сектор из нужных- это оптимальное чтение.
    Ну вы просто ленивым называете обычное, а оптимальным - ленивое!!!!

    Если беспокоит сама терминология, то в агате драйвера с кешированием команд всегда назывались "ленивыми". Это в заголовках исходников есть и много раз повторялось. Никакого другого названия не встречается, из чего я делаю вывод, что само появление такого названия и подчёркивало введённую оптимизацию. Ну а почему его назвали ленивым - не знаю, наверное потому, что запросы выполнялись не сразу, а кешировались - т.е. откладывались до лучших времён.

    Разумеется агат ничего не ждет, а складывает попавшиеся из нужных прямо по назначению.
    Холостых оборотов (в ожидании подходящего) нет! В этом смысл.
    Я же уже писал....
    http://zx.pk.ru/showpost.php?p=309703&postcount=81



    Цитата Сообщение от esl Посмотреть сообщение
    я смотрел внутри DOS2.9 для РК-86
    там не нашел "ленивого чтения", есть "обычные" запись/чтение сектора.
    хотя оно реализуемо, и можно сделать, но сомневаюсь что в варианте для РК.
    Ну и в каком месте там написано что он читает обычно?
    Все он там грамотно читает, первый попавшийся из нужных... реально продуманная штука, круче чем ВГ однозначно.
    Автору респект.
    Кэширования не вижу, но масивов разбросанных вроде у микроши и не должно быть, насколько я понимаю на диске просто кассетные версии файлами подряд.
    Ну а мгновенной доставки данных и не должно быть, это не 6502.
    У агат так - диск крутится 5 оборотов в секунду, строго за оборот дорожку, т.е. на секунду 5 дорожек, а на записи строго 2 оборота дорожка, причем проверка сличением! и тут 6502 вполне успевает - это я пишу как на практике а не в теории.
    Тут еще момент важный, не подряд треки читать умеет так (это и вг93 может) а именно поездить в других местах по проложенному оптимальному маршруту, не менее 25 кб/с (для микроши польза сомнительная).

    Но это все не отменяет моего вопроса, я то видел на 200 кб диск и лейбла другая на плате.
    Если кто перешлет мне пару записанных дисков от микроши, я эту тему дожму.
    Последний раз редактировалось GARNIZON; 20.12.2013 в 17:20.

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

    По умолчанию

    Цитата Сообщение от GARNIZON Посмотреть сообщение
    Ну и в каком месте там написано что он читает обычно?
    Все он там грамотно читает, первый попавшийся из нужных... реально продуманная штука, круче чем ВГ однозначно.
    может мы разный код смотрим, я всё еще про RD DOS 2.9


    собственно я не вижу ">>первый попавшийся из нужных..."
    я не вижу СПИСКА сектров, тольк запрос на чтение 1 (одного) сектора.

    вот тот код что я вижу

    Код:
    RAM:EE52	  ; =============== S U	B R O U	T I N E	=======================================
    RAM:EE52
    RAM:EE52	  ; OUT: a!=0 -	ERR
    RAM:EE52
    RAM:EE52	  F09_RD_SECT:				  ; CODE XREF: ReadFromDisk+9p
    RAM:EE52						  ; DATA XREF: RAM:E020o
    RAM:EE52 3E 08			  ld	  a, 8
    RAM:EE54 32 4D 75		  ld	  (NRD), a	  ; Read TRY
    RAM:EE57
    RAM:EE57	  nextRDTry:				  ; CODE XREF: F09_RD_SECT+Fj
    RAM:EE57 CD 67 EE		  call	  rd_physical
    RAM:EE5A CA DF EE		  jp	  z, ret_NOERR
    RAM:EE5D 21 4D 75		  ld	  hl, NRD	  ; Read TRY
    RAM:EE60 35			  dec	  (hl)
    RAM:EE61 F2 57 EE		  jp	  p, nextRDTry
    RAM:EE64 C3 1D EE		  jp	  FDC_HOME
    RAM:EE64	  ; End	of function F09_RD_SECT
    RAM:EE64
    RAM:EE67
    RAM:EE67	  ; =============== S U	B R O U	T I N E	=======================================
    RAM:EE67
    RAM:EE67
    RAM:EE67	  rd_physical:				  ; CODE XREF: F09_RD_SECT:nextRDTryp
    RAM:EE67 CD 9D ED		  call	  FindSector
    RAM:EE6A CD 2C EE		  call	  waitDataLabel
    RAM:EE6D
    RAM:EE6D	  loc_EE6D:				  ; CODE XREF: rd_physical+7j
    RAM:EE6D B6			  or	  (hl)
    RAM:EE6E F2 6D EE		  jp	  p, loc_EE6D
    RAM:EE71	  ;
    RAM:EE71 0A			  ld	  a, (bc)
    RAM:EE72 5F			  ld	  e, a
    RAM:EE73 32 46 75		  ld	  (LENGTS), a
    RAM:EE76
    RAM:EE76	  loc_EE76:				  ; CODE XREF: rd_physical+10j
    RAM:EE76 34			  inc	  (hl)
    RAM:EE77 F2 76 EE		  jp	  p, loc_EE76
    RAM:EE7A 0A			  ld	  a, (bc)
    RAM:EE7B 57			  ld	  d, a
    RAM:EE7C 32 47 75		  ld	  (LENGTS+1), a
    RAM:EE7F
    RAM:EE7F	  loc_EE7F:				  ; CODE XREF: rd_physical+19j
    RAM:EE7F 34			  inc	  (hl)
    RAM:EE80 F2 7F EE		  jp	  p, loc_EE7F
    RAM:EE83	  ;
    RAM:EE83 0A			  ld	  a, (bc)	  ; skip 0
    RAM:EE84	  ;
    RAM:EE84 3A 44 75		  ld	  a, (BEGS)	  ; Addr BEGIN RD/WR
    RAM:EE87 4F			  ld	  c, a
    RAM:EE88 3A 45 75		  ld	  a, (BEGS+1)	  ; Addr BEGIN RD/WR
    RAM:EE8B 47			  ld	  b, a
    RAM:EE8C
    RAM:EE8C	  readDataLoop:				  ; CODE XREF: rd_physical+26j
    RAM:EE8C						  ; rd_physical+30j
    RAM:EE8C 34			  inc	  (hl)
    RAM:EE8D F2 8C EE		  jp	  p, readDataLoop
    RAM:EE90	  ;
    RAM:EE90 DB F4			  in	  a, (xF004_DATA)
    RAM:EE92 02			  ld	  (bc),	a
    RAM:EE93 03			  inc	  bc
    RAM:EE94 1B			  dec	  de
    RAM:EE95 7A			  ld	  a, d
    RAM:EE96 B3			  or	  e
    RAM:EE97 C2 8C EE		  jp	  nz, readDataLoop
    RAM:EE9A
    RAM:EE9A	  loc_EE9A:				  ; CODE XREF: rd_physical+34j
    RAM:EE9A B6			  or	  (hl)
    RAM:EE9B F2 9A EE		  jp	  p, loc_EE9A
    RAM:EE9E	  ;
    RAM:EE9E DB F4			  in	  a, (xF004_DATA)
    RAM:EEA0 5F			  ld	  e, a
    RAM:EEA1
    RAM:EEA1	  loc_EEA1:				  ; CODE XREF: rd_physical+3Bj
    RAM:EEA1 34			  inc	  (hl)
    RAM:EEA2 F2 A1 EE		  jp	  p, loc_EEA1
    RAM:EEA5 DB F4			  in	  a, (xF004_DATA)
    RAM:EEA7 57			  ld	  d, a
    RAM:EEA8 D5			  push	  de
    RAM:EEA9 CD 5D ED		  call	  CalcCRC?
    RAM:EEAC D1			  pop	  de
    RAM:EEAD
    RAM:EEAD	  loc_EEAD:				  ; CODE XREF: verify_phisical+4Aj
    RAM:EEAD 2A 48 75		  ld	  hl, (KS)	  ; Readed KS
    RAM:EEB0
    RAM:EEB0	  cp_hl_de:				  ; CODE XREF: sub_E178:F0E_SAVE2p
    RAM:EEB0						  ; sub_E178+F9p ...
    RAM:EEB0 7C			  ld	  a, h
    RAM:EEB1 BA			  cp	  d
    RAM:EEB2 C0			  ret	  nz
    RAM:EEB3 7D			  ld	  a, l
    RAM:EEB4 BB			  cp	  e
    RAM:EEB5 C9			  ret
    RAM:EEB5	  ; End	of function rd_physical
    Последний раз редактировалось esl; 20.12.2013 в 18:06.

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

    По умолчанию

    а вот собственно поиск сектора FindSector,
    если неправильная дорожка - переходим к нужной
    если неверный сектор - ждем следующего.
    Код:
    RAM:ED7B
    RAM:ED7B
    RAM:ED7B	  stepOut:				  ; CODE XREF: FindSector:loc_EE13p
    RAM:ED7B 1D			  dec	  e
    RAM:ED7C 7B			  ld	  a, e
    RAM:ED7D 0F			  rrca
    RAM:ED7E D0			  ret	  nc
    RAM:ED7F 3E 03			  ld	  a, ppi_1_|ppi_b1_StepIn
    RAM:ED81 C3 8A ED		  jp	  doSTEP	  ; A- setC direction
    RAM:ED81	  ; End	of function stepOut
    RAM:ED81
    RAM:ED84
    RAM:ED84	  ; =============== S U	B R O U	T I N E	=======================================
    RAM:ED84
    RAM:ED84
    RAM:ED84	  stepIn:				  ; CODE XREF: FindSector:loc_EE09p
    RAM:ED84 1C			  inc	  e
    RAM:ED85 7B			  ld	  a, e
    RAM:ED86 0F			  rrca
    RAM:ED87 D8			  ret	  c
    RAM:ED88 3E 02			  ld	  a, ppi_0_|ppi_b1_StepIn
    RAM:ED88	  ; End	of function stepIn
    RAM:ED88
    RAM:ED8A
    RAM:ED8A	  ; =============== S U	B R O U	T I N E	=======================================
    RAM:ED8A
    RAM:ED8A	  ; A- setC direction
    RAM:ED8A
    RAM:ED8A	  doSTEP:				  ; CODE XREF: stepOut+6j
    RAM:ED8A						  ; FDC_HOME+9p
    RAM:ED8A 21 03 F0		  ld	  hl, FDC_PPI_RUS
    RAM:ED8D 77			  ld	  (hl),	a
    RAM:ED8E 36 08			  ld	  (hl),	ppi_0_|ppi_b4_Step
    RAM:ED90 3E 02			  ld	  a, 2
    RAM:ED92
    RAM:ED92	  loc_ED92:				  ; CODE XREF: doSTEP+9j
    RAM:ED92 3D			  dec	  a
    RAM:ED93 C2 92 ED		  jp	  nz, loc_ED92
    RAM:ED96 36 09			  ld	  (hl),	ppi_1_|ppi_b4_Step
    RAM:ED98
    RAM:ED98	  loc_ED98:				  ; CODE XREF: doSTEP+Fj
    RAM:ED98 3D			  dec	  a
    RAM:ED99 C2 98 ED		  jp	  nz, loc_ED98
    RAM:ED9C C9			  ret
    RAM:ED9C	  ; End	of function doSTEP
    RAM:ED9C
    RAM:ED9D
    RAM:ED9D	  ; =============== S U	B R O U	T I N E	=======================================
    RAM:ED9D
    RAM:ED9D
    RAM:ED9D	  FindSector:				  ; CODE XREF: rd_physicalp
    RAM:ED9D						  ; wr_physical+Ap ...
    RAM:ED9D 3E 04			  ld	  a, 4
    RAM:ED9F 32 8F 75		  ld	  (RD_Try??), a
    RAM:EDA2 21 43 75		  ld	  hl, TSKT	  ; Sector
    RAM:EDA5 BE			  cp	  (hl)
    RAM:EDA6 DA 47 EE		  jp	  c, pop_RET_IOERROR
    RAM:EDA9
    RAM:EDA9	  nextRdTry:				  ; CODE XREF: FindSector+73j
    RAM:EDA9						  ; FindSector+7Dj
    RAM:EDA9 21 8F 75		  ld	  hl, RD_Try??
    RAM:EDAC 35			  dec	  (hl)
    RAM:EDAD FA 47 EE		  jp	  m, pop_RET_IOERROR
    RAM:EDB0	  ;
    RAM:EDB0 3A 42 75		  ld	  a, (TTRK)	  ; Track
    RAM:EDB3 E6 01			  and	  1
    RAM:EDB5 C6 04			  add	  a, ppi_0_|ppi_b2_SIDE	; Select SIDE
    RAM:EDB7	  ;
    RAM:EDB7 01 03 F0		  ld	  bc, FDC_PPI_RUS
    RAM:EDBA 02			  ld	  (bc),	a
    RAM:EDBB 03			  inc	  bc		  ; F004
    RAM:EDBC	  ;
    RAM:EDBC 3E 25			  ld	  a, 25h ; '%'
    RAM:EDBE D3 C1			  out	  (xC001_CRT), a  ; C001
    RAM:EDC0	  ;
    RAM:EDC0 21 01 F0		  ld	  hl, FDC_PPI_B
    RAM:EDC3
    RAM:EDC3	  WrongSector:				  ; CODE XREF: FindSector+64j
    RAM:EDC3 11 E8 03		  ld	  de, 1000
    RAM:EDC6
    RAM:EDC6	  Find_Address_Label:			  ; CODE XREF: FindSector+36j
    RAM:EDC6						  ; FindSector+40j
    RAM:EDC6 1B			  dec	  de
    RAM:EDC7 7A			  ld	  a, d
    RAM:EDC8 B3			  or	  e
    RAM:EDC9 CA 47 EE		  jp	  z, pop_RET_IOERROR
    RAM:EDCC
    RAM:EDCC	  loc_EDCC:				  ; CODE XREF: FindSector+30j
    RAM:EDCC 34			  inc	  (hl)
    RAM:EDCD F2 CC ED		  jp	  p, loc_EDCC	  ; pc7	- DataREADY
    RAM:EDD0	  ;
    RAM:EDD0 0A			  ld	  a, (bc)	  ; DATA_LOCK F004
    RAM:EDD1 D6 EA			  sub	  0EAh ; 'ê'
    RAM:EDD3 C2 C6 ED		  jp	  nz, Find_Address_Label
    RAM:EDD6
    RAM:EDD6	  loc_EDD6:				  ; CODE XREF: FindSector+3Aj
    RAM:EDD6 B6			  or	  (hl)
    RAM:EDD7 F2 D6 ED		  jp	  p, loc_EDD6
    RAM:EDDA	  ;
    RAM:EDDA 0A			  ld	  a, (bc)
    RAM:EDDB D6 D3			  sub	  0D3h ; 'Ó'
    RAM:EDDD C2 C6 ED		  jp	  nz, Find_Address_Label
    RAM:EDE0
    RAM:EDE0	  loc_EDE0:				  ; CODE XREF: FindSector+44j
    RAM:EDE0 B6			  or	  (hl)
    RAM:EDE1 F2 E0 ED		  jp	  p, loc_EDE0
    RAM:EDE4	  ;
    RAM:EDE4 0A			  ld	  a, (bc)	  ; Track
    RAM:EDE5 5F			  ld	  e, a
    RAM:EDE6
    RAM:EDE6	  loc_EDE6:				  ; CODE XREF: FindSector+4Aj
    RAM:EDE6 34			  inc	  (hl)
    RAM:EDE7 F2 E6 ED		  jp	  p, loc_EDE6
    RAM:EDEA	  ;
    RAM:EDEA 0A			  ld	  a, (bc)	  ; Sector
    RAM:EDEB 57			  ld	  d, a
    RAM:EDEC
    RAM:EDEC	  loc_EDEC:				  ; CODE XREF: FindSector+50j
    RAM:EDEC 34			  inc	  (hl)
    RAM:EDED F2 EC ED		  jp	  p, loc_EDEC
    RAM:EDF0	  ;
    RAM:EDF0 0A			  ld	  a, (bc)
    RAM:EDF1 93			  sub	  e
    RAM:EDF2 92			  sub	  d		  ; calc CRC
    RAM:EDF3 C2 47 EE		  jp	  nz, pop_RET_IOERROR
    RAM:EDF6	  ;
    RAM:EDF6 3A 42 75		  ld	  a, (TTRK)	  ; Track
    RAM:EDF9 93			  sub	  e
    RAM:EDFA C2 05 EE		  jp	  nz, WrongTrack
    RAM:EDFD 3A 43 75		  ld	  a, (TSKT)	  ; Sector
    RAM:EE00 BA			  cp	  d
    RAM:EE01 C2 C3 ED		  jp	  nz, WrongSector
    RAM:EE04 C9			  ret
    RAM:EE05	  ; ---------------------------------------------------------------------------
    RAM:EE05
    RAM:EE05	  WrongTrack:				  ; CODE XREF: FindSector+5Dj
    RAM:EE05 4F			  ld	  c, a
    RAM:EE06 DA 13 EE		  jp	  c, loc_EE13
    RAM:EE09
    RAM:EE09	  loc_EE09:				  ; CODE XREF: FindSector+70j
    RAM:EE09 CD 84 ED		  call	  stepIn
    RAM:EE0C 0D			  dec	  c
    RAM:EE0D C2 09 EE		  jp	  nz, loc_EE09
    RAM:EE10 C3 A9 ED		  jp	  nextRdTry
    RAM:EE13	  ; ---------------------------------------------------------------------------
    RAM:EE13
    RAM:EE13	  loc_EE13:				  ; CODE XREF: FindSector+69j
    RAM:EE13						  ; FindSector+7Aj
    RAM:EE13 CD 7B ED		  call	  stepOut
    RAM:EE16 0C			  inc	  c
    RAM:EE17 C2 13 EE		  jp	  nz, loc_EE13
    RAM:EE1A C3 A9 ED		  jp	  nextRdTry
    RAM:EE1A	  ; End	of function FindSector
    RAM:EE1A
    RAM:EE1D
    RAM:EE1D	  ; =============== S U	B R O U	T I N E	=======================================
    RAM:EE1D
    RAM:EE1D
    RAM:EE1D	  FDC_HOME:				  ; CODE XREF: RAM:E094p
    RAM:EE1D						  ; FDC_HOME+Cj ...
    RAM:EE1D DB F1			  in	  a, (xF001_B_STAT)
    RAM:EE1F E6 20			  and	  fdc_TRK00
    RAM:EE21 CA 48 EE		  jp	  z, ret_IOERROR
    RAM:EE24	  ;
    RAM:EE24 3E 03			  ld	  a, ppi_1_|ppi_b1_StepIn
    RAM:EE26 CD 8A ED		  call	  doSTEP	  ; A- setC direction
    RAM:EE29 C3 1D EE		  jp	  FDC_HOME
    RAM:EE29	  ; End	of function FDC_HOME
    RAM:EE29
    RAM:EE2C
    RAM:EE2C	  ; =============== S U	B R O U	T I N E	=======================================
    RAM:EE2C
    RAM:EE2C
    RAM:EE2C	  waitDataLabel:			  ; CODE XREF: rd_physical+3p
    RAM:EE2C						  ; verify_phisical+3p
    RAM:EE2C 16 19			  ld	  d, 25
    RAM:EE2E
    RAM:EE2E	  loc_EE2E:				  ; CODE XREF: waitDataLabel+Dj
    RAM:EE2E						  ; waitDataLabel+18j
    RAM:EE2E 15			  dec	  d
    RAM:EE2F CA 47 EE		  jp	  z, pop_RET_IOERROR
    RAM:EE32
    RAM:EE32	  loc_EE32:				  ; CODE XREF: waitDataLabel+7j
    RAM:EE32 34			  inc	  (hl)
    RAM:EE33 F2 32 EE		  jp	  p, loc_EE32
    RAM:EE36 0A			  ld	  a, (bc)
    RAM:EE37 D6 DD			  sub	  0DDh ; 'Ý'      ; DD - data field
    RAM:EE39 C2 2E EE		  jp	  nz, loc_EE2E
    RAM:EE3C
    RAM:EE3C	  loc_EE3C:				  ; CODE XREF: waitDataLabel+11j
    RAM:EE3C B6			  or	  (hl)
    RAM:EE3D F2 3C EE		  jp	  p, loc_EE3C
    RAM:EE40 0A			  ld	  a, (bc)
    RAM:EE41 D6 F3			  sub	  0F3h ; 'ó'      ; D3 - data field
    RAM:EE43 C8			  ret	  z
    RAM:EE44 C3 2E EE		  jp	  loc_EE2E
    RAM:EE47	  ; ---------------------------------------------------------------------------
    RAM:EE47
    RAM:EE47	  pop_RET_IOERROR:			  ; CODE XREF: FindSector+9j
    RAM:EE47						  ; FindSector+10j ...
    RAM:EE47 F1			  pop	  af
    RAM:EE48
    RAM:EE48	  ret_IOERROR:				  ; CODE XREF: FDC_HOME+4j
    RAM:EE48 AF			  xor	  a
    RAM:EE49 3C			  inc	  a		  ; 1 -	IO Error
    RAM:EE4A C9			  ret
    RAM:EE4A	  ; End	of function waitDataLabel
    RAM:EE4A
    RAM:EE4B
    Последний раз редактировалось esl; 20.12.2013 в 22:08.

  8. #157
    Activist Аватар для GARNIZON
    Регистрация
    12.02.2008
    Адрес
    S-Posad
    Сообщений
    472
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    может мы разный код смотрим, я всё еще про RD DOS 2.9
    Может, пришлите если не сложно мне на почту (в профиле есть) плиз полный листинг (именно используемой версии), у меня на праздники время будет видимо позаниматься.

    А с этим что будем делать? :

    Цитата Сообщение от SEA Посмотреть сообщение
    А если он читает первый встретившийся на треке сектор из нужных- это оптимальное чтение.

    ДОС2.9 - снача у меня не было проблемы с местом в ПЗУ. Но потом действительно пришлось ужимать все. Вплоть до переписывания кода с заменой на более компактные алгоритмы. Но чтение там оптимальное.
    Последний раз редактировалось GARNIZON; 21.12.2013 в 11:59.

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

    По умолчанию

    Цитата Сообщение от GARNIZON Посмотреть сообщение
    Может, пришлите если не сложно мне на почту (в профиле есть) плиз полный листинг (именно используемой версии), у меня на праздники время будет видимо позаниматься.
    отправил на garypilot ya-ru угадал ?

    Цитата Сообщение от GARNIZON Посмотреть сообщение
    А с этим что будем делать? :
    повторюсь, я там не увидел чтение любого из списка запрошенных, вообще там списка не увидел...
    но опять же, может плохо смотрел.

    у вас есть другой образ пзу ??
    поделитесь.
    Последний раз редактировалось esl; 21.12.2013 в 17:09.

  10. #159
    Junior
    Регистрация
    25.12.2012
    Адрес
    г. Торонто, Канада
    Сообщений
    26
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GARNIZON Посмотреть сообщение
    Напоминаю, диски от того микрошеного контроллера и файловую систему, агат распознал. Причем сам микроша шуршал по диску как молния.
    Возможно, это контроллер от Агата адаптированный на микрошу.
    Я сначала хотел сделать то же, даже запустил его на микроше, но потом отказался из-за габаритов и особенно, количества микросхем и соответственно, стоимости контроллера.

    Хотя, скорее всего это контроллер на спец. м/с типа К580ВГ72. Насколько помню, у агата был "драйвер" и он мог быть совместим с ней. Я ее тогда даже не рассматривал - она была достаточно дефицитна (или дорога)

    В приведенный фрагмент доса - это не моя работа.
    Используются порты ввода/вывода, это может быть как первый так и второй вариант железа. Только в РК_Макси я сделал ввод-вывод через порты.

    Что касается скорости чтения - в Агате стандартная конфигурация - 2х80 цилиндров по 16 секторов по 256 байт на сектор. Итого, за круг - 4кбайт
    В моем контроллере микроши было 2х80 цилиндров по 5 секторов по 512 байт, не меняемо. Итого - 2.5кб за круг. Причем, первые версии ДОС ждали секторов по списку, пропуская нужные сектора. Это было долго.

    Ну а по поводу ленивого чтения - я попытался погуглить, но похоже, устоявшегося термина нет.
    Последний раз редактировалось SEA; 07.01.2014 в 05:24.

  11. #160
    Activist Аватар для GARNIZON
    Регистрация
    12.02.2008
    Адрес
    S-Posad
    Сообщений
    472
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SEA Посмотреть сообщение
    Хотя, скорее всего это контроллер на спец. м/с типа К580ВГ72. Насколько помню, у агата был "драйвер" и он мог быть совместим с ней. Я ее тогда даже не рассматривал - она была достаточно дефицитна (или дорога).
    Это ясно, ВГ93 и ВГ72 ЛЭМЗу просто не давали из-за противостояния министерств МЭП (хозяева кремния) - МРП (производство Агата и микроша).
    Но уже видно, что из того что было, вы сделали штуку много лучше (сейчас сижу разбираюсь), чем еще один безликий и ограниченный по возможностям контроллер на вг72. Так что все к лучшему

    Но тот, что видел я, именно на ВВ55....

    Цитата Сообщение от SEA Посмотреть сообщение
    Что касается скорости чтения - в Агате стандартная конфигурация - 2х80 цилиндров по 16 секторов по 256 байт на сектор. Итого, за круг - 4кбайт
    В моем контроллере микроши было 2х80 цилиндров по 5 секторов по 512 байт, не меняемо. Итого - 2.5кб за круг.
    16 секторов по 256 байт? С чего бы это? откуда тогда при стандартном форматировании 840Кб?
    840 кб это 21 сектор по 256 байт, т.е. примерно 5.3кб за оборот
    можно 880 кб например, это 11 секторов по 512 байт, т.е примерно 5.5кб за оборот.

    Не относится к теме но все же:
    Это неправильная метода оценки скорости. В реальности все по-другому может оказаться.

    У дисковода за секунду происходит 5 оборотов. Агат читает СТРОГО!!!! дорожку за оборот, т.е. примерно 27 кб в секунду.
    Прошу заметить, если надо прочитать 15 дорожек это займет 3 секунды (спасибо 6502 и мгновенной доставке данных ПДП ).
    Это если дороги подряд. Если нужные дороги не подряд (файл на диске раскидан на разных местах или несколько файлов), то чуть меньше скорость, но именно только чуть-чуть, для того и нужно ленивое чтение.

    У микроши 2.5. кб за оборот это только в идеальном случае, если одна взятая дорога отдельно.
    Если дорог надо читать больше одной и они еще не подряд, то расчетные 12.5 кб в секунду падают до 5-6кб в секунду.

    Это конечно намного лучше чем у вг93, там чтение по кускам вообще штука неприлично долгая, хотя спектрумисты (TR-DOS) это особенно не ощущают, там файлы подряд и как таковой ДОС нету а только эмулятор ленты на диске, да и Z80 весьма быстрая штука. А 8080 еще надо успеть, все что контроллер начитал.
    Последний раз редактировалось GARNIZON; 08.01.2014 в 21:15.

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

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

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

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

Похожие темы

  1. ПК-6128Ц: Обсуждение
    от falanger в разделе Вектор
    Ответов: 313
    Последнее: 29.02.2024, 21:03
  2. Альфа-БК: Обсуждение
    от Def191 в разделе Радио-86РК
    Ответов: 22
    Последнее: 14.12.2021, 18:42
  3. ЮТ-88: Обсуждение
    от Zoidberg в разделе ЮТ-88
    Ответов: 316
    Последнее: 11.04.2021, 18:54
  4. Обсуждение ПДП (DMA)
    от Sayman в разделе Несортированное железо
    Ответов: 32
    Последнее: 29.01.2009, 19:55
  5. Остро нуждаюсь в компьютерах РК-86 или Микроша :-)
    от kgbplus в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 28.08.2005, 10:56

Ваши права

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