nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 13:08



Reply to topic  [ 312 posts ]  Go to page Previous  1 ... 15, 16, 17, 18, 19, 20, 21  Next
Микро-ЭВМ на КМ1801ВМ2 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Lavr wrote:
LCD без подсветки?

Ну если припаяться, то будет и подсветка - пока ненадо :roll:

P.S. Вышеприведённая программка пока работает только на 1 МГц - на больших частотах видать LCD не поспевает - сегодня задержки побольше поставлю и погоняю ещё

P.P.S. Люди в рассылке мне советуют вот это портировать сюда: https://github.com/sergev/bkunix
Quote:
BKUNIX - what could have been...

Starting from the mid-1980s in the USSR a home microcomputer BK-0010
was produced that used the instruction set of DEC LSI-11.
Its first version, released in 1985, had 32 Kb of RAM, out of which
up to 16 Kb had to be reserved for the video memory.
A tape recorder was the external storage device. A great variety of games,
educational and text processing software, as well as a few programming
systems have been written for it.

Later, a floppy controller with an extra 16 Kb of RAM became available,
and a flurry of "operating systems" (pseudographic file managers a la
Norton Commander), some of them supporting the MS-DOS and the RT-11 file
systems, achieved popularity.

When an improved version (BK-0011M, featuring 128 Kb of RAM, switchable
video buffers, a timer, and a VT-100 compatible terminal emulator)
got released, RT-11 (SJ - single job) had been ported to it,
and it was the only "real" operating system available on the BK
family of computers.

* * *

After learning about the existence of Mini-Unix and LSX - the minimalistic
Unix kernels derived from Unix V6, and reviving the latter from an incomplete
floppy image dump, I realized that it could have been possible to run a real
Unix on BK-0010! Indeed, LSX in its minimal configuration required only 40 Kb
of RAM, and a BK with a floppy controller could provide up to 44 Kb.

As all the LSX and Mini-Unix sources were written in an ancient dialect of the
C language (no unsigned, void, long; weird - by today's standards - syntax
of assignment operators and initializations), the first step was to patch
the source to conform to the newer style of C. An initial attempt to use
GCC for cross-development failed: it produced a buggy and size-inefficient
code. We have settled on using the Ritchie C compiler from a BSD distribution
and the Johnson Portable C compiler (PCC). In the process, quite a few bugs
in PCC got fixed.

Due to a peculiarity of the BK-0010 memory mapping we had to bring the
kernel up into the 120000-160000 range of addresses. This, and the fact that
the better compilers caused a noticeable reduction in code size, allowed us
to squeeze back the mount/umount system calls.

Before we proceed with the development of a purely BK-specific kernel,
we would like to release the code in a state when it still can work on
an LSI-11 (e.g. in the SIMH simulator).

Leonid Broukhis, Serge Vakulenko

The source files of the V6 Unix operating system have been
released under the BSD license by Caldera International, Inc.
See the accompanying file "Caldera-license" for details.

_________________
:dj: https://mastodon.social/@Shaos


18 Mar 2019 11:29
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
P.S. Вышеприведённая программка пока работает только на 1 МГц - на больших частотах видать LCD не поспевает - сегодня задержки побольше поставлю и погоняю ещё

Судя по документации на этот дисплейчик инициализация должна быть такой - после включения питания:
- ждём 15 мс (300000 тактов 20 МГц)
- посылаем команду 0x30
- ждём 4.1 мс (82000 тактов 20 МГц)
- посылаем команду 0x30
- ждём 100 мкс (2000 тактов 20 МГц)
- посылаем команду 0x38
- посылаем команду 0x08
- посылаем команду 0x01
У меня в коде ещё есть такое (копипастил из nedoPC-17 теста 12-летней давности)
- посылаем команду 0x06
По идее тут после каждой посылки надо флаг занятости читать, чтобы понять когда следующий символ можно сувать, но т.к. у меня просто запись, то будем просто ждать - в nedoPC-17 я ждал 5 мс после команды и 1 мс после символа - это 100000 тактов и 20000 тактов соответственно (наверное это черезчур - можно поменьше попробовать). Задержки в машкодах PDP-11 обычно делают так:
Code:
    mov #100,r0
delay1:
    sob r0,delay1

