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

User Tag List

Страница 21 из 28 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя
Показано с 201 по 210 из 273

Тема: МС-0515

  1. #201
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,587
    Спасибо Благодарностей отдано 
    67
    Спасибо Благодарностей получено 
    157
    Поблагодарили
    103 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    эмулятор сейчас представляет из себя чудовище Франкенштейна.
    надо загримировать

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Дальше надо хоть как-то размапить клавиатуру,
    а можно не мелочиться и сэмулировать intel mcs48 мне легче, такое cpu core уже есть, оставалось только прочитать документацию и воткнуть в него "провода" по схеме. хотя с Искрой-1030 такой фокус не пока не прошел -- что-то загадочное там происходит с сигналами в порту...

  2. #202
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На диске dump-OSA.dsk удалось загрузиться в командную строку и даже команды работают!



    Но тест 183107.SAV пока не проходит -- пишет начальную надпись "УПРАЖНИТЕЛЬ МС0515 В1.0" и вываливается в HALT.

    - - - Updated - - -

    Конфигурация системы:



    - - - Updated - - -

    Ну и загрузившись с диска System3.dsk и запустив EXPRESS я получил живую игрушку:



    Но с управлением действительно беда. Может оно джойстик хочет?

    - - - Updated - - -

    Сделал маскирование прерывания Vblank, теперь "УПРАЖНИТЕЛЬ" работает таким вот образом -- интересно, это так и должно быть?


  3. #203
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,587
    Спасибо Благодарностей отдано 
    67
    Спасибо Благодарностей получено 
    157
    Поблагодарили
    103 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Сделал маскирование прерывания Vblank, теперь "УПРАЖНИТЕЛЬ" работает таким вот образом -- интересно, это так и должно быть?
    да, так в документации. у меня пока не работает

  4. #204
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shattered Посмотреть сообщение
    да, так в документации. у меня пока не работает
    Ну теперь ты в мой код можешь подглядывать ;-)

    https://github.com/nzeemin/ms0515btl

  5. #205
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,587
    Спасибо Благодарностей отдано 
    67
    Спасибо Благодарностей получено 
    157
    Поблагодарили
    103 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Но с управлением действительно беда. Может оно джойстик хочет?
    там рядом лежит текст, где автор жалуется на мс7004 и думает о джойстике

    но действительно странно, почему так лагает -- не пора ли заглянуть в код? символ передается за 11/4800 = ~ 2мс, на что уходит остальное время?

  6. #206
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На диске 059.dsk есть FORML.SAV -- форматирование нижней поверхности диска.
    Собственно вот самая интересная часть -- здесь в памяти готовится образ дорожки с адреса 3000, но используется целое слово на один записываемый на дорожку байт. Из этого кода получаем то как выглядит "сырой" образ дорожки.
    Код:
    001142: MOV    	#003000, R5		; Адрес начала образа дорожки
    001146: MOV    	#000066, R4		; Счётчик = 54. -- заполнитель от начала дорожки
    001152: MOV    	#000116, (R5)+		;   пишем 4Eh
    001156: SOB    	R4, 001152		; повторяем
    001160: MOV    	#000014, R4		; Счётчик = 12.
    001164: CLR    	(R5)+			;   пишем 00h
    001166: SOB    	R4, 001164		; повторяем
    001170: MOV    	#000366, (R5)+		; байт F6h -- пишем C2h
    001174: MOV    	#000366, (R5)+		; байт F6h -- пишем C2h
    001200: MOV    	#000366, (R5)+		; байт F6h -- пишем C2h
    001204: MOV    	#000366, (R5)+		; байт F6h -- пишем C2h
    001210: MOV    	#000043, R4		; Счётчик = 35.
    001214: MOV    	#000116, (R5)+		;   пишем 4Eh
    001220: SOB    	R4, 001214		; повторяем
    001222: MOV    	#000012, R3		; Счётчик = 10. сектором
    ; Цикл подготовки секторов
    001226: MOV    	#000001, R1		; Номер сектора, начинаем с 1
    001232: MOV    	#000010, R4		; Счётчик = 8.
    001236: CLR    	(R5)+			;   пишем 00h
    001240: SOB    	R4, 001236		; повторяем
    001242: MOV    	#000365, (R5)+		; байт F5h -- пишем A1h
    001246: MOV    	#000365, (R5)+		; байт F5h -- пишем A1h
    001252: MOV    	#000365, (R5)+		; байт F5h -- пишем A1h, начало CRC
    001256: MOV    	#000376, (R5)+		; пишем FEh
    001262: MOV    	#000011, (R5)+		; пишем 09h
    001266: CLR    	(R5)+			; пишем 00h
    001270: MOV    	R1, (R5)+		; пишем 01h -- номер сектора
    001272: INC    	R1			; Увеличиваем номер сектора
    001274: MOV    	#000002, (R5)+		; пишем 02h -- 512 байт на сектор
    001300: MOV    	#000367, (R5)+		; байт F7h -- пишем 2 байта CRC
    001304: MOV    	#000026, R4		; Счётчик = 22.
    001310: MOV    	#000116, (R5)+		;   байт 4Eh
    001314: SOB    	R4, 001310		; повторяем
    001316: MOV    	#000014, R4		; Счётчик = 12.
    001322: CLR    	(R5)+			;   пишем 00h
    001324: SOB    	R4, 001322		; повторяем
    001326: MOV    	#000365, (R5)+		; байт F5h -- пишем A1h
    001332: MOV    	#000365, (R5)+		; байт F5h -- пишем A1h
    001336: MOV    	#000365, (R5)+		; байт F5h -- пишем A1h, начало CRC
    001342: MOV    	#000373, (R5)+		; пишем FBh
    001346: CMP    	#000001, 001264		; 1-я дорожка?
    001354: BNE    	001406			;   нет => переходим
    001356: CMP    	#000005, R1		; 5-й сектор?
    001362: BNE    	001406			;   нет => переходим
    001364: MOV    	#002052, R0		; Откуда копируем начало сектора
    001370: MOV    	#000032, R4		; Счётчик = 26.
    001374: MOV    	(R0)+, (R5)+		;   копируем
    001376: SOB    	R4, 001374		; повторяем
    001400: MOV    	#000363, R4		; Счётчик = 243.
    001404: BR     	001412			;   идём дописывать остаток сектора
    001406: MOV    	#000400, R4		; Счётчик = 256. -- готовим 512. байт данных
    001412: MOV    	#000266, (R5)+		;   пишем B6h
    001416: MOV    	#000155, (R5)+		;   пишем 6Dh
    001422: SOB    	R4, 001412		; повторяем
    001424: MOV    	#000367, (R5)+		; байт F7h -- пишем 2 байта CRC
    001430: MOV    	#000054, R4		; Счётчик = 44.
    001434: MOV    	#000116, (R5)+		;   байт 4Eh
    001440: SOB    	R4, 001434		; повторяем
    001442: DEC    	R3			; Уменьшаем счётчик цикла по секторам
    001444: BEQ    	001452			; если 0 => выходим из цикла
    001446: JMP    	001232			; Продолжаем цикл по секторам
    001452: MOV    	#000540, R4		; Счётчик = 352. -- заполнение до конца дорожки
    001456: MOV    	#000116, (R5)+		;   байт 4Eh
    001462: SOB    	R4, 001456		; повторяем
    001464: MOV    	#000010, @#157732
    Плюс вот как выглядит 26 слов по адресу 2052 -- опять же каждое слово записывается на дорожку как один байт:
    Код:
      002052  000004 000000 000000 000000 000001 000000 000000 000000
      002072  000016 000000 000000 000002 000325 000000 000071 000147
      002112  000364 000046 000022 000003 000000 000000 000000 000000
      002132  000000 000010
    Итого получаем вот такую структуру дорожки.
    Отсчёт идёт от индексного отверстия. Количество байт указано десятичное, байты — шестнадцатеричные значения, в скобках указано что реально записывается на диск, в особых случаях.
    Код:
    Кол-во байт  Записываемые байты
         54        4E
         12        00
          4        F6 (записывается C2)
         35        4E
      Начало сектора 1..10
          8        00
          3        F5 (записывается A1)
          1        FE -- маркер заголовка сектора
          1        xx -- номер дорожки 0..79
          1        00 -- сторона: 0 - низ
          1        01 -- номер сектора
          1        02 -- 512 байт на сектор
          1(2)     F7 (записывается 2 байта CRC)
         22        4E
         12        00
          3        F5 (записывается A1)
          1        FB -- маркер данных сектора
        512        xx -- данные сектора
          1(2)     F7 (записывается 2 байта CRC)
         44        4E
      Конец сектора
        352        4E -- до конца дорожки
    - - - Updated - - -

    Не понял здесь только зачем так важно было записать эти 26 байт в 5-й сектор первой дорожки -- с виду это заголовок директории.
    Может таким образом отпадает необходимость делать команду INIT ?
    Последний раз редактировалось nzeemin; 23.02.2017 в 01:55.

  7. #207
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Процессор T11 имеет инструкцию MFPT (код 000007) -- в регистр R0 помещается 4, как признак того что тип процессора -- DCTII-AA.
    Вижу что при загрузке системы инструкция вызывается.
    Интересно, отдаёт ли КР1807ВМ1 такой же тип?

  8. #208
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,587
    Спасибо Благодарностей отдано 
    67
    Спасибо Благодарностей получено 
    157
    Поблагодарили
    103 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    mame как раз это и не эмулирует. интересно, как тогда работает :-)

    + в T11_UsersMan.pdf сказано, что MOV/CLR/SXT перед записью в память читают ее (страница B-8) и нужно быть внимательным, если там устройства.

    EDIT: теперь эмулирует и процессор определяется верно. не хватает только "проверки четности памяти", хм.



    а результаты"упражнителя" просто надо ждать

    Последний раз редактировалось shattered; 24.02.2017 в 13:58.

  9. #209
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С командой SH ALL у меня та же картинка:


    А вот с тестом вроде как получше, если я верно понял результат:


    - - - Updated - - -

    EmuStudio MS-0515 v0.12g --
    SH ALL -- не реализована команда 000007, и вываливается в HALT.
    RU 183107 -- после нажатия P вываливается в HALT.

    - - - Updated - - -

    shattered, у вас в режиме 640x200 половинная яркость -- так и должно быть, так по описанию?

  10. #210
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,587
    Спасибо Благодарностей отдано 
    67
    Спасибо Благодарностей получено 
    157
    Поблагодарили
    103 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    А вот с тестом вроде как получше, если я верно понял результат:
    не знаю, надо почитать инструкцию -- должно быть так много прерываний или нет

    Цитата Сообщение от nzeemin Посмотреть сообщение
    в режиме 640x200 половинная яркость -- так и должно быть, так по описанию?
    тоже надо проверить. в emustudio так же

Страница 21 из 28 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя

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

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

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

Ваши права

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