На ВМ1.
Код:000001 @776/122540 177777 @1000/177777 10011 001002/000000 @R6/177574 1000 @R7/000001 1000 @R0/160134 0 @R1/000000 160000 RS/000000 341 @/000341 @P 000003 @776/000341
На ВМ1.
Код:000001 @776/122540 177777 @1000/177777 10011 001002/000000 @R6/177574 1000 @R7/000001 1000 @R0/160134 0 @R1/000000 160000 RS/000000 341 @/000341 @P 000003 @776/000341
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Попробовал загрузится с прошивки от платы И4 Эл.60. На приводе DX вылетает, на DY пробует читать и встает, чего-то ждет.
Загрузчик
Реализован так:
Код:case CMD_EMPTY: { switch( nCMD_Phase ) { case 1: { nCMD_WordCount = wDATA & 0xFF; nCMD_Phase = 2; bTR = true; } break; case 2: { nCMD_BufAddr = wDATA; nCMD_BufAddr |= nCMD_ExtAddrBits; nCMD_Phase = 0; bTR = false; if( ( bCMD_DoubleDensity && nCMD_WordCount > 128 ) || ( !bCMD_DoubleDensity && nCMD_WordCount > 64 ) ) { nLastErrorCode = 0230; wRXES |= BIT_10; CMD_Done_Error(); } else { int nBytes = nCMD_WordCount * 2; for( int i = 0 ; i < nBytes ; i++ ) { dword addr = nCMD_BufAddr + i; if( !*pb22bit ) { addr &= 0xFFFF; } if( !abWriteAccess[addr] ) { wRXES |= BIT_11; return CMD_Done_Error(); } BYTE( addr ) = SectorBuf[i]; } CMD_Done(); } } break; } } break;
Потому что это кусок загрузчика DX. Он доходит до чтения прочитанного сектора из буфера контроллера и осуществляет переход за пределы кода.
Оригинал из прошивки ДВК-1 выглядит так:
Код:ROM:173000 Mov #100247, R2 ROM:173004 ROM:173004 loc_173004: ; CODE XREF: ROM:173046 ROM:173004 ; ROM:173064 ROM:173004 Mov #177170, R1 ROM:173010 ROM:173010 loc_173010: ; CODE XREF: ROM:173012 ROM:173010 BiTB R2, (R1) ROM:173012 BEq loc_173010 ROM:173014 MovB #^B111, R3 ROM:173020 Mov R1, R0 ROM:173022 Mov R2, (R0)+ ROM:173024 Br loc_173032 ROM:173026 ; --------------------------------------------------------------- ROM:173026 ROM:173026 loc_173026: ; CODE XREF: ROM:173050 ROM:173026 Mov #1, (R0) ROM:173032 ROM:173032 loc_173032: ; CODE XREF: ROM:173024 ROM:173032 ASR R3 ROM:173034 BCS loc_173042 ROM:173036 MovB (PC)+, (R1) ROM:173040 ; --------------------------------------------------------------- ROM:173040 ROM:173040 loc_173040: ; CODE XREF: ROM:173054 ROM:173040 MovB (R0), (R3)+ ROM:173042 ROM:173042 loc_173042: ; CODE XREF: ROM:173034 ROM:173042 ; ROM:173036 ROM:173042 BiT R2, (R1) ROM:173044 BEq loc_173042 ROM:173046 BMi loc_173004 ROM:173050 BCS loc_173026 ROM:173052 TstB (R1) ROM:173054 BMi loc_173040 ROM:173056 Clr R0 ROM:173060 Cmp #240, (R0) ROM:173064 BNE loc_173004 ROM:173066 CmpB #247, R2 ROM:173072 AdC R0 ROM:173074 Clr @#177674 ; CPC ROM:173100 Mov #340, @#177676 ; CPSW ROM:173106 START
Если контроллер DY - он может работать и с 16-разрядной, и с 18-разрядной шиной. Про ВП1-033 не вполне понятно - он может выбирать одиночную/двойную плотность и работать с ДМА? Если нет - тогда только DX.
Вроде как загрузчик был битый. Более того, этот кусок совпадает с куском кода прошивки 055 с адреса 022.
Исправленный загрузчик- здесь.
Да, вроде только DX. Непонятно кому предназначался код загрузчика DY в прошивке 055.
Ну и DY думаю что может в PIO работать без DMA.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)