PDA

Просмотр полной версии : TRDOS 6.11P



alsp
09.12.2009, 11:12
Товарисчи,

Начал разработку сабжа.
Первоначальная цель разработки - хочется TRDOS для ZXM Phoenix, с RAMдиском и автозагрузкой с HDD/CD.
Вторичная цель - вспомнить все ;)

Что есть на данный момент:
10.12.2009
оптимизированы функции работы со страницами памяти (версия тут (http://zx.alsp.net/phoenix/TRDOS6_11P_091210.ROM))
заодно сделана поддержка мода Феникса с D6 - #7ffd (6.11X) (версия тут (http://zx.alsp.net/phoenix/TRDOS6_11X_091210.ROM))
добавлена поддержка мода D6 -#7ffd в эмулятор версии 0.37.0 (версия тут (http://zx.alsp.net/phoenix/UEPHOENIX091210.rar))
09.12.2009 (версия тут (http://zx.alsp.net/phoenix/TRDOS6_11P_091209.ROM))
версия 6.10e портирована под модель памяти PHOENIX
добавлен автодетект размера памяти и соответственно размера RD

при объеме памяти 2Мб - Ram disk 1Mb, расположен в верхних 64 страницах
при объеме памяти 1Мб - Ram disk 768K, расположен в верхних 48 страницах
ячейка памяти #5CB0 содержит маску возможных страниц памяти (#7f для 2мб, #3f для 1мб ит.п.)

Полученные пожелания:
работа со вторым мегабайтом через D6 #7ffd - done
версия с 768К диском под SCORPION 1024, PENTAGON 1024, ATM 1 1024, KAY 1024, PROFI 1024


Если у кого есть желание потестировать, поделиться идеями - welcome!

PS: Unreal c поддержкой PHOENIXa на базе 0.37.3 можно взять тут (http://zx.pk.ru/showpost.php?p=232517&postcount=780)
или на базе 0.37.0 с подключенным образом FAT32 винта тут (http://zx.alsp.net/phoenix/UEPHOENIX.rar)

---------- Post added at 11:12 ---------- Previous post was at 10:58 ----------

И сразу вопрос - Есть ли какой нибудь стандарт спектрумовский по автозагрузке с FAT32 винта и с CD? или за стандарт можно считать глюк?

rasmer
09.12.2009, 11:32
лучше уж наверное глюк - как правильно алко сказал - "кто первый встал - того и тапки", незачем мильён стандартов плодить...

Vadim
09.12.2009, 11:41
Каким образом будешь писать? Есть исходник TR-DOS в асме? Или методом заплаток? Можно ли спокойно двигать всё содержимое или программы активно используют процедуры TRDOS по определенным адресам?

alsp
09.12.2009, 11:49
Каким образом будешь писать? Есть исходник TR-DOS в асме? Или методом заплаток? Есть исходник trdos 6.10e (в исходниках глюка), он сделан заплатками к образу TRDOS 5.04 - над ним и работаю...

---------- Post added at 11:49 ---------- Previous post was at 11:47 ----------


Можно ли спокойно двигать всё содержимое или программы активно используют процедуры TRDOS по определенным адресам? есть конечно определенное число точек входа... а остальное можно двигать по всей видимости...

Black_Cat
09.12.2009, 11:53
ячейка памяти #5CB0 содержит маску возможных страниц памяти (#7f для 2мб, #3f для 1мб ит.п.)alsp, в перспективных компах на ПЛИС (в частности в Pentagon v2.666LE), ПЗУ размещают в виде образа в ОЗУ (обычно отводят под это 512к), поэтому чтоб не переделывать потом, желательно учесть сразу возможность того, что объём ОЗУ в компе кратен 512кб а не 1Мб. Так же хорошо бы сразу учесть что ОЗУ в перспективе может быть и 4Мб.

hood
09.12.2009, 12:07
Товарисчи,

Начал разработку сабжа.
Первоначальная цель разработки - хочется TRDOS для ZXM Phoenix, с RAMдиском и автозагрузкой с HDD/CD.
Вторичная цель - вспомнить все ;)

Что есть на данный момент:
09.12.2009 (версия тут (http://zx.alsp.net/phoenix/TRDOS6_11P_091209.ROM))
версия 6.10e портирована под модель памяти PHOENIX
добавлен автодетект размера памяти и соответственно размера RD

при объеме памяти 2Мб - Ram disk 1Mb, расположен в верхних 64 страницах
при объеме памяти 1Мб - Ram disk 768K, расположен в верхних 48 страницах
ячейка памяти #5CB0 содержит маску возможных страниц памяти (#7f для 2мб, #3f для 1мб ит.п.)

Полученные пожелания:
работа со вторым мегабайтом через D6 #7ffd
версия с 768К диском под SCORPION 1024, PENTAGON 1024, ATM 1 1024, KAY 1024, PROFI 1024


Если у кого есть желание потестировать, поделиться идеями - welcome!

PS: Unreal c поддержкой PHOENIXa на базе 0.37.3 можно взять тут (http://zx.pk.ru/showpost.php?p=232517&postcount=780)
или на базе 0.37.0 с подключенным образом FAT32 винта тут (http://zx.alsp.net/phoenix/UEPHOENIX.rar)

---------- Post added at 11:12 ---------- Previous post was at 10:58 ----------

И сразу вопрос - Есть ли какой нибудь стандарт спектрумовский по автозагрузке с FAT32 винта и с CD? или за стандарт можно считать глюк?

Здравствуйте, попитаюс по рускому.

С VELESOTом мы тепер занимаемся портировать ваше рамдисковые ТРДОСы на наше сыстемы. Мы хочем загрузить ТРД диск из нашего система. Мы запиталы сделать только ЛДИР ТРД имаге до банк памяти, но ТРДОС не хочет работать. Знеате сказать кде проблема? Можно нам нужно тоже какое то контрольные XOR счëты сделать?

Cпасибо, как можно ответить по английcкому.

HOOD

alsp
09.12.2009, 12:30
Знеате сказать кде проблема? Можно нам нужно тоже какое то контрольные XOR счëты сделать?In my opinion - best way to move TRD image to the RAM drive - make per sector copy - i.e. read each sector from TRD image and after that write it to the RAM drive using usual TRDOS function. In this case you will be abstracted from internal specific of RAM drive... and all functioanlity should work correctly. As I know WDC software use similar algoritm when make unTRD operation...

---------- Post added at 12:30 ---------- Previous post was at 12:24 ----------


alsp, в перспективных компах на ПЛИС, ПЗУ размещают в виде образа в ОЗУ (обычно отводят под это 512к), поэтому чтоб не переделывать потом, желательно учесть сразу возможность того, что объём ОЗУ в компе кратен 512кб а не 1Мб.у меня при определении потенциального объема диска процедурка считает разные страницы памяти от 0 до... потом записывает маску страниц по этому адресу... т.е. для 512K там по идее будет #1f , для 256 - #0f - поэтому по идее кратность тут не особо важна...
Другой вопрос - надо бы учесть карты памяти - т.е. ввести в алгоритмы карты распределения RD - чтобы можно было задавать зарезервированные страницы...

hood
09.12.2009, 12:32
In my opinion - best way to move TRD image to the RAM drive - make per sector copy - i.e. read each sector from TRD image and after that write it to the RAM drive using usual TRDOS function. In this case you will be abstracted from internal specific of RAM drive... and all functioanlity should work correctly. As I know WDC software use similar algoritm when make unTRD operation...

Thanks a lot for the answer. Velesoft told me, he is already in contact with you.

I just wanted to avoid completely programming in TRDOS, because this is not my native system. So, you really do not know what extra work must be done (XOR checksums, etc.) if we want to import TRD image into RAM banks and at the same time avoid TRDOS programming?

I thought just ldirs would be fine, but this is not enough, TRDOS freezes.

Thank you

Hood

Black_Cat
09.12.2009, 12:55
Другой вопрос - надо бы учесть карты памяти - т.е. ввести в алгоритмы карты распределения RD - чтобы можно было задавать зарезервированные страницы...А кстати, возможность считывать значения портов #1FFD, #7FFD, #EFF7 тебе поможет в работе?

alsp
09.12.2009, 13:04
So, you really do not know what extra work must be done (XOR checksums, etc.)
The main problem in this scope is internal structure and algorithms for RD - for example in my variant Ram disk growing up - i.e. zero track placed in the latest bank but in one bank sectors growing down. And in some other implementation of RD - it can be absolutely different. (I plan to add memory map feature that will describe witch memory banks can be used for RD). So if you want to support all RD variants you should investigate algorithm that map track and sectors numbers to the memory address for every one...

---------- Post added at 13:04 ---------- Previous post was at 12:57 ----------


А кстати, возможность считывать значения портов #1FFD, #7FFD, #EFF7 тебе поможет в работе?
это может унифицировать часть алгоритмов для разных платформ и ускорить работу алгоритмов работы с RD. Потому как на данный момент текущая страница вычисляется прогоном цикла по всем страницам от 0 до текущей... (или от последней до текущей...) и, таким образом, восстанавливаются значения портов для возврата в текущую страницу после работы с RD.

Black_Cat
09.12.2009, 13:27
Тоды наверно можно сразу ориентироваться на то, что Caro готовит версию прошивки МЕГИ с возможностью чтения состояния портов #FE, #1FFD, #7FFD, #EFF7:
#BAFD/47869 1011101011111101 rd#1FFD
#BBFD/48125 1011101111111101 rd#FE
#BEFD/48893 1011111011111101 rd#7FFD
Ну а #EFF7 читается по своему адресу. Порты эти от системного сброса не зависят, т.е. на сброс компа не реагируют (на сброс МЕГИ конечно реагировать будут, но она от системного сброса не ресетится), и ессно при первом включении в этих портах значение будет не валидное до тех пор пока туда чёт не пропишут. Поэтому при инициализации всё равно надо определять доступный объём ОЗУ, т.к. записать-то в порты #1FFD, #7FFD, #EFF7 можно что угодно.
Кстати, напоминаю, в Фениксе порты TR-DOS'а можно открыть и без его инициализации, установкой D7=1 #EFF7, заодно и доступ к RTC открывается.

Mick
09.12.2009, 19:49
Полученные пожелания:[LIST]
работа со вторым мегабайтом через D6 #7ffd


А вот кстати, ты схему смотрел. Понятно БК хочет так. На схеме Феникса второй банк переключает не этот бит, а D6 #1FFD. БК наверное промолчал, что всем 65 человекам надо резать дорожку и припаиваться проводком. Это нам надо?!

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

P.S. Феникс согласно инструкции поддерживает модели памяти KAY 1024(с одним мегабайтом) и плюс Scorpion 1024 c вторым мегобайтом. И ни каких пятногонов нет!!!!

alsp
09.12.2009, 21:24
Но все таки иногда проверять надо. Не ты не совсем правильно меня понял - по умолчанию я делаю конечно же стандартную разбитовку - просто я еще собираю пожелания - что нужно добавить в будущем и одно из пожеланий - версия с d6 порта #7ffd...

Black_Cat
09.12.2009, 23:23
Понятно БК хочет так.
..И будь добр, сваяй версию trdos рамдиска, где 2й Мб адресуется D6 #7FFD.:) Не стоит беспокоиться :) , резать ничего не надо! БК всего-лишь просил сделать отдельную, дополнительную версию с такой раскладкой. Эта версия нужна на будущее, когда надеюсь будет добавлен недостающий порт #EFF7 и управление памятью станет полноценным. Сейчас управление памятью не позволяет реализовать все необходимые для работы компьютера функции, в т.ч. из-за отсутствия #EFF7 могут быть проблемы с некоторым некорректно работающим софтом при использовании D6 #7FFD в качестве старшего разряда ОЗУ (всё это описано в доработке необходимой для использования Gluk Reset Service на Фениксе (http://zx.clan.su/forum/11-66-453-16-1255100006)). Использование D6 #7FFD в качестве старшего разряда ОЗУ обусловлено необходимостью минимизации существующих конфигураций управления памятью. При такой концепции развития управления, три платформы: KAY, Scorpion, Pentagon, при увеличении ОЗУ выше 2Мб получат идентичное управление памятью, что значительно облегчит жизнь разработчикам софта и сведёт эти три разные по управлению платформы в одну единую.

---------- Post added at 21:43 ---------- Previous post was at 21:35 ----------

alsp, что бы не возникадо путаницы обзови пожалуйста версию со старшим разрядом памяти D6 #7FFD как TRDOS 6.11X да и дело с концом :)

---------- Post added at 23:23 ---------- Previous post was at 21:43 ----------

alsp, а вот кстати вопрос - а как собсно предполагается попадать в Глюк? Феникс же не Пентагон, и по ресету в Глюк не выходит.. или Глюка вообще не будет?

alsp
10.12.2009, 09:12
обзови пожалуйста версию со старшим разрядом памяти D6 #7FFD как TRDOS 6.11XТут надо вообще подумать с именованием версий, чтобы под разные клоны в будущем можно было затачиваться - но в качестве рабочей версии - пусть будет 6.11X

[/COLOR]alsp, а вот кстати вопрос - а как собсно предполагается попадать в Глюк? Феникс же не Пентагон, и по ресету в Глюк не выходит.. или Глюка вообще не будет?
Пока я не планировал использовать Глюк - возможно в будущем... а пока хочется, чтобы при входе в TRDOS с зажатым SS, например, осуществлялся поиск бута на HDD/CD и при нахождении такового - загружался с него - а в этом буте уже можно навернуть что угодно...

hood
10.12.2009, 18:26
Тут надо вообще подумать с именованием версий, чтобы под разные клоны в будущем можно было затачиваться - но в качестве рабочей версии - пусть будет 6.11X

Пока я не планировал использовать Глюк - возможно в будущем... а пока хочется, чтобы при входе в TRDOS с зажатым SS, например, осуществлялся поиск бута на HDD/CD и при нахождении такового - загружался с него - а в этом буте уже можно навернуть что угодно...

скажите пожалуйста, ествует ТРДОС версия для РАМДИСКа с полной подержкой портов? Не толъко стандартые службы но тоже самые порты?

спасибо



Would someone know, if there is a TRDOS version for RAMDISK with the full support of ports? Not only standart TRDOS services, but also ports?


Thanks


Hood

VELESOFT
10.12.2009, 19:22
Would someone know, if there is a TRDOS version for RAMDISK with the full support of ports? Not only standart TRDOS services, but also ports?


Thanks


Hood

Exist special TRDOS version with full software emulation of KR1818VG93(FDC) working with ramdisc. This TRDOS is writed for russian "ZX clone" ATM TURBO 2+.
http://atmturbo.nedopc.com/projects/hdd_prj.htm :v2_yahoo:

If this TRDOS will ported to other ZX clones, then will very usable and compatible with existing trdos software using also jumps to #3D2F !!! :v2_thumb:
All other TRDOS versions (also 6.11X) work with ramdisc only via #3D13 :v2_conf2:

sv
10.12.2009, 21:15
All other TRDOS versions (also 6.11X) work with ramdisc only via #3D13 :v2_conf2:в этом то и проблема...нету замены полноценной...эх,ктоб портировал уже vTRDOS ну хоть куданить кроме атм :v2_conf2:...мечты мечты...

alsp
10.12.2009, 21:26
в этом то и проблема...нету замены полноценной...эх,ктоб портировал уже vTRDOS ну хоть куданить кроме атм :v2_conf2:...мечты мечты...А сорцов конечно же нету ? =)

VELESOFT
10.12.2009, 23:54
Actually is faster and easier write TRDOS 6.11X. After finish is possible add later full ports emulation.

It's similar as in my old unfinished TRDOS.....
http://www.worldofspectrum.org/forums/showthread.php?p=310946#post310946

http://velesoft.speccy.cz/zx/divide/trd-os.htm
http://velesoft.speccy.cz/zx/divide/systems/trd-os/trdos-video.gif

http://zx.pk.ru/showthread.php?p=160917#post160917


But this software emulator of KR1818VG93 need extra ram memory (out of first 128kB ZX ram). My idea:
trdos is in rom area in low 16kB. Data for emulation must write to extra memory = memory page 8 and higher. But after set any paging port will rewrited previous value :v2_mad: You must:
1) read true value of paging port and backup it
2) set high ram page (8-xx)
3) run emulation
4) set original value of paging port (also videoram)

Is possible use CACHE 16 or 32kB if trdos rom is active ?
If yes, then you can write complette emulation and trdos extensions to CACHE memory and use easy switching. :v2_conf3:

TRDOS rom with full ports emulation can contain more than 16kB... Extensions must be loaded/install in extra ram memory or in next rom page ( rom 0 - 128 editor will removed )

On european ZX interfaces is often used external big memory with paging support in low 16kB (DIVIDE, DIVIDE+, MB02+,....) - it's very good for any rom extensions.

Black_Cat
11.12.2009, 09:10
Is possible use CACHE 16 or 32kB if trdos rom is active ?
If yes, then you can write complette emulation and trdos extensions to CACHE memory and use easy switching.RAM cache in the exUSSR was not popular, and currently not used at all.

spensor
11.12.2009, 11:08
БК-0010 я бы не говорил так однозначно, на Pentagon128 весьма популярная вещица была. Насчет того что сейчас не юзается, ну не юзается в меру неюзания ZX вообще.

CHRV
11.12.2009, 11:35
А сорцов конечно же нету ? =)

Сорцы есть, токо никто не спрашивает... :v2_conf2:

Black_Cat
11.12.2009, 11:48
БК-0010 я бы не говорил так однозначно, на Pentagon128 весьма популярная вещица была. Насчет того что сейчас не юзается, ну не юзается в меру неюзания ZX вообще.Это уже абсолютно однозначно. AlCo даже управление кэшом из #EFF7 выбросил. Нет его больше, и на новых клонах не предвидится ввиду бессмысленности. Так что забудь.. используй RAM диск.

alsp
11.12.2009, 16:27
Сорцы есть, токо никто не спрашивает... :v2_conf2:Если есть - я бы с удовольствием использовал более продвинутую версию для портирования на Феникс =) Так что если есть возможность - то очень хотелось бы получить (me(at)alsp.net) ;)

balu_dark
11.12.2009, 20:55
есть еще порты Новосибирска( или Красногорска точно не помню) которые как раз юзались для отключения РОМ и использования вместо него ОЗУ. ну и на Робике такое было. а какие собственно проблемы с подключением кэша? переделки компа это не требует кроме врезки в сигнал выбора пзу. остальное вешается на шину.

alone
11.12.2009, 22:04
Кэш поддержан в MOD'S, Глюке, Wolf2004, CACHEVOX. В последнем - как раз с открытыми портами бета-диска, чтобы работала своя читалка. На P1024SL кэша нет из-за экономии, но TDD делал внешнюю плату (не доделал). А вот защита записи в кэш нигде не используется.

VELESOFT
12.12.2009, 00:24
As CACHE replacement can be connect to ZX-BUS external interface with memory. But what is ROM type priority in russian clones ? IF trdos rom is connect, can external device disable this rom and connect in low 16kB extra ram pages ?

On all ZX Spectrum machines is it possible (any rom page can be disabled and replaced from external device in any time)

Using ram with selectable write protect in low 16kB is very very cool.
It can copy rom pages to sram with possibility rewriting.
This interface (external CACHE) can be connect to any other ZX clone with compatible ZX-BUS and don't need any hardware modification.
I can design this interface for russian ZX clones (based on one CPLD + SRAM + battery)

this is my old external memory 1MB sram with battery backup and selectable writeprotect:
http://velesoft.speccy.cz/prodej/prodej4/mb02-mem.htm

Black_Cat
12.12.2009, 00:46
IF trdos rom is connect, can external device disable this rom and connect in low 16kB extra ram pages ?Yes


I can design this interface for russian ZX clones (based on one CPLD + SRAM + battery)At the present stage of development of the exUSSR computers, cache memory is no longer needed. Nothing new build is not necessary, sufficient and western designs. Who has the need, he repeats them.

VELESOFT
21.12.2009, 01:32
Please fix bug in LIST command in this TR-DOS version.

See this:
http://zx.pk.ru/showthread.php?p=242283#post242283

Old Czech trdos 5.05 is very bug fixed and usable. Enable work with any sector size (up to 1kB), LIST command not fill memory, better commands, included monitor/debugger DEVASTACE...
(TRDOS 5.05 is based on old 5.03)

IanPo
09.02.2010, 14:23
alsp, как оно продвигается? ;)

alsp
11.02.2010, 09:24
alsp, как оно продвигается? ;)
Сейчас пока приостановил работы над 6.11 - переключился на vtrdos. Там конечно все грустно с точки зрения не АТМ - но я надеюсь все-таки получится... и если так, то конечно 6.11 не буду мучить дальше, а все сделаю в рамках vtrdos.

TmK
12.02.2010, 16:07
почему грустно?
я как то начал разбираться в vtrdos но так и не дошел до чего либо юзабельного.

Ты будешь делать чтоб скорость работы соответствовала реальному диску?
было бы здорово сделать сетап vtrdos speed: real/fast

VELESOFT
13.02.2010, 02:18
----- Original Message -----
From: ukms[z]
To: VELESOFT
Sent: Tuesday, October 28, 2008 1:46 PM
Subject: Re: ATM TURBO - FDC controller emulation (by Z80 cpu)


hi.
i wrote emulator for turbo2+ machine and it can work because of original architecture t2+
there is a lot of problems in emulation:
im2 music support by disk loaders
loader decrypting module uses tr-dos rom data (as a key)
low stack space in some important software
im2 realtime "is_disk_present?" control by some nice disk commanders


i don't solve only decrypting support, anyway, i finished to develope my emulator some years ago, and not sure to remember all problems...


