Topic - Theory of magazine production - part No. 2. How to make your own magazine.

Deja Vu #0A
__________________________________________

(C) Cardinal/PGC/BDA
__________________________________________

 THEORY OF JOURNAL PRODUCTION

 part 2

 - Maybe at least these rocks
 will they stop him?
 - Hardly...

 (C) SPRITE

   Well, first of all, hello, dear readers,
teli! I was prompted to scribble this stan-
                  there are some serious ones
                  circumstances. Firstly,
                  I would like to express my thoughts
                  Daniel's in its inter-
                  pretations, because his hundred
                  tya placed in the 5th
                  number, already outdated, yes
                  and information that would-
                  la at point "ze optimized
 ization" is, as it were,
                  not quite "ZE" and is not
rulez.What immediately sarcastically took advantage of the
pressed ERASER/Delirium Tremens,pressed in Fu-
neral 1.5 your approach to this issue.
   Secondly, so as not to fall face down in the dirt,
I want to completely refute those
information, because they are also not Russian
climbed
   Thirdly, by me, with some help MAX/CBX/
BDA,the entire code of the magazine Deja Vu was completely
rewritten from scratch from the 9th issue, and
in this issue I managed to support the ani-
mation, and how things began to look, you
see for yourself. In this regard, read on
my version "THEORIES OF JOURNAL PRODUCTION".
where I will open my story, I will open the inner
the latest content of our magazine so that you
it was clearer. So, let's go...

         Crazy idea.

   Let's say you wanted to release your
magazine. What is needed for this? Forstarted
want very much, because without
desire and with a strong hope of receiving
he has no financial profit
it will work out. Especially if you really are a sword-
you want to get money from him :-) Hehe, no
those times, brother! Spectrum for a long time
underground machine, and almost no one
barks to pay money for software. It's all a long time ago
used to receiving software in the mailbox
ke and free. Well, well, I see you already
wrinkled their noses, saying, why for nothing?
swear once again, what if the people don’t understand
I like it, they’ll immediately screw it up, what the hell (it happens
and such, not everything is Maslenitsa for the cat, there are also
fast days). Suppose receiving money is not
is the goal, then everything is simpler.
   So, you still want to make a magazine,
then you need to select a team that
will be directly involved in coding/
graphing/musing/texting and just
criticism of the newly-minted publication. I give it right away
advice if your team has less than half-
damn man, stop with the amazing ones
projects like: Star Legacy 3; White
Boa constrictor; UFO 3; Children of the Dungeon; ELITE 4; Liu-
like the Gods,and the like, because
you won't have enough time anyway
for their implementation. Those who say are wrong
that journaling is easy. do itvery
easy, but to make a decent magazine -
- a lot of stress.
   Your team may not have a musician
or an artist, the main thing is that he is a good one
coder and person with honors in Russian
language in the role of editor-in-chief. And the music
and strangers will make graphics for you, not
free, of course... although, as agreed
get excited :-)
   It's time to think about the name of your
our creation. It needs to be lacquered
plain, easy to pronounce, not burdensome
brains, was suitable in meaning to the very contents
zhaniya. You might argue that the title
Deja Vu does not fit the content
our magazine. You're right, but it's la-
Conical and easy to pronounce. In general,De-
ja Vu translated from French means
literally “already seen”, a textbook on para-
psychology says that “déjà vu” is a phenomenon
exchange, when a person, finding himself in a new environment,
station realizes that he has already been there before
Yes, I’ve been: astral or mental
movement in time and space (meaning
objects, smells, sensations). And with you
Has this ever happened to us? Come somewhere
to a new place, or just sitting at home on
the sofa, and suddenly one day, and you realize that where-
I saw (felt) it, but don’t remember
where, apparently in a dream... Well, I digress. Name-you have come up with the idea, get to work.
   Everything in the magazine is important, even the little things. Define
share immediately what it will look like
your brainchild. You shouldn't imitate others because
Denmark, do it in your own way, original and
tastefully, I’m sure the user will not remain equal
no-spirited. Further information will be on point-
there so you don't get confused.

           Interface.

   The 21st century is on the threshold, so spare the Polish
