QUICK GUIDE TO SYSTEM CODER
The man who decided to write the system
program faces many challenges. This text is intended at least
in part to help you make your program quality and comfortable.
Naturally, I could not account for all the nuances, but all the
same, if You take advantage of councils izlozhennmi
below, it will be easier and you yourself, and users of your
programs.
This amended version of article, once published in the
"Depth 1". DATA topic We intend to continue in subsequent
issues "RU (S) H".
WHAT SHOULD BE CONSIDERED FIRST
FOR CREATION OF SYSTEM SOFTWARE
1. Your product should be
into account all the advantages and disadvantages of the
previous programs of this type. Learn the mistakes of others,
and use all the achievements of their predecessors.
2. Management program must be
flexible and varied. Standard set is: SINCLAIR (right)
KURSOR,
KEMPSTON (with validation)
PAD (O, P, Q, A,
SPACE and M).
Also KEMPSTON and AY mice. If you do not
mouse, but you want to implement its support, you can read
about how to do it in the following publications:
about KEMPSTON mouse - "SPECTROFON 20" in
under "Design"
of AY mouse - "ZX-POWER 1" in section
"Iron."
3. You should always check KEMPSTON joystick and do not
interrogate him if he is absent. Otherwise, all
machines without this port, your work will not work. Recall
that if KEMPSTON'a not - bit 5-7 are installed.
4. Your program should make maximum
use all the resources of the machine on which it operates. Need
to test available memory and run it
with him. I can advise to use
auto-configuration memory of the "ZX-FORMAT5",
written by CREATOR'om. It will allow your
program work with memory from 48k to
megabytes.
5. Copiers and other disk utilities have to work as a single
drive, and with two.
6. If a program has many mutable
parameters (more than three), just to make them write to the
disk (SAVE SETUP). In this recording must be done inside the
program, after checking its availability and location on the
disk.
7. If your program works with
the second mode, interrupt, to connect them
need to create a 257 byte table
clogged by a single number, because many
cars with tires not read # FF, and any number. This has already
been much discussed, but still sometimes appear program
not considering it.
8. Naturally, the segments (pages)
switch need not port # FD, and
through a full port # 7FFD (dec: 32765).
9. When accessing the disk must be
connected to the first mode interrupt (IM 1).
If you for some reason you need
IM 2, you can use the interrupt vector tolko within the areas
of fast memory (# 8000 - # BF00 (32768-49151) or
pages 0,1,2,3), with location
interrupt vectors in the slow areas of memory, the entire
computer, and with it the TR-DOS, will operate at 25 percent
slower, and disk operations will be disrupted. This is typical
only for machines with a separate field of memory for the rest,
for example, Pentagon, it does not matter but still it must be
considered. On the separate fields of memory in detail in
Belarusian newspaper "ECHO 2, suggest You read it.
So is the transition to standard
trap mode (IM 1), must be restored in case I, the value 63 dec,
otherwise your program will not work on
many machines, including brand.
Somewhat more detail COUNCIL
CERTAIN TYPES OF PROGRAMS
14, the Board PERSON Writing "boot":
1. Soon need to decide what to drive
This "boot" will be used. For
system is preferable to a simple but
easy to use interface, without special effects
and unnecessary frills. If the "boot"
be used for games and
demos, a different matter, effects, graphics and music are
welcome.
2. Naturally it should occupy as
may be less disk space.
3. The faster your "boot" will be loaded and run, the better.
In any case, you should not hang him effects with long
DECRUNCHER'ami.
4. Try to time the screen was displayed the greatest amount of
files.
5. The names of the programs must be well
readable. Choose the right font and
color of the window. It is desirable that the data window is
not moved. Outside the same window do anything.
6. Management must be diverse and flexible. At the same time
from the largest number of devices. If the file selection
occurs by the arrows, make
support KEMPSTON and AY mice.
Personally, I am in the majority
cases to select the files I use
cursor keys (Extended Keyboard). In a survey of the keyboard,
first verified pressing CAPS SHIFT, if
she pressed, the keys 5,6,7,8 polled as the Cursor joystick,
except SINCLAIR.
Replacement disk is usually produced by pressing SPACE, it
has become standard. It is also convenient to use the "ENTER"
key as FIRE.
7. If your boot'e not implemented
automatic verification of disc replacement, before
starting the program should read
catalog and, if desired file
not there, take the directory already
the new drive and, of course, nothing
run.
8. Before starting the program you want to restore all system
variables and all that is required for normal
work with the Basic. You can leave a black screen (the area is
filled with the attributes of code 0) but in the system
variables need to write the standard attributes. Also,
desirable to clear all the memory that held the "boot".
9. Programs that use the 128k ROM or
128k Basic, very few (honestly, I
did not think of one), but programs that do not work with
connected 128k ROM - set. Therefore, it is desirable
to "boot" immediately connected a 48k ROM
but with the active pages. If you do not know how to do it,
take the line of downloaders assemblers "TASM", "ALASM"
or from some else. At 48k a computer, all will work fine.
10. Most casks files named
"Boot" does not appear, but sometimes it's inconvenient, so I
advise that the output file, but when he recorded the first
disk, a pointer to immediately move to the next file. Also,
when searching for the name "boot", to inspect all eight
letters, and not only the first four.
11. Sometimes in the same program
is somewhat Basic blocks, runs only one of them. This case
can provide, and do not show certain Basic files. Single
standard in this case does not exist. Sometimes
do not display all files beginning with a lowercase letter, but
this is not always convenient. In my opinion, easier to sift
all files that begin with a dot.
12. In some "boot'ah" realizivana
sort files in alphabetical order, but usually
it only complicates the work. Therefore,
Sort best to make you want to disable.
13. Useful, except when the file list
the screen is given a summary of the
disk. For example, his name, number of
free sectors and the number of files.
14. It is advisable not append rigidly
some music and make it easy
replaceable. In this case, there are two ways:
can be stored in the memory of a player or a music editor and
load music files without the Player. Or for gruzhat compiled
block player'om of any editor, but he must wives be compiled
under a certain address. In any case, you must describe in
detail the process of suspending write music.
IF YOU DECIDE TO WRITE COMPRESSOR ...
First, he must allow to record compressed blocks without
decompressor to be able to uncompress a depacker'om many files.
Secondly, you must attach to
compressor to the text version of the decompressor, so that any
could change it to his taste, or try to accelerate.
Time compression is not particularly important,
but the rate of decompression must be
as quickly as possible. Depacker must work at interrupt enable.
When working with a variety of compressors was found
that virtually all existing "Cruncher" (DSQ4, MS_PACK, LPC
etc.) are not working correctly vsegada. One day, trying to
compress a file, I tried 6 or 7, compressors, and no
One of them is not unpacked it right!
Usually, errors appear in the case
When a file is already kompressiruemy
compressed block or screen.
I am not an expert in this field, but I dare to express
their views, slightly smelling leymerstvom :-) ...
Apparently, the Packers puts its control codes, and
re-compression they may coincide, which would entail
incorrect decompression (just do not hit
on the head if I said some
stupidity :-)) ... These glitches occur
rare, but try to get in your compressor nebylo them all.
Zadolbalo me to write loader'y
programs. I would be glad to implement in the compressors of
the function of several multipakinga Files suspension followed
standard loader, which would itself rasbrasyval
files through the pages ...
A FEW TIPS TO MAN Writing
MUSIC EDITOR
1. If you have already decided to write it, then
You have to beat all existing before
The editor, otherwise why do it
to deal with. In this case, just need to write full-fledged
converter of all editors in your.
2. It is important that served as a player
possible cycles. It is desirable to 2-3 thousand. Otherwise,
the area of your editor really shrink.
3. Attach to the editor of the source
playera option in the format of any
assembly (preferably "TASM" because of
he easiest way to convert the file to
any other editor). You can also make the text the player in the
usual text format.
4. First I advise to get acquainted with the editors on other
platforms. I can recommend to see the editor
"OCTAMED" for AMIGA. I think you will find
there is a lot of useful ideas for service and your
editor will get much easier.
5. In addition to facilitating the life of a musician
should take care of coders who
will use music in their program. It will be very useful if you
implement a realtime timer.To has a timer which will show the
playback music up to interrupt. This
help to synchronize the music in a program with graphics.
6. Make the ability to change the ringing tone when playing, so
can be easily implemented zatihanie music. You can enter three
variables in player'e that will contain the value maximum
volume for channels A, B, C.
7. Conclusion in any of the three channels should just cut off
at any time play, to be let on This channel sound FX.
8. It would be an opportunity to make
move to any position. This will allow
quickly move to any place in melody
keep a few tunes in one or
For example, using the melody as a set
sound effects.
9. Listening to music on the Speccy, the majority of
do not realize that most of the tunes too much "fake" because
of the program features some of the editors. But one of my
friends from Kiev - Sasha - a professional musician and music
by the adjuster. instruments drawn on it special attention.
Thus, relying on his perfect ear for music :-), you can
say no "Sound Tracker'e", nor
"ST-pro", no "Pro Tracker'ah" no right, from a musical point of
view, the sound generation. Only the old, old "ASM" good to
hear functioning and accuracy of sound.
Thus, there are already converted
version of the third "Pro Tracker'a", in which
embed a spreadsheet of sound borrowed from the "ASM"
Sendetskogo.
I hope everything's new editors
and their versions will consider this no small nuance.
All the same sound - the main thing in the music
editor.
SOME SPECIFIC RECOMMENDATIONS FOR AUTHORS
System Software
1. "ALASM" by ALEM
Assembler must understand the binary representation of
numbers, written after the% sign (eg% 00000001).
When downloading a file pointer WORK
it is better to install the last recorded source.
Opportunity to mark the text
different color or inversion. Just to celebrate in a different
color lines with errors.
By pressing a combination opredelelennoy Clavey, the
assembler must remember current position in the text, and then
he should be able to quickly jump to that place.
Teams disposable compilation
very convenient, but often found this
situation when loaded several
files one by one, and the tags are placed between them. In this
case, when re- assembly address labels will be shot down. For
example code fragment:
MUSIC + INCBIN "RAVE +"
SPRITES + INCBIN "GFX_CODE"
TABLE + INCBIN "DATA"
When the first compilation label values
TABLE SPRITES and will depend on the length
previous files, as it should be, but
during subsequent assembly when
marker "+" will be replaced by "-", and files
will not be loaded, all three labels will point to the same
address. I think to avoid this, enough to remember when
assembling the length all loadable files and then add them at
each subsequent compilation.
It is also useful to disable the sound on
AY, after returning from the startup programs.
You can also order untapped BREAK key in edit mode
worked as ENTER, but with the translation line than on the
label, and the field teams.
Work with the drive to better organize
as in "TASM-4", that is, load the disk directory in memory, and
take options MRE files from there, not chasing the crown once
times the zero track.
And a few more tips, not only ALEM'u,
but also go out to all assemblers:
Desirable for testing startup procedures are time
the best case up to the bar, just
worse, up to four, and in extreme
If at least up to the interruption
using the system counter (FRAMES).
It is necessary that after leaving the
running program without clearing the screen,
could enter into a special mode
calculate the on-screen addresses. Namely
mode when the screen goes Index
value in one byte, or one point, and
FIRE is displayed when you address this
byte of the OSD file in the attribute and the coordinates X and
Y.
Would benefit from a team that
binds the following address compilation
to smooth hexadécimal address.
Would like to see in the assembler
were commands like: SAVE TRACK TO 159 0
and RESTORE 0 TRACK FROM 159.
Also useful would be the presence of
cleanup functions and pages.
2. STS by STALKER
If writing the file to disk there
already a file with the same name and
This is in the catalog, it
need to erase and write a new file
his place, as does the vast majority of programs.
When you enter the numerical parameters for
different functions, such as COPY, be tied to the input number
is not right edge of the box, and to the left so as not to
had to continually move the cursor to the
several characters to the right.
3. PERFECT COMMANDER by JAMES ADVENT
In my version of the Commander, there is one small but
nasty bug: when copying multiple files
the disk on which it remains less than 256
sectors, Commander sometimes "pretend"
that copying went well, but in fact the latest files are not
overwritten. If the Commander restarted everything will be
copied perfectly.
Before watching the screen, better
scoring attributes Code 0, curb and better
always leave a black, so-as "intellectual opredelyalka"
sometimes looks like a full color blind, I tell you how
Artist ...
It will not hurt as elementary
compiled music player, with
it himself commander must "hide" in the
pages and load music from player'om
at any address.
Much to the article will be viewing standard text files
with profiles 42 and 64 characters per line.
I wish that was implemented
standard feature of saving a copy of the directory on 159'om
track.
But still please Plug 48k
ROM and clears all memory when running programs.
It was just wonderful, would, if
Would you sold in the Commander line and
valuable work with MS-DOS. Zadolbalo
to copy the files using a text editor ... :-)
4. TOTAL COMMANDER by Dr. L0VE
Be sure to make "hot" keys, as with windows to work too
slowly.
I advise you to pick a better color
a commander, that he did not look so
too gaudy, it's just distracting information.
Necessary to realize the opportunity
Launch code files.
Ability to select any masks
output files.
BEST VIEWER 2.5 by Ivan Roshine
Just a wonderful thing! I can not get enough!
What is lacking for complete happiness:
Playing not to compile files
from "ST-pro" (as in "X-player'e").
Ability to view text in the format 42 characters per line,
and possibly in different encoding (WORD, D. Mihaylova
(Amiga), etc.).
Browse archives sprite format
"SprGen 5.1" from Real Software.
The Office of Kempston'a.
Possibility of increasing the window faylrikvestorom where
file lists would go to several rows.
Displaying the auxiliary system information (starting
address and length the file name of the drive, etc.).
According to the "urgent request of viewers," playing
music in podgruzhennoy the background while you view the text,
eg.
In general, it would be best'om of best'ov
unite "BV" and "Perfect" into a coherent whole, or supplement
"BV" all the attributes shells, focusing on the "Perfect" ...
In this article I have considered only
several programs, but if you have
any ideas or comments on the system soft'u, contact us and we
will continue this subject to the following numbers of "RU (S)
H".
Creators of the programs and their users
must communicate and work together
to make into new products and changes
improvement.
We wish you every success in the
create the software programs!