Цитата Сообщение от forth32 Посмотреть сообщение
Тут, конечно, от момента выдачи адреса до считывания данных проходят 2 коротких однобайтовых инструкции (ex de,hl и dec de). Это 9 тактов или 3.6 мкс.
посчитал тут такты немного, имхо там больше тактов

определение EXTROM
его ловим как инициатор старта "загрузчика"
сначала ставит c.7=0
потом ставит c.7=1 (это для нас признак начала работы)
с момента c.7=1 до первого чтения 67 тактов
Код:
RAM:04C5                 mvi     m, 0Eh 	 ;0 000 111 0 (setc.7=0)
RAM:04C7 ;
RAM:04C7                 ldax    d
RAM:04C8                 cma
RAM:04C9                 ani     1
RAM:04CB                 jz      noRom
RAM:04CE                 mvi     m, 0Fh
RAM:04D0                 ldax    d		 ; 7
RAM:04D1                 ani     1 		 ; 7
RAM:04D3                 jnz     okRom		 ; 10
...
RAM:0546 okRom:                                  ; CODE XREF: RAM:04D3j
RAM:0546                 mvi     l, 0Bh		 ;  7	FA0B PPI0.RUS
RAM:0548                 mvi     m, 90h 	 ; 10	 1 00 1 0 0 0 0 = A - in, BC - OUT 
RAM:054A                 mvi     l, 9		 ;  7	FA09 PPI0.B
RAM:054C                 mvi     m, 4 		 ; 10	set ext addr=0004
RAM:054E                 xchg 			 ;  4
RAM:054F                 dcx     d 		 ;  5  	67=7+7+10+7+10+7+10+4+5 after c.7=1
RAM:0550                 ldax    d 		 ;! 7 !
дальше, самый короткий интервал между сменой бита в адрессе и чтением - 33такта

вот в этом куске
Код:
RAM:054E                 xchg 			 ;  4
RAM:054F                 dcx     d 		 ;  5  	67=7+7+10+7+10+7+10+4+5 after c.7=1
RAM:0550                 ldax    d 		 ;! 7 !
RAM:0551                 mov     l, a 		 ;  4
RAM:0552                 call    extRomIncAddr 	 ; 17+16  33T aftrer bit change  
RAM:0555                 ldax    d 		 ;
RAM:0556                 mov     h, a
т.е. самый короткий цикл - 33 такта
в циклах чтения/проверки/сравнения минимум вроде 43 такта

Скрытый текст


Код:
RAM:04BC ExtROM:                                 ; CODE XREF: RAM:04AAj
RAM:04BC                 call    CLS
RAM:04BF                 lxi     h, PPI2_RUS
RAM:04C2                 lxi     d, PIC_RUS
RAM:04C5                 mvi     m, 0Eh 	 ;0 000 111 0 (setc.7=0)
RAM:04C7 ;
RAM:04C7                 ldax    d
RAM:04C8                 cma
RAM:04C9                 ani     1
RAM:04CB                 jz      noRom
RAM:04CE                 mvi     m, 0Fh
RAM:04D0                 ldax    d		 ; 7
RAM:04D1                 ani     1 		 ; 7
RAM:04D3                 jnz     okRom		 ; 10
RAM:04D6
RAM:04D6 noRom:                                  ; CODE XREF: RAM:04CBj
RAM:04D6                 ora     c
RAM:04D7                 jz      R_LOAD_TST
RAM:04DA                 lxi     h, mNoRom       ; "Подключите внешнее ПЗУ"
RAM:04DD                 jmp     msgHalt
RAM:04E0 ; ---------------------------------------------------------------------------
RAM:04E0
RAM:04E0 romError:                               ; CODE XREF: RAM:0574j
RAM:04E0                 lxi     h, mRomError    ; "Внешнее ПЗУ неисправно"
RAM:04E3
RAM:04E3 msgHalt:                                ; CODE XREF: RAM:04DDj
RAM:04E3                 lxi     d, ACZU
RAM:04E6                 call    toSCR
RAM:04E9
RAM:04E9 _HALT:                                  ; CODE XREF: RAM:05B0j
RAM:04E9                                         ; RAM:05C0j
RAM:04E9                 hlt