caller from having to select items
menu using numeric keys, as in Spectro-
background. An arrow interface is highly desirable.
Make it so that you can move the arrow
but there were as many mouths as possible
Roytov: buttons, Sinclair and Kempston Joyce-
tiki, Kempston mouse, if you wish and
possibilities, then you can try interviewing
use an AY mouse, although this is non-standard. When-
than, polling of all devices should occur
work in parallel. Hot keys should also
You must be present to speed up access
user to certain functions. Pre-
consider cancellation in all actions
BREAK/EDIT key: in the viewer - exit to
shell, in shell - rollback to previous
window, while loading data - forced
stop (so that, for example, in case of bad
reading the sector, the loader did not freeze, trying
trying to count it).  In Deja Vu,for example,
you can interrupt almost anysurgery
with disk. It will be very cool if you
Set Up you will make REDEFINE KEYS for hot
sneeze keys and even for control keys,
so that the user can set them at his convenience.
By the way, this has never happened before :-)

            Memory.

   Forget about 48 kilobytes, this volume is already
died a long time ago. Immediately focus on 128
kilobytes and above. Before starting the log
be sure to test your memory for
this one. If in the machine on which you are running
the log is more than 128 kilobytes, try it
use it so it doesn't go to waste. Nap-
For example, create a RAM DISK that contains
those additional service capabilities
(various fonts, screen savers, nav-
developed viewer, animation engine(???), etc.
d.) or even partially or completely all
articles so that they don’t have to be downloaded later
download from disk.
   How to quickly and easily make support
RAM DISK for storing articles there
forged form? Very simple. Let's say you
tested the memory, and it turned out to be
256/512/1024/...kilobytes. Then create
We give a small plate listing
available logical memory pages.
To do this, load it into memory from disk by
in a row those paths in which the stan-
ty. It doesn’t matter that everything doesn’t fit into memory
it was important to remember which track
(on disk) the process has stopped. Next, loa-
der mustbe like this: if the input is a track
and the sector falls within the range that
has already been loaded into memory, which means the peri-
We get information from the RAM DISK. Your pe-
transferring data from extended memory to
the usual one should work with blocks of 256
byte through a buffer, in simple terms,
it should emulate working with a floppy disk.
This program is so short and accept-
tive that bringing her to me is a bummer, and you and
you know how to do everything without me.
   It is very important to position the data correctly
in memory. In Deja Vu from address 39800  to
#FFFF (bank 0) the text is located in non-
intermittently. To text from address #6000
the code itself sits with an interrupt sign. B
1st bank is the music player and the music itself, and
also a couple of fonts. In jars 3, 4 and 6 there are
The graphics are in the form of sprites, which you
you see in the articles. Only the 7th ban remains
ka, there is another font in it, background,
arrow sprites and, of course, additional
ny screen. In the 256th shell everything is the same,
only in banks from 8 to 15 are located:
promoted frame scroller with promoted
special fonts, screen storage, various
buffers and other crap, not placing
into main memory. Looking intocode
other electronic publications, I finally
I was convinced that only in Deja Vu under articles
with graphics there is such a large amount of volume allocated
memory: completely 4 banks + 9352 bytes, and
in total 74888 bytes of memory! And this doesn’t count
melting another jar of music. Therefore
these kind of statues just look great
like"Demoscene"from Danieland reviews
toys from Ze Paganwith a huge number of
vom graphics.

         Data packaging.

   On the question of the need to pack data
everyone is in solidarity, so there is no need
I can't explain such a banal thing, but
I will dwell on some nuances. What
there should be one depacker for all files - this is
understandable. But loading data into memory is not
should be done according to the principle “loaded
one block - unpacked", because it's a brake
No one needs extra disk spins.
It’s better to do this: “loaded with a turbo loader
“I unpacked everything at once,” because that’s how
faster. This method has a disadvantage:
it is necessary to tighten two independent
cycle:load cycle and cycleunpacking. BUT!
It doesn’t matter how many cycles, what’s important is convenience
user!

       Data optimization.

   There is an important thing you must understand in order to
maybe make a rulebook: efficiency
and the optimality of algorithms directly depends
from organizing the location of data in memory -
ty. And now, in order.
   To make a window interface, you need
We need to develop a layout format
data in memory. Those. describe effectively
all the menus, buttons and functions that
assigned to them (open submenu,
to root something, to launch something) in order to
perform all actions in one procedure.
Daniel/PGC/BDA offered for each button -
which to place a separate subroutine, which
which would do what is necessary, i.e. how much is everything
th buttons in all menus, so many sub-
programs. Hmmm... Maybe I did too
do this if you weren’t studying now
programmer and did not study Databases. Pre-
bet that there are not 40 buttons (approximately
as in Deja Vu), and 400. Imagine
the scale of the program, consisting of a bunch of non-
dependent programs :-) ERASER/Delirium
Tremens suggested using one short
What is the procedure for processing all buttons,
the only important thing is that these buttons are correctly
give. In my opinion it is better to do this
like this:

