home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 July
/
Chip_1998-07_cd.bin
/
ctenari
/
Labyrint
/
DATA
/
FREE
/
SVATEK.RAR
/
SVATEK.O1
< prev
next >
Wrap
Text File
|
1994-09-12
|
20KB
|
759 lines
.model tiny
.code
org 100h
start:
mov ah, 2ah ; cti systemove datum
int 21h
; ulozeni soucasneho data
mov sden, dl ; den
mov smesic, dh ; mesic
mov srok, cx ; rok
; datum na zjisteni svatku
mov ndent, al ; den v tydnu
mov nden, dl ; den
mov nmesic, dh ; mesic
mov nrok, cx ; rok
mov ah, 2fh ; cti pocatek DTA
int 21h
mov al, byte ptr es:[bx] ; al - delka parametru
cmp al, 0 ; zjisti je-li parametr
je preved ; neni-li jdi az na prevod
; je-li, tak ho preved na datum
mezery:
inc bx ; posun na prvni znak parametru
mov dl, byte ptr es:[bx] ; je-li znak mezera, tak jeste nejsem na datumu
cmp dl, 20h
je mezery
sub dl, 30h ; Ord(znak v dl)
cmp byte ptr es:[bx+1], 2eh ; je-li nasledujici znak . pak mame den
jne den2
mesic:
mov nden, dl ; nyni mame v nden den
inc bx
inc bx ; posun na 1 znak mesice
mov dh, byte ptr es:[bx] ; do dh znak na pozici es:[bx]
sub dh, 30h ; Ord(znak v dh)
cmp byte ptr es:[bx+1], 2eh ; je-li nasledujici znak . pak mame mesic
jne mesic2
rok:
mov nmesic, dh ; nyni mame v nmesic mesic
inc bx
inc bx ; posun na 1 znak roku
sub byte ptr es:[bx], 30h ; Ord(znak na pozici es:[bx])
sub byte ptr es:[bx+1], 30h ; Ord(znak na pozici es:[bx+1])
sub byte ptr es:[bx+2], 30h ; Ord(znak na pozici es:[bx+2])
sub byte ptr es:[bx+3], 30h ; Ord(znak na pozici es:[bx+3])
mov cl, byte ptr es:[bx]
xor ch, ch
mov bp, dx
mov ax, 3e8h
mul cx ; * 1000
mov cx, ax ; v cx nyni prvni cifra roku * 1000
mov ax, 64h
mul byte ptr es:[bx+1] ; * 100
add cx, ax ; do cx nyni pridana 2. cifra roku * 100
mov ax, 0ah
mul byte ptr es:[bx+2] ; * 10
add cx, ax ; do cx nyni pridana 3. cifra roku * 10
mov al, byte ptr es:[bx+3]
xor ah, ah
add cx, ax ; a konecne i posledni cifra
mov nrok, cx
mov dx, bp
mov ah, 2bh ; nastavime systemove datum,
int 21h ; abychom zjistili den v tydnu
cmp al, 0ffh
jne zjisti
jmp konec
preved: ; at ten bordel vali
mov ah, 2
mov dl, 'V'
int 21h
mov al, ndent
cmp al, 3
je ve
cmp al, 4
je ve
jmp v
den2: ; neprehledno, ale jump by nebyl near
mov al, 0ah
mul dl ; * 10
mov dl, al
mov cl, byte ptr es:[bx+1] ; do cl znak na pozici es:[bx+1]
sub cl, 30h ; Ord(znak v cl)
add dl, cl ; 1. cifra * 10 + 2. cifra
inc bx
jmp mesic
mesic2:
mov al, 0ah
mul dh ; * 10
mov dh, al
mov cl, byte ptr es:[bx+1] ; do cl znak na pozici es:[bx+1]
sub cl, 30h ; Ord(znak v cl)
add dh, cl
inc bx
jmp rok
zjisti:
dec ah
int 21h ; zjistime den v tydnu
mov byte ptr ndent, al ; a ulozime ho do ndent
jmp zpet
ve:
mov dl, 'e'
int 21h
v:
mov dl, 20h
int 21h
mov al, ndent
cmp al, 6 ; sobota
jl d1
mov dx, offset sobo
jmp den
zpet: ; zase jeden bordel, ale zase kvuli jumpu
inc ah
mov dl, sden
mov dh, smesic
mov cx, srok
int 21h ; a dame systemove datum pekne nazpet
jmp preved
d1:
cmp al, 5 ; patek
jl d2
mov dx, offset pate
jmp den
d2:
cmp al, 4 ; ctvrtek
jl d3
mov dx, offset ctvr
jmp den
d3:
cmp al, 3 ; streda
jl d4
mov dx, offset stre
jmp den
d4:
cmp al, 2 ; utery
jl d5
mov dx, offset uter
jmp den
d5:
cmp al, 1 ; pondeli
jl d6
mov dx, offset pond
jmp den
d6:
mov dx, offset nede ; nedele
den:
mov ah, 9h
int 21h ; vypise den
mov ah, 2
mov dl, ' '
int 21h
mov dl, nden ; v dl mame nas den
mov al, dl
mov dh, 0ah
xor ah, ah
div dh ; / 10, v al jsou desitky dni
; v ah zbytek dni
add ax, 3030h ; povisime z cisla na znak
mov dx, ax
mov ah, 2
cmp dl, 30h ; byl-li den jednomistny piseme jen jednu cifru
je pisden
int 21h ; vypis 1. znak dne
pisden:
mov dl, dh
int 21h ; vypis 2. znaku dne
mov dl, '.'
int 21h ; vypise tecku
; --- jeste mezerku
mov dl, ' '
int 21h ; vypise tecku
; ------
mov ah, 9h
mov al, nmesic ; v al mam nas mesic
cmp al, 0ch ; prosinec
jl m1
mov dx, offset pros
jmp mes
m1:
cmp al, 0bh ; listopad
jl m2
mov dx, offset list
jmp mes
m2:
cmp al, 0ah ; rijen
jl m3
mov dx, offset rije
jmp mes
m3:
cmp al, 9 ; zari
jl m4
mov dx, offset zari
jmp mes
m4:
cmp al, 8 ; srpen
jl m5
mov dx, offset srpe
jmp mes
m5:
cmp al, 7 ; cervenec
jl m6
mov dx, offset cnec
jmp mes
m6:
cmp al, 6 ; cerven
jl m7
mov dx, offset cerv
jmp mes
m7:
cmp al, 5 ; kveten
jl m8
mov dx, offset kvet
jmp mes
m8:
cmp al, 4 ; duben
jl m9
mov dx, offset dube
jmp mes
m9:
cmp al, 3 ; brezen
jl m10
mov dx, offset brez
jmp mes
m10:
cmp al, 2 ; unor
jl m11
mov dx, offset unor
jmp mes
m11:
mov dx, offset lede ; leden
mes:
int 21h ; vypise mesic
add dx, 0ah
mov bp, dx
mov ah, 2
mov dl, 20h
int 21h ; pridame mezeru
add dx, 0ah
mov bx, dx ; bx nyni offset 1. svatku v mesici
mov ax, nrok ; trosku zmatku, ale rok vypsat musim
mov cx, 64h
xor dx, dx
div cx ; / 100, ziskame 1. a 2. dve cifry
mov es, dx ; do es 1. dve cifry
mov cl, 0ah
div cl ; / 10 , ziskame cifry zvlast
add ax, 3030h ; a povysime na znaky
mov dx, ax
mov ah, 2h
int 21h
mov dl, dh
int 21h ; a konecne vypiseme
mov ax, es
mov cl, 0ah
div cl ; rozdelime je na desitky a jednotky
add ax, 3030h ; a povysime na znaky
mov dx, ax
mov ah, 2h
int 21h
mov dl, dh
int 21h ; a konecne vypiseme zbytek
; --- tady ne
; mov ah, 9
; mov dx, offset txt
; int 21h ; na dalsi radek + textik
; --------
mov al, 0dh
xor ah, ah
mov bl, nden
dec bl
mul bl ; v ax kolik pripocist k offsetu abych byl dobre
mov dx, bp
add dx, ax
mov bx, dx
mov cl, byte ptr ds:[bx]
; --- zmena
cmp cl, 20h
je pis_nema ; nema nikdo svatek
cmp cl, '*'
jne pis_ma
mov dx,word ptr ds:[bx+11] ; nepis svatek, ale vyznamny den
jmp short svatek
pis_ma:
push dx
mov ah, 9
mov dx, offset txt
int 21h ; napis ma svatek
pop dx
jmp short svatek
pis_nema:
mov dx, offset nema
; ----------
svatek:
mov ah, 09h
int 21h
mov ah, 02h
mov dl, 0ah
int 21h
mov dl, 0dh
int 21h ; a enter
konec:
mov ax, 4c00h
int 21h
sden db ?
smesic db ?
srok dw ?
ndent db ?
nden db ?
nmesic db ?
nrok dw ?
nema db ' nemá nikdo svátek.$'
txt db ' má svátek $'
nede db 'ned╪li$'
pond db 'pond╪lí$'
uter db 'úter∞$'
stre db 'st²edu$'
ctvr db 'ƒtrvtek$'
pate db 'pátek$'
sobo db 'sobotu$'
lede db 'ledna$ '
db '* $' ; novy rok
dw offset dv_novy
db 'Karina $'
db 'Radmila $'
db 'Diana $'
db 'Dalimil $'
db '* $' ; tri kralove
dw offset dv_trik
db 'Vilma $'
db '¼estmír $'
db 'Vladan $'
db 'B²etislav $'
db 'Bohdana $'
db 'Pravoslav $'
db 'Edita $'
db 'Radovan $'
db 'Alice $'
db 'Ctirad $'
db 'Drahoslav $'
db 'Vladislav $'
db 'Doubravka $'
db 'Ilona $'
db 'Bela $'
db 'Slavomír $'
db 'Zden╪k $'
db 'Milena $'
db 'Miloτ $'
db 'Zora $'
db 'Ingrid $'
db 'Ot∞lie $'
db 'Zdislava $'
db 'Robin $'
db 'Marika $'
unor db 'února$ '
db 'Hynek $'
db 'Nela $'
db 'Blaºej $'
db 'Jarmila $'
db 'Dobromila $'
db 'Vanda $'
db 'Veronika $'
db 'Milada $'
db 'Apolena $'
db 'Mojmír $'
db 'Boºena $'
db 'Slav╪na $'
db 'V╪nceslav $'
db 'Valent∞n $'
db 'Ji²ina $'
db 'Ljuba $'
db 'Miloslava $'
db 'Gizela $'
db 'Patrik $'
db 'Old²ich $'
db 'Lenka $'
db 'Petr $'
db 'Svatopluk $'
db 'Mat╪j $'
db ' $'
db 'Dora $'
db 'Alexandr $'
db 'Lumír $'
db 'Albín $'
brez db 'b²ezna$ '
db 'Bed²ich $'
db 'Aneºka $'
db 'Kamil $'
db 'Stela $'
db 'Kazimír $'
db 'Miroslav $'
db 'Tomáτ $'
db 'Gabriela $'
db 'Frantiτka $'
db 'Viktorie $'
db 'And╪la $'
db 'Rehor $'
db 'Ràºena $'
db 'Matylda $'
db 'Ida $'
db 'Amos $'
db 'Vlastimil $'
db 'Eduard $'
db 'Josef $'
db 'Sv╪tlana $'
db 'Radek $'
db 'Leona $'
db 'Ivona $'
db 'Gabriel $'
db 'Marian $'
db 'Emanuel $'
db 'Dita $'
db 'Soσa $'
db 'Ta£ána $'
db 'Arnoτt $'
db 'Kvído $'
dube db 'dubna$ '
db 'Hugo $'
db 'Erika $'
db 'Richard $'
db 'Ivana $'
db 'Miroslava $'
db 'Vendula $'
db 'Herman $'
db 'Ema $'
db 'Duτan $'
db 'Darja $'
db 'Izabela $'
db 'Julius $'
db 'Aleτ $'
db 'Vincenc $'
db 'Anastázie $'
db 'Irena $'
db 'Rudolf $'
db 'Valerie $'
db ' $'
db ' $'
db 'Alexandra $'
db 'Evºenie $'
db 'Vojt╪ch $'
db 'Ji²í $'
db 'Marek $'
db 'Oto $'
db 'Jaroslav $'
db 'Vlastislav $'
db 'Robert $'
db 'Blahoslav $'
kvet db 'kv╪tna$ '
db ' $'
db 'Zikmund $'
db 'Alexej $'
db 'Kv╪toslav $'
db ' $'
db 'Radoslav $'
db 'Stanislav $'
db 'Ctibor $'
db ' $'
db 'Blaºena $'
db 'Svatava $'
db 'Pankrác $'
db 'Servác $'
db 'Bonifác $'
db 'ªofie $'
db 'Premysl $'
db 'Aneta $'
db 'Nataτa $'
db 'Ivo $'
db 'Zbyτek $'
db 'Monika $'
db 'Emil $'
db 'Vladimír $'
db 'Jana $'
db 'Viola $'
db 'Filip $'
db 'Valdemar $'
db 'Vilém $'
db 'Maxim $'
db 'Ferdinand $'
db 'Kamila $'
cerv db 'ƒervna$ '
db 'Laura $'
db 'Jarmil $'
db 'Tamara $'
db 'Dalibor $'
db 'Dobroslav $'
db 'Norbert $'
db 'Iveta $'
db 'Medard $'
db 'Stanislava $'
db 'Gita $'
db 'Flora $'
db 'Antonie $'
db 'Antonín $'
db 'Vasil $'
db 'Vít $'
db 'Zbyn╪k $'
db 'Adolf $'
db 'Milan $'
db 'Leoτ $'
db 'Kv╪ta $'
db 'Alois $'
db 'Pavla $'
db 'Zdeσka $'
db 'Jan $'
db 'Ivan $'
db 'Adriana $'
db 'Ladislav $'
db 'Lubomír $'
db 'Petr a Pavel$'
db 'µárka $'
cnec db 'ƒervence$ '
db 'Jaroslava $'
db 'Patricie $'
db 'Radomír $'
db 'Prokop $'
db 'Cyril $'
db ' $'
db 'Bohuslava $'
db 'Nora $'
db 'Drahoslava $'
db 'Libuτe $'
db 'Olga $'
db 'Borek $'
db 'Markéta $'
db 'Karolína $'
db 'Jind²ich $'
db 'Luboτ $'
db 'Martina $'
db 'Drahomíra $'
db '¼enek $'
db 'Ilja $'
db 'Vít╪zslav $'
db 'Magdalena $'
db 'Libor $'
db 'Krist∞na $'
db 'Jakub $'
db 'Anna $'
db 'V╪roslav $'
db 'Viktor $'
db 'Marta $'
db 'Bo²ivoj $'
db 'Ignác $'
srpe db 'srpna$ '
db 'Oskar $'
db 'Gustav $'
db 'Miluτe $'
db 'Dominik $'
db 'Milivoj $'
db 'Old²iτka $'
db 'Lada $'
db 'Sob╪slav $'
db 'Roman $'
db 'Vav²inec $'
db 'Zuzana $'
db 'Klára $'
db 'Alena $'
db 'Alan $'
db 'Hana $'
db 'Jáchym $'
db 'Petra $'
db 'Helena $'
db 'Ludvík $'
db 'Bernard $'
db 'Johana $'
db 'Bohuslav $'
db 'Sandra $'
db 'Bartolom╪j $'
db 'Radim $'
db 'Lud╪k $'
db 'Otakar $'
db 'August∞n $'
db ' $'
db 'µt╪pán $'
db 'Pavlína $'
zari db 'zá²í$ '
db 'Linda $'
db 'Adela $'
db 'Bronislav $'
db 'Jind²iska $'
db 'Boris $'
db 'Boleslav $'
db 'Regina $'
db 'Mariana $'
db 'Daniela $'
db 'Irma $'
db 'Denisa $'
db 'Marie $'
db 'Lubor $'
db 'Radka $'
db 'Jolana $'
db 'Ludmil $'
db 'Nadeºda $'
db 'Kryτtof $'
db 'Zita $'
db 'Oleg $'
db 'Matouτ $'
db 'Darina $'
db 'Berta $'
db 'Jaromír $'
db 'Zlata $'
db 'Andrea $'
db 'Jonas $'
db 'Václav $'
db 'Michal $'
db 'Jeron∞m $'
rije db '²íjna$ '
db 'Igor $'
db 'Galina $'
db 'Bohumil $'
db 'Frantiτek $'
db 'Eliτka $'
db 'Hanus $'
db 'Sergej $'
db 'V╪ra $'
db 'µtefan $'
db 'Marina $'
db 'Andrej $'
db 'Marcel $'
db 'Renata $'
db ' $'
db 'Tereza $'
db 'Havel $'
db 'Hedvika $'
db 'Lukáτ $'
db 'Michaela $'
db 'Vendelín $'
db 'Brigita $'
db 'Sabina $'
db 'Teodor $'
db 'Nina $'
db 'Beata $'
db 'Erik $'
db 'Zoja $'
db ' $'
db 'Silvie $'
db 'Tadeáτ $'
db 'µt╪pánka $'
list db 'listopadu$'
db 'Felix $'
db ' $'
db 'Hubert $'
db 'Karel $'
db 'Miriam $'
db 'Libena $'
db ' $'
db 'Bohumir $'
db 'Bohdan $'
db 'Evºen $'
db 'Martin $'
db 'Benedikt $'
db 'Tibor $'
db 'Sava $'
db 'Leopold $'
db 'Otmar $'
db 'Mahulena $'
db 'Romana $'
db 'Alºb╪ta $'
db 'Nikola $'
db 'Albert $'
db 'Cecílie $'
db 'Klement $'
db 'Emilie $'
db 'Kate²ina $'
db 'Artur $'
db 'Xénie $'
db 'René $'
db 'Zina $'
db 'Ond²ej $'
pros db 'prosince$ '
db 'Iva $'
db 'Blanka $'
db 'Svatoslav $'
db 'Barbora $'
db 'Jitka $'
db 'Mikuláτ $'
db 'Anbroz $'
db 'Kv╪toslava $'
db 'Vratislav $'
db 'Julie $'
db 'Dana $'
db 'Simona $'
db 'Lucie $'
db 'Lydie $'
db 'Radana $'
db 'Albina $'
db 'Daniel $'
db 'Miloslav $'
db 'Ester $'
db 'Dagmar $'
db 'Natálie $'
db 'Simon $'
db 'Vlasta $'
db 'Adam a Eva $'
db '* ' ; 1.svatek vanocni
dw offset dv_1vano
db '* ' ; 2.svatek vanocni
dw offset dv_2vano
db 'Zaneta $'
db 'Bohumila $'
db 'Judita $'
db 'David $'
db 'Silvestr $'
dv_novy db ' je Nov∞ rok.$'
dv_trik db ' jsou T²i králové.$'
dv_1vano db ' je 1. svátek vánoƒní.$'
dv_2vano db ' je 2. svátek vánoƒní.$'
end start