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




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

Похожие статьи:
Люди - GREY BEETLE о себе в двух словах.
Игры - описание игры FIGHTER PILOT (Пилот истребителя).
Real fun - анекдоты.
Разберемся - Описание игры KLIATBA NOCI (Клятва Ночи).
Письма - Отзывы читателей о журнале.

В этот день...   8 мая