Тут команда SOB выполняется 100 раз - теоретически можно до 65536 раз сделать. Сегодня попрбую по шагам померять сколько тактов одна инструкция SOB занимает в моей МикроЭВМ без задержек и потом прикинуть какие константы надо вписывать для 20 МГц. Также судя по даташыту длина строба E должна быть как минимум 450 нс (и R/S с R/W должны быть установлены как минимум 140 нс до начала строба E) - это 9 тактов или примерно одна короткая инструкция ВМ2, работающего на частоте 20 МГц.

_________________
:dj: https://mastodon.social/@Shaos


18 Mar 2019 16:29
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Прогнал начало программки по шагам - вот чего намерял:
Code:
0005 0100                               start:
0006 0100 012704 000564                     mov #init,r4
первое слово команды читается за 8 тактов, второе слово - ещё 8 и 4 такта оно работает - всего 20 тактов CLCI
0007 0104                               initloop:
0008 0104 112400                            movb (r4)+,r0
сама инструкция вычитывается за 8 тактов, а потом опять странности конвеера - идём вычитывать следующую команду :)
0009 0106 001422                            beq endinit
вычитали инструкцию BEQ за 8 тактов, а потом оно кладёт на шину адрес 0x0174, чтобы прочитать (r4) для предыдущей инструкции и делает это 12 тактов ;)
0010 0108 005100                            com r0 ; invert character
тут всё просто - 8 тактов (возможно непосредственное исполнение этой инструкции накладывается на вычитку следующей)
0011 010A 052700 177400                     bis #0FF00H,r0 ; set all bits of higher byte
далее читает первое слово за 8 тактов, второе ещё за 8 и потом выполняет за 4 - всего 20 тактов
0012 010E 010037 177400                     mov r0,@#0FF00H
вычитка инструкции за 8 тактов и аргумента ещё за 8 потом идёт посылка содержимого R0 по указанному адресу - адрес 0xFF00 появляется на шине ещё через 10 тактов и вместе с записью на всё про всё уходит 30 тактов (интересно, что перед записью светодиод WTBT начинает МИГАТЬ сам по себе, по идее он должен ГОРЕТЬ, показывая, что далее пойдёт цикл записи)
0013 0112 042700 004000                     bic #800H,r0 ; inverted E=1
эта инструкция с однословным аргументом занимает 20 тактов
0014 0116 010037 177400                     mov r0,@#0FF00H
тут опять 30 (запись по адресу 0xFF00)
0015 011A 052700 004000                     bis #800H,r0 ; inverted E=0
тут снова 20
0016 011E 010037 177400                     mov r0,@#0FF00H
опять 30
0017 0122 012700 000144                     mov #100,r0
вычитка инструкции, аргумента и исполнение заняло 20 тактов
0018 0126                               delay1:
0019 0126 077001                            sob r0,delay1
вот тут интересно - вычитка инструкции заняло 8 тактов, а вот далее оно идёт читать следующую инструкцию!
0020 0128 000167 177730                     jmp initloop
вот это оно тоже читает, но не выполняет, т.к. ещё через 8 тактов на шине адреса опять появляется 0x0126 - значит sob выполняется за 24 такта
0021 012C                               endinit:

Значит если sob-цикл выполняется 24 такта, то задержки для 20 МГц надо делать следующим образом:

  • 15 мс это 300000 тактов 20 МГц или 12500 sob-циклов
  • 4.1 мс 82000 тактов 20 МГц или 3417 sob-циклов
  • 100 мкс 2000 тактов 20 МГц или 83 sob-цикла
  • 5 мс 100000 тактов 20 МГц или 4167 sob-циклов
  • 1 мс 20000 тактов 20 МГц или 833 sob-цикла

В моём вчерашнем коде я ждал только 100 sob-циклов или 2400 тактов, что при 1 МГц есть 2.4 мс - и в этом случае оно работало, а на 4 МГц - уже нет т.к. это была задержка уже 0.6 мс...

P.S. С такими задежками заработало и на 20 МГц :mrgreen:

_________________
:dj: https://mastodon.social/@Shaos


19 Mar 2019 20:54
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Новый исходник:

Code:
decimalnumbers
    org 0
    .word 0100H,0E0H ; reset vector
    org 0100H
start:
    mov #12500,r0 ; delay 15 ms for 20 MHz
delay0:
    sob r0,delay0
    mov #init,r4
initloop:
    movb (r4)+,r0
    beq endinit
    com r0 ; invert character
    bis #0FF00H,r0 ; set all bits of higher byte
    mov r0,@#0FF00H
    bic #800H,r0 ; inverted E=1
    mov r0,@#0FF00H
    bis #800H,r0 ; inverted E=0
    mov r0,@#0FF00H
    mov #4167,r0 ; delay 5 ms for 20 MHz
