Programming - the program allows to change the screen image in the mode of 48K in the form of vertical blinds with a simultaneous color change of the curb.
PROGRAMMING
Bring to your attention
program we have received from
Shabanov, Vladimir. Program
allows you to change the image screen in a 48K
as vertical blinds, with simultaneous change in color border.
You can watch this interesting technique in the description of
the game VINDICATOR, which made this
same author.
We want to warn:
program is rather complex, but
we think that anyone who interested in this procedure will be
able to understand it and apply for
writing your own programs.
Vladimir Shabanov
CLS LD A, # 08; LIST
; NUMBER IN
; COUNTER
LD (LAB7 +1), A; NUMBER 1
LD A, # 88; LIST
; NUMBER IN
; COUNTER
LD (LAB11 +1), A; NUMBER 2
LD HL, (VECTOR +1); TAKEN
; In HL
And the transition
; From the vector
LD (SAVE_VECT), HL; PRE
; Closing the
; And Save
; LILI
LD HL, PRER; ASK
; YOUR Pere
; PROGRESS AND UNDER
LD (VECTOR +1), HL; SETS
; IT IN
And the vector
LAB1 HALT; MADE
; TWO PRAIRIE
; Bani FOR
HALT; Shaded
, Bordeaux. ABOVE
; AND LOWER SCREEN
LD A, (LAB11 +1); TAKEN
; NUMBER FOR
; Counter 2
SUB # 08; REDUCE
; AT 08H
LD (LAB11 +1), A; Unknown
; BACK
LD A, (LAB7 +1); TAKEN
; NUMBER FOR
; Counter 1
ADD A, # 04; Add
; 04H
CP # 50, CF
, C 50H
JR Z, LAB2; IF STILL
, Then the output
LD (LAB7 +1), A; Unknown
; NUMBER
; BACK
; The counter
CP # 20, CF
, C 20H
JR C, LAB1; IF LESS THAN
, Then the
; BEGINNING OF CYCLE
SUB # 20; takes
; 20H FOR
; VYCHILENIYA
LD L, A; and enter
; RESULTS
; L
LD H, # 00; Zeroing H
ADD HL, HL; and multiply
Receipt
; NUMBER
ADD HL, HL; ON 8 TO
Calculation of
; ADDRESSES
ADD HL, HL; TO FILE
; ATTRIBUTES
; SCREEN
LD DE, # 5800; In DE HOME
; FAILA
; ATTRIBUTES
ADD HL, DE; ADD
; HL AND DE
LD E, L; Unknown
; In DE
Receipt
LD D, H; ADDRESS AND
INC DE; INCREASED
; It by 1
LD (HL), # 00; MOLE
, AT
; HL ZERO
LD BC, # 001F; In BC
Coil;
; Rows minus 1
LDIR; CLEAR
; ZNAKORYAD
LD A, (LAB7 +1)
NEG; PRODUCE
Calculation of
ADD A, # 7C; CLEANERS
LD L, A; LOWER
LD H, # 00; ZNAKORYADA
ADD HL, HL
ADD HL, HL
ADD HL, HL
LD DE, # 5800
ADD HL, DE
LD E, L
LD D, H
INC DE
LD (HL), # 00
LD BC, # 001F
LDIR
JR LAB1; AND DO
And the transition
; TO START
; CYCLE
LAB2 LD A, # 00; Stain
; BORDER IN
OUT (# FE), A; BLACK
LD HL, (SAVE_VECT)
; RESTORES
; VECTOR TRANSITION
LD (VECTOR +1), HL
; Interrupt
RET; RETURN
; FIXED
; PROGRAM
FILL LD A, # 50; THIS
; PROGRAMME
LD (LAB7 +1), A
; INTENDED
, FOR
LD A, # 00; FILL
; ATTRIBUTE
LD (LAB11 +1), A
; FROM THE MIDDLE
; UP
LD HL, (VECTOR +1); AND DOWN
, AND IS
LD (SAVE_VECT), HL
; MODIFICATION
LD HL, PRER; SUB
; CLS
LD (VECTOR +1), HL; THIS
; EXAMPLE
; CALCULATE
LAB3 HALT; to work on
HALT; INTERRUPTION IM2
LD A, # 04; but you can
, DO
LD (LAB8 +1), A; AND WITHOUT
; UNINTERRUPTED
LD A, (LAB11 +1); IF
; KOMANDY HALT
ADD A, # 08; REPLACE
; TO CALL PRER
LD (LAB11 +1), A; A ON
; WITHDRAWAL FROM
, SUB
LD A, (LAB7 +1); PRER
; REMOVED THE TEAM
SUB # 04; Ei AND A RETI
; SUPPLY
CP # 0C; JUST RET
JR Z, LAB4
LD (LAB7 +1), A
CP # 20
JR C, LAB3
SUB # 20
LD L, A
LD H, # 2000
ADD HL, HL
ADD HL, HL
ADD HL, HL
EX DE, HL
LD HL, # 5800
ADD HL, DE
EX DE, HL
LD BC, SCR_ATTR
ADD HL, BC
LD BC, # 0020
LDIR
LD A, (LAB7 +1)
NEG
ADD A, # 7C
LD L, A
LD H, # 2000
ADD HL, HL
ADD HL, HL
ADD HL, HL
EX DE, HL
LD HL, # 5800
ADD HL, DE
EX DE, HL
LD BC, SCR_ATTR
ADD HL, BC
LD BC, # 0020
LDIR
JR LAB3
LAB4 LD HL, (SAVE_VECT)
LD (VECTOR +1), HL
XOR A
LD (LAB8 +1), A
LD A, BORDER
OUT (# FE), A
RET
PRER PUSH AF
PUSH BC
PUSH DE
PUSH HL
EX (SP), HL
EX (SP), HL
LD A, UP_BORD; Record
; In A COLOR
; TOP
OUT (# FE), A; HALF
; Border
LD A, # 07
LAB5 LD B, # 0F
LAB6 DJNZ LAB6
AND # FF
INC HL
DEC A
JP NZ, LAB5
LAB7 LD A, # 10
LAB8 SUB # 00
LAB9 LD B, # 0F
LAB10 LD C, # 2007
LD C, # 2007
DJNZ LAB10
AND # FF
LD C, # 2007
LD C, # 2007
INC HL
DEC A
JP NZ, LAB9
LAB11 LD A, BORDER; IN WHICH A
; Color was
OUT (# FE), A; BORDER
LD A, # 78
OR A
JR Z, LAB14
LAB12 LD B, # 0F
LAB13 LD C, # 2007
LD C, # 2007
DJNZ LAB13
AND # FF
LD C, # 2007
LD C, # 2007
INC HL
DEC A
JP NZ, LAB12
LAB14 LD A, DOWN_BORD; COLOR
; BOTTOM
One half
OUT (# FE), A; Border
LD A, # 05
LAB15 LD B, # 0F
LAB16 LD C, # 2007
LD C, # 2007
DJNZ LAB16
AND # FF
LD C, # 2007
LD C, # 2007
INC HL
DEC A
JP NZ, LAB15
POP HL
POP DE
POP BC
POP AF
EI; if not on
; INTERRUPTION TO
RETI; is posed
; RET
SAVE_VECT DEFW # 0000
KeBaymakov Jaroslav
(R. I. P. Corp. 1996 by DIEHARD)
WARNING! WARNING! WARNING!
WARNING! WARNING! WARNING!
Are being developed
FEE EMPOWERING
YOUR COMPUTER.
In the board is fully embroidered with all
major ports: the expansion
memory, sound and prozessora
the keyboard is properly connected
AY-processor (can be read from
port FFFD).
The board allows:
1. expand the memory:
- RU5 on up to 512 KB
- On RU7 2048 KB
2. disable ROM
(On its place in the address
# 0000 .. # 3FFF gets zero
pages of memory);
3. direct programming
floppy drive controller from VG93
any memory area (not just
at the entry point # 3D2F);
4. sets the screen at any
memory location every 8KB;
5. allows us to assume the state
port mapping # 7FFD and # DFFD;
6. can be installed
floppy drive controller on the board;
7. possible segmentation of the address
# 4000;
After connecting the board
computer becomes a 60%
compatible with the PROFI (impossible
only the screen 512 by 240 pixels).
Please send requests for
making this payment, as well
However, some considerations
about the need for controller
on this board and segmentation
Other addresses at Editorial
Journal SPECCY.
*
Other articles:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Programming - the program allows to change the screen image in the mode of 48K in the form of vertical blinds with a simultaneous color change of the curb.
|
|
|
|
|