Assembler - práce se soubory a grafikou

Kategorie >>Programování>> Assembler - práce se soubory a grafikou


.286
.model large,PASCAL
.code
JUMPS            ;automaticky generuje misto napr jnz,coz je near jmp navesti a far jmp
            ;nemusi se to rozepisovat
.stack 1024
.data

include _def.inc

;include _test.inc
;include _DODELAT.INC


;tyto promenny nejsou ani v _def.inc. Je mozne je kdykoliv menit a pouzivat misto registru

pom_cas        dw       0
pom_byte       db       0
pom_word       dw       0
Pom_dup        db 64000  dup (?)   ;i pro obr. pamet
;Pom_dup2           db 1024*16 dup (?)   ;i pro obr. pamet
pom_boolean       dw       0
pom_adr        dw       0

Circle_Rval   DW  ?
Circle_X1     DW  ?
Circle_Y1     DW  ?

mP    db 0



.code



start:
jmp zacatek
include _graph.inc
include _text.inc
INCLUDE _SYS.INC
include _proc.inc
include _file.inc

;______________________________________________________________________________________________


                                                                                                                            ;--------------------------------------------
;--------------------------------------------
;--------------------------------------------
;--------------------------------------------
;--------------------------------------------
;--------------------------------------------
;--------------------------------------------
;--------------------------------------------





;--------------------------------------------






;--------------------------------------------



Copy_Video_Mem         Macro policko,kolik_byte
      PushA
    mov cx,kolik_byte
    mov si,0a000h
    mov ds,si
    xor si,si


    mov di,@data
    mov es,di
    mov di,offset policko
    rep movsb     ; z DS:SI -> ES:DI; opakoj CX krat
     PopA
endM

;--------------------------------------------
Paste_Video_Mem       Macro policko,kolik_byte
      PushA
    mov cx,kolik_byte
    mov di,0a000h
    mov es,di
    xor di,di


    mov si,@data
    mov ds,si
    mov si,offset policko
    rep movsb     ; z DS:SI -> ES:DI; opakoj CX krat
     PopA
endM






;--------------------------------------------

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
;*************************************************


zacatek:

    printS_endln Txt_nazev
    pause
CALL BEEP

    getvideomode    ;ve video_mode vysledek 1

    call STARTmouse
    init_320x200
     mouse_stat   m_xp,m_Yp,m_b
;        get_m_pozadi m_xp,m_yp
 ;       SET_M_CURSOR m_xp,m_yp
set_m_xy 100,100

        get_pixel m_xp,m_yp,Mp
xchg ax,cx
pause
       pixel m_xp,m_yp,5


  @myska:

       mouse_stat   m_x,m_y,m_b
                 cmp m_b,1
                 je @vyskok ;pokud zmackl button
     mov ax,m_xp
     mov bx,m_yp

     cmp ax,m_x
     jne @delej

     cmp bx,m_y
     jne @delej

     jmp @preskok

    @delej:
;        SET_M_pozadi m_xp,m_yp
;         pixel m_xp,m_yp,mP
      mov m_xp,ax
      mov m_yp,bx
;         get_pixel m_x,m_y,mp
;         pixel m_x,m_y,4
     circle m_x,m_y,3,4
 ;       get_m_pozadi m_x,m_y
  ;      SET_M_CURSOR m_x,m_y
 ;        call beep
     @preskok:


  jmp @myska
   @vyskok:

create_openF file_01,f_handle01
copy_All_video_mem pom_dup
Block_write pom_dup,64000,f_handle01,f_IORES ;zapis do souboru
close_File f_handle01,f_iores


    init_text_mode



    endln


    endln

;***************************************************************************
konec:
mov ah, 4ch    ;ukonceni programu a navrat zpet do systemu
int 21h
       end start






Vloženo: 15.04.2011 00:44
Přečteno:2531
Autor: David Mizera

Hlasů: 1 Hodnocení(jako ve škole): 5
 

Komentáře (0)

   -     Nový Komentář