delay1:
    sob r0,delay1
    jmp initloop
endinit:
    mov #msg,r4
loop:
    movb (r4)+,r0
    beq endloop
    com r0 ; invert character
    bis #0FF00H,r0 ; set all bits of higher byte
    bic #200H,r0 ; inverted RS=1
    mov r0,@#0FF00H
    bic #800H,r0 ; inverted E=1
    mov r0,@#0FF00H
    bis #800H,r0 ; inverted E=0
    mov r0,@#0FF00H
    mov #833,r0 ; delay 1 ms for 20 MHz
delay2:
    sob r0,delay2
    jmp loop
endloop:
    mov #0FFFFH,r0
delay:
    sob r0,delay
    jmp start

msg:   .byte   "Hello, World!!!",0
init:   .byte   30H,30H,38H,8H,1H,6H,0CH,0

make_mk85_rom "lcd-test1.rom", 32768


Работает на 20 МГц с глюками:


https://youtu.be/K4fiBa9CdU4

Через какое-то время дисплей перестает что-то внятное показывать

А вот на 16 МГц работает не в пример стабильнее - уже минут 10 без сбоев крутит :roll:

_________________
:dj: https://mastodon.social/@Shaos


19 Mar 2019 22:27
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
OSHPark решило выдать мне скидку в размере стоимости производства опытной партии в 3 штуки :mrgreen:

Почти через год до меня дошло, что на том купоне еще оставалось чуть больше 50 баксов :)
Приложил их к изготовлению трех плат для модулей ОЗУ ;)
Скоро будет полноценный комп! :dj:


Attachments:
ram-pcbs.png
ram-pcbs.png [ 32.87 KiB | Viewed 10959 times ]

_________________
:dj: https://mastodon.social/@Shaos
01 Apr 2019 13:17
Profile WWW
Junior

Joined: 05 Jan 2015 14:47
Posts: 4
Location: Новосибирск
Reply with quote
О, как тут всё развернулось
По поводу прошивки в рт4 в моей схеме - ну, файла конечно уже нет, только выковыривать из платы )
Но там простой дешифратор: sync - разрешение, din|dout - строб, wtbt - чтение или запись

Вот структура программы для 1801вм2 если не используется сигнал sel, т.е. адресные пространства halt и user совпадают
Code:
.ASECT
        INIT
        600
        INIT
        600
        INIT
        600
.=24
        INIT
        600
.=34
        MAIN
        0
.=100
        TIMER
        200
.=170
        INIT
        600
        INIT
        600
.=274
        INIT
        600
.=1000
.CSECT
TIMER:
        ...
        RTI
INIT:
        MOV     ###,SP
        ...
        TRAP    0
MAIN:
        ...


04 Apr 2019 22:00
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
OSHPark решило выдать мне скидку в размере стоимости производства опытной партии в 3 штуки :mrgreen:

Почти через год до меня дошло, что на том купоне еще оставалось чуть больше 50 баксов :)
Приложил их к изготовлению трех плат для модулей ОЗУ ;)
Скоро будет полноценный комп! :dj:

Платки получил :idea:


Attachments:
RAM-module.jpg
RAM-module.jpg [ 187.9 KiB | Viewed 10882 times ]

_________________
:dj: https://mastodon.social/@Shaos
06 Apr 2019 20:10
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Вобщем прежде чем делать полновесный PDPii в mini-ITX форм-факторе с PS/2-клавой и дисками HDD/FDD (как предполагалось год назад), прямо щас можно реализовать две "облегченные" вариации для пробуждения интереса публики:

  • Junior PDPii - с дисплейчиком 16x2 и микрокнопочной клавкой прямо на материнской плате (чтобы начать продажи);
  • Soviet PDPii - с текстовым выводом на ТВ и советской клавиатурой "Электроника МС 7007" (у меня их есть несколько);
  • Graphic PDPii - полноценный компьютер с PS/2-клавой (и мышой?), VGA-выходом, звуковым стерео-выходом на колонки, HDD, FDD, CD-ROM, Ethernet и в mini-ITX форм факторе (предполагается быть совместимым с БК).

Первые две вариации будут использовать тот же базовый набор плат - CPU, ROM, RAM (плюс будет один-два свободных слота для будущих плат расширения типа переходника на периферию RC2014). В полноценном варианте память будет на самой материнке (т.е. модули ROM и RAM туда втыкать уже будет нельзя) и возможно ещё сделаю CPU модуль на ВМ1...

