lunes, 31 de mayo de 2010

Digitales III – Prof. Bethancourt

Este programa era un editor de texto que inicialmente, segun requerimiento de la practica, debia esperar la combinacion de teclas Ctrl + E para entrar en funcionamiento, luego podrias Escribir, cambiar el color de la fuente, cortar, pegar, buscar, reemplazar y justificar. Para salir se presiona la combinacion Ctrl + Q

 

   1:                  .MODEL SMALL


   2:                  .STACK 64H


   3:                  .DATA


   4:  MENU            DB 80 DUP (205)


   5:                  DB "Escribir     Color      cOrtar      Pegar      Buscar/reemplazar      Justificar"


   6:                  DB "   F1         F2          F3         F4               F5                  F6    "


   7:                  DB 80 DUP (205),24H


   8:  MARCO           DB "                                             ",201,14 DUP (205),187,10,13


   9:                  DB "                                             ",186,14 DUP (20H),186,10,13


  10:                  DB "                                             ",186,14 DUP (20H),186,10,13


  11:                  DB "                                             ",200,14 DUP (205),188,24H


  12:  LINEA1          DB " BUSCAR:",24H


  13:  LINEA2          DB " REEMPLAZAR:",24H


  14:  ATRIBUTO        DB 17H


  15:  CONTC           DB ?


  16:  CONTF           DB ?


  17:  BUFFER          DB 60 DUP (?)


  18:  LINEA01         DB 61 DUP (?)


  19:  LINEA02         DB 61 DUP (?)


  20:  LINEA03         DB 61 DUP (?)


  21:  LINEA04         DB 61 DUP (?)


  22:  LINEA05         DB 61 DUP (?)


  23:  LINEA06         DB 61 DUP (?)


  24:  LINEA07         DB 61 DUP (?)


  25:  LINEA08         DB 61 DUP (?)


  26:  LINEA09         DB 61 DUP (?)


  27:  LINEA10         DB 61 DUP (?)


  28:  LINEA11         DB 61 DUP (?)


  29:  LINEA12         DB 61 DUP (?)


  30:  LINEA13         DB 61 DUP (?)


  31:  LINEA14         DB 61 DUP (?)


  32:  LINEA15         DB 61 DUP (?)


  33:  LINEA16         DB 61 DUP (?)


  34:  CONTJ           DB 0


  35:  CONTESP         DB 0


  36:  BR              DB 0,0


  37:   


  38:   


  39:   


  40:                  .CODE


  41:                  MOV AX,@DATA


  42:                  MOV DS,AX


  43:                  MOV ES,AX


  44:                  CALL MODO


  45:                  CALL PANTALLA


  46:                  ADD ATRIBUTO,20H


  47:                  MOV BH,ATRIBUTO


  48:                  CALL VENTANA


  49:                  LEA DX,MENU


  50:                  MOV AH,9


  51:                  INT 21H


  52:                  MOV DH,26


  53:                  CALL CURSOR


  54:  WAITING:        MOV AH,0


  55:                  INT 16H


  56:                  CMP AX,1205H


  57:                  JE WRITE


  58:                  CMP AX,180FH


  59:                  JE CUT


  60:                  CMP AX,1011H


  61:                  JE QUIT


  62:                  CMP AX,1910H


  63:                  JE PASTE


  64:                  CMP AX,2E03H


  65:                  JE COL


  66:                  JMP WAITING


  67:   


  68:  WRITE:          CALL WRITING


  69:                  JMP WAITING


  70:  CUT:            CALL CUTTING


  71:                  JMP WAITING


  72:  COL:            CALL COLOR


  73:                  JMP WAITING


  74:  QUIT:           NOP


  75:  SALIR:          CALL MODO


  76:                  .EXIT(0)


  77:  PASTE:          CALL PASTING


  78:                  JMP WAITING


  79:   


  80:  WRITING:        MOV CONTF,0


  81:                  MOV DH,9


  82:  NEXTFIL:        MOV CONTC,0


  83:                  MOV DL,10


  84:                  CALL CURSOR


  85:  NEXTCHR:        MOV AH,0


  86:                  INT 16H


  87:                  CMP AX,1011H


  88:                  JE SALIR


  89:                  CMP AL,0


  90:                  JE REVISAR


  91:                  CMP AL,13


  92:                  JE TECLAENT


  93:                  CMP AL,8


  94:                  JE BORRA


  95:   


  96:  PRINT:          MOV DL,AL


  97:                  MOV AH,2


  98:                  INT 21H


  99:                  INC CONTC


 100:                  CMP CONTC,60


 101:                  JNE NEXTCHR


 102:                  MOV CONTC,0


 103:                  INC CONTF


 104:                  CMP CONTF,15


 105:  TECLAENT:       CALL LEERCUR


 106:                  CMP DH,23


 107:                  JE NEXTFIL


 108:                  INC DH


 109:                  JMP NEXTFIL


 110:  BORRA:          CMP CONTC,0


 111:                  JE NEXTCHR


 112:                  DEC CONTC


 113:                  CALL LEERCUR


 114:                  DEC DL


 115:                  CALL CURSOR


 116:                  MOV AL,20H


 117:                  MOV AH,9


 118:                  MOV BH,0


 119:                  MOV BL,ATRIBUTO


 120:                  MOV CX,1


 121:                  INT 10H


 122:                  JMP NEXTCHR


 123:  RETURN:         RET


 124:   


 125:  REVISAR:        PUSH AX


 126:                  CALL LEERCUR


 127:                  POP AX


 128:                  CMP AH,3DH


 129:          JE CUT1


 130:                  CMP AH,3CH


 131:                  JE COL1


 132:          CMP AH,3EH


 133:          JE PASTE1


 134:                  CMP AH,3FH


 135:                  JE SEARCH1


 136:                  CMP AH,40H


 137:                  JE JUST1


 138:          CMP AH,4DH


 139:                  JE RIGHT


 140:                  CMP AH,4BH


 141:                  JE LEFT


 142:                  CMP AH,48H


 143:                  JE UP


 144:                  CMP AH,50H


 145:                  JE DOWN


 146:          JMP POSICIONAR


 147:   


 148:  PASTE1:         CALL PASTING


 149:                  JMP POSICIONAR


 150:  CUT1:           CALL CUTTING


 151:                  JMP POSICIONAR


 152:  COL1:           CALL COLOR


 153:                  JMP POSICIONAR


 154:  SEARCH1:        CALL SEARCH


 155:                  JMP POSICIONAR


 156:  JUST1:          CALL JUSTIFICAR


 157:                  JMP POSICIONAR


 158:   


 159:          


 160:  RIGHT:          CMP DL,69


 161:                  JE POSICIONAR


 162:                  INC DL


 163:                  INC CONTC


 164:                  JMP POSICIONAR


 165:  LEFT:           CMP DL,10


 166:                  JE POSICIONAR


 167:                  DEC DL


 168:                  DEC CONTC


 169:                  JMP POSICIONAR


 170:  UP:             CMP DH,9


 171:                  JE POSICIONAR


 172:                  DEC DH


 173:                  DEC CONTF


 174:                  JMP POSICIONAR


 175:  DOWN:           CMP DH,23


 176:                  JE POSICIONAR


 177:                  INC DH


 178:                  INC CONTF


 179:                  JMP POSICIONAR


 180:                  


 181:  POSICIONAR:     CALL CURSOR


 182:                  JMP NEXTCHR


 183:   


 184:  CUTTING:        LEA SI,BUFFER


 185:                  CALL LEERCUR


 186:                  PUSH DX


 187:                  MOV DL,10


 188:  NEXTREA:        CALL CURSOR


 189:                  MOV AH,8


 190:                  MOV BH,0


 191:                  INT 10H


 192:                  MOV [SI],AL


 193:                  INC SI


 194:          MOV AH,9


 195:          MOV AL,20H


 196:          MOV BH,0


 197:          MOV BL,ATRIBUTO


 198:          MOV CX,1


 199:          INT 10H


 200:                  INC DL


 201:                  CMP DL,70


 202:                  JNE NEXTREA


 203:                  POP DX


 204:                  CALL CURSOR


 205:                  RET


 206:   


 207:  PASTING:        LEA SI,BUFFER


 208:                  CALL LEERCUR


 209:                  PUSH DX


 210:                  MOV BL,10


 211:  NEXTWRI:        MOV DL,BL


 212:                  CALL CURSOR


 213:                  MOV DL,BYTE PTR [SI]


 214:                  MOV AH,2


 215:                  INT 21H


 216:                  INC SI


 217:                  INC BL


 218:                  CMP BL,70


 219:                  JNE NEXTWRI


 220:                  POP DX


 221:                  CALL CURSOR


 222:                  RET


 223:   


 224:   


 225:   


 226:  COLOR:          CALL LEERCUR


 227:                  PUSH DX


 228:                  INC ATRIBUTO


 229:                  MOV BH,ATRIBUTO


 230:                  MOV BL,ATRIBUTO


 231:                  ROL BH,4


 232:                  AND BH,0FH


 233:                  AND BL,0FH


 234:                  CMP BH,BL


 235:                  JNE NOATRIBUTO


 236:                  INC ATRIBUTO


 237:  NOATRIBUTO:     CALL LEEPANTALLA


 238:                  MOV BH,ATRIBUTO


 239:                  CALL VENTANA


 240:                  CALL C11


 241:                  POP DX


 242:                  CALL CURSOR


 243:                  RET


 244:   


 245:   


 246:  SEARCH:         CALL LEERCUR


 247:                  PUSH DX


 248:                  LEA SI,BR


 249:                  MOV DH,5


 250:                  MOV DL,0


 251:                  CALL CURSOR


 252:                  MOV AH,9


 253:                  LEA DX,MARCO


 254:                  INT 21H


 255:                  MOV DH,6


 256:                  MOV DL,46


 257:                  CALL CURSOR


 258:                  MOV AH,9


 259:                  LEA DX,LINEA1


 260:                  INT 21H


 261:                  MOV AH,0


 262:                  INT 16H


 263:                  MOV BYTE PTR [SI],AL


 264:                  MOV DL,AL


 265:                  MOV AH,2


 266:                  INT 21H


 267:                  MOV DH,7


 268:                  MOV DL,46


 269:                  CALL CURSOR


 270:                  MOV AH,9


 271:                  LEA DX,LINEA2


 272:                  INT 21H


 273:                  MOV AH,0


 274:                  INT 16H


 275:                  MOV BYTE PTR [SI+1],AL


 276:                  MOV DL,AL


 277:                  MOV AH,2


 278:                  INT 21H


 279:                  MOV AH,0


 280:  S5:             INT 16H


 281:                  CMP AL,13


 282:                  JNE S5


 283:                  MOV AH,8


 284:                  MOV BH,0


 285:                  INT 10H


 286:                  MOV BH,AH


 287:                  MOV AH,6


 288:                  MOV AL,4


 289:                  MOV CH,5


 290:                  MOV CL,0


 291:                  MOV DH,8


 292:                  MOV DL,79


 293:                  INT 10H


 294:                  CALL LEEPANTALLA


 295:                  LEA DI,LINEA01


 296:                  LEA SI,BR


 297:                  MOV DX,14


 298:                  MOV AL,[SI]


 299:                  MOV BH,[SI+1]


 300:  S2:             MOV CX,60


 301:  S1:             SCASB


 302:                  JZ CAMBIO


 303:  S3:             LOOP S1


 304:                  INC DI


 305:                  DEC DX


 306:                  JNZ S2


 307:                  JMP S4


 308:  CAMBIO:         MOV BYTE PTR [DI-1],BH


 309:                  JMP S3


 310:  S4:             CALL C11


 311:                  POP DX


 312:                  CALL CURSOR


 313:                  RET


 314:   


 315:  JUSTIFICAR:     MOV CONTESP,0


 316:                  CALL LEERCUR


 317:                  PUSH DX


 318:                  CALL LEEPANTALLA


 319:                  MOV AH,0


 320:                  MOV AL,CONTJ


 321:                  MOV DX,3


 322:                  DIV DL


 323:                  MOV CONTJ,AH


 324:                  CMP AH,0


 325:                  JE JUSTD


 326:                  CMP AH,1


 327:                  JE JUSTI


 328:                  


 329:                  LEA DI,LINEA01


 330:                  LEA SI,LINEA01


 331:  J1:             PUSH SI


 332:                  PUSH DI


 333:                  CALL LEERESP


 334:                  XOR DX,DX


 335:                  MOV AX,BP


 336:                  MOV BX,2


 337:                  DIV BX


 338:                  POP DI


 339:                  PUSH DI


 340:                  ADD DI,AX


 341:                  MOV CX,60


 342:                  SUB CX,BP


 343:                  CMP CX,0


 344:                  JE J111 


 345:  J11:            MOVSB


 346:                  MOV BYTE PTR [SI-1],20H


 347:                  LOOP J11


 348:  J111:           POP DI


 349:                  POP SI


 350:                  ADD SI,61


 351:                  ADD DI,61


 352:                  INC CONTESP


 353:                  CMP CONTESP,15


 354:                  JNE J1


 355:                  JMP J4


 356:                  


 357:  JUSTI:          


 358:                  LEA DI,LINEA01


 359:                  LEA SI,LINEA01


 360:  J3:             PUSH SI


 361:                  PUSH DI


 362:                  CALL LEERESP


 363:                  POP DI


 364:                  PUSH DI


 365:                  ADD SI,BP


 366:                  MOV CX,60


 367:                  SUB CX,BP


 368:                  MOV CX,60


 369:                  SUB CX,BP


 370:                  CMP CX,0


 371:                  JE J311 


 372:   


 373:  J31:            MOVSB


 374:                  MOV BYTE PTR [SI-1],20H


 375:                  LOOP J31


 376:  J311:           POP DI


 377:                  POP SI


 378:                  ADD SI,61


 379:                  ADD DI,61


 380:                  INC CONTESP


 381:                  CMP CONTESP,15


 382:                  JNE J3


 383:                  JMP J4


 384:  JUSTD:          


 385:                  LEA DI,LINEA01


 386:                  LEA SI,LINEA01


 387:  J2:             PUSH SI


 388:                  PUSH DI


 389:                  CALL LEERESP


 390:                  POP DI


 391:                  PUSH DI


 392:                  ADD DI,BP


 393:                  MOV CX,60


 394:                  SUB CX,BP


 395:                  CMP CX,0


 396:                  JE J211 


 397:  J21:            MOVSB


 398:                  MOV BYTE PTR [SI-1],20H


 399:                  LOOP J21


 400:  J211:           POP DI


 401:                  POP SI


 402:                  ADD SI,61


 403:                  ADD DI,61


 404:                  INC CONTESP


 405:                  CMP CONTESP,15


 406:                  JNE J2


 407:                  JMP J4


 408:   


 409:  J4:             CALL C11


 410:                  INC CONTJ


 411:                  POP DX


 412:                  CALL CURSOR


 413:                  RET


 414:   


 415:  C11:            LEA DX,LINEA01


 416:                  PUSH DX


 417:                  MOV BL,9


 418:  C1:             MOV DH,BL


 419:                  MOV DL,10


 420:                  CALL CURSOR


 421:                  POP DX


 422:                  MOV AH,9


 423:                  INT 21H


 424:                  ADD DX,61


 425:                  PUSH DX


 426:                  INC BL


 427:                  CMP BL,24


 428:                  JNE C1


 429:                  POP DX


 430:                  RET


 431:   


 432:  LEEPANTALLA:    MOV CH,CONTF


 433:                  MOV CL,CONTC


 434:                  PUSH CX


 435:                  LEA SI,LINEA01


 436:                  MOV BP,0


 437:                  MOV DH,9


 438:                  MOV DL,10


 439:  LP1:            CALL CURSOR


 440:                  MOV AH,8


 441:                  MOV BH,0


 442:                  INT 10H


 443:                  MOV DS:[SI+BP],AL


 444:                  INC BP


 445:                  CMP BP,60


 446:                  JE LP2


 447:                  INC DL


 448:                  JMP LP1


 449:  LP2:            MOV BYTE PTR DS:[SI+BP],24H


 450:                  MOV BP,0


 451:                  ADD SI,61


 452:                  MOV DL,10


 453:                  INC DH


 454:                  CMP DH,24


 455:                  JNE LP1


 456:                  POP CX


 457:                  MOV CONTC,CL


 458:                  MOV CONTF,CH


 459:                  RET


 460:   


 461:  MODO:           MOV AH,0


 462:                  MOV AL,3


 463:                  INT 10H


 464:                  RET


 465:  CURSOR:         MOV AH,2


 466:                  MOV BH,0


 467:                  INT 10H


 468:                  RET


 469:  LEERCUR:        MOV AH,3


 470:                  MOV BH,0


 471:                  INT 10H


 472:                  RET


 473:  VENTANA:        MOV AH,6


 474:                  MOV AL,15


 475:                  MOV CH,9


 476:                  MOV CL,10


 477:                  MOV DH,23


 478:                  MOV DL,69


 479:                  INT 10H


 480:                  RET


 481:   


 482:  PANTALLA:       MOV AH,6


 483:                  MOV AL,0


 484:                  MOV CX,0


 485:                  MOV DX,184FH


 486:                  MOV BH,ATRIBUTO


 487:                  INT 10H


 488:                  RET


 489:   


 490:  LEERESP:        MOV BP,0


 491:                  MOV CX,60


 492:                  MOV AL,20H


 493:  LEERESP1:       SCASB


 494:                  JZ CUENTOESP


 495:  LEERESP2:       LOOP LEERESP1


 496:                  RET


 497:  CUENTOESP:      INC BP


 498:                  JMP LEERESP2


 499:   


 500:   


 501:                  END


No hay comentarios:

Publicar un comentario