RAM:0546 okRom:                                  ; CODE XREF: RAM:04D3j
RAM:0546                 mvi     l, 0Bh		 ;  7	FA0B PPI0.RUS
RAM:0548                 mvi     m, 90h 	 ; 10	 1 00 1 0 0 0 0 = A - in, BC - OUT 
RAM:054A                 mvi     l, 9		 ;  7	FA09 PPI0.B
RAM:054C                 mvi     m, 4 		 ; 10	set ext addr=0004
RAM:054E                 xchg 			 ;  4
RAM:054F                 dcx     d 		 ;  5  	67=7+7+10+7+10+7+10+4+5 after c.7=1
RAM:0550                 ldax    d 		 ;! 7 !
RAM:0551                 mov     l, a 		 ;  4
RAM:0552                 call    extRomIncAddr 	 ; 17+16  33T aftrer bit change  
RAM:0555                 ldax    d 		 ;
RAM:0556                 mov     h, a
RAM:0557                 call    extRomIncAddr
RAM:055A                 push    h 		 ; 4,5 START addr
RAM:055B                 ldax    d
RAM:055C                 mov     h, a
RAM:055D                 mvi     l, 0
RAM:055F                 call    extRomIncAddr
RAM:0562                 push    h
RAM:0563                 ldax    d
RAM:0564                 mov     b, a
RAM:0565                 call    resetRomAddr
RAM:0568                 mvi     c, 0
RAM:056A
RAM:056A crcLoop:                                ; CODE XREF: RAM:0570j
RAM:056A                 ldax    d		 ; 7
RAM:056B                 add     c 		 ; 4
RAM:056C                 mov     c, a 		 ; 5
RAM:056D                 call    extRomIncAddr 	 ; 17+16
RAM:0570                 jnz     crcLoop 	 ; 10 
RAM:0573                 inr     c 		 
RAM:0574                 jnz     romError
RAM:0577                 call    resetRomAddr
RAM:057A
RAM:057A rom2ramLoop:                            ; CODE XREF: RAM:0580j
RAM:057A                 ldax    d 		 ; 7
RAM:057B                 mov     m, a 		 ; 7
RAM:057C                 inx     h 		 ; 5
RAM:057D                 call    extRomIncAddr   ; 17+16
RAM:0580                 jnz     rom2ramLoop 	 ; 10 
RAM:0583                 call    resetRomAddr
RAM:0586                 lxi     h,  ACZU+40h
RAM:0589                 xthl
RAM:058A                 mvi     c, 38h ; '8'
RAM:058C
RAM:058C VerifyRom:                              ; CODE XREF: RAM:05B9j
RAM:058C                 ldax    d 			; 7 
RAM:058D                 cmp     m 			; 7
RAM:058E                 jz      VerifyRomNextByte
RAM:0591                 xchg
RAM:0592                 xthl
RAM:0593                 call    PutHexDE
RAM:0596                 mvi     m, 20h ; ' '
RAM:0598                 inx     h
RAM:0599                 ldax    d
RAM:059A                 call    PutHexA
RAM:059D                 mvi     m, 20h ; ' '
RAM:059F                 inx     h
RAM:05A0                 xthl
RAM:05A1                 mov     a, m
RAM:05A2                 xthl
RAM:05A3                 call    PutHexA
RAM:05A6
RAM:05A6 loc_5A6:                                ; CODE XREF: RAM:05ACj
RAM:05A6                 mvi     m, 20h ; ' '
RAM:05A8                 inx     h
RAM:05A9                 mov     a, l
RAM:05AA                 ani     0Fh
RAM:05AC                 jnz     loc_5A6
RAM:05AF                 dcr     c
RAM:05B0                 jz      _HALT
RAM:05B3                 xthl
RAM:05B4                 xchg
RAM:05B5
RAM:05B5 VerifyRomNextByte:                      ; CODE XREF: RAM:058Ej
RAM:05B5                 inx     h
RAM:05B6                 call    extRomIncAddr 	 ;17+16
RAM:05B9                 jnz     VerifyRom 	 ;10
RAM:05BC                 pop     h
RAM:05BD                 mov     a, c
RAM:05BE                 cpi     38h ; '8'
RAM:05C0                 jnz     _HALT
RAM:05C3                 pop     h
RAM:05C4                 pchl
RAM:05C4 ; ---------------------------------------------------------------------------
RAM:05C5 mNoRom:         .text "Подключите внешнее ПЗУ"
RAM:05C5                 .db 0
RAM:05DC mRomError:      .text "Внешнее ПЗУ неисправно" ; DATA XREF: RAM:romErroro
RAM:05DC                 .db 0
RAM:05F3
RAM:05F3 ; =============== S U B R O U T I N E =======================================
RAM:05F3
RAM:05F3
RAM:05F3 resetRomAddr:                           ; CODE XREF: RAM:0565p
RAM:05F3                                         ; RAM:0577p ...
RAM:05F3                 xra     a
RAM:05F4                 inx     d
RAM:05F5                 stax    d
RAM:05F6                 inx     d
RAM:05F7                 stax    d
RAM:05F8                 dcx     d
RAM:05F9                 dcx     d
RAM:05FA                 ret
RAM:05FA ; End of function resetRomAddr
RAM:05FA
RAM:05FB
RAM:05FB ; =============== S U B R O U T I N E =======================================
RAM:05FB
RAM:05FB
RAM:05FB extRomIncAddr:                          ; CODE XREF: RAM:0552p
RAM:05FB                                         ; RAM:0557p ...
RAM:05FB                 inx     d	;5		 5
RAM:05FC                 ldax    d	;7		12
RAM:05FD                 inr     a	;5		17
RAM:05FE                 stax    d	;7		24 	
RAM:05FF                 dcx     d	;5		29 	 5
RAM:0600                 rnz		;11 yes/5	40/34 	16 (after bit change)
RAM:0601                 inx     d 	;5		39
RAM:0602                 inx     d	;5		44
RAM:0603                 ldax    d	;7		51
RAM:0604                 inr     a	;5		56
RAM:0605                 stax    d	;7		63
RAM:0606                 dcx     d	;5		68
RAM:0607                 dcx     d	;5		73
RAM:0608                 cmp     b	;4		77
RAM:0609                 ret		;10		87
RAM:0609 ; End of function extRomIncAddr
RAM:0609
[свернуть]