And now just a little bit of nonsense, well for that...
what to delay the assault on BRADS TALE.
Did you know that in SE#1;2(SPECTRUM EXPERT),
the text is not printed, but it is simply LDIR.
No, it’s a no brainer that you can’t just do this:
take LDIR, before that it is built in
memory to the desired address, and then with the help
LDIR cabbage soup is printed on the screen. It sucks
32 bytes 8 lines each. And it’s all much faster
three than printing, but it’s cumbersome, so it doesn’t
profitable.
I remember in ZX#8, there was “EPOPEE”, there was Me-
Dnonogov told how Raven wrote.
HE talked about how to combine interruptions and
stack. Quite an interesting method, but I don’t
don't delve into it, it's too complicated for me -
but, but here's X-TRADE, I see they understand.
This means that they scrolled the screen through the stack. We have -
but in a way that is more rational
suitable, i.e.
LD DE,NNNNN
PUSH DE
nnnnn-number from the screen. Well, we took it from the screen-
two bytes and a stack, and our stack is on an
wound. And when interruptions come, we don’t
there will be crap on the screen in the form of running pixels
catch.And now I will offer you a program on-
written by NOTSOFT specifically for the newspaper,
but was never included in the newspaper due to
simple to the point of godlessness - IM2. Or simply put -
for interruptions. See;*****************************************
(c) 2002,NOTSOFT/ANOT GROUP
;*****************************************
ORG #6000
DI
LD HL,22528,DE,HL,ВС,767
INC DE:LD (HL),70:LDIR
LD А,3:OUT (#FE)
LD HL,#4000:LD В,184
FILL PUSH HL
.32 LD А,R:LD (HL),А:INC HL
РОР HL:CALL DOWNHL
DEC В:JP NZ,FILL
CALL DO
LOOP1 LD А,#BF:IN (#FE):RRA:JR C,LOOP1
LLLL CALL #C000
LOOP LD А,#BF:IN (#FE):RRA:JR NC,LLLL
LD А,#7F:IN (#FE):RRA:JR C,LOOP
RET
DO LD IX,#C000
LD (IX),#ED:INC IX
LD (IX),#73:INC IX
LD (IX),#FF:INC IX
LD (IX),#FE:INC IX
LD HL,#4000:; ****
LD DE,#4020; ****
LD В,184; ----
L2 LD (IX),#31:INC IX
LD (IX),E:INC IX
LD (IX),D:INC IXPush H.L., D.E.
LD C.16
L1 LD (IX),#E1:INC IX
LD (IX),#22:INC IX
LD (IX),L:INC IX
LD (IX),H:INC IX
INC. HL,HL:DEC C
JR NZ,L1
ROR HL:CALL DOWNHL; !!!!
EH DE,HL
ROR HL:CALL DOWNHL; !!!!
DJNZ L2
LD (IX),#ED:INC IX
LD (IX),#7B:INC IX
LD (IX),#FF:INC IX
LD (IX),#FE:INC IX
LD (IX), 201
RET
;-----------------------------------
DOWNHL INC H:LD A,H:AND 7:RET NZ:LD A,L
ADD A,32:LD L,A:RET C:LD A,H
SUB 8:LD H,A
RET
UPHL DEC H:LD A,H:AND 7:SR 7:RET NZ
LD A,L:SUB 32:LD L,A:RET C
LD A,H:ADD A,8:LD H,A
RET
;-----------------------------------
The program is written on STORmv1
.32 means that 32 times will be fulfilled this co-
manda,thislike REPT. Why not use
They called it REPT, but because we don’t have it.
Although STORm understands such a command, it does not
It works, but it's a pity.
There is a demonstration effect in the ptogram
It is for him that we form the screen (.32).
Any canoe is formed on the screen and after
pressing a key starts scrolling
through the stack, scrolling is fast, but there is a drawback
He doesn't like to work with interruptions.Prog
it will work, everything is ok, but when it arrives
IM2 you will see on the screen where you are now
There are interruptions. That’s why everything is so bad.
Although, if you don’t have interruptions
music, but something so simple, then maybe...
but it's free to do this:
INT DI
LD (STACK+1),SP
LD SP,NNNNN
PUSH AF
PUSH Sun
PUSH DE
.......
POP DE
ROR Sun
POP AF
STACK SP,0
EI
RET
I didn't translate everythingregisters that are needed
save on the stack because this is already the case
personal. Whoever needs what, saves it.
And after that you see nothing on the screen
you'll see. But why save the stack when
we begin to handle interrupts if we
do we do DI before that? Yes, just in case
tea, still decl byte.
Yes, I forgot to say the program generates at the address
#C000 code block:
LD SP,NNNNN
POP HL
LD (ХХХХХ),HL
And such a block will last for a long time, until it is formed.
rated for the entire screen.
nnnnn-address on the screen.
xxxxx address on the screen.
As you understand, the addresses are different.
And also, **** are indicated with this sign
places where you can change addresses.
These addresses are responsible for how much scrolling
we will do this if we scroll down, i.e.
we use the DOWNHL subroutine (in fact
le it's at the top, oh well), then HLbe like this, and the difference between these registers should be
My wife should be 32(!!!!!). This is a must.
When you change, calculate how many lines
you need to scroll and change ----,
This is where the line counter is located.And if you need to scroll up (on sa-
In fact, you understand that it’s down).
but change calls, instead of DOWNHL, put
UPHL (I explain everything like lamers :)). And soo-
responsibly change addresses. Here, I hope
Do you realize that it’s the other way around here, i.e. HL>DE.A,
If she doesn’t understand, then figure it out.
And most importantly, don’t forget about interruptions -
those. They oh how bad this program works
they don't, that's why I don't use it.
Well, I’ll end the number with this, BARDS TA-
LE will not be available today, because... I'm preparing a map.
also some other bells and whistles.
So only in the next issue, or maybe
and no, I hope it will. And honestly
Rya, I don’t know when the next issue will come out.
This issue came out three days after the previous one.
next, I just had something to write, and in
the next one has something to write, I’m just going to soon
Petersburg I'll be leaving (next week), because soon
Most likely I won’t have time to release the 9th........
Okay, we'll wait and see.
That's it, bye everyone, see you in room 9.
Share your thoughts about the article