Загрузка данных


писание компьютера
В своей базовой конфигурации компьютер представляет из себя материнскую плату
со слотом расширения. Слот - 50pin idc, весьма удобный вариант, так как дешев,
можно легко подключать дополнительные платы шлейфом, который легко и дешего
изготавливается. В качестве CPU - Z80 на 4МГЦ (теоретически можно и больше).
Выбран из-за обилия информации по работе с ним, дешевизне, легкодоступности,
богатому функционалу (по сравнению с 8080 или 6502), удобству работы с ним.
Базавая RAM - 64kb, базовая rom - 16kb. На плате присутсвует также системный 
регистр на порту 00, он предназначен для изменения конфигурации памяти. 
Память компьютера делится на 4 окна по 16кб. При старте в нижнем окне находится
rom, в остальных окнах - base ram. При изменеинии бита D4 системного регистра,
на месте rom появляется еще 16kb base ram, что делает адресное пространство
непрерывным. В верхнее окно можно подставлять extended ram, банк либо 
выбирается напрямую младшими четырьмя битами системного регистра, в таком
случае доступно 64kb extended memory, либо же эти биты пропускаются через
дешифратор, в таком случае доступно уже 256kb. Extended memory может быть как 
rom, так и ram, и она подразумевается для установки на картах расширения.
В базовой конфигурации на материнской плате помимо процессора и памяти также
устанавливается контроллер прерываний 8259, системный таймер 8253 и контроллер
UART 8251. Порты этих устройст будут определены согласно схеме. INT0 и INT1 
заняты uart 8251, INT2 же отдан системному таймеру. Остальные прерывания 
выведены на слот расширения. Остальные каналы таймера отданы под генерацию
частоты для uart и под вывод звука. В ПЗУ планируется поместить программу
монитор EfexMon, с минимальными доработками, с учетом несколько иной карты
памяти и портов, а также необходимостью конфигурации устройств. Желательно
доработать монитор для поддержки прерываний UART. Ткаже, свободного места 
в rom должно хватить для tiny basic и загрузчика cp/m, которую вполне можно
адаптировать для этого компьютера. В слоте расширения хватает сигналов для 
работы с dma. Для компьютера можно будет сделать видеоконтроллер на чипе 
TMS9918 или подобном FPGA решении, звуковую карту на двух 8253, OPL2/3,
AY-3-8910 или любом другом синтезаторе, контроллер клавиатуры на МК,
CENTRONICS совместимый параллельный порт на 8255, дополнительный UART на том же
8251 или NS16450, MIDI совместимый порт, контроллеры IDE с использованием DMA
8257 или без поддержки DMA. Жду ваши комментарии и критику.  

Базовые характеристики
CPU - Z80 4mHz
ROM - 16K
BASERAM - 64K SRAM
EXTENDED MEMORY - 64K OR 256K 
BASE IO - 8251 UART WHITH FLOW CONTROL
8 INTERRUPT REQUEST LINES


Распиновка шины
 A0      1     2	D0
 A1      3     4	D1
 A2      5     6	D2
 A3      7     8	D3
 A4      9    10	D4
 A5      11   12	D5
 A6      13   14	D6
 A7      15   16	D7
 A8      17   18	!WAIT
 A9      19   20	!BUSRQ
 A10     21   22	!BUSACK
 A11     23   24	RESERVED
 A12     25   26	RESERVED
 A13     27   28	RESERVED
 A14     29   30	INT3
 A15     31   32	INT4
 !IOR    33   34	INT5
 !IOW    35   36	INT6
 !MR     37   38	INT7
 !MW     39   40	!NMI
 BNK0    41   42	M1
 BNK1    43   44	RESERVED
 BNK2    45   46	!C000CS
 BNK3    47   48	CLK
 !ROMSEL 49   50	!RES

Описание сигналов шины
A0-A15 - адресные линии 
D0-D7 - линии данных
!IOR - чтение IO
!IOW - запись в IO
!MR - чтение памяти
!IOW - запись в память
BNK0-BNK3 - выбор банка памяти по адресам C000-FFFF 
!ROMSEL - выбор, что будет по адресам 0000-3FFF,ROM или RAM
!WAIT - приостановка процессора
!BUSRQ - запрос на захват шины
!BUSACK - подтверждение захвата шины
INT3-INT7 - входы прерываний
!NMI - вход немаскируемого прерывания
M1 - цикл M1 процессора
!C000CS - обращение к этому окну
CLK - тактовый сигнал процессора
!RES - сигнал сброса процессора
RESERVED - Зарезервирован

Карта памяти

----------|----------|----------|----------|----------|----------|----------|
 ADDRESS  |   ROM    | BASERAM  |   BNK0   |   BNK1   |   BNK2   |   BNK3   |
----------|----------|----------|----------|----------|----------|----------|
0000-3FFF |     X    |     X    |          |          |          |          |
----------|----------|----------|	       |          |          |          |
4000-7FFF |          |     X    |          |          |          |          |
----------|          |----------|          |          |          |          |
8000-BFFF |          |     X    |          |          |          |          |
----------|          |----------|----------|----------|----------|----------|
C000-FFFF |          |     X    |     X    |     X    |     X    |     X    |
----------|----------|----------|----------|----------|----------|----------|


Системный регистр

--------|--------|--------|--------|--------|--------|--------|--------|
   D0   |   D1   |   D2   |   D3   |   D4   |   D5   |   D6   |   D7   |
--------|--------|--------|--------|--------|--------|--------|--------|
  BNK0  |  BNK1  |  BNK2  |  BNK3  |!ROMSEL |RESERVED|RESERVED|RESERVED|
--------|--------|--------|--------|--------|--------|--------|--------|