ZXNet эхоконференция «code.zx»


тема: Покупайте компьютер Байт :)



от: Arseniy Astapenko
кому: All
дата: 06 Mar 1999
Hello All!

Вот привожу текстик, взятый с сайта DcPak'а - тут есть
моменты насчет фирменности компьютеров. Сабж

=== Cut ===
Euro - demo is demo that will work on all european clones
of ZX Spectrum (and classic ZX Spectrum of course). It's not
easy to make, but possible, and work worth, because there are
many users of different Spectrums all over the world. So if your
demo is euro - demo, you can be nearly sure that all people will
see and admire it!
Here I gathered some info about coding techniques, that
allow you to come close to euro - demo standard.

1.Memory
2.Interrupts
3.Extra memory pages switching
4.Ay (stereo mode)
5.Loader (file length)

I realize that this info is incomplete as I have got no
access to all ZX clones and also because I could miss something.
So if you have any info about standardization, that should
appear here, please mail me.

1.Memory
You see, classic Spectrum has slow memory. It's at #4000 to
#7FFF. And for Spectrum 128k some extra memory pages are slow
memory. Those are: #04, #05, #06 and #07 for ZX Spectrum +3 and
+2a, and #01, #03, #05 and #07 for ZX Spectrum 128+ and +2. When
accessing slow memory Z80 need extra tact always when accessing
while raster is at paper field. So effects that are using slow
memory (it's video ram, visual effects must use it) are slower a
bit.
It's impossible to time multicolor if you don't have
hardware, just theoretically, but you can at last protect your
demo of crashing by checking if slow memory exist, and if so cut
some lines from your visualization effect. That would be 8
horizontal lines and you can be 99% sure it won't crash on other
spectrum. I'm talking not only about multicolor here, but all 50
Hz effects that uses nearly full frame time. And try to avoid
placing often accessed data for your effects in slow memory, as
it also slow them down. It's better to reload data to fast
memory and then use it that accessing it on slow extra memory
page. But remember, that this slowing down is only when raster
is at paper filed, so if you place for example a song in slow
memory and you call it always at the start of interrupts, it
won't slow down, because this is when raster is at upper border
field.
2.Interrupts
Fill full table of interrupt vector (all #100 bytes with
the same value). It's possible that some interface changes
registers and if there is no full table, program will crash.
Place interrupt table in fast memory. If you won't, your
program will look badly on most classic Spectrums (slowed down
and rainy screen) and on some it will even crash.
By the way, I've noticed that many people add DI at the
start of interrupts routine. It's not necessary as Z80 does it
by default.
3.Extra memory pages switching
If you change pages using full addressing (#7FFD) you
should add #10 to number of memory page (4th bit set) and if you
use partial addressing (#FD) you should add #50 to number of
memory page (6th and 4th bits set). Then it should work
everywhere.
4.Ay (stereo mode)
When you use partial addressing for operating AY value
register (#FD instead of #FFFD) add #A0 to the value that you
send to this register (7th and 5th bit set). Then it won't
change memory page and will sound. Maybe you don't know, but
there are two standards of AY stereo mode. ABC and ACB. I'm not
to judge which is better or more popular, I just point that it's
reasonable to make software switcher of stereo mode in your demo
if the song is designed to sound stereophonic. It shouldn't be
very hard to change a player. You can mail me if you need player
with stereo switcher for Sound Tracker or SQ-Tracker (I've
enclosed this feature in Morpheus compiler). Changing stereo
mode is just a matter of modifying data before it is sent to AY
registers. Switch 2 with 4, 3 with 5, 9 with 10, and modify 7
(switch bits 1 with 2 and 4 with 5). I hope I have written true,
as it was by heart ;-). Anyway, just switch all data that if for
channel B with all data that is for channel C and that will make
it.
5.Loader (file length)
Make file no longer than #C000 to make it possible to be
loaded with simple basic loader. It's even better to make files
no longer than #A000 as it's easier to handle with them. There
are many different disc operating systems, but if anything can
be loaded from tape with simple basic loader it is also possible
to load it with any disc system. If you are making some effects
that requirer realtime loading from disk, make it possible to
skip.
=== Cut ===

C вами был
Ars^FTL




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Письмо №296
speccy gfx scene today - обзор спектрумовской графики нарисованной за 2008 год.
Выставка - 15 по 22.02.2004 г. проходила выставка современных технологий заводов Удмуртии.
Презентация - история создания газеты от Z-Zero SYSTEMS inc.
Music - Об ударных сэмплах.

В этот день...   25 апреля