Загрузка данных
писание компьютера
В своей базовой конфигурации компьютер представляет из себя материнскую плату
со слотом расширения. Слот - 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|
--------|--------|--------|--------|--------|--------|--------|--------|