.
|
. - - Intro - - .
FOX,Savers Alliance
. - -- ------------|---------
.
|
,&&$$&&, [sinus/zgr/svr]
,&$$$$&$$$$&, |
,&$$$&$$&$&$$&, |
&$&$$$&&$$$$&$$ |
,$$$&$$''&$&' / | /
&$$&$&' '$' / | /
$$$$$'___________/__|__/____
$$$$& / /|
$$&$4 ,$, / |
$$$$$, $&, ,&$&, |
&$$$$$, '$$$$$&$$ |
'$$&$$&, ,$&$$$$&
'$$$$$$&$$$$&$$&'
'&$$$$$$$&$$&'
'$&&$$$&&'
Great bulls! How is it?
Badly? It's cool here! And you
it will be cool too! ... Not yet
became? Then download it to your
feverish brain next program
onUstav'e-2oo2.01.24 :
FOX>
Since Sine on Charter'e
Coding is still weak, I'll help him here
:)
0 ЭЙ, ТЫ! ;опрос порта
1 ВСТАТЬ!
2 СЕСТЬ!
3 НУ ЧТО,УРОД,ЕЩЕ ?!!
; (IF вам круто THEN GO TO S)
4 GO TO 1
S ОТбОЙ !!! ; ВАМ КРУТО !!!!
Sinus>Okay, it was all bullshit.
complete... We'll talk to you o
coding, or more precisely, o
full frame
pixel-by-pixelscrolling of everything
screen. I'm guessing you don't
new to coding, and familiar with
some coding perversions
(type of data transfer via
stack)
So, as is already known, all
how to throw a screen over a frame
send two bytes ;) Method
is:
LD SP,#S800
DUP #0С00
LD HL,some_data
PUSH HL
EDUP
where some_data this is our
screenshot (by the way, this piece of code
will not work, because I need this
some_data change before each
PUSH'em). However, it is necessary that
this feces also scrolled, for
convenience, let's break down our picture
along the lines:
DUP 192 ;192 lines in picture
LD SP,scr_addr ;scrn addr :)
DUP #10
LD HL,rulez_data
PUSH HL
EDUP
EDUP
now if instead of scr_addr
put line_address_ekpaha+32,
a instead of rulez_data our
picture, then... we will see that
this example is not much different
from the previous one (just now)
slows down more...
So that the picture moves from
places, you can either change the data
(which is equivalent to standard
scrolling and slows down terribly) or...
change screen addresses!!! Ticks
minimum changes are spent on
screen maximum :)
Well, now the final version:
;-------------------------------
ORG #7000
CALL GENSCBF
XOR A
LOOP PUSH AF
HALT
LD B,A
LD A,7
OUT(#FE),A
LD A,B
D.I.
CALL OUTPUT
EI
XOR A
OUT (#FE),A
POP AF
INC A
SR 192
JP С,LOOP0
XOR A
LOOP0 LD V,A
IN A,(#FE)
OR#E0INC A
RET NZ
LD A,В
JP LOOP
OUTPUT LD L,A
LD Н,0
ADD HL,HL
LD DE,SCBF+(192*2)
EX DE,HL
AND A
SBC HL,DE
LD DE,SCGL
DUP 192*2
LDI
EDUP
LD L,A
LD Н,0
ADD HL,HL ; HL=A*2
ADD HL,HL ; HL=A*4
LD D,Н
LD E,L ; DE=A*4
ADD HL,HL ; HL=A*8
ADD HL,HL ; HL=A*16
ADD HL,HL ; HL=A*32
ADD HL,HL ;HL=A*64
ADD HL,DE ; HL=A*68
LD DE,RULEZ
ADD HL,DE ; HL=START_ADD
PUSH HL
LD DE,68*192
; если поставить 68*1S0 то должн
; влезть за фрейм
ADD HL,DE
LD (OUTPUT0+1),HL
MML=0
DUP 3
LD A,(HL)
LD (ZPBUF+MML),A
LD A,(COMBUF+MML)
LD (HL),A
INC HL
MML=MML+1
EDUP
LD (_OUTPUT+1),SP
RET ; == POP HL: JP (HL)
_OUTPUT LD SP,0
POP HL
; POP HL бЫСТРЕЕ ЧЕМ
; INC SP: INC SP
OUTPUT0 LD DE,0
LD HL,ZPBUF
LDI
LDI
LDI
RET
COMBUF JP _OUTPUT
ZPBUF DS 3
GENSCBF LD HL,SCBF
LD DE,#401F
LD В,192
GENSCBF0
INC DE
LD (HL),E
INC HL
LD (HL),D
INC HL
DEC DE
CALL DWDE
DJNZ GENSCBF0
LD HL,SCBF
LD DE,SCBF+(192*2)
LD ВС,192*2
LDIR
RET
DWDE INC D
LD A,D
AND 7
RET NZLD A,E
ADD A,#20
LD E,A
RET С
LD A,D
SUB 8
LD D,A
RET
RULEZ
КАКА=0
DUP 192
LD SP,(SCGL+КАКА) ; 4
КАКА=КАКА+2 ;
DUP #10 ;
LD HL,#SSSS ; 3
PUSH HL ; 1
EDUP ;
EDUP
; 3+1=4
; 4*#10=#40
; #40+4=#44 (68)
KAKA=0
DUP 192
LD SP,(SCGL+KAKA)
KAKA=KAKA+2
DUP #10
LD HL,#FFFF
PUSH HL
EDUP
EDUP
DS 3
SCGL DS 192*2
SCBF DS 192*2
DS 192*2
;-------------------------------
naturally in place RULEZ_DATA_1 and
RULEZ_DATA_2 you need to put two
pictures.
Because I'm writing this now in
HorrorWord'e, then I can’t
say this top will work
as it should or not. Throughout
visibility should work,
and almost frame-wise (about how
do it REAL
frame, I will bazaar in
TargeT#11 (if there is one,
of course)).
FOX>
damn if this crap doesn't work
will be Sine will be flying "almost
frame" :)))
Sinus>
Р.S. Used in the text
profanity ALASM'a.
FOX>
Sine joked about
Horrorword'a :)
SIN>
Sinus/zgr/svr,2oo2
Share your thoughts about the article