Первый пошёл: https://hackaday.io/project/164866-pdpjr :mrgreen:

_________________
:dj: https://mastodon.social/@Shaos


08 Apr 2019 11:03
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
16-битный порт на вывод доступен по BBS7, т.е. адрес 0FF00H должен сработать - младший байт это 8-битные данные в ЖКИ и несколько битов в старшем байте порта пойдут на управление - RS,R/W,E:

bit 8 - LED (индикация ошибки)
bit 9 - RS (0 для команды, 1 для данных)
bit 10 - R/W (0 для записи. 1 для чтения)
bit 11 - E (1 для разрешения связи с ЖКИ)
bit 12 - бит адреса клавиаутры KA0
bit 13 - бит адреса клавиатуры KA1
bit 14 - бит адреса клавиатуры KA2
bit 15 - IFLAG для nedoText/SX ?

в будущем можно на ввод тоже поддержать - младший байт также будет 8 бит данных (чтение из ЖКИ), а старший байт может быть таким:

bit 8 - бит клавиатуры KB0
bit 9 - бит клавиатуры KB1
bit 10 - бит клавиатуры KB2
bit 11 - бит клавиатуры KB3
bit 12 - бит клавиатуры KB4
bit 13 - кнопка S1?
bit 14 - кнопка S2?
bit 15 - OFLAG из nedoText/SX?

P.S. по идее наверное можно офигеть и подключить к PDPii целую советскую клаву МС7007 :mrgreen:
...
Там правда 12 линий назад надо будет принимать - в таком случае ЖКИ к млашему байту на ввод можно подключать только если E=1, а в противном случае это будет клава...

P.P.S. а дальше уже можно будет попробовать RT-11 на этом завести (c nedoText-овым выводом на ТВ), а может быть даже BSD :o
http://www.vcfed.org/forum/archive/index.php/t-45773.html

А вот для этого надо будет иметь в младших адресах ОЗУ - как на БК-шке - cоответственно предполагаю вот чего сделать (пока в рамках проекта "PDPii Junior") - CPU и RAM модули будут втыкаться в специально отведенные для них разъемы - причем у RAM-слота вместо A15 будет подаваться всегда "1", т.е. ОЗУ всегда будет видно во всем диапазоне адресов (повторяясь 2 раза) - далее на шине до ухода в CPU будет стоять некая логика, подставляющяя 16кб ПЗУ в режиме чтения (по DIN) либо в первую четверть памяти (режим по умолчанию), либо в третью (устанавливается путем записи некоего бита в регистр управления). Последняя четверть будет поделена между BSS7 (самая старшая 1/8 часть адресного пространства для периферийных устройств и регистра управления) и 8кб окном для внешнего картриджа, в качестве которого может выступать микросхема 27C1024 с программно переключаемыми 16 банками (4 бита управления переключением банков должны также быть в регистре управления). Наш системный регистр управления можно сдвинуть в область 0xFFFX, освободив остальные части BBS7 области для периферии, втыкаемой в BBQ-bus+. Еще момент, что в режиме чтения из ЖКИ (R/W=1) надо запрещать выдачу содержимого байта данных на порт ЖКИ т.к. тот будет находиться в режиме выдачи при E=1. И также бит RS можно задействовать для переключения IFLAG выхода на сигнал записи 5-битного регистра управления памятью, где младшие 4 бита будут управлять переключением банок "подменяемого" ПЗУ, а бит 4 (пятый) будет управлять местоположением "постоянного" ПЗУ в области памяти:
0 - ПЗУ находится в первой четверти памяти, RAM1 во второй, RAM0 в третьей (режим по умолчанию);
1 - ПЗУ находитcя в третьей четверти памяти, RAM1 во второй, RAM0 в первой (вот в этом режиме теоретически можно пускать RT-11).

P.S. бит 8 (который на вывод) можно переименовать - вместо LED назвать его скажем ERR/SND и он будет не только ошибку показывать на светодиоде (путем выдачи туда единицы), но и будет использоваться для генерации 1-битного звука :)

P.P.S. бит выбора расположения основного ПЗУ можно завести обратно наряду с расширенными битами клавиатуры (которые будут читаться вместо ЖКИ когда E=0):

