Uknc

From Felixl.com
Revision as of 10:57, 23 March 2007 by Nzeemin (talk | contribs)
Jump to navigationJump to search

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

Эмулятор

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

  
УКНЦ

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

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

NZeemin 13:57, 23 March 2007 (EDT)

Если вставить в эмулятор НЕзагрузочный диск (а вставить его можно командой Emulator|Floppy0) и выбрать в начальном меню пункт 1 - диск, то спустя несколько секунд мы увидим вот такую картинку:

Error creating thumbnail: Unable to save thumbnail to destination

Это всё уже достижения Феликса, моих знаний для отладки таких чудес давно уже не хватает. Зато я делал для него отладчик :) Но об отладчике — в другой раз, вернёмся к надписи на экране. По крайней мере, я могу объяснить вам откуда она взялась.

С диска был запрошен на чтение сектор 1 дорожки 0. Эти данные прочитались в память ЦПУ с адреса 000000 и выглядят они вот так:

 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 из консоли нашего отладчика. Ну, кроме комментариев, конечно…



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