home *** CD-ROM | disk | FTP | other *** search
- .386
- crs segment use16
- assume es:crs,cs:crs,ss:crs,ds:crs
- org 100h
- all:
-
- mov al,13h
- int 10h
- ;dodela sinusovou tabulku
- mov si,offset sine+10h
- mov bx,si
- mov cl,10h
- @2kvadrant:
- dec si
- mov al,ds:[si]
- mov ds:[bx],al
- inc bx
- loop @2kvadrant
- mov cl,20h
- @3a4kvadrant:
- lodsb
- neg al
- mov ds:[bx],al
- inc bx
- loop @3a4kvadrant
- push 0A000h
- pop es
- push 0040h
- pop fs
- @main:
- mov si,006Ch
- mov ah,fs:[si]
- @tick0:
- cmp ah,fs:[si]
- je @tick0
- ;nakresli vrchni caru
- inc bx
- and bx,3Fh
- mov si,offset sine
- mov cl,80h
- sub cl,ds:[si+bx]
- mov al,29
- mov di,136*320
- rep stosb
- mov al,22
- mov cl,0Fh
- rep stosb
- mov al,bl
- and al,00000100b
- add al,22
- stosb
- stosb
- mov al,22
- mov cl,0Fh
- rep stosb
- mov cx,137*320
- sub cx,di
- mov al,29
- rep stosb
- ;nakresli zbyvajici cary
- push ds
- push es
- pop ds
- mov di,199*320
- mov cl,63
- @cary:
- push cx
- push di
- mov si,di
- mov cx,320
- sub si,cx
- rep movsb ;skopiruje radku
- or byte ptr ds:[si],0
- jz @cary9
- mov ah,22
- @l1:
- lodsb
- cmp ah,al
- jne @l1
- mov ds:[si-3],ah
- mov ds:[si-2],ah
- add si,310
- @l2:
- mov al,ds:[si]
- dec si
- cmp ah,al
- jne @l2
- mov ds:[si+2],ah
- mov ds:[si+3],ah
- @cary9:
- pop di
- sub di,320
- pop cx
- loop @cary
- pop ds
- ;vykresli prvni radek hvezd
- xor di,di
- push bx
- mov bx,319
- @hvezdy1:
- mov ah,0
- in al,40h
- cmp al,248
- jb @hvezdy2
- mov ah,al
- and ah,0Fh
- or ah,10h
- @hvezdy2:
- mov es:[bx],ah
- dec bx
- jnz @hvezdy1
- pop bx
- push ds
- push es
- pop ds
- xor ah,ah
- mov cl,135
- mov di,135*320
- @hvezdyscroll:
- mov si,di
- push cx
- mov cx,320
- sub si,cx
- dec si
- in al,40h
- and al,3
- add si,ax
- rep movsb
- sub di,640
- pop cx
- loop @hvezdyscroll
- pop ds
- ;ceka na Escape a kdyz je stisknut, tak skonci
- in al,60h
- dec al
- jnz @main
- int 16h
- mov ah,12h
- mov bl,33h
- int 10h
- retn
-
- sine db 000h,003h,006h,009h,00Ch,00Eh,011h,013h,015h,017h,019h,01Bh,01Ch,01Dh,01Eh,01Eh
-
- crs ends
- end all
-