bit 0 - бит клавиатуры KB5
bit 1 - бит клавиатуры KB6
bit 2 - бит клавиатуры KB7
bit 3 - бит клавиатуры KB8
bit 4 - бит клавиатуры KB9
bit 5 - бит клавиатуры KB10
bit 6 - бит клавиатуры KB11 (кнопка СБРОС)
bit 7 - бит для чтения флага расположения основного ПЗУ (0 - ПЗУ в первой четверти, 1 - первая половина памяти это ОЗУ)

_________________
:dj: https://mastodon.social/@Shaos


08 Apr 2019 21:00
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Можно ещё один бит управления завести - будет подключать кусок ОЗУ в дырку от 0xC000 до 0xDFFF (точнее отключать его, подключая "внешнее" ПЗУ банки которого переключаются первыми четырьмя битами), т.е.
Code:
bit 0 - address A12 for 27C1024 ROM (default value 0)
bit 1 - address A13 for 27C1024 ROM (default value 0)
bit 2 - address A14 for 27C1024 ROM (default value 0)
bit 3 - address A15 for 27C1024 ROM (default value 0)
bit 4 - move 16KB ROM from window 0 to window 2 (default value 0)
bit 5 - switch RAM off in 1st half of window 3 and connect 8KB page of 27C1024 ROM there (default value 0)

P.S. Либо отказаться от отдельного "основного" ПЗУ и сделать одну боротовую микросхему 27C1024 с программно переключаемыми окнами? В этом случае управление ограничивается только 4 битами - первые два окна 8кб и будут являться "основным" 16кб ПЗУ, подставляемым в первую либо третью четверть адресного пространства, поэтому первые 2 комбинации управляющих битов можно отвести под особые случаи (в том числе режим по молчанию, когда ПЗУ в начале):

0000 - режим по умолчанию, 16КБ ПЗУ в первой четверти, в 0xC000...0xDFFF просвечивает кусок RAM1 (в будущем может быть видеопамять)
0001 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF всё также просвечивает кусок RAM1 (в будущем может быть видеопамять)
0010 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №2
0011 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №3
0100 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №4
0101 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №5
0110 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №6
0111 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №7
1000 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №8
1001 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №9
1010 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №10
1011 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №11
1100 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №12
1101 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №13
1110 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №14
1111 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №15

P.P.S. Можно ещё завести логику на одной XOR-микросхеме, которая будет опционально (по стостоянию джамперов) переворачивать эти старшие 4 битика адреса, подставляя в страницы 0-1 любые другие части этого большого ПЗУ...

_________________
:dj: https://mastodon.social/@Shaos


09 Apr 2019 06:43
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Можно ещё завести логику на одной XOR-микросхеме, которая будет опционально (по стостоянию джамперов) переворачивать эти старшие 4 битика адреса, подставляя в страницы 0-1 любые другие части этого большого ПЗУ...

Вот так будет перераспределяться память если битики адреса неперевёрнуты:
Code:
--------------------------------------------
    |0000-3FFF|4000-7FFF|8000-BFFF|C000-FFFF|
----|---------|---------|---------|---------|
0000|ROM0|ROM1|  RAM-1  |  RAM-0  |VRAM|BBS7|
0001|  RAM-0  |  RAM-1  |ROM0|ROM1|VRAM|BBS7|
0010|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM2|BBS7|
0011|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM3|BBS7|
0100|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM4|BBS7|
0101|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM5|BBS7|
0110|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM6|BBS7|
0111|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM7|BBS7|
1000|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM8|BBS7|
1001|  RAM-0  |  RAM-1  |ROM0|ROM1|ROM9|BBS7|
1010|  RAM-0  |  RAM-1  |ROM0|ROM1|ROMA|BBS7|
1011|  RAM-0  |  RAM-1  |ROM0|ROM1|ROMB|BBS7|
1100|  RAM-0  |  RAM-1  |ROM0|ROM1|ROMC|BBS7|
1101|  RAM-0  |  RAM-1  |ROM0|ROM1|ROMD|BBS7|
1110|  RAM-0  |  RAM-1  |ROM0|ROM1|ROME|BBS7|
1111|  RAM-0  |  RAM-1  |ROM0|ROM1|ROMF|BBS7|
--------------------------------------------

