Немига 405 boot 02A: различия между версиями
Nzeemin (обсуждение | вклад) |
Nzeemin (обсуждение | вклад) |
||
Строка 283: | Строка 283: | ||
003712: RETURN | 003712: RETURN | ||
002022: BLO 001764 | 002022: BLO 001764 | ||
002024: MOV R2, R5 | 002024: MOV R2, R5 ; 154000 | ||
002026: ADD #000176, R5 | 002026: ADD #000176, R5 ; 154176 | ||
002032: CALL 003742 | 002032: CALL 003742 | ||
003742: MOV @#000004, 003776 | 003742: MOV @#000004, 003776 | ||
Строка 291: | Строка 291: | ||
003764: MOV #003636, @#000010 | 003764: MOV #003636, @#000010 | ||
003772: CALL @(SP)+ | 003772: CALL @(SP)+ | ||
002036: TST @(R5)+ | 002036: TST @(R5)+ ; 154200 | ||
002040: NOP | 002040: NOP | ||
002042: BLO 002070 | 002042: BLO 002070 |
Версия от 13:53, 28 января 2017
Загрузка на Немиге 4.05
В дисководе MD0: вставлена дискета 02A.DSK.
Filename Blocks Date Start Bytes Trk Sec DskFileOffset Comment ---------- ------ --------- ----- -------- --- --- ------------- ---------- Boot Block 1 0 512 0 2 0000000000 MD BOOT Home Block 1 1 512 0 6 0000000200 Reserved 4 2 2048 0 10 Directory 2 6 1024 1 MD .SYS 4 22-Dec-91 8 2048 1 11 0000001000 заканчивается на SC03 TR02 RT11SJ.SYS 55 15-Feb-91 12 28160 2 4 0000001800 SWAP .SYS 0 13-May-92 67 0 LP .SYS 2 31-May-89 67 1024 LPU .SYS 0 13-Jan-93 69 0 LN .SYS 2 20-Oct-92 69 1024 LB .SYS 2 13-Jan-93 71 1024 VD .SYS 2 29-Mar-93 73 1024 VMU .SYS 0 17-Dec-91 75 0 VM .SYS 2 18-May-92 75 1024 LD .SYS 8 15-Aug-90 77 4096 SG .SAV 8 02-Mar-93 85 4096 SL .SAV 8 22-Jul-91 93 4096 STARTS.SAV 1 22-Mar-93 101 512 ON .SAV 1 20-May-92 102 512 DATE .SAV 1 15-Aug-90 103 512 NET .SAV 14 21-Jun-91 104 7168 DIR .SAV 4 10-Aug-91 118 2048 RESORC.SAV 22 17-May-88 122 11264 NC .SAV 25 06-Apr-93 144 12800 EDIK .SAV 22 24-Feb-93 169 11264 DESS .SAV 18 13-Feb-92 191 9216 SC .SYS 3 13-Jan-93 209 1536 MX .SYS 3 20-Jan-92 212 1536 BINCOM.SAV 10 21-Sep-88 215 5120 SRCCOM.SAV 11 21-Sep-88 225 5632 V0 .SYS 3 06-May-92 236 1536 V1 .SYS 2 05-May-92 239 1024 G8 .SYS 8 22-Feb-93 241 4096 MF .SAV 3 27-May-92 249 1536 SOS .SAV 4 29-Apr-87 252 2048 NETRW .SAV 2 29-May-92 256 1024 TRANS .SAV 3 08-Jun-92 258 1536 DUP .SAV 43 14-Dec-90 261 22016 PIP .SAV 28 14-Dec-90 304 14336 TXT .SAV 3 09-Mar-93 332 1536 VD .COM 1 16-Apr-93 335 512 VD .DIR 1 16-Apr-93 336 512 < UNUSED > 122 337 62464 ---------- ------ --------- ----- -------- 38 files, 329 blocks
Запускаем машину, она загружается в Пульт, пользователь вводит команду D.
Загрузчик в ПЗУ
Floppy0 COMMAND 000030 Floppy0 SET STATE 1 OPER 000020 Floppy0 STEP OUT Floppy0 PREPARE TRACK 1 Floppy0 COMMAND 000030 Floppy0 SET STATE 1 OPER 000020 Floppy0 STEP OUT Floppy0 PREPARE TRACK 0 Floppy TRACK 00 Floppy0 COMMAND 000010 Floppy0 SET STATE 1 OPER 000000 Floppy0 READ 17 POS0010 SC01 TR00 Floppy0 SET STATE 0 OPER 000000 Floppy0 COMMAND 000010 Floppy0 SET STATE 1 OPER 000000 Floppy0 READ 17 POS0010 SC01 TR00 Floppy0 READ a0 POS0140 SC02 TR00 Floppy0 READ 3e POS0270 SC03 TR00 Floppy0 READ 83 POS0400 SC04 TR00 Floppy0 READ fe POS0530 SC05 TR00 Floppy0 READ 00 POS0660 SC06 TR00 Floppy0 READ ff POS0790 SC07 TR00 Floppy0 READ ff POS0920 SC08 TR00 Floppy0 READ ff POS1050 SC09 TR00 Floppy0 READ 1f POS1180 SC10 TR00 Floppy0 READ 19 POS1310 SC11 TR00 Floppy0 READ 00 POS1440 SC12 TR00 Floppy0 READ 59 POS1570 SC13 TR00 Floppy0 READ 42 POS1700 SC14 TR00 Floppy0 READ 45 POS1830 SC15 TR00 Floppy0 READ 81 POS1960 SC16 TR00 Floppy0 READ f4 POS2090 SC17 TR00 Floppy0 READ f4 POS2220 SC18 TR00 Floppy0 READ b6 POS2350 SC19 TR00 Floppy0 READ 4a POS2480 SC20 TR00 Floppy0 READ 01 POS2610 SC21 TR00 Floppy0 READ 04 POS2740 SC22 TR00 Floppy0 READ 32 POS2870 SC23 TR00 выходим из подпрограммы чтения 161670: MOV #000200, @#177766 161676: CLR PC ; Запуск полученного блока с адреса 000000
Начальный загрузчик MD BOOT
000000: NOP 000002: BR 000024 Очищается экран и выводится надпись "MD BOOT V02.02(#)" Floppy0 COMMAND 000070 Floppy0 SET STATE 1 OPER 000060 Floppy0 STEP IN Floppy0 PREPARE TRACK 1 Floppy0 COMMAND 000030 Floppy0 SET STATE 1 OPER 000020 Floppy0 STEP OUT Floppy0 PREPARE TRACK 0 Floppy TRACK 00 Floppy0 COMMAND 000010 Floppy0 SET STATE 1 OPER 000000 Floppy0 READ 17 POS0010 SC01 TR00 Floppy0 SET STATE 0 OPER 000000 Floppy0 COMMAND 000010 Floppy0 SET STATE 1 OPER 000000 Floppy0 READ 17 POS0010 SC01 TR00 Floppy0 READ a0 POS0140 SC02 TR00 Floppy0 READ 3e POS0270 SC03 TR00 Floppy0 READ 83 POS0400 SC04 TR00 Floppy0 READ fe POS0530 SC05 TR00 Floppy0 READ 00 POS0660 SC06 TR00 Floppy0 READ ff POS0790 SC07 TR00 Floppy0 READ ff POS0920 SC08 TR00 Floppy0 READ ff POS1050 SC09 TR00 Floppy0 READ 1f POS1180 SC10 TR00 Floppy0 READ 19 POS1310 SC11 TR00 Floppy0 READ 00 POS1440 SC12 TR00 Floppy0 READ 59 POS1570 SC13 TR00 Floppy0 READ 42 POS1700 SC14 TR00 Floppy0 READ 45 POS1830 SC15 TR00 Floppy0 READ 81 POS1960 SC16 TR00 Floppy0 READ f4 POS2090 SC17 TR00 Floppy0 READ f4 POS2220 SC18 TR00 Floppy0 READ b6 POS2350 SC19 TR00 Floppy0 READ 4a POS2480 SC20 TR00 Floppy0 READ 01 POS2610 SC21 TR00 Floppy0 READ 04 POS2740 SC22 TR00 Floppy0 READ 32 POS2870 SC23 TR00 Floppy0 SET STATE 0 OPER 000000 Floppy0 COMMAND 000070 Floppy0 SET STATE 1 OPER 000060 Floppy0 STEP IN Floppy0 PREPARE TRACK 1 Floppy0 COMMAND 000010 Floppy0 SET STATE 1 OPER 000000 Floppy0 READ 6c POS0010 SC01 TR01 Floppy0 READ 0d POS0140 SC02 TR01 Floppy0 READ 01 POS0270 SC03 TR01 Floppy0 READ bb POS0400 SC04 TR01 Floppy0 READ 04 POS0530 SC05 TR01 Floppy0 READ 0a POS0660 SC06 TR01 Floppy0 READ 35 POS0790 SC07 TR01 Floppy0 READ ff POS0920 SC08 TR01 Floppy0 READ ff POS1050 SC09 TR01 Floppy0 READ ff POS1180 SC10 TR01 Floppy0 READ 46 POS1310 SC11 TR01 MD.SYS sector 1, занимает 16 секторов Floppy0 READ d7 POS1440 SC12 TR01 MD.SYS sector 2 Floppy0 READ ff POS1570 SC13 TR01 MD.SYS sector 3 Floppy0 READ e0 POS1700 SC14 TR01 MD.SYS sector 4 Floppy0 READ 00 POS1830 SC15 TR01 MD.SYS sector 5 Floppy0 READ 37 POS1960 SC16 TR01 MD.SYS sector 6 Floppy0 READ 11 POS2090 SC17 TR01 MD.SYS sector 7 Floppy0 READ 05 POS2220 SC18 TR01 MD.SYS sector 8 Floppy0 READ c1 POS2350 SC19 TR01 MD.SYS sector 9 Floppy0 READ c1 POS2480 SC20 TR01 MD.SYS sector 10 Floppy0 READ 5e POS2610 SC21 TR01 MD.SYS sector 11 Floppy0 READ 1f POS2740 SC22 TR01 MD.SYS sector 12 Floppy0 READ 1f POS2870 SC23 TR01 MD.SYS sector 13 Floppy0 SET STATE 0 OPER 000000 Floppy0 COMMAND 000070 Floppy0 SET STATE 1 OPER 000060 Floppy0 STEP IN Floppy0 PREPARE TRACK 2 Floppy0 COMMAND 000010 Floppy0 SET STATE 1 OPER 000000 Floppy0 READ c5 POS0010 SC01 TR02 MD.SYS sector 14 Floppy0 READ e6 POS0140 SC02 TR02 MD.SYS sector 15 Floppy0 READ 01 POS0270 SC03 TR02 MD.SYS sector 16 -- конец Floppy0 READ 90 POS0400 SC04 TR02 Floppy0 READ 04 POS0530 SC05 TR02 Floppy0 READ 1a POS0660 SC06 TR02 Floppy0 READ 48 POS0790 SC07 TR02 Floppy0 READ 1f POS0920 SC08 TR02 Floppy0 READ 19 POS1050 SC09 TR02 Floppy0 READ 00 POS1180 SC10 TR02 Floppy0 READ 59 POS1310 SC11 TR02 Floppy0 READ 42 POS1440 SC12 TR02 Floppy0 READ 45 POS1570 SC13 TR02 Floppy0 READ 81 POS1700 SC14 TR02 Floppy0 READ f4 POS1830 SC15 TR02 Floppy0 READ f4 POS1960 SC16 TR02 Floppy0 READ b6 POS2090 SC17 TR02 Floppy0 READ 4a POS2220 SC18 TR02 Floppy0 READ 01 POS2350 SC19 TR02 Floppy0 READ 04 POS2480 SC20 TR02 Floppy0 READ 32 POS2610 SC21 TR02 Floppy0 READ 6c POS2740 SC22 TR02 Floppy0 READ 0d POS2870 SC23 TR02 000154: MOV (R5), R4 000156: CLR (R5) Floppy0 SET STATE 0 OPER 000000
После чтения с диска
... Проверка контрольных сумм? ... 000476: TST (SP)+ 000500: RTI ; Завершение подпрограммы чтения 000366: MOV #040152, R5 000372: CMP (SP)+, 177772(R5) 000376: BNE 000664 000400: MOV (SP)+, R3 000402: BEQ 000412 000412: MOV #000100, R4 000416: MOV (SP)+, R3 000420: MOV (SP)+, R2 000422: MOV (R5)+, (R2)+ 000424: DEC (SP) 000426: BEQ 000074 000430: SOB R4, 000422 ... Крутится цикл 000422-000430 ... 000432: INC R3 000434: MOV R2, -(SP) 000436: MOV R3, -(SP) 000440: BR 000636 000636: CLR R1 000640: MOV #040016, R5 000644: MOV #000120, R4 000650: MOVB (R5)+, R2 000652: MOV R1, R0 000654: ADD R2, R1 000656: CMP R1, (SP) 000660: BHI 000300 000662: SOB R4, 000650 ... Крутится цикл 000650-000662 ... 000300: MOV (SP), -(SP) 000302: SUB R0, (SP) 000304: MOV R0, -(SP) 000306: SUB #000120, R4 000312: MOV #040000, R3 000316: MOV (R3), R1 000320: ADD R4, R1 000322: BEQ 000366 000366: MOV #040152, R5 000372: CMP (SP)+, 177772(R5) 000376: BNE 000664 000400: MOV (SP)+, R3 000402: BEQ 000412 000404: ADD #000202, R5 000410: SOB R3, 000404 000412: MOV #000100, R4 000416: MOV (SP)+, R3 000420: MOV (SP)+, R2 000422: MOV (R5)+, (R2)+ 000424: DEC (SP) 000426: BEQ 000074 000430: SOB R4, 000422 ... Крутится цикл 000422-000430 ... ... 000426: BEQ 000074 000074: TST (SP)+ 000076: RETURN 003676: MOV (SP)+, R0 003700: MOV (SP)+, R1 003702: MOV (SP)+, R2 003704: MOV (SP)+, R3 003706: MOV (SP)+, R4 003710: MOV (SP)+, R5 003712: RETURN 002022: BLO 001764 002024: MOV R2, R5 ; 154000 002026: ADD #000176, R5 ; 154176 002032: CALL 003742 003742: MOV @#000004, 003776 003750: MOV #003636, @#000004 003756: MOV @#000010, 004004 003764: MOV #003636, @#000010 003772: CALL @(SP)+ 002036: TST @(R5)+ ; 154200 002040: NOP 002042: BLO 002070 002044: TST (R5)+ ; R5=154200, (R5)=005727 002046: BEQ 002056 ; Отличие от 3.03 -- в 4.05 условие НЕ сработало -- почему? 002050: CALL 003652 003652: MOV R5, -(SP) 003654: MOV R4, -(SP) 003656: MOV R3, -(SP) 003660: MOV R2, -(SP) 003662: MOV R1, -(SP) 003664: MOV R0, -(SP) 003666: MOV R5, -(SP) 003670: MOV 000014(SP), R5 003674: CALL @(SP)+ 154202: SEC 154204: MOV #000000, @#177600 154212: BHIS 154254 154214: TST @#177574 154220: NOP 154222: BHIS 154232 154232: MOV PC, R0 154234: ADD #000022, R0 154240: TSTB @#177564 154244: BPL 154240 ... Вечный цикл 154240-15444 ... Floppy Motor OFF