Lavr wrote:А вот за схемы им бы надо высказать: фу!
Acorn Schematics
Ну кто же так мерзко схемы-то рисует!

Схема в общем-то довольно несложная, но отрисована весьма нечитабельно, да еще и разрезана
на 2 части, и это не считая отдельной схемы клавиатуры и УВВ.
Пришлось её "
склеить", местами подправить, и, несмотря на плотный диспут "
о сущности терминала
и его влиянии на простоту мира"

, я внимательно с ней поразбирался...
Выяснилось, что в оригинале схемы довольно бестолковая разводка дешифрации пространства памяти,
больше похожая на некий тестовый вариант без основного ОЗУ в 1КБайт...
Порт ВВ
INS 8154 RAM/IO, кроме
16 линий ввода-вывода, настраиваемых индивидуально, имеющий
еще и сложные автоматческие режимы с "рукопожатиями" (которые так любит
Шаос!

), содержит также
128 Байт ОЗУ, что позволяет с грехом попалам стартануть систему без отдельного ОЗУ.
(Странно, но эти 128 Байт ОЗУ в поделии так и не используют...)
Пришлось отследить дешифрацию по
фотографиям основной платы, пройдясь по дорожкам, и в результате
исправленная схема
Acorn 6502 Microcomputer совпала с адресами из исходника её программы -
Монитор.
Исправленную схему
Acorn 6502 Microcomputer выкладываю под спойлер, т.к. она довольно большая...
Acorn 6502 Microcomputer schematics
Карта памяти
Acorn 6502 Microcomputer в результате вырисовывается следующая:
Code: Select all
--------------------------
F800-FFFF - ROM 74S571X2 - 512 Байт (4 раза, 3 зеркала)
F000-F7FF - ROM 2516 (2KБайт EPROM) (IC7 не установлена)
----.--98.7---.----.----
0000.1111.1111.1111 0FFF | M/IO = A7 = 1 MEM
0000.1111.1000.0000 0F80 | Second RAM/IO RAM($0F80-$0FFF; not used by monitor)
0000.1111.0111.1111 0F7F | M/IO = A7 = 0 IO
0000.1111.0000.0000 0F00 | Second RAM/IO IO ($0F00-$0F7F)
0000.1110.1111.1111 0EFF | M/IO = A7 = 1 MEM
0000.1110.1000.0000 0E80 | First RAM/IO RAM ($0E80-$0EFF; not used by monitor)
0000.1110.0111.1111 0E7F | M/IO = A7 = 0 IO
0000.1110.0010.0011 0E23 | X1BDDR Port B Data direction register
0000.1110.0010.0010 0E22 | X1ADDR Port A Data direction register
0000.1110.0010.0001 0E21 | X1PIB Port B Programmable I/O
0000.1110.0010.0000 0E20 | X1PIA Port A Programmable I/O
0000.1110.0000.0000 0E00 | First RAM/IO IO ($0E00-$0E7F)
0000.1101.1111.1111 0DFF |/CS0 = 0
0000.1101.0000.0000 0D00 | CS1 = A9 = 0
0000.1100.1111.1111 0CFF | INS 8154 не выбрана
0000.1100.0000.0000 0C00 |
0E00-0FFF - /CS0 INS 8154; CS1 = A9; M/IO = A7 (IC8 MEM_I/O; PORTS)
0C00-0DFF - не занято
0800-0BFF - /CS0 INS 8154; CS1 = A8; M/IO = A7 (IC8 не установлена)
0400-07FF - не занято
0000-03FF - RAM 2114X2 - 1KБайт
--------------------------
В общем-то интересно мне насколько проблематично заменить этот самый хитрый порт ВВ
INS 8154 RAM/IO,
раз уж приложенная к нему память в системе не используется...
Судя по
его мануалу, порт довольно интересный: позволяет, в частности, одним обращением команды
ассемблера изменить состояние выходной линии, не загружая аккумулятор ЦПУ, а чисто обращением
к порту по соответствующему адресу (бит вывода - в адресе).
Поскольку ассемблерный исходник
Монитора есть, то перепахать его под замену порта на
8255, видимо,
можно, если, конечно,
INS 8154 RAM/IO не использует каких либо хитрых режимов...
Код, конечно, станет объемнее, но можно пожертвовать "общением" с кассетным магнитофоном, я думаю...
P.S. На схеме есть несколько соединений, перечеркнутых авторами крестиком "-Х-"
, что может смутить.
Реально на плате эти дорожки существуют, но разведены и даже помечены так, что их легко перерезать,
и изменить карту памяти. Я так понимаю, это сделано с учетом дальнейшего развития поделия.
Позже эта плата стала процессорным блоком, как в нашей "Микро-80", для более сложной системы.
You do not have the required permissions to view the files attached to this post.