А вот так если перевернуть бит 0:
Code:
--------------------------------------------
ooox|0000-3FFF|4000-7FFF|8000-BFFF|C000-FFFF|
----|---------|---------|---------|---------|
0000|ROM1|ROM0|  RAM-1  |  RAM-0  |VRAM|BBS7|
0001|  RAM-0  |  RAM-1  |ROM1|ROM0|VRAM|BBS7|
0010|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM3|BBS7|
0011|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM2|BBS7|
0100|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM5|BBS7|
0101|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM4|BBS7|
0110|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM7|BBS7|
0111|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM6|BBS7|
1000|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM9|BBS7|
1001|  RAM-0  |  RAM-1  |ROM1|ROM0|ROM8|BBS7|
1010|  RAM-0  |  RAM-1  |ROM1|ROM0|ROMB|BBS7|
1011|  RAM-0  |  RAM-1  |ROM1|ROM0|ROMA|BBS7|
1100|  RAM-0  |  RAM-1  |ROM1|ROM0|ROMD|BBS7|
1101|  RAM-0  |  RAM-1  |ROM1|ROM0|ROMC|BBS7|
1110|  RAM-0  |  RAM-1  |ROM1|ROM0|ROMF|BBS7|
1111|  RAM-0  |  RAM-1  |ROM1|ROM0|ROME|BBS7|
--------------------------------------------
или бит 1:
Code:
--------------------------------------------
ooxo|0000-3FFF|4000-7FFF|8000-BFFF|C000-FFFF|
----|---------|---------|---------|---------|
0000|ROM2|ROM3|  RAM-1  |  RAM-0  |VRAM|BBS7|
0001|  RAM-0  |  RAM-1  |ROM2|ROM3|VRAM|BBS7|
0010|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM0|BBS7|
0011|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM1|BBS7|
0100|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM6|BBS7|
0101|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM7|BBS7|
0110|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM4|BBS7|
0111|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM5|BBS7|
1000|  RAM-0  |  RAM-1  |ROM2|ROM3|ROMA|BBS7|
1001|  RAM-0  |  RAM-1  |ROM2|ROM3|ROMB|BBS7|
1010|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM8|BBS7|
1011|  RAM-0  |  RAM-1  |ROM2|ROM3|ROM9|BBS7|
1100|  RAM-0  |  RAM-1  |ROM2|ROM3|ROME|BBS7|
1101|  RAM-0  |  RAM-1  |ROM2|ROM3|ROMF|BBS7|
1110|  RAM-0  |  RAM-1  |ROM2|ROM3|ROMC|BBS7|
1111|  RAM-0  |  RAM-1  |ROM2|ROM3|ROMD|BBS7|
--------------------------------------------

и т.д. - т.е. таким образом можно выбирать из какой страницы ПЗУ будет стартовать компьютер при включении питания (может быть полезно при тестировании или наличии разных прошивок)

_________________
:dj: https://mastodon.social/@Shaos


10 Apr 2019 08:10
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Soviet PDPii - с текстовым выводом на ТВ и советской клавиатурой "Электроника МС 7007" (у меня их есть несколько);

Вот одна из клавочек :)

Attachment:
MS7007.jpg
MS7007.jpg [ 136.41 KiB | Viewed 10608 times ]


Может такой компик назвать не "Soviet PDPii", а "Jcuken PDPii"? ;)

_________________
:dj: https://mastodon.social/@Shaos


20 Apr 2019 00:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
Shaos wrote:
OSHPark решило выдать мне скидку в размере стоимости производства опытной партии в 3 штуки :mrgreen:

Почти через год до меня дошло, что на том купоне еще оставалось чуть больше 50 баксов :)
Приложил их к изготовлению трех плат для модулей ОЗУ ;)
Скоро будет полноценный комп! :dj:

Платки получил :idea:

Спаял одну :)


Attachments:
RAM-module-built-small.jpg
RAM-module-built-small.jpg [ 114.51 KiB | Viewed 10540 times ]

_________________
:dj: https://mastodon.social/@Shaos
22 Apr 2019 10:47
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Воткнул модуль в PDPii - "Hello, World" всё ещё работает, значит КЗ нету и конфликтов на шине тоже - можно писать тестовую программку с индкацией на дисплейчик...

_________________
:dj: https://mastodon.social/@Shaos


22 Apr 2019 20:15
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
По идее тут после каждой посылки надо флаг занятости читать, чтобы понять когда следующий символ можно сувать, но т.к. у меня просто запись, то будем просто ждать...

Извини, то ли я забыл, то ли где-то пропустил, почему "просто запись", и почему "после каждой посылки флаг занятости читать" НЕТ ВОЗМОЖНОСТИ?

_________________
iLavr


23 Apr 2019 07:45
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 312 posts ]  Go to page Previous  1 ... 15, 16, 17, 18, 19, 20, 21  Next

Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.