(C) Lynx / Explos! Ve team.
Mdyams ... What a time in any publication there was no sound
of coding. Or all of the shit was all, or What? Everything just
about drinking, but about the booze. Tired to be honest ...
Duc here. I decided to tell you today, as nakodit
Indicators musical sopra in chunks like I did in the plugin
savage in the zx-navigator v.1.2 (eternal memory and honor him,
to whom need raw write to emyl: lynx_gmd@pisem.net). And to
make it It was very good. Indicators, as it were, washed
away:)) motion blur'om left (or right:).
Make it terribly easy, but it looks killer
amazing:). We begin with an explanation.
So. Before us, as usual, the matrix of the chunks. Height
We should be enough (and enough) third of the screen. Obtained
matrix of size 64h16 points at which we draw
bars, meaning the frequency and volume sounding audio. Than
right, the higher the sound frequency, the higher the louder
the sound. Stipulate that the noise us $ Bani, and all three
channels, we imprinted on one matrix. Yes, and print lines will
produce interrupt to more :)).. Vsmysle not displaying, and
print lines in the matrix. We carry the following proceedings:
; --- Hong dog, so perifiriynye procedure ...
fucker
RRA
RR E
RRA
RR E
RRA
RR E
LD A, E
RET
dat DB 0
andez PUSH AF, BC
LD A, (dat)
ADD A, B
LD (dat), A
POP BC, AF
RET
; --- And here is the press line ...
; A data1 - it chankovy buffer.
line CALL fucker
CALL andez
PUSH AF
LD A, B
OR A
JR Z, lret
POP AF
NEG
LD HL, data1 +64 * 16; Reg. A-frequency
LD E, A; B - the sound level (volume)
LD D, 0
ADD HL, DE
LD C, A
ln LD (HL), # d
LD DE, lent * 2
AND A
SBC HL, DE
DJNZ ln
RET
lret POP AF
RET
- But the polling procedure muzykalki ports.
- From her how to print directly caused by the line.
; This procedure should cause interrupt.
init LD BC, # fffd
LD A, 1
OUT (C), A
IN A, (C)
LD E, 0
OUT (C), E
IN E, (C)
LD D, 8
OUT (C), D
PUSH AF
IN A, (C)
AND # 0f
LD B, A
POP AF
CALL line
;----------------- CHANNEL B ---------------------
LD BC, # fffd
LD A, 3
OUT (C), A
IN A, (C)
LD E, 2
OUT (C), E
IN E, (C)
LD D, 9
OUT (C), D
PUSH AF
IN A, (C)
AND # 0f
LD B, A
POP AF
CALL line
;----------------- CHANNEL C ---------------------
LD BC, # fffd
LD A, 5
OUT (C), A
IN A, (C)
LD E, 4
OUT (C), E
IN E, (C)
LD D, 10
OUT (C), D
PUSH AF
IN A, (C)
AND # 0f
LD B, A
POP AF
CALL line
LD A, (fl0_4)
OR A
CALL Z, filla
RET
It's over. Now we have a matrix chankovoy
drawn lines for all three channels. And Che, you think - all?
Dick in a glass. We still all "zablurit" to it
lubricated. And we used to do this "blanking blur."
Ie not just a blur of points and a decrease in the intensity of
their glow:)). Brightness, speaking Russian.
You can namutit there own, super high quality, beautiful,
Brake filters ... I just picked up and used
Simplified (me) motion blur, the image faded and
shifted. Here is a diagram of this filter:
+1 +1 0 0 0 0 0
0 0 0 0 0 0 (0) - the center of the filter (ie
printable point).
0 +1 +1 0 0 0 0
plus divisor is 8. Ie number obtained from
Addition of these points still denominations divisible by 8 and
put in center.
Tupoy Question> What to do when a nuclear explosion?
Hint> The main thing is not to get to the epicenter.
In the code, it looks easy. One procedure:)
blur2 LD IX, data1
LD BC, data1
ixel2
LD A, (IX-59)
ADD A, (IX-58)
ADD A, (IX +59)
ADD A, (IX +60)
SRL A
SRL A
SRL A
ix_3 LD (IX), A
INC IX
DEC BC
LD A, B
OR C
JR NZ, ixel2
RET
It looks like this. Yes. Completely forgot! To
all beautifully looked to do the matrix Pobol sizes
to have borders that are not printed on the screen. And
overwritten them. In order to blur not climbed any shit from
the depths of memory.
I think that gave you food for thought. All you have to
remove All bugs (and add a couple:) and draw a conclusion on
the matrix data1 screen.
Good
luck!