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