(C) M.M.A aka UnBEL!EVER/SPEED CO./XTM'98
IS-DOS with pictures!!?
In ancient times, I read
some magazine dedicated to PC. The magazine was
directed to users and from page to country
Nice, red thread there was a New Year's theme
gifts - buy this, buy that, best
gift for New Pod, etc. Among the sellers
some rubbish was some kind of CD, having bought a
which, "you will certainly master modern
multimedia technologies without getting up from the warm
chair logo". As an example of "mastering
multimedia technologies", it was proposed to
decorate your WINDOWS using pictures
recorded on the disc, in accordance with our
dull New Pod. Below is the
working screen of wIN'95, where the crowd frolicked
snowmen, Grandfathers Frost and other winter ones
attributes.
"Here are the snickering capitalists!", -
I'm small then. This is what happens, they
can decorate their windows for the holiday
all sorts of pictures, and we have to dig-
put on background of blue panels of monotonous
IS-DOS'a ??? No, it's a mess!
Exactly that's how and that same file was born
start., which you can find on the dis-
ke with the magazine. By copying it to the bootloader
new IS-DOS disk, calling it start.com and registering
By saving it at the end autoexec.bat,you can
Feel free to overload system and enjoy
rulez. Well a for those who are interested in how
it all works, this is the subject of this book.
same information.
Without having any idea about the internal
on an is-dos device, and even more so
without knowing all the subtleties of programming
under it, I acted purely intuitively.
The assembly address was taken by analogy
with the first .com file that comes to hand,
all registers were saved on the stack before
start and were removed back upon return
grooming. How neither strange, but all this
the design worked.
However, ignorance of is-dos had its consequences
Yes: if when you first start everything works
smoothly, then when you try to launch start.com
from already loaded is-dos lead to non-
big glitches. For the system itself this is not
scary - I can guarantee that this is...
setting up is-dos will not spoil the data on your
our disk.
Below is the source code start.com with co-
comments on the text. The source was written
in ALASM and therefore they use specific
logical for this editor DISP command and
INCLUDE. Three effectsthere were screen blankings
taken by me from ZX-REVIEW (it was a long time ago - since
with difficulty I remember!). Exactly that's why I don't
began to give comments on them. Yes, and
mi you can safely replace the cleaning effects
thread on yours. In the appendix to the magazine there is
shown below source in the format
ZX-WORD, from which is not difficult get
text in any assembler format.
Understand and enjoy....
ORG 30000
DISP 24000
PUSH AF
XOR A
OUT (#FE).A;Сохраняем
PUSH BC ;абсолютно все
PUSH DE ;регистры на
PUSH HL ;стеке
EXX ;исключительно PUSH HL ;на случай
PUSH DE ;атомной
PUSH BC ;войны!
EX AF.AF' ;
PUSH AF ;
PUSH IX ;
PUSH IY ;
CALL EFFECT ; Вызываем САМУ
; процедуру.....
POP IY ; Ну а раз мы
POP IX ; сохранили на
POP AF ; стеке все
EX AF.AF' ; регистры,
POP BC ; то не грех
POP DE ; их оттуда
POP HL ; и извлечь перед
EXX ; выходом!
POP HL ;
POP DE ;
POP BC ;
POP AF ;
RET
EFFECT DI ;
LD HL.#S800 ;"Зачерняем"
LD DE.#S80l ; экран
LD BC.767 ; LD (HL).L ;
LDIR ;
LD A.R ;Пользуясь
AND #l ; регистром R
CP 0 ; выбираем
CALL Z.PICTURl ; один из двух
CP l ;упакованных
CALL Z.PICTUR2 ;экранов.
LD HL.0 ;Эта хитрая
PUSH HL ;конструкция
PUSH HL ;призвана
POP DE ;обеспечить
POP BC ;необходимую
LDIR ;задержку
LDIR ;для успешного
LDIR ;рассмотрения
LDIR ;появившейся
LDIR ;на экране
LDIR ;картинки....
EI
NETO LD A.R ;Снова пользуя
AND #03 ;R,мы "случайно"
CP 3 ;выбираем один
JR Z.NETO ;из вариантов
CP 0 ;гашения экрана
JP Z.TERMl ;и переходим к
CP l ;выбранной
JP Z.POGAS ;процедуре.
JP RADUGA ;
POGAS CALL C4
LD DE.0
LD B.#l4
C2 PUSH BC
LD HL.#4000
C3 LD A.(DE)
AND (HL)
LD (HL).A
INC DE
INC HL
LD A.H
CP #S8
JR NZ.C3
EX DE.HL
LD BC.#l770
AND A
SBC HL.BC
EX DE.HL
POP BC
DJNZ C2
LD C.7
CALL C6
RET
C4 LD HL.#S800
CS LD (HL).6
INC HL
LD A.H
CP #SB
JR NZ.CS
RET
C6 LD HL.#S800
C7 LD (HL).C
INC HL
LD A.H
CP #SB
JR NZ.C7
RET
:-----------------------------------------
: CLS SCREEN - RADUGA
:-----------------------------------------
RADUGA LD E.#F8
L637S CALL L6380
HALT
INC E
LD A.E
CP #78
JR NZ.L637S
RET
L6380 PUSH DE
PUSH AF
LD D.0
L6384 PUSH DE
LD A.#47
L6387 CALL L639C
DEC E
DEC A
CP #3F
JP NZ.L6387
POP DE
DEC E
INC D
LD A.D
CP 24
JR NZ.L6384
POP AF
POP DE
RET
L639C EX AF.AF'
LD A.E
CP 32 JR NC.LбЗBD
LD A.D
CP #l8
JR NC.LбЗBD
PUSH HL
LD HL.#S800
SRL D
RR L
SRL D
RR L
SRL D
RR L
ADD HL.DE
LD D.A
EX AF.AF'
LD (HL).A
POP HL
RET
LбЗBD EX AF.AF'
RET
:-----------------------------------------
: CLS SCREEN FROM TERMINATOR2
:-----------------------------------------
TERMl LD B.7
L4 HALT
LD HL.lSOO0
L0 DEC HL
LD A.L
OR H
JR NZ.L0
LD HL.22S28
L3 LD A.(HL)
AND S6
JR Z.Ll
SUB 8
Ll LD C.A
LD A.(HL)
AND 7
JR Z.L2
DEC A
L2 OR C
LD (HL).A
INC HL
LD A.H
CP 9l
JR NZ.L3
DJNZ L4
RET
PICTURl INCBIN "scrl"
PICTUR2 INCBIN "scr2"
P.S. Совсем забыл! В is-dos есть буфер на
насколько десятков нажатий на клавиши. Во
время наслаждения цветной картикой и
процессом её исчезания, вы можете нажать
серию клавиш, которые подействуют сразу
после возвращения в систему. Так,например,
мне удаётся"blind" call user
personal menu (2), select item
"Recover RAM DISK" (five times "cursor
down" + ENTER) and after expanding RAM
DISK go to another panel ("cursor
left"). On in fact, clicks can
be even more and they will all be remembered!
P.P.S. This article was written back in
February of this year and initially
assigned for electronicmagazine
ODYSSEY from Armavir. However, another
measures of this magazine for some reason before
has not yet been born. Well, so as not to
waste of the finished material...
-===========================-
* * * * *
Share your thoughts about the article