Difference between revisions of "Uknc ROM Basic boot"
From Felixl.com
Jump to navigationJump to searchLine 69: | Line 69: | ||
005626 070074 | 005626 070074 | ||
005630 176640 | 005630 176640 | ||
− | ; | + | 005632 013720 MOV @#176642, (R0)+ |
+ | 005634 176642 | ||
+ | 005636 012737 MOV #020306, @#176642 | ||
+ | 005640 020306 | ||
+ | 005642 176642 | ||
+ | 005644 005237 INC @#176640 | ||
+ | 005646 176640 | ||
+ | 005650 013720 MOV @#176642, (R0)+ | ||
+ | 005652 176642 | ||
+ | 005654 012737 MOV #000600, @#176642 | ||
+ | 005656 000600 | ||
+ | 005660 176642 | ||
+ | 005662 005067 CLR 001170 | ||
+ | 005664 173302 | ||
+ | 005666 012737 MOV #160000, @#001034 | ||
+ | 005670 160000 | ||
+ | 005672 001034 | ||
+ | 005674 013737 MOV @#001034, @#001032 | ||
+ | 005676 001034 | ||
+ | 005700 001032 | ||
+ | 005702 005067 CLR 001054 | ||
+ | 005704 173146 | ||
+ | 005706 005067 CLR 001142 | ||
+ | 005710 173230 | ||
+ | 005712 012767 MOV #000310, 001006 | ||
+ | 005714 000310 | ||
+ | 005716 173066 | ||
+ | 005720 012700 MOV #001060, R0 | ||
+ | 005722 001060 | ||
+ | 005724 012720 MOV #000012, (R0)+ | ||
+ | 005726 000012 | ||
+ | 005730 012720 MOV #000012, (R0)+ | ||
+ | 005732 000012 | ||
+ | 005734 005020 CLR (R0)+ | ||
+ | 005736 010001 MOV R0, R1 | ||
+ | 005740 012720 MOV #040101, (R0)+ | ||
+ | 005742 040101 | ||
+ | 005744 012720 MOV #027076, (R0)+ | ||
+ | 005746 027076 | ||
+ | 005750 012120 MOV (R1)+, (R0)+ | ||
+ | 005752 012120 MOV (R1)+, (R0)+ | ||
+ | 005754 012701 MOV #000012, R1 | ||
+ | 005756 000012 | ||
+ | 005760 012720 MOV #043524, (R0)+ ; <-+ | ||
+ | 005762 043524 ; | | ||
+ | 005764 077103 SOB R1, 005760 ; --+ | ||
+ | 005766 005037 CLR @#001130 | ||
+ | 005770 001130 | ||
+ | 005772 004767 JSR PC, 014170 | ||
+ | 005774 006172 | ||
+ | 005776 005037 CLR @#001064 | ||
+ | 006000 001064 | ||
+ | 006002 004767 JSR PC, 007746 | ||
+ | 006004 001740 | ||
</pre> | </pre> |
Revision as of 11:53, 26 March 2007
Процесс загрузки с кассеты ПЗУ Бейсик Вильнюс.
- Загрузчик в ОЗУ ЦП дает команду на чтение первых 512 байт из картриджа в ОЗУ с адреса 000000
- Загрузчик проверяет что первой командой является 000240 NOP и запускает выполнение с адреса 000000
; Начало загрузчика, полученного с кассеты ПЗУ 000000 000240 NOP 000002 012702 MOV #000104, R2 000004 000104 000006 110062 MOVB R0, 000003(R2) ; 000010 000003 000012 012701 MOV #000005, R1 ; 000014 000005 000016 012703 MOV #000116, R3 000020 000116 ; Далее через канал 2 считываем 27653 слов с кассеты в ОЗУ с адреса 5566 000022 000402 BR 000030 ; --+ ; Передача массива параметров в канал 2 ; | 000024 112337 MOVB (R3)+, @#176676 ; | <-+ 000026 176676 ; | | 000030 105737 TSTB @#176674 ; <-+ | 000032 176674 ; | | 000034 100375 BPL 000030 ; --+ | 000036 077106 SOB R1, 000024 ; --+ 000040 105712 TSTB (R2) ; Проверяем состояние ошибки операции 000042 001356 BNE 000000 ; Ошибка - повторяем сначала ; Теперь по адресам 005566-065313 находится дамп с кассеты ПЗУ ; Подсчет контрольной суммы 000044 005003 CLR R3 000046 012701 MOV #005556, R1 000050 005556 000052 012702 MOV #027653, R2 000054 027653 000056 062103 ADD (R1)+, R3 ; <-+ 000060 005503 ADC R3 ; | 000062 077203 SOB R2, 000056 ; --+ 000064 005203 INC R3 000066 001344 BNE 000000 ; Переход на загруженный код 000070 000137 JMP @#005556 000072 005556 ; Массив параметров для получения данных с кассеты ПЗУ через канал 2 000104 004000 ; Команда (10) и ответ 000106 000021 ; Номер кассеты и номер устройства 000110 000200 ; Адрес от начала кассеты ПЗУ 000112 005566 ; Адрес в ОЗУ 000114 027653 ; Количество слов; это 24406 (десятичное) байт ; Начало работы основного блока ; Перенос 6-ти слов с адресов 000000-.. на адреса 001206-.. 005566 005001 CLR R1 005570 012702 MOV #000006, R2 005572 000006 005574 012120 MOV (R1)+, (R0)+ ; <-+ 005576 077202 SOB R2, 005574 ; --+ 005600 013720 MOV @#000060, (R0)+ 005602 000060 005604 013720 MOV @#000062, (R0)+ 005606 000062 005610 013720 MOV @#000244, (R0)+ 005612 000244 005614 013720 MOV @#000246, (R0)+ 005616 000246 005620 005037 CLR @#001236 005622 001236 005624 012737 MOV #070074, @#176640 005626 070074 005630 176640 005632 013720 MOV @#176642, (R0)+ 005634 176642 005636 012737 MOV #020306, @#176642 005640 020306 005642 176642 005644 005237 INC @#176640 005646 176640 005650 013720 MOV @#176642, (R0)+ 005652 176642 005654 012737 MOV #000600, @#176642 005656 000600 005660 176642 005662 005067 CLR 001170 005664 173302 005666 012737 MOV #160000, @#001034 005670 160000 005672 001034 005674 013737 MOV @#001034, @#001032 005676 001034 005700 001032 005702 005067 CLR 001054 005704 173146 005706 005067 CLR 001142 005710 173230 005712 012767 MOV #000310, 001006 005714 000310 005716 173066 005720 012700 MOV #001060, R0 005722 001060 005724 012720 MOV #000012, (R0)+ 005726 000012 005730 012720 MOV #000012, (R0)+ 005732 000012 005734 005020 CLR (R0)+ 005736 010001 MOV R0, R1 005740 012720 MOV #040101, (R0)+ 005742 040101 005744 012720 MOV #027076, (R0)+ 005746 027076 005750 012120 MOV (R1)+, (R0)+ 005752 012120 MOV (R1)+, (R0)+ 005754 012701 MOV #000012, R1 005756 000012 005760 012720 MOV #043524, (R0)+ ; <-+ 005762 043524 ; | 005764 077103 SOB R1, 005760 ; --+ 005766 005037 CLR @#001130 005770 001130 005772 004767 JSR PC, 014170 005774 006172 005776 005037 CLR @#001064 006000 001064 006002 004767 JSR PC, 007746 006004 001740