home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 July
/
Chip_1998-07_cd.bin
/
ctenari
/
Labyrint
/
DATA
/
FREE
/
SVATEK.RAR
/
SVATEK.O0
< prev
next >
Wrap
Text File
|
1993-04-05
|
19KB
|
727 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
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
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]
cmp cl, 20h
jne svatek ; nema-li nikdo svatek, pak jiny text
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 8,8,8,8,8,8,8,8,8,8,'nema svatek nikdo.$'
txt db ' ma svatek $'
nede db 'nedeli$'
pond db 'pondeli$'
uter db 'utery$'
stre db 'stredu$'
ctvr db 'ctrvtek$'
pate db 'patek$'
sobo db 'sobotu$'
lede db 'ledna$ '
db ' $' ; novy rok
db 'Karina $'
db 'Radmila $'
db 'Diana $'
db 'Dalimil $'
db ' $' ; tri kralove
db 'Vilma $'
db 'Cestmir $'
db 'Vladan $'
db 'Bretislav $'
db 'Bohdana $'
db 'Pravoslav $'
db 'Edita $'
db 'Radovan $'
db 'Alice $'
db 'Ctirad $'
db 'Drahoslav $'
db 'Vladislav $'
db 'Doubravka $'
db 'Ilona $'
db 'Bela $'
db 'Slavomir $'
db 'Zdenek $'
db 'Milena $'
db 'Milos $'
db 'Zora $'
db 'Ingrid $'
db 'Otylie $'
db 'Zdislava $'
db 'Robin $'
db 'Marika $'
unor db 'unora$ '
db 'Hynek $'
db 'Nela $'
db 'Blazej $'
db 'Jarmila $'
db 'Dobromila $'
db 'Vanda $'
db 'Veronika $'
db 'Milada $'
db 'Apolena $'
db 'Mojmir $'
db 'Bozena $'
db 'Slavena $'
db 'Venceslav $'
db 'Valentyn $'
db 'Jirina $'
db 'Ljuba $'
db 'Miloslava $'
db 'Gizela $'
db 'Patrik $'
db 'Oldrich $'
db 'Lenka $'
db 'Petr $'
db 'Svatopluk $'
db 'Matej $'
db ' $'
db 'Dora $'
db 'Alexandr $'
db 'Lumir $'
db 'Albin $'
brez db 'brezna$ '
db 'Bedrich $'
db 'Anezka $'
db 'Kamil $'
db 'Stela $'
db 'Kazimir $'
db 'Miroslav $'
db 'Tomas $'
db 'Gabriela $'
db 'Frantiska $'
db 'Viktorie $'
db 'Andela $'
db 'Rehor $'
db 'Ruzena $'
db 'Matylda $'
db 'Ida $'
db 'Amos $'
db 'Vlastimil $'
db 'Eduard $'
db 'Josef $'
db 'Svetlana $'
db 'Radek $'
db 'Leona $'
db 'Ivona $'
db 'Gabriel $'
db 'Marian $'
db 'Emanuel $'
db 'Dita $'
db 'Sona $'
db 'Tatana $'
db 'Arnost $'
db 'Kvido $'
dube db 'dubna$ '
db 'Hugo $'
db 'Erika $'
db 'Richard $'
db 'Ivana $'
db 'Miroslava $'
db 'Vendula $'
db 'Herman $'
db 'Ema $'
db 'Dusan $'
db 'Darja $'
db 'Izabela $'
db 'Julius $'
db 'Ales $'
db 'Vincenc $'
db 'Anastazie $'
db 'Irena $'
db 'Rudolf $'
db 'Valerie $'
db ' $'
db ' $'
db 'Alexandra $'
db 'Evzenie $'
db 'Vojtech $'
db 'Jiri $'
db 'Marek $'
db 'Oto $'
db 'Jaroslav $'
db 'Vlastislav $'
db 'Robert $'
db 'Blahoslav $'
kvet db 'kvetna$ '
db ' $'
db 'Zikmund $'
db 'Alexej $'
db 'Kvetoslav $'
db ' $'
db 'Radoslav $'
db 'Stanislav $'
db 'Ctibor $'
db ' $'
db 'Blazena $'
db 'Svatava $'
db 'Pankrac $'
db 'Servac $'
db 'Bonifac $'
db 'Zofie $'
db 'Premysl $'
db 'Aneta $'
db 'Natasa $'
db 'Ivo $'
db 'Zbysek $'
db 'Monika $'
db 'Emil $'
db 'Vladimir $'
db 'Jana $'
db 'Viola $'
db 'Filip $'
db 'Valdemar $'
db 'Vilem $'
db 'Maxim $'
db 'Ferdinand $'
db 'Kamila $'
cerv db 'cervna$ '
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 'Antonin $'
db 'Vasil $'
db 'Vit $'
db 'Zbynek $'
db 'Adolf $'
db 'Milan $'
db 'Leos $'
db 'Kveta $'
db 'Alois $'
db 'Pavla $'
db 'Zdenka $'
db 'Jan $'
db 'Ivan $'
db 'Adriana $'
db 'Ladislav $'
db 'Lubomir $'
db 'Petr a Pavel$'
db 'Sarka $'
cnec db 'cervence$ '
db 'Jaroslava $'
db 'Patricie $'
db 'Radomir $'
db 'Prokop $'
db 'Cyril $'
db ' $'
db 'Bohuslava $'
db 'Nora $'
db 'Drahoslava $'
db 'Libuse $'
db 'Olga $'
db 'Borek $'
db 'Marketa $'
db 'Karolina $'
db 'Jindrich $'
db 'Lubos $'
db 'Martina $'
db 'Drahomira $'
db 'Cenek $'
db 'Ilja $'
db 'Vitezslav $'
db 'Magdalena $'
db 'Libor $'
db 'Kristyna $'
db 'Jakub $'
db 'Anna $'
db 'Veroslav $'
db 'Viktor $'
db 'Marta $'
db 'Borivoj $'
db 'Ignac $'
srpe db 'srpna$ '
db 'Oskar $'
db 'Gustav $'
db 'Miluse $'
db 'Dominik $'
db 'Milivoj $'
db 'Oldriska $'
db 'Lada $'
db 'Sobeslav $'
db 'Roman $'
db 'Vavrinec $'
db 'Zuzana $'
db 'Klara $'
db 'Alena $'
db 'Alan $'
db 'Hana $'
db 'Jachym $'
db 'Petra $'
db 'Helena $'
db 'Ludvik $'
db 'Bernard $'
db 'Johana $'
db 'Bohuslav $'
db 'Sandra $'
db 'Bartolomej $'
db 'Radim $'
db 'Ludek $'
db 'Otakar $'
db 'Augustyn $'
db ' $'
db 'Stepan $'
db 'Pavlina $'
zari db 'zari$ '
db 'Linda $'
db 'Adela $'
db 'Bronislav $'
db 'Jindriska $'
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 'Nadezda $'
db 'Krystof $'
db 'Zita $'
db 'Oleg $'
db 'Matous $'
db 'Darina $'
db 'Berta $'
db 'Jaromir $'
db 'Zlata $'
db 'Andrea $'
db 'Jonas $'
db 'Vaclav $'
db 'Michal $'
db 'Jeronym $'
rije db 'rijna$ '
db 'Igor $'
db 'Galina $'
db 'Bohumil $'
db 'Frantisek $'
db 'Eliska $'
db 'Hanus $'
db 'Sergej $'
db 'Vera $'
db 'Stefan $'
db 'Marina $'
db 'Andrej $'
db 'Marcel $'
db 'Renata $'
db ' $'
db 'Tereza $'
db 'Havel $'
db 'Hedvika $'
db 'Lukas $'
db 'Michaela $'
db 'Vendelin $'
db 'Brigita $'
db 'Sabina $'
db 'Teodor $'
db 'Nina $'
db 'Beata $'
db 'Erik $'
db 'Zoja $'
db ' $'
db 'Silvie $'
db 'Tadeas $'
db 'Stepanka $'
list db 'listopadu$'
db 'Felix $'
db ' $'
db 'Hubert $'
db 'Karel $'
db 'Miriam $'
db 'Libena $'
db ' $'
db 'Bohumir $'
db 'Bohdan $'
db 'Evzen $'
db 'Martin $'
db 'Benedikt $'
db 'Tibor $'
db 'Sava $'
db 'Leopold $'
db 'Otmar $'
db 'Mahulena $'
db 'Romana $'
db 'Alzbeta $'
db 'Nikola $'
db 'Albert $'
db 'Cecilie $'
db 'Klement $'
db 'Emilie $'
db 'Katerina $'
db 'Artur $'
db 'Xenie $'
db 'Rene $'
db 'Zina $'
db 'Ondrej $'
pros db 'prosince$ '
db 'Iva $'
db 'Blanka $'
db 'Svatoslav $'
db 'Barbora $'
db 'Jitka $'
db 'Mikulas $'
db 'Anbroz $'
db 'Kvetoslava $'
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 'Natalie $'
db 'Simon $'
db 'Vlasta $'
db 'Adam a Eva $'
db ' $' ; 1.svatek vanocni
db ' $' ; 2.svatek vanocni
db 'Zaneta $'
db 'Bohumila $'
db 'Judita $'
db 'David $'
db 'Silvestr $'
end start