SoundTrack: (FROSTBITTEN) BY DX-69 020498
__________________________________________
(C) dAn!!L/PGC/BDA
__________________________________________
THEORY OF JOURNALISM
This article is intended for those who wish to try publishing their own magazine but do not know where to start...
First of all, you need to be really "fired up" because without desire, it is simply impossible to create a great magazine. Immediately, you need to put the financial side on the back burner and fanatically get to work! This task is not so much difficult as it is meticulous. And before you "inhabit" your favorite assembler, you need to sit down and think about some aspects of this work. You can even write on paper, for yourself, what "my" magazine should be like, down to the smallest details.
We will not touch on the informational side here, but will focus purely on the technical side.
For a deeper understanding of the matter, I will slightly reveal the structure of the internals of the magazine DEJA VU, and the reader will already begin to grasp the essence of the matter and "take note," and somewhere, perhaps, an idea will strike him, and then, perhaps, a project for a new publication will be born, which will undoubtedly be cool.
So, let's get started...
Interface
There is probably no point in explaining what this is. The main thing is to understand that you need to do things not as you want, but as the user wants! And even more. You need to try to surprise the user and create such a "highlight" that he will love, respect, and cannot live without it! It goes without saying that the more devices are polled, the better. Moreover, you should immediately abandon the choice of control. Everything should be polled in parallel: joysticks, keyboard, mouse, etc. Do not forget to test the "hardware" before polling the mouse for its presence.
Be sure to pay attention to the so-called "autorepeat" function when pressing and holding FIRE. I explain, before executing the function chosen by the user, check whether the user has released the FIRE key? I hope it is clear what I meant?
Memory (RAM)
Two questions arise: first, how much memory to expect for the shell; second, memory allocation.
If you support 48kb, no one will scold you, but it is simply impossible to reach any heights. 128kb is the standard configuration that can and should be supported! Moreover, this is the proprietary standard! If you feel capable of supporting memory > 128kb, then of course, that is good and you should do it, whether it be a RAM drive or just for storing vital data.
Again, relieve the user of the choice of the configuration they need. Everything is tested automatically and at a shadow level, unnoticed by the user.
Allocate memory in such a way that it is possible to store text of maximum length continuously!
Example from DEJA VU:
In the 48k from address #6000, the data and object code sit until address 38000. From 38000 to #FFFF, there is a buffer where text (without graphics) is loaded.
Music - BANK 1. Graphics - BANKs 3, 4, 6. In BANK 7 - standardly the 2nd screen, then data: intro, sprites, block graphics, etc.
Time-critical procedures should be placed from address #8000 and below. Loaders, text messages, fonts, variables, etc. should be placed before address #8000!
Don't forget about mode IM2, the vector must be in the range from #80 to #BF. Also, remember about 257 bytes for machines with an unstable data bus.
In expanded memory, various "unpacked" procedures and graphics sit (frame scroller, screen saver, arrow sprites, etc.).
Text Format
Standard GOST - alternative encoding with "embedded" control codes. Color control (code 16), then the attribute byte; sprites (code 15), then sprite parameters: coordinates, length, etc. When supporting text saving to disk, do not forget to "dry" it.
Music
As the soul desires, but if you compile all the music in PT 3.01, it is enough to use one player for any music STP, PT, ST! When loading text, "mute" the music. And in general, give the user the ability to turn the music on and off! The new trend is the ability to choose any melody and the absence of music tied to specific text. By the way, if you have little music but enough information, you can release a magazine with at least 3 melodies.
How is this done? Very simply! There is some procedure (let's call it MUZNEXT), when called, the next music is loaded according to the table (and if the music is turned off, then there is no need to load it - why waste time and wear out the drive;)). And the table is approximately like this:
SONG1 DEFB SEC1 TRK1 SIZE1
SONG2 DEFB SEC2 TRK2 SIZE2
SONG3 DEFB SEC3 TRK3 SIZE3
DEFB 255 ;end of table marker
Substitute the data according to the disk catalog: track, sector, length.
LOADER
The main thing is that it loads! But a turbo-loader is still more pleasant!
Be sure to install the loader on the drive from which the magazine was launched (A, B, C, D). And also, know that not all loaders work in turbo mode!
If error polling for TR-DOS is not performed, at least try to ensure that when BREAK is pressed or when there is no disk in the drive, the magazine does not hang!
VIEWER
80% success! The most important thing is to be as fast as possible. Reduce any flickering and jerking by any means. And a complete failure is when in 128 mode the text is fully printed before the user's eyes! Turn on the alternative screen. If the interface is based on "arrow," then take care of polling "hot" keys!
FONT
Readable! 32, or better 42 characters per line. 64 characters - in exceptional cases and only for listings. Avoid any perversions in the font (gothic, italic, cursive).
Data Packing
The more we crunch, the more we can "stuff" onto the disk - this is obvious! Find a packer that allows saving compressed files without a depacker. Storing data without a depacker makes it, firstly, harder to hack; secondly, saves about 1 sector for each file (and you have many)! Also, look at the unpacking time - the faster, the better. On Scorpions, you can enable turbo: LD A,#7F; IN A,(#FD). It is disabled like this: LD A,#1F; IN A,(#FD).
zE Optimization
What is optimal code? It is when the code takes up little space and runs fast. Use tables. For example, there is no need to write your loader for each text! Do it like this:
CALL LOADER
TAB DEFB SEC, TRK ;track and sector for text
DEFB SEC, TRK ;track and sector for music
DEFB 13 ;bank
DEFB SEC, TRK ;track and sector for graphics
DEFB 14 ;bank
DEFB SEC, TRK ;track and sector for graphics
DEFB 255 ;marker
... ;continuation of the program
I explain. We call the loader, the return address equal to the address TAB is pushed onto the stack. First, we take the address from the stack and load the files according to the table until we reach the marker. By the way, the BANK for text is always #10, for music - #11, so you do not need to specify it in the table, the loader "knows" where to load them.
We look for the address where 255 is located and transfer control to ADR+1 (JP (IX+0) or JP (HL)). Thus, for example, you can also draw windows. We call WINDOW, and from the stack, we take the address where the coordinates and text for printing are stored!
Do not spend on setting a variable:
Standard Optimal
BYTE DEFB 0 MET LD A,0
LD A,(BYTE) LD A,B
LD A,B LD (MET+1),A
LD (BYTE),A ...
...
And in general, give yourself a mandate for optimization, think about how to save even more! After all, as the folk wisdom says - any procedure can be shortened by at least 1 byte.
Catching Glitches!
Another piece of folk wisdom states that there is a glitch in any program. I would add, if there are no glitches, then the program itself is a big glitch! And another thought, every caught glitch spawns two others, but that is already debatable!
What to do with glitches? Here it is much more interesting than fishing! First, you need to search for the glitch, and then catch it. It will be "biting" well if you catch it not on the machine on which the program was written. For example, if you write on a Scorp - catch on a PROFI; if you write on a PROFI - catch on a Pentagon, etc.
If a glitch is found, but you cannot catch it, you can try to bypass it programmatically, although this may spawn new glitches!
RELEASE!
This is, of course, the most pleasant part of magazine-making! When the magazine is ready and all glitches are caught, it is time to gather everyone who participated (in any sense of the word). If it is winter, then at an apartment; in summer - in nature. Stock up on everything necessary and perform the RELEASE in the wildest way! If this is the first issue, then this is called a presentation! During this process, you need to say nice words about yourself, as this positively affects digestion. And only after the RELEASE will you feel the great benefits of journalism and feel great, at least until morning... ;)
Contents of the publication: Deja Vu #05
- Аперативчик - Max
Detailed instructions on managing the DEJA VU interface, highlighting different input methods and navigation commands. Explanation of the new and old interfaces for enhanced user experience. Discussion on additional features like frame scrolling and music management.
- Аперативчик - Max
Discussion on supporting machines with more than 128k memory, leading to separate shells for 128k and 256k systems. Testing was mainly done on Scorpion and Profi, with functionality on other models anticipated. Article includes guidance on unpacking source files and insights on using improved algorithms.
- Тема - M.M.A
This article explores the theory behind digitizing sound on ZX Spectrum, focusing on sampling and quantization processes. It provides practical insights into converting sound files using specific hardware and software. Additionally, it offers methods to enhance sound quality while working within the hardware limitations.
- Theme
The article discusses the Save Our Scene initiative aimed at uniting Spectrum users and developers to promote software distribution and enhance the scene's development.
- Charter of the Amazing Soft Making Association
Discussion of the founding charter of the Amazing Soft Making association, detailing its goals, membership criteria, and operational principles.
- Theory of Magazine Creation
The article provides a detailed guide for aspiring magazine creators, focusing on technical aspects such as interface design, memory management, text formatting, and music integration for ZX Spectrum publications.
- Solder Drop
The article provides a personal account of purchasing and using the General Sound device for ZX Spectrum, detailing installation and sound performance. It discusses the initial issues encountered and praises the enhanced audio experience in compatible games. The author encourages further software adaptation for the device and reflects on multimedia capabilities with simultaneous hardware use.
- Solder Drop
The article discusses the capabilities of Sound Forge 4.0c for professional audio processing on PCs, highlighting its extensive features such as sound editing, effects, and restoration tools.
- SOFTWARE
The article reviews the latest software developments for the ZX Spectrum from Samara, including updates to MAXSOFT SCREEN PACKER, File Commander, and new applications like S-Terminal.
- SOFTWARE - Card!nal
Review and walkthrough of the logical graphic adventure game 'Operation R.R.' with detailed level instructions. Discussion on game elements like music choice and graphic design. Mentions new coder MAX/CYBERAX/BINARY DIMENSION's involvement.
- SOFTWARE
Discussion on the current state and evolution of the demoscene, highlighting the rise of 4K intros and upcoming competitions like FUNTOP'98.
- CODING
Article discusses assembly language coding techniques for optimizing screen scrolling on ZX Spectrum, featuring example code and performance analysis.
- CODING - RLA
The article explores stack manipulation techniques during second type interrupts for graphical effects on ZX Spectrum. It discusses solutions for preserving data integrity when interrupts disrupt graphical operations. Practical examples are provided to handle stack issues efficiently.
- CODING
The article describes the MS-PACK packer and its DEPACKER, detailing usage scenarios and providing BASIC and assembly code examples for handling packed files. It emphasizes optimizing performance by allowing unpacking with interrupts enabled and separating the DEPACKER from packed files. Additionally, it includes insights on programming techniques for loading and executing BASIC files on ZX Spectrum.
- CODING
The article discusses various coding techniques for ZX Spectrum, focusing on sprite rendering, rotation algorithms, and optimization methods to enhance performance.
- ANOTHER WORLD
Discussion on the evolution of multimedia technologies and their impact on various fields, including education and entertainment. It covers advances in computer hardware and software that have facilitated the integration of audio, video, and text. The article reflects on past developments and speculates on the future of multimedia systems.
- ANOTHER WORLD
Comparison of PC and Amiga systems highlighting performance, software costs, and user experience with multimedia capabilities.
- Honor Roll
Interview with PROGRESS discusses their creative journey on ZX Spectrum and AMIGA, addressing challenges in demomaking and the current state of the scene.
- Honor Roll
The article details the activities and future projects of the Eternity Industry team, based in Kovrov, including successful releases and collaborations with other groups.
- Honor Roll
Discussion of the Artcomp'98 festival, focusing on its mail-in format and guidelines for various competitions, including demo, graphics, and music categories.
- Honor Roll
The article provides a glossary of terms used in the demo scene, explaining roles such as musician, coder, and graphician, as well as different types of demos and effects. It serves as a useful resource for understanding the terminology and dynamics of the community. This is a descriptive piece aimed at educating readers about the jargon of the demo scene.
- Honor Roll
The article discusses the issues with mouse support in various ZX Spectrum magazines and the frustrations of users when encountering compatibility problems. It critiques developers for not adhering to standards, leading to poor user experiences. The author expresses the importance of consistent improvements in software for the ZX Spectrum community.
- Honor Board
The article discusses the process of creating tricolor images for ZX Spectrum using Photoshop and a simplified approach. It outlines how to divide an image into RGB channels and convert them for use on the Spectrum. Additionally, it provides tips on how to manage the files for optimal results.
- Honor Roll
The article discusses the comparison and perspectives on various computer systems, particularly emphasizing the strengths of AMIGA over PC and advocating for appreciation of all machines.
- Seven and a Half
Article discusses the humorous absurdities and peculiarities of military training and academia, blending satire with real anecdotes and witty observations.
- Seven and a Half
The article provides a satirical manual on programming methodologies, mocking the rigidity of formal programming practices and advocating for a more creative approach to coding.
- Seven and a Half
Instructions on safe sex practices, including guidelines on eligibility, preparation, and actions during and after the sexual session, along with handling emergency situations.
- Seven and a Half
The article discusses a call for a talented artist in Krasnodar for a ZX Spectrum group, raises concerns about the unethical practices of Scorpion regarding software rights, and critiques a video review of E'97.
- Seven and a Half
The article 'Семь и 1/2' narrates a humorous picnic adventure involving the editorial team of Deja Vu, highlighting their camaraderie and mishaps while preparing a barbecue.
- Trial of the Pen
The article is a humorous take on the fictional adventures of Winnie the Pooh as he interacts with computers and friends, discussing the absurdities of technology and daily life.
- First Pen
The article discusses the new section in Deja Vu dedicated to fantasy and science fiction literature, featuring book reviews and reader participation in content creation.
- Advertisement
The article is an advertisement section from Deja Vu #05, promoting collaborations with designers and musicians for future issues, and offering various software and hardware for ZX Spectrum.
- News
The article announces the launch of a new magazine, AMIGA RULES, focused on the AMIGA computer, addressing the lack of quality Russian-language publications. It aims to provide information on programming, hardware, software, and gaming, while fostering a community among AMIGA enthusiasts. The magazine will include contributions from readers and regular updates on the AMIGA scene.