Soviet Union ZX Spectrum CommunityПонедельник, 30.12.2024, 21:33
Вы вошли как Гость | Группа "Гости" | RSS
 [ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Непонятная доработка для памяти
HazarДата: Среда, 28.12.2016, 03:54 | Сообщение # 1
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline


Hier ist die Schaltung, die ich in meinem Web-Server-Zeddy zur Ansteuerung der A15-Leitung der RAM-Chips benutze (A15* im Schaltplan):

... Wäre schön, wenn mir jemand hier im Forum auf die Sprünge helfen könnte. Genauso ist es: bei der Ansteuerung des RAMs wird bei JEDEM M1-Zyklus der A15-Eingang am Ram auf LOW gezogen (M1=LOW zieht über die Diode (1N34) A15 am Ram auf LOW). Statt bei 32768 wird also Adresse 0 im Ram adressiert und ...
Funktioniert denn Lesen/Schreiben im Bereich ab 32768 ?
Was hast Du für eine Diode bei der ULA (zwischen A15 und A14) eingesetzt ?
Das sollte eine Germanium oder Schottky Diode mit geringer Durchlasspannung sein, keine Siliziumdiode.
... können alle Datenbits durch Werte aus der ULA ersetzt werden. Relevant sind nun die beiden(!) Speicherzugriffe während des M1-Zyklus mit gesetzem A15, zuerst der Lesezyklus für den Opcode und danach der Refreshzyklus. Beim Lesezyklus speichert die ULA den Opcode und spiegelt dann der CPU ein NOP ...
. In erster Linie geht es um die Belegung der Stecker. J41: 1=KBD0 2=KBD1 3=KBD2 4=KBD3 5=KBD4 J42: 1=A11 2=A10 3=A9 4=A12 5=A13 6=A8 7=A14 8=A15 schematic05.jpg Hier das Tastenlayout. Das Kreuz mit dem Kreis ist der Mittelpunkt der Taster und soll das mittige Positionieren ggf. erleichtern. ...
Der Bestückungsaufdruck von A8 bis A15 fehlt zwar (KBD0 bis KBD4 sind ja beschriftet), das ist aber kein Beinbruch, Es sind nur KBD0 UND KBD4 beschriftet, nicht KBD0 BIS KBD4. Der Grund ist, dass die Adressleitungen völlig durcheinandergewürfelt ..
Sieht stark aus!
Schön auch, dass es Durchkontaktierungen für die Tasten-Kontakte gibt.
Der Bestückungsaufdruck von A8 bis A15 fehlt zwar (KBD0 bis KBD4 sind ja beschriftet), das ist aber kein Beinbruch, dafür gibt es ein Guru Elektronic-Logo
entscheidende Rolle. Ansonsten sind die anderen Pegel jetzt mal unverdächtig oder deuten zumindest auf nichts konkretes. Wie ist denn der Pegel an A15 (IC1, Pin5) ? Wenn das RAM nicht addressiert werden kann, kommt da natürlich auch nichts auf A15. A15 zeigt, dass die Videoausgabe seitens der CPU ...
Netzteil wunderbar. Bei den Messungen aus Anhang A4 stimmt dann schon einiges nicht mehr ganz: Wichtig erscheint mir CPU Pin 5 (Adressleitung A15) hier habe ich 0V statt 1,6 V. Des weiteren: IC19 Pin 5: 4,5 V statt 4,2V (Syncsignal) IC20 Pin 6: 4,75 V IC9 Pin 7: 4,99 V IC9 Pin 9: 0 V IC 1 ...
32768-49151) 16384-32767 => RAM (gespiegelt auf 49152-65535) Alles was über 32767 ist, kann nicht ohne Weiteres als RAM genutzt werden, weil mit A15=1 auch die Videoausgabe realisiert ist. Der ZX81 verfügt nur über ein 8k ROM (0-8191), man kann aber auch Zusatzroms oder Treiber oder auch Flash ...
. used (1) 6 Display Refresh Rate (0=60Hz, 1=50Hz) 7 Cassette input (0=Normal, 1=Pulse) When reading from the keyboard, one of the upper bits (A8-A15) of the I/O address must be "0" to select the desired keyboard row (0-7). (When using IN A,(nn), the old value of the A register is output ...
... EPROM anfangen soll. JU5 schleift A13 an IC17 durch, IC34 startet bei 0x2000. JU6 schleift A14 an IC17 durch, IC34 startet bei 0x4000. Also sollte A15 mit dem entsprechenden Pin von IC17 verbunden den Adreßbereich von IC34 bei 0x8000 beginnen lassen. Das klappt bei mir leider noch nicht (siehe .
. wurde dann wird der ZX80 regelmäßig das Videosignal erzeugen. Um das Videosignal zu erzeugen, wird der Bildschirmspeicher mit gesetztem Bit 15 (A15=1) ausgeführt. Ansonsten ist A15 immer 0. Daher läßt sich mit einem Oszilloskop sehr einfach die Adressleitung A15 an der CPU messen. Während der ...
+5V, kann man auch die Ausgänge gut messen (/M1, /MREQ, /IOREQ, /RD, /WR, /HALT /BUSAK). Der Adressbus läßt sich gut durchmessen wie ein Zählerbaustein. Von A15 bis A0 sollte sich die Frequenz jeweils verdoppeln. A15 wechselt alle 32768 Befehle von ...
von 4-Takt-Befehlen synchron zum PC Register (jedenfalls A0-A6). Bei A7 gibt es keinen Überlauf. Das I-Register wird beim Refreshzyklus auf A8-A15 ausgegeben und muss immer gleich bleiben, solange Du keinen LD I,A Befehl ausführst. Es ging mir ja um den Initialwert, den das I-Register nach
nicht stabil. Der Minimaltakt, bei dem der Betrieb stabil wird, wäre sehr interessant. Da der Z80 2 Takte für einen NOP braucht und die Leitung A15 praktisch 1/65536 davon runtergeteilt ist, sollte es bei 100kHz noch möglich sein, die höchsten Adreßleitungen "flackern" zu sehen. ~medusa.
Taste verwendet. Man kann Mehrfach-Tastendrucke auch nur mit Diodenlogik bewirken, sollte aber im Hinterkopf behalten, daß die Signale an den A8'-A15' - Leitungen, die an der Tastatur ankommen, schon über Dioden gelaufen sind, sodaß bei weiteren Dioden eventuell Pegelprobleme (Durchlaßspannung ..
Ich habe neben KBD0 - KBD4 und A8-A15 noch VCC und GND spendiert. Man weiß ja nie, vielleicht baust Du ja mal eine Tastatur mit Beleuchtung. :mrgreen: Bei meinen Web-Zeddy habe ich nicht nur VCC und GND zusätzlich am Keyboard-Ausgang dran ...
weniger ein. Nach dem Motto "to whom it may concern". Das ist ja sowas von perfekt - prima und danke! Ich habe neben KBD0 - KBD4 und A8-A15 noch VCC und GND spendiert. Man weiß ja nie, vielleicht baust Du ja mal eine Tastatur mit Beleuchtung. :mrgreen:
Hex Kodierschalter angesehen, der für die ROM Umschaltung gedacht ist. Der hat 16 Stellungen und übersteuert die 4 Adressleitungen A12,A13,A14 und A15 (entsprechend großes EPROM oder EEPROM vorausgesetzt) und blendet eine entsprechende Page im ROM als Page 0 ein. Nach nochmaligem Durchdenken macht ..
machen. Und so funktioniert das RAM (Auszug aus dem ZX Team Magazin Sonderausgabe 2013): Die Aktivierung des RAM erfolgt wenn entweder A14 oder A15 high sind, also im Grunde von $4000-$FFFF wobei der Bereich $4000-$7FFF auf $C000- $FFFF gespiegelt ist, notwendig für die Videoausgabe. Normalerweise
.. nutzen. Oder man brennt gleich zusätzliche Treiber für verschiedene Sachen mit in das EPROM. Dabei kann man dann die Adressleitungen A12,A13,A14,A15 mit dem Kodierschalter übersteuern. Zum Beispiel ist es auch möglich ein 27178 EPROM im unteren Bereich ($0000-$1FFF) mit dem 4k BASIC und Treibern
. draußen gelegt. Anbei die Verbindungen in Listenform ala 2364,27512, Kabel. Kabel sind wie folgt bezeichnet K1 (GND),K2 (VCC),K3(A13), K4(A14), K5(A15) A7,A7,- A6,A6,- A5,A5,- A4,A4,- A3,A3,- A2,A2,- A1,A1,- A0,A0,- D0,D0,- D1,D1,- D2,D2,- VSS,GND,- D3,D3,- D4,D4,- D5,D5,- D6,D6,- D7,D7,- GND,/CE,K1 ...
. eingelesen werden. Dieses Schieberegister (welches die Daten während der Refresh Phase liest) arbeitet nach meinen Informationen nur, wenn A15 auf 1 gesetzt und M1 aktiv (0) ist. Das heißt, damit die ULA die HRG Daten lesen kann, müssen diese ausgeführt werden (sonst würde M1 nicht aktiv).

***********************************************************************************************
Кто может толково объяснить для чего все это , и можно ли это использовать на отечественных клонах ?
Прикрепления: 4532923.gif (36.0 Kb)


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Среда, 28.12.2016, 23:31 | Сообщение # 2
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
ZX81 - то ещё говно, к Спектруму не имеющее абсолютно никакого отношения. Поэтому проще будет если ты огласишь что ты от него хочешь. Есть вероятность, что эта доработка тебе даром не нужна, как и ZX81.

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 30.12.2016, 08:36 | Сообщение # 3
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Цитата Hazar ()
Also sollte A15 mit dem entsprechenden Pin von IC17 verbunden den Adreßbereich von IC34 bei 0x8000 beginnen lassen. Das klappt bei mir leider noch nicht (siehe . wurde dann wird der ZX80 regelmäßig das Videosignal erzeugen


Да мне вообще без разницы названия ZX80 или ZX81

Просто если анализировать схему отвлеченно от текста, ну и дальше думать как и что можно использовать то иногда могут интересные идеи появится.

Смотрю как дешифрируется адрес A14=1 . A15=1 . + M1=0 на выходе (7420) получаем 0 , далее 0 заводят на логику AND A15 в состоянии "1"
в итоге все равно на выходе "0". Значит это не селектор страничной памяти (49152) но тогда что?

анализируем дальше предположим: A14=1 . A15=0 . M1=0 . на выходе (7420) получаем 1, "1" идет на AND но A15=0 , и снова на выходе AND "0"
значит схема работает только в диапазоне памяти 32768......65535 и только когда M1 не активен (то есть только работа с данными)

Теперь если в схему добавить мультиплексор для переключения линии A15 - A15` то можно сделать хитрое расширение памяти на 32 kB
но складывать туда можно только данные (например для стека !).

Добавлено (30.12.2016, 08:36)
---------------------------------------------
По фантазируем и подсчитаем что может дать использование стека размером в 32768 байт.
Обычно для обслуживания каждой подпрограммы уходит в среднем 14 байт
Каждая стековая команда сохраняет 2 байта в свою память:

PUSH AF
PUSH BC
PUSH DE
PUSH HL
PUSH IX
PUSH IY
CALL XXXX (h)

В таком случаи можно обслужить: 32768 / 14 = 2340 (подпрограмм)
Если взять средний размер подпрограммы 4096 байт, то общий размер программ получается 2340*4096 = 9 584 640 байт.
Короче говоря 9 mB для свободы творчества, это совсем неплохо делай хоть OS. С графическим интерфейсом


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Четверг, 29.12.2016, 22:03
 
Black_CatДата: Суббота, 31.12.2016, 16:17 | Сообщение # 4
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
:) Это сугубо для ZX81, у ZX Spectrum задействованы все 64к адресного пространства, и для него это не актуально. Но, если тебе зачем-то надо поиметь раздельно 64к памяти программ + 64к памяти данных = 128к непосредственно адресуемой памяти, то по M1/ это можно сделать. Но, ессно, софт под это придётся сочинять с нуля :) .

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Воскресенье, 01.01.2017, 00:53 | Сообщение # 5
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Цитата Black_Cat ()
Но, ессно, софт под это придётся сочинять с нуля :)


Видимо кто-то уже сделал не просто же так схему нарисовали (делали с какой-то целью) , просто не все наработки выкладывают.

Ну а в моем случаи для стека не нужно никаких специальных программ ,это чисто аппаратную доработку можно
сделать при использовании линейной адресации большого объема памяти

с нуля писать на спектруме сейчас вообще не актуально для этих целей используют сборники процедур на все случаи жизни.
При этом нужно знать при каких условиях работает процедура и уметь пользоваться отладчиком для редактирования начальных переменных.


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Вторник, 03.01.2017, 18:47 | Сообщение # 6
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
Разделение на память данных и память команд - один из признаков гарвардской архитектуры, а у Z80 фон-неймановская архитектура, поэтому надеяться что кто-то ваял софт для гарвардской архитектуры в командах Z80 имхо тщетно. Лучче уж поискать в софте для PIC, AVR, 8051, у которых гарвардская архитектура.

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Вторник, 03.01.2017, 20:16 | Сообщение # 7
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Никто не заставляет все данные хранить по Гарвардской архитектуре , идеи можно
по разному использовать . Просто я так понял ни у кого похоже опыта нет для расширения стековой памяти

А ведь для хорошего программиста эта добавка для стека довольно ценная вещь я думаю,
и старые программы не надо было переделывать, и резерв для новых прог. Ну да ладно мое дело
предложить а дальше каждый сам решает куды ему двигать.


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Среда, 04.01.2017, 12:48 | Сообщение # 8
Координатор
Группа: Координаторы
Сообщений: 731
Статус: Offline
К сожалению, без паяльника и скальпеля, это можно реализовать только на 16к ZX Spectrum, для 16к программ.

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Среда, 04.01.2017, 14:04 | Сообщение # 9
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Цитата Black_Cat ()
К сожалению, без паяльника и скальпеля, это можно реализовать только на 16к ZX Spectrum, для 16к программ.


У многих машины на CPLD или FPGA так что переделка не такая уж сложная задача, главное правильный концепт
и чтобы голова была на месте. тогда можно применить идею для ZX Spectrum 48

Ю--------------------------------------Ю
Прикрепления: 6161689.jpg (90.3 Kb)


Spectrum жив в нашей душе навсегда
 
HazarДата: Среда, 04.01.2017, 14:12 | Сообщение # 10
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Концепции и юмор



А может так

Прикрепления: 3377108.jpg (71.2 Kb) · 2156822.jpg (59.4 Kb)


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Среда, 04.01.2017, 14:17
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2006Сайт управляется системой uCoz