viernes, 21 de mayo de 2010

Digitales II – Prof. Naranjo

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,3DFFH


   3:  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,02H


  30:          CALL ENVIAR_MEN


  31:          LD IX,WEL2


  32:          LD A,04H


  33:          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,01H


  41:          CALL ENVIAR_MEN


  42:          LD IX,LINEA2


  43:          LD A,02H


  44:          CALL ENVIAR_MEN


  45:          LD IX,LINEA3


  46:          LD A,03H


  47:          CALL ENVIAR_MEN


  48:          LD IX,LINEA4


  49:          LD A,04H


  50:          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 HERE


  83:          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,3


  93:          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,3


 102:          CALL ENVIAR_MEN


 103:          CALL SCAN


 104:   


 105:  ;PREGUNTO SI DESEAN SEGUIR JUGANDO


 106:   


 107:  PJUEG:        LD IX,FJ


 108:          LD A,2


 109:          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,ESPERA


 126:          CALL QFUE


 127:          LD (HL),A


 128:          LD (IY),A


 129:          LD IX,LINEA1


 130:          LD A,1


 131:          CALL ENVIAR_MEN


 132:          JP SS


 133:  TECLA2:        LD HL,L11


 134:          LD A,(IY+1)


 135:          CP 91


 136:          JP NZ,ESPERA


 137:          CALL QFUE


 138:          LD (HL),A


 139:          LD (IY+1),A


 140:          LD IX,LINEA1


 141:          LD A,1


 142:          CALL ENVIAR_MEN


 143:          JP SS


 144:  TECLA3:        LD HL,L12


 145:          LD A,(IY+2)


 146:          CP 92


 147:          JP NZ,ESPERA


 148:          CALL QFUE


 149:          LD (HL),A


 150:          LD (IY+2),A


 151:          LD IX,LINEA1


 152:          LD A,1


 153:          CALL ENVIAR_MEN


 154:          JP SS


 155:  TECLA4:        LD HL,LINEA2


 156:          LD A,(IY+3)


 157:          CP 93


 158:          JP NZ,ESPERA


 159:          CALL QFUE


 160:          LD (HL),A


 161:          LD (IY+3),A


 162:          LD IX,LINEA2


 163:          LD A,2


 164:          CALL ENVIAR_MEN


 165:          JP SS


 166:  TECLA5:        LD HL,L21


 167:          LD A,(IY+4)


 168:          CP 94


 169:          JP NZ,ESPERA


 170:          CALL QFUE


 171:          LD (IY+4),A


 172:          LD (HL),A


 173:          LD IX,LINEA2


 174:          LD A,2


 175:          CALL ENVIAR_MEN


 176:          JP SS


 177:  TECLA6:        LD HL,L22


 178:          LD A,(IY+5)


 179:          CP 95


 180:          JP NZ,ESPERA


 181:          CALL QFUE


 182:          LD (IY+5),A


 183:          LD (HL),A


 184:          LD IX,LINEA2


 185:          LD A,2


 186:          CALL ENVIAR_MEN


 187:          JP SS


 188:  TECLA7:        LD HL,LINEA3


 189:          LD A,(IY+6)


 190:          CP 96


 191:          JP NZ,ESPERA


 192:          CALL QFUE


 193:          LD (HL),A


 194:          LD (IY+6),A


 195:          LD IX,LINEA3


 196:          LD A,3


 197:          CALL ENVIAR_MEN


 198:          JP SS


 199:  TECLA8:        LD HL,L31


 200:          LD A,(IY+7)


 201:          CP 97


 202:          JP NZ,ESPERA


 203:          CALL QFUE


 204:          LD (IY+7),A


 205:          LD (HL),A


 206:          LD IX,LINEA3


 207:          LD A,3


 208:          CALL ENVIAR_MEN


 209:          JP SS


 210:  TECLA9:        LD HL,L32


 211:          LD A,(IY+8)


 212:          CP 98


 213:          JP NZ,ESPERA


 214:          CALL QFUE


 215:          LD (IY+8),A


 216:          LD (HL),A


 217:          LD IX,LINEA3


 218:          LD A,3


 219:          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,CIR


 309:          LD (IX),"X"


 310:          INC (IY)


 311:   


 312:  ZZZ:        LD IX,WINNER


 313:          LD A,4


 314:          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,24H


 335:  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 9


 339:  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 052BH


 347:      END 


No hay comentarios:

Publicar un comentario