Работа с памятью в Pentevo

ZX evolution software and hardware

Postby SfS » 11 Apr 2013, 22:44

Где можно посмотреть связную документацию по работе с памятью в Пентеве?
А именно:

1. Какие страницы как используются - где лежит виртуальный диск, системные переменные биоса, какая страница ROM что хранит? Я имею ввиду, разумеется, официальный стандарт NedoPC от разработчиков.

2. Как корректно листать страницы ? Лучше всего пример кода, который показывает как впечатать нужную страничку ОЗУ или ПЗУ в нужное окно.

Доку я почитал, разумеется. И исходники глядел - но что-то связной картины нет. Слишком много дёргалок-битов для меня:) Старею:)
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby DimkaM » 11 Apr 2013, 23:43

2.
Если нужна совместимость с АТМ, то тут: viewtopic.php?p=29083#p29083

Для Евы:
Если страница ОЗУ в пределах первого мегабайта,окно 0-3ффф,и если теневые порты по умолчанию должны быть отключены :
Code: Select all
   ld a,1
   out (#BF),a
   ld a,#7f^paga
   LD BC,#3FF7
   out (c),a
   xor a
   out (#BF),a
тоже для страниц пзу:
Code: Select all
   ld a,1
   out (#BF),a
   ld a,#3f^paga
   LD BC,#3FF7
   out (c),a
   xor a
   out (#BF),a
Если теневые порты постоянно включены(как у меня обычно), то записи в порт BF пропускаем

П.с.
7: бит «dos7ffd»: если 1, то:
для ОЗУ — в данном окне происходит подмена младших 3 или 6 бит (в
зависимости от режима ZX Spectrum 128k или pentagon 1024k) номера страницы
неинверсными битами из порта #7FFD.
Для ПЗУ — происходит подмена младшего бита номера страницы сигналом
включения TR-DOS (1 если TR-DOS включен). Кроме того, происходит
включение теневых портов и TR-DOS («вход в TR-DOS»), если в данном окне
произойдёт выполнение кода со смещения #3Dxx.
Last edited by DimkaM on 05 May 2018, 21:49, edited 2 times in total.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby SfS » 11 Apr 2013, 23:46

А если в пределах 1..3 мегабайтов? окно скажем С000 - FFFF ? или 8000-BFFF ?

И где что лежит? Я не хочу, чтобы моя прога рушила виртуальный диск или системные переменные БИОСа?
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby SfS » 11 Apr 2013, 23:50

В общем - составьте, пожалуйста, кто-нибудть пару страниц и примерами - как впечатать произвольную страницу в произвольное окно. Я думаю, что не один я спасибо скажу за это.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby lvd » 11 Apr 2013, 23:52

SfS wrote:И где что лежит? Я не хочу, чтобы моя прога рушила виртуальный диск или системные переменные БИОСа

Only Savelij knows that...
SfS wrote:как впечатать произвольную страницу в произвольное окно.


Code: Select all
WIN0 equ #37f7 ;очко 0000..3ффф
WIN1 equ #77f7 ;очко 4000..7ффф
WIN2 equ #b7f7 ;очко 8000..бффф
WIN3 equ #f7f7 ;очко ц000..фффф

  ld a,#ff-номер страницы
  ld bc,WINx
  out [c],a

На пару страниц не тянет, но зато работает :)
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby DimkaM » 11 Apr 2013, 23:54

для страниц ОЗУ до 4мб,окно 0-3ффф.
нужно значала включить шадовмод(если не включен)
ld a,1
out (#BF),a
далее сконфигурить озу\пзу и вкл\выкл подмену битов(если уже не сконфигурено это окно)
в нашем случае выбираем озу и отключаем подмену
ld a,#7f
LD BC,#3FF7
out (c),a
теперь втыкаем страницу(0-255)
ld a,#ff^paga
LD BC,#37F7
out (c),a
далее если надо то отключаем шадовмод
xor a
out (#BF),a
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 11 Apr 2013, 23:57

SfS wrote:окно скажем С000 - FFFF ? или 8000-BFFF ?

меняй соответственно порт 3ff7 на:
#3FF7 – для окна #0000..#3FFF,
#7FF7 – для окна #4000..#7FFF,
#BFF7 – для окна #8000..#BFFF,
#FFF7 – для окна #C000..#FFFF.

и порт 37f7 на:
#37F7 – для окна #0000..#3FFF,
#77F7 – для окна #4000..#7FFF,
#B7F7 – для окна #8000..#BFFF,
#F7F7 – для окна #C000..#FFFF
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby SfS » 11 Apr 2013, 23:58

Спасибо большое. Поэкспериментируем.
Ждём теперь Савелия, может откроет тайну - какие страницы не трогать лучше?:)
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby DimkaM » 12 Apr 2013, 00:06

третий мегабайт полностью свободен помоему

----пост адд----
хотя там вроде .tap лежит
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby SfS » 12 Apr 2013, 00:14

После этих примеров документация стала гораздо понятнее.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Next

Return to Пентева - софт и железо

Who is online

Users browsing this forum: No registered users and 1 guest

cron