согласен, момент выбора банка ОЗУ может находиться где-то в коде инициализации.
Вид для печати
правильно.
во всех системмах где возможны аппаратные прерывания обязательно при входе в критические участки их запрещают.
какие могут быть прерывания если не настроен (их) контроллер и не определен стек.
Atari, ну как же правильно? PC = 0000 + 1 --> 0001.
да я и забыл про РС... это само сабой...
После сброса, схема начального старта принудительно включает нулевую карту памяти:
[0000h - 3FFFh] - ПЗУ,
[4000h - CFFFh] - ОЗУ,
[D000h - FFFFh] - Видео.
После инициализации ВВ55, включается та же нулевая карта.
Весь процесс, собственно, вот (под спойлером):
Скрытый текст
Код:ROM:0000 loc_0000:
ROM:0000 F3 di
ROM:0001 31 00 D0 lxi sp, 0D000h
ROM:0004 C3 47 02 jmp _Init0
ROM:008E ; ---------------------------------------------------------------------------
ROM:0091 00 00 00 40+_init_VV51: .db 0, 0, 0, 40h, 0CEh, 15h
ROM:0097 FF FF 00 FF+_toAsrar: .db 0FFh,0FFh,0,0FFh,50h,41h,0,0,0,0,50h,19h,0,0,0FFh,20h
ROM:00A7 ; ---------------------------------------------------------------------------
ROM:0247 _Init0:
ROM:0247 3E 82 mvi a, 82h
ROM:0249 D3 13 out PPA_RUS
ROM:024B 21 97 00 lxi h, _toAsrar
ROM:024E 01 10 00 lxi b, 10h
ROM:0251 11 74 FF lxi d, ASRAR
ROM:0254 CD 6F 00 call _LDIR
ROM:0257 3E 76 mvi a, 76h
ROM:0259 D3 0B out TMR_RUS
ROM:025B 3E 21 mvi a, 21h
ROM:025D D3 09 out TMR_CH1
ROM:025F 3E 1B mvi a, 1Bh
ROM:0261 D3 09 out TMR_CH1
ROM:0263 3E 36 mvi a, 36h
ROM:0265 D3 0C out PIC_0C_REQ_CMD
ROM:0267 3E 88 mvi a, 88h
ROM:0269 D3 0D out PIC_0D_MASK_CMD
ROM:026B 3E FF mvi a, 0FFh
ROM:026D D3 0D out PIC_0D_MASK_CMD
ROM:026F 3E 20 mvi a, 20h
ROM:0271 D3 0C out PIC_0C_REQ_CMD
ROM:0273 0E 06 mvi c, 6
ROM:0275 21 91 00 lxi h, _init_VV51
ROM:0278
ROM:0278 loc_0278:
ROM:0278 7E mov a, m
ROM:0279 D3 07 out VV51_StatCtrl
ROM:027B 0D dcr c
ROM:027C 23 inx h
ROM:027D C2 78 02 jnz loc_0278
ROM:0280 DB 06 in VV51_Data
ROM:0282 3E 36 mvi a, 36h
ROM:0284 D3 0B out TMR_RUS
ROM:0286 3E 0C mvi a, 0Ch
ROM:0288 D3 08 out TMR_CH0
ROM:028A 3E 00 mvi a, 0
ROM:028C D3 08 out TMR_CH0
[свернуть]
Это весь процесс инициализации МП.
---------------------------------------
* Из любезно предоставленной esl информации. :)
KokaF77, приправьте ПЛЗ комментами, а то почти минуту догонял что "???_RUS" - это регистр управляющего слова.
есть где нормальная распортовка? всмысле описание что на каких портах находится
---------- Post added at 23:05 ---------- Previous post was at 22:46 ----------
esl, в принципе стилистика нормальная, просто думаю стоит иногда объяснять что именно имеется ввиду и не плодить ненужные ребусы.
"Красная книга" :)
тут была ссылка на мою идашную базу
Бери и переименовывай как удобно ;)
Код:; enum IO_Ports
KBD_R4: equ 4
KBD_R5: equ 5
VV51_Data: equ 6
VV51_StatCtrl: equ 7
TMR_CH0: equ 8
TMR_CH1: equ 9
TMR_CH2: equ 0Ah
TMR_RUS: equ 0Bh
PIC_0C_REQ_CMD: equ 0Ch
PIC_0D_MASK_CMD: equ 0Dh
PIC_0E_REQ_CMD: equ 0Eh
PIC_0F_MASK_CMD: equ 0Fh
PPA_A: equ 10h
PPA_B: equ 11h
PPA_C: equ 12h
PPA_RUS: equ 13h
ROMDISK_PORT: equ 14h
VID_MODE: equ 0D8h
VID_COLOR: equ 0D9h
VID_PAGE: equ 0DAh
а контролеров прерываний два?