@Alertoso

Как можно модифицировать авиа радар?

Делаю 7 лабу по ассемблеру на график, набросал авиа радар, как можно сделать, чтобы показывалось случайное число точек, причем точки движутся и их видно только когда по ним проходит луч радара?
org 100h
mov  ax,13h
int  10h
 
;очищаем видеобуффер
mov  di,screen
mov  cx,16000
xor  eax,eax
rep  stosd
 
push 0A000h
pop  es
 
;устанавливаем палитру (63 градации зелёного)
mov  cx,127
@@:mov  dx,3C8h
   mov  ax,cx
   out  dx,al
   inc  dx
   xor  al,al
   out  dx,al
   cmp  cx,63
   cmc
   sbb  ax,ax
   or   ax,cx
   out  dx,al
   xor  al,al
   out  dx,al
loop @b
 
fldz
main:fadd    [x]
     fld     st0
     fsincos
     fmul    [aspectratio] ;чтобы получился круг нужно учитывать отношение высоты к ширине (240/320=0.75)
     fxch    st1
 
     ;рисуем линию
     fldz
     fldz
     mov  cx,120
     @@:fadd st0,st2
        fist word[esp-4]
        fxch st1
        fadd st0,st3
        fist word[esp-2]
        fxch st1
        imul di,[esp-2],320
        add  di,[esp-4]
        mov  byte[screen+di+32160],63
         
     mov  si,6304
     cmp  di,-6304
        jne  skip
        
     mov  word[screen+di+32160+320],7F7Fh
         mov  dword[screen+di+32160+639],7F7F7F7Fh
         mov  dword[screen+di+32160+959],7F7F7F7Fh
         mov  word[screen+di+32160+1280],7F7Fh
      loop @b
;   jne skip        
     mov  word[screen+si+32160+320],7f7Fh
         mov  dword[screen+si+32160+639],7f7F7F7Fh
         mov  dword[screen+si+32160+959],7f7F7F7Fh
         mov  word[screen+si+32160+1280],7f7Fh
        skip:
    loop @b
 
    fstp st0
    fstp st0
    fstp st0
    fstp st0
 
    ;затухание цвета
    mov  di,63999
  @@:sub  byte[screen+di],1
       adc  byte[screen+di],0
       dec  di
  jne @b
 
    ;ожидание обратного вертикального хода луча
    mov  dx,3DAh
    @@:in   al,dx
       test al,8
    je @b
 
    ;копируем видеобуффер на экран
    mov  si,screen
    xor  di,di
    mov  cx,16000
    rep  movsd
 
    ;если нажат escape - выход
    in   al,60h
    dec  al
jne main
 
ret
x           dd 0.007
aspectratio dd 0.75
screen:
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы