Difference between revisions of "Uknc"

From Felixl.com
Jump to navigationJump to search
Line 20: Line 20:
 
|}
 
|}
 
== Последние новости ==
 
== Последние новости ==
 +
=== [[User:Nzeemin|NZeemin]] 08:18, 27 March 2007 (EDT) ===
  
=== [[User:Nzeemin|NZeemin]] 13:57, 23 March 2007 (EDT) ===
+
Феликс провел перетряску кода процессора, в результате чего мы сегодня имеем работающий Бейсик Вильнюс!<br/>
Если вставить в эмулятор НЕзагрузочный диск (а вставить его можно командой Emulator|Floppy0) и выбрать в начальном меню пункт <code>1 - диск</code>, то спустя несколько секунд мы увидим вот такую картинку:
+
Мой скромный вклад состоит в программировании обращений к кассете ПЗУ и исправлении нескольких багов…
  
[[Image:UKNC-NoBootOnVolume.png]]
+
[[Image:UkncBTL-20070327.png]]
  
Это всё уже достижения Феликса, моих знаний для отладки таких чудес давно уже не хватает.
+
Спасибо Alex_K за консультации и код. Спасибо Арсению за время и силы, потраченные на получение дампа кассеты ПЗУ.
Зато я делал для него отладчик :)
 
Но об отладчике — в другой раз, вернёмся к надписи на экране. По крайней мере, я могу объяснить вам откуда она взялась.
 
  
С диска был запрошен на чтение сектор 1 дорожки 0. Эти данные прочитались в память ЦПУ с адреса 000000 и выглядят они вот так:
+
P.S. Если кто интересуется процессом загрузки из картриджа ПЗУ дизасм тут: [[Uknc ROM Basic boot]].
  000000  000240 000005 000404 000000 000000 041420 116020 000400  =··········C·°··
 
  000020  004067 000044 000015 000000 005000 041077 047517 026524  7·$·······?BOOT-
 
  000040  026525 067516 061040 067557 020164 067157 073040 066157  U-No boot on vol
 
  000060  066565 006545 005012 000200 105737 177564 100375 112037  ume···-·ъ-tЪЩ-·¦
 
  000100  177566 100372 000777 000000 000000 000000 000000 000000  vЪЗ-Ъ···········
 
  000120  000000 000000 000000 000000 000000 000000 000000 000000  ················
 
  000140  000000 000000 000000 000000 000000 000000 000000 000000  ················
 
  000160  000000 000000 000000 000000 000000 000000 000000 000000  ················
 
Этому соответствует вот такой код:
 
  000020  004067  JSR    R0, 000070
 
  000022  000044
 
  ---
 
  000024 ; Тут собственно последовательность байт для передачи на терминал
 
  ---
 
  000070  105737  TSTB    @#177564 ; Проверяем слово состояния терминала
 
  000072  177564
 
  000074  100375  BPL    000070 ; Терминал готов принять очередной символ?
 
  000076  112037  MOVB    (R0)+, @#177566 ; Отправляем символ на терминал
 
  000100  177566
 
  000102  100372  BPL    000070 ; Появился не-символ - значит все выдали
 
  000104  000777  BR      000104 ; Зацикливание
 
При переходе на адрес 000070, в регистр R0 попадает значение 000024, по которому находится серия символов для терминала. После конца последовательности находится НЕ-символ, отличающийся наличием верхнего бита, и этот НЕ-символ по совместительству является командой по адресу 000070.
 
 
 
P.S. Кстати, приведённый здесь дамп и код это copy/paste из консоли нашего отладчика. Ну, кроме комментариев, конечно…
 
  
  
 
----
 
----
Эта страница будет пополняться по мере разработки эмулятора.
+
Эта страница будет обновляться по мере разработки эмулятора.

Revision as of 06:18, 27 March 2007

Добро пожаловать на страницу эмулятора УКНЦ -- UKNC Back to Life !

Эмулятор

Форум - Заметки по УКНЦ - Авторы

  
УКНЦ

Листинги ПЗУ - Вся информация по УКНЦ  

Последние новости

NZeemin 08:18, 27 March 2007 (EDT)

Феликс провел перетряску кода процессора, в результате чего мы сегодня имеем работающий Бейсик Вильнюс!
Мой скромный вклад состоит в программировании обращений к кассете ПЗУ и исправлении нескольких багов…

Error creating thumbnail: Unable to save thumbnail to destination

Спасибо Alex_K за консультации и код. Спасибо Арсению за время и силы, потраченные на получение дампа кассеты ПЗУ.

P.S. Если кто интересуется процессом загрузки из картриджа ПЗУ — дизасм тут: Uknc ROM Basic boot.



Эта страница будет обновляться по мере разработки эмулятора.