;----------------------------------------------------------------
;description of the addresses of the menu locations in memory

TABLE   DW MENU0  ;menu address number 0
         DW MENU1  ;menu address number 1
         ...  ;and so on
;----------------------------------------------------------------
;description of the menu framework

TABLEX   DB X0,Y0,VAL0,LENMAX0  ;x and y - menu coordinates
         DB X1,Y1,VAL1,LENMAX1  ;val - count. buttons
         ...  ;lenmax - max. button length
                                 ;in this menu
;----------------------------------------------------------------
;just for ease of reference

LDTXT  EQU #FF
LDGFX   EQU #FE
RUNBASICEQU #FD
RUNCODE EQU #C3 ;JP ADDR
;----------------------------------------------------------------
;sector and track of the very first article file on the disk

FIRSTRSEEQU #XXYY
;--------------------------------------------------------------
;lengths of article files in order, coordinates of their location on
;disk is calculated, end marker - 7_bit=1

LENFILES DB LEN0,LEN1+#80
  DB LEN2,LEN3,LEN4,LEN5+#80
  DB LEN6+#80
  ....
;--------------------------------------------------------------
;bank sign so that the loader knows the order in which data is loaded into
;necessary banks

BANKS   DB #10,#13,#14,#16
;----------------------------------------------------------------
;description of the buttons of each menu

MENU0  DB "BUTTON TEXT1",LDTXT,0 ; loading article
         DB "BUTTON TEXT2",LDGFX,1 ;loading the slideshow
         DB "BUTTON TEXT3",RUNCODE
  DW ADDR  ;run arbitrary code
         DB "BUTTON TEXT4",1  ;nesting on menu1

MENU1   DB "BUTTON TEXT1",LDTXT,2  ;loading article
         DB "BUTTON TEXT2",RUNBASIC,"GAME";start BASIC
...
;--------------------------------------------------------------

   And now a little clarification. Processing
all this happens as follows.
Let's say we drew the initial menu -
I'll tell you how later. We determine which
the button is hit by the user: this is done with
using a 768 byte buffer, in which exactly
a copy of the screen attributes, only instead of
attribute control codes(button numbers,
frame code - for moving the menu, code
background - to roll back to the previous one
menu, etc.).Calculate the coordinates of the arrow,
where the "fire" was pressed, and compare with the
ferrom to calculate the impact zone
difficult. You can get by with a 384-byte buffer.
ferom, but then the codes will lie in half
wink bytes. Then according to the table TABLE and
TABLEX look for the address of the description of this menu
and its parameters. Next comes the most interesting part -
no!
   My program is written like this,
that she doesn’t need any extra stuff at the entrance
data. For example, even in TABLEX and
maximum text message width,
the text length in a button can be much longer
less. The text in the button is printed before the meeting.
some control code, and len-
max needed only for quick calculation
the dimensions of the entire window.
   Control code LDTXT, standing immediately after
text in the button, serves to determine
that there is something assigned to this button
article,LDGFX - slide show. After these codes
there is a byte - file group numberon the list
lengths of files that need to be loaded, because
articles mainly consist of several
files, the first of which is the text itself, and the next
The following contain graphics. You are the loader yourself
calculates the coordinates of the location of the desired
file on disk if the coordinates are known
the very first file and length in sectors
all article files, so there is no need
the ability to know in which tracks and sectors
there are articles. And the loader loads the cans
in accordance with the sign BANKS,and,
the first file is always loaded under the address
39800 bank 0, the rest under address #C000.
 Control code RUNBASIC and the following
8 bytes let the program know what the
This button assigns the start function
BASIC file, used to launch the
provisions
   The most interesting thing is the manager
code RUNCODE and the following two bytes
addresses. When I wrote a new shell, then
initially included the ability to hang
on the buttons an arbitrary code that can be
run with correct return to shell
ku. Convenient as a control
general code RUNCODE use byte #C3
(command JP), so that you can easily
make JP (HL). But this bloat is still
I found myself only in the Set Up buttons.
   If after the button text there are by-
you are from 0 to #C2,and from #C4 to #FC, then considered
It appears that there is nesting on the menu with data
number. Nesting can be absolute
Lutely any (within memory). Not here
problems. There is also a special stack of two
bytes for each nesting, the first byte is
- the number of the previous menu, the second - the number
button pressed in the previous menu.

            Music.

   To play music it is best to use
