viernes, 28 de mayo de 2010

Digitales III – Prof. Mendoza – 3ª Evaluación del Semestre 2006-I

Esta evaluación consistia en ir pintando los pixeles de la pantalla dependiendo del modo de video seleccionado y los colores del mismo, se desplazaba tanto con el teclado numerico y con las fechas de dirección.

Con el programa se podria copiar el estado actual de la pantalla (Ctrl+C), pegar ese estado en un momento determinado (Ctrl+V) y no recuerdo que hacia Ctrl+G

   1:                  .model small


   2:                  .stack 256h


   3:  ; ===================== SEGMENTO DE DATOS ====================


   4:                  .data


   5:  limitex         dw 639


   6:  limitey         dw ?


   7:  color           db ?


   8:  modo            db ?


   9:  posx            dw 0


  10:  posy            dw 0


  11:  menu            db 10,13


  12:                  db 10,13


  13:                  db 10,13


  14:                  db "                        * Modos Graficos",10,13


  15:                  db "                          ==============",10,13


  16:                  db 10,13


  17:                  db 10,13


  18:                  db "                            F1. 320 x 200",10,13


  19:                  db "                            F2. 640 x 480",10,13


  20:                  db "                            F3. 640 x 200",10,13


  21:                  db 10,13


  22:                  db 10,13


  23:                  db 10,13


  24:                  db 10,13


  25:                  db 10,13


  26:                  db 10,13


  27:                  db "  Presione ESC para salir",10,13


  28:                  db 24h


  29:  memoria         db 40000 dup (?)


  30:   


  31:  ; ==================== SEGMENTO DE CODIGO =================


  32:                  .code


  33:                  mov ax,@data


  34:                  mov ds,ax


  35:  resolucion:     call texto


  36:                  mov limitex,639


  37:                  mov ah,9


  38:                  lea dx,menu


  39:                  int 21h


  40:  espera:         mov ah,0


  41:                  int 16h


  42:                  cmp ax,3b00h ; F1


  43:                  je res1


  44:                  cmp ax,3c00h ; F2


  45:                  je res2


  46:                  cmp ax,3d00h ; F3


  47:                  je res3


  48:                  cmp ax,011bh ; esc


  49:                  je salida


  50:                  jmp espera


  51:  salida:         jmp salir


  52:  res1:           mov modo,0dh


  53:                  mov limitex,319


  54:                  mov limitey,199


  55:                  call video


  56:                  jmp espero


  57:  res2:           mov modo,12h


  58:                  mov limitey,479


  59:                  call video


  60:                  jmp espero


  61:  res3:           mov modo,0eh


  62:                  mov limitey,199


  63:                  call video


  64:                  jmp espero


  65:  resol:          jmp resolucion


  66:  espero:         mov ah,0


  67:                  int 16h


  68:                  cmp ax,2207h ; ctrl+g


  69:                  je resol


  70:                  cmp ax,2f16h ; ctrl+v


  71:                  je pegar


  72:                  cmp ax,2e03h ; ctrl+c


  73:                  je copiar


  74:                  cmp ax,3062h ; b


  75:                  je borrar


  76:                  cmp ax,3042h ; B


  77:                  je borrar


  78:                  cmp ax,011bh ; esc


  79:                  je salir


  80:                  cmp ax,4f31h ; 1


  81:                  je abiz


  82:                  cmp ax,5032h ; 2


  83:                  je ab


  84:                  cmp ax,5133h ; 3


  85:                  je abde


  86:                  cmp ax,4b34h ; 4


  87:                  je iz


  88:                  cmp ax,4d36h ; 6


  89:                  je de


  90:                  cmp ax,4737h ; 7


  91:                  je ariz


  92:                  cmp ax,4838h ; 8


  93:                  je ar


  94:                  cmp ax,4939h ; 9


  95:                  je arde


  96:                  cmp ax,4b00h ; izquierda


  97:                  je izqui


  98:                  cmp ax,4d00h ; derecha


  99:                  je der


 100:                  cmp ax,4800h ; arriba


 101:                  je arr


 102:                  cmp ax,5000h ; abajo


 103:                  je aba


 104:                  jmp espero


 105:  borrar:         call video


 106:                  jmp espero


 107:  salir:          call texto


 108:                  mov ax,4c00h


 109:                  int 21h


 110:  copiar:         call copy


 111:                  jmp espero


 112:  pegar:          call paste


 113:                  jmp espero


 114:  abde:           jmp abde1


 115:  abiz:           jmp abiz1


 116:  ab:             jmp ab1


 117:  arde:           jmp arde1


 118:  ariz:           jmp ariz1


 119:  ar:             jmp ar1


 120:  de:             jmp de1


 121:  iz:             jmp iz1


 122:  aba:            jmp abajo


 123:  der:            jmp derecha


 124:  arr:            jmp arriba


 125:  izqui:          jmp izquierda


 126:  abde1:          mov ax,limitex


 127:                  cmp posx,ax


 128:                  je nada


 129:                  inc posx


 130:                  jmp ab1


 131:  abiz1:          cmp posx,0


 132:                  je nada


 133:                  dec posx


 134:  ab1:            mov ax,limitey


 135:                  cmp posy,ax


 136:                  je nada


 137:                  call qcolor


 138:                  inc posy


 139:                  jmp siempre


 140:  arde1:          mov ax,limitex


 141:                  cmp posx,ax


 142:                  je nada


 143:                  inc posx


 144:                  jmp ar1


 145:  ariz1:          cmp posx,0


 146:                  je nada


 147:                  dec posx


 148:  ar1:            cmp posy,0


 149:                  je nada


 150:                  call qcolor


 151:                  dec posy


 152:                  jmp siempre


 153:  de1:            mov ax,limitex


 154:                  cmp posx,ax


 155:                  je nada


 156:                  call qcolor


 157:                  inc posx


 158:                  jmp siempre


 159:  iz1:            cmp posx,0


 160:                  je nada


 161:                  call qcolor


 162:                  dec posx


 163:                  jmp siempre


 164:  nada:           jmp espero


 165:  derecha:        mov ax,limitex


 166:                  cmp posx,ax


 167:                  je nada


 168:                  inc posx


 169:                  jmp siempre


 170:  izquierda:      cmp posx,0


 171:                  je nada


 172:                  dec posx


 173:                  jmp siempre


 174:  arriba:         cmp posy,0


 175:                  je nada


 176:                  dec posy


 177:                  jmp siempre


 178:  abajo:          mov ax,limitey


 179:                  cmp posy,ax


 180:                  je nada


 181:                  inc posy


 182:  siempre:        call pintar


 183:                  jmp espero


 184:          


 185:  ;=================================================================


 186:  texto:          mov ah,0


 187:                  mov al,3


 188:                  int 10h


 189:                  ret


 190:  video:          call inicial


 191:                  mov ah,0


 192:                  mov al,modo


 193:                  int 10h


 194:                  ret


 195:  pintar:         mov ah,0ch


 196:                  mov al,color


 197:                  mov bh,0


 198:                  mov cx,posx


 199:                  mov dx,posy


 200:                  int 10h


 201:  aqui2:          ret


 202:  inicial:        mov posx,0


 203:                  mov posy,0


 204:                  mov color,0


 205:                  ret


 206:  qcolor:         inc color


 207:                  cmp color,16


 208:                  jne aqui


 209:                  mov color,0


 210:  aqui:           ret


 211:  copy:           push es


 212:                  push di


 213:                  push si


 214:                  push ds


 215:                  pop es


 216:                  push es


 217:                  mov ax,0a000h


 218:                  mov ds,ax


 219:                  mov si,0


 220:                  lea di,memoria


 221:                  mov cx,40000


 222:                  rep movsb


 223:                  pop ds


 224:                  pop si


 225:                  pop di


 226:                  pop es


 227:                  ret


 228:  paste:          lea si,memoria


 229:                  mov di,0


 230:                  push es


 231:                  mov ax,0a000h


 232:                  mov es,ax


 233:                  mov cx,40000


 234:                  rep movsb


 235:                  pop es


 236:                  ret


 237:                  end


No hay comentarios:

Publicar un comentario