it works by following algoritm:


* all in/out is replaced by RST, DB command
* rst handler check's int status and mode, remember it and block int's
* by the special T2+ memory port, rst handler toggle's ram page at #4000 place and check's A,B,C,D disk drive to RAM image mapping status. in this page stored many system settings for emulator.
* if current drive is emulated by ram, the rst handler read the command follow's rst and determines wich emulated (or no emulated) routine to call
* all in/out tr-dos routine are cached and have 2 copyes: one for real floppy disk, and second for precise byte-by-byte RAM disk read/write (for compatibility and it's work a little slower when real disk). original tr-dos routines used only like a trap.


rst handler not change #7ffd port and any another spectrum ports. it uses special T2+ ports for RAM disk access.


also rst handler supports basic control services for T2+ hardware, software hooking for NMI, reset, hi-memory access, and hooking for WD1793. it means that somebody can write another driver to emulate WD, not RAM disk only, but CF, IDE, LAN maybe ect.


therefore, the source of emulator is very complex software and contains additional block for cold/hot start, menu like BIOS at PC to manage emulator and hardware resourses T2+. it uses 32k from 128k rom T2+.


if you want this source, i can send it, but it requires ALASM 4 for compile and deep knowlege of T2+ architecture for understanding.


28.10.2008, в 0:15, VELESOFT(seznam) написал(а):


Hallo. Can you send me source code or documentation for software emulation of
FDC controller KR1818VG93 ( WD1793 ) ? ( MAXIM TIMONIN send me your mail )

I write software TRDOS emulator for ZX models without betadisk (for allram mode)
http://zx.pk.ru/showthread.php?p=161106#post161106

Video:
http://velesoft.speccy.cz/zx/divide/systems/trd-os/trdos-video.gif


VELESOFT
http://velesoft.speccy.cz/

alsp
16.02.2010, 09:52
почему грустно?
Вобщем то ее архитектура понятна, но проблема вот в чем:
В ATM есть механизм переключения любой страницы адресного пространства на любое окно - чем и пользуется VTRDOS переключая окно с 0x4000 для доступа к своим буферам и переменным (что происходит на каждый in/out). В случае же с фениксом и другими придется при каждом доступе искать текущую станицу, запоминать, переключаться на страницу с переменными, а потом обратно. А поиск дело долгое - (особенно на компах с большим количеством памяти...). Видимо можно оптимизировать, поставив поиск только на основные входы TRDOS, но нужна статистика - кто что юзает - для большей совместимости... + при таком подходе надо вызывать функцию поиска и тут же возникает проблема со стеком...
Это так - мысли вслух...


Ты будешь делать чтоб скорость работы соответствовала реальному диску?
было бы здорово сделать сетап vtrdos speed: real/fast
У... до этого еще дожить надо - но думаю это меньшая из проблем.

TmK
16.02.2010, 14:47
Ну если прикинуть - при входе по адресам #3D00, #3D03, #3D13 и #3D2F(30) проделываем следующие действия:
0. Проверяем сопоставлен ли текущий диск с виртуальным (думаю надо проверять по значению порта TRDOS, т.к. область системных переменных может быть убита)
1. проверяем где стек, если больше чем #C000, то выставляем свой (задается в настройках vTRDOS опытным путем под каждую прогу)
2. сохраняем первые 4 байта страницы, выставляем туда сигнатуру (например "vTRD"), ищем сигнатуру, запоминаем номер текущей страницы
3. далее по плану

---------- Post added at 14:47 ---------- Previous post was at 14:46 ----------

тратим лишних 1к тактов при операция с виртуальным диском дос - думаю неактуально учитывая сколько длится операция чтения сектора...

VELESOFT
14.03.2010, 13:15
Each trdos rom must be compatible also with original 128kB machines (with ZX128 or Pentagon 128 and other clones using only paging port #7FFD).

TR-DOS 6.11p set as first port 7FFD and as second write value to port 1FFD. This is incorrect way !!! As first must be always set port #1FFD and as second set port #7FFD.

This trdos version can't be used on real betadisc interface connected to ZX Spectrum 128 / +2 or Pentagon 128 / 256 / 512. All this machines use ports adressation identical with original ZX128:
Adressation of port #7FFD: A15=0 + A1=0 (0xxxxxxx xxxxxx0x). Example - OUT #1FFD,0 write on this machines value 0 to paging port #7FFD = connect page 0 + vram 0 + 128 rom (set 128rom = disconnect trdos rom). Each value writed to port #1FFD in trdos rom must contain D4=1 (set 48rom) if trdos is used on 128kB computers and OUT #7FFD must be used after OUT #1FFD !!!. This code will full compatible with all ZX models and can work on PHOENIX computer. :v2_wink2:

UNREAL SPECCY emulator use unreal ports adressation for all ZX clones/models :v2_mad: Unreal speccy port adressation of port #7FFD: A15=0, A2=1 ( :v2_scare: ), A1=0.

Real computer Pentagon 128/256/512kB use adressation: A15=0 + A1=0.
Real Pentagon 1024SL 2.2 and 2.666LE use adress. : A15=0 + A14=1 + A1=0
UNREAL SPECCY use abnormal ports adressation and software work incorrect.

alsp
14.03.2010, 13:43
TR-DOS 6.11p set as first port 7FFD and as second write value to port 1FFD. This is incorrect way !!! As first must be always set port #1FFD and as second set port #7FFD.

Thanks for information!

VELESOFT
14.03.2010, 14:46
Thanks for information!

And this bug can be also fixed:

http://zx.pk.ru/showthread.php?t=12301

All this TRDOS ROMS contain patch for refresh value of register HL' after use trdos command RETURN. This patched roms return correct to basic after "break LIST command + use RETURN" ). Also will work return from machine code with modified HL' register.

PATCH IN TR-DOS ROMS:

ORG #1D13
JP PATCH

ORG #332C ;(adress can be different in other trdos versions)
PATCH EXX
LD HL,#2758
EXX
JR NZ,END
DEC HL
LD (#5C3D),HL
END RET

SoftFelix
11.04.2010, 16:29
And this bug can be also fixed:

http://zx.pk.ru/showthread.php?t=12301

All this TRDOS ROMS contain patch for refresh value of register HL' after use trdos command RETURN. This patched roms return correct to basic after "break LIST command + use RETURN" ). Also will work return from machine code with modified HL' register.

PATCH IN TR-DOS ROMS:

ORG #1D13
JP PATCH

ORG #332C ;(adress can be different in other trdos versions)
PATCH EXX
LD HL,#2758
EXX
JR NZ,END
DEC HL
LD (#5C3D),HL
END RET

Спасибо! Именно этот код для патча и искал. А то ужЕ в подсознании сидит: уж если LIST запустил - то никаких BREAK'ов, только чтоб до конца отработал!

p.s. Willem Prog + W27C512 - черезвычайно удобная штука для Спекка!