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,1314: db " * Modos Graficos",10,13
15: db " ==============",10,13
16: db 10,13 17: db 10,1318: 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,1327: 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,ax35: 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,19955: call video
56: jmp espero 57: res2: mov modo,12h 58: mov limitey,47959: call video
60: jmp espero 61: res3: mov modo,0eh 62: mov limitey,19963: 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 espero105: borrar: call video
106: jmp espero107: salir: call texto
108: mov ax,4c00h 109: int 21h110: copiar: call copy
111: jmp espero112: 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 nada137: 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 nada150: call qcolor
151: dec posy 152: jmp siempre 153: de1: mov ax,limitex 154: cmp posx,ax 155: je nada156: call qcolor
157: inc posx 158: jmp siempre 159: iz1: cmp posx,0 160: je nada161: 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 posy182: siempre: call pintar
183: jmp espero 184: 185: ;================================================================= 186: texto: mov ah,0 187: mov al,3 188: int 10h 189: ret190: 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