use one player from ProTracker v3.xx
for all music, since he knows how to play music
language and from some other editors. Od-
However, to use this player in
magazine, it needs to be corrected. In because
in the initial version it contains only ka-
I go around some special sign -
lings, and there should be 4 of them in total. If this
don't do it, then some tunes willig-
the army is not the way the author intended, why
get a big slap in the face :-).
   Also, give the user the opportunity
turn on, turn off, change music yourself
ku. Music can be linked to articles, and
maybe not. For example, in MIRACLE 3 there is
a choice that undoubtedly rules. If you don't-
If you want to link music to articles, then do-
those are optimal. Forget about the tracks and
sectors where the music blocks are located.
Store only the first track in memory and
sector where the very first mu-
zones, as well as lengths in sectors of all Mouzons.
From here it is easy to calculate the coordinates of any
th Mouzon in the list, knowing the lengths of the previous ones
and the coordinates of the first one. This will make it easier for you to re-
editing of source codes, this also applies to
article loading algorithm.

             Text.

   The text format can be anything you want
discretion, but best to use 866
encoding - standard alternative, but
with special control codes. This
will make your life easier when editing stan-
tey.
   It is best to store text in memory in
continuous form, and pay as much attention as possible
There’s more room for it, because after all, it’s not a
cash, not deme, so make room
from unnecessary bells and whistles and occupy his text
Tom!
   If your text is in color, many
background, contain sprites, animationor
even hyper-text links, then take care
talk about developing special software for
of this case, so to speak, home using. By-
why insert this crap into the text because
-it’s not very comfortable under STS. MAX and I are still
they wrote such software a long time ago to make it easier
is the life of our editor-in-chief, and
for myself too.

   Disk operations driver.

   The article loading routine should
be alone, do the maximum useful actions
viy and require a minimum of input data.
It is best to use TURBO LOADER, but
with minor reservations. The point is that in
Lately a lot of people have acquired
screws, and these turbo loaders don’t want to
we work. Therefore, we will have to somehow turn off
vouch. You can use loaders by
#3D13 and thereby give the opportunity to easily
live for a man with a screw, and suffer for a man
ku without a screw, of which the vast majority.
But it’s better to give the opportunity to choose #3D13/
TURBO. We have not done this yet, because
that such a problem did not arise, but as a consequence
next issue I'll think about it. Do it
It’s not difficult, it’s just too much effort.
   Do error handling in your loa-
dere, so that when you press BREAK there is no
BASIC RULEZ or colored squares.

        Text scroller.

   This is the most important thing, because the reader
spends more time in itall the time. Sde-
bark it as quickly and as possible
without strong flickering or twitching.
who won't scold you if you do in
one frame. But do it in such a way that
on brake machines this thing did not freeze and
didn't reset.  Support multi-font
number: 32, 42, 64 characters per line. About
that fonts should be readable, and no
understandable.

 Well, for the glitches!
 (C) Mikhalych

   Glitches are the most disgusting creatures
you have to get them wet right away, otherwise they
will do to you. Have a nervous breakdown and
drop your hooves! Well, but seriously, then
to catch glitches in the program, one
STS is not enough. It is advisable to have Te-
nevik, and then you won’t get fatal
dose of nervous exhaustion. Considering the big
dimensions of the program and its complexity, then
ki will always haunt you. Full-
You can only get rid of them by formatting
copying all source disks :-) But
It is possible to reduce the number of glitches. For this
you need to run your sources more often
computer of a different configuration. Then there is
hope that the glitch will appear earlier, and not
will take root in the program completely. If
the glitch does not appear, then you can document it
ment, and then to all the shouts from a hundred
ronaanswer that this is how it should be, and that’s all
complaints should be sent to the UN Human Rights
centuries!

           RELEASE!

   Here I want to fully quote Da-
niel'a, because it’s impossible to say better
gu :-)
 "This, of course, is the most pleasant thing in the magazine-
loop making! When the magazine is ready and that's it
glitches caught, it's time to get ready
to everyone who took part (in any sense
of this word). If in winter, then in an apartment;
in the summer - in nature. Stock up well
everything necessary, and carry out the wildest
RELEASE! If this is the first number, then
this is called a presentation! At the same time,
the process needs to say pleasant words in
your address, because it has a beneficial effecton
digestion. And only after RELEASE you
feel the great benefits of magazine production and
you will feel great, at least
at least until the morning...;-)".End quote.

 Cardinal/PGC/BDA
------------------------------------------

Share your thoughts about the article