el enunciado de esta evaluacion era el popular juego de la vieja, pari un pelo para hacerlo pero esta fino, se juega con el teclado numerico y lleva el contador de victorias.
1: ORG 2000H 2: LD SP,3DFFH3: INICIO: CALL BORRAR_PAN
4: LD IX,SCORE 5: LD (IX),30H 6: LD (IX+1),30H 7: 8: START: CALL BORRAR_PAN
9: LD B,9 10: LD E,90 11: LD IX,VERIF 12: 13: CLEAN1: LD (IX),E 14: INC IX 15: INC E 16: DJNZ CLEAN1 17: LD B,9 18: LD E,31H 19: LD IX,LINEA1 20: 21: CLEAN2: LD (IX),E 22: INC IX 23: INC IX 24: INC E 25: DJNZ CLEAN2 26: 27: ;**********MENU*********** 28: LD IX,WEL1 29: LD A,02H30: CALL ENVIAR_MEN
31: LD IX,WEL2 32: LD A,04H33: CALL ENVIAR_MEN
34: CALL SCAN
35: 36: ; SE HACE EL RAYADO INICIAL 37: 38: CALL BORRAR_PAN
39: LD IX,LINEA1 40: LD A,01H41: CALL ENVIAR_MEN
42: LD IX,LINEA2 43: LD A,02H44: CALL ENVIAR_MEN
45: LD IX,LINEA3 46: LD A,03H47: CALL ENVIAR_MEN
48: LD IX,LINEA4 49: LD A,04H50: CALL ENVIAR_MEN
51: 52: ; SE ESPERA UNA TECLA VALIDA, DIGASE UN NUMERO 53: 54: LD B,09H 55: LD C,0 56: LD IY,VERIF 57: HERE: NOP 58: 59: ESPERA: CALL SCAN
60: CP 31H 61: JP Z,TECLA1 62: CP 32H 63: JP Z,TECLA2 64: CP 33H 65: JP Z,TECLA3 66: CP 34H 67: JP Z,TECLA4 68: CP 35H 69: JP Z,TECLA5 70: CP 36H 71: JP Z,TECLA6 72: CP 37H 73: JP Z,TECLA7 74: CP 38H 75: JP Z,TECLA8 76: CP 39H 77: JP Z,TECLA9 78: JP ESPERA 79: 80: SS: CALL COMBINA
81: 82: PP: DJNZ HERE83: CALL BORRAR_PAN
84: 85: ; SE VERIFICAN QUE NINGUNO DE LOS JUGADORES HAYA LLEGADO A 10 VICTORIAS 86: 87: LD A,(IY) 88: CP 3AH 89: JP NZ,PREGO 90: 91: LD IX,WINNER 92: LD A,393: CALL ENVIAR_MEN
94: CALL SCAN
95: JP PJUEGO 96: 97: PREGO: LD A,(IY+1) 98: CP 3AH 99: JP NZ,START 100: LD IX,WINNER 101: LD A,3102: CALL ENVIAR_MEN
103: CALL SCAN
104: 105: ;PREGUNTO SI DESEAN SEGUIR JUGANDO 106: 107: PJUEG: LD IX,FJ 108: LD A,2109: CALL ENVIAR_MEN
110: CALL SCAN
111: CP 1BH 112: JP Z,FINJU 113: JP INICIO 114: 115: FINJU: CALL BORRAR_PAN
116: RST 38H 117: 118: ;***** INICIO DE LAS RUTINAS **** 119: 120: ; SE VERIFICA QUE LAS CASILLA ESTE "VACIA", ES DECIR Q NO TENGA "X" NI "O"
121: 122: TECLA1: LD HL,LINEA1 123: LD A,(IY+0) 124: CP 90 125: JP NZ,ESPERA126: CALL QFUE
127: LD (HL),A 128: LD (IY),A 129: LD IX,LINEA1 130: LD A,1131: CALL ENVIAR_MEN
132: JP SS 133: TECLA2: LD HL,L11 134: LD A,(IY+1) 135: CP 91 136: JP NZ,ESPERA137: CALL QFUE
138: LD (HL),A 139: LD (IY+1),A 140: LD IX,LINEA1 141: LD A,1142: CALL ENVIAR_MEN
143: JP SS 144: TECLA3: LD HL,L12 145: LD A,(IY+2) 146: CP 92 147: JP NZ,ESPERA148: CALL QFUE
149: LD (HL),A 150: LD (IY+2),A 151: LD IX,LINEA1 152: LD A,1153: CALL ENVIAR_MEN
154: JP SS 155: TECLA4: LD HL,LINEA2 156: LD A,(IY+3) 157: CP 93 158: JP NZ,ESPERA159: CALL QFUE
160: LD (HL),A 161: LD (IY+3),A 162: LD IX,LINEA2 163: LD A,2164: CALL ENVIAR_MEN
165: JP SS 166: TECLA5: LD HL,L21 167: LD A,(IY+4) 168: CP 94 169: JP NZ,ESPERA170: CALL QFUE
171: LD (IY+4),A 172: LD (HL),A 173: LD IX,LINEA2 174: LD A,2175: CALL ENVIAR_MEN
176: JP SS 177: TECLA6: LD HL,L22 178: LD A,(IY+5) 179: CP 95 180: JP NZ,ESPERA181: CALL QFUE
182: LD (IY+5),A 183: LD (HL),A 184: LD IX,LINEA2 185: LD A,2186: CALL ENVIAR_MEN
187: JP SS 188: TECLA7: LD HL,LINEA3 189: LD A,(IY+6) 190: CP 96 191: JP NZ,ESPERA192: CALL QFUE
193: LD (HL),A 194: LD (IY+6),A 195: LD IX,LINEA3 196: LD A,3197: CALL ENVIAR_MEN
198: JP SS 199: TECLA8: LD HL,L31 200: LD A,(IY+7) 201: CP 97 202: JP NZ,ESPERA203: CALL QFUE
204: LD (IY+7),A 205: LD (HL),A 206: LD IX,LINEA3 207: LD A,3208: CALL ENVIAR_MEN
209: JP SS 210: TECLA9: LD HL,L32 211: LD A,(IY+8) 212: CP 98 213: JP NZ,ESPERA214: CALL QFUE
215: LD (IY+8),A 216: LD (HL),A 217: LD IX,LINEA3 218: LD A,3219: CALL ENVIAR_MEN
220: JP SS 221: 222: ; QUE FUE ES LA RUTINA QUE LLEVA EL CONTROL DE QUE SIMBOLO LE TOCA JUGAR 223: 224: QFUE: LD A,C 225: CP 0 226: JP Z,XP 227: LD A,4FH 228: LD C,0 229: RET 230: 231: XP: LD A,"X"
232: INC C 233: RET 234: 235: COMBINA: LD IX,VERIF 236: LD E,0 237: LD A,(IX+1) 238: CP (IX)239: CALL Z,CUENTA
240: CP (IX+2)241: CALL Z,CUENTA
242: 243: 244: LD E,0 245: CP (IX+4)246: CALL Z,CUENTA
247: CP (IX+8)248: CALL Z,CUENTA
249: 250: 251: LD E,0 252: LD A,(IX+4) 253: CP (IX)254: CALL Z,CUENTA
255: CP (IX+8)256: CALL Z,CUENTA
257: 258: 259: LD E,0 260: CP (IX+6)261: CALL Z,CUENTA
262: CP (IX+2)263: CALL Z,CUENTA
264: 265: 266: LD E,0 267: CP (IX+5)268: CALL Z,CUENTA
269: CP (IX+3)270: CALL Z,CUENTA
271: 272: 273: LD E,0 274: LD A,(IX) 275: CP (IX+3)276: CALL Z,CUENTA
277: CP (IX+6)278: CALL Z,CUENTA
279: 280: 281: LD E,0 282: LD A,(IX+8) 283: CP (IX+5)284: CALL Z,CUENTA
285: CP (IX+2)286: CALL Z,CUENTA
287: 288: 289: LD E,0 290: CP (IX+7)291: CALL Z,CUENTA
292: CP (IX+6)293: CALL Z,CUENTA
294: RET 295: 296: CUENTA: INC E 297: PUSH AF 298: LD A,E 299: CP 2 300: JP Z,GANADOR 301: POP AF 302: RET 303: 304: GANADOR: LD IX,WW 305: LD IY,SCORE 306: LD A,C 307: CP 0 308: JP Z,CIR309: LD (IX),"X"
310: INC (IY) 311: 312: ZZZ: LD IX,WINNER 313: LD A,4314: CALL ENVIAR_MEN
315: CALL SCAN
316: LD B,1 317: JP PP 318: 319: CIR: LD (IX),4FH 320: INC (IY+1) 321: JP ZZZ 322: 323: 324: 325: ORG 3500H 326: LINEA1 DB 31H,186 327: L11 DB 32H,186 328: L12 DB 33H,24H 329: LINEA2 DB 34H,186 330: L21 DB 35H,186 331: L22 DB 36H,24H 332: LINEA3 DB 37H,186 333: L31 DB 38H,186 334: L32 DB 39H,24H335: WEL1 DB " ********LA VIEJA********",24H
336: WEL2 DB " Presione cualquier tecla para comenzar",24H
337: LINEA4 DB "Presione el numero de la posicion donde desea jugar$"
338: VERIF DS 9339: FJ DB " Presione ESC para salir u otra tecla para seguir jugando$"
340: WINNER DB " FIN DE JUEGO, GANARON LAS "
341: WW DB " $"
342: SCORE DS 2 343: DB 24H 344: BORRAR_PAN ret; EQU 055CH 345: SCAN ret ;EQU 04F1H 346: ENVIAR_MEN ret; EQU 052BH347: END
No hay comentarios:
Publicar un comentario