кто не с нами - тот против нас ?
Вид для печати
кто не с нами - тот против нас ?
Ну вот видишь - всё таки не дурак.. понимаешь...
По моему у него кросс-пост просто...
Лично я думаю, что если кто-то будет делать для кого-то, кроме русских, он предусмотрит эти вещи. Иначе в общем-то действительно нам пофиг.
А по-моему он говорит очень правильные вещи. Если есть возможность обеспечить работу софта просто используя другие номера банков, ПОЧЕМУ этого не сделать? "Воистуину суверенным" спектрумистам это будет не в напряг, а людям приятно =)
я так понял что то что идет на оригинальном ZX 128/+2 нормально работает на российских машинах?
ну, первый пост понятно -- любопытная реализация SW TURBO. Но то что полностью правильных выборов банок нет и у них? То нечетные, то четные - по две версии всего делать?
rasmer, пожалуйста, не надо экстремизма хоть в этом вопросе :) . Конечно лучше делать правильно сразу, и спасибо VELESOFT'у за то что он находит способы устранения проблем совместимости софта террСССР, а так же систематизирует информацию как это сделать - это полезная работа. Полагаю тему с этими рекомендациями следует перенести в рубрику "Программирование" и прибить гвоздями как справочное руководство.
Добавлено через 3 минуты
ну делают же разные варианты для террСССР клонов, так почему не добавить ещё особенности 128/+2 и +2A/+3?
Yes, software for original ZX models work on russian clones (Pentagon 128, Scorpion, Sprinter, ZX Profi, etc...)
But some russian ZX clones has problem with compatibility. For example PENTAGON 256kB / 512kB use bits D6 and D7 on paging port #7FFD for extended memory :v2_frown:. But software for original ZX128/+2/+2A/+3 can use two different paging methods:
LD BC,#7FFD
LD A,page
OUT (C),A ;this work on all ZX models/clones
LD A,page
OR 64 ;set A14=1 for compatibility with +2A/+3 models
OUT (#FD),A ;this is short version of paging routine (without using BC register) that use uncomplette port adressation on ZX models.
Adressation of paging port on ZX128/+2/Pentagon 128-512:
(A15-A0): 0xxxxxxx xxxxxx0x = paging port is any adress with A15=0 and A1=0. For example: OUT 0,page is on real ZX128/+2 same as OUT 32765,page.
Adressation of paging port on ZX128+2A/+3:
(A15-A0): 01xxxxxx xxxxxx0x = paging port is any adress with A15=0,A14-1 and A1=0. For example: OUT 16384,page is on real ZX128+2A/+3 same as OUT 32765,page.
About incompatibility with russian Pentagon 256/512kB:
This models use same paging port adressation as orig.ZX128/+2, but different function of BITs:
D0-D2 = memory page 0-7
D3 = videoram 0/1
D4 = zx rom 0/1
D5 = disable memory paging (switch to ZX48 mode)
D6 = unused on real ZX / extended memory 256kB on Pentagon :v2_wacko:
D7 = unused on real ZX / extended memory 512kB on Pentagon
But software on real ZX can use paging methods without using BC register:
LD A,page
OR 64 ; !!!!!! THIS SET DIFFERENT MEMORY PAGES ON PENTAGONS WITH EXTRA MEMORY !!!!! = software can crash. :mad:
OUT (#FD),A
Software from original ZX 128 can be easy modified to paging with use BC register and will work correct on all ZX128 models and russian clones/Pentagons. For example my fixed version of R-TYPE 128 REMIX for all ZX models/clones: :v2_cheer:
http://velesoft.speccy.cz/kmouse/kmv...rtype-game.gif
http://velesoft.speccy.cz/kmouse/kmv...